|
| 1 | +# Project Context |
| 2 | + |
| 3 | +This file contains essential information about the project structure, configuration, and workflows to assist AI agents and developers in navigating the codebase. |
| 4 | + |
| 5 | +## 🏢 Project Overview |
| 6 | +**inovex elements** is a monorepo containing a collection of enterprise-grade Web Components built with **StencilJS**. Ideally libraries are framework-agnostic but this repository also includes wrapper libraries for **React**, **Angular**, and **Vue** to ensure seamless integration. |
| 7 | + |
| 8 | +- **Monorepo Tool:** [Nx](https://nx.dev) |
| 9 | +- **Package Manager:** [pnpm](https://pnpm.io) (utilizing workspaces) |
| 10 | +- **Core Technology:** [StencilJS](https://stenciljs.com) |
| 11 | + |
| 12 | +## 📂 Repository Structure |
| 13 | + |
| 14 | +The project code is located in the `packages/` directory: |
| 15 | + |
| 16 | +| Package | Description | Framework / Tech | |
| 17 | +| :--- | :--- | :--- | |
| 18 | +| **`elements`** | **Core** library containing the Stencil web components. | StencilJS, TypeScript, SCSS | |
| 19 | +| **`elements-angular`** | Angular wrappers for `elements`. | Angular | |
| 20 | +| **`elements-react`** | React wrappers for `elements`. | React | |
| 21 | +| **`elements-vue`** | Vue wrappers for `elements`. | Vue 3 | |
| 22 | +| **`storybook`** | Component documentation and playground. | Storybook | |
| 23 | +| **`landingpage`** | The public website for inovex elements. | Next.js | |
| 24 | +| **`ui-patterns`** | Higher-level UI patterns and compositions. | React (mostly) | |
| 25 | +| **`*-example`** | Example applications demonstrating usage. | Angular, React, Vue | |
| 26 | + |
| 27 | +## 🚀 Key Commands |
| 28 | + |
| 29 | +Run these commands from the root directory using `pnpm`. |
| 30 | + |
| 31 | +### Development |
| 32 | +- **`pnpm start:storybook`**: Starts the Storybook development server (documentation & component playground). |
| 33 | +- **`pnpm start:landingpage`**: Starts the landing page development server. |
| 34 | +- **`pnpm start:ui-patterns-playground`**: Starts the UI patterns playground. |
| 35 | + |
| 36 | +### Build & Quality |
| 37 | +- **`pnpm build`**: Builds all projects in the monorepo (using Nx). |
| 38 | +- **`pnpm test`**: Runs unit and E2E tests for all projects (configured for CI). |
| 39 | +- **`pnpm lint`**: Lints affected projects. |
| 40 | +- **`pnpm lint:fix`**: Lints and auto-fixes issues. |
| 41 | +- **`pnpm format`**: Checks code formatting (Prettier). |
| 42 | +- **`pnpm format:fix`**: Fixes code formatting. |
| 43 | +- **`pnpm qc`**: **Quality Control** - runs `lint:ci`, `format`, `build`, and `test` sequentially. Run this before pushing! |
| 44 | + |
| 45 | +### Maintenance |
| 46 | +- **`pnpm clean`**: Cleans all build artifacts (`node_modules`, `dist`, `.nx`, etc.). |
| 47 | + |
| 48 | +## 🛠️ Technology Stack & Configuration |
| 49 | + |
| 50 | +- **TypeScript**: Used throughout the repository. |
| 51 | +- **SCSS**: Used for styling components in `packages/elements`. |
| 52 | +- **Playwright**: Used for End-to-End (E2E) testing. |
| 53 | +- **Jest**: Used for unit testing (Stencil default). |
| 54 | +- **Prettier & ESLint**: Enforced code style and quality. |
| 55 | + |
| 56 | +## 🧭 Navigation Tips for AI Agents |
| 57 | + |
| 58 | +1. **Component Logic**: Look in `packages/elements/src/components/<component-name>/`. |
| 59 | + - `*.tsx`: Component logic (Stencil). |
| 60 | + - `*.scss`: Styles. |
| 61 | + - `readme.md`: Generated documentation (do not edit manually unless specified). |
| 62 | +2. **Wrappers**: If working on framework-specific issues, check `packages/elements-{react,angular,vue}`. |
| 63 | +3. **Docs**: Stored in `packages/storybook` or `packages/elements/*/readme.md`. |
| 64 | +4. **Workflows**: CI/CD pipelines are defined in `.github/workflows/`. |
0 commit comments