jupyter-widgets / ipywidgets

Interactive Widgets for the Jupyter Notebook
https://ipywidgets.readthedocs.io
BSD 3-Clause "New" or "Revised" License
3.13k stars 948 forks source link

Decouple the widgets from the Notebook. #13

Closed jdfreder closed 8 years ago

jdfreder commented 9 years ago

Decoupling the widgets from the Notebook should make it easier for people to embed the widgets in their own non-notebook environment. For example, @rgbkrk has already expressed interest in doing this with his BitJet widget and Sidecar app.

This means splitting the WidgetManager into a WidgetManager or WidgetManagerBase (depending on whether or not it can be used without being inherited) and a NotebookWidgetManager.

We also may want to think about the installation a little more carefully, which we will have to do soon anyways. Users may want to install (A) for use with the notebook (B) for standalone use. If @SylvainCorlay 's proposal for kernel resource/extensions is implemented, (A) is instead to a specific kernel, not the notebook.

rgbkrk commented 9 years ago

:+1: to kernel resource extensions and this overall issue

rgbkrk commented 9 years ago

This probably also means allowing Spyder to have a display area that could have widgets.

rgbkrk commented 9 years ago

/cc @karissa @willwhitney

willwhitney commented 9 years ago

One nice possibility on the frontend might be making widgets as Web Components (perhaps with Polymer). That would allow them to be implemented/styled/etc in a way that is sandboxed from the rest of the page.

jasongrout commented 9 years ago

IIRC, Escher, the IJulia widget system, uses webcomponents and polymer a lot: https://shashi.github.io/Escher.jl/ (see also https://groups.google.com/forum/#!topic/julia-users/UEaYPlBuIkc for a brief description of how it works)

ellisonbg commented 9 years ago

I am going to looking into webcomponents - I think it could be useful for us...

On Tue, Jun 16, 2015 at 12:15 PM, Jason Grout notifications@github.com wrote:

IIRC, Escher, the IJulia widget system, uses webcomponents and polymer a lot: https://shashi.github.io/Escher.jl/ (see also https://groups.google.com/forum/#!topic/julia-users/UEaYPlBuIkc for a brief description of how it works)

— Reply to this email directly or view it on GitHub https://github.com/ipython/ipywidgets/issues/13#issuecomment-112533287.

Brian E. Granger Cal Poly State University, San Luis Obispo @ellisonbg on Twitter and GitHub bgranger@calpoly.edu and ellisonbg@gmail.com

minrk commented 9 years ago

@willwhitney thanks! I think that's a good idea.

jasongrout commented 9 years ago

I think web components is finally maturing enough to start looking at it. When I looked at it several years ago for the sage cell server, it wasn't mature enough/supported in browsers enough.