Skip to content

Conversation

@benlife5
Copy link
Contributor

@benlife5 benlife5 commented Nov 5, 2025

  • add slot components to directory config
  • merge main into slots again

colton-demetriou and others added 30 commits October 1, 2025 14:38
<img width="1221" height="999" alt="Screenshot 2025-10-01 at 1 59 29 PM"
src="https://github.com/user-attachments/assets/80cdc2f4-da2f-413b-ad1d-6ac4ba5263d1"
/>
Confirmed that fonts now load correctly in both the Theme and Layout
Editor and match the live page.

The problem was that the live page used applyTheme but the editor was
only using updateThemeInEditor, so when the font was changed in the
editor, the new styles were applied but the actual font files weren't
loaded, leading to the editor falling back to defaults. The fix was
essentially to just use the applyTheme logic in the editor as well.

Test Site:
https://www.yext.com/s/4259018/yextsites/160744/theme#themeId=font-test-2&pageSetId=font-test-2&locale=en&entityId=1095527849

---------

Co-authored-by: coltondemetriou <coltondemetriou@gmail.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
<img width="550" height="332" alt="Screenshot 2025-10-01 at 4 45 11 PM"
src="https://github.com/user-attachments/assets/11927759-652c-49d1-a1b4-85d57ce97bda"
/>

The problem was when the editor first loaded no google fonts were loaded
(only theme-specific fonts), fixed by loading the fonts on initial load.
Verified in local dev that the fonts loaded in the editor on the page
and in the selector.

---------

Co-authored-by: coltondemetriou <coltondemetriou@gmail.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
When sending the user's schema to the parent to allow for editing, we
now also send the default schema. A new option in the UI will allow the
user to restore the default schema and clear any edits they've made.

Ran everything locally and logged the payload that was sent to the
front-end, confirming that it included the new defaultValue field.

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
https://yexttest.atlassian.net/browse/VULN-40342

Verified that all the fonts still render in editor, dropdown, and live
page


https://www.yext.com/s/4259018/yextsites/160762/theme#themeId=test-vuln-10-2-25&pageSetId=vuln-test&locale=en&entityId=1095527849

---------

Co-authored-by: coltondemetriou <coltondemetriou@gmail.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
From Paige's spreadsheet: the color 305af3 (dark blue) was being
displayed with black text.

The issue was that we updated to a better contrast algorithm in the
theme editor but the old algorithm was still being used as a backup in
applyTheme. I think the recent changes to applyTheme changed how those
two values were resolved and the old algorithm was being preferred.

This change fully swaps to the better algorithm and gives saved db
contrast colors precedence over the fallback calculation.

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
)

