"Use and maintain Vizro Dash Components, including
Scanned 9/9/2026
Install to Claude Code
npx -y skills add VectorSpaceLab/AREX-Skill --skill dash-components-build --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Dash Components Build?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/vectorspacelab-dash-components-build)More formats (shields.io, HTML) on the badges page.
---
name: dash-components-build
description: "Use and maintain Vizro Dash Components, including
Cascader/Markdown props, TypeScript source, generated Python wrappers, npm
build, and browser-test constraints."
disable-model-invocation: true
metadata:
disco-role: operating
license: Apache 2.0
---
# Dash Components Build
Use this sub-skill when a task involves `vizro-dash-components`, `vizro_dash_components`, Cascader, Markdown, TypeScript/React component source, generated Python wrappers, webpack, or Dash component browser tests.
Route elsewhere when the task is mainly about using these components inside a broader Vizro dashboard: also load `../core-components-data-actions/SKILL.md`.
## Component usage
```python
from vizro_dash_components import Cascader, Markdown
cascader = Cascader(
id="region-picker",
options=[{"label": "Europe", "value": "europe", "children": [{"label": "France", "value": "fr"}]}],
value=["europe", "fr"],
)
markdown = Markdown(
id="notes",
children="## Notes\n\nUse **Markdown** and optional MathJax.",
mathjax=True,
)
```
In this snapshot, `Markdown` accepts `children`; `markdown_text` is not a valid keyword.
## Source-of-truth rule
- Edit TypeScript/React source under `vizro-dash-components/src/ts/`.
- Do not hand-edit generated files in `vizro-dash-components/vizro_dash_components/`.
- Regenerate Python wrappers and JS bundles after source changes.
## Build pipeline
From `vizro-dash-components/`:
```bash
npm install --legacy-peer-deps
npm run build
```
If `dash-generate-components` is not found during the backend generation step, run the two phases explicitly with a Python environment where `dash[dev]` is installed:
```bash
npm run build:js
dash-generate-components ./src/ts/components vizro_dash_components -p package-info.json --ignore \.test\.
```
Why `--legacy-peer-deps`: npm 11 strict peer resolution can reject the package's current React 18 / `react-markdown@4.3.1` combination; legacy peer resolution completed the verified build.
## Testing
Browser-backed package tests:
```bash
cd vizro-dash-components
hatch run test
```
These require Chrome/Chromium plus Dash/Selenium fixtures. If no browser is installed, run build/import/static checks and mark browser tests blocked rather than changing code blindly.
Quick import smoke after install/build:
```bash
python - <<'PY'
from vizro_dash_components import Cascader, Markdown
print(Cascader(id='c', options=[{'label': 'A', 'value': 'a'}], value=['a']))
print(Markdown(id='m', children='**ok**'))
PY
```
## Development patterns
- Each `.tsx` file under `src/ts/components/` becomes a Python Dash component.
- Props should have useful TypeScript types and JSDoc comments because they feed Python docstrings/metadata.
- Use `setProps({...})` for Dash callback-updated properties.
- Internal React helpers belong in `src/ts/fragments` or `src/ts/utils`, not exported Dash components.
- Keep generated package metadata (`package-info.json`, `metadata.json`, `_imports_.py`) in sync through generation.
## Common failures
- `ModuleNotFoundError` for `_imports_` or missing component classes: generated wrappers were not produced or the local wheel was built before generation.
- `dash-generate-components: not found`: install `dash[dev]` in the environment or run through Hatch's generation command.
- Browser test failures: confirm Chrome/Chromium first; then inspect component props/callback behavior.
- Python prop error for Markdown: use `children`, not `markdown_text`.
## Evidence anchors
- `vizro-dash-components/README.md`
- `vizro-dash-components/AGENTS.md` / `CLAUDE.md`
- `vizro-dash-components/package.json`
- `vizro-dash-components/src/ts/components/*`
- `vizro-dash-components/examples/app.py` and `examples/pages/*`
- `vizro-dash-components/tests/test_cascader.py`
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!