CLAUDE.md
core-web/libs/sdk/react/CLAUDE.mdCLAUDE.md
Quality
97/100
Scores the file, not the repository.Length
582 words
30 headings · 3 code blocksRepository
950
— · pushed 1 days agoLast changed
3 days ago
First indexed 3 days ago.1# CLAUDE.md23This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.45## Essential Commands67### Development Commands8```bash9# Build the library10nx build sdk-react1112# Run tests13nx test sdk-react1415# Run tests with coverage16nx test sdk-react --configuration=ci1718# Lint code19nx lint sdk-react2021# Run specific test file22nx test sdk-react --testNamePattern="DotCMSLayoutBody"23```2425### Package Management26```bash27# Install dependencies (run from workspace root)28npm install2930# Publish package (from dist directory)31nx nx-release-publish sdk-react32```3334## Architecture Overview3536This is the **@dotcms/react** SDK - a React component library that provides components and hooks for integrating React applications with dotCMS. The library is built using **Nx** as a monorepo tool with **Rollup** for bundling.3738### Key Technologies39- **React 18+** (peer dependency)40- **TypeScript** with strict mode41- **Nx** for build tooling and project management42- **Rollup** for ESM bundling43- **Jest** for testing44- **ESLint** for linting45- **Babel** for transformation4647### Project Structure48```49src/50├── index.ts # Main export file51└── lib/52 └── next/ # Next.js optimized components53 ├── components/ # React components54 │ ├── DotCMSLayoutBody/55 │ ├── DotCMSShow/56 │ ├── DotCMSEditableText/57 │ └── DotCMSBlockEditorRenderer/58 ├── hooks/ # Custom React hooks59 └── contexts/ # React contexts60```6162## Core Components & Patterns6364### Component Architecture65All components follow these patterns:66671. **Client-side only components** - Use React hooks and contexts682. **TypeScript interfaces** - Proper typing with `@dotcms/types`693. **Modular CSS** - CSS modules where needed704. **Comprehensive testing** - Jest with React Testing Library7172### Key Dependencies73- `@dotcms/uve`: Universal Visual Editor integration74- `@dotcms/client`: Core dotCMS client functionality75- `@dotcms/types`: TypeScript definitions76- `@tinymce/tinymce-react`: Rich text editing7778### Export Strategy79The library uses a clean export pattern from `src/index.ts`:80- All public components and hooks are explicitly exported81- Components are exported with their prop types82- Follows tree-shaking friendly patterns8384## Development Workflow8586### Testing Standards87- **Jest** configuration in `jest.config.ts`88- Tests located in `__test__/` directories89- Test files follow pattern: `ComponentName.test.tsx`90- Use React Testing Library for component testing91- Mock external dependencies in `mock.ts`9293### Building & Distribution94- **Rollup** builds ESM modules for distribution95- Output goes to `dist/libs/sdk/react/`96- Package includes README.md as asset97- Generates exports field automatically98- External dependencies: `react/jsx-runtime`99100### Code Quality101- **ESLint** configuration for React/TypeScript102- **Strict TypeScript** mode enabled103- **Babel** transformation for Jest104- **Coverage** reporting to workspace root105106## Key Integration Points107108### dotCMS Integration109- Integrates with dotCMS Universal Visual Editor (UVE)110- Uses `@dotcms/client` for API communication111- Supports real-time page editing through UVE context112- Handles dotCMS page asset rendering113114### React Patterns115- Uses React 18+ features (jsx-runtime)116- Context-based state management117- Custom hooks for dotCMS functionality118- Supports both development and production modes119120### Universal Visual Editor (UVE)121- `useEditableDotCMSPage` hook for real-time editing122- `DotCMSShow` component for conditional rendering123- `DotCMSEditableText` for inline text editing124- Mode detection (EDIT, PREVIEW, PUBLISHED)125126## Important Notes127128### Peer Dependencies129- React 18+ and React DOM 18+ are required130- No direct React dependencies to avoid version conflicts131- Uses latest versions of internal dotCMS packages132133### Build Configuration134- Targets ESM format only135- Uses Babel for Jest transformation136- Rollup handles bundling with React plugins137- CSS extraction is disabled (CSS-in-JS approach)138139### Testing Environment140- Jest preset from workspace root141- React-specific transformations142- Coverage directory in workspace root143- Supports CI configuration with coverage reporting144
Also in dotCMS/core
Diff this repo’s formatsOne repository carrying more than one format is the comparison this product exists for: does anyone actually write different content in each file, or is one a copy of the other?
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| dotCMS/core.cursor/rules/doc-updates.mdc · 950 | Cursor rules | docs | 30/100 | 3 days ago | |
| dotCMS/core.cursor/rules/dotcms-guide.mdc · 950 | Cursor rules | archdo-notdocs | 69/100 | 3 days ago | |
| dotCMS/core.cursor/rules/e2e-rules.mdc · 950 | Cursor rules | setupteststylearch+5 | 89/100 | 3 days ago | |
| dotCMS/core.cursor/rules/frontend-context.mdc · 950 | Cursor rules | teststyledocs | 78/100 | 3 days ago | |
| dotCMS/core.cursor/rules/java-context.mdc · 950 | Cursor rules | buildstyle | 44/100 | 3 days ago | |
| dotCMS/core.cursor/rules/test-context.mdc · 950 | Cursor rules | testtesting-strategy | 54/100 | 3 days ago | |
| dotCMS/core.github/copilot-instructions.md · 950 | Copilot instructions | setupbuildtestlint-format+11 | 84/100 | 3 days ago | |
| dotCMS/core.github/instructions/frontend.instructions.md · 950 | Copilot instructions | testlint-formatstylearch+3 | 69/100 | 3 days ago | |
| dotCMS/coreCLAUDE.md · 950 | CLAUDE.md | setupbuildteststyle+7 | 99/100 | 3 days ago | |
| dotCMS/corecore-web/AGENTS.md · 950 | AGENTS.md | style | 63/100 | 3 days ago | |
| dotCMS/corecore-web/CLAUDE.md · 950 | CLAUDE.md | teststylearchtesting-strategy+3 | 100/100 | 3 days ago | |
| dotCMS/corecore-web/apps/dotcms-ui-e2e/AGENTS.md · 950 | AGENTS.md | setupstylearchtesting-strategy+2 | 78/100 | 3 days ago | |
| dotCMS/corecore-web/apps/dotcms-ui/AGENTS.md · 950 | AGENTS.md | buildteststyledependencies+3 | 94/100 | 3 days ago | |
| dotCMS/corecore-web/apps/mcp-server/CLAUDE.md · 950 | CLAUDE.md | setupbuildtestlint-format+5 | 89/100 | 3 days ago | |
| dotCMS/corecore-web/libs/block-editor/CLAUDE.md · 950 | CLAUDE.md | archdo-not | 69/100 | 3 days ago | |
| dotCMS/corecore-web/libs/new-block-editor/CLAUDE.md · 950 | CLAUDE.md | lint-formatstyledo-notagent-behaviour | 61/100 | 3 days ago | |
| dotCMS/corecore-web/libs/portlets/CLAUDE.md · 950 | CLAUDE.md | setupteststyleui+1 | 77/100 | 3 days ago | |
| dotCMS/corecore-web/libs/portlets/edit-ema/portlet/src/lib/store/CLAUDE.md · 950 | CLAUDE.md | teststylearchtypes+2 | 65/100 | 3 days ago | |
| dotCMS/corecore-web/libs/sdk/client/CLAUDE.md · 950 | CLAUDE.md | setupbuildtestlint-format+9 | 97/100 | 3 days ago | |
| dotCMS/coredotCMS/src/main/java/com/dotcms/rest/CLAUDE.md · 950 | CLAUDE.md | typesdatabaseapido-not+1 | 57/100 | 3 days ago |
Diff against .cursor/rules/doc-updates.mdc Diff against .cursor/rules/dotcms-guide.mdc Diff against .cursor/rules/e2e-rules.mdc Diff against .cursor/rules/frontend-context.mdc Diff against .cursor/rules/java-context.mdc Diff against .cursor/rules/test-context.mdc Diff against .github/copilot-instructions.md Diff against .github/instructions/frontend.instructions.md Diff against CLAUDE.md Diff against core-web/AGENTS.md Diff against core-web/CLAUDE.md Diff against core-web/apps/dotcms-ui-e2e/AGENTS.md Diff against core-web/apps/dotcms-ui/AGENTS.md Diff against core-web/apps/mcp-server/CLAUDE.md Diff against core-web/libs/block-editor/CLAUDE.md Diff against core-web/libs/new-block-editor/CLAUDE.md Diff against core-web/libs/portlets/CLAUDE.md Diff against core-web/libs/portlets/edit-ema/portlet/src/lib/store/CLAUDE.md Diff against core-web/libs/sdk/client/CLAUDE.md Diff against dotCMS/src/main/java/com/dotcms/rest/CLAUDE.md
Similar configs
Same format, overlapping stack, ranked by quality.
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| dotCMS/corecore-web/CLAUDE.md · 950 | CLAUDE.md | teststylearchtesting-strategy+3 | 100/100 | 3 days ago | |
| Adit-Jain-srm/NightmareNetCLAUDE.md · 45 | CLAUDE.md | buildtestlint-formatstyle+6 | 100/100 | 3 days ago | |
| microsoft/playwrightCLAUDE.md · 94k | CLAUDE.md | buildtestlint-formatstyle+7 | 100/100 | 3 days ago | |
| nimbalyst/nimbalystpackages/android/CLAUDE.md · 1.4k | CLAUDE.md | setupbuildstylearch+2 | 100/100 | 3 days ago | |
| filamentphp/filamentCLAUDE.md · 32k | CLAUDE.md | buildtestlint-formatstyle+7 | 100/100 | 3 days ago | |
| bagisto/bagistoCLAUDE.md · 28k | CLAUDE.md | setupbuildteststyle+5 | 100/100 | 3 days ago | |
| dotCMS/coreCLAUDE.md · 950 | CLAUDE.md | setupbuildteststyle+7 | 99/100 | 3 days ago | |
| lollipopkit/flutter_server_boxCLAUDE.md · 8.3k | CLAUDE.md | buildteststylearch+2 | 98/100 | 3 days ago |
