feat(admin): build shared admin shell

Sidebar (Dashboard/Catalog group/Products/Categories/Orders/Transactions/
Reviews/Reports/Content/Media/Marketplace Builder/Users/Settings/
Monitoring/Analytics + Documentation/Help/Logout), sticky topbar
(breadcrumbs, page title/description, search, notifications, tenant
selector and quick-publish placeholders, current user), reserved
right-rail slot, scrollable content area. Desktop 280px sidebar, tablet
icon rail, mobile drawer with focus management and Escape-to-close.

Nav items without a built page (Reviews, Reports, Settings, Docs, Help)
render disabled with a coming-soon badge instead of dead links; Content
and Marketplace Builder route to the existing project-editor pages
(static-pages / general) rather than duplicating them.

All 15 /backoffice/** routes now render through AdminLayoutComponent;
the public storefront header/back-button/footer no longer render on
admin routes (app.ts/app.html gate on a new isAdminRoute signal).

Added the adminShell i18n namespace (ru/en/hy) for every new shell
string so this doesn't add to the existing untranslated-admin-UI gap
tracked in KNOWN-ISSUES.md.

Colors/type sizes follow DESIGN.md tokens; the two rgba() modal-scrim
values are a documented, intentional exception (neutral overlay,
not a themed token).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
sdarbinyan
2026-07-18 00:12:19 +04:00
parent 6be3c5892d
commit eb7b5c996d
12 changed files with 1384 additions and 15 deletions

View File

@@ -955,4 +955,61 @@ export const hy: Translations = {
topProductsEmptyTitle: 'Այս ժամանակահատվածում ապրանքների վաճառք չկա',
topProductsEmptyDescription: 'Փորձեք ընտրել ավելի լայն ամսաթվերի միջակայք։',
},
adminShell: {
skipToContent: 'Անցնել բովանդակությանը',
openSidebar: 'Բացել ընտրացանկը',
closeSidebar: 'Փակել ընտրացանկը',
collapseSidebar: 'Ծալել ընտրացանկը',
expandSidebar: 'Ընդարձակել ընտրացանկը',
nav: {
dashboard: 'Կառավարման վահանակ',
catalogGroup: 'Կատալոգ',
products: 'Ապրանքներ',
categories: 'Կատեգորիաներ',
orders: 'Պատվերներ',
transactions: 'Գործարքներ',
reviews: 'Կարծիքներ',
reports: 'Հաշվետվություններ',
content: 'Բովանդակություն',
mediaLibrary: 'Մեդիադարան',
marketplaceBuilder: 'Մարկետփլեյսի կոնստրուկտոր',
users: 'Օգտատերեր',
settings: 'Կարգավորումներ',
monitoring: 'Մոնիտորինգ',
analytics: 'Վերլուծություն',
documentation: 'Փաստաթղթեր',
help: 'Օգնություն',
logout: 'Ելք',
comingSoonBadge: 'Շուտով',
},
topbar: {
searchLabel: 'Որոնում ադմին վահանակում',
searchPlaceholder: 'Փնտրել ապրանքներ, պատվերներ, էջեր...',
notifications: 'Ծանուցումներ',
notificationsEmpty: 'Նոր ծանուցումներ չկան',
account: 'Ադմինիստրատորի հաշիվ',
tenantSelector: 'Խանութ',
tenantSelectorComingSoon: 'Խանութների միջև անցումը շուտով կհասանելի լինի',
quickPublish: 'Հրապարակել',
quickPublishComingSoon: 'Արագ հրապարակումը շուտով կհասանելի լինի',
},
breadcrumbHome: 'Ադմին վահանակ',
pages: {
dashboard: { title: 'Կառավարման վահանակ', description: 'Ձեր մարկետփլեյսի ընդհանուր վիճակը' },
products: { title: 'Ապրանքներ', description: 'Կառավարեք ապրանքների քարտերը և տեսանելիությունը' },
productCreate: { title: 'Նոր ապրանք', description: 'Լրացրեք տվյալները՝ կատալոգում ապրանք ավելացնելու համար' },
productEdit: { title: 'Ապրանքի խմբագրում', description: 'Փոփոխեք ապրանքի տվյալները' },
productDuplicate: { title: 'Ապրանքի կրկնօրինակ', description: 'Ստեղծեք նոր ապրանք առկա ապրանքի հիման վրա' },
categories: { title: 'Կատեգորիաներ', description: 'Կառուցեք կատալոգի կատեգորիաների ծառը' },
categoryCreate: { title: 'Նոր կատեգորիա', description: 'Ավելացրեք կատեգորիա կատալոգի ծառում' },
categoryEdit: { title: 'Կատեգորիայի խմբագրում', description: 'Փոփոխեք կատեգորիայի տվյալները' },
orders: { title: 'Պատվերներ', description: 'Դիտեք և մշակեք գնորդների պատվերները' },
orderDetail: { title: 'Պատվեր', description: 'Պատվերի մանրամասներն ու կարգավիճակը' },
transactions: { title: 'Գործարքներ', description: 'Վճարումներ, վերադարձներ և կեղծիքի ստուգում' },
media: { title: 'Մեդիադարան', description: 'Ապրանքների և էջերի պատկերներ ու ֆայլեր' },
users: { title: 'Օգտատերեր', description: 'Ադմինիստրատորների թիմը և իրավունքները' },
monitoring: { title: 'Մոնիտորինգ', description: 'Հերթերի, webhook-ների և համակարգային իրադարձությունների վիճակը' },
analytics: { title: 'Վերլուծություն', description: 'Վաճառքներ, ապրանքներ և գնորդների վարքագիծ' },
},
},
};