feat(builder): redesign marketplace builder experience and navigation

Renamed the experience consistently to Marketplace Builder everywhere
visible (page title/subtitle, breadcrumbs, sidebar, dashboard quick
action/shortcut copy) - internal ProjectEditor class/selector names
kept as-is to avoid regressions. builder.title/subtitle no longer say
'bootstrap-config editing surface' to end users.

New business-oriented IA (builder-groups.model.ts): 12 existing
ProjectEditorSectionIds regrouped into 8 groups (Marketplace, Branding
and Design, Homepage, Content, Languages, Marketplace Features,
Navigation and Search, Preview) - every existing section mapped to
exactly one group, none dropped, no group points at a page that
doesn't exist.

New Builder landing page at /edit (was a redirect straight into the
General form): readiness percent, recommended next step, one overview
card per group (purpose + real complete/in-progress/not-started/unknown
status, icon+text never color-alone), a Marketplace Readiness
checklist, quick links. All derived from real facade/schema signals
(required-field fill state, modifiedSections, staticPages, catalog
counts via BackofficeDataService) or explicitly marked unknown
(the "preview reviewed" check has no tracking - shown as unknown,
never guessed).

Section pages (/edit/:section) now share one consistent header:
breadcrumb (Builder > Group > Section), draft/published + modified
badges, and a contextual help panel (what is this / where visible /
what happens if you skip it) sourced per group. Sidebar nav rewritten
as grouped, icon-led sections with per-section and per-group status
indicators; layout converted from a top pill-tab bar to a responsive
sidebar (desktop 280px, tablet 72px icon rail, mobile drawer with
Escape-to-close), matching the Sprint 1 admin shell pattern. Section
form components themselves untouched.

Routes: 'edit' is now its own landing route instead of redirecting to
'edit/general'; /builder and /project-editor redirect to 'edit'.
Sprint 1/2 destinations that pointed at edit/general now point at the
new edit landing page.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
sdarbinyan
2026-07-18 09:43:03 +04:00
parent 419cb9a32c
commit 821a1c6ba8
19 changed files with 1699 additions and 152 deletions

View File

@@ -406,8 +406,8 @@ export const en: Translations = {
notAvailable: 'n/a',
},
builder: {
title: 'Marketplace Project Editor',
subtitle: 'Configuration-only bootstrap editing surface.',
title: 'Marketplace Builder',
subtitle: 'Build your marketplace step by step.',
general: 'General',
branding: 'Branding',
theme: 'Theme',
@@ -685,6 +685,83 @@ export const en: Translations = {
linkLabelDesc: 'Text shown for this navigation link.',
linkUrlDesc: 'Path or URL this navigation link points to.',
linkVisibleDesc: 'Whether this navigation link is shown to shoppers.',
appName: 'Marketplace Builder',
breadcrumbRoot: 'Marketplace Builder',
statusComplete: 'Complete',
statusInProgress: 'In progress',
statusNotStarted: 'Not started',
statusUnknown: 'Not tracked yet',
draftBadge: 'Draft',
publishedBadge: 'Published',
modifiedBadge: 'Unsaved changes',
helpToggleShow: 'What is this?',
helpToggleHide: 'Hide help',
helpWhatIsThis: 'What is this',
helpWhySkip: 'Why configure it',
helpWhereVisible: 'Where shoppers see it',
helpWhatIfSkip: "What happens if you skip it",
helpWhenReturn: 'When to come back to this',
openSidebar: 'Open sections menu',
closeSidebar: 'Close sections menu',
overviewTitle: 'Marketplace Builder',
overviewSubtitle: 'Build your marketplace step by step',
overviewReadinessLabel: 'Your marketplace is {{percent}}% configured',
overviewReadinessHint: 'Based on the required fields you have filled in so far.',
overviewNextStepLabel: 'Recommended next step',
overviewNextStepFallback: 'All required steps are done - you are ready to publish.',
overviewQuickLinksTitle: 'Quick links',
overviewSectionsTitle: 'Builder sections',
overviewOpenSection: 'Open section',
overviewReadinessTitle: 'Marketplace readiness',
readinessLogoUploaded: 'Logo uploaded',
readinessHomepageConfigured: 'Homepage configured',
readinessThemeConfigured: 'Theme configured',
readinessLanguagesConfigured: 'Languages configured',
readinessContentPagesAdded: 'Info pages added',
readinessPreviewReviewed: 'Preview reviewed',
readinessPublished: 'Marketplace published',
readinessCategoriesExist: 'Categories exist',
readinessProductsExist: 'Products exist',
groupMarketplaceLabel: 'Marketplace',
groupMarketplaceDescription: 'Name, address, and the core details of your marketplace.',
groupMarketplacePurpose: 'The basic information that defines your marketplace: name, domain, and default language.',
groupMarketplaceWhere: 'The name and address show up in the browser tab, search results, and every storefront page.',
groupMarketplaceSkip: "Without a name and address, your marketplace won't feel finished to shoppers.",
groupBrandingLabel: 'Branding & Design',
groupBrandingDescription: 'Logo, colors, header and footer - your store\'s visual identity.',
groupBrandingPurpose: "Set how your marketplace looks: logo, color palette, and the header/footer chrome.",
groupBrandingWhere: 'Changes show up on every page a shopper sees.',
groupBrandingSkip: "Your marketplace will use default styling that doesn't reflect your brand.",
groupHomepageLabel: 'Homepage',
groupHomepageDescription: 'The banners, showcases, and widgets shoppers see first.',
groupHomepagePurpose: 'Build your homepage from blocks: a hero banner, featured categories and products, promotions.',
groupHomepageWhere: "It's the first page a shopper sees when they open your marketplace.",
groupHomepageSkip: 'Your homepage will stay empty or use a default layout.',
groupContentLabel: 'Content',
groupContentDescription: 'About us, contacts, delivery, returns, and other info pages.',
groupContentPurpose: 'Add the pages shoppers trust: about us, contacts, delivery and return terms.',
groupContentWhere: "Links to these pages usually appear in the site footer.",
groupContentSkip: "Shoppers won't find answers about delivery, returns, or how to contact you - that hurts trust.",
groupLanguagesLabel: 'Languages',
groupLanguagesDescription: 'Which languages your marketplace works in.',
groupLanguagesPurpose: 'Pick a default language and add more for shoppers in other regions.',
groupLanguagesWhere: 'The language switcher is visible in the header on every page.',
groupLanguagesSkip: 'Your marketplace will only be available in the default language.',
groupFeaturesLabel: 'Marketplace Features',
groupFeaturesDescription: 'Wishlist, compare, reviews, guest checkout, and more.',
groupFeaturesPurpose: 'Turn shopper-facing features on or off: wishlist, product comparison, guest checkout.',
groupFeaturesWhere: 'Affects the catalog, product, and checkout pages.',
groupFeaturesSkip: 'Your marketplace will use the default feature set.',
groupNavigationLabel: 'Navigation & Search',
groupNavigationDescription: "The site menu and how shoppers find products.",
groupNavigationPurpose: 'Configure the menu items and how catalog navigation is structured.',
groupNavigationWhere: 'Visible in the site header on every page.',
groupNavigationSkip: 'Shoppers will use the default navigation.',
groupPreviewLabel: 'Preview',
groupPreviewDescription: 'See how your marketplace looks on desktop, tablet, and phone.',
groupPreviewPurpose: 'Check your marketplace through a shopper\'s eyes before publishing - across screen sizes.',
groupPreviewWhere: "This is a preview - shoppers never see it.",
groupPreviewSkip: 'You can publish your changes without reviewing them first.',
},
dashboard: {
title: 'Dashboard',
@@ -708,7 +785,7 @@ export const en: Translations = {
statePendingBackend: 'Awaiting backend integration',
never: 'Never',
quickActionsTitle: 'Quick Actions',
actionEditProject: 'Edit Project',
actionEditProject: 'Marketplace Builder',
actionCategories: 'Categories',
actionProducts: 'Products',
actionStaticPages: 'Static Pages',

View File

@@ -406,8 +406,8 @@ export const hy: Translations = {
notAvailable: 'չկա',
},
builder: {
title: 'Մարքեթփլեյսի նախագծի խմբագիր',
subtitle: 'Միայն bootstrap կարգավորման խմբագրման մակերես։',
title: 'Մարկետփլեյսի կոնստրուկտոր',
subtitle: 'Կառուցեք ձեր մարկետփլեյսը քայլ առ քայլ։',
general: 'Ընդհանուր',
branding: 'Բրենդինգ',
theme: 'Թեմա',
@@ -685,6 +685,83 @@ export const hy: Translations = {
linkLabelDesc: 'Այս նավիգացիոն հղման համար ցուցադրվող տեքստը։',
linkUrlDesc: 'Ուղին կամ URL-ը, որին ուղղորդում է այս նավիգացիոն հղումը։',
linkVisibleDesc: 'Արդյո՞ք այս նավիգացիոն հղումը ցուցադրվում է գնորդներին։',
appName: 'Մարկետփլեյսի կոնստրուկտոր',
breadcrumbRoot: 'Մարկետփլեյսի կոնստրուկտոր',
statusComplete: 'Ավարտված',
statusInProgress: 'Ընթացքի մեջ',
statusNotStarted: 'Չսկսված',
statusUnknown: 'Դեռ չի հետևվում',
draftBadge: 'Սևագիր',
publishedBadge: 'Հրապարակված',
modifiedBadge: 'Չպահպանված փոփոխություններ',
helpToggleShow: 'Ի՞նչ է սա',
helpToggleHide: 'Թաքցնել օգնությունը',
helpWhatIsThis: 'Ի՞նչ է սա',
helpWhySkip: 'Ինչու՞ կարգավորել',
helpWhereVisible: 'Որտե՞ղ են տեսնում գնորդները',
helpWhatIfSkip: 'Ի՞նչ կլինի, եթե բաց թողնեք',
helpWhenReturn: 'Ե՞րբ վերադառնալ այս բաժնին',
openSidebar: 'Բացել բաժինների ցանկը',
closeSidebar: 'Փակել բաժինների ցանկը',
overviewTitle: 'Մարկետփլեյսի կոնստրուկտոր',
overviewSubtitle: 'Կառուցեք ձեր մարկետփլեյսը քայլ առ քայլ',
overviewReadinessLabel: 'Ձեր մարկետփլեյսը կարգավորված է {{percent}}%',
overviewReadinessHint: 'Հիմնված է արդեն լրացված պարտադիր դաշտերի վրա։',
overviewNextStepLabel: 'Առաջարկվող հաջորդ քայլը',
overviewNextStepFallback: 'Բոլոր պարտադիր քայլերն ավարտված են՝ կարող եք հրապարակել։',
overviewQuickLinksTitle: 'Արագ հղումներ',
overviewSectionsTitle: 'Կոնստրուկտորի բաժինները',
overviewOpenSection: 'Բացել բաժինը',
overviewReadinessTitle: 'Մարկետփլեյսի պատրաստվածություն',
readinessLogoUploaded: 'Լոգոն վերբեռնված է',
readinessHomepageConfigured: 'Գլխավոր էջը կարգավորված է',
readinessThemeConfigured: 'Թեման կարգավորված է',
readinessLanguagesConfigured: 'Լեզուները կարգավորված են',
readinessContentPagesAdded: 'Ինֆորմացիոն էջեր ավելացված են',
readinessPreviewReviewed: 'Նախադիտումը ստուգված է',
readinessPublished: 'Մարկետփլեյսը հրապարակված է',
readinessCategoriesExist: 'Կատեգորիաներ կան',
readinessProductsExist: 'Ապրանքներ կան',
groupMarketplaceLabel: 'Մարկետփլեյս',
groupMarketplaceDescription: 'Անվանումը, հասցեն և ձեր մարկետփլեյսի հիմնական տվյալները։',
groupMarketplacePurpose: 'Հիմնական տվյալները, որոնք սահմանում են ձեր մարկետփլեյսը՝ անվանում, դոմեն և լռելյայն լեզու։',
groupMarketplaceWhere: 'Անվանումը և հասցեն երևում են բրաուզերի ներդիրում, որոնման արդյունքներում և խանութի բոլոր էջերում։',
groupMarketplaceSkip: 'Առանց անվանման և հասցեի ձեր մարկետփլեյսը գնորդներին կթվա անավարտ։',
groupBrandingLabel: 'Բրենդինգ և ձևավորում',
groupBrandingDescription: 'Լոգո, գույներ, վերնագիր և ստորագիր՝ ձեր խանութի տեսողական ոճը։',
groupBrandingPurpose: 'Կարգավորեք ձեր մարկետփլեյսի տեսքը՝ լոգո, գունային ներկապնակ, վերնագրի/ստորագրի տարրեր։',
groupBrandingWhere: 'Փոփոխությունները երևում են գնորդի տեսած յուրաքանչյուր էջում։',
groupBrandingSkip: 'Ձեր մարկետփլեյսը կօգտագործի լռելյայն ոճավորում, որը չի արտացոլում ձեր բրենդը։',
groupHomepageLabel: 'Գլխավոր էջ',
groupHomepageDescription: 'Բաններներ, ցուցափեղկեր և վիջեթներ, որոնք գնորդներն առաջինը տեսնում են։',
groupHomepagePurpose: 'Կառուցեք ձեր գլխավոր էջը բլոկներից՝ ողջունող բաններ, ընտրված կատեգորիաներ և ապրանքներ, ակցիաներ։',
groupHomepageWhere: 'Սա առաջին էջն է, որը գնորդը տեսնում է ձեր մարկետփլեյսը բացելիս։',
groupHomepageSkip: 'Ձեր գլխավոր էջը կմնա դատարկ կամ կօգտագործի լռելյայն դասավորություն։',
groupContentLabel: 'Բովանդակություն',
groupContentDescription: 'Մեր մասին, կոնտակտներ, առաքում, վերադարձ և այլ ինֆորմացիոն էջեր։',
groupContentPurpose: 'Ավելացրեք էջեր, որոնց գնորդները վստահում են՝ մեր մասին, կոնտակտներ, առաքման և վերադարձի պայմաններ։',
groupContentWhere: 'Այս էջերի հղումները սովորաբար ցուցադրվում են կայքի ստորագրում։',
groupContentSkip: 'Գնորդները չեն գտնի պատասխաններ առաքման, վերադարձի կամ կապի մասին հարցերին՝ սա նվազեցնում է վստահությունը։',
groupLanguagesLabel: 'Լեզուներ',
groupLanguagesDescription: 'Ինչ լեզուներով է աշխատում ձեր մարկետփլեյսը։',
groupLanguagesPurpose: 'Ընտրեք լռելյայն լեզուն և ավելացրեք լրացուցիչ լեզուներ այլ տարածաշրջանների գնորդների համար։',
groupLanguagesWhere: 'Լեզվի փոխարկիչը երևում է կայքի վերնագրում յուրաքանչյուր էջում։',
groupLanguagesSkip: 'Ձեր մարկետփլեյսը հասանելի կլինի միայն լռելյայն լեզվով։',
groupFeaturesLabel: 'Մարկետփլեյսի հնարավորություններ',
groupFeaturesDescription: 'Ցանկություններ, համեմատում, կարծիքներ, հյուր-պատվեր և այլն։',
groupFeaturesPurpose: 'Միացրեք կամ անջատեք գնորդի հնարավորությունները՝ ցանկությունների ցանկ, ապրանքների համեմատում, հյուր-պատվեր։',
groupFeaturesWhere: 'Ազդում է կատալոգի, ապրանքի և պատվերի ձևակերպման էջերի վրա։',
groupFeaturesSkip: 'Ձեր մարկետփլեյսը կօգտագործի հնարավորությունների լռելյայն հավաքածուն։',
groupNavigationLabel: 'Նավիգացիա և որոնում',
groupNavigationDescription: 'Կայքի ընտրացանկը և ինչպես են գնորդները գտնում ապրանքները։',
groupNavigationPurpose: 'Կարգավորեք ընտրացանկի կետերը և կատալոգի նավիգացիայի կառուցվածքը։',
groupNavigationWhere: 'Երևում է կայքի վերնագրում յուրաքանչյուր էջում։',
groupNavigationSkip: 'Գնորդները կօգտագործեն լռելյայն նավիգացիան։',
groupPreviewLabel: 'Նախադիտում',
groupPreviewDescription: 'Տեսեք, թե ինչպես է ձեր մարկետփլեյսը երևում դեսքթոփի, պլանշետի և հեռախոսի վրա։',
groupPreviewPurpose: 'Ստուգեք ձեր մարկետփլեյսը գնորդի աչքերով նախքան հրապարակելը՝ տարբեր էկրանների վրա։',
groupPreviewWhere: 'Սա նախադիտում է՝ գնորդները այն երբեք չեն տեսնում։',
groupPreviewSkip: 'Կարող եք հրապարակել փոփոխությունները առանց ստուգելու։',
},
dashboard: {
title: 'Կառավարման վահանակ',
@@ -708,7 +785,7 @@ export const hy: Translations = {
statePendingBackend: 'Սպասվում է backend ինտեգրման',
never: 'Երբեք',
quickActionsTitle: 'Արագ գործողություններ',
actionEditProject: 'Խմբագրել նախագիծը',
actionEditProject: 'Մարկետփլեյսի կոնստրուկտոր',
actionCategories: 'Կատեգորիաներ',
actionProducts: 'Ապրանքներ',
actionStaticPages: 'Ստատիկ էջեր',

View File

@@ -406,8 +406,8 @@ export const ru: Translations = {
notAvailable: 'н/д',
},
builder: {
title: 'Редактор проекта маркетплейса',
subtitle: 'Поверхность редактирования только bootstrap-конфигурации.',
title: 'Конструктор маркетплейса',
subtitle: 'Соберите свой маркетплейс шаг за шагом.',
general: 'Общие',
branding: 'Брендинг',
theme: 'Тема',
@@ -685,6 +685,83 @@ export const ru: Translations = {
linkLabelDesc: 'Текст, отображаемый для этой ссылки навигации.',
linkUrlDesc: 'Путь или URL, на который ведёт эта ссылка навигации.',
linkVisibleDesc: 'Показывать ли эту ссылку навигации покупателям.',
appName: 'Конструктор маркетплейса',
breadcrumbRoot: 'Конструктор маркетплейса',
statusComplete: 'Готово',
statusInProgress: 'В процессе',
statusNotStarted: 'Не начато',
statusUnknown: 'Пока не отслеживается',
draftBadge: 'Черновик',
publishedBadge: 'Опубликовано',
modifiedBadge: 'Есть несохранённые изменения',
helpToggleShow: 'Что это такое?',
helpToggleHide: 'Скрыть подсказку',
helpWhatIsThis: 'Что это',
helpWhySkip: 'Зачем это настраивать',
helpWhereVisible: 'Где это видят покупатели',
helpWhatIfSkip: 'Что будет, если пропустить',
helpWhenReturn: 'Когда возвращаться к этому разделу',
openSidebar: 'Открыть меню разделов',
closeSidebar: 'Закрыть меню разделов',
overviewTitle: 'Конструктор маркетплейса',
overviewSubtitle: 'Соберите свой маркетплейс шаг за шагом',
overviewReadinessLabel: 'Маркетплейс настроен на {{percent}}%',
overviewReadinessHint: 'Основано на обязательных полях, которые вы уже заполнили.',
overviewNextStepLabel: 'Рекомендуемый следующий шаг',
overviewNextStepFallback: 'Все обязательные шаги выполнены — можно опубликовать маркетплейс.',
overviewQuickLinksTitle: 'Быстрые ссылки',
overviewSectionsTitle: 'Разделы конструктора',
overviewOpenSection: 'Открыть раздел',
overviewReadinessTitle: 'Готовность маркетплейса',
readinessLogoUploaded: 'Логотип загружен',
readinessHomepageConfigured: 'Главная страница настроена',
readinessThemeConfigured: 'Тема настроена',
readinessLanguagesConfigured: 'Языки настроены',
readinessContentPagesAdded: 'Добавлены информационные страницы',
readinessPreviewReviewed: 'Просмотр проверен',
readinessPublished: 'Маркетплейс опубликован',
readinessCategoriesExist: 'Есть категории',
readinessProductsExist: 'Есть товары',
groupMarketplaceLabel: 'Маркетплейс',
groupMarketplaceDescription: 'Название, адрес и основная информация о вашем маркетплейсе.',
groupMarketplacePurpose: 'Базовая информация, которая определяет ваш маркетплейс: название, домен и язык по умолчанию.',
groupMarketplaceWhere: 'Название и адрес видны во вкладке браузера, поисковой выдаче и на всех страницах магазина.',
groupMarketplaceSkip: 'Без названия и адреса маркетплейс не будет выглядеть завершённым для покупателей.',
groupBrandingLabel: 'Брендинг и оформление',
groupBrandingDescription: 'Логотип, цвета, шапка и подвал — визуальный стиль вашего магазина.',
groupBrandingPurpose: 'Настройте, как выглядит ваш маркетплейс: логотип, цветовую палитру и элементы шапки/подвала сайта.',
groupBrandingWhere: 'Изменения видны на каждой странице, которую видят покупатели.',
groupBrandingSkip: 'Маркетплейс будет использовать оформление по умолчанию, не отражающее ваш бренд.',
groupHomepageLabel: 'Главная страница',
groupHomepageDescription: 'Баннеры, витрины и виджеты, которые покупатели видят первыми.',
groupHomepagePurpose: 'Соберите главную страницу из блоков: приветственный баннер, подборки категорий и товаров, акции.',
groupHomepageWhere: 'Это первая страница, которую видит покупатель, открыв ваш маркетплейс.',
groupHomepageSkip: 'Главная страница останется пустой или будет использовать макет по умолчанию.',
groupContentLabel: 'Контент',
groupContentDescription: 'О компании, контакты, доставка, возврат и другие информационные страницы.',
groupContentPurpose: 'Добавьте страницы, которым покупатели доверяют: о компании, контакты, условия доставки и возврата.',
groupContentWhere: 'Ссылки на эти страницы обычно показываются в подвале сайта.',
groupContentSkip: 'У покупателей не будет ответов на вопросы о доставке, возврате и контактах — это снижает доверие.',
groupLanguagesLabel: 'Языки',
groupLanguagesDescription: 'На каких языках работает ваш маркетплейс.',
groupLanguagesPurpose: 'Выберите язык по умолчанию и добавьте дополнительные языки для покупателей из других регионов.',
groupLanguagesWhere: 'Переключатель языка виден в шапке сайта на каждой странице.',
groupLanguagesSkip: 'Маркетплейс будет доступен только на одном языке по умолчанию.',
groupFeaturesLabel: 'Функции маркетплейса',
groupFeaturesDescription: 'Список желаний, сравнение, отзывы, оформление заказа без регистрации и другое.',
groupFeaturesPurpose: 'Включите или отключите функции для покупателей: список желаний, сравнение товаров, гостевой заказ.',
groupFeaturesWhere: 'Влияет на страницы каталога, товара и оформления заказа.',
groupFeaturesSkip: 'Маркетплейс будет использовать функции по умолчанию.',
groupNavigationLabel: 'Навигация и поиск',
groupNavigationDescription: 'Меню сайта и то, как покупатели находят товары.',
groupNavigationPurpose: 'Настройте пункты меню и то, как устроена навигация по каталогу.',
groupNavigationWhere: 'Видно в шапке сайта на каждой странице.',
groupNavigationSkip: 'Покупатели будут использовать навигацию по умолчанию.',
groupPreviewLabel: 'Просмотр',
groupPreviewDescription: 'Посмотрите, как маркетплейс выглядит на десктопе, планшете и телефоне.',
groupPreviewPurpose: 'Проверьте маркетплейс глазами покупателя перед публикацией — на разных экранах.',
groupPreviewWhere: 'Это предпросмотр — покупатели его не видят.',
groupPreviewSkip: 'Вы можете опубликовать изменения непроверенными.',
},
dashboard: {
title: 'Панель управления',
@@ -708,7 +785,7 @@ export const ru: Translations = {
statePendingBackend: 'Ожидает интеграции с бэкендом',
never: 'Никогда',
quickActionsTitle: 'Быстрые действия',
actionEditProject: 'Редактировать проект',
actionEditProject: 'Конструктор маркетплейса',
actionCategories: 'Категории',
actionProducts: 'Товары',
actionStaticPages: 'Статические страницы',

View File

@@ -683,6 +683,83 @@ export interface Translations {
linkLabelDesc: string;
linkUrlDesc: string;
linkVisibleDesc: string;
appName: string;
breadcrumbRoot: string;
statusComplete: string;
statusInProgress: string;
statusNotStarted: string;
statusUnknown: string;
draftBadge: string;
publishedBadge: string;
modifiedBadge: string;
helpToggleShow: string;
helpToggleHide: string;
helpWhatIsThis: string;
helpWhySkip: string;
helpWhereVisible: string;
helpWhatIfSkip: string;
helpWhenReturn: string;
openSidebar: string;
closeSidebar: string;
overviewTitle: string;
overviewSubtitle: string;
overviewReadinessLabel: string;
overviewReadinessHint: string;
overviewNextStepLabel: string;
overviewNextStepFallback: string;
overviewQuickLinksTitle: string;
overviewSectionsTitle: string;
overviewOpenSection: string;
overviewReadinessTitle: string;
readinessLogoUploaded: string;
readinessHomepageConfigured: string;
readinessThemeConfigured: string;
readinessLanguagesConfigured: string;
readinessContentPagesAdded: string;
readinessPreviewReviewed: string;
readinessPublished: string;
readinessCategoriesExist: string;
readinessProductsExist: string;
groupMarketplaceLabel: string;
groupMarketplaceDescription: string;
groupMarketplacePurpose: string;
groupMarketplaceWhere: string;
groupMarketplaceSkip: string;
groupBrandingLabel: string;
groupBrandingDescription: string;
groupBrandingPurpose: string;
groupBrandingWhere: string;
groupBrandingSkip: string;
groupHomepageLabel: string;
groupHomepageDescription: string;
groupHomepagePurpose: string;
groupHomepageWhere: string;
groupHomepageSkip: string;
groupContentLabel: string;
groupContentDescription: string;
groupContentPurpose: string;
groupContentWhere: string;
groupContentSkip: string;
groupLanguagesLabel: string;
groupLanguagesDescription: string;
groupLanguagesPurpose: string;
groupLanguagesWhere: string;
groupLanguagesSkip: string;
groupFeaturesLabel: string;
groupFeaturesDescription: string;
groupFeaturesPurpose: string;
groupFeaturesWhere: string;
groupFeaturesSkip: string;
groupNavigationLabel: string;
groupNavigationDescription: string;
groupNavigationPurpose: string;
groupNavigationWhere: string;
groupNavigationSkip: string;
groupPreviewLabel: string;
groupPreviewDescription: string;
groupPreviewPurpose: string;
groupPreviewWhere: string;
groupPreviewSkip: string;
};
dashboard: {
title: string;