The locator cards should use the base entity's url templates (currently
they are looking at the locator page set's templates which do not
exist). This is a change we already made for directory
Other entity types like "Restaurant" were previously using the basic
fallback schema, but any built-in entity type that is a location should
be considered as such.

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
[slack
thread](https://yext.slack.com/archives/C02UVSE7P6W/p1759774392931519)

Works in editor and live page.

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
<img width="1840" height="1104" alt="Screenshot 2025-10-09 at 3 58
45 PM"
src="https://github.com/user-attachments/assets/93c2093f-6fa7-4e77-8ffe-0219126267bd"
/>
<img width="1840" height="1104" alt="Screenshot 2025-10-09 at 3 57
48 PM"
src="https://github.com/user-attachments/assets/3f839a20-ce6f-4123-a387-4e2736f50089"
/>

Puck 0.20.2 includes a fix for the "Other" category

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
https://github.com/user-attachments/assets/ab992086-993f-4b6e-9fc9-3dd8c3d76b29

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
pages-components has a few css overrides that were being dropped on the
live page in the last artifact

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
This fixes the phone number link on the locator and changes the text in
the search input from "Current Location" to the current location itself
when the user searches for locations nearby.

Tested and verified that phone links work as expected and the search
input is populated correctly.
Only if siteDomain is set + exists will this canonical url tag be added
to the head

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
J=WAT-5112
TEST=manual

tested in dev mode & live site


https://github.com/user-attachments/assets/4622d774-4833-4a6f-95fe-8eea2a3c4c2d

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Alexis Sanehisa <106991746+asanehisa@users.noreply.github.com>
Co-authored-by: Alexis Sanehisa <asanehisa@yext.com>
Confirmed timezone was passed everywhere else (Hero, LocatorCard,
NearbyLocationCard, DirectoryCard)
The directory meta fields were broken because the default fields are
only populated if `root.props` is undefined and `root.props` was
partially defined in the defaultLayoutData.

This fixed by explicitly adding the title and description fields to the
directory and locator layouts. The field and constantValue are both set
to `""` -- this might change in the future
(https://yext.slack.com/archives/C06A06BCUUF/p1760728433383689?thread_ts=1760724818.768159&cid=C06A06BCUUF)
but we don't have the brand name available right now.
Co-authored-by: coltondemetriou <coltondemetriou@gmail.com>
#826)

Adds a new field type, `DynamicOptionsSelector`. This field type can be
populated with options from a function using hooks, which will allow
e.g. reading off the stream document to determine which set of options
to show.

This PR also uses this type for the `Locator` component's `Dynamic
Fields` (facet fields) setting. The actual implementation of the dynamic
fields in the component will come in a separate change / commit.


J=[WAT-4911](https://yexttest.atlassian.net/browse/WAT-4911?atlOrigin=eyJpIjoiMGEzNzFiYjg1ZDA3NDg1MDliN2ZiZTQwOTdmNTg1ZDQiLCJwIjoiaiJ9)


https://github.com/user-attachments/assets/103a6f27-acf3-4950-a7e7-ab2d536243cc

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Ben Life <blife@yext.com>
We were importing by package instead of by file, so treeshaking was not
happening. The plugin build is now immensely faster and the output size
went from ~8mb to ~8kb.

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
J=WAT-5143,WAT-5144
TEST=manual

confirmed it worked in dev mode and live pages

https://drive.google.com/file/d/172DeYAyBHMZcJQbOiFK5qYThSmHPFAti/view?usp=sharing

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
This updates the directory schema to be a `CollectionPage` with the
`dm_directoryChildren` as the list elements, adds a new default schema
for locators, and fixes the fallback default schema.

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
- Allows migrations for root.props
- Migrates our current location schemas to set `@id` with the domain and
path
- Migrates directory and locator schemas based on #845

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
For Get Directions previously using Coordinates:
```
if (ref_listings):
   build link with ref_listings
else:
   build link with yextDisplayCoordinate
```
For Get Directions previously using Address:
```
if currentlySelectedAddress is address && ref_listings:
   build link with ref_listings
else 
   build link with Address 
```

Remove static value from Address prop. Don't allow users to select
coordinates to use, always use "yextDisplayCoordinate"

Tested in platform and confirmed setting address field to a diff field
works. Confirmed ref_listings is used if it exists and gives a valid
link. Confirmed fallbacks work as expected.

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Automatically add breadcrumbs and reviews schema to entity pages, if the
data is present on the document.

Breadcrumbs and reviews get added as separate blocks. Wraps the whole
schema in `@graph`.

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Forgot to migrate the local starter to use data instead of document for
schema

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
briantstephan and others added 12 commits November 3, 2025 10:16
This fixes the URL templating issue when switching languages via the
picker in the header component. It will require a change to our page set
creation flow that requests the upcoming `isPrimaryLocale` field from
the content endpoint.

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Updates the locator component's filter modal to include the facets
selected by the user in the settings panel.

Note: A know gap between this commit and the mock is that the checkboxes
are gray rather than the primary theme color (in the case of the demo,
dark red). That will require additional work in search-ui-react to allow
for custom icons for facet options.

J=WAT-5141
TEST=manual


demo:https://drive.google.com/file/d/1AfRy4-7Ym1OaO_PQoYIj0tagiPoVyFEN/view?usp=drive_link

---------

Co-authored-by: Kyle Gerner <kgerner@yext.com>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Ben Life <blife@yext.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Removes `undefined/null/""/[]/{}` from schema as well as any objects
that just have `"@type"`

Also reorganizes the schema functions and adds some more unit tests. The
main new code is `removeEmptyValues`.

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
…eter (#849)

Updates the locator to read the "initialLocation" query parameter from
the URL - if set on load, automatically execute a filter search for the
value of the param and use the first result as the starting location of
the map.

J=WAT-5131
TEST=manual

Tested using the create-dev-release flow.
https://jam.dev/c/4765bdce-d324-4d6f-b2f0-4bb1dcc208e4

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
…ent (#860)

Updates the locator to derive the Get Directions link on result cards
from the ref_listings field in the search response if present, otherwise
fallback to the yextDisplayCoordinate. If that is also not present,
don't display the get direction button.

Copies the logic in #846 to determine the URL.

J=WAT-5136
TEST=manual

Created a locator in the Krusty dev account (514581), which has some
entities with ref_listings data pointing to simulated URLs. Confirmed
that when the ref_listings field in the search response had a listingUrl
for a GOOGLEMYBUSINESS publisher, the Get Directions button pointed to
the listingUrl rather than the Google Maps one generated from the
yextDisplayCoordinate field. Confirmed that when the ref_listings field
was empty or did not have a GOOGLEMYBUSINESS publisher, the
yextDisplayCoordinate field was used to generate the Get Direction URL
instead.

jam:https://jam.dev/c/a41f5a6d-1491-4a7a-96aa-936766e204e6
This defines the FooterLogos component outside of the parent component,
which prevents re-renders that were previously causing flickering on the
logo image while in the editor.

Tested in dev mode and verified that the logo in ExpandedFooter no
longer flickers when hovering or un-hovering over the footer.

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
<img width="1222" height="744" alt="Screenshot 2025-11-04 at 6 00 47 PM"
src="https://github.com/user-attachments/assets/4c16ba56-c63f-4e7a-aa6c-dbcac8c430c7"
/>

---------

Co-authored-by: coltondemetriou <coltondemetriou@gmail.com>
…867)

This PR adjusts the tailwind css of the Locator Filter modal on small
screens, both so that it appears, and also so that it takes up the full
screen and covers the search bar as desired.
J=WAT-5170
TEST=manual

See Jam:
https://jam.dev/c/a765896b-4400-43c0-a500-9eb75ac193d9
#866)

Adds a field in the locator settings panel to show or not show distance
options that set the radius of any applied near filters.

J=WAT-5141
TEST=manual

jam:https://jam.dev/c/9fe6b4f6-8df1-4871-816e-c88186482681

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
…tor (#870)

When searching for countries in the locator filtersearch bar (e.g.
"United States"), the static filter returned by filtersearch is
```json
{
  "address.countryCode": {
    "$eq": "US"
  }
}
```
instead of a `{"$near": {lat, lng, radius}}` filter. This adds handling
to the locator to support this type of filter, and also updates distance
and clear filters click handlers to only update near filter radii.

J=WAT-5171
TEST=manual

jam:https://jam.dev/c/04a22a5c-4d95-4d89-9e31-3f7f0bc1ed0a

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
@github-actions
Copy link
Contributor

github-actions bot commented Nov 5, 2025

Warning: Component files have been updated but no migrations have been added. See https://github.com/yext/visual-editor/blob/main/packages/visual-editor/src/components/migrations/README.md for more information.

@benlife5 benlife5 changed the title chore: slots QA part 3 chore: slots QA part 4 Nov 5, 2025
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 5, 2025

Caution

Review failed

The pull request is closed.

Walkthrough

This PR adds a boolean showDistanceOptions toggle across Locator props, default layout, and 22 locale files; it conditions rendering and behavior of the distance UI and related radius logic in the Locator and FilterModal. It also adds editor-only empty-state handling and PuckComponent typing to the MapboxStaticMap and StaticMapSection, updates directoryConfig to include a hidden slots section, and renames a migration export key to LocatorComponent.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant Locator
    participant FilterModal
    participant DistanceFilter

    User->>Locator: Initialize (filters.showDistanceOptions = true|false)
    User->>FilterModal: Open filters
    alt showDistanceOptions = true
        FilterModal->>DistanceFilter: Render distance UI
        User->>DistanceFilter: Set radius / near
        DistanceFilter-->>FilterModal: Selected distance
    else showDistanceOptions = false
        Note over FilterModal: Distance UI not rendered
    end
    User->>FilterModal: Apply filters
    FilterModal->>Locator: Apply filters (near/radius handling)
    Note over Locator: Overwrite/retain radius depending on showDistanceOptions and matcher type
    Locator-->>User: Render filtered results
Loading
sequenceDiagram
    participant Editor
    participant StaticMapSection
    participant MapboxStaticMap

    Editor->>StaticMapSection: Render (editing mode)
    StaticMapSection->>MapboxStaticMap: Render(puck, id, apiKey)
    alt apiKey missing and editing
        MapboxStaticMap-->>Editor: Render editor-only empty state (icon + messages)
    else apiKey present or not editing
        MapboxStaticMap-->>Editor: Render map or log warning and render nothing
    end
Loading

Possibly related PRs

Suggested labels

create-dev-release

Suggested reviewers

  • briantstephan
  • colton-demetriou
  • mkilpatrick

Pre-merge checks and finishing touches

❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Title check ❓ Inconclusive The title 'chore: slots QA part 3' is vague and does not clearly convey the main changes. While it references 'slots', it doesn't specify what was actually done (adding slot components to directory config, translation additions, and new distance filter features). Provide a more specific title that describes the primary changes, such as 'chore: add slots support and distance filtering options' or similar.
✅ Passed checks (1 passed)
Check name Status Explanation
Description check ✅ Passed The description is minimal but related to the changeset. It mentions adding slot components to directory config and merging main, which aligns with actual changes in directoryConfig.tsx and the overall PR objectives.

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e8b9cfc and 42d5922.

📒 Files selected for processing (1)
  • packages/visual-editor/src/docs/components.md (1 hunks)

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (2)
packages/visual-editor/locales/da/visual-editor.json (1)

170-171: Minor: Inconsistent hyphenation style for "API-nøgle".

Line 171 uses "API -nøgle" (with space before hyphen), while line 615 uses "API-nøgle" (without space). For consistency and correctness in Danish, use the non-spaced variant "API-nøgle" throughout.

- "apiKey": "API -nøgle",
+ "apiKey": "API-nøgle",

Also applies to: 615-615

packages/visual-editor/src/components/configs/directoryConfig.tsx (1)

46-49: Optional: add a category title for future visibility.

Even though visible: false, adding a localized title now avoids a follow-up when enabling it later.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 9bfbbf6 and e8b9cfc.

📒 Files selected for processing (31)
  • packages/visual-editor/locales/cs/visual-editor.json (2 hunks)
  • packages/visual-editor/locales/da/visual-editor.json (2 hunks)
  • packages/visual-editor/locales/de/visual-editor.json (2 hunks)
  • packages/visual-editor/locales/en-GB/visual-editor.json (2 hunks)
  • packages/visual-editor/locales/en/visual-editor.json (2 hunks)
  • packages/visual-editor/locales/es/visual-editor.json (2 hunks)
  • packages/visual-editor/locales/et/visual-editor.json (2 hunks)
  • packages/visual-editor/locales/fi/visual-editor.json (2 hunks)
  • packages/visual-editor/locales/fr/visual-editor.json (2 hunks)
  • packages/visual-editor/locales/hr/visual-editor.json (2 hunks)
  • packages/visual-editor/locales/hu/visual-editor.json (2 hunks)
  • packages/visual-editor/locales/it/visual-editor.json (2 hunks)
  • packages/visual-editor/locales/ja/visual-editor.json (2 hunks)
  • packages/visual-editor/locales/lt/visual-editor.json (2 hunks)
  • packages/visual-editor/locales/lv/visual-editor.json (2 hunks)
  • packages/visual-editor/locales/nb/visual-editor.json (2 hunks)
  • packages/visual-editor/locales/nl/visual-editor.json (2 hunks)
  • packages/visual-editor/locales/pl/visual-editor.json (2 hunks)
  • packages/visual-editor/locales/pt/visual-editor.json (2 hunks)
  • packages/visual-editor/locales/ro/visual-editor.json (2 hunks)
  • packages/visual-editor/locales/sk/visual-editor.json (2 hunks)
  • packages/visual-editor/locales/sv/visual-editor.json (2 hunks)
  • packages/visual-editor/locales/tr/visual-editor.json (2 hunks)
  • packages/visual-editor/locales/zh-TW/visual-editor.json (2 hunks)
  • packages/visual-editor/locales/zh/visual-editor.json (2 hunks)
  • packages/visual-editor/src/components/Locator.tsx (18 hunks)
  • packages/visual-editor/src/components/configs/directoryConfig.tsx (4 hunks)
  • packages/visual-editor/src/components/contentBlocks/MapboxStaticMap.tsx (4 hunks)
  • packages/visual-editor/src/components/migrations/0021_set_open_now_default.ts (1 hunks)
  • packages/visual-editor/src/components/pageSections/StaticMapSection.tsx (3 hunks)
  • packages/visual-editor/src/vite-plugin/defaultLayoutData.ts (1 hunks)
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-10-29T22:00:03.843Z
Learnt from: mkouzel-yext
Repo: yext/visual-editor PR: 833
File: packages/visual-editor/src/components/Locator.tsx:1050-1057
Timestamp: 2025-10-29T22:00:03.843Z
Learning: In packages/visual-editor/src/components/Locator.tsx, the AppliedFilters component is intentionally rendered in two locations (inside the filter modal and outside it) as per the design requirements. This dual rendering should not be flagged as a duplicate issue.

Applied to files:

  • packages/visual-editor/src/components/Locator.tsx
🧬 Code graph analysis (2)
packages/visual-editor/src/components/configs/directoryConfig.tsx (2)
packages/visual-editor/src/components/categories/DirectoryCategory.tsx (1)
  • DirectoryCategoryProps (3-5)
packages/visual-editor/src/components/categories/SlotsCategory.tsx (3)
  • SlotsCategoryProps (138-182)
  • SlotsCategoryComponents (200-275)
  • SlotsCategory (277-279)
packages/visual-editor/src/components/Locator.tsx (1)
packages/visual-editor/src/editor/YextField.tsx (1)
  • YextField (163-284)
🪛 Biome (2.1.2)
packages/visual-editor/src/components/contentBlocks/MapboxStaticMap.tsx

[error] 17-17: Do not shadow the global "Map" property.

Consider renaming this variable. It's easy to confuse the origin of variables when they're named after a known global.

(lint/suspicious/noShadowRestrictedNames)

🔇 Additional comments (33)
packages/visual-editor/locales/sv/visual-editor.json (2)

370-370: Translation addition for distance filtering feature looks good.

The Swedish translation for showDistanceOptions is correctly positioned within the options object and maintains consistency with the codebase's naming convention.


615-616: Static map empty-state messages properly added.

Both root-level translation keys for static map empty states are correctly formatted and semantically appropriate Swedish translations aligned with the feature implementation described in the PR.

packages/visual-editor/locales/nl/visual-editor.json (1)

369-369: Translations look good—properly placed and natural Dutch phrasing.

All three new entries are correctly positioned within the JSON structure and follow established naming conventions. The Dutch translations are contextually appropriate and align with the feature additions for distance filtering and static map empty-state messaging.

Also applies to: 614-615

packages/visual-editor/locales/zh-TW/visual-editor.json (1)

369-369: Translation keys properly added and consistent with multi-locale updates.

All three new translation strings are correctly placed and formatted:

  • Line 369: showDistanceOptions option toggle in the expected fields.options location
  • Lines 614–615: Empty-state messaging keys at the root level for static map scenarios

The JSON structure is valid, naming conventions are consistent with existing keys, and the additions align with the coordinated multi-locale feature expansion described in the PR objectives.

Also applies to: 614-615

packages/visual-editor/locales/da/visual-editor.json (1)

370-370: LGTM!

The new translation keys are properly placed and semantically appropriate for Danish. The additions align with the coordinated internationalization effort described in the PR summary.

Also applies to: 615-616

packages/visual-editor/locales/de/visual-editor.json (1)

368-368: Locale additions look good.

The three new translation keys are properly structured, grammatically correct, and consistently placed within the JSON hierarchy. The additions align with the feature rollout described in the PR (distance filtering and static map empty states) and match the pattern across other locales mentioned in the summary.

Consider verifying that these keys and their translations are consistent across all 22 locales mentioned in the PR summary to ensure uniform feature coverage and translation quality. You may want to spot-check a few other locale files (e.g., en, fr, es) to confirm the key names and translation patterns match.

Also applies to: 613-614

packages/visual-editor/locales/ro/visual-editor.json (2)

369-369: Localization is complete across all language files.

Verification confirms that showDistanceOptions has been successfully added to all 25 locale files. No locales are missing the translation key, so internationalization coverage is consistent.


614-615: Localization keys are consistently present across all locales — no issues found.

The verification confirms that both staticMapEmptyStateAddApiKey and staticMapEmptyStateSectionHidden translation keys are present in all 25 locale files (Czech, Danish, German, English variants, Spanish, Estonian, Finnish, French, Croatian, Hungarian, Italian, Japanese, Lithuanian, Latvian, Norwegian Bokmål, Dutch, Polish, Portuguese, Romanian, Slovak, Swedish, Turkish, and Chinese variants). No locale files are missing either key.

packages/visual-editor/locales/et/visual-editor.json (1)

369-369: Translation keys verified across all locales.

All three new translation keys have been successfully added and are present in all 23 locale files:

  • showDistanceOptions (distance filtering feature)
  • staticMapEmptyStateAddApiKey and staticMapEmptyStateSectionHidden (static map empty-state messaging)

The Estonian translations are correctly integrated, and consistency across all locales has been confirmed.

packages/visual-editor/locales/pl/visual-editor.json (3)

370-370: Well-placed translation key for distance options.

The showDistanceOptions key is properly alphabetized within fields.options and the Polish translation is grammatically correct and contextually appropriate.


615-616: Polish translations are accurate.

Both new static map messages are translated correctly:

  • "Dodaj klucz API, aby wyświetlić podgląd mapy" accurately conveys "Add API key to display map preview"
  • "Sekcja ukryta dla wszystkich lokalizacji" correctly translates "Section hidden for all locations"

615-616: Polish locale file is correct—no changes needed.

The verification confirms that staticMapEmptyStateAddApiKey and staticMapEmptyStateSectionHidden are correctly placed at the root level, exactly as they appear in all 25 other locale files. This is the standard placement across the entire codebase, not a structural issue. The Polish translations are accurate and consistent with the established pattern.

packages/visual-editor/locales/nb/visual-editor.json (1)

369-369: All translation keys are consistently present across all 25 locales.

The verification confirms that the three new translation keys (showDistanceOptions, staticMapEmptyStateAddApiKey, staticMapEmptyStateSectionHidden) have been successfully added to every supported locale file, including Norwegian (nb). No synchronization issues detected. The translations are linguistically appropriate and properly integrated.

packages/visual-editor/locales/ja/visual-editor.json (1)

369-369: LGTM! Consistent localization additions.

The three new translation keys support the distance filtering feature and static map empty-state messaging. The additions are well-placed within the locale structure and align with the broader PR objectives.

Note: I cannot verify the accuracy of the Japanese translations themselves, but the key placement and JSON structure are correct.

Also applies to: 614-615

packages/visual-editor/locales/fr/visual-editor.json (1)

368-368: LGTM! Consistent with other locale additions.

The French translations follow the same pattern as other locales, adding support for distance options and static map empty states. JSON structure is valid.

Also applies to: 613-614

packages/visual-editor/locales/pt/visual-editor.json (1)

369-369: LGTM! Portuguese locale additions are consistent.

The Portuguese translations properly support the new distance filtering and static map features with correct key placement.

Also applies to: 614-615

packages/visual-editor/locales/lt/visual-editor.json (1)

369-369: LGTM! Lithuanian locale additions are consistent.

The translations follow the established pattern across all locales, properly supporting the new features.

Also applies to: 614-615

packages/visual-editor/locales/zh/visual-editor.json (1)

369-369: LGTM! Chinese locale additions are consistent.

The Simplified Chinese translations properly align with the feature additions across all other locales.

Also applies to: 614-615

packages/visual-editor/locales/sk/visual-editor.json (1)

370-370: LGTM! Slovak locale additions are consistent.

The Slovak translations follow the same pattern as other locales, with proper key placement for the distance options and static map features.

Also applies to: 615-616

packages/visual-editor/locales/lv/visual-editor.json (1)

369-369: LGTM! Latvian locale additions complete the internationalization.

The Latvian translations are consistent with all other locale files, properly supporting the new distance filtering and static map empty-state features.

Also applies to: 614-615

packages/visual-editor/src/components/migrations/0021_set_open_now_default.ts (1)

4-4: No issues found—migration rename is correct.

The verification confirms that LocatorComponent is the accurate and current component identifier used throughout the codebase. The migration object key in 0021_set_open_now_default.ts correctly aligns with the component export in Locator.tsx (line 558) and is properly referenced in all usage sites. No stale references to an old "Locator" migration key exist that would cause conflicts or inconsistency.

packages/visual-editor/src/components/configs/directoryConfig.tsx (3)

18-22: Imports look correct and scoped.

Integration of SlotsCategory, SlotsCategoryComponents, and SlotsCategoryProps is consistent with the rest of the config surface.


36-36: No duplicate keys exist between DirectoryCategoryComponents and SlotsCategoryComponents.

DirectoryCategoryComponents exports only { Directory }, while SlotsCategoryComponents exports components with distinct names (AddressSlot, BodyTextSlot, etc.). The spreading order poses no risk of key overrides.

Likely an incorrect or invalid review comment.


25-28: No prop collisions detected across extended interfaces.

After verifying the four interfaces being extended by DirectoryConfigProps:

  • DirectoryCategoryProps: Directory
  • DeprecatedCategoryProps: Header, Footer
  • OtherCategoryProps: ExpandedHeader, ExpandedFooter, CustomCodeSection
  • SlotsCategoryProps: 41 unique props (AddressSlot, BreadcrumbsSlot, BodyTextSlot, CTASlot, DirectoryCard, DirectoryGrid, EmailsSlot, EventCard, EventCardsWrapper, FAQSlot, FooterLinksSlot, FooterLogoSlot, FooterSocialLinksSlot, HeaderLinks, HeadingTextSlot, HeroImageSlot, HoursStatusSlot, HoursTableSlot, ImageSlot, InsightCard, PhoneNumbersSlot, PhoneSlot, PhotoGalleryWrapper, PrimaryHeaderSlot, ProductCard, SecondaryFooterSlot, SecondaryHeaderSlot, ServicesListSlot, TeamCard, TeamCardsWrapper, TestimonialCard, TestimonialCardsWrapper, TextListSlot, Timestamp, VideoSlot, and others)

All prop keys are unique with no overlaps. The interface extension is safe.

Likely an incorrect or invalid review comment.

packages/visual-editor/locales/hu/visual-editor.json (2)

369-369: Added showDistanceOptions key — OK.

Placement under fields.options matches usage; no JSON structural issues observed.

Please confirm this key exists in every supported locale to avoid fallback to English.


614-615: Keys verified across all 25 locales — no issues.

Both staticMapEmptyStateAddApiKey and staticMapEmptyStateSectionHidden are present in all locale files (zh-TW, sk, pt, ro, nl, zh, sv, pl, tr, lv, hr, fr, it, lt, hu, ja, et, fi, de, en-GB, en, es, cs, da, nb). The static map empty-state strings are properly localized.

packages/visual-editor/locales/en-GB/visual-editor.json (2)

368-369: showDistanceOptions string added — consistent.

Label aligns with existing “Include …” patterns.


613-615: Static map empty-state labels added — consistent.

Matches intended UX copy; no JSON issues.

packages/visual-editor/locales/it/visual-editor.json (2)

369-369: Aggiunta showDistanceOptions — OK.

Coerente con le altre opzioni e collocata correttamente.


614-615: Stringhe empty-state mappa statica — OK.

Chiavi coerenti; nessun problema di struttura JSON.

packages/visual-editor/src/vite-plugin/defaultLayoutData.ts (1)

4541-4542: Default set for showDistanceOptions — good; verify backward-compat.

Ensure Locator treats missing filters.showDistanceOptions as false (nullish coalescing) for older saved layouts.

If needed, update:

  • Either bump locator layout version and add a migration, or
  • In Locator.tsx use: const showDistanceOptions = props.filters?.showDistanceOptions ?? false;
packages/visual-editor/locales/fi/visual-editor.json (2)

369-369: Lisätty showDistanceOptions — OK.

Sijoitus ja avain yhtenevät muihin kieliin.


614-615: Staattisen kartan tyhjätila -tekstit — Verified.

Parity check confirmed: both staticMapEmptyStateAddApiKey and staticMapEmptyStateSectionHidden are present across all 25 locales (cs, da, de, en, en-GB, es, et, fi, fr, hr, hu, it, ja, lt, lv, nb, nl, pl, pt, ro, sk, sv, tr, zh, zh-TW). Key names are consistent with component references.

@benlife5 benlife5 merged commit e0d7c19 into fall-2025-slot-ify-components Nov 5, 2025
15 of 16 checks passed
@benlife5 benlife5 deleted the final-updates branch November 5, 2025 19:31
@coderabbitai coderabbitai bot mentioned this pull request Dec 22, 2025
@coderabbitai coderabbitai bot mentioned this pull request Jan 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants