Tenantinc Widget Dev Harness

Bundles are loaded via require.js exactly as Duda does — AMD modules at /dist/widget-*.js. Run npm run dev to start. Switch to the embed harness (no Duda) →

Duda theme

widget-utility-bar (#01)

widget-navigation-bar (#02)

Header layout
Utility items
Page

widget-property-info (#03)

widget-space-list

Layout
Sections
Client config (test)
Duda runtime

widget-promotions (#06)

Promotions

widget-nearby-locations (#07)

Nearby locations

Unchecked (default) — no dmAPI, so PropertiesInternal reads empty: the list falls back to Properties/REST, featured has no nearbyLocationPriorityOrder to apply so it sorts by name, and there is no spaceGroupId either — so spaces load the OLD way, two REST calls per property for the 3 or 6 cards on the visible page.
Checked — the harness serves a mock collection built from live data (company kQoBXA8vpn and each property's real "Website Group"), which is what a configured site looks like: ONE space-groups?space_group_id=… call prices every facility, so all the cards fill at once and a page turn fetches nothing. Watch the network tab to see the difference. Note this also switches off other widgets' no-dmAPI demo fallbacks — the mega menu loses its demo location tree and star ratings — so leave it off unless you are looking at #07.
Max properties empty = the whole portfolio.
Value tiers on Select — routes a card's Select through #14 exactly as #05 does: it emits on tierBus and the modal on this page opens for that card's facility (#14 adopts the emitted propertyId rather than being scoped to the page's). With no #14 mounted the click falls through to the rental page and logs why. Off ⇒ Select goes straight to /rental with the tier in localStorage.

widget-reviews (#09)

widget-faqs (#10)

widget-size-guide (#11)

widget-blogs-listing (#12)

widget-footer (#13)

The Company Information and Storage Types columns are built entirely from the site's page tree (dmAPI.getNavItemsAsync()) — there is no hardcoded fallback any more. With no dmAPI, Storage Types is simply absent and Company Information shows Sitemap alone (/sitemap.xml needs no page tree), exactly as in the Duda editor. Reload with ?mockCollections=1 to see them populated, including the merge of company-information/* and legal-pages/*.