The
chapter on developing custom components in the Book of Vaadin does describe this. There is even an example of integrating a GWT color picker widget a bit later in the chapter.
The color picker example is also available as a Maven archetype (com.vaadin:vaadin-archetype-sample).
I have not looked into the implementation of SmartGWT components myself. However, it seems to me that at least with some SmartGWT components, you might run into other issues, such as fitting their data model to Vaadin. Also, do check the licenses of the components you are integrating - SmartGWT is a commercial product.
Note, that in addition to client-side you also you need a server-side counterpart. Inherit a AbstractComponent, AbstractField (or any other suitable Vaadin component) and override paintContent and changeVariables to communicate with the client-side.
Also remember that with GWT the client-side code resides within Java package named “client”. In Vaadin we have typically used package name “client.ui”. Server-side Java code can be anywhere in your source tree.