[Sprint 1] feat: Implement DMC component registry with static JSON #171

Closed
opened 2026-01-26 16:20:40 +00:00 by lmiranda · 1 comment
Owner

Description

Implement the component registry system that provides version-locked Dash Mantine Components definitions. Uses static JSON files pre-generated from DMC source.

Acceptance Criteria

  • Create mcp_server/component_registry.py:
    • Load registry JSON based on detected DMC version
    • Provide lookup methods for components and props
    • Handle version mismatch gracefully (warning + fallback)
  • Create registry/ directory with version-tagged files:
    • registry/dmc_0.14.json (initial supported version)
    • Schema: component name → props → types, defaults, required
  • Create scripts/generate-dmc-registry.py:
    • Introspect installed DMC package
    • Extract component props via inspection
    • Output versioned JSON file
  • Registry covers component categories:
    • inputs, buttons, navigation, feedback, overlays, typography, layout, data

Technical Notes

# Example registry structure
{
  "version": "0.14.7",
  "components": {
    "Button": {
      "props": {
        "children": {"type": "any", "required": false},
        "variant": {"type": "string", "enum": ["filled", "outline", "light", "subtle"], "default": "filled"},
        "color": {"type": "string", "default": "blue"},
        "size": {"type": "string", "enum": ["xs", "sm", "md", "lg", "xl"], "default": "sm"}
      }
    }
  }
}

Dependencies

  • Depends on #170 (MCP server foundation)
## Description Implement the component registry system that provides version-locked Dash Mantine Components definitions. Uses static JSON files pre-generated from DMC source. ## Acceptance Criteria - [ ] Create `mcp_server/component_registry.py`: - Load registry JSON based on detected DMC version - Provide lookup methods for components and props - Handle version mismatch gracefully (warning + fallback) - [ ] Create `registry/` directory with version-tagged files: - `registry/dmc_0.14.json` (initial supported version) - Schema: component name → props → types, defaults, required - [ ] Create `scripts/generate-dmc-registry.py`: - Introspect installed DMC package - Extract component props via inspection - Output versioned JSON file - [ ] Registry covers component categories: - inputs, buttons, navigation, feedback, overlays, typography, layout, data ## Technical Notes ```python # Example registry structure { "version": "0.14.7", "components": { "Button": { "props": { "children": {"type": "any", "required": false}, "variant": {"type": "string", "enum": ["filled", "outline", "light", "subtle"], "default": "filled"}, "color": {"type": "string", "default": "blue"}, "size": {"type": "string", "enum": ["xs", "sm", "md", "lg", "xl"], "default": "sm"} } } } } ``` ## Dependencies - Depends on #170 (MCP server foundation)
Author
Owner

Completed: DMC 2.x component registry implemented.

Changes:

  • Added component_registry.py with version-locked registry loading
  • Created registry/dmc_2_5.json with 39 components for DMC 2.5.1/Mantine 7
  • Added scripts/generate-dmc-registry.py for future registry generation
  • Updated dependencies to DMC >=2.0.0

Commit: 9e4b3d5

Completed: DMC 2.x component registry implemented. **Changes:** - Added `component_registry.py` with version-locked registry loading - Created `registry/dmc_2_5.json` with 39 components for DMC 2.5.1/Mantine 7 - Added `scripts/generate-dmc-registry.py` for future registry generation - Updated dependencies to DMC >=2.0.0 **Commit:** 9e4b3d5
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: personal-projects/leo-claude-mktplace#171