I work with Sprout and can answer your questions with regards to Sprout Forms.
1. It should be possible to prepopulate fields with existing data
This will happen by default in a lot of standard use cases when you are using Form Templates and when validation fails, for example. It's also possible to populate a Form Entry dynamically using the setEntry variable.
2. Duplicating forms should be possible
You can duplicate a form by selecting Save->Save as New Form
3. Templating completely customizable
Sprout Forms templates are 100% customizable down to the individual field type. See:
- Template Overrides - allow you to override form templates with your own custom HTML right within your Craft templates/ folder. You get full access to the form templates being output and can customize them however you'd like.
- Form Templates API - allows you to manage Template Overrides as custom, reusable Form Templates in a plugin or module
- Rendering Options - allow you to dynamically override certain characteristics in existing Form Templates
4. Ability to dynamically add more rows of fields (like in a reservation for a hotel where you can add more rooms or persons)
Sprout Forms avoids supporting fields that may require javascript and interactivity on the front-end by default (as we can't predict all the potential use cases of how this type of interactivity should be implemented), however, we do support custom Form Fields and Template Overrides which should give you all the control you need to create the advanced field types you need on the front-end and style and script them however you need.
5. Validation for at least the basic field types
All Form Fields provide validation. Custom Form Fields can be created to support additional validation requirements.
6. File uploads should be possible
File Uploads are supported via the File Upload Form Field.
7. Custom conditions for custom fields (like a checkbox only checkable after checking another one before)
Forms allow you to add Conditional Rules for your Fields.
For more advanced scenarios, conditional logic could also be handled via your templates and CSS and Javascript. Form Fields support adding custom CSS Classes, Template Overrides allow you to customize any details about how your Form and Field HTML is output so you can interact with it how you need, and while it's currently undocumented, you can also add pre-defined CSS Classes as a dropdown option if you create custom Form Templates via the API.
8. Custom email template
Sprout Forms Notifications are powered by an integration with Sprout Email so you have the full feature set of Sprout Email Notification Emails in Sprout Forms.
Similar to Form Templates, Email Notifications allow you to control every detail of the HTML and Text versions of your emails via Email Template Overrides
Reporting is handled in a similar way and is powered by Sprout Reports.
9. Translatable
Translating forms is tricky business. This is because the problem is the reverse of the problem Craft is solving by default. Craft Elements support translations of the content being submitted to custom fields where Form Elements need to support translations of the Labels and Descriptions of the fields being submitted, and the user adds the content afterward in whatever language they are given the option to submit it.
Sprout Forms supports translating a form by duplicating a form. Outside of that, Sprout Forms ensures the plugin itself is translatable however the translation itself would have to happen outside of the plugin.
10. Good documentation
We think we have decent docs and we're always looking to improve, so please drop us a note if you feel we could add a useful example:
Sprout Forms Documentation
If you ever feel stuck or are curious about how to tackle a hard problem using Sprout Plugins, we also offer a free half-hour coaching session
11. Active development
Sprout Forms is built by Barrel Strength Design who is has been involved in the Craft CMS community since it was called Blocks CMS. All of our commercial plugins are actively developed and supported and Sprout Forms will continue to benefit from new features we are developing in our other plugins as well (Email, Reporting, Imports, Fields).