Closes 5 documented gaps from how-to-add-a-feature.md:
- aiui.set_custom_js(path) — inject client JS from Python (new /custom.js route, <script> after plugin-loader). Tests: 10/10
- name= kwarg on all 8 form inputs — stable submit-keys for form_action, avoids label collisions. Tests: 18/18
- Component schema registry — aiui.register_component_schema() + GET /api/components/schemas. Built-in schemas auto-derived from ui.py. Tests: 9/9
- /api/features parallelized via asyncio.gather (warm calls now instant)
- mkdocs build fixed for pygments 2.20 via docs_hooks.py
Other:
- form inputs now emit name + data-label attrs so form_action submit handler collects values correctly (bug fix)
- radio submit handler only stores the checked radio's value
- switch now has hidden checkbox mirror so form_action sees its state
- mkdocs --strict passes
- Example 28 uses the new APIs (no more DevTools console workaround)
- Bump aiui 0.3.107 -> 0.3.108; sync __version__.py
Tests: 542/545 pass (3 pre-existing test-isolation failures unrelated).
docs(api/components): enhance API documentation and add new examples
Updated the components API reference to include 36 organized components.
Introduced essential component examples such as metric cards, progress bars,
alerts, and more for clarity and usage guidance.
```
This commit introduces extensive documentation for the component API,
dashboard features, and quick start guides. These additions cover
function usage, layout options, and methods to register pages, enhancing
the developer experience and improving onboarding for new users.
Additionally, minor adjustments were made to existing workflow instructions.