Form widgets are implemented as Tcl procs that output the html to generate the form element. The Tcl proc must be in the template::widget namespace. So the proc for the search widget is called template::widget::search. The code that generates the built in widgets is in packages/acs-templating/tcl/widget-procs.tcl.
If the data from the form widget needs to be formatted or processed a Tcl proc is created in the template::data::transform namespace. For example, templatete::data::transform::search. This takes the input from the user and processes it to be returned to the Tcl code handling the form.