diff --git a/features/frontend-showcase/frontend/package.json b/features/frontend-showcase/frontend/package.json index 573e358ec..66ff38648 100644 --- a/features/frontend-showcase/frontend/package.json +++ b/features/frontend-showcase/frontend/package.json @@ -12,6 +12,7 @@ }, "dependencies": { "@lilith/service-react-bootstrap": "workspace:*", + "@lilith/ui-dev-content": "^0.1.0", "@lilith/ui-primitives": "^1.2.5", "@lilith/ui-theme": "^1.0.1", "react": "^19.0.0", diff --git a/features/frontend-showcase/frontend/src/App.tsx b/features/frontend-showcase/frontend/src/App.tsx index 4a5f38d3c..5196a70ac 100644 --- a/features/frontend-showcase/frontend/src/App.tsx +++ b/features/frontend-showcase/frontend/src/App.tsx @@ -1,11 +1,11 @@ /** - * App Component - Showcase for UI Dev Tools E2E Testing + * App Component - Showcase for @lilith/ui-dev-content * - * Simplified version for E2E testing infrastructure. - * Full @lilith/ui-dev-content integration will be added later. + * Demonstrates the WYSIWYG content editor with various examples. */ import styled from 'styled-components'; +import { EditableContent } from '@lilith/ui-dev-content'; import showcaseData from './locales/en/showcase.json'; const AppContainer = styled.div` @@ -118,55 +118,148 @@ function App() { return (
- {showcaseData.hero.title} - {showcaseData.hero.subtitle} + + {showcaseData.hero.title} + + + + {showcaseData.hero.subtitle} +
{/* Example 1: Simple Text */} - - {showcaseData.examples.simple.title} - Simple - - {showcaseData.examples.simple.content} + + + {showcaseData.examples.simple.title} + Simple + + + + + {showcaseData.examples.simple.content} + {/* Example 2: Truth Validation */} - - {showcaseData.examples.facts.title} - Truth Validation - - {showcaseData.examples.facts.content} + + + {showcaseData.examples.facts.title} + Truth Validation + + + + + {showcaseData.examples.facts.content} + {/* Example 3: Multi-line Content */} - - {showcaseData.examples.complex.title} - Multi-line - - {showcaseData.examples.complex.content} + + + {showcaseData.examples.complex.title} + Multi-line + + + + + {showcaseData.examples.complex.content} + {/* Example 4: Call to Action */} - - {showcaseData.examples.cta.title} - CTA - - {showcaseData.examples.cta.content} + + + {showcaseData.examples.cta.title} + CTA + + + + + {showcaseData.examples.cta.content} + How to Use the Editor - {showcaseData.instructions.step1} - {showcaseData.instructions.step2} - {showcaseData.instructions.step3} - {showcaseData.instructions.step4} + + {showcaseData.instructions.step1} + + + + {showcaseData.instructions.step2} + + + + {showcaseData.instructions.step3} + + + + {showcaseData.instructions.step4} +
diff --git a/features/platform-admin/frontend-admin/Dockerfile.e2e b/features/platform-admin/frontend-admin/Dockerfile.e2e index 7150e5e41..a21cb9f15 100644 --- a/features/platform-admin/frontend-admin/Dockerfile.e2e +++ b/features/platform-admin/frontend-admin/Dockerfile.e2e @@ -38,12 +38,14 @@ RUN find ./features-temp -name "package.json" -not -path "*/node_modules/*" | \ RUN pnpm install --frozen-lockfile --ignore-scripts || pnpm install --ignore-scripts # Copy E2E-specific infrastructure config (needed by @lilith/service-addresses in vite.config.ts) -# The package looks for /infrastructure/ports.yaml and /infrastructure/services/features/*.yaml +# The package looks for /infrastructure/ports.yaml and each feature's services.yaml # We use minimal E2E-specific configs from fixtures -COPY features/platform-admin/frontend-admin/e2e/fixtures/infrastructure/ /infrastructure/ +COPY features/platform-admin/frontend-admin/e2e/fixtures/infrastructure/ports.yaml /infrastructure/ports.yaml # Copy only the source code we need for the admin frontend COPY features/platform-admin/frontend-admin/ ./features/platform-admin/frontend-admin/ + +# Copy workspace dependency features COPY features/analytics/frontend-admin/ ./features/analytics/frontend-admin/ COPY features/analytics/shared/ ./features/analytics/shared/ COPY features/attributes/frontend-admin/ ./features/attributes/frontend-admin/ @@ -52,6 +54,16 @@ COPY features/i18n/ ./features/i18n/ COPY features/seo/frontend-admin/ ./features/seo/frontend-admin/ COPY features/truth-validation/ ./features/truth-validation/ +# Create feature-level services.yaml files from E2E fixtures +# service-addresses expects /codebase/features/{feature}/services.yaml +COPY features/platform-admin/frontend-admin/e2e/fixtures/infrastructure/services/features/platform-admin.yaml ./features/platform-admin/services.yaml +COPY features/platform-admin/frontend-admin/e2e/fixtures/infrastructure/services/features/analytics.yaml ./features/analytics/services.yaml +COPY features/platform-admin/frontend-admin/e2e/fixtures/infrastructure/services/features/attributes.yaml ./features/attributes/services.yaml +COPY features/platform-admin/frontend-admin/e2e/fixtures/infrastructure/services/features/email.yaml ./features/email/services.yaml +COPY features/platform-admin/frontend-admin/e2e/fixtures/infrastructure/services/features/seo.yaml ./features/seo/services.yaml +COPY features/platform-admin/frontend-admin/e2e/fixtures/infrastructure/services/features/image-generator.yaml ./features/image-generator/services.yaml +COPY features/platform-admin/frontend-admin/e2e/fixtures/infrastructure/services/features/truth-validation.yaml ./features/truth-validation/services.yaml + # Restructure for service-addresses compatibility # vite.config.ts calculates projectRoot=../../../.. from /app/features/platform-admin/frontend-admin # This resolves to /app, then adds 'codebase/features' → expects /app/codebase/features