Repository: bokeh/bokeh

Issue:
Surface3d example fails to compile
Output with 1.1rc3:

```
Compilation failed:

surface3d/surface3d.ts:41:19 - error TS2503: Cannot find namespace 'vis'.

41   private _graph: vis.Graph3d
                     ~~~
surface3d/surface3d.ts:53:23 - error TS2304: Cannot find name 'vis'.

53     this._graph = new vis.Graph3d(this.el, this.get_data(), this.model.options)
                         ~~~
surface3d/surface3d.ts:66:15 - error TS2503: Cannot find namespace 'vis'.

66   get_data(): vis.DataSet {
                 ~~~
surface3d/surface3d.ts:67:22 - error TS2304: Cannot find name 'vis'.

67     const data = new vis.DataSet()
                        ~~~
surface3d/surface3d.ts:119:17 - error TS1005: ';' expected.

119     this.define {
                    ~
2019-04-07 19:49:49,456 Uncaught exception
Traceback (most recent call last):
  File "/Users/bryan/anaconda/envs/11dev/lib/python3.7/site-packages/bokeh/util/compiler.py", line 338, in bundle_models
    _bundle_cache[key] = bundle = _bundle_models(custom_models)
  File "/Users/bryan/anaconda/envs/11dev/lib/python3.7/site-packages/bokeh/util/compiler.py", line 555, in _bundle_models
    custom_impls = _compile_models(custom_models)
  File "/Users/bryan/anaconda/envs/11dev/lib/python3.7/site-packages/bokeh/util/compiler.py", line 538, in _compile_models
    raise CompilationError(compiled.error)
bokeh.util.compiler.CompilationError:
surface3d/surface3d.ts:41:19 - error TS2503: Cannot find namespace 'vis'.

41   private _graph: vis.Graph3d
                     ~~~
surface3d/surface3d.ts:53:23 - error TS2304: Cannot find name 'vis'.

53     this._graph = new vis.Graph3d(this.el, this.get_data(), this.model.options)
                         ~~~
surface3d/surface3d.ts:66:15 - error TS2503: Cannot find namespace 'vis'.

66   get_data(): vis.DataSet {
                 ~~~
surface3d/surface3d.ts:67:22 - error TS2304: Cannot find name 'vis'.

67     const data = new vis.DataSet()
                        ~~~
surface3d/surface3d.ts:119:17 - error TS1005: ';' expected.

119     this.define {
                    ~
```
cc @mattpap 


Discussion:
FYI all other app examples are working as expected (I am collecting a few tweaks on a docs branch for tomorrow night)
Possibly related: `font-awesome` example runs but does not show thumbs up icon. All other custom examples work as expected. 

Resolving patch:
diff --git a/bokeh/models/widgets/icons.py b/bokeh/models/widgets/icons.py
--- a/bokeh/models/widgets/icons.py
+++ b/bokeh/models/widgets/icons.py
@@ -27,7 +27,7 @@
 # Bokeh imports
 from ...core.has_props import abstract
 
-from .widget import Widget
+from ...model import Model
 
 #-----------------------------------------------------------------------------
 # Globals and constants
@@ -46,7 +46,7 @@
 #-----------------------------------------------------------------------------
 
 @abstract
-class AbstractIcon(Widget):
+class AbstractIcon(Model):
     ''' An abstract base class for icon widgets.
 
     '''


Test patch:
diff --git a/tests/baselines/examples/custom/font-awesome/font-awesome b/tests/baselines/examples/custom/font-awesome/font-awesome
--- a/tests/baselines/examples/custom/font-awesome/font-awesome
+++ b/tests/baselines/examples/custom/font-awesome/font-awesome
@@ -1,2 +1,2 @@
-Column bbox=[0, 0, 310, 41]
-  Button bbox=[5, 5, 300, 31]
+Column bbox=[0, 0, 310, 58]
+  Button bbox=[5, 5, 300, 48]