Greetings fellow travelers!
I'm trying write a custom widget that puts a Basemap Gallery in a Dijit Dialog. My debugger tells me the Basemap Gallery is fully hydrated and available, yet my UI tells me otherwise: 
In HTML:
var basemapGalleryInADialog = new BasemapGalleryInADialog({
view:view
});
view.ui.add(basemapGalleryInADialog, "top-left");<SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>The TypeScript widget class:
<SPAN class="comment token">/// <amd-dependency path="esri/core/tsSupport/declareExtendsHelper" name="__extends" /></SPAN>
<SPAN class="comment token">/// <amd-dependency path="esri/core/tsSupport/decorateHelper" name="__decorate" /></SPAN>
<SPAN class="keyword token">import</SPAN> <SPAN class="punctuation token">{</SPAN>aliasOf<SPAN class="punctuation token">,</SPAN> subclass<SPAN class="punctuation token">,</SPAN> property<SPAN class="punctuation token">,</SPAN> declared<SPAN class="punctuation token">}</SPAN> <SPAN class="keyword token">from</SPAN> <SPAN class="string token">"esri/core/accessorSupport/decorators"</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">import</SPAN> <SPAN class="punctuation token">{</SPAN>accessibleHandler<SPAN class="punctuation token">,</SPAN> jsxFactory<SPAN class="punctuation token">,</SPAN> renderable<SPAN class="punctuation token">,</SPAN> vmEvent<SPAN class="punctuation token">}</SPAN> <SPAN class="keyword token">from</SPAN> <SPAN class="string token">"esri/widgets/support/widget"</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">import</SPAN> Widget <SPAN class="operator token">=</SPAN> <SPAN class="token function">require</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"esri/widgets/Widget"</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">import</SPAN> MapView <SPAN class="operator token">=</SPAN> <SPAN class="token function">require</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"esri/views/MapView"</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">import</SPAN> SceneView <SPAN class="operator token">=</SPAN> <SPAN class="token function">require</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"esri/views/SceneView"</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">import</SPAN> BasemapGallery <SPAN class="operator token">=</SPAN> <SPAN class="token function">require</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"esri/widgets/BasemapGallery"</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">import</SPAN> Dialog <SPAN class="operator token">=</SPAN> <SPAN class="token function">require</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"dijit/Dialog"</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">const</SPAN> CSS <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">{</SPAN>
base<SPAN class="punctuation token">:</SPAN> <SPAN class="string token">"esri-home esri-widget-button esri-widget"</SPAN><SPAN class="punctuation token">,</SPAN>
text<SPAN class="punctuation token">:</SPAN> <SPAN class="string token">"esri-icon-font-fallback-text"</SPAN><SPAN class="punctuation token">,</SPAN>
basemapIcon<SPAN class="punctuation token">:</SPAN> <SPAN class="string token">"esri-icon esri-icon-basemap"</SPAN><SPAN class="punctuation token">,</SPAN>
loadingIcon<SPAN class="punctuation token">:</SPAN> <SPAN class="string token">"esri-icon-loading-indicator"</SPAN><SPAN class="punctuation token">,</SPAN>
rotatingIcon<SPAN class="punctuation token">:</SPAN> <SPAN class="string token">"esri-rotating"</SPAN><SPAN class="punctuation token">,</SPAN>
disabled<SPAN class="punctuation token">:</SPAN> <SPAN class="string token">"esri-disabled"</SPAN>
<SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">;</SPAN>
@<SPAN class="token function">subclass</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"esri.widgets.Widget"</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">class</SPAN> <SPAN class="token class-name">BasemapGalleryInADialog</SPAN> <SPAN class="keyword token">extends</SPAN> <SPAN class="token class-name">declared</SPAN><SPAN class="punctuation token">(</SPAN>Widget<SPAN class="punctuation token">)</SPAN> <SPAN class="punctuation token">{</SPAN>
<SPAN class="comment token">//--------------------------------------------------------------------------</SPAN>
<SPAN class="comment token">//</SPAN>
<SPAN class="comment token">// Lifecycle</SPAN>
<SPAN class="comment token">//</SPAN>
<SPAN class="comment token">//--------------------------------------------------------------------------</SPAN>
<SPAN class="comment token">/**
* @constructor
* @alias module:esri/widgets/Widget
* @extends module:esri/widgets/Widget
* @param {Object} [properties] - See the [properties](#properties-summary) for a list of all the properties
* that may be passed into the constructor.
*/</SPAN>
<SPAN class="token function">constructor</SPAN><SPAN class="punctuation token">(</SPAN>params<SPAN class="operator token">?</SPAN><SPAN class="punctuation token">:</SPAN> any<SPAN class="punctuation token">)</SPAN> <SPAN class="punctuation token">{</SPAN>
<SPAN class="keyword token">super</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="comment token">//--------------------------------------------------------------------------</SPAN>
<SPAN class="comment token">//</SPAN>
<SPAN class="comment token">// Properties</SPAN>
<SPAN class="comment token">//</SPAN>
<SPAN class="comment token">//--------------------------------------------------------------------------</SPAN>
<SPAN class="comment token">//----------------------------------</SPAN>
<SPAN class="comment token">// view</SPAN>
<SPAN class="comment token">//----------------------------------</SPAN>
<SPAN class="comment token">/**
* A reference to the {@link module:esri/views/MapView} or {@link module:esri/views/SceneView}. Set this to link the widget to a specific view.
*
* @type {module:esri/views/MapView | module:esri/views/SceneView}
*
* @name view
* @instance
*/</SPAN>
@<SPAN class="token function">property</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
@<SPAN class="token function">renderable</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
view<SPAN class="punctuation token">:</SPAN> MapView <SPAN class="operator token">|</SPAN> SceneView <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">null</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="comment token">//--------------------------------------------------------------------------</SPAN>
<SPAN class="comment token">//</SPAN>
<SPAN class="comment token">// Public Methods</SPAN>
<SPAN class="comment token">//</SPAN>
<SPAN class="comment token">//--------------------------------------------------------------------------</SPAN>
<SPAN class="token function">go</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="punctuation token">{</SPAN>
<SPAN class="keyword token">var</SPAN> basemapGallery <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">BasemapGallery</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">{</SPAN>
view<SPAN class="punctuation token">:</SPAN> <SPAN class="keyword token">this</SPAN><SPAN class="punctuation token">.</SPAN>view
<SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">var</SPAN> myDialog <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">Dialog</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">{</SPAN>
title<SPAN class="punctuation token">:</SPAN> <SPAN class="string token">"Basemap Gallery"</SPAN><SPAN class="punctuation token">,</SPAN>
content<SPAN class="punctuation token">:</SPAN> basemapGallery
<SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
myDialog<SPAN class="punctuation token">.</SPAN><SPAN class="token function">show</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="token function">render</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="punctuation token">{</SPAN>
<SPAN class="keyword token">return</SPAN> <SPAN class="punctuation token">(</SPAN>
<SPAN class="operator token"><</SPAN>div bind<SPAN class="operator token">=</SPAN><SPAN class="punctuation token">{</SPAN><SPAN class="keyword token">this</SPAN><SPAN class="punctuation token">}</SPAN> <SPAN class="keyword token">class</SPAN><SPAN class="operator token">=</SPAN><SPAN class="punctuation token">{</SPAN>CSS<SPAN class="punctuation token">.</SPAN>base<SPAN class="punctuation token">}</SPAN>role<SPAN class="operator token">=</SPAN><SPAN class="string token">"button"</SPAN> tabIndex<SPAN class="operator token">=</SPAN><SPAN class="punctuation token">{</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">}</SPAN> onclick<SPAN class="operator token">=</SPAN><SPAN class="punctuation token">{</SPAN><SPAN class="keyword token">this</SPAN><SPAN class="punctuation token">.</SPAN>_go<SPAN class="punctuation token">}</SPAN> onkeydown<SPAN class="operator token">=</SPAN><SPAN class="punctuation token">{</SPAN><SPAN class="keyword token">this</SPAN><SPAN class="punctuation token">.</SPAN>_go<SPAN class="punctuation token">}</SPAN><SPAN class="operator token">></SPAN>
<SPAN class="operator token"><</SPAN>span aria<SPAN class="operator token">-</SPAN>hidden<SPAN class="operator token">=</SPAN><SPAN class="string token">"true"</SPAN> <SPAN class="keyword token">class</SPAN><SPAN class="operator token">=</SPAN><SPAN class="punctuation token">{</SPAN>CSS<SPAN class="punctuation token">.</SPAN>basemapIcon<SPAN class="punctuation token">}</SPAN> title<SPAN class="operator token">=</SPAN><SPAN class="string token">"Basemap Gallery"</SPAN> <SPAN class="operator token">/</SPAN><SPAN class="operator token">></SPAN>
<SPAN class="operator token"><</SPAN>span <SPAN class="keyword token">class</SPAN><SPAN class="operator token">=</SPAN><SPAN class="punctuation token">{</SPAN>CSS<SPAN class="punctuation token">.</SPAN>text<SPAN class="punctuation token">}</SPAN><SPAN class="operator token">></SPAN>Basemap Gallery<SPAN class="operator token"><</SPAN><SPAN class="operator token">/</SPAN>span<SPAN class="operator token">></SPAN>
<SPAN class="operator token"><</SPAN><SPAN class="operator token">/</SPAN>div<SPAN class="operator token">></SPAN>
<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="comment token">//--------------------------------------------------------------------------</SPAN>
<SPAN class="comment token">//</SPAN>
<SPAN class="comment token">// Private Methods</SPAN>
<SPAN class="comment token">//</SPAN>
<SPAN class="comment token">//--------------------------------------------------------------------------</SPAN>
@<SPAN class="token function">accessibleHandler</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">private</SPAN> <SPAN class="token function">_go</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="punctuation token">{</SPAN>
<SPAN class="keyword token">this</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="token function">go</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="keyword token">export</SPAN> <SPAN class="operator token">=</SPAN> BasemapGalleryInADialog<SPAN class="punctuation token">;</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>I'm just messing around with the UX and I thought I'd open this pattern up for discussion, help, etc. TIA