diff --git a/AGENTS.md b/AGENTS.md index a836fd1..b6310b6 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -149,6 +149,43 @@ Example: Naming should remain consistent across the framework. --- +# Creating a New Component + +Use this checklist whenever adding a public Concise UI component. + +1. Define the component contract before implementation: + - purpose and expected behavior + - props, events, slots, and `v-model` shape + - disabled, loading, empty, invalid, or indeterminate states where relevant + - mouse and keyboard behavior +2. Create the component under `src/components//C.vue`. +3. Add `types.ts` beside the component when it has reusable public types. Reuse existing shared types, such as form-control sizes, instead of duplicating them. +4. Follow the established implementation style: + - Vue 3 `