Expanding Widgets from Source

I have successfully added a new folder and widget class into Open Stage Control and compiled it but looking at the other widgets as examples I'm not entirely sure what's "necessary" for every widget to have outside of functionality.

I see that each expands either widget or canvas, then has a constructor and at the end gets exported. After which its defined in index.js.

My goal is to eventually create a table like widget with expandable rows and columns. Where each box is more or less an input.