--- description: globs: alwaysApply: false --- # Form Handling ## FormKit Integration The project uses FormKit for form handling with configuration in [formkit.config.js](mdc:formkit.config.js). ### FormKit Plugins - **Floating Labels**: Creates floating labels for form inputs - **Multi-Step**: Supports multi-step form workflows - **Auto Animate**: Adds animations to form elements - **Auto Height Textarea**: Automatically adjusts textarea height - **Local Storage**: Persists form state in localStorage ### Custom FormKit Components - **[OneTimePassword.vue](mdc:components/formkit/OneTimePassword.vue)**: For OTP verification - **[TextMask.vue](mdc:components/formkit/TextMask.vue)**: For input masking - **[DateTimePicker.vue](mdc:components/formkit/DateTimePicker.vue)**: Date and time selection - **[FileDropzone.vue](mdc:components/formkit/FileDropzone.vue)**: File uploads ## Form Builder The project includes a form builder feature for creating dynamic forms: - **[FormBuilderCanvas.vue](mdc:components/FormBuilderCanvas.vue)**: The canvas for form building - **[FormBuilderComponents.vue](mdc:components/FormBuilderComponents.vue)**: Component palette - **[FormBuilderConfiguration.vue](mdc:components/FormBuilderConfiguration.vue)**: Form properties - **[formBuilder.js](mdc:stores/formBuilder.js)**: Form builder state management