feat(builder): implement visual homepage builder
New HomepageOverviewComponent (Tasks 1+8), mounted at the top of the existing Homepage section page: completion ring, active/hidden section counts, recommended next step, last-modified timestamp, and a 6-item Homepage Health checklist (hero/categories/products/promotion/ newsletter/any-sections) - all derived from the real page.sections/ widgets data already in the facade, nothing fabricated. Existing page-level drag-and-drop reordering (homepage-section's CdkDragDrop over page.sections) was already implemented pre-Sprint 5 - left as-is per "build on top of, do not replace." Widgets section (Task 2) rewritten from a bare list into visual cards: per-widget icon + humanized type label (hero/categories/product- collection), a visible/hidden toggle and badge, up/down move buttons (keyboard-accessible reorder within a section - see Known limitations for why this replaces pointer drag for widgets specifically), duplicate, and remove (with confirm). The existing per-type field editors (hero/ categories/product-collection) are unchanged; the raw-JSON fallback for unknown widget types now sits behind a collapsed "Advanced settings" disclosure instead of being the default view. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -778,6 +778,28 @@ export interface Translations {
|
||||
brandSocialEmpty: string;
|
||||
brandAccentColor: string;
|
||||
brandBorderColor: string;
|
||||
homepageOverviewTitle: string;
|
||||
homepageOverviewSubtitle: string;
|
||||
homepageOverviewComplete: string;
|
||||
homepageActiveSections: string;
|
||||
homepageDisabledSections: string;
|
||||
homepageHealthHero: string;
|
||||
homepageHealthCategories: string;
|
||||
homepageHealthProducts: string;
|
||||
homepageHealthPromotion: string;
|
||||
homepageHealthNewsletter: string;
|
||||
homepageHealthAnySections: string;
|
||||
widgetTypeHero: string;
|
||||
widgetTypeCategories: string;
|
||||
widgetTypeProducts: string;
|
||||
widgetHidden: string;
|
||||
widgetVisible: string;
|
||||
widgetMoveUp: string;
|
||||
widgetMoveDown: string;
|
||||
widgetDuplicate: string;
|
||||
widgetRemove: string;
|
||||
widgetRemoveConfirm: string;
|
||||
widgetAdvancedSettings: string;
|
||||
};
|
||||
dashboard: {
|
||||
title: string;
|
||||
|
||||
Reference in New Issue
Block a user