The following JavaScript API are used in creating custom widgets:
inDesignMode()
pui.addCustomProperty( config )
pui.retrieveCustomLayoutTemplate( name )
pui.toolbox.add( config )
pui.widgets.add( config )
pui.widgets.getPanelProxy( defaults )
pui.widgets.getStyledButtonProxy( defaults )
pui.getPropertiesModel()
pui.getPropertiesNamedModel()