<!-- Auto-generated by `velinstyle docs generate`. Do not edit. Source: components/velin-*.js -->

# Web Components

Custom elements in `components/`. Import via `@birdapi/velinstyle` or lazy-load with `./runtime`.

Minimal HTML starters are included when available (curated → knowledge → fail-closed human-doc extract). Validate usage with `velinstyle scan` and `docs/generated/rules/scan-policy.json`.

| Element | Minimal example | Attributes | Events | Reference |
| --- | --- | --- | --- | --- |
| `<velin-accordion>` | yes | 0 | 0 | [velin-accordion.md](./velin-accordion.md) |
| `<velin-announcer>` | yes | 0 | 0 | [velin-announcer.md](./velin-announcer.md) |
| `<velin-bottom-nav>` | yes | 2 | 0 | [velin-bottom-nav.md](./velin-bottom-nav.md) |
| `<velin-calendar>` | yes | 4 | 1 | [velin-calendar.md](./velin-calendar.md) |
| `<velin-carousel>` | yes | 2 | 1 | [velin-carousel.md](./velin-carousel.md) |
| `<velin-code-block>` | yes | 4 | 0 | [velin-code-block.md](./velin-code-block.md) |
| `<velin-collapse>` | yes | 1 | 2 | [velin-collapse.md](./velin-collapse.md) |
| `<velin-combobox>` | yes | 2 | 2 | [velin-combobox.md](./velin-combobox.md) |
| `<velin-command>` | yes | 1 | 1 | [velin-command.md](./velin-command.md) |
| `<velin-copy>` | yes | 0 | 1 | [velin-copy.md](./velin-copy.md) |
| `<velin-countdown>` | yes | 1 | 1 | [velin-countdown.md](./velin-countdown.md) |
| `<velin-counter>` | yes | 9 | 0 | [velin-counter.md](./velin-counter.md) |
| `<velin-data-table>` | yes | 5 | 4 | [velin-data-table.md](./velin-data-table.md) |
| `<velin-dialog>` | yes | 0 | 2 | [velin-dialog.md](./velin-dialog.md) |
| `<velin-drawer>` | yes | 2 | 1 | [velin-drawer.md](./velin-drawer.md) |
| `<velin-dropdown>` | yes | 1 | 1 | [velin-dropdown.md](./velin-dropdown.md) |
| `<velin-email>` | yes | 3 | 1 | [velin-email.md](./velin-email.md) |
| `<velin-empty-state>` | yes | 2 | 0 | [velin-empty-state.md](./velin-empty-state.md) |
| `<velin-file-dropzone>` | yes | 4 | 2 | [velin-file-dropzone.md](./velin-file-dropzone.md) |
| `<velin-flip>` | — | 0 | 0 | [velin-flip.md](./velin-flip.md) |
| `<velin-form-summary>` | yes | 2 | 3 | [velin-form-summary.md](./velin-form-summary.md) |
| `<velin-haptic>` | — | 0 | 0 | [velin-haptic.md](./velin-haptic.md) |
| `<velin-icon>` | yes | 6 | 0 | [velin-icon.md](./velin-icon.md) |
| `<velin-lightbox>` | yes | 0 | 1 | [velin-lightbox.md](./velin-lightbox.md) |
| `<velin-live-dot>` | yes | 2 | 0 | [velin-live-dot.md](./velin-live-dot.md) |
| `<velin-menubar>` | yes | 1 | 0 | [velin-menubar.md](./velin-menubar.md) |
| `<velin-modal>` | yes | 2 | 1 | [velin-modal.md](./velin-modal.md) |
| `<velin-otp-input>` | yes | 6 | 2 | [velin-otp-input.md](./velin-otp-input.md) |
| `<velin-password-strength>` | yes | 3 | 1 | [velin-password-strength.md](./velin-password-strength.md) |
| `<velin-persist>` | yes | 2 | 3 | [velin-persist.md](./velin-persist.md) |
| `<velin-popover>` | yes | 1 | 0 | [velin-popover.md](./velin-popover.md) |
| `<velin-progress-ring>` | yes | 4 | 0 | [velin-progress-ring.md](./velin-progress-ring.md) |
| `<velin-rating>` | yes | 1 | 1 | [velin-rating.md](./velin-rating.md) |
| `<velin-reveal>` | — | 0 | 0 | [velin-reveal.md](./velin-reveal.md) |
| `<velin-scroll-top>` | yes | 0 | 0 | [velin-scroll-top.md](./velin-scroll-top.md) |
| `<velin-scrollspy>` | yes | 0 | 1 | [velin-scrollspy.md](./velin-scrollspy.md) |
| `<velin-search>` | yes | 6 | 0 | [velin-search.md](./velin-search.md) |
| `<velin-secure-field>` | yes | 5 | 1 | [velin-secure-field.md](./velin-secure-field.md) |
| `<velin-segmented-control>` | yes | 1 | 1 | [velin-segmented-control.md](./velin-segmented-control.md) |
| `<velin-sheet>` | yes | 3 | 1 | [velin-sheet.md](./velin-sheet.md) |
| `<velin-sparkline>` | yes | 9 | 0 | [velin-sparkline.md](./velin-sparkline.md) |
| `<velin-stepper>` | yes | 3 | 1 | [velin-stepper.md](./velin-stepper.md) |
| `<velin-tabs>` | yes | 0 | 1 | [velin-tabs.md](./velin-tabs.md) |
| `<velin-theme-toggle>` | yes | 0 | 1 | [velin-theme-toggle.md](./velin-theme-toggle.md) |
| `<velin-toast>` | yes | 0 | 0 | [velin-toast.md](./velin-toast.md) |
| `<velin-tooltip>` | yes | 2 | 0 | [velin-tooltip.md](./velin-tooltip.md) |
