These files are shared between multiple examples as a set of common and
reusuable components. While they do demonstrate the building of reusable
components in QML, they are not official examples themselves.
Consequently they do not have entries in the Qt documentation, and are
documented only through the code comments within the files. Developers
new to QML are strongly encouraged to go through the official examples
before delving into this directory.

For most application use, see the Qt Quick Components project to find
ready-made Components you can use in your own projects. Qt Quick
examples do not use them only to avoid external dependencies.
