From 14b55dbd2e3aee269df384fa81ebeeaca2bea743 Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Wed, 4 Feb 2026 00:21:43 +0530 Subject: [PATCH 01/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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/68] 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: Wed, 25 Feb 2026 23:21:52 +0530 Subject: [PATCH 61/68] 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 e08c9960501ba496eb7414911e0861a710dbf081 Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Thu, 26 Feb 2026 01:33:37 +0530 Subject: [PATCH 62/68] added heading level --- .../pageSections/SearchSection/Cards.tsx | 21 ++- .../SearchSection/LayoutSections.tsx | 4 +- .../pageSections/SearchSection/Search.tsx | 3 + .../SearchSection/SearchResultsContext.tsx | 41 ++++++ .../SearchSection/SearchResultsSlot.tsx | 128 +++++++++++------- .../SearchSection/propsAndTypes.ts | 3 + 6 files changed, 140 insertions(+), 60 deletions(-) create mode 100644 packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsContext.tsx diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/Cards.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/Cards.tsx index d4c48f356d..e4145eac88 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/Cards.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/Cards.tsx @@ -1,5 +1,5 @@ import { CardProps } from "@yext/search-ui-react"; -import { MaybeRTF } from "@yext/visual-editor"; +import { Heading, MaybeRTF } from "@yext/visual-editor"; import { CardTypeProp } from "./propsAndTypes.ts"; import { Accordion, @@ -7,12 +7,15 @@ import { AccordionItem, AccordionTrigger, } from "../../atoms/accordion.tsx"; +import { useSearchResultsContext } from "./SearchResultsContext.tsx"; interface CardsProps extends CardProps { cardType?: CardTypeProp; } const Cards = ({ result, cardType = "Standard" }: CardsProps) => { + const searchResultsContext = useSearchResultsContext(); + const name = result.rawData.question || result.rawData.name; const description = result.rawData.answerV2 || @@ -25,7 +28,12 @@ const Cards = ({ result, cardType = "Standard" }: CardsProps) => { > {cardType === "Standard" ? (
        -

        {name ?? "name"}

        + + {name ?? "name"} +
        @@ -42,9 +50,12 @@ const Cards = ({ result, cardType = "Standard" }: CardsProps) => { className="px-5 py-2.5 " > -

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

        + + {name ?? "name"} +
        diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx index f68203cc90..6a07431ab1 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx @@ -30,9 +30,7 @@ export const LayoutSection = ({

        {header?.props.label}

        {layoutType === "Map" && ( -
        - -
        + )}
        diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx index a25afff581..b710556a05 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx @@ -152,6 +152,9 @@ export const SearchComponent: ComponentConfig<{ }, styles: { enableGenerativeDirectAnswer: false, + headingStyle: { + headingLevel: 4, + }, }, } satisfies SearchResultsSlotProps, }, diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsContext.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsContext.tsx new file mode 100644 index 0000000000..77185fdd7e --- /dev/null +++ b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsContext.tsx @@ -0,0 +1,41 @@ +import React, { createContext, useContext } from "react"; +import { + BackgroundStyle, + HeadingLevel, +} from "../../../utils/themeConfigOptions.ts"; + +export interface headingStyleProps { + headingLevel: HeadingLevel; + color?: BackgroundStyle; +} + +interface SearchResultsContextType { + headingStyle?: headingStyleProps; +} + +const defaultContextValues: SearchResultsContextType = { + headingStyle: { + headingLevel: 2, + }, +}; + +const SearchResultsContext = + createContext(defaultContextValues); + +export const SearchResultsProvider = ({ + children, + value, +}: { + children: React.ReactNode; + value: SearchResultsContextType; +}) => { + return ( + + {children} + + ); +}; + +export const useSearchResultsContext = () => { + return useContext(SearchResultsContext); +}; diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx index fd16daa410..83c5cf39cf 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx @@ -20,10 +20,17 @@ import { isValidVerticalConfig, } from "./utils.tsx"; import { VerticalResultsSection } from "./VerticalResultsSection.tsx"; +import { + headingStyleProps, + SearchResultsProvider, +} from "./SearchResultsContext.tsx"; export interface SearchResultsSlotProps { data: { verticals: VerticalConfigProps[] }; - styles: { enableGenerativeDirectAnswer: boolean }; + styles: { + enableGenerativeDirectAnswer: boolean; + headingStyle: headingStyleProps; + }; } const SearchResultsSlotFields: Fields = { @@ -89,6 +96,20 @@ const SearchResultsSlotFields: Fields = { ], } ), + headingStyle: { + label: msg("fields.headingStyle", "Heading Style"), + type: "object", + objectFields: { + headingLevel: YextField(msg("fields.headingLevel", "Heading Level"), { + type: "select", + options: "HEADING_LEVEL", + }), + color: YextField(msg("fields.color", "Color"), { + type: "select", + options: "SITE_COLOR", + }), + }, + }, }, }), }; @@ -99,6 +120,7 @@ const SearchResultsSlotInternal: PuckComponent = ( const { data: { verticals }, puck, + styles, } = props; const puckStore = useOptionalPuckStore(); const arrayState = puckStore?.appState?.ui?.arrayState; @@ -192,60 +214,62 @@ const SearchResultsSlotInternal: PuckComponent = ( }, [arrayKey, arrayState, verticals, verticalKey, puck.isEditing]); return ( -
        -
        - +
        + +
        + {isLoading &&
        Loading......
        } + {!isLoading && + (verticalKey ? ( + + ) : ( + + ))}
        - {isLoading &&
        Loading......
        } - {!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 2586f423dd..7b84f1fece 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/propsAndTypes.ts +++ b/packages/visual-editor/src/components/pageSections/SearchSection/propsAndTypes.ts @@ -28,5 +28,8 @@ export const defaultSearchResultsProps: SearchResultsSlotProps = { }, styles: { enableGenerativeDirectAnswer: false, + headingStyle: { + headingLevel: 5, + }, }, }; From 98c6440b34cf7b972bb890b9d9572569e4045f62 Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Thu, 26 Feb 2026 14:51:26 +0530 Subject: [PATCH 63/68] updated key --- .../pageSections/CustomDirectory/CustomBreadcrumbs.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomBreadcrumbs.tsx b/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomBreadcrumbs.tsx index 92cb12af68..f05e47f2b9 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) { @@ -155,7 +155,7 @@ const CustomBreadcrumbsComponent = ({ const fetchBreadcrumbs = async () => { try { const json = await fetchData({ - endpoint: `https://cdn.yextapis.com/v2/accounts/me/content/${customEndpointName}/${streamDocument.uid}`, + endpoint: `${customEndpointName}/${streamDocument.uid}`, apiKey: apiKey, }); From a0fb00637b8a282cf3682f5542bbe6c1010b21f7 Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Thu, 26 Feb 2026 15:19:11 +0530 Subject: [PATCH 64/68] locales updated --- .../locales/platform/cs/visual-editor.json | 22 +++++++++++++++++++ .../locales/platform/da/visual-editor.json | 22 +++++++++++++++++++ .../locales/platform/de/visual-editor.json | 22 +++++++++++++++++++ .../locales/platform/en-GB/visual-editor.json | 22 +++++++++++++++++++ .../locales/platform/en/visual-editor.json | 22 +++++++++++++++++++ .../locales/platform/es/visual-editor.json | 22 +++++++++++++++++++ .../locales/platform/et/visual-editor.json | 22 +++++++++++++++++++ .../locales/platform/fi/visual-editor.json | 22 +++++++++++++++++++ .../locales/platform/fr/visual-editor.json | 22 +++++++++++++++++++ .../locales/platform/hr/visual-editor.json | 22 +++++++++++++++++++ .../locales/platform/hu/visual-editor.json | 22 +++++++++++++++++++ .../locales/platform/it/visual-editor.json | 22 +++++++++++++++++++ .../locales/platform/ja/visual-editor.json | 22 +++++++++++++++++++ .../locales/platform/lt/visual-editor.json | 22 +++++++++++++++++++ .../locales/platform/lv/visual-editor.json | 22 +++++++++++++++++++ .../locales/platform/nb/visual-editor.json | 22 +++++++++++++++++++ .../locales/platform/nl/visual-editor.json | 22 +++++++++++++++++++ .../locales/platform/pl/visual-editor.json | 22 +++++++++++++++++++ .../locales/platform/pt/visual-editor.json | 22 +++++++++++++++++++ .../locales/platform/ro/visual-editor.json | 22 +++++++++++++++++++ .../locales/platform/sk/visual-editor.json | 22 +++++++++++++++++++ .../locales/platform/sv/visual-editor.json | 22 +++++++++++++++++++ .../locales/platform/tr/visual-editor.json | 22 +++++++++++++++++++ .../locales/platform/zh-TW/visual-editor.json | 22 +++++++++++++++++++ .../locales/platform/zh/visual-editor.json | 22 +++++++++++++++++++ 25 files changed, 550 insertions(+) diff --git a/packages/visual-editor/locales/platform/cs/visual-editor.json b/packages/visual-editor/locales/platform/cs/visual-editor.json index 95d6dbb423..0983f6f80b 100644 --- a/packages/visual-editor/locales/platform/cs/visual-editor.json +++ b/packages/visual-editor/locales/platform/cs/visual-editor.json @@ -72,7 +72,9 @@ "message": "Tuto sekci nelze vykreslit. Zkuste aktualizovat knihovnu komponent." }, "components": { + "CustomDirectory": "Vlastní adresář", "DirectoryGrid": "Adresářová mřížka", + "SearchResultsSlot": "Slot výsledků vyhledávání", "Video": "Video", "aboutSection": "Sekce O nás", "aboutSectionDetailsColumn": "Sloupec podrobností", @@ -85,6 +87,7 @@ "copyrightMessage": "Zpráva o autorských právech", "coreInfoSection": "Sekce hlavních informací", "ctaGroup": "Skupina CTA", + "customBreadcrumbs": "Vlastní strouhanka", "customCodeSection": "Vlastní sekce kódu", "directory": "Adresář", "emails": "E -maily", @@ -132,6 +135,8 @@ "professionalHeroSection": "Sekce profesionálních hrdinů", "promoSection": "Promo sekce", "reviewsSection": "Sekce recenzí", + "searchBarSlot": "Slot pro vyhledávací lištu", + "searchWithSlots": "Vyhledávání pomocí slotů", "secondaryFooter": "Sekundární zápatí", "secondaryHeader": "Sekundární záhlaví", "servicesList": "Seznam služeb", @@ -207,6 +212,7 @@ "buttonText": "Text tlačítka", "buttons": "Tlačítka", "callToAction": "Volání k akci", + "cardType": "Typ karty", "cardVariant": "Varianta karty", "cards": "Karty", "carouselImageCount": "Počet obrázků kolotoče", @@ -249,7 +255,9 @@ "emailList": "Seznam e -mailů", "emails": "E -maily", "emailsListLength": "Délka seznamu e -mailů", + "enableGenerativeDirectAnswer": "Generativní přímá odpověď", "enableLanguageSelector": "Povolit volič jazyků", + "enableVisualAutoComplete": "Povolit vizuální automatické dokončování", "endDate": "Datum ukončení", "eventName": "Název události", "events": "Události", @@ -269,6 +277,7 @@ "heading": "Záhlaví", "headingAlign": "Sladění nadpisu", "headingLevel": "Úroveň nadpisu", + "headingStyle": "Styl nadpisu", "headingText": "Text nadpisu", "headshot": "Headshot", "height": "Výška", @@ -292,11 +301,13 @@ "insightSection": "Sekce Insight", "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í", "level": "Úroveň", "limit": "Omezit", "link": "Odkaz", @@ -504,6 +515,7 @@ "showDetailsColumn": "Zobrazit sloupec podrobností", "showEmail": "Zobrazit e-mail", "showGetDirectionsLink": "Zobrazit odkaz", + "showIcon": "Zobrazit ikonu", "showImage": "Zobrazit obrázek", "showImageConstrain": "Zobrazit omezení obrázku", "showLanguageDropdown": "Zobrazit rozbalovací nabídku jazyka", @@ -533,6 +545,7 @@ "timeFormat": "Formát času", "title": "Titul", "truncateDescription": "Zkrácení popisu", + "universalLimit": "Univerzální limit", "url": "URL", "utilityImages": "Obrazy", "utilityImagesStyles": "Styly obslužných obrázků", @@ -540,9 +553,14 @@ "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í", "width": "Šířka", "wrap": "Zabalit", "xLink": "X odkaz", @@ -613,7 +631,11 @@ "mile_many": "mil", "mile_one": "míle", "mile_other": "mil", + "missingCustomEndpointApiKey": "Chcete-li zobrazit tuto sekci, 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í", "name": "Jméno", "nearbyLocationsEmptyState": "Žádná {{entityType}} v okruhu {{radius}} {{unit}}", diff --git a/packages/visual-editor/locales/platform/da/visual-editor.json b/packages/visual-editor/locales/platform/da/visual-editor.json index 7f230528be..efa0b667b1 100644 --- a/packages/visual-editor/locales/platform/da/visual-editor.json +++ b/packages/visual-editor/locales/platform/da/visual-editor.json @@ -72,7 +72,9 @@ "message": "Kan ikke gengive denne sektion. Prøv at opdatere dit komponentbibliotek." }, "components": { + "CustomDirectory": "Brugerdefineret bibliotek", "DirectoryGrid": "Kataloggitter", + "SearchResultsSlot": "Søgeresultater Slot", "Video": "Video", "aboutSection": "Om afsnittet", "aboutSectionDetailsColumn": "Detaljer kolonne", @@ -85,6 +87,7 @@ "copyrightMessage": "Ophavsretsmeddelelse", "coreInfoSection": "Kerneinfo -sektion", "ctaGroup": "CTA gruppe", + "customBreadcrumbs": "Brugerdefinerede brødkrummer", "customCodeSection": "Brugerdefineret kodesektion", "directory": "Vejviser", "emails": "E -mails", @@ -132,6 +135,8 @@ "professionalHeroSection": "Professionel heltesektion", "promoSection": "Promo -sektion", "reviewsSection": "Afsnittet", + "searchBarSlot": "SearchBar Slot", + "searchWithSlots": "Søg med Slots", "secondaryFooter": "Sekundær sidefod", "secondaryHeader": "Sekundær overskrift", "servicesList": "Tjenesteliste", @@ -208,6 +213,7 @@ "buttonText": "Knaptekst", "buttons": "Knapper", "callToAction": "Opfordre til handling", + "cardType": "Korttype", "cardVariant": "Kortvariant", "cards": "Kort", "carouselImageCount": "Antal karruselbilleder", @@ -250,7 +256,9 @@ "emailList": "E -mail -liste", "emails": "E -mails", "emailsListLength": "E -mails liste længde", + "enableGenerativeDirectAnswer": "Generativt direkte svar", "enableLanguageSelector": "Aktivér sprogvælger", + "enableVisualAutoComplete": "Aktiver visuel autofuldførelse", "endDate": "Slutdato", "eventName": "Begivenhedsnavn", "events": "Begivenheder", @@ -270,6 +278,7 @@ "heading": "Overskrift", "headingAlign": "Overskriften justeres", "headingLevel": "Overskriftsniveau", + "headingStyle": "Overskriftsstil", "headingText": "Overskriftstekst", "headshot": "Headshot", "height": "Højde", @@ -293,11 +302,13 @@ "insightSection": "Insight Section", "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", "level": "Niveau", "limit": "Begrænse", "link": "Forbindelse", @@ -505,6 +516,7 @@ "showDetailsColumn": "Vis detaljer kolonne", "showEmail": "Vis e-mail", "showGetDirectionsLink": "Vis Get Reties Link", + "showIcon": "Vis ikon", "showImage": "Vis billede", "showImageConstrain": "Vis billedbegrænsning", "showLanguageDropdown": "Vis sprog dropdown", @@ -534,6 +546,7 @@ "timeFormat": "Tidsformat", "title": "Titel", "truncateDescription": "Trunkeringsbeskrivelse", + "universalLimit": "Universal grænse", "url": "URL", "utilityImages": "Hjælpebilleder", "utilityImagesStyles": "Hjælpebilleder stilarter", @@ -541,9 +554,14 @@ "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", "width": "Bredde", "wrap": "Wrap", "xLink": "X link", @@ -604,7 +622,11 @@ "mediaType": "Medietype", "mile_one": "mil", "mile_other": "mil", + "missingCustomEndpointApiKey": "Tilføj din tilpassede Content endpoint API-nøgle for at se dette afsnit", + "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", "name": "Navn", "nearbyLocationsEmptyState": "Ingen {{entityType}} inden for {{radius}} {{unit}}", diff --git a/packages/visual-editor/locales/platform/de/visual-editor.json b/packages/visual-editor/locales/platform/de/visual-editor.json index c92bfa69cb..fc235f0817 100644 --- a/packages/visual-editor/locales/platform/de/visual-editor.json +++ b/packages/visual-editor/locales/platform/de/visual-editor.json @@ -72,7 +72,9 @@ "message": "Dieser Abschnitt kann nicht gerendert werden. Versuchen Sie, Ihre Komponentenbibliothek zu aktualisieren." }, "components": { + "CustomDirectory": "Benutzerdefiniertes Verzeichnis", "DirectoryGrid": "Verzeichnisraster", + "SearchResultsSlot": "Suchergebnis-Slot", "Video": "Video", "aboutSection": "Über Abschnitt", "aboutSectionDetailsColumn": "Spalte „Details“.", @@ -85,6 +87,7 @@ "copyrightMessage": "Copyright-Nachricht", "coreInfoSection": "Kerninfo -Abschnitt", "ctaGroup": "CTA -Gruppe", + "customBreadcrumbs": "Benutzerdefinierte Semmelbrösel", "customCodeSection": "Abschnitt Custom Code", "directory": "Verzeichnis", "emails": "E -Mails", @@ -131,6 +134,8 @@ "professionalHeroSection": "Abschnitt „Professionelle Helden“.", "promoSection": "Promo -Abschnitt", "reviewsSection": "Bewertungen Abschnitt", + "searchBarSlot": "SearchBar-Slot", + "searchWithSlots": "Suche mit Slots", "secondaryFooter": "Sekundäre Fußzeile", "secondaryHeader": "Sekundärer Header", "servicesList": "Dienstleistungsliste", @@ -206,6 +211,7 @@ "buttonText": "Schaltflächentext", "buttons": "Knöpfe", "callToAction": "Aufruf zum Handeln", + "cardType": "Kartentyp", "cardVariant": "Kartenvariante", "cards": "Karten", "carouselImageCount": "Anzahl der Karussellbilder", @@ -248,7 +254,9 @@ "emailList": "E -Mail -Liste", "emails": "E -Mails", "emailsListLength": "E -Mail -Länge", + "enableGenerativeDirectAnswer": "Generative direkte Antwort", "enableLanguageSelector": "Sprachauswahl aktivieren", + "enableVisualAutoComplete": "Aktivieren Sie die visuelle Autovervollständigung", "endDate": "Enddatum", "eventName": "Ereignisname", "events": "Ereignisse", @@ -268,6 +276,7 @@ "heading": "Überschrift", "headingAlign": "Überschrift ausrichten", "headingLevel": "Überschrift", + "headingStyle": "Überschriftenstil", "headingText": "Übergangstext", "headshot": "Kopfschuss", "height": "Höhe", @@ -291,11 +300,13 @@ "insightSection": "Einsichtsabschnitt", "insights": "Erkenntnisse", "instagramLink": "Instagram -Link", + "isTypingEffect": "Typeffekt", "javascript": "JavaScript", "justifyContent": "Inhalt rechtfertigen", "key": "Schlüssel", "label": "Etikett", "latitude": "Breite", + "layout": "Layout", "level": "Ebene", "limit": "Limit", "link": "Link", @@ -503,6 +514,7 @@ "showDetailsColumn": "Spalte „Details“ anzeigen", "showEmail": "E-Mail anzeigen", "showGetDirectionsLink": "SHOW GET RICHTS LINK", + "showIcon": "Symbol anzeigen", "showImage": "Bild zeigen", "showImageConstrain": "Bildbeschränkung anzeigen", "showLanguageDropdown": "Sprache Dropdown anzeigen", @@ -532,6 +544,7 @@ "timeFormat": "Zeitformat", "title": "Titel", "truncateDescription": "Beschreibung abschneiden", + "universalLimit": "Universelle Grenze", "url": "URL", "utilityImages": "Dienstprogrammbilder", "utilityImagesStyles": "Dienstprogrammbilder Stile", @@ -539,9 +552,14 @@ "value": "Wert", "values": "Werte", "variant": "Variante", + "verticalKey": "Vertikaler Schlüssel", + "verticalLimit": "Vertikale Grenze", "verticalPadding": "Ober-/Bodenpolsterung", + "verticals": "Vertikale", "video": "Video", "visibleOnLivePage": "Auf der Live -Seite sichtbar", + "visualAutoCompleteVerticalKey": "Vertikaler Schlüssel zur visuellen automatischen Vervollständigung", + "voiceSearch": "Sprachsuche", "width": "Breite", "wrap": "Wickeln", "xLink": "X Link", @@ -602,7 +620,11 @@ "mediaType": "Medientyp", "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": "Fügen Sie HTML hinzu, um die 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", "name": "Name", "nearbyLocationsEmptyState": "Kein {{entityType}} innerhalb von {{radius}} {{unit}}", 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 3732e3b905..c00c2a04aa 100644 --- a/packages/visual-editor/locales/platform/en-GB/visual-editor.json +++ b/packages/visual-editor/locales/platform/en-GB/visual-editor.json @@ -70,7 +70,9 @@ "message": "Can't render this section. Try updating your component library." }, "components": { + "CustomDirectory": "Custom Directory", "DirectoryGrid": "Directory Grid", + "SearchResultsSlot": "Search Results Slot", "Video": "Video", "aboutSection": "About Section", "aboutSectionDetailsColumn": "Details Column", @@ -83,6 +85,7 @@ "copyrightMessage": "Copyright Message", "coreInfoSection": "Core Info Section", "ctaGroup": "CTA Group", + "customBreadcrumbs": "Custom Breadcrumbs", "customCodeSection": "Custom Code Section", "directory": "Directory", "emails": "Emails", @@ -129,6 +132,8 @@ "professionalHeroSection": "Professional Hero Section", "promoSection": "Promo Section", "reviewsSection": "Reviews Section", + "searchBarSlot": "SearchBar Slot", + "searchWithSlots": "Search with Slots", "secondaryFooter": "Secondary Footer", "secondaryHeader": "Secondary Header", "staticMapSection": "Static Map Section", @@ -201,6 +206,7 @@ "buttonText": "Button Text", "buttons": "Buttons", "callToAction": "Call To Action", + "cardType": "Card Type", "cardVariant": "Card Variant", "cards": "Cards", "carouselImageCount": "Carousel Image Count", @@ -242,7 +248,9 @@ "emailList": "Email List", "emails": "Emails", "emailsListLength": "Emails List Length", + "enableGenerativeDirectAnswer": "Generative Direct Answer", "enableLanguageSelector": "Enable Language Selector", + "enableVisualAutoComplete": "Enable Visual Autocomplete", "endDate": "End Date", "eventName": "Event Name", "events": "Events", @@ -262,6 +270,7 @@ "heading": "Heading", "headingAlign": "Heading Align", "headingLevel": "Heading Level", + "headingStyle": "Heading Style", "headingText": "Heading Text", "headshot": "Headshot", "height": "Height", @@ -285,11 +294,13 @@ "insightSection": "Insight Section", "insights": "Insights", "instagramLink": "Instagram Link", + "isTypingEffect": "Type Effect", "javascript": "JavaScript", "justifyContent": "Justify Content", "key": "Key", "label": "Label", "latitude": "Latitude", + "layout": "Layout", "level": "Level", "limit": "Limit", "link": "Link", @@ -497,6 +508,7 @@ "showDetailsColumn": "Show Details Column", "showEmail": "Show Email", "showGetDirectionsLink": "Show Get Directions Link", + "showIcon": "Show Icon", "showImage": "Show Image", "showImageConstrain": "Show Image Constrain", "showLanguageDropdown": "Show Language Dropdown", @@ -526,6 +538,7 @@ "timeFormat": "Time Format", "title": "Title", "truncateDescription": "Truncate Description", + "universalLimit": "Universal Limit", "url": "URL", "utilityImages": "Utility Images", "utilityImagesStyles": "Utility Images Styles", @@ -533,9 +546,14 @@ "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", "width": "Width", "wrap": "Wrap", "xLink": "X Link", @@ -596,7 +614,11 @@ "mediaType": "Media Type", "mile_one": "mile", "mile_other": "miles", + "missingCustomEndpointApiKey": "Add your custom Content endpoint API key to view this section", + "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", "name": "Name", "nearbyLocationsEmptyState": "No {{entityType}} within {{radius}} {{unit}}", diff --git a/packages/visual-editor/locales/platform/en/visual-editor.json b/packages/visual-editor/locales/platform/en/visual-editor.json index c2a9193801..5631611def 100644 --- a/packages/visual-editor/locales/platform/en/visual-editor.json +++ b/packages/visual-editor/locales/platform/en/visual-editor.json @@ -70,7 +70,9 @@ "message": "Can't render this section. Try updating your component library." }, "components": { + "CustomDirectory": "Custom Directory", "DirectoryGrid": "Directory Grid", + "SearchResultsSlot": "Search Results Slot", "Video": "Video", "aboutSection": "About Section", "aboutSectionDetailsColumn": "Details Column", @@ -83,6 +85,7 @@ "copyrightMessage": "Copyright Message", "coreInfoSection": "Core Info Section", "ctaGroup": "CTA Group", + "customBreadcrumbs": "Custom Breadcrumbs", "customCodeSection": "Custom Code Section", "directory": "Directory", "emails": "Emails", @@ -129,6 +132,8 @@ "professionalHeroSection": "Professional Hero Section", "promoSection": "Promo Section", "reviewsSection": "Reviews Section", + "searchBarSlot": "SearchBar Slot", + "searchWithSlots": "Search with Slots", "secondaryFooter": "Secondary Footer", "secondaryHeader": "Secondary Header", "staticMapSection": "Static Map Section", @@ -201,6 +206,7 @@ "buttonText": "Button Text", "buttons": "Buttons", "callToAction": "Call To Action", + "cardType": "Card Type", "cardVariant": "Card Variant", "cards": "Cards", "carouselImageCount": "Carousel Image Count", @@ -242,7 +248,9 @@ "emailList": "Email List", "emails": "Emails", "emailsListLength": "Emails List Length", + "enableGenerativeDirectAnswer": "Generative Direct Answer", "enableLanguageSelector": "Enable Language Selector", + "enableVisualAutoComplete": "Enable Visual Autocomplete", "endDate": "End Date", "eventName": "Event Name", "events": "Events", @@ -262,6 +270,7 @@ "heading": "Heading", "headingAlign": "Heading Align", "headingLevel": "Heading Level", + "headingStyle": "Heading Style", "headingText": "Heading Text", "headshot": "Headshot", "height": "Height", @@ -285,11 +294,13 @@ "insightSection": "Insight Section", "insights": "Insights", "instagramLink": "Instagram Link", + "isTypingEffect": "Type Effect", "javascript": "JavaScript", "justifyContent": "Justify Content", "key": "Key", "label": "Label", "latitude": "Latitude", + "layout": "Layout", "level": "Level", "limit": "Limit", "link": "Link", @@ -497,6 +508,7 @@ "showDetailsColumn": "Show Details Column", "showEmail": "Show Email", "showGetDirectionsLink": "Show Get Directions Link", + "showIcon": "Show Icon", "showImage": "Show Image", "showImageConstrain": "Show Image Constrain", "showLanguageDropdown": "Show Language Dropdown", @@ -526,6 +538,7 @@ "timeFormat": "Time Format", "title": "Title", "truncateDescription": "Truncate Description", + "universalLimit": "Universal Limit", "url": "URL", "utilityImages": "Utility Images", "utilityImagesStyles": "Utility Images Styles", @@ -533,9 +546,14 @@ "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", "width": "Width", "wrap": "Wrap", "xLink": "X Link", @@ -596,7 +614,11 @@ "mediaType": "Media Type", "mile_one": "mile", "mile_other": "miles", + "missingCustomEndpointApiKey": "Add your custom Content endpoint API key to view this section", + "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", "name": "Name", "nearbyLocationsEmptyState": "No {{entityType}} within {{radius}} {{unit}}", diff --git a/packages/visual-editor/locales/platform/es/visual-editor.json b/packages/visual-editor/locales/platform/es/visual-editor.json index 27ba3877cb..76cfc8593b 100644 --- a/packages/visual-editor/locales/platform/es/visual-editor.json +++ b/packages/visual-editor/locales/platform/es/visual-editor.json @@ -70,7 +70,9 @@ "message": "No se puede renderizar esta sección. Intente actualizar su biblioteca de componentes." }, "components": { + "CustomDirectory": "Directorio personalizado", "DirectoryGrid": "Cuadrícula de directorio", + "SearchResultsSlot": "Ranura de resultados de búsqueda", "Video": "Video", "aboutSection": "Acerca de la sección", "aboutSectionDetailsColumn": "Columna de detalles", @@ -83,6 +85,7 @@ "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", "directory": "Directorio", "emails": "Correos electrónicos", @@ -129,6 +132,8 @@ "professionalHeroSection": "Sección de héroe profesional", "promoSection": "Sección promocional", "reviewsSection": "Sección de revisiones", + "searchBarSlot": "Ranura de la barra de búsqueda", + "searchWithSlots": "Buscar con ranuras", "secondaryFooter": "Pie de página secundario", "secondaryHeader": "Encabezado secundario", "staticMapSection": "Sección de mapa estático", @@ -201,6 +206,7 @@ "buttonText": "Texto del botón", "buttons": "Botones", "callToAction": "Llamado a la acción", + "cardType": "Tipo de tarjeta", "cardVariant": "Variante de tarjeta", "cards": "Tarjetas", "carouselImageCount": "Recuento de imágenes del carrusel", @@ -242,7 +248,9 @@ "emailList": "Lista de correo electrónico", "emails": "Correos electrónicos", "emailsListLength": "Longitud de la lista de correos electrónicos", + "enableGenerativeDirectAnswer": "Respuesta directa generativa", "enableLanguageSelector": "Habilitar el selector de idiomas", + "enableVisualAutoComplete": "Habilitar autocompletar visual", "endDate": "Fecha de finalización", "eventName": "Nombre del evento", "events": "Eventos", @@ -262,6 +270,7 @@ "heading": "Título", "headingAlign": "Encabezado alinearse", "headingLevel": "Nivel de rumbo", + "headingStyle": "Estilo de título", "headingText": "Texto de encabezado", "headshot": "Disparo a la cabeza", "height": "Altura", @@ -285,11 +294,13 @@ "insightSection": "Sección de información", "insights": "Perspectivas", "instagramLink": "Enlace de Instagram", + "isTypingEffect": "Tipo Efecto", "javascript": "JavaScript", "justifyContent": "Justificar contenido", "key": "Clave", "label": "Etiqueta", "latitude": "Latitud", + "layout": "Disposición", "level": "Nivel", "limit": "Límite", "link": "Enlace", @@ -497,6 +508,7 @@ "showDetailsColumn": "Mostrar columna de detalles", "showEmail": "Mostrar correo electrónico", "showGetDirectionsLink": "Show Get Directions Link", + "showIcon": "Mostrar icono", "showImage": "Muestra la imagen", "showImageConstrain": "Mostrar restricción de imagen", "showLanguageDropdown": "Mostrar el menú desplegable del idioma", @@ -526,6 +538,7 @@ "timeFormat": "Formato de tiempo", "title": "Título", "truncateDescription": "Descripción truncada", + "universalLimit": "Límite universal", "url": "Url", "utilityImages": "Imágenes de utilidad", "utilityImagesStyles": "Estilos de imágenes de servicios públicos", @@ -533,9 +546,14 @@ "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", "width": "Ancho", "wrap": "Envoltura", "xLink": "X enlace", @@ -596,7 +614,11 @@ "mediaType": "Tipo de medios", "mile_one": "milla", "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", "name": "Nombre", "nearbyLocationsEmptyState": "No hay {{entityType}} dentro de {{radius}} {{unit}}", diff --git a/packages/visual-editor/locales/platform/et/visual-editor.json b/packages/visual-editor/locales/platform/et/visual-editor.json index 4fc3dbd24d..f247077d5e 100644 --- a/packages/visual-editor/locales/platform/et/visual-editor.json +++ b/packages/visual-editor/locales/platform/et/visual-editor.json @@ -70,7 +70,9 @@ "message": "Seda jaotist ei saa renderdada. Proovige oma komponentide teeki värskendada." }, "components": { + "CustomDirectory": "Kohandatud kataloog", "DirectoryGrid": "Kataloogivõrk", + "SearchResultsSlot": "Otsingutulemuste pesa", "Video": "Video", "aboutSection": "Sektsiooni kohta", "aboutSectionDetailsColumn": "Üksikasjade veerg", @@ -83,6 +85,7 @@ "copyrightMessage": "Autoriõiguse sõnum", "coreInfoSection": "Põhiteabe jaotis", "ctaGroup": "CTA rühm", + "customBreadcrumbs": "Kohandatud leivapuru", "customCodeSection": "Kohandatud koodisektsioon", "directory": "Kataloog", "emails": "E -kirjad", @@ -130,6 +133,8 @@ "professionalHeroSection": "Professionaalne kangelaste sektsioon", "promoSection": "Promo osakond", "reviewsSection": "Arvustuste jaotis", + "searchBarSlot": "Otsinguriba pesa", + "searchWithSlots": "Otsige teenindusaegadega", "secondaryFooter": "Teisene jalus", "secondaryHeader": "Sekundaarne päis", "staticMapSection": "Staatiline kaardiosa", @@ -202,6 +207,7 @@ "buttonText": "Nupu tekst", "buttons": "Nupud", "callToAction": "Kutsuge tegutseda", + "cardType": "Kaardi tüüp", "cardVariant": "Kaardi variant", "cards": "Kaardid", "carouselImageCount": "Karusselli piltide arv", @@ -243,7 +249,9 @@ "emailList": "E -posti nimekiri", "emails": "E -kirjad", "emailsListLength": "E -kirjade loendi pikkus", + "enableGenerativeDirectAnswer": "Generatiivne otsene vastus", "enableLanguageSelector": "Luba keelevalija", + "enableVisualAutoComplete": "Visuaalse automaatse täitmise lubamine", "endDate": "Lõppkuupäev", "eventName": "Sündmuse nimi", "events": "Sündmused", @@ -263,6 +271,7 @@ "heading": "Pealkiri", "headingAlign": "Juhid joondama", "headingLevel": "Pealkirjade tase", + "headingStyle": "Pealkirja stiil", "headingText": "Pealkiri", "headshot": "Pealatt", "height": "Kõrgus", @@ -286,11 +295,13 @@ "insightSection": "Ülevaateosa", "insights": "Teadmised", "instagramLink": "Instagrami link", + "isTypingEffect": "Tüüp Efekt", "javascript": "JavaScript", "justifyContent": "Õigustage sisu", "key": "Võti", "label": "Silt", "latitude": "Laius", + "layout": "Paigutus", "level": "Tasand", "limit": "Piiranguid", "link": "Link", @@ -498,6 +509,7 @@ "showDetailsColumn": "Kuva üksikasjade veerg", "showEmail": "Näita e-posti", "showGetDirectionsLink": "Näita hankige juhiseid link", + "showIcon": "Näita ikooni", "showImage": "Kujutage pilti", "showImageConstrain": "Näita pildipiirangut", "showLanguageDropdown": "Näita keele rippmenüü", @@ -527,6 +539,7 @@ "timeFormat": "Ajavorm", "title": "Tiitel", "truncateDescription": "Kärbige kirjeldus", + "universalLimit": "Universaalne limiit", "url": "Url", "utilityImages": "Utiliidipildid", "utilityImagesStyles": "Utiliidipildid stiilid", @@ -534,9 +547,14 @@ "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", "width": "Laius", "wrap": "Mähis", "xLink": "X Link", @@ -597,7 +615,11 @@ "mediaType": "Meediumitüüp", "mile_one": "miil", "mile_other": "miili", + "missingCustomEndpointApiKey": "Selle jaotise vaatamiseks lisage oma 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", "name": "Nimetus", "nearbyLocationsEmptyState": "{{entityType}} pole {{radius}} {{unit}} raadiuses", diff --git a/packages/visual-editor/locales/platform/fi/visual-editor.json b/packages/visual-editor/locales/platform/fi/visual-editor.json index 65fbc2ef3c..be1b4c4b6f 100644 --- a/packages/visual-editor/locales/platform/fi/visual-editor.json +++ b/packages/visual-editor/locales/platform/fi/visual-editor.json @@ -70,7 +70,9 @@ "message": "Tätä osiota ei voi renderöidä. Yritä päivittää komponenttikirjastosi." }, "components": { + "CustomDirectory": "Mukautettu hakemisto", "DirectoryGrid": "Hakemistoruudukko", + "SearchResultsSlot": "Hakutulosten paikka", "Video": "Video", "aboutSection": "Tietoja osiosta", "aboutSectionDetailsColumn": "Yksityiskohdat -sarake", @@ -83,6 +85,7 @@ "copyrightMessage": "Tekijänoikeusviesti", "coreInfoSection": "Ydintiedot -osio", "ctaGroup": "CTA -ryhmä", + "customBreadcrumbs": "Mukautetut murut", "customCodeSection": "Mukautettu koodiosa", "directory": "Hakemisto", "emails": "Sähköpostit", @@ -130,6 +133,8 @@ "professionalHeroSection": "Ammattimainen sankariosasto", "promoSection": "Promoosio", "reviewsSection": "Arvosteluosa", + "searchBarSlot": "Hakupalkin paikka", + "searchWithSlots": "Hae Slotsilla", "secondaryFooter": "Toissijainen alatunniste", "secondaryHeader": "Toissijainen otsikko", "staticMapSection": "Staattinen karttaosa", @@ -202,6 +207,7 @@ "buttonText": "Painikkeen teksti", "buttons": "Painikkeet", "callToAction": "Toimintakehotus", + "cardType": "Kortin tyyppi", "cardVariant": "Kortin variantti", "cards": "Kortit", "carouselImageCount": "Karuselli kuvien määrä", @@ -243,7 +249,9 @@ "emailList": "Sähköpostiluettelo", "emails": "Sähköpostit", "emailsListLength": "Sähköpostiluettelon pituus", + "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ä", "eventName": "Tapahtuman nimi", "events": "Tapahtumat", @@ -263,6 +271,7 @@ "heading": "Otsikko", "headingAlign": "Suuntaviiva", "headingLevel": "Päätaso", + "headingStyle": "Otsikon tyyli", "headingText": "Testi", "headshot": "Headshot", "height": "Korkeus", @@ -286,11 +295,13 @@ "insightSection": "Oivallusosa", "insights": "Oivallukset", "instagramLink": "Instagram -linkki", + "isTypingEffect": "Kirjoita tehoste", "javascript": "JavaScript", "justifyContent": "Perustele sisältöä", "key": "Avain", "label": "Merkitä", "latitude": "Leveysaste", + "layout": "Layout", "level": "Taso", "limit": "Rajoittaa", "link": "Linkki", @@ -498,6 +509,7 @@ "showDetailsColumn": "Näytä tiedot -sarake", "showEmail": "Näytä sähköposti", "showGetDirectionsLink": "Näytä get directions -linkki", + "showIcon": "Näytä kuvake", "showImage": "Näytä kuva", "showImageConstrain": "Näytä kuvarajoitus", "showLanguageDropdown": "Näytä kieli avattava", @@ -527,6 +539,7 @@ "timeFormat": "Aikamuoto", "title": "Otsikko", "truncateDescription": "Katkaisukuvaus", + "universalLimit": "Universal Limit", "url": "URL -osoite", "utilityImages": "Apuohjelmakuvat", "utilityImagesStyles": "Apuohjelmakuvat tyylit", @@ -534,9 +547,14 @@ "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", "width": "Leveys", "wrap": "Kääriä", "xLink": "X -linkki", @@ -597,7 +615,11 @@ "mediaType": "Mediatyyppi", "mile_one": "maili", "mile_other": "mailia", + "missingCustomEndpointApiKey": "Lisää mukautettu Content endpoint 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", "name": "Nimi", "nearbyLocationsEmptyState": "Ei {{entityType}} {{radius}} {{unit}} sisällä", diff --git a/packages/visual-editor/locales/platform/fr/visual-editor.json b/packages/visual-editor/locales/platform/fr/visual-editor.json index 3234019705..e52807a803 100644 --- a/packages/visual-editor/locales/platform/fr/visual-editor.json +++ b/packages/visual-editor/locales/platform/fr/visual-editor.json @@ -70,7 +70,9 @@ "message": "Impossible de restituer cette section. Essayez de mettre à jour votre bibliothèque de composants." }, "components": { + "CustomDirectory": "Répertoire personnalisé", "DirectoryGrid": "Grille de répertoire", + "SearchResultsSlot": "Emplacement des résultats de recherche", "Video": "Vidéo", "aboutSection": "À propos de la section", "aboutSectionDetailsColumn": "Colonne Détails", @@ -83,6 +85,7 @@ "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é", "directory": "Annuaire", "emails": "E-mails", @@ -129,6 +132,8 @@ "professionalHeroSection": "Section héros professionnel", "promoSection": "Section promotionnelle", "reviewsSection": "Section des avis", + "searchBarSlot": "Emplacement de la barre de recherche", + "searchWithSlots": "Rechercher avec des machines à sous", "secondaryFooter": "Pied de page secondaire", "secondaryHeader": "En-tête secondaire", "staticMapSection": "Section de carte statique", @@ -201,6 +206,7 @@ "buttonText": "Texte du bouton", "buttons": "Boutons", "callToAction": "Appel à l'action", + "cardType": "Type de carte", "cardVariant": "Variante de carte", "cards": "Cartes", "carouselImageCount": "Nombre d'images du carrousel", @@ -242,7 +248,9 @@ "emailList": "Liste de diffusion", "emails": "E-mails", "emailsListLength": "Longueur de liste des 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", "eventName": "Nom de l'événement", "events": "Événements", @@ -262,6 +270,7 @@ "heading": "Titre", "headingAlign": "Alignement de la rubrique", "headingLevel": "Niveau de cap", + "headingStyle": "Style de titre", "headingText": "Texte de tête", "headshot": "Photo du visage", "height": "Hauteur", @@ -285,11 +294,13 @@ "insightSection": "SECTION APPORT", "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", "level": "Niveau", "limit": "Limite", "link": "Lien", @@ -497,6 +508,7 @@ "showDetailsColumn": "Afficher la colonne Détails", "showEmail": "Afficher l'e-mail", "showGetDirectionsLink": "Afficher le lien des instructions", + "showIcon": "Afficher l'icône", "showImage": "Montrer l'image", "showImageConstrain": "Afficher la contrainte d'image", "showLanguageDropdown": "Afficher la liste déroulante de la langue", @@ -526,6 +538,7 @@ "timeFormat": "Format de temps", "title": "Titre", "truncateDescription": "Description tronquée", + "universalLimit": "Limite universelle", "url": "URL", "utilityImages": "Images de services publics", "utilityImagesStyles": "Styles d'images utilitaires", @@ -533,9 +546,14 @@ "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", "width": "Largeur", "wrap": "Envelopper", "xLink": "X lien", @@ -597,7 +615,11 @@ "mediaType": "Type de support", "mile_one": "mile", "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", "name": "Nom", "nearbyLocationsEmptyState": "Aucun {{entityType}} dans un rayon de {{radius}} {{unit}}", diff --git a/packages/visual-editor/locales/platform/hr/visual-editor.json b/packages/visual-editor/locales/platform/hr/visual-editor.json index 13d2d3b780..f29205d573 100644 --- a/packages/visual-editor/locales/platform/hr/visual-editor.json +++ b/packages/visual-editor/locales/platform/hr/visual-editor.json @@ -70,7 +70,9 @@ "message": "Nije moguće prikazati ovaj odjeljak. Pokušajte ažurirati biblioteku komponenti." }, "components": { + "CustomDirectory": "Prilagođeni imenik", "DirectoryGrid": "Rešetka direktorija", + "SearchResultsSlot": "Utor za rezultate pretraživanja", "Video": "Video", "aboutSection": "O odjeljku", "aboutSectionDetailsColumn": "Stupac pojedinosti", @@ -83,6 +85,7 @@ "copyrightMessage": "Poruka o autorskim pravima", "coreInfoSection": "Odjeljak jezgrenih informacija", "ctaGroup": "CTA grupa", + "customBreadcrumbs": "Custom Breadcrumbs", "customCodeSection": "Odjeljak prilagođenog koda", "directory": "Imenik", "emails": "E -mailovi", @@ -130,6 +133,8 @@ "professionalHeroSection": "Sekcija profesionalnih heroja", "promoSection": "Promotivni dio", "reviewsSection": "Odjeljak za preglede", + "searchBarSlot": "Traka za pretraživanje utor", + "searchWithSlots": "Pretraživanje s utorima", "secondaryFooter": "Sekundarno podnožje", "secondaryHeader": "Sekundarno zaglavlje", "staticMapSection": "Odjeljak statičke karte", @@ -202,6 +207,7 @@ "buttonText": "Tekst gumba", "buttons": "Gumbi", "callToAction": "Poziv na akciju", + "cardType": "Vrsta kartice", "cardVariant": "Varijanta kartice", "cards": "Karata", "carouselImageCount": "Broj slika vrtuljka", @@ -243,7 +249,9 @@ "emailList": "Popis e -pošte", "emails": "E -mailovi", "emailsListLength": "Dužina e -mailova", + "enableGenerativeDirectAnswer": "Generativni izravni odgovor", "enableLanguageSelector": "Omogući selektor jezika", + "enableVisualAutoComplete": "Omogući vizualno automatsko dovršavanje", "endDate": "Datum završetka", "eventName": "Naziv događaja", "events": "Događaj", @@ -263,6 +271,7 @@ "heading": "Naslov", "headingAlign": "Poravnavanje naslova", "headingLevel": "Razina naslova", + "headingStyle": "Stil naslova", "headingText": "Tekst naslova", "headshot": "Glava", "height": "Visina", @@ -286,11 +295,13 @@ "insightSection": "Odjeljak", "insights": "Uvidi", "instagramLink": "Instagram veza", + "isTypingEffect": "Učinak tipa", "javascript": "JavaScript", "justifyContent": "Opravdati sadržaj", "key": "Ključ", "label": "Označiti", "latitude": "Širina", + "layout": "Raspored", "level": "Nivo", "limit": "Ograničiti", "link": "Link", @@ -498,6 +509,7 @@ "showDetailsColumn": "Prikaži stupac pojedinosti", "showEmail": "Prikaži e-poštu", "showGetDirectionsLink": "Prikaži Link za upute", + "showIcon": "Prikaži ikonu", "showImage": "Prikaži sliku", "showImageConstrain": "Prikaži ograničenje slike", "showLanguageDropdown": "Prikaži padajući jezik", @@ -527,6 +539,7 @@ "timeFormat": "Format vremena", "title": "Titula", "truncateDescription": "Opis skraćenja", + "universalLimit": "Univerzalno ograničenje", "url": "URL", "utilityImages": "Uslužne slike", "utilityImagesStyles": "Stilovi uslužnih slika", @@ -534,9 +547,14 @@ "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", "width": "Širina", "wrap": "Zamotati", "xLink": "X Link", @@ -602,7 +620,11 @@ "mile_few": "milje", "mile_one": "milja", "mile_other": "milja", + "missingCustomEndpointApiKey": "Dodajte svoj 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", "name": "Ime", "nearbyLocationsEmptyState": "Nema {{entityType}} unutar {{radius}} {{unit}}", diff --git a/packages/visual-editor/locales/platform/hu/visual-editor.json b/packages/visual-editor/locales/platform/hu/visual-editor.json index 6ef1bf9af3..2d05ebeff5 100644 --- a/packages/visual-editor/locales/platform/hu/visual-editor.json +++ b/packages/visual-editor/locales/platform/hu/visual-editor.json @@ -70,7 +70,9 @@ "message": "Ez a szakasz nem jeleníthető meg. Próbálja meg frissíteni az összetevőkönyvtárat." }, "components": { + "CustomDirectory": "Egyéni címtár", "DirectoryGrid": "Címtárrács", + "SearchResultsSlot": "Keresési eredmények Slot", "Video": "Videó", "aboutSection": "A szakaszról", "aboutSectionDetailsColumn": "Részletek oszlop", @@ -83,6 +85,7 @@ "copyrightMessage": "Copyright Message", "coreInfoSection": "Alapvető információ szakasz", "ctaGroup": "CTA -csoport", + "customBreadcrumbs": "Egyedi kenyérmorzsa", "customCodeSection": "Egyedi kód szakasz", "directory": "Könyvtár", "emails": "E -mailek", @@ -130,6 +133,8 @@ "professionalHeroSection": "Professzionális hős szekció", "promoSection": "Promóciós szakasz", "reviewsSection": "Áttekintési szakasz", + "searchBarSlot": "SearchBar 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", @@ -202,6 +207,7 @@ "buttonText": "Gomb szövege", "buttons": "Gombok", "callToAction": "Cselekvésre ösztönzés", + "cardType": "Kártya típusa", "cardVariant": "Kártya változat", "cards": "Kártyás kártyák", "carouselImageCount": "Forgóképek száma", @@ -243,7 +249,9 @@ "emailList": "E -mail lista", "emails": "E -mailek", "emailsListLength": "E -mailek listája hossza", + "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", "eventName": "Eseménynév", "events": "Események", @@ -263,6 +271,7 @@ "heading": "Cím", "headingAlign": "Fejjel igazítás", "headingLevel": "Irányszint", + "headingStyle": "Címsor stílusa", "headingText": "Fejléc", "headshot": "Fejlövés", "height": "Magasság", @@ -286,11 +295,13 @@ "insightSection": "Betekintési szakasz", "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", "level": "Szint", "limit": "Határ", "link": "Link", @@ -498,6 +509,7 @@ "showDetailsColumn": "Részletek oszlop megjelenítése", "showEmail": "E-mail megjelenítése", "showGetDirectionsLink": "Mutassa meg az Útmutatások linkjét", + "showIcon": "Ikon megjelenítése", "showImage": "Ábrázolást mutat", "showImageConstrain": "Képkorlát megjelenítése", "showLanguageDropdown": "Mutasd meg a nyelv legördülő menüjét", @@ -527,6 +539,7 @@ "timeFormat": "Időformátum", "title": "Cím", "truncateDescription": "Csonka leírás", + "universalLimit": "Univerzális limit", "url": "URL", "utilityImages": "Közüzemi képek", "utilityImagesStyles": "Segédprogramok stílusai", @@ -534,9 +547,14 @@ "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", "width": "Szélesség", "wrap": "Betakar", "xLink": "X link", @@ -597,7 +615,11 @@ "mediaType": "Média típus", "mile_one": "mérföld", "mile_other": "mérföld", + "missingCustomEndpointApiKey": "Adja hozzá egyéni tartalomvégpont API-kulcsát 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ő", "name": "Név", "nearbyLocationsEmptyState": "Nincs {{entityType}} {{radius}} {{unit}} belül", diff --git a/packages/visual-editor/locales/platform/it/visual-editor.json b/packages/visual-editor/locales/platform/it/visual-editor.json index c7ef57e545..5560202d9d 100644 --- a/packages/visual-editor/locales/platform/it/visual-editor.json +++ b/packages/visual-editor/locales/platform/it/visual-editor.json @@ -70,7 +70,9 @@ "message": "Impossibile eseguire il rendering di questa sezione. Prova ad aggiornare la libreria dei componenti." }, "components": { + "CustomDirectory": "Directory personalizzata", "DirectoryGrid": "Griglia di elenchi", + "SearchResultsSlot": "Slot dei risultati di ricerca", "Video": "Video", "aboutSection": "Informazioni sulla sezione", "aboutSectionDetailsColumn": "Colonna Dettagli", @@ -83,6 +85,7 @@ "copyrightMessage": "Messaggio sul diritto d'autore", "coreInfoSection": "Sezione Informazioni fondamentali", "ctaGroup": "Gruppo CTA", + "customBreadcrumbs": "Pangrattato personalizzato", "customCodeSection": "Sezione di codice personalizzato", "directory": "Directory", "emails": "E -mail", @@ -130,6 +133,8 @@ "professionalHeroSection": "Sezione Eroi Professionisti", "promoSection": "Sezione promozionale", "reviewsSection": "Sezione Recensioni", + "searchBarSlot": "Slot della barra di ricerca", + "searchWithSlots": "Cerca con gli slot", "secondaryFooter": "Piè di pagina secondario", "secondaryHeader": "Intestazione secondaria", "staticMapSection": "Sezione mappa statica", @@ -202,6 +207,7 @@ "buttonText": "Testo del pulsante", "buttons": "Pulsanti", "callToAction": "Invito all'azione", + "cardType": "Tipo di carta", "cardVariant": "Variante della carta", "cards": "Carte", "carouselImageCount": "Conteggio immagini carosello", @@ -243,7 +249,9 @@ "emailList": "Elenco e -mail", "emails": "E -mail", "emailsListLength": "Email Lunghezza dell'elenco", + "enableGenerativeDirectAnswer": "Risposta diretta generativa", "enableLanguageSelector": "Abilita selettore di lingue", + "enableVisualAutoComplete": "Abilita il completamento automatico visivo", "endDate": "Data di fine", "eventName": "Nome dell'evento", "events": "Eventi", @@ -263,6 +271,7 @@ "heading": "Intestazione", "headingAlign": "Intestazione allineamento", "headingLevel": "Livello di intestazione", + "headingStyle": "Stile di intestazione", "headingText": "Testo di testa", "headshot": "Colpo di testa", "height": "Altezza", @@ -286,11 +295,13 @@ "insightSection": "Sezione Insight", "insights": "Intuizioni", "instagramLink": "Link Instagram", + "isTypingEffect": "Tipo Effetto", "javascript": "JavaScript", "justifyContent": "Giustifica il contenuto", "key": "Chiave", "label": "Etichetta", "latitude": "Latitudine", + "layout": "Disposizione", "level": "Livello", "limit": "Limite", "link": "Collegamento", @@ -498,6 +509,7 @@ "showDetailsColumn": "Mostra colonna Dettagli", "showEmail": "Mostra e-mail", "showGetDirectionsLink": "Mostra il link Ottieni indicazioni", + "showIcon": "Mostra icona", "showImage": "Mostra l'immagine", "showImageConstrain": "Mostra vincolo immagine", "showLanguageDropdown": "Mostra il menu a discesa linguistica", @@ -527,6 +539,7 @@ "timeFormat": "Formato tempo", "title": "Titolo", "truncateDescription": "Descrizione del troncato", + "universalLimit": "Limite universale", "url": "URL", "utilityImages": "Immagini di utilità", "utilityImagesStyles": "Stili di immagini di utilità", @@ -534,9 +547,14 @@ "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", "width": "Larghezza", "wrap": "Avvolgere", "xLink": "X link", @@ -597,7 +615,11 @@ "mediaType": "Tipo di media", "mile_one": "miglio", "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", "name": "Nome", "nearbyLocationsEmptyState": "Nessun {{entityType}} entro {{radius}} {{unit}}", diff --git a/packages/visual-editor/locales/platform/ja/visual-editor.json b/packages/visual-editor/locales/platform/ja/visual-editor.json index 106b0548e1..d10770371e 100644 --- a/packages/visual-editor/locales/platform/ja/visual-editor.json +++ b/packages/visual-editor/locales/platform/ja/visual-editor.json @@ -70,7 +70,9 @@ "message": "このセクションをレンダリングできません。コンポーネント ライブラリを更新してみてください。" }, "components": { + "CustomDirectory": "カスタムディレクトリ", "DirectoryGrid": "ディレクトリグリッド", + "SearchResultsSlot": "検索結果スロット", "Video": "ビデオ", "aboutSection": "概要セクション", "aboutSectionDetailsColumn": "詳細欄", @@ -83,6 +85,7 @@ "copyrightMessage": "著作権メッセージ", "coreInfoSection": "コア情報セクション", "ctaGroup": "CTAグループ", + "customBreadcrumbs": "カスタムブレッドクラム", "customCodeSection": "カスタムコードセクション", "directory": "ディレクトリ", "emails": "メール", @@ -130,6 +133,8 @@ "professionalHeroSection": "プロヒーローセクション", "promoSection": "プロモーションセクション", "reviewsSection": "レビューセクション", + "searchBarSlot": "サーチバースロット", + "searchWithSlots": "スロットで検索", "secondaryFooter": "セカンダリフッター", "secondaryHeader": "二次ヘッダー", "staticMapSection": "静的マップセクション", @@ -202,6 +207,7 @@ "buttonText": "ボタンのテキスト", "buttons": "ボタン", "callToAction": "行動を促す", + "cardType": "カードの種類", "cardVariant": "カードのバリエーション", "cards": "カード", "carouselImageCount": "カルーセル画像数", @@ -243,7 +249,9 @@ "emailList": "メーリングリスト", "emails": "メール", "emailsListLength": "メールリストの長さ", + "enableGenerativeDirectAnswer": "生成的な直接回答", "enableLanguageSelector": "言語セレクターを有効にします", + "enableVisualAutoComplete": "ビジュアルオートコンプリートを有効にする", "endDate": "終了日", "eventName": "イベント名", "events": "イベント", @@ -263,6 +271,7 @@ "heading": "見出し", "headingAlign": "見出し揃え", "headingLevel": "見出しレベル", + "headingStyle": "見出しスタイル", "headingText": "見出しテキスト", "headshot": "ヘッド・ショット", "height": "身長", @@ -286,11 +295,13 @@ "insightSection": "洞察セクション", "insights": "洞察", "instagramLink": "Instagramリンク", + "isTypingEffect": "タイプ効果", "javascript": "JavaScript", "justifyContent": "コンテンツを正当化します", "key": "キー", "label": "ラベル", "latitude": "緯度", + "layout": "レイアウト", "level": "レベル", "limit": "制限", "link": "リンク", @@ -498,6 +509,7 @@ "showDetailsColumn": "詳細欄を表示", "showEmail": "電子メールを表示", "showGetDirectionsLink": "表示する方向リンクを表示します", + "showIcon": "アイコンを表示", "showImage": "画像を表示します", "showImageConstrain": "画像制約を表示", "showLanguageDropdown": "言語ドロップダウンを表示します", @@ -527,6 +539,7 @@ "timeFormat": "時間形式", "title": "タイトル", "truncateDescription": "説明の切り捨て", + "universalLimit": "普遍的な制限", "url": "URL", "utilityImages": "ユーティリティ画像", "utilityImagesStyles": "ユーティリティイメージのスタイル", @@ -534,9 +547,14 @@ "value": "値", "values": "値", "variant": "変異体", + "verticalKey": "垂直キー", + "verticalLimit": "垂直限界", "verticalPadding": "上/下のパディング", + "verticals": "垂直方向", "video": "ビデオ", "visibleOnLivePage": "ライブページに表示されます", + "visualAutoCompleteVerticalKey": "ビジュアルオートコンプリート垂直キー", + "voiceSearch": "音声検索", "width": "幅", "wrap": "包む", "xLink": "Xリンク", @@ -592,7 +610,11 @@ "maxWidthTip": "最適なコンテンツアラインメントについては、ページコンテンツグリッドに一致またはそれを超えるように、ヘッダーとフッターの幅を設定することをお勧めします。", "mediaType": "メディアタイプ", "mile_other": "マイル", + "missingCustomEndpointApiKey": "このセクションを表示するには、カスタム コンテンツ エンドポイント API キーを追加してください", + "missingCustomEndpointName": "このセクションを表示するには、カスタム コンテンツ エンドポイント名を追加します", "missingHtmlWidget": "HTMLを追加してコンポーネントを表示します", + "missingSearchApiKey": "このセクションを表示するには、検索 API キーを追加してください", + "missingSearchExperienceKey": "このセクションを表示するには、検索エクスペリエンス キーを追加してください", "monday": "月曜日", "name": "名前", "nearbyLocationsEmptyState": "{{radius}} {{unit}} 以内に {{entityType}} はありません", diff --git a/packages/visual-editor/locales/platform/lt/visual-editor.json b/packages/visual-editor/locales/platform/lt/visual-editor.json index 29998343a9..4d8ef492e0 100644 --- a/packages/visual-editor/locales/platform/lt/visual-editor.json +++ b/packages/visual-editor/locales/platform/lt/visual-editor.json @@ -70,7 +70,9 @@ "message": "Nepavyko pateikti šios skilties. Pabandykite atnaujinti komponentų biblioteką." }, "components": { + "CustomDirectory": "Pasirinktinis katalogas", "DirectoryGrid": "Katalogų tinklelis", + "SearchResultsSlot": "Paieškos rezultatų lizdas", "Video": "Vaizdo įrašas", "aboutSection": "Apie skyrių", "aboutSectionDetailsColumn": "Išsamios informacijos stulpelis", @@ -83,6 +85,7 @@ "copyrightMessage": "Autorių teisių žinutė", "coreInfoSection": "Pagrindinės informacijos skyrius", "ctaGroup": "CTA grupė", + "customBreadcrumbs": "Individualūs duonos trupiniai", "customCodeSection": "Pasirinktinio kodo skyrius", "directory": "Katalogas", "emails": "El. El. laiškai", @@ -130,6 +133,8 @@ "professionalHeroSection": "Profesionalus herojų skyrius", "promoSection": "Promo skyrius", "reviewsSection": "Apžvalgų skyrius", + "searchBarSlot": "Paieškos juostos lizdas", + "searchWithSlots": "Ieškokite su Slots", "secondaryFooter": "Antrinė poraštė", "secondaryHeader": "Antrinė antraštė", "staticMapSection": "Statinio žemėlapio skyrius", @@ -202,6 +207,7 @@ "buttonText": "Mygtuko tekstas", "buttons": "Mygtukai", "callToAction": "Raginimas veikti", + "cardType": "Kortelės tipas", "cardVariant": "Kortelės variantas", "cards": "Kortelės", "carouselImageCount": "Karuselės vaizdų skaičius", @@ -243,7 +249,9 @@ "emailList": "El. Pašto sąrašas", "emails": "El. El. laiškai", "emailsListLength": "El. Laiškų sąrašo ilgis", + "enableGenerativeDirectAnswer": "Generatyvus tiesioginis atsakymas", "enableLanguageSelector": "Įgalinti kalbos parinkiklį", + "enableVisualAutoComplete": "Įgalinti vaizdinį automatinį užbaigimą", "endDate": "Pabaigos data", "eventName": "Įvykio pavadinimas", "events": "Įvykiai", @@ -263,6 +271,7 @@ "heading": "Antraštė", "headingAlign": "Antraštės derinimas", "headingLevel": "Antraštės lygis", + "headingStyle": "Antraštės stilius", "headingText": "Antraštės tekstas", "headshot": "Headshot", "height": "Ūgis", @@ -286,11 +295,13 @@ "insightSection": "Įžvalgos skyrius", "insights": "Įžvalgos", "instagramLink": "„Instagram“ nuoroda", + "isTypingEffect": "Tipo efektas", "javascript": "„JavaScript“", "justifyContent": "Pateisinkite turinį", "key": "Raktas", "label": "Etiketė", "latitude": "Platuma", + "layout": "Išdėstymas", "level": "Lygis", "limit": "Limit", "link": "Nuoroda", @@ -498,6 +509,7 @@ "showDetailsColumn": "Rodyti išsamios informacijos stulpelį", "showEmail": "Rodyti el", "showGetDirectionsLink": "Rodyti nuorodų nuorodą", + "showIcon": "Rodyti piktogramą", "showImage": "Rodyti vaizdą", "showImageConstrain": "Rodyti vaizdo apribojimą", "showLanguageDropdown": "Rodyti išskleidžiamąjį kalbą", @@ -527,6 +539,7 @@ "timeFormat": "Laiko formatas", "title": "Pavadinimas", "truncateDescription": "TRUNCATE APRAŠYMAS", + "universalLimit": "Universalus limitas", "url": "URL", "utilityImages": "Naudingumo vaizdai", "utilityImagesStyles": "Naudingų vaizdų stiliai", @@ -534,9 +547,14 @@ "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", "width": "Plotis", "wrap": "Apvynioti", "xLink": "X nuoroda", @@ -607,7 +625,11 @@ "mile_many": "mylios", "mile_one": "mylia", "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", "name": "Vardas", "nearbyLocationsEmptyState": "Nėra {{entityType}} per {{radius}} {{unit}}", diff --git a/packages/visual-editor/locales/platform/lv/visual-editor.json b/packages/visual-editor/locales/platform/lv/visual-editor.json index f777d8ddcc..643313e231 100644 --- a/packages/visual-editor/locales/platform/lv/visual-editor.json +++ b/packages/visual-editor/locales/platform/lv/visual-editor.json @@ -70,7 +70,9 @@ "message": "Nevar atveidot šo sadaļu. Mēģiniet atjaunināt savu komponentu bibliotēku." }, "components": { + "CustomDirectory": "Pielāgots direktorijs", "DirectoryGrid": "Direktoriju režģis", + "SearchResultsSlot": "Meklēšanas rezultātu slots", "Video": "Video", "aboutSection": "Par sadaļu", "aboutSectionDetailsColumn": "Detaļu kolonna", @@ -83,6 +85,7 @@ "copyrightMessage": "Autortiesību ziņojums", "coreInfoSection": "Pamatinformācija", "ctaGroup": "CTA grupa", + "customBreadcrumbs": "Pielāgotas rīvmaizes", "customCodeSection": "Pielāgota koda sadaļa", "directory": "Direktors", "emails": "E -pasti", @@ -130,6 +133,8 @@ "professionalHeroSection": "Profesionālo varoņu sadaļa", "promoSection": "Promo sadaļa", "reviewsSection": "Atsauksmju sadaļa", + "searchBarSlot": "SearchBar Slot", + "searchWithSlots": "Meklēt ar slotiem", "secondaryFooter": "Sekundārā kājene", "secondaryHeader": "Sekundārā galvene", "staticMapSection": "Statiskās kartes sadaļa", @@ -202,6 +207,7 @@ "buttonText": "Pogas teksts", "buttons": "Pogas", "callToAction": "Aicināt uz rīcību", + "cardType": "Kartes veids", "cardVariant": "Kartes variants", "cards": "Kārtis", "carouselImageCount": "Karuseļa attēlu skaits", @@ -243,7 +249,9 @@ "emailList": "E -pasta saraksts", "emails": "E -pasti", "emailsListLength": "E -pastu saraksta garums", + "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", "eventName": "Notikuma nosaukums", "events": "Notikumi", @@ -263,6 +271,7 @@ "heading": "Virsraksts", "headingAlign": "Virzīšanās izlīdzināšana", "headingLevel": "Virsraksta līmenis", + "headingStyle": "Virsraksta stils", "headingText": "Virsraksts", "headshot": "Galvassega", "height": "Augstums", @@ -286,11 +295,13 @@ "insightSection": "Ieskatu sadaļa", "insights": "Ieskats", "instagramLink": "Instagram saite", + "isTypingEffect": "Tipa efekts", "javascript": "JavaScript", "justifyContent": "Pamatot saturu", "key": "Atslēga", "label": "Etiķete", "latitude": "Platums", + "layout": "Izkārtojums", "level": "Līdzvērtīgs", "limit": "Ierobežot", "link": "Saite", @@ -498,6 +509,7 @@ "showDetailsColumn": "Rādīt detaļas kolonnu", "showEmail": "Rādīt e-pastu", "showGetDirectionsLink": "Rādīt saiti Get Directions", + "showIcon": "Rādīt ikonu", "showImage": "Rādīt attēlu", "showImageConstrain": "Rādīt attēla ierobežojumu", "showLanguageDropdown": "Rādīt valodu nolaižamajā vietā", @@ -527,6 +539,7 @@ "timeFormat": "Laika formāts", "title": "Tituls", "truncateDescription": "Saīsināts apraksts", + "universalLimit": "Universālais ierobežojums", "url": "Url", "utilityImages": "Komunālo pakalpojumu attēli", "utilityImagesStyles": "Lietderības attēlu stili", @@ -534,9 +547,14 @@ "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", "width": "Platums", "wrap": "Ietīt", "xLink": "X saite", @@ -602,7 +620,11 @@ "mile_one": "jūdze", "mile_other": "jūdzes", "mile_zero": "jūdzes", + "missingCustomEndpointApiKey": "Pievienojiet savu pielāgoto 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", "name": "Nosaukt", "nearbyLocationsEmptyState": "Nav {{entityType}} {{radius}} {{unit}} rādiusā", diff --git a/packages/visual-editor/locales/platform/nb/visual-editor.json b/packages/visual-editor/locales/platform/nb/visual-editor.json index 5f2a7f92d8..12256d1401 100644 --- a/packages/visual-editor/locales/platform/nb/visual-editor.json +++ b/packages/visual-editor/locales/platform/nb/visual-editor.json @@ -70,7 +70,9 @@ "message": "Kan ikke gjengi denne delen. Prøv å oppdatere komponentbiblioteket." }, "components": { + "CustomDirectory": "Egendefinert katalog", "DirectoryGrid": "Katalognett", + "SearchResultsSlot": "Spor for søkeresultater", "Video": "Video", "aboutSection": "Om seksjon", "aboutSectionDetailsColumn": "Detaljer Kolonne", @@ -83,6 +85,7 @@ "copyrightMessage": "Opphavsrettsmelding", "coreInfoSection": "Kjerneinfo -seksjon", "ctaGroup": "CTA gruppe", + "customBreadcrumbs": "Egendefinerte brødsmuler", "customCodeSection": "Tilpasset kodeseksjon", "directory": "Katalog", "emails": "E-post", @@ -130,6 +133,8 @@ "professionalHeroSection": "Profesjonell helteseksjon", "promoSection": "Promo -seksjon", "reviewsSection": "Anmeldelser", + "searchBarSlot": "SearchBar-spor", + "searchWithSlots": "Søk med spilleautomater", "secondaryFooter": "Sekundær bunntekst", "secondaryHeader": "Sekundær overskrift", "staticMapSection": "Statisk kartseksjon", @@ -202,6 +207,7 @@ "buttonText": "Knappetekst", "buttons": "Knapper", "callToAction": "Ring til handling", + "cardType": "Korttype", "cardVariant": "Kortvariant", "cards": "Kort", "carouselImageCount": "Antall karusellbilder", @@ -243,7 +249,9 @@ "emailList": "E-postliste", "emails": "E-post", "emailsListLength": "E-postlistelengde", + "enableGenerativeDirectAnswer": "Generativt direkte svar", "enableLanguageSelector": "Aktiver språkvelger", + "enableVisualAutoComplete": "Aktiver visuell autofullføring", "endDate": "Sluttdato", "eventName": "Hendelsesnavn", "events": "Hendelser", @@ -263,6 +271,7 @@ "heading": "Overskrift", "headingAlign": "Overskrift justeres", "headingLevel": "Overskriftsnivå", + "headingStyle": "Overskriftsstil", "headingText": "Overskrift", "headshot": "Hodeskudd", "height": "Høyde", @@ -286,11 +295,13 @@ "insightSection": "Insight Section", "insights": "Innsikt", "instagramLink": "Instagram -lenke", + "isTypingEffect": "Type effekt", "javascript": "JavaScript", "justifyContent": "Rettferdiggjøre innhold", "key": "Nøkkel", "label": "Merkelapp", "latitude": "Breddegrad", + "layout": "Oppsett", "level": "Nivå", "limit": "Begrense", "link": "Lenke", @@ -498,6 +509,7 @@ "showDetailsColumn": "Vis detaljer kolonne", "showEmail": "Vis e-post", "showGetDirectionsLink": "Vis få veibeskrivelse lenke", + "showIcon": "Vis ikon", "showImage": "Vis bilde", "showImageConstrain": "Vis bildebegrensning", "showLanguageDropdown": "Vis nedtrekk i språk", @@ -527,6 +539,7 @@ "timeFormat": "Tidsformat", "title": "Tittel", "truncateDescription": "Avkortbeskrivelse", + "universalLimit": "Universell grense", "url": "URL", "utilityImages": "Verktøybilder", "utilityImagesStyles": "Utility Images Styles", @@ -534,9 +547,14 @@ "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", "width": "Bredde", "wrap": "Pakk", "xLink": "X lenke", @@ -597,7 +615,11 @@ "mediaType": "Medietype", "mile_one": "mil", "mile_other": "mil", + "missingCustomEndpointApiKey": "Legg til din egendefinerte Content Endpoint API-nøkkel for å se denne delen", + "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", "name": "Navn", "nearbyLocationsEmptyState": "Ingen {{entityType}} innenfor {{radius}} {{unit}}", diff --git a/packages/visual-editor/locales/platform/nl/visual-editor.json b/packages/visual-editor/locales/platform/nl/visual-editor.json index 8a51b8e0f4..d31cdfba71 100644 --- a/packages/visual-editor/locales/platform/nl/visual-editor.json +++ b/packages/visual-editor/locales/platform/nl/visual-editor.json @@ -70,7 +70,9 @@ "message": "Kan deze sectie niet weergeven. Probeer uw componentenbibliotheek bij te werken." }, "components": { + "CustomDirectory": "Aangepaste map", "DirectoryGrid": "Directoryraster", + "SearchResultsSlot": "Zoekresultaten Slot", "Video": "Video", "aboutSection": "Over Sectie", "aboutSectionDetailsColumn": "Detailskolom", @@ -83,6 +85,7 @@ "copyrightMessage": "Auteursrechtbericht", "coreInfoSection": "Core Info -sectie", "ctaGroup": "CTA -groep", + "customBreadcrumbs": "Aangepaste broodkruimels", "customCodeSection": "Aangepaste codesectie", "directory": "Directory", "emails": "E -mails", @@ -130,6 +133,8 @@ "professionalHeroSection": "Professionele heldensectie", "promoSection": "Promotectie", "reviewsSection": "Beoordelingen sectie", + "searchBarSlot": "Zoekbalkslot", + "searchWithSlots": "Zoeken met slots", "secondaryFooter": "Secundaire voettekst", "secondaryHeader": "Secundaire kop", "staticMapSection": "Statische kaartsectie", @@ -202,6 +207,7 @@ "buttonText": "Knoptekst", "buttons": "Knoppen", "callToAction": "Oproep tot actie", + "cardType": "Kaarttype", "cardVariant": "Kaartvariant", "cards": "Kaarten", "carouselImageCount": "Aantal carrouselafbeeldingen", @@ -243,7 +249,9 @@ "emailList": "E -maillijst", "emails": "E -mails", "emailsListLength": "E -mails lijst lengte", + "enableGenerativeDirectAnswer": "Generatief direct antwoord", "enableLanguageSelector": "Schakel taalselector in", + "enableVisualAutoComplete": "Schakel Visueel automatisch aanvullen in", "endDate": "Einddatum", "eventName": "Evenementnaam", "events": "Evenementen", @@ -263,6 +271,7 @@ "heading": "Kop", "headingAlign": "Regeloplossing", "headingLevel": "Regelniveau", + "headingStyle": "Kopstijl", "headingText": "Koptekst", "headshot": "Headshot", "height": "Hoogte", @@ -286,11 +295,13 @@ "insightSection": "Inzichtsectie", "insights": "Inzichten", "instagramLink": "Instagram -link", + "isTypingEffect": "Type-effect", "javascript": "JavaScript", "justifyContent": "Richt inhoud", "key": "Sleutel", "label": "Label", "latitude": "Breedte", + "layout": "Indeling", "level": "Niveau", "limit": "Beperken", "link": "Link", @@ -498,6 +509,7 @@ "showDetailsColumn": "Toon detailskolom", "showEmail": "Toon e-mail", "showGetDirectionsLink": "Toon een routebeschrijving Link", + "showIcon": "Pictogram weergeven", "showImage": "Toon afbeelding", "showImageConstrain": "Afbeeldingsbeperking weergeven", "showLanguageDropdown": "Toon de vervolgkeuzelijst", @@ -527,6 +539,7 @@ "timeFormat": "Tijdformaat", "title": "Titel", "truncateDescription": "Omgekeerde beschrijving", + "universalLimit": "Universele limiet", "url": "Url", "utilityImages": "Utility -afbeeldingen", "utilityImagesStyles": "Utility Images Styles", @@ -534,9 +547,14 @@ "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", "width": "Breedte", "wrap": "Wrap", "xLink": "X Link", @@ -597,7 +615,11 @@ "mediaType": "Type media", "mile_one": "mijl", "mile_other": "mijlen", + "missingCustomEndpointApiKey": "Voeg uw aangepaste API-sleutel voor het inhoudseindpunt 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", "name": "Naam", "nearbyLocationsEmptyState": "Geen {{entityType}} binnen {{radius}} {{unit}}", diff --git a/packages/visual-editor/locales/platform/pl/visual-editor.json b/packages/visual-editor/locales/platform/pl/visual-editor.json index f97783cb0c..7b2d178e9b 100644 --- a/packages/visual-editor/locales/platform/pl/visual-editor.json +++ b/packages/visual-editor/locales/platform/pl/visual-editor.json @@ -70,7 +70,9 @@ "message": "Nie można wyrenderować tej sekcji. Spróbuj zaktualizować bibliotekę komponentów." }, "components": { + "CustomDirectory": "Katalog niestandardowy", "DirectoryGrid": "Siatka katalogów", + "SearchResultsSlot": "Wyniki wyszukiwania", "Video": "Wideo", "aboutSection": "Sekcja o nas", "aboutSectionDetailsColumn": "Kolumna szczegółów", @@ -83,6 +85,7 @@ "copyrightMessage": "Wiadomość o prawach autorskich", "coreInfoSection": "Sekcja informacji podstawowych", "ctaGroup": "Grupa CTA", + "customBreadcrumbs": "Niestandardowe bułki tartej", "customCodeSection": "Sekcja kodu niestandardowego", "directory": "Informator", "emails": "E -maile", @@ -130,6 +133,8 @@ "professionalHeroSection": "Sekcja profesjonalnego bohatera", "promoSection": "Sekcja promocyjna", "reviewsSection": "Sekcja recenzji", + "searchBarSlot": "Pasek wyszukiwania", + "searchWithSlots": "Szukaj za pomocą automatów", "secondaryFooter": "Stopka pomocnicza", "secondaryHeader": "Nagłówek dodatkowy", "staticMapSection": "Sekcja mapy statycznej", @@ -203,6 +208,7 @@ "buttonText": "Tekst przycisku", "buttons": "Pikolak", "callToAction": "Zadzwoń do działania", + "cardType": "Typ karty", "cardVariant": "Wariant karty", "cards": "Karty", "carouselImageCount": "Liczba obrazów w karuzeli", @@ -244,7 +250,9 @@ "emailList": "Lista e -mail", "emails": "E -maile", "emailsListLength": "Lista e -maili długość", + "enableGenerativeDirectAnswer": "Generatywna odpowiedź bezpośrednia", "enableLanguageSelector": "Włącz wybór języka", + "enableVisualAutoComplete": "Włącz autouzupełnianie wizualne", "endDate": "Data zakończenia", "eventName": "Nazwa wydarzenia", "events": "Wydarzenia", @@ -264,6 +272,7 @@ "heading": "Nagłówek", "headingAlign": "Nagłówek wyrównany", "headingLevel": "Poziom nagłówka", + "headingStyle": "Styl nagłówka", "headingText": "Tekst nagłówka", "headshot": "Strzał w głowę", "height": "Wysokość", @@ -287,11 +296,13 @@ "insightSection": "Sekcja wglądu", "insights": "Spostrzeżenia", "instagramLink": "Link Instagram", + "isTypingEffect": "Efekt typu", "javascript": "JavaScript", "justifyContent": "Uzasadnić treść", "key": "Klucz", "label": "Etykieta", "latitude": "Szerokość", + "layout": "Układ", "level": "Poziom", "limit": "Limit", "link": "Połączyć", @@ -499,6 +510,7 @@ "showDetailsColumn": "Pokaż kolumnę szczegółów", "showEmail": "Pokaż e-mail", "showGetDirectionsLink": "Pokaż link Get Directions", + "showIcon": "Pokaż ikonę", "showImage": "Pokaż obraz", "showImageConstrain": "Pokaż ograniczenie obrazu", "showLanguageDropdown": "Pokaż rozwijanie języka", @@ -528,6 +540,7 @@ "timeFormat": "Format czasu", "title": "Tytuł", "truncateDescription": "Obcięty opis", + "universalLimit": "Limit uniwersalny", "url": "URL", "utilityImages": "Obrazy użyteczności", "utilityImagesStyles": "Style obrazów użytkowych", @@ -535,9 +548,14 @@ "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", "width": "Szerokość", "wrap": "Zawinąć", "xLink": "X link", @@ -608,7 +626,11 @@ "mile_many": "mil", "mile_one": "mila", "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", "name": "Nazwa", "nearbyLocationsEmptyState": "Brak {{entityType}} w promieniu {{radius}} {{unit}}", diff --git a/packages/visual-editor/locales/platform/pt/visual-editor.json b/packages/visual-editor/locales/platform/pt/visual-editor.json index 7c2b678bda..2a07d52b68 100644 --- a/packages/visual-editor/locales/platform/pt/visual-editor.json +++ b/packages/visual-editor/locales/platform/pt/visual-editor.json @@ -70,7 +70,9 @@ "message": "Não é possível renderizar esta seção. Tente atualizar sua biblioteca de componentes." }, "components": { + "CustomDirectory": "Diretório personalizado", "DirectoryGrid": "Grade de diretório", + "SearchResultsSlot": "Espaço de resultados de pesquisa", "Video": "Vídeo", "aboutSection": "Sobre a seção", "aboutSectionDetailsColumn": "Coluna de detalhes", @@ -83,6 +85,7 @@ "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", "directory": "Diretório", "emails": "E -mails", @@ -130,6 +133,8 @@ "professionalHeroSection": "Seção de Herói Profissional", "promoSection": "Seção promocional", "reviewsSection": "Seção de revisões", + "searchBarSlot": "Slot da barra 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", @@ -202,6 +207,7 @@ "buttonText": "Texto do botão", "buttons": "Botões", "callToAction": "Chamado à ação", + "cardType": "Tipo de cartão", "cardVariant": "Variante de cartão", "cards": "Cartões", "carouselImageCount": "Contagem de imagens do carrossel", @@ -243,7 +249,9 @@ "emailList": "Lista de e -mails", "emails": "E -mails", "emailsListLength": "Comprimento da lista de e -mails", + "enableGenerativeDirectAnswer": "Resposta direta generativa", "enableLanguageSelector": "Ativar seletor de linguagem", + "enableVisualAutoComplete": "Ativar preenchimento automático visual", "endDate": "Data de término", "eventName": "Nome do evento", "events": "Eventos", @@ -263,6 +271,7 @@ "heading": "Cabeçalho", "headingAlign": "Cabeçalho alinhado", "headingLevel": "Nível de cabeçalho", + "headingStyle": "Estilo de título", "headingText": "Texto do cabeçalho", "headshot": "Tiro na cabeça", "height": "Altura", @@ -286,11 +295,13 @@ "insightSection": "Seção de Insight", "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", "level": "Nível", "limit": "Limite", "link": "Link", @@ -498,6 +509,7 @@ "showDetailsColumn": "Mostrar coluna de detalhes", "showEmail": "Mostrar e-mail", "showGetDirectionsLink": "Mostrar link Get Directions", + "showIcon": "Mostrar ícone", "showImage": "Mostre a imagem", "showImageConstrain": "Mostrar restrição de imagem", "showLanguageDropdown": "Mostrar suspensão do idioma", @@ -527,6 +539,7 @@ "timeFormat": "Formato de tempo", "title": "Título", "truncateDescription": "Descrição truncada", + "universalLimit": "Limite universal", "url": "Url", "utilityImages": "Imagens de utilitário", "utilityImagesStyles": "Estilos de imagens utilitárias", @@ -534,9 +547,14 @@ "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", "width": "Largura", "wrap": "Enrolar", "xLink": "X link", @@ -597,7 +615,11 @@ "mediaType": "Tipo de mídia", "mile_one": "milha", "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", "name": "Nome", "nearbyLocationsEmptyState": "Nenhum {{entityType}} num raio de {{radius}} {{unit}}", diff --git a/packages/visual-editor/locales/platform/ro/visual-editor.json b/packages/visual-editor/locales/platform/ro/visual-editor.json index 4f11dda26f..0569432d75 100644 --- a/packages/visual-editor/locales/platform/ro/visual-editor.json +++ b/packages/visual-editor/locales/platform/ro/visual-editor.json @@ -70,7 +70,9 @@ "message": "Nu se poate reda această secțiune. Încercați să vă actualizați biblioteca de componente." }, "components": { + "CustomDirectory": "Director personalizat", "DirectoryGrid": "Director Grid", + "SearchResultsSlot": "Slot pentru rezultatele căutării", "Video": "Video", "aboutSection": "Secțiunea Despre", "aboutSectionDetailsColumn": "Coloana Detalii", @@ -83,6 +85,7 @@ "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", "directory": "Director", "emails": "E -mailuri", @@ -130,6 +133,8 @@ "professionalHeroSection": "Secția Eroi Profesioniști", "promoSection": "Secțiunea promo", "reviewsSection": "Secțiunea de recenzii", + "searchBarSlot": "Slot pentru bara de căutare", + "searchWithSlots": "Căutați cu sloturi", "secondaryFooter": "Subsol secundar", "secondaryHeader": "Antet secundar", "staticMapSection": "Secțiunea hărții statice", @@ -202,6 +207,7 @@ "buttonText": "Text buton", "buttons": "Butoane", "callToAction": "Apel la acțiune", + "cardType": "Tip card", "cardVariant": "Varianta card", "cards": "Cărți", "carouselImageCount": "Număr de imagini carusel", @@ -243,7 +249,9 @@ "emailList": "Lista de e -mailuri", "emails": "E -mailuri", "emailsListLength": "Lista listei de e -mailuri", + "enableGenerativeDirectAnswer": "Răspuns direct generativ", "enableLanguageSelector": "Activați selectorul de limbă", + "enableVisualAutoComplete": "Activați completarea automată vizuală", "endDate": "Data de încheiere", "eventName": "Numele evenimentului", "events": "Evenimente", @@ -263,6 +271,7 @@ "heading": "Îndreptându -se", "headingAlign": "Se îndreaptă alinierea", "headingLevel": "Nivel de rubrică", + "headingStyle": "Stilul titlului", "headingText": "Text de îndreptare", "headshot": "Lovitură de cap", "height": "Înălţime", @@ -286,11 +295,13 @@ "insightSection": "Secțiune Insight", "insights": "Perspective", "instagramLink": "Link Instagram", + "isTypingEffect": "Efect de tip", "javascript": "JavaScript", "justifyContent": "Justifică conținutul", "key": "Cheie", "label": "Eticheta", "latitude": "Latitudine", + "layout": "Aspect", "level": "Nivel", "limit": "Limită", "link": "Legătură", @@ -498,6 +509,7 @@ "showDetailsColumn": "Afișează coloana Detalii", "showEmail": "Afișați e-mailul", "showGetDirectionsLink": "Afișați linkul Obțineți indicații", + "showIcon": "Afișează pictograma", "showImage": "Afișați imaginea", "showImageConstrain": "Afișați constrângerea imaginii", "showLanguageDropdown": "Afișați dropdown -ul limbajului", @@ -527,6 +539,7 @@ "timeFormat": "Format de timp", "title": "Titlu", "truncateDescription": "Descrierea trunchiei", + "universalLimit": "Limită universală", "url": "URL", "utilityImages": "Imagini utilitare", "utilityImagesStyles": "Stiluri de imagini utilitare", @@ -534,9 +547,14 @@ "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ă", "width": "Lăţime", "wrap": "Înveliș", "xLink": "X Link", @@ -602,7 +620,11 @@ "mile_few": "mile", "mile_one": "milă", "mile_other": "mile", + "missingCustomEndpointApiKey": "Adăugați cheia API personalizată 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", "name": "Nume", "nearbyLocationsEmptyState": "Nu există {{entityType}} în {{radius}} {{unit}}", diff --git a/packages/visual-editor/locales/platform/sk/visual-editor.json b/packages/visual-editor/locales/platform/sk/visual-editor.json index d020e62a88..37337506bc 100644 --- a/packages/visual-editor/locales/platform/sk/visual-editor.json +++ b/packages/visual-editor/locales/platform/sk/visual-editor.json @@ -70,7 +70,9 @@ "message": "Túto sekciu nie je možné vykresliť. Skúste aktualizovať knižnicu komponentov." }, "components": { + "CustomDirectory": "Vlastný adresár", "DirectoryGrid": "Mriežka adresára", + "SearchResultsSlot": "Slot výsledkov vyhľadávania", "Video": "Video", "aboutSection": "O sekcii", "aboutSectionDetailsColumn": "Stĺpec Podrobnosti", @@ -83,6 +85,7 @@ "copyrightMessage": "Správa o autorských právach", "coreInfoSection": "Sekcia", "ctaGroup": "Skupina CTA", + "customBreadcrumbs": "Vlastná strúhanka", "customCodeSection": "Vlastná sekcia kódu", "directory": "Adresár", "emails": "E-maily", @@ -130,6 +133,8 @@ "professionalHeroSection": "Sekcia profesionálnych hrdinov", "promoSection": "Promo sekcia", "reviewsSection": "Sekcia recenzií", + "searchBarSlot": "Slot SearchBar", + "searchWithSlots": "Hľadajte pomocou slotov", "secondaryFooter": "Sekundárna päta", "secondaryHeader": "Sekundárna hlavička", "staticMapSection": "Sekcia statickej mapy", @@ -203,6 +208,7 @@ "buttonText": "Text tlačidla", "buttons": "Gombíky", "callToAction": "Zavolať", + "cardType": "Typ karty", "cardVariant": "Variant karty", "cards": "Karty", "carouselImageCount": "Počet obrázkov na kolotoči", @@ -244,7 +250,9 @@ "emailList": "Zoznam e-mailov", "emails": "E-maily", "emailsListLength": "Zoznam e-mailov dĺžka", + "enableGenerativeDirectAnswer": "Generatívna priama odpoveď", "enableLanguageSelector": "Povoliť výber jazyka", + "enableVisualAutoComplete": "Povoliť vizuálne automatické dopĺňanie", "endDate": "Dátum ukončenia", "eventName": "Názov udalosti", "events": "Udalosti", @@ -264,6 +272,7 @@ "heading": "Hlavný", "headingAlign": "Vyrovnanie", "headingLevel": "Úroveň", + "headingStyle": "Štýl nadpisu", "headingText": "Hlavný text", "headshot": "Headshot", "height": "Výška", @@ -287,11 +296,13 @@ "insightSection": "Sekcia", "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", "level": "Vyrovnanie", "limit": "Obmedzenie", "link": "Prepojiť", @@ -499,6 +510,7 @@ "showDetailsColumn": "Zobraziť stĺpec Podrobnosti", "showEmail": "Zobraziť e-mail", "showGetDirectionsLink": "Zobraziť odkaz na pokyny", + "showIcon": "Zobraziť ikonu", "showImage": "Ukazovať", "showImageConstrain": "Zobraziť obmedzenie obrázka", "showLanguageDropdown": "Zobraziť rozbaľovače jazyka", @@ -528,6 +540,7 @@ "timeFormat": "Časový formát", "title": "Názov", "truncateDescription": "Skrátený popis", + "universalLimit": "Univerzálny limit", "url": "Adresa URL", "utilityImages": "Úžitkové obrázky", "utilityImagesStyles": "Úžitkové obrázky štýly", @@ -535,9 +548,14 @@ "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", "width": "Šírka", "wrap": "Zabaliť", "xLink": "X Link", @@ -608,7 +626,11 @@ "mile_many": "míľ", "mile_one": "míľa", "mile_other": "míľ", + "missingCustomEndpointApiKey": "Ak chcete zobraziť túto časť, pridajte svoj 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", "name": "Menovať", "nearbyLocationsEmptyState": "Žiadna {{entityType}} v okruhu {{radius}} {{unit}}", diff --git a/packages/visual-editor/locales/platform/sv/visual-editor.json b/packages/visual-editor/locales/platform/sv/visual-editor.json index ef9224dfce..b71bd4a52e 100644 --- a/packages/visual-editor/locales/platform/sv/visual-editor.json +++ b/packages/visual-editor/locales/platform/sv/visual-editor.json @@ -70,7 +70,9 @@ "message": "Det går inte att återge detta avsnitt. Testa att uppdatera ditt komponentbibliotek." }, "components": { + "CustomDirectory": "Anpassad katalog", "DirectoryGrid": "Katalogrutnät", + "SearchResultsSlot": "Sökresultat Slot", "Video": "Video", "aboutSection": "Om avsnitt", "aboutSectionDetailsColumn": "Detaljerad kolumn", @@ -83,6 +85,7 @@ "copyrightMessage": "Upphovsrättsmeddelande", "coreInfoSection": "Kärninfo -sektionen", "ctaGroup": "CTA -grupp", + "customBreadcrumbs": "Anpassade brödsmulor", "customCodeSection": "Anpassad kodavsnitt", "directory": "Katalog", "emails": "E -postmeddelanden", @@ -130,6 +133,8 @@ "professionalHeroSection": "Professionell hjältesektion", "promoSection": "Promo -sektion", "reviewsSection": "Recensionsavsnitt", + "searchBarSlot": "Sökbar Slot", + "searchWithSlots": "Sök med Slots", "secondaryFooter": "Sekundär sidfot", "secondaryHeader": "Sekundär rubrik", "staticMapSection": "Statisk kartavsnitt", @@ -203,6 +208,7 @@ "buttonText": "Knapptext", "buttons": "Knappar", "callToAction": "Uppmaning", + "cardType": "Korttyp", "cardVariant": "Kortvariant", "cards": "Kort", "carouselImageCount": "Antal karusellbilder", @@ -244,7 +250,9 @@ "emailList": "E -postlista", "emails": "E -postmeddelanden", "emailsListLength": "E -postlistor", + "enableGenerativeDirectAnswer": "Generativt direktsvar", "enableLanguageSelector": "Aktivera språkväljare", + "enableVisualAutoComplete": "Aktivera Visual Autocomplete", "endDate": "Slutdatum", "eventName": "Evenemangsnamn", "events": "Evenemang", @@ -264,6 +272,7 @@ "heading": "Rubrik", "headingAlign": "Rubriken justera", "headingLevel": "Rubriknivå", + "headingStyle": "Rubrik stil", "headingText": "Rubriktext", "headshot": "Huvudskott", "height": "Höjd", @@ -287,11 +296,13 @@ "insightSection": "Insiktsavdelning", "insights": "Insikt", "instagramLink": "Instagram -länk", + "isTypingEffect": "Typ Effekt", "javascript": "JavaScript", "justifyContent": "Motivera innehåll", "key": "Nyckel", "label": "Märka", "latitude": "Latitud", + "layout": "Layout", "level": "Nivå", "limit": "Begränsa", "link": "Länk", @@ -499,6 +510,7 @@ "showDetailsColumn": "Visa detaljkolumn", "showEmail": "Visa e-post", "showGetDirectionsLink": "Visa Get vägbeskrivningslänk", + "showIcon": "Visa ikon", "showImage": "Visa bild", "showImageConstrain": "Visa bildbegränsning", "showLanguageDropdown": "Visa språkfall", @@ -528,6 +540,7 @@ "timeFormat": "Tidsformat", "title": "Titel", "truncateDescription": "Avkunna beskrivning", + "universalLimit": "Universell gräns", "url": "Url", "utilityImages": "Verktygsbilder", "utilityImagesStyles": "Verktygsbilder stilar", @@ -535,9 +548,14 @@ "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", "width": "Bredd", "wrap": "Sjal", "xLink": "X -länk", @@ -598,7 +616,11 @@ "mediaType": "Medietyp", "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", "name": "Namn", "nearbyLocationsEmptyState": "Ingen {{entityType}} inom {{radius}} {{unit}}", diff --git a/packages/visual-editor/locales/platform/tr/visual-editor.json b/packages/visual-editor/locales/platform/tr/visual-editor.json index 9011ce1ce4..7201d52085 100644 --- a/packages/visual-editor/locales/platform/tr/visual-editor.json +++ b/packages/visual-editor/locales/platform/tr/visual-editor.json @@ -70,7 +70,9 @@ "message": "Bu bölüm oluşturulamıyor. Bileşen kitaplığınızı güncellemeyi deneyin." }, "components": { + "CustomDirectory": "Özel Dizin", "DirectoryGrid": "Dizin Izgarası", + "SearchResultsSlot": "Arama Sonuçları Yuvası", "Video": "Video", "aboutSection": "Hakkında Bölümü", "aboutSectionDetailsColumn": "Ayrıntılar Sütunu", @@ -83,6 +85,7 @@ "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ü", "directory": "Dizin", "emails": "E -postalar", @@ -130,6 +133,8 @@ "professionalHeroSection": "Profesyonel Kahraman Bölümü", "promoSection": "Promosyon bölümü", "reviewsSection": "İncelemeler Bölümü", + "searchBarSlot": "Arama Çubuğu Yuvası", + "searchWithSlots": "Slotlarla Ara", "secondaryFooter": "İkincil Altbilgi", "secondaryHeader": "İkincil Başlık", "staticMapSection": "Statik Harita Bölümü", @@ -202,6 +207,7 @@ "buttonText": "Düğme Metni", "buttons": "Düğmeler", "callToAction": "Harekete geçme çağrısı", + "cardType": "Kart Türü", "cardVariant": "Kart Varyantı", "cards": "Kart", "carouselImageCount": "Atlıkarınca Resim Sayısı", @@ -243,7 +249,9 @@ "emailList": "E -posta Listesi", "emails": "E -postalar", "emailsListLength": "E -postalar listesi uzunluğu", + "enableGenerativeDirectAnswer": "Üretken Doğrudan Cevap", "enableLanguageSelector": "Dil seçicisini etkinleştir", + "enableVisualAutoComplete": "Görsel Otomatik Tamamlamayı Etkinleştir", "endDate": "Bitiş Tarihi", "eventName": "Etkinlik Adı", "events": "Olaylar", @@ -263,6 +271,7 @@ "heading": "Başlık", "headingAlign": "Başlık hizası", "headingLevel": "Başlık", + "headingStyle": "Başlık Stili", "headingText": "Başlık metni", "headshot": "Kafadan vuruş", "height": "Yükseklik", @@ -286,11 +295,13 @@ "insightSection": "Insight bölümü", "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", "level": "Seviyesi", "limit": "Sınırlamak", "link": "Bağlantı", @@ -498,6 +509,7 @@ "showDetailsColumn": "Ayrıntılar Sütunu Göster", "showEmail": "E-postayı Göster", "showGetDirectionsLink": "Yol tarifi al bağlantısını göster", + "showIcon": "Simgeyi Göster", "showImage": "Resmi Göster", "showImageConstrain": "Görüntü Kısıtlamasını Göster", "showLanguageDropdown": "Dil açılışını göster", @@ -527,6 +539,7 @@ "timeFormat": "Zaman biçimi", "title": "Başlık", "truncateDescription": "Kesik Açıklama", + "universalLimit": "Evrensel Sınır", "url": "Url", "utilityImages": "Yardımcı resim resimleri", "utilityImagesStyles": "Fayda Görüntü Stilleri", @@ -534,9 +547,14 @@ "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", "width": "Genişlik", "wrap": "Dürüm", "xLink": "X Bağlantı", @@ -597,7 +615,11 @@ "mediaType": "Medya türü", "mile_one": "mil", "mile_other": "mil", + "missingCustomEndpointApiKey": "Bu bölümü görüntülemek için özel İçerik uç noktası API anahtarınızı 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", "name": "İsim", "nearbyLocationsEmptyState": "{{radius}} {{unit}} içerisinde {{entityType}} yok", 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 ebcfcaa578..04496500d6 100644 --- a/packages/visual-editor/locales/platform/zh-TW/visual-editor.json +++ b/packages/visual-editor/locales/platform/zh-TW/visual-editor.json @@ -70,7 +70,9 @@ "message": "無法渲染此部分。嘗試更新您的組件庫。" }, "components": { + "CustomDirectory": "自訂目錄", "DirectoryGrid": "目錄網格", + "SearchResultsSlot": "搜尋結果槽", "Video": "影片", "aboutSection": "關於部分", "aboutSectionDetailsColumn": "詳情欄目", @@ -83,6 +85,7 @@ "copyrightMessage": "版權信息", "coreInfoSection": "核心信息部分", "ctaGroup": "CTA組", + "customBreadcrumbs": "自訂麵包屑", "customCodeSection": "自定義代碼部分", "directory": "目錄", "emails": "電子郵件", @@ -130,6 +133,8 @@ "professionalHeroSection": "職業英雄部分", "promoSection": "促銷部分", "reviewsSection": "評論部分", + "searchBarSlot": "搜尋欄插槽", + "searchWithSlots": "老虎機搜尋", "secondaryFooter": "二級頁腳", "secondaryHeader": "二級標頭", "staticMapSection": "靜態地圖部分", @@ -202,6 +207,7 @@ "buttonText": "按鈕文字", "buttons": "按鈕", "callToAction": "打電話給行動", + "cardType": "卡片類型", "cardVariant": "卡牌變體", "cards": "牌", "carouselImageCount": "輪播圖像計數", @@ -243,7 +249,9 @@ "emailList": "電子郵件列表", "emails": "電子郵件", "emailsListLength": "電子郵件列表長度", + "enableGenerativeDirectAnswer": "產生直接答案", "enableLanguageSelector": "啟用語言選擇器", + "enableVisualAutoComplete": "啟用視覺自動完成", "endDate": "結束日期", "eventName": "事件名稱", "events": "事件", @@ -263,6 +271,7 @@ "heading": "標題", "headingAlign": "標題對齊", "headingLevel": "標題水平", + "headingStyle": "標題樣式", "headingText": "標題文字", "headshot": "爆頭", "height": "高度", @@ -286,11 +295,13 @@ "insightSection": "洞察力部分", "insights": "見解", "instagramLink": "Instagram鏈接", + "isTypingEffect": "類型 效果", "javascript": "JavaScript", "justifyContent": "證明內容合理", "key": "鍵", "label": "標籤", "latitude": "緯度", + "layout": "佈局", "level": "等級", "limit": "限制", "link": "鏈接", @@ -499,6 +510,7 @@ "showDetailsColumn": "顯示詳情欄", "showEmail": "顯示電子郵件", "showGetDirectionsLink": "顯示獲取說明鏈接", + "showIcon": "顯示圖示", "showImage": "顯示圖像", "showImageConstrain": "顯示圖像約束", "showLanguageDropdown": "顯示語言下拉", @@ -528,6 +540,7 @@ "timeFormat": "時間格式", "title": "標題", "truncateDescription": "截斷描述", + "universalLimit": "通用限制", "url": "URL", "utilityImages": "實用圖像", "utilityImagesStyles": "實用圖像樣式", @@ -535,9 +548,14 @@ "value": "值", "values": "值", "variant": "變體", + "verticalKey": "垂直鍵", + "verticalLimit": "垂直極限", "verticalPadding": "頂部/底部填充", + "verticals": "垂直領域", "video": "影片", "visibleOnLivePage": "在現場頁面上可見", + "visualAutoCompleteVerticalKey": "視覺自動完成垂直鍵", + "voiceSearch": "語音搜尋", "width": "寬度", "wrap": "裹", "xLink": "x鏈接", @@ -593,7 +611,11 @@ "maxWidthTip": "對於最佳內容對齊,我們建議將標題和頁腳寬度設置為匹配或超過頁面內容網格。", "mediaType": "媒體類型", "mile_other": "英里", + "missingCustomEndpointApiKey": "新增您的自訂內容端點 API 金鑰以查看此部分", + "missingCustomEndpointName": "新增您的自訂內容端點名稱以查看此部分", "missingHtmlWidget": "添加HTML以查看組件", + "missingSearchApiKey": "新增您的搜尋 API 金鑰以查看此部分", + "missingSearchExperienceKey": "新增您的搜尋體驗金鑰以查看此部分", "monday": "週一", "name": "姓名", "nearbyLocationsEmptyState": "{{radius}} {{unit}}內沒有 {{entityType}}", diff --git a/packages/visual-editor/locales/platform/zh/visual-editor.json b/packages/visual-editor/locales/platform/zh/visual-editor.json index 92864ca02a..db8bf01105 100644 --- a/packages/visual-editor/locales/platform/zh/visual-editor.json +++ b/packages/visual-editor/locales/platform/zh/visual-editor.json @@ -70,7 +70,9 @@ "message": "无法渲染此部分。尝试更新您的组件库。" }, "components": { + "CustomDirectory": "自定义目录", "DirectoryGrid": "目录网格", + "SearchResultsSlot": "搜索结果槽", "Video": "视频", "aboutSection": "关于部分", "aboutSectionDetailsColumn": "详情栏目", @@ -83,6 +85,7 @@ "copyrightMessage": "版权信息", "coreInfoSection": "核心信息部分", "ctaGroup": "CTA组", + "customBreadcrumbs": "自定义面包屑", "customCodeSection": "自定义代码部分", "directory": "目录", "emails": "电子邮件", @@ -130,6 +133,8 @@ "professionalHeroSection": "职业英雄部分", "promoSection": "促销部分", "reviewsSection": "评论部分", + "searchBarSlot": "搜索栏插槽", + "searchWithSlots": "老虎机搜索", "secondaryFooter": "二级页脚", "secondaryHeader": "二级标头", "staticMapSection": "静态地图部分", @@ -202,6 +207,7 @@ "buttonText": "按钮文字", "buttons": "按钮", "callToAction": "打电话给行动", + "cardType": "卡类型", "cardVariant": "卡片变体", "cards": "牌", "carouselImageCount": "轮播图像计数", @@ -243,7 +249,9 @@ "emailList": "电子邮件列表", "emails": "电子邮件", "emailsListLength": "电子邮件列表长度", + "enableGenerativeDirectAnswer": "生成直接答案", "enableLanguageSelector": "启用语言选择器", + "enableVisualAutoComplete": "启用视觉自动完成", "endDate": "结束日期", "eventName": "事件名称", "events": "事件", @@ -263,6 +271,7 @@ "heading": "标题", "headingAlign": "标题对齐", "headingLevel": "标题水平", + "headingStyle": "标题样式", "headingText": "标题文字", "headshot": "爆头", "height": "高度", @@ -286,11 +295,13 @@ "insightSection": "洞察力部分", "insights": "见解", "instagramLink": "Instagram链接", + "isTypingEffect": "类型 效果", "javascript": "JavaScript", "justifyContent": "证明内容合理", "key": "钥匙", "label": "标签", "latitude": "纬度", + "layout": "布局", "level": "等级", "limit": "限制", "link": "关联", @@ -498,6 +509,7 @@ "showDetailsColumn": "显示详情栏", "showEmail": "显示电子邮件", "showGetDirectionsLink": "显示获取说明链接", + "showIcon": "显示图标", "showImage": "显示图像", "showImageConstrain": "显示图像约束", "showLanguageDropdown": "显示语言下拉", @@ -527,6 +539,7 @@ "timeFormat": "时间格式", "title": "标题", "truncateDescription": "截断描述", + "universalLimit": "通用限制", "url": "URL", "utilityImages": "实用图像", "utilityImagesStyles": "实用图像样式", @@ -534,9 +547,14 @@ "value": "价值", "values": "值", "variant": "变体", + "verticalKey": "垂直键", + "verticalLimit": "垂直极限", "verticalPadding": "顶部/底部填充", + "verticals": "垂直领域", "video": "视频", "visibleOnLivePage": "在现场页面上可见", + "visualAutoCompleteVerticalKey": "视觉自动完成垂直键", + "voiceSearch": "语音搜索", "width": "宽度", "wrap": "裹", "xLink": "x链接", @@ -592,7 +610,11 @@ "maxWidthTip": "对于最佳内容对齐,我们建议将标题和页脚宽度设置为匹配或超过页面内容网格。", "mediaType": "媒体类型", "mile_other": "英里", + "missingCustomEndpointApiKey": "添加您的自定义内容端点 API 密钥以查看此部分", + "missingCustomEndpointName": "添加您的自定义内容端点名称以查看此部分", "missingHtmlWidget": "添加HTML以查看组件", + "missingSearchApiKey": "添加您的搜索 API 密钥以查看此部分", + "missingSearchExperienceKey": "添加您的搜索体验密钥以查看此部分", "monday": "周一", "name": "姓名", "nearbyLocationsEmptyState": "{{radius}} {{unit}}内没有 {{entityType}}", From 67429d8c83bb854d2d262fd6a7222c96d0d6bcaa Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Thu, 26 Feb 2026 15:55:16 +0530 Subject: [PATCH 65/68] updated packages --- package.json | 28 +- packages/visual-editor/package.json | 108 +- pnpm-lock.yaml | 5260 +++++++++++++-------------- starter/package.json | 72 +- 4 files changed, 2606 insertions(+), 2862 deletions(-) diff --git a/package.json b/package.json index ad314a63c1..9fe4b5d4b2 100644 --- a/package.json +++ b/package.json @@ -33,28 +33,28 @@ "homepage": "https://github.com/yext/visual-editor#readme", "devDependencies": { "@types/fs-extra": "^11.0.4", - "@types/lodash": "^4.14.202", + "@types/lodash": "^4.17.24", "@types/minimist": "^1.2.5", - "globals": "^15.8.0", - "@types/node": "^20.10.6", + "@types/node": "^20.19.34", "@types/prompts": "^2.4.9", - "@types/semver": "^7.5.6", - "oxlint": "1.2.0", + "@types/semver": "^7.7.1", "execa": "^8.0.1", - "fs-extra": "^11.2.0", + "fs-extra": "^11.3.3", "generate-changelog": "^1.8.0", - "generate-license-file": "^3.6.0", + "generate-license-file": "^3.8.1", + "globals": "^15.15.0", "husky": "^8.0.3", - "lint-staged": "^15.2.0", + "lint-staged": "^15.5.2", "minimist": "^1.2.8", - "picocolors": "^1.0.0", + "oxlint": "1.2.0", + "picocolors": "^1.1.1", "pkg-pr-new": "^0.0.54", - "prettier": "^3.3.3", + "prettier": "^3.8.1", "prompts": "^2.4.2", - "semver": "^7.5.4", - "tsx": "^4.6.2", - "typescript": "^5.3.3", - "yaml": "^2.3.4" + "semver": "^7.7.4", + "tsx": "^4.21.0", + "typescript": "^5.9.3", + "yaml": "^2.8.2" }, "packageManager": "pnpm@9.12.3", "pnpm": { diff --git a/packages/visual-editor/package.json b/packages/visual-editor/package.json index b358687e5d..c5be1d6b25 100644 --- a/packages/visual-editor/package.json +++ b/packages/visual-editor/package.json @@ -56,45 +56,45 @@ "i18n:update": "pnpm run i18n:extract:platform && pnpm run i18n:extract:components && pnpm run i18n:translate:platform && pnpm run i18n:propagate:components && pnpm run i18n:lint" }, "dependencies": { - "@microsoft/api-documenter": "^7.26.29", - "@microsoft/api-extractor": "^7.52.8", - "@microsoft/api-extractor-model": "^7.30.6", + "@microsoft/api-documenter": "^7.29.6", + "@microsoft/api-extractor": "^7.57.6", + "@microsoft/api-extractor-model": "^7.33.4", "@puckeditor/core": "0.21.1", - "@radix-ui/react-accordion": "^1.2.3", - "@radix-ui/react-alert-dialog": "^1.1.1", - "@radix-ui/react-dialog": "^1.1.13", - "@radix-ui/react-dropdown-menu": "^2.1.15", - "@radix-ui/react-label": "^2.1.0", - "@radix-ui/react-popover": "^1.1.6", - "@radix-ui/react-progress": "^1.1.0", - "@radix-ui/react-radio-group": "^1.2.1", - "@radix-ui/react-separator": "^1.1.7", - "@radix-ui/react-slot": "^1.1.0", - "@radix-ui/react-switch": "^1.1.0", - "@radix-ui/react-toggle": "^1.1.9", - "@radix-ui/react-tooltip": "^1.1.2", - "@tanstack/react-query": "^5.71.5", - "class-variance-authority": "^0.7.0", + "@radix-ui/react-accordion": "^1.2.12", + "@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.8", + "@radix-ui/react-popover": "^1.1.15", + "@radix-ui/react-progress": "^1.1.8", + "@radix-ui/react-radio-group": "^1.3.8", + "@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", + "@tanstack/react-query": "^5.90.21", + "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "cmdk": "^1.1.1", - "dompurify": "^3.2.3", - "handlebars": "^4.7.8", + "dompurify": "^3.3.1", "geolib": "^3.3.4", - "i18next": "^25.8.4", + "handlebars": "^4.7.8", + "i18next": "^25.8.13", "lucide-react": "^0.414.0", "lz-string": "1.5.0", "next-themes": "^0.3.0", - "picocolors": "^1.0.1", + "picocolors": "^1.1.1", "prompts": "^2.4.2", - "pure-react-carousel": "^1.32.0", - "react-collapsed": "^4.1.2", + "pure-react-carousel": "^1.35.0", + "react-collapsed": "^4.2.0", "react-color": "^2.19.3", "react-error-boundary": "^5.0.0", - "react-i18next": "^15.5.2", - "react-international-phone": "^4.6.0", - "sonner": "^1.5.0", - "tailwind-merge": "^2.4.0", - "tsx": "^4.16.3" + "react-i18next": "^15.7.4", + "react-international-phone": "^4.8.0", + "sonner": "^1.7.4", + "tailwind-merge": "^2.6.1", + "tsx": "^4.21.0" }, "engines": { "node": "^18 || ^20.2.0 || ^22" @@ -107,48 +107,48 @@ "devDependencies": { "@capsizecss/core": "^4.1.3", "@capsizecss/metrics": "^3.6.2", - "@testing-library/dom": "^10.4.0", - "@testing-library/react": "^16.3.0", + "@testing-library/dom": "^10.4.1", + "@testing-library/react": "^16.3.2", "@types/fs-extra": "^11.0.4", "@types/jest-axe": "^3.5.9", - "@types/mapbox-gl": "^2.7.5", + "@types/mapbox-gl": "^2.7.21", "@types/minimist": "^1.2.5", - "@types/node": "^20.14.11", + "@types/node": "^20.19.34", "@types/pixelmatch": "^5.2.6", "@types/pngjs": "^6.0.5", "@types/prompts": "^2.4.9", - "@types/react": "^18.3.3", - "@types/react-color": "^3.0.12", - "@types/react-dom": "^18.3.0", - "@types/semver": "^7.5.8", + "@types/react": "^18.3.28", + "@types/react-color": "^3.0.13", + "@types/react-dom": "^18.3.7", + "@types/semver": "^7.7.1", "@types/uuid": "^10.0.0", - "@vitejs/plugin-react": "^4.3.1", + "@vitejs/plugin-react": "^4.7.0", "@vitest/browser": "^3.2.4", - "autoprefixer": "^10.4.2", - "awesome-phonenumber": "^7.5.0", - "axe-core": "^4.10.3", + "autoprefixer": "^10.4.27", + "awesome-phonenumber": "^7.8.0", + "axe-core": "^4.11.1", "execa": "^8.0.1", - "fs-extra": "^11.2.0", - "generate-license-file": "^3.5.0", + "fs-extra": "^11.3.3", + "generate-license-file": "^3.8.1", "gray-matter": "^4.0.3", - "husky": "^9.1.4", - "i18next-cli": "^1.42.0", + "husky": "^9.1.7", + "i18next-cli": "^1.46.0", "jest-axe": "^10.0.0", - "jsdom": "^24.1.1", - "lint-staged": "^15.2.7", + "jsdom": "^24.1.3", + "lint-staged": "^15.5.2", "minimist": "^1.2.8", "pixelmatch": "^7.1.0", "playwright": "1.55.1", "pngjs": "^7.0.0", - "prettier": "^3.3.3", - "react-icons": "^5.2.1", - "semver": "^7.6.3", - "tailwindcss": "^3.4.6", + "prettier": "^3.8.1", + "react-icons": "^5.5.0", + "semver": "^7.7.4", + "tailwindcss": "^3.4.19", "tsup": "8.3.5", - "typescript": "^5.5.4", + "typescript": "^5.9.3", "uuid": "11.0.3", - "vite": "^5.3.5", - "vitepress": "^1.6.3", + "vite": "^5.4.21", + "vitepress": "^1.6.4", "vitest": "^3.2.4" }, "peerDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1d7c2f54e0..3914b89050 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,40 +11,40 @@ importers: specifier: ^11.0.4 version: 11.0.4 "@types/lodash": - specifier: ^4.14.202 - version: 4.17.20 + specifier: ^4.17.24 + version: 4.17.24 "@types/minimist": specifier: ^1.2.5 version: 1.2.5 "@types/node": - specifier: ^20.10.6 - version: 20.19.11 + specifier: ^20.19.34 + version: 20.19.34 "@types/prompts": specifier: ^2.4.9 version: 2.4.9 "@types/semver": - specifier: ^7.5.6 - version: 7.7.0 + specifier: ^7.7.1 + version: 7.7.1 execa: specifier: ^8.0.1 version: 8.0.1 fs-extra: - specifier: ^11.2.0 - version: 11.3.1 + specifier: ^11.3.3 + 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) + specifier: ^3.8.1 + version: 3.8.1(typescript@5.9.3) globals: - specifier: ^15.8.0 + specifier: ^15.15.0 version: 15.15.0 husky: specifier: ^8.0.3 version: 8.0.3 lint-staged: - specifier: ^15.2.0 + specifier: ^15.5.2 version: 15.5.2 minimist: specifier: ^1.2.8 @@ -53,107 +53,107 @@ importers: specifier: 1.2.0 version: 1.2.0 picocolors: - specifier: ^1.0.0 + specifier: ^1.1.1 version: 1.1.1 pkg-pr-new: specifier: ^0.0.54 version: 0.0.54 prettier: - specifier: ^3.3.3 - version: 3.6.2 + specifier: ^3.8.1 + version: 3.8.1 prompts: specifier: ^2.4.2 version: 2.4.2 semver: - specifier: ^7.5.4 - version: 7.7.2 + specifier: ^7.7.4 + version: 7.7.4 tsx: - specifier: ^4.6.2 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 typescript: - specifier: ^5.3.3 - version: 5.9.2 + specifier: ^5.9.3 + version: 5.9.3 yaml: - specifier: ^2.3.4 - version: 2.8.1 + specifier: ^2.8.2 + version: 2.8.2 packages/visual-editor: dependencies: "@microsoft/api-documenter": - specifier: ^7.26.29 - version: 7.26.32(@types/node@20.19.11) + specifier: ^7.29.6 + 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) + specifier: ^7.57.6 + 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) + specifier: ^7.33.4 + 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) + specifier: ^1.2.12 + 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) + specifier: ^1.1.15 + 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) + specifier: ^1.1.15 + 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) + specifier: ^2.1.16 + 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) + specifier: ^2.1.8 + 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) + specifier: ^1.1.15 + 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) + specifier: ^1.1.8 + 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) + specifier: ^1.3.8 + 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) + specifier: ^1.1.8 + 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) + specifier: ^1.2.4 + 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) + specifier: ^1.2.6 + 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) + specifier: ^1.1.10 + 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) + specifier: ^1.2.8 + 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) + specifier: ^5.90.21 + 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(@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 + specifier: ^0.7.1 version: 0.7.1 clsx: specifier: ^2.1.1 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 + specifier: ^3.3.1 + version: 3.3.1 geolib: specifier: ^3.3.4 version: 3.3.4 @@ -161,8 +161,8 @@ importers: specifier: ^4.7.8 version: 4.7.8 i18next: - specifier: ^25.8.4 - version: 25.8.7(typescript@5.9.2) + specifier: ^25.8.13 + version: 25.8.13(typescript@5.9.3) lucide-react: specifier: ^0.414.0 version: 0.414.0(react@18.3.1) @@ -176,19 +176,19 @@ importers: specifier: ^0.3.0 version: 0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) picocolors: - specifier: ^1.0.1 + specifier: ^1.1.1 version: 1.1.1 prompts: specifier: ^2.4.2 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) + specifier: ^1.35.0 + 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 react-collapsed: - specifier: ^4.1.2 + specifier: ^4.2.0 version: 4.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-color: specifier: ^2.19.3 @@ -200,20 +200,20 @@ importers: specifier: ^5.0.0 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) + specifier: ^15.7.4 + 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) + specifier: ^4.8.0 + version: 4.8.0(react@18.3.1) sonner: - specifier: ^1.5.0 + specifier: ^1.7.4 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 + specifier: ^2.6.1 + version: 2.6.1 tsx: - specifier: ^4.16.3 - version: 4.20.4 + specifier: ^4.21.0 + version: 4.21.0 devDependencies: "@capsizecss/core": specifier: ^4.1.3 @@ -222,11 +222,11 @@ importers: specifier: ^3.6.2 version: 3.6.2 "@testing-library/dom": - specifier: ^10.4.0 + specifier: ^10.4.1 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) + specifier: ^16.3.2 + 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 @@ -234,14 +234,14 @@ importers: specifier: ^3.5.9 version: 3.5.9 "@types/mapbox-gl": - specifier: ^2.7.5 + specifier: ^2.7.21 version: 2.7.21 "@types/minimist": specifier: ^1.2.5 version: 1.2.5 "@types/node": - specifier: ^20.14.11 - version: 20.19.11 + specifier: ^20.19.34 + version: 20.19.34 "@types/pixelmatch": specifier: ^5.2.6 version: 5.2.6 @@ -252,61 +252,61 @@ importers: specifier: ^2.4.9 version: 2.4.9 "@types/react": - specifier: ^18.3.3 - version: 18.3.24 + specifier: ^18.3.28 + version: 18.3.28 "@types/react-color": - specifier: ^3.0.12 - version: 3.0.13(@types/react@18.3.24) + specifier: ^3.0.13 + 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) + specifier: ^18.3.7 + version: 18.3.7(@types/react@18.3.28) "@types/semver": - specifier: ^7.5.8 - version: 7.7.0 + specifier: ^7.7.1 + 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)) + specifier: ^4.7.0 + 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) + specifier: ^10.4.27 + version: 10.4.27(postcss@8.5.6) awesome-phonenumber: - specifier: ^7.5.0 - version: 7.5.0 + specifier: ^7.8.0 + version: 7.8.0 axe-core: - specifier: ^4.10.3 - version: 4.10.3 + specifier: ^4.11.1 + version: 4.11.1 execa: specifier: ^8.0.1 version: 8.0.1 fs-extra: - specifier: ^11.2.0 - version: 11.3.1 + specifier: ^11.3.3 + version: 11.3.3 generate-license-file: - specifier: ^3.5.0 - version: 3.8.1(typescript@5.9.2) + specifier: ^3.8.1 + version: 3.8.1(typescript@5.9.3) gray-matter: specifier: ^4.0.3 version: 4.0.3 husky: - specifier: ^9.1.4 + specifier: ^9.1.7 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) + specifier: ^1.46.0 + 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 jsdom: - specifier: ^24.1.1 + specifier: ^24.1.3 version: 24.1.3 lint-staged: - specifier: ^15.2.7 + specifier: ^15.5.2 version: 15.5.2 minimist: specifier: ^1.2.8 @@ -321,35 +321,35 @@ importers: specifier: ^7.0.0 version: 7.0.0 prettier: - specifier: ^3.3.3 - version: 3.6.2 + specifier: ^3.8.1 + version: 3.8.1 react-icons: - specifier: ^5.2.1 + specifier: ^5.5.0 version: 5.5.0(react@18.3.1) semver: - specifier: ^7.6.3 - version: 7.7.2 + specifier: ^7.7.4 + 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)) + specifier: ^3.4.19 + 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 + specifier: ^5.9.3 + 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) + specifier: ^5.4.21 + 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) + specifier: ^1.6.4 + 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/debug@4.1.12)(@types/node@20.19.34)(@vitest/browser@3.2.4)(happy-dom@20.7.0)(jsdom@24.1.3) starter: dependencies: @@ -357,141 +357,141 @@ importers: specifier: ^1.7.19 version: 1.7.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1) "@heroicons/react": - specifier: ^2.1.5 + specifier: ^2.2.0 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) + specifier: ^7.17.8 + 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 + specifier: ^7.17.8 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) + specifier: ^1.2.12 + 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) + specifier: ^1.1.15 + 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) + specifier: ^2.1.16 + 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) + specifier: ^1.1.8 + 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) + specifier: ^1.1.8 + 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) + specifier: ^1.2.4 + 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) + specifier: ^1.2.15 + 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) + specifier: ^1.2.8 + 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 + specifier: ^2.7.21 version: 2.7.21 "@types/node": - specifier: ^20.12.3 - version: 20.19.11 + specifier: ^20.19.34 + version: 20.19.34 "@yext/search-headless-react": - specifier: ^2.5.3 - version: 2.6.0(encoding@0.1.13)(react@18.3.1) + 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.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(@types/node@20.19.11)(typescript@5.9.2)))(typescript@5.9.2) + specifier: ^2.1.1 + 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 class-variance-authority: - specifier: ^0.7.0 + specifier: ^0.7.1 version: 0.7.1 classnames: - specifier: ^2.4.0 + specifier: ^2.5.1 version: 2.5.1 clsx: specifier: ^2.1.1 version: 2.1.1 i18next: - specifier: ^25.2.1 - version: 25.4.0(typescript@5.9.2) + specifier: ^25.8.13 + version: 25.8.13(typescript@5.9.3) lucide-react: specifier: ^0.378.0 version: 0.378.0(react@18.3.1) mapbox-gl: - specifier: ^2.9.2 + specifier: ^2.15.0 version: 2.15.0 next-themes: specifier: ^0.3.0 version: 0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: - specifier: ^18.2.0 + specifier: ^18.3.1 version: 18.3.1 react-dom: - specifier: ^18.2.0 + specifier: ^18.3.1 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) + specifier: ^15.7.4 + 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 + specifier: ^5.5.0 version: 5.5.0(react@18.3.1) sonner: - specifier: ^1.4.41 + specifier: ^1.7.4 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 + specifier: ^2.6.1 + 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))) + specifier: ^0.5.19 + 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 + specifier: ^18.3.28 + version: 18.3.28 "@types/react-dom": - specifier: ^18.2.25 - version: 18.3.7(@types/react@18.3.24) + specifier: ^18.3.7 + 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)) + specifier: ^4.7.0 + 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) + specifier: ^2.0.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) + specifier: ^10.4.27 + version: 10.4.27(postcss@8.5.6) postcss: - specifier: ^8.4.32 + specifier: ^8.5.6 version: 8.5.6 prettier: - specifier: ^3.3.2 - version: 3.6.2 + specifier: ^3.8.1 + 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)) + specifier: ^3.4.19 + version: 3.4.19(tsx@4.21.0)(yaml@2.8.2) typescript: - specifier: ^5.3.3 - version: 5.9.2 + specifier: ^5.9.3 + version: 5.9.3 vite: - specifier: ^5.1.6 - version: 5.4.19(@types/node@20.19.11) + specifier: ^5.4.21 + 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": - resolution: - { - integrity: sha512-LKYxD2CIfocUFNREQ1yk+dW+8OH8CRqmgatBZYXb+XhuObO8wsDpEoCNri5bKld9cnj8xukqZjxSX8p1YiRF8Q==, - } - engines: { node: ">=6.9.0" } - - "@babel/runtime@7.28.3": + "@babel/runtime-corejs3@7.29.0": 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-4yYU8p7AneEpQkRX03pbpLmE21z5JNys16F1BZBZg5fP9rIlb0TkeQjn5du5w4agConCCEoYIG57sNxjryHEGg==, + integrity: sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==, } cpu: [loong64] os: [linux] - "@rollup/rollup-linux-ppc64-gnu@4.47.1": + "@rollup/rollup-linux-loong64-musl@4.59.0": resolution: { - integrity: sha512-fAiq+J28l2YMWgC39jz/zPi2jqc0y3GSRo1yyxlBHt6UN0yYgnegHSRPa3pnHS5amT/efXQrm0ug5+aNEu9UuQ==, + integrity: sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==, + } + cpu: [loong64] + os: [linux] + + "@rollup/rollup-linux-ppc64-gnu@4.59.0": + resolution: + { + 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-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-N9X5WqGYzZnjGAFsKSfYFtAShYjwOmFJoWbLg3dYixZOZqU7hdMq+/xyS14zKLhFhZDhP9VfkzQnsdk0ZDS9IA==, + 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,10 +4017,10 @@ packages: integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==, } - "@types/chai@5.2.2": + "@types/chai@5.2.3": resolution: { - integrity: sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==, + integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==, } "@types/debug@4.1.12": @@ -4082,10 +4107,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": @@ -4130,10 +4155,10 @@ packages: 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 +4207,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 +4221,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 +4299,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 +4398,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 +4602,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 +4626,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 +4633,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,32 +4641,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": - resolution: - { - integrity: sha512-gp3il5zLEF+6bi8OL4nqK4eCvWX7tjQOrn6I8FZmwCYnUe+lj2OPhR+xSSwd7wMDWCE2K4MtRcFG2V52e5onAQ==, - } - peerDependencies: - "@yext/search-headless-react": ^2.6.0 - react: ^16.14 || ^17 || ^18 || ^19 - react-dom: ^16.14 || ^17 || ^18 || ^19 - - "@yext/search-ui-react@2.0.5": + "@yext/search-ui-react@2.1.1": resolution: { - integrity: sha512-Bio5MserUCs9hp9a0lYK4dwrm1+lcY1SsY+7W9nUivLN4vVFlP0TCjOb6eyER65io7g0DkK94UTYhZTyXBGarQ==, + integrity: sha512-2S4ooWM/yU3h1N+CADoz/PQwjUhvZQePljsZ0S15H47qH3I8bzYerGJwFqvpwobXi79MqCpK4JFn64SYcJ8LTg==, } peerDependencies: "@yext/search-headless-react": ^2.6.0 @@ -4677,17 +4671,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 @@ -4721,22 +4708,16 @@ packages: ajv: optional: true - ajv@8.12.0: - resolution: - { - integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==, - } - - ajv@8.13.0: + ajv@8.18.0: resolution: { - integrity: sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==, + integrity: sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==, } - algoliasearch@5.35.0: + algoliasearch@5.49.1: resolution: { - integrity: sha512-Y+moNhsqgLmvJdgTsO4GZNgsaDWv8AOGAaPeIeHKlDn/XunoAqYbA+XNpBd1dW8GOXAUDyxC9Rxc7AV4kpFcIg==, + integrity: sha512-X3Pp2aRQhg4xUC6PQtkubn5NpRKuUPQ9FPDQlx36SmpFwwH2N0/tw4c+NXV3nw3PsgeUs+BuWGP0gjz3TvENLQ==, } engines: { node: ">= 14.0.0" } @@ -4747,10 +4728,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" } @@ -4761,10 +4742,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" } @@ -4782,10 +4763,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" } @@ -4810,12 +4791,6 @@ packages: } engines: { node: ">= 8" } - arg@4.1.3: - resolution: - { - integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==, - } - arg@5.0.2: resolution: { @@ -4878,10 +4853,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 @@ -4895,10 +4870,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" } @@ -4916,10 +4891,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" } @@ -4929,11 +4904,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: @@ -4941,6 +4917,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: { @@ -4961,10 +4945,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: @@ -4979,30 +4963,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: @@ -5060,12 +5045,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: @@ -5073,10 +5058,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 @@ -5183,10 +5168,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: @@ -5215,13 +5200,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: { @@ -5265,10 +5243,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" } @@ -5307,17 +5285,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" } @@ -5546,30 +5524,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: @@ -5596,12 +5574,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: { @@ -5667,10 +5639,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: @@ -5691,10 +5663,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: @@ -5750,17 +5722,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" } @@ -5856,10 +5828,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" } @@ -5894,10 +5866,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: @@ -5925,10 +5897,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: @@ -5943,10 +5915,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: @@ -5961,13 +5933,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: { @@ -6008,6 +5973,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: { @@ -6034,10 +6006,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: @@ -6090,10 +6062,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 @@ -6152,10 +6124,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: @@ -6185,30 +6157,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" } @@ -6252,10 +6224,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-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==, + 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-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==, } fdir@6.5.0: @@ -6291,10 +6287,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" } @@ -6312,10 +6308,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: @@ -6332,10 +6328,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" } @@ -6346,10 +6342,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: @@ -6359,10 +6355,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" } @@ -6416,6 +6412,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: { @@ -6435,10 +6438,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" } @@ -6491,10 +6494,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: @@ -6523,19 +6526,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: @@ -6584,10 +6588,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" } @@ -6618,18 +6622,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: @@ -6748,10 +6753,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" } @@ -6805,10 +6810,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 @@ -6820,21 +6825,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 @@ -6935,10 +6929,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: @@ -6947,10 +6941,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" } @@ -7056,17 +7050,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" } @@ -7188,17 +7182,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" } @@ -7214,10 +7208,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" } @@ -7227,12 +7221,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: @@ -7261,10 +7255,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 } @@ -7282,24 +7276,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 } @@ -7310,10 +7304,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 } @@ -7369,24 +7363,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 @@ -7494,10 +7481,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" } @@ -7574,22 +7561,10 @@ packages: } engines: { node: ">=10" } - lodash-es@4.17.21: - resolution: - { - integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==, - } - - lodash.castarray@4.4.0: + lodash-es@4.17.23: 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: @@ -7604,10 +7579,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: @@ -7713,16 +7688,10 @@ packages: } hasBin: true - magic-string@0.30.18: + magic-string@0.30.21: resolution: { - integrity: sha512-yi8swmWbO17qHhwIBNeeZxTceJMeBvWJaId6dyvTSOwTipqeHhMhOrz6513r1sOKnpvQ7zkhlG8tPrpilwTxHQ==, - } - - make-error@1.3.6: - resolution: - { - integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==, + integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==, } make-fetch-happen@14.0.3: @@ -7744,10 +7713,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 @@ -7830,10 +7799,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: @@ -8041,24 +8010,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" } @@ -8117,17 +8086,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: @@ -8137,10 +8106,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" } @@ -8259,18 +8228,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: @@ -8295,13 +8264,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: { @@ -8309,10 +8271,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 } @@ -8365,10 +8327,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: @@ -8521,10 +8483,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" } @@ -8570,10 +8532,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" } @@ -8663,12 +8625,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: @@ -8696,12 +8658,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: @@ -8815,31 +8777,16 @@ packages: } engines: { node: ">=14.0.0" } peerDependencies: - postcss: ^8.0.0 - - postcss-js@4.0.1: - resolution: - { - integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==, - } - engines: { node: ^12 || ^14 || >= 16 } - peerDependencies: - postcss: ^8.4.21 + postcss: ^8.0.0 - postcss-load-config@4.0.2: + postcss-js@4.1.0: resolution: { - integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==, + integrity: sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==, } - engines: { node: ">= 14" } + engines: { node: ^12 || ^14 || >= 16 } peerDependencies: - postcss: ">=8.0.9" - ts-node: ">=9.0.0" - peerDependenciesMeta: - postcss: - optional: true - ts-node: - optional: true + postcss: ^8.4.21 postcss-load-config@6.0.1: resolution: @@ -8885,10 +8832,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" } @@ -8911,10 +8858,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: @@ -8972,10 +8919,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 @@ -8994,17 +8941,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" } @@ -9079,10 +9026,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: @@ -9127,16 +9074,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: @@ -9185,10 +9132,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: @@ -9242,26 +9189,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" } @@ -9272,10 +9219,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" } @@ -9298,10 +9245,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" } @@ -9330,10 +9277,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" } @@ -9386,10 +9333,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" @@ -9432,10 +9379,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 @@ -9496,10 +9443,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: @@ -9651,16 +9598,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" } @@ -9753,10 +9700,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 @@ -9795,22 +9742,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 @@ -9833,10 +9775,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" } @@ -9931,25 +9873,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" } @@ -10060,10 +10002,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" } @@ -10087,10 +10029,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" } @@ -10176,10 +10118,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: @@ -10222,17 +10164,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: @@ -10289,10 +10231,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" } @@ -10321,10 +10263,10 @@ packages: } engines: { node: ">=8" } - strip-ansi@7.1.0: + strip-ansi@7.1.2: resolution: { - integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==, + integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==, } engines: { node: ">=12" } @@ -10363,10 +10305,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: @@ -10375,10 +10317,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 @@ -10389,10 +10331,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" } @@ -10423,10 +10365,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: @@ -10435,16 +10377,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 @@ -10455,11 +10397,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" } @@ -10507,10 +10450,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" } @@ -10534,17 +10477,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" } @@ -10633,23 +10576,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: { @@ -10678,10 +10604,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 @@ -10735,10 +10661,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 @@ -10749,10 +10675,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: @@ -10784,10 +10710,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" } @@ -10836,10 +10762,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: @@ -10872,10 +10798,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: @@ -10884,10 +10810,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: @@ -10917,21 +10843,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: { @@ -11023,14 +10943,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: { @@ -11072,12 +10984,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: { @@ -11151,10 +11057,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 @@ -11279,10 +11185,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: "*" @@ -11352,6 +11258,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: @@ -11386,10 +11293,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" } @@ -11437,13 +11344,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: { @@ -11464,10 +11364,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: @@ -11525,14 +11425,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: { @@ -11541,13 +11433,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: { @@ -11575,10 +11460,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: @@ -11609,153 +11494,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) @@ -11764,129 +11644,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": {} @@ -11900,11 +11778,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)": @@ -11966,17 +11839,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" @@ -11984,10 +11857,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" @@ -11995,28 +11868,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 @@ -12029,7 +11902,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": @@ -12038,7 +11911,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": @@ -12047,7 +11920,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": @@ -12056,7 +11929,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": @@ -12065,7 +11938,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": @@ -12074,7 +11947,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": @@ -12083,7 +11956,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": @@ -12092,7 +11965,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": @@ -12101,7 +11974,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": @@ -12110,7 +11983,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": @@ -12119,7 +11992,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": @@ -12128,7 +12001,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": @@ -12137,7 +12010,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": @@ -12146,7 +12019,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": @@ -12155,7 +12028,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": @@ -12164,7 +12037,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": @@ -12173,13 +12046,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": @@ -12188,13 +12061,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": @@ -12203,10 +12076,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": @@ -12215,7 +12088,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": @@ -12224,7 +12097,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": @@ -12233,7 +12106,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": @@ -12242,37 +12115,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) @@ -12281,7 +12154,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 @@ -12293,199 +12166,188 @@ 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.1.2 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": + "@jridgewell/trace-mapping@0.3.31": dependencies: "@jridgewell/resolve-uri": 3.1.2 "@jridgewell/sourcemap-codec": 1.5.5 - "@jridgewell/trace-mapping@0.3.9": - dependencies: - "@jridgewell/resolve-uri": 3.1.2 - "@jridgewell/sourcemap-codec": 1.5.5 - optional: true - "@jsdevtools/ez-spawn@3.0.4": dependencies: call-me-maybe: 1.0.2 @@ -12493,7 +12355,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) @@ -12501,8 +12363,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" @@ -12532,52 +12394,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: @@ -12589,7 +12452,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: @@ -12621,9 +12484,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 @@ -12634,7 +12497,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 @@ -12643,17 +12506,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": @@ -12665,8 +12528,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: @@ -12674,7 +12537,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 @@ -12685,20 +12548,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": {} @@ -12706,8 +12569,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: @@ -12720,7 +12583,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: @@ -12818,7 +12681,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 @@ -12828,43 +12691,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" @@ -12877,466 +12740,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.28)(react@18.3.1)": + dependencies: + react: 18.3.1 + optionalDependencies: + "@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-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-context@1.1.2(@types/react@18.3.24)(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.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-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)": @@ -13357,7 +13242,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) @@ -13371,110 +13256,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/problem-matcher@0.2.1(@types/node@20.19.34)": + optionalDependencies: + "@types/node": 20.19.34 - "@rushstack/rig-package@0.5.3": + "@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 @@ -13593,9 +13498,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": {} @@ -13629,7 +13534,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 @@ -13644,11 +13549,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 @@ -13656,42 +13561,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 @@ -13699,116 +13601,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 @@ -13816,59 +13718,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": {} @@ -13876,28 +13766,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 + assertion-error: 2.0.1 "@types/debug@4.1.12": dependencies: @@ -13911,7 +13802,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": {} @@ -13940,16 +13831,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: @@ -13975,7 +13866,7 @@ snapshots: "@types/ms@2.1.0": optional: true - "@types/node@20.19.11": + "@types/node@20.19.34": dependencies: undici-types: 6.21.0 @@ -13983,38 +13874,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": {} @@ -14039,44 +13930,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/debug@4.1.12)(@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: @@ -14087,19 +13978,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: @@ -14109,17 +14000,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: @@ -14127,115 +14018,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 @@ -14243,16 +14134,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 @@ -14260,7 +14151,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 @@ -14271,34 +14162,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" @@ -14327,47 +14218,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)": @@ -14375,69 +14239,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(@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(@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 @@ -14452,63 +14284,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: @@ -14516,7 +14336,7 @@ snapshots: ansi-styles@5.2.0: {} - ansi-styles@6.2.1: {} + ansi-styles@6.2.3: {} ansi-to-html@0.7.2: dependencies: @@ -14529,9 +14349,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: @@ -14552,7 +14369,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 @@ -14568,12 +14385,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 @@ -14582,20 +14398,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: @@ -14608,7 +14426,7 @@ snapshots: binary-extensions@2.3.0: {} - birpc@2.5.0: {} + birpc@2.9.0: {} bl@4.1.0: dependencies: @@ -14618,30 +14436,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: @@ -14655,12 +14473,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 @@ -14674,27 +14492,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 @@ -14702,12 +14519,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: {} @@ -14725,7 +14543,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: @@ -14740,15 +14558,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: @@ -14774,7 +14592,7 @@ snapshots: camelcase-css@2.0.1: {} - caniuse-lite@1.0.30001737: {} + caniuse-lite@1.0.30001774: {} ccount@1.1.0: {} @@ -14783,7 +14601,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 @@ -14793,8 +14611,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: {} @@ -14809,7 +14625,7 @@ snapshots: chardet@2.1.1: {} - check-error@2.1.1: {} + check-error@2.1.3: {} chokidar@3.6.0: dependencies: @@ -14835,12 +14651,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: @@ -14875,12 +14692,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: @@ -14938,53 +14755,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 @@ -15007,14 +14817,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 @@ -15028,7 +14838,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: @@ -15039,7 +14849,7 @@ snapshots: dependencies: ms: 2.0.0 - debug@4.4.1: + debug@4.4.3: dependencies: ms: 2.1.3 @@ -15057,12 +14867,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: @@ -15107,12 +14917,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 @@ -15122,12 +14931,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 @@ -15143,11 +14952,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 @@ -15157,14 +14966,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: @@ -15183,6 +14990,8 @@ snapshots: entities@6.0.1: {} + entities@7.0.1: {} + env-paths@2.2.1: {} environment@1.1.0: {} @@ -15193,7 +15002,7 @@ snapshots: err-code@2.0.3: {} - error-ex@1.3.2: + error-ex@1.3.4: dependencies: is-arrayish: 0.2.1 @@ -15268,34 +15077,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: {} @@ -15315,7 +15124,7 @@ snapshots: etag@1.8.1: {} - eventemitter3@5.0.1: {} + eventemitter3@5.0.4: {} events@3.3.0: {} @@ -15346,54 +15155,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 @@ -15420,7 +15229,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 @@ -15438,14 +15259,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 @@ -15457,9 +15278,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: @@ -15470,7 +15291,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 @@ -15480,11 +15301,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 @@ -15496,7 +15317,7 @@ snapshots: fs-minipass@3.0.3: dependencies: - minipass: 7.1.2 + minipass: 7.1.3 fsevents@2.3.2: optional: true @@ -15512,15 +15333,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 @@ -15529,13 +15350,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: @@ -15568,7 +15391,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 @@ -15584,20 +15407,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: {} @@ -15609,7 +15432,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 @@ -15625,14 +15448,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 @@ -15649,14 +15472,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: @@ -15714,7 +15540,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 @@ -15766,18 +15592,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 @@ -15786,7 +15612,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 @@ -15798,22 +15624,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" @@ -15823,26 +15649,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: @@ -15860,7 +15680,7 @@ snapshots: ignore-walk@7.0.0: dependencies: - minimatch: 9.0.5 + minimatch: 9.0.8 ignore@5.3.2: {} @@ -15883,19 +15703,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: {} @@ -15937,13 +15757,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 @@ -15988,7 +15809,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: {} @@ -15996,9 +15817,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 @@ -16006,11 +15827,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: {} @@ -16034,12 +15855,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: {} @@ -16050,39 +15871,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 @@ -16102,17 +15923,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 @@ -16121,12 +15937,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 @@ -16137,7 +15953,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 @@ -16176,7 +15992,7 @@ snapshots: kleur@3.0.3: {} - ky@1.9.0: {} + ky@1.14.3: {} latest-version@9.0.0: dependencies: @@ -16198,16 +16014,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 @@ -16215,10 +16031,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: {} @@ -16226,17 +16042,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: @@ -16245,7 +16057,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: @@ -16255,11 +16067,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.1.2 + wrap-ansi: 9.0.2 longest-streak@2.0.4: {} @@ -16293,19 +16105,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 @@ -16343,7 +16152,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 @@ -16428,7 +16237,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 @@ -16437,7 +16246,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: @@ -16521,7 +16330,7 @@ snapshots: micromark@2.11.4: dependencies: - debug: 4.4.1 + debug: 4.4.3 parse-entities: 2.0.0 transitivePeerDependencies: - supports-color @@ -16533,7 +16342,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: {} @@ -16556,29 +16365,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 @@ -16600,18 +16409,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: {} @@ -16621,10 +16430,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: {} @@ -16661,22 +16470,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: @@ -16714,15 +16523,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: {} @@ -16730,7 +16537,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: @@ -16739,19 +16546,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: @@ -16766,7 +16573,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: {} @@ -16819,12 +16626,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 @@ -16843,7 +16650,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 @@ -16851,7 +16658,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.1.2 ora@9.3.0: dependencies: @@ -16862,7 +16669,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: {} @@ -16887,27 +16694,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 @@ -16925,11 +16732,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 @@ -16948,13 +16755,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: @@ -16974,8 +16780,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 @@ -17002,12 +16808,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: {} @@ -17020,14 +16826,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: {} @@ -17056,10 +16862,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: @@ -17084,28 +16890,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): @@ -17123,7 +16921,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 @@ -17138,13 +16936,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: @@ -17158,13 +16956,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 @@ -17202,7 +17000,7 @@ snapshots: property-information@7.1.0: {} - prosemirror-changeset@2.3.1: + prosemirror-changeset@2.4.0: dependencies: prosemirror-transform: 1.11.0 @@ -17220,20 +17018,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: @@ -17246,13 +17044,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 @@ -17277,7 +17075,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: @@ -17285,21 +17083,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 @@ -17320,10 +17118,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 @@ -17333,9 +17131,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 @@ -17343,24 +17141,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 @@ -17372,7 +17170,7 @@ snapshots: queue-microtask@1.2.3: {} - quick-lru@7.1.0: {} + quick-lru@7.3.0: {} quickselect@2.0.0: {} @@ -17387,10 +17185,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 @@ -17410,8 +17208,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 @@ -17426,7 +17224,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): @@ -17434,42 +17232,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 @@ -17479,10 +17267,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 @@ -17506,39 +17294,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" @@ -17550,7 +17338,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: @@ -17596,7 +17384,7 @@ snapshots: redux@4.2.1: dependencies: - "@babel/runtime": 7.28.3 + "@babel/runtime": 7.28.6 regex-recursion@5.1.1: dependencies: @@ -17613,13 +17401,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: @@ -17668,7 +17456,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 @@ -17690,40 +17478,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: {} @@ -17732,7 +17520,7 @@ snapshots: rrweb-cssom@0.8.0: {} - run-applescript@7.0.0: {} + run-applescript@7.1.0: {} run-async@4.0.6: {} @@ -17779,32 +17567,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 @@ -17825,7 +17613,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: @@ -17900,7 +17688,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 @@ -17912,27 +17700,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): @@ -17955,16 +17743,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: {} @@ -17974,7 +17762,7 @@ snapshots: ssri@12.0.0: dependencies: - minipass: 7.1.2 + minipass: 7.1.3 stack-utils@2.0.6: dependencies: @@ -17982,9 +17770,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: {} @@ -18014,18 +17802,18 @@ snapshots: dependencies: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 - strip-ansi: 7.1.0 + strip-ansi: 7.1.2 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.1.2 - 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.1.2 string_decoder@1.1.1: dependencies: @@ -18044,9 +17832,9 @@ snapshots: dependencies: ansi-regex: 5.0.1 - strip-ansi@7.1.0: + strip-ansi@7.1.2: dependencies: - ansi-regex: 6.2.0 + ansi-regex: 6.2.2 strip-bom-string@1.0.0: {} @@ -18058,7 +17846,7 @@ snapshots: strip-json-comments@3.1.1: {} - strip-literal@3.0.0: + strip-literal@3.1.0: dependencies: js-tokens: 9.0.1 @@ -18066,23 +17854,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: @@ -18096,13 +17884,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 @@ -18120,14 +17908,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: @@ -18138,13 +17927,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: @@ -18167,7 +17955,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 @@ -18178,9 +17966,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 @@ -18226,62 +18014,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 @@ -18290,7 +18057,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 @@ -18312,11 +18079,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 @@ -18331,7 +18098,7 @@ snapshots: undici-types@6.21.0: {} - undici@6.21.3: {} + undici@6.23.0: {} unicorn-magic@0.3.0: {} @@ -18359,7 +18126,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 @@ -18382,10 +18149,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: @@ -18393,11 +18160,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: {} @@ -18407,16 +18174,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: @@ -18427,54 +18190,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: @@ -18486,9 +18244,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: {} @@ -18496,9 +18254,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 @@ -18534,13 +18289,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 @@ -18552,45 +18307,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: @@ -18621,26 +18376,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: @@ -18670,36 +18425,36 @@ 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/debug@4.1.12)(@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 @@ -18722,19 +18477,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: {} @@ -18784,7 +18539,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 @@ -18800,7 +18555,7 @@ snapshots: which@5.0.0: dependencies: - isexe: 3.1.1 + isexe: 3.1.5 why-is-node-running@2.3.0: dependencies: @@ -18817,21 +18572,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.1.2 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.1.2 wrappy@1.0.2: {} @@ -18840,11 +18589,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: {} @@ -18858,13 +18607,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: {} @@ -18875,9 +18619,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) diff --git a/starter/package.json b/starter/package.json index d187da7786..86a34d2323 100644 --- a/starter/package.json +++ b/starter/package.json @@ -16,52 +16,52 @@ }, "dependencies": { "@headlessui/react": "^1.7.19", - "@heroicons/react": "^2.1.5", - "@mantine/core": "^7.10.1", - "@mantine/hooks": "^7.10.1", + "@heroicons/react": "^2.2.0", + "@mantine/core": "^7.17.8", + "@mantine/hooks": "^7.17.8", "@puckeditor/core": "0.21.1", - "@radix-ui/react-accordion": "^1.2.0", - "@radix-ui/react-alert-dialog": "^1.0.5", - "@radix-ui/react-dropdown-menu": "^2.1.15", - "@radix-ui/react-progress": "^1.0.3", - "@radix-ui/react-separator": "^1.1.7", - "@radix-ui/react-slot": "^1.0.2", - "@radix-ui/react-toast": "^1.1.5", - "@radix-ui/react-tooltip": "^1.1.2", - "@types/mapbox-gl": "^2.7.5", - "@types/node": "^20.12.3", - "@yext/search-headless-react": "^2.5.3", - "@yext/search-ui-react": "^2.1.0", + "@radix-ui/react-accordion": "^1.2.12", + "@radix-ui/react-alert-dialog": "^1.1.15", + "@radix-ui/react-dropdown-menu": "^2.1.16", + "@radix-ui/react-progress": "^1.1.8", + "@radix-ui/react-separator": "^1.1.8", + "@radix-ui/react-slot": "^1.2.4", + "@radix-ui/react-toast": "^1.2.15", + "@radix-ui/react-tooltip": "^1.2.8", + "@types/mapbox-gl": "^2.7.21", + "@types/node": "^20.19.34", + "@yext/search-headless-react": "^2.7.1", + "@yext/search-ui-react": "^2.1.1", "@yext/visual-editor": "workspace:*", - "class-variance-authority": "^0.7.0", - "classnames": "^2.4.0", + "class-variance-authority": "^0.7.1", + "classnames": "^2.5.1", "clsx": "^2.1.1", - "i18next": "^25.2.1", + "i18next": "^25.8.13", "lucide-react": "^0.378.0", - "mapbox-gl": "^2.9.2", + "mapbox-gl": "^2.15.0", "next-themes": "^0.3.0", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-i18next": "^15.5.2", - "react-icons": "^5.2.1", - "sonner": "^1.4.41", - "tailwind-merge": "^2.3.0" + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-i18next": "^15.7.4", + "react-icons": "^5.5.0", + "sonner": "^1.7.4", + "tailwind-merge": "^2.6.1" }, "devDependencies": { - "@tailwindcss/typography": "^0.5.13", - "@types/react": "^18.2.77", - "@types/react-dom": "^18.2.25", - "@vitejs/plugin-react": "^4.2.1", + "@tailwindcss/typography": "^0.5.19", + "@types/react": "^18.3.28", + "@types/react-dom": "^18.3.7", + "@vitejs/plugin-react": "^4.7.0", "@yext/pages": "1.2.9", - "@yext/pages-components": "^2.0.0", + "@yext/pages-components": "^2.0.1", "@yext/visual-editor": "workspace:*", - "autoprefixer": "^10.4.8", - "postcss": "^8.4.32", - "prettier": "^3.3.2", + "autoprefixer": "^10.4.27", + "postcss": "^8.5.6", + "prettier": "^3.8.1", "prettier-plugin-tailwindcss": "0.4.1", - "tailwindcss": "^3.3.0", - "typescript": "^5.3.3", - "vite": "^5.1.6" + "tailwindcss": "^3.4.19", + "typescript": "^5.9.3", + "vite": "^5.4.21" }, "overrides": { "vite": { From b05ee57840eb626bc2f282bb1e12fb75f8bfd6ed Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 26 Feb 2026 10:26:08 +0000 Subject: [PATCH 66/68] 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 e1e9ce7982e1c3ece095bdfadd1e469fac8b6c7d Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 26 Feb 2026 10:27:20 +0000 Subject: [PATCH 67/68] 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 cfc4ff4b06..a379e619bc 100644 --- a/packages/visual-editor/src/docs/ai/components.d.ts +++ b/packages/visual-editor/src/docs/ai/components.d.ts @@ -1038,7 +1038,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 cd51627ef940a065e8a9b5c59bae190b098d69e6 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 26 Feb 2026 10:29:15 +0000 Subject: [PATCH 68/68] 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 a379e619bc..cbea91b26f 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 */ @@ -1056,11 +1095,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 = { @@ -1102,11 +1140,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.