ArcGIS widget-removal survival guide

Every classic ArcGIS JS SDK widget (esri/widgets/* / @arcgis/core/widgets/*) is deprecated as of ArcGIS JS 5.0 and is removed at 6.0 — as early as Q1 2027. If your app constructs any of these widgets, that code stops compiling and running when you take the 6.0 upgrade.

This guide answers, for each deprecated widget, what happens if you migrate to Honua/MapLibre instead of rewriting onto Esri's web components. Dispositions are deliberately honest — including "no equivalent" — in the spirit of docs/migration-punch-list.md.

This document is generated from the versioned disposition data in src/migration/widget-dispositions.ts (v1.0.0); the honua-migrate widget scanner consumes the same data, so the scanner report and this guide cannot drift apart. The deprecated-widget inventory is pinned per ArcGIS release against https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets.html (5.0 deprecation list) and updated manually.

Scan your app first

# Human-readable table (also: --json, --markdown, --gate <pct>, --report <file>)
npm run scan:arcgis:widgets -- ./src

The report inventories every widget usage site (ESM imports, AMD require([...]) arrays, and dynamic $arcgis.import(...) specifiers), joins each row to the disposition below, and emits an overall automated/assisted/manual split against the 6.0 removal deadline. --gate <pct> makes CI fail when the automated share drops below the threshold.

Disposition taxonomy

Readiness buckets: automated counts as automated; compat-shim, app-platform, and maplibre-plugin count as assisted; manual-workaround and no-equivalent count as manual.

A compat-backed row may also list a direct @honua/app-platform component. That component is the recommended destination for a deliberate UI rewrite; the disposition still describes what honua-migrate can automate today.

Summary

Disposition Widgets
automated 21
compat-shim 11
app-platform 0
maplibre-plugin 0
manual-workaround 1
no-equivalent 5
Total 38

Widget dispositions

Widget ESM module AMD module Disposition Target
AreaMeasurement2D @arcgis/core/widgets/AreaMeasurement2D esri/widgets/AreaMeasurement2D compat-shim AreaMeasurement2DCompat from @honua/sdk-esri-compat
Attribution @arcgis/core/widgets/Attribution esri/widgets/Attribution automated AttributionCompat from @honua/sdk-esri-compat (MapLibre AttributionControl underneath)
BasemapGallery @arcgis/core/widgets/BasemapGallery esri/widgets/BasemapGallery automated BasemapGalleryCompat from @honua/sdk-esri-compat
BasemapLayerList @arcgis/core/widgets/BasemapLayerList esri/widgets/BasemapLayerList automated BasemapLayerListCompat from @honua/sdk-esri-compat
BasemapToggle @arcgis/core/widgets/BasemapToggle esri/widgets/BasemapToggle automated BasemapToggleCompat from @honua/sdk-esri-compat
Bookmarks @arcgis/core/widgets/Bookmarks esri/widgets/Bookmarks automated BookmarksCompat from @honua/sdk-esri-compat
Compass @arcgis/core/widgets/Compass esri/widgets/Compass automated CompassCompat from @honua/sdk-esri-compat (MapLibre NavigationControl covers the same gesture natively)
CoordinateConversion @arcgis/core/widgets/CoordinateConversion esri/widgets/CoordinateConversion compat-shim CoordinateConversionCompat from @honua/sdk-esri-compat
Daylight @arcgis/core/widgets/Daylight esri/widgets/Daylight no-equivalent None. Requires a 3D scene with sun/shadow simulation.
Directions @arcgis/core/widgets/Directions esri/widgets/Directions compat-shim DirectionsCompat from @honua/sdk-esri-compat backed by HonuaRouteService (RouteTask parity)
DistanceMeasurement2D @arcgis/core/widgets/DistanceMeasurement2D esri/widgets/DistanceMeasurement2D compat-shim DistanceMeasurement2DCompat from @honua/sdk-esri-compat
Editor @arcgis/core/widgets/Editor esri/widgets/Editor compat-shim EditorCompat from @honua/sdk-esri-compat
ElevationProfile @arcgis/core/widgets/ElevationProfile esri/widgets/ElevationProfile manual-workaround No drop-in widget. Sample the profile geometry yourself (e.g. @honua/sdk-js/geometry densify + an elevation/terrain source such as maplibre-gl queryTerrainElevation) and chart with your own charting library.
Expand @arcgis/core/widgets/Expand esri/widgets/Expand automated ExpandCompat from @honua/sdk-esri-compat
Feature @arcgis/core/widgets/Feature esri/widgets/Feature automated FeatureCompat from @honua/sdk-esri-compat
FeatureForm @arcgis/core/widgets/FeatureForm esri/widgets/FeatureForm compat-shim FeatureFormCompat from @honua/sdk-esri-compat
FeatureTable @arcgis/core/widgets/FeatureTable esri/widgets/FeatureTable compat-shim FeatureTableCompat from @honua/sdk-esri-compat
FeatureTemplates @arcgis/core/widgets/FeatureTemplates esri/widgets/FeatureTemplates automated FeatureTemplatesCompat from @honua/sdk-esri-compat
Fullscreen @arcgis/core/widgets/Fullscreen esri/widgets/Fullscreen automated FullscreenCompat from @honua/sdk-esri-compat (MapLibre FullscreenControl underneath)
Home @arcgis/core/widgets/Home esri/widgets/Home automated HomeCompat from @honua/sdk-esri-compat
LayerList @arcgis/core/widgets/LayerList esri/widgets/LayerList automated LayerListCompat from @honua/sdk-esri-compat
Direct app-platform component: <honua-layer-list> from @honua/app-platform/web-components
Legend @arcgis/core/widgets/Legend esri/widgets/Legend automated LegendCompat from @honua/sdk-esri-compat
Direct app-platform component: <honua-legend> from @honua/app-platform/web-components
LineOfSight @arcgis/core/widgets/LineOfSight esri/widgets/LineOfSight no-equivalent None. Requires 3D scene geometry intersection analysis.
Locate @arcgis/core/widgets/Locate esri/widgets/Locate automated LocateCompat from @honua/sdk-esri-compat (MapLibre GeolocateControl covers the same behavior natively)
Measurement @arcgis/core/widgets/Measurement esri/widgets/Measurement compat-shim MeasurementCompat from @honua/sdk-esri-compat (2D distance/area only)
Direct app-platform component: <honua-measurement> from @honua/app-platform/web-components
Popup @arcgis/core/widgets/Popup esri/widgets/Popup automated PopupCompat from @honua/sdk-esri-compat
Print @arcgis/core/widgets/Print esri/widgets/Print compat-shim PrintCompat from @honua/sdk-esri-compat
ScaleBar @arcgis/core/widgets/ScaleBar esri/widgets/ScaleBar automated ScaleBarCompat from @honua/sdk-esri-compat (MapLibre ScaleControl underneath)
Search @arcgis/core/widgets/Search esri/widgets/Search automated SearchCompat from @honua/sdk-esri-compat backed by the Honua geocoding surface
Direct app-platform component: <honua-search> from @honua/app-platform/web-components
ShadowCast @arcgis/core/widgets/ShadowCast esri/widgets/ShadowCast no-equivalent None. Requires a 3D scene with shadow accumulation.
Sketch @arcgis/core/widgets/Sketch esri/widgets/Sketch compat-shim SketchCompat from @honua/sdk-esri-compat
Slice @arcgis/core/widgets/Slice esri/widgets/Slice no-equivalent None. Requires 3D scene slicing.
Swipe @arcgis/core/widgets/Swipe esri/widgets/Swipe automated SwipeCompat from @honua/sdk-esri-compat
TableList @arcgis/core/widgets/TableList esri/widgets/TableList automated TableListCompat from @honua/sdk-esri-compat
TimeSlider @arcgis/core/widgets/TimeSlider esri/widgets/TimeSlider compat-shim TimeSliderCompat from @honua/sdk-esri-compat
Track @arcgis/core/widgets/Track esri/widgets/Track automated TrackCompat from @honua/sdk-esri-compat
Weather @arcgis/core/widgets/Weather esri/widgets/Weather no-equivalent None. Requires a 3D scene atmosphere/weather renderer.
Zoom @arcgis/core/widgets/Zoom esri/widgets/Zoom automated ZoomCompat from @honua/sdk-esri-compat (MapLibre NavigationControl underneath)

Per-widget details

AreaMeasurement2D

Attribution

BasemapGallery

BasemapLayerList

BasemapToggle

Bookmarks

Compass

CoordinateConversion

Daylight

Directions

DistanceMeasurement2D

Editor

ElevationProfile

Expand

Feature

FeatureForm

FeatureTable

FeatureTemplates

Fullscreen

Home

LayerList

App-platform usage (the module import auto-registers the element):

import "@honua/app-platform/web-components";
<honua-map id="map"></honua-map>
<honua-layer-list for="map"></honua-layer-list>

Legend

App-platform usage (the module import auto-registers the element):

import "@honua/app-platform/web-components";
<honua-map id="map"></honua-map>
<honua-legend for="map"></honua-legend>

LineOfSight

Locate

Measurement

App-platform usage (the module import auto-registers the element):

import "@honua/app-platform/web-components";
<honua-map id="map"></honua-map>
<honua-measurement for="map"></honua-measurement>

Print

ScaleBar

App-platform usage (the module import auto-registers the element):

import "@honua/app-platform/web-components";
<honua-map id="map"></honua-map>
<honua-search for="map" source="incidents"></honua-search>

ShadowCast

Sketch

Slice

Swipe

TableList

TimeSlider

Track

Weather

Zoom

Out of scope

These surfaces are intentionally not covered by the dispositions above: