Builder updates
ArcGIS Experience Builder 1.19 includes several new features and enhancements as listed below:
- Accessibility—You can use the Enter key or the Space key to add a widget to the canvas from the Insert widget panel for full-screen pages. You can use the new Enable accessibility settings for each widget setting to add the Accessibility settings section to the Content tab of widget settings for every widget in the app. This section includes a setting for adding accessible widget labels that are readable by screen readers. For first order widgets, meaning widgets that are not nested inside any other widgets or layout containers in the page outline, you can turn on Enable in skip to to add a shortcut that skips directly to the widget in the keyboard tab order at run time. In theme settings, pages, containers, overlays, and the default and selected states of interactive elements now have linked settings for background color and text color to help you create apps with sufficient color contrast. When you change a background color, Experience Builder automatically picks a text color that contrasts with the background color. If you change a text color to a color without sufficient contrast (minimum 4.5:1), a warning appears prompting you to pick a different color. The Widget Controller widget supports accessibility features. Four more default templates are optimized for accessibility—Chronology, Frame, Preface, and Ribbon. The Search widget and List widget support announcing suggestion and search result changes.
- Actions—When you export data with the Export data action, a notification appears and tracks the export progress.
- Arcade—Fields used in the widget formatting profile are now automatically added to the used fields list.
- Builder—You can turn off both Live view and Lock layout directly from the Insert widget panel.
- General settings—You can use the new Page visibility restriction setting to limit who can view specific pages based on user type and group membership. Restricted pages do not appear in menus if users do not have the required roles or group membership. If a user attempts to access a restricted page, the page prompts them to switch accounts or go to a different page.
- Style settings—You can set the foreground color in the Background section of widget style settings. You can also set foreground colors for pages, windows, and containers such as List widget items, Card widgets, Accordion widgets, sections, and screen groups.
- Templates—Adds the Compass grid page template. The default templates, ArcGIS Online templates, and ArcGIS Living Atlas templates now appear in the templates gallery. Previously, you could only view your own templates in the templates gallery. The templates and experiences galleries include counts of templates and experiences based on your filters. You can browse experience and templates owned by users outside of your organization if your organization administrator enables it in security settings.
- Theme settings—This update provides a new system for customizing the app theme. There are six new pre-designed app themes, all of which you can customize to ensure that your app's visual identify is consistent with your organization's branding or with your personal preferences. In theme settings, you can define primary and secondary colors, functional colors that indicate information, success, warnings, and errors, and neutral colors. You can define the colors of surfaces, such as pages, Table widget cells, and windows, and the colors of interactive elements, such as drop-down buttons, toggle switches in the on and off states, and the keyboard focus indicator. Color previews show how text appears over three shades each for the primary, secondary, info, success, warning, and error colors. To help you adhere to accessibility standards, warnings appear if certain text and background color combinations do not meet a minimum levels of contrast (4.5:1). Additionally, there are new theme settings for typography, the border radius of app elements, the underline style for link text, and more. In typography settings, you can choose fonts for heading and body text and set a general font size. You can add additional fonts from Google Fonts.
- Website—The experience.arcgis.com website includes an ArcGIS Online menu in the header and a Resources window with links to Experience Builder help resources including documentation, ArcGIS Blog articles, Esri Academy training, and developer documentation.
- Windows—You can drag the corners of a window to resize it.
Widgets
Other improvements include the following new and updated widgets:
- Image Collection Explorer widget (new)—View individual images in an image collection from a dynamic imagery layer. You can use this widget to view image previews, footprints, and details. You can select images and create new imagery layers from your selection.
- Login widget (new)—Add a sign-in experience to your app. This widget is a button that allows users to sign in and sign out of ArcGIS accounts. When users click the widget to sign in, the widget can either open a pop-up sign-in window or redirect to an ArcGIS sign-in page. When users click the widget while already signed in, the widget can either sign them out directly or open a drop-down menu with options. You can set up redirects that send users to a specific app page, view, window, or external URL after signing in or signing out.
- Accordion widget—You can use the Add widget button on the widget toolbar to add widgets to an accordion.
- Add Data widget—Supports uploading .fgdb files as .zip files at run time. You can choose to allow exporting for applicable layers, and you can choose which export formats to allow. You can allow users to export to CSV, JSON, GeoJSON, ArcGIS item, Shapefile, FGDB, and KML formats.
- Analysis widget—Adds the View results as a map service setting. You can turn on this setting to return results as a map service for supported data types.
- Basemap Gallery widget—You can turn off pop-ups for basemaps that you add by URL. Additionally, when you synchronize with the basemap gallery settings of your organization, basemaps now appear in the widget in the same order as they do in your organization's basemap gallery.
- Business Analyst widget—In Workflow mode, a new drop-down menu appears in the Select infographic window at run time. This drop-down menu lists all of the infographic categories that you enable in the widget settings. Users can select a category in the drop-down menu to filter available infographics. Additionally, the Export infographic window now includes a credit usage estimate.
- Chart widget—When setting intervals for time bins, you can now choose to have intervals be rolling windows, where the intervals are aligned to the first or last data point, or use calendar-based units of time. Additionally, you can use the new Prefer to use label check box to choose a sorting method when sorting by category. With the By field category type, check the box to sort by field label (alias) and uncheck the box to sort by field name. With the By category category type, check the box to sort by attribute label (description) and uncheck the box to sort by attribute code (coded domain).
- Column widget—You can use the Add widget button on the widget toolbar to add widgets to a column.
- Edit widget—Supports batch attribute editing in Attribute only mode. Additionally, this update adds the Split and Merge geometry editing tools to Interact with a Map widget mode. You can use the Split tool to draw across a feature on the map with the pointer, split it into two features, and define attributes for the resulting features. You can use the Merge tool to combine two or more features into one.
- Filter widget—You can use the filters URL parameter to apply filters with the URL. You can use the settings under Manage URL parameters to have Filter widget parameters appear in the URL when the user applies a filter. You can use this feature to obtain a URL that opens your app with filters already applied. Filter widget URL parameters only support filters with Ask for values as the input style. Filter widget URL parameters do not support custom filters. Additionally, GlobalID and GUID type fields no longer support the starts with, does not start with, ends with, does not end with, contains, and does not contain operators in the expression builder. Filters with the unique, unique (predefined), multiple, and multiple (predefined), and user input (for domain fields) source types now support the expanded list input style. Filters with the unique (predefined) and multiple predefined) source types now support the pill selector input style.
- Grid widget—Adds two new buttons to the widget toolbar for adding new grid items, Insert before and Insert above.
- Image Display Order widget—This widget was previously named the Display Order widget.
- Map widget—You can limit the scales that users can zoom to by creating a scales list in the widget settings. Click Modify to open the Customize scales list panel, where current map scales appear in a list and you can add new scales and remove scales. You can only create a scales list if the Map widget contains one web map. You can now choose between three different styles for the scale bar. You can use the new Location change trigger with the Set location message action to automatically use your current location as the input location for the Near Me widget when you click the Map widget Locate tool. You can use the level URL parameter to define the map zoom level.
- Map Layers widget—If a layer includes mosaic sub-layers, they now appear in the Customize layers list and you can choose to include them in the widget. You can remove any layers added at run time. Runtime layers may include layers generated with actions and layers added with widget such as the Add Data widget and Draw widget. If you search for layers with the search tool and a result layer is in a group layer, the widget now automatically expands the group layer.
- My Location widget—Previously, the map automatically zoomed to the location when the user retrieved a new location or selected an existing location. Now, you can choose whether to enable automatic zoom or have users manually zoom to locations.
- Menu widget—You can change the color of the navigation arrow buttons, which appear if the content of the menu exceeds its height or width.
- Near Me widget—You can use the Map widget Locate tool to set your current location as the input location for the Near Me widget. To do this, add the Location change trigger in Map widget settings, choose a Near Me widget as the target, then select the Set location message action. Additionally, you can use the new Clip features setting with proximity analysis to calculate the input feature's intersection length or area with line and polygon features. You can include this calculation in exported PDF reports and in other export formats.
- Oriented Imagery Viewer widget—You can choose to have the widget always zoom to the extent of the oriented imagery layers in the connected Map widget.
- Search widget—Search widget URL parameters have shorter names and new formatting. The parameters previously named serviceEnabledList and searchText are now enabledList and text.
- Table widget—You can configure settings for all layers in a Table widget at once, instead of only being able to configure settings for individual layers. If you want specific layers to have unique configurations, you can override table options. In Interact with a Map widget mode, you can choose to have a table only display data for layers that are visible at the current map scale. There are now two paging styles. The Scroll style includes organizes records in one scrolling sheet. The Multi-page style divides records into separate pages and you can define the number of records per page. You can freeze a field to the beginning or end of the table.
- Timeline widget—Supports time-aware web scenes and scene layers.
- Widget Controller widget—Adds the Custom option to the Size drop-down menu in widget settings. If you choose Custom, you can define the size of the widget icons, widget buttons, and spacing between buttons in pixels (px). You can nest a Widget Controller widget in a Widget Controller widget. You can use the arrow keys to resize the widget panels.
- Views Navigation widget—You can change the color of the navigation arrow buttons, which appear if the content of the widget exceeds its height or width.
Developer edition updates
- New Theme development documentation describes how themes work in Experience Builder and how to create and customize themes. The way to create a new custom theme is similar to previous versions, but the new theme framework provides a better structure for defining colors, typography, and other style settings. Check out the Theme design system for details.
- New Upgrade to new theme documentation describes how to migrate widget from the old theme variables to the new theme variables.
- Added the following new Storybook components:
Image,Image,Viewer Paper,Surface,Typography,Notification,Provider Notification. - New Web Components widget sample demonstrates how to use web components from Maps SDK for JavaScript and Calcite components in Experience Builder 1.19, which is based on React 19.
Breaking changes
Upgrade to React 19
- React 19 introduces some type-breaking changes, see https://github.com/DefinitelyTyped/DefinitelyTyped/pull/69022
/** @jsx jsx */is not required to use Emotioncssproperty.- If you use the
JSXtype, pleaseimport type { JSX } from 'react' - The React wrapper components are removed from these entries:
arcgis-charts-components,arcgis-coding-components,arcgis-map-components, andarcgis-portal-components. Please use the web component instead.
Upgrade Jimu theme framework
- To upgrade the widgets to fit the new theme, see Upgrade to New Theme
- To create a custom theme, see Theme development
jimu-core
- The animation library is changed from
@react-spring/webtomotion Animationcomponent- prop
typeis removed - prop
configis removedType - prop
directionis removed - prop
triggeris removed - prop
revertis removed - prop
delayis removed - prop
isis removedLast Child - prop
onandAnimation Start onare removedAnimation End - prop
parentis addedId - prop
parentis addedRef - prop
inneris addedLayout Id - prop
animationis addedSetting - prop
oneis addedBy One Setting - prop
playis addedMode
- prop
- Type
Themeis moved toVariables jimu-theme. AppinterfaceConfig - Property
themeis removed.Manifest
- Property
- Type
Themeis moved toManifest jimu-theme. ThemeinterfaceVariables - Property
orgis deprecated inShared Colors Theme, useVariables.colors Themeinstead.Variable.mixin.shared Theme
- Property
sharedTheme Utils - Method
createis removed.Custom Shared Theme Variables - Method
isis removed, use methodShared Theme isfromClassic Shared Theme jimu-themeinstead.
- Method
- jimu-layouts
ViewandVisibility Context Vieware moved toVisibility Context Props jimu-core.
jimu-ui
JimucomponentMap - The following map tools are removed:
Locate,Base,Map Measure,Full,Screen Scale,Bar Select, andAttribution. Please use web components instead. - When
Jimuis one of the following values, the type ofMap Tool.name Jimuchanges fromMap Tool.instance __esri.to web component:Widget Home,Zoom,Locate,Compass,Scale,Bar Layer,List Legend,Search,BaseandMap Navigation.
- The following map tools are removed:
- The component
Drawis removed fromjimu-ui/advanced/mapentry, useJimuinstead.Draw - The original
ImageandWith Param Imageare merged into a newImagecomponent - The props of the
Imagecomponent are all reserved. - The props of the
Imagecomponent are changed as follows:With Param imageis changed toParam.url srcimageare changed toParam.file Format/original Width fileandFormat originalas individual propsWidth imageis changed toParam.crop Param cropas an individual propParam imageis removedParam altis changed toText alttoolis changed toTip titleuseis changed toFade In fadeIn On Load sizeis changed towidthandheightimageis changed toDisplay Quality Mode quality
Draggablecomponent- Add a new required
nodeprop.Ref
- Add a new required
- The entry
jimu-ui/basic/file-uploaderis removed.
jimu-theme
- colorUtils
- Method
getis deprecated, useTheme Color Variable Value colorinsteadUtils.parse Theme Variable
- Method
Add some new lint rules
- block-spacing
- space-before-blocks
- no-trailing-spaces
- no-multi-spaces
- no-multiple-empty-lines
- no-whitespace-before-property
unit test
- The following functions are renamed:
expect(fn).tois changed toBe Called() expect(fn).toHave Been Called() expect(fn).tois changed toBe Called Times(n) expect(fn).toHave Been Called Times(n) expect(fn).tois changed toBe Called With(arg) expect(fn).toHave Been Called With(arg) expect(fn).lastis changed toCalled With(arg) expect(fn).toHave Been Last Called With(arg) expect(fn).nthis changed toCalled With(n, arg) expect(fn).toHave Been Nth Called With(n, arg) expect(fn).tois changed toReturn() expect(fn).toHave Returned() expect(fn).tois changed toReturn Times(n) expect(fn).toHave Returned Times(n) expect(fn).tois changed toReturn With(val) expect(fn).toHave Returned With(val) expect(fn).lastis changed toReturned With(val) expect(fn).toHave Last Returned With(val) expect(fn).nthis changed toReturned With(n, val) expect(fn).toHave Nth Returned With(n, val) expect(func).tois changed toThrow Error(message) expect(func).toThrow(message)
- After upgrading the
jest-environment-jsdomto version 30, it's not allowed to change thewindow.locationin the unit test, see https://github.com/jsdom/jsdom/issues/3492.- Some workarounds:
- If you need to spy the
window.location.hrefchange, please use theurlto change the location and then mock theUtils.change Url() changefunction in your unit test.Url() - If you need to change the URL in the unit test
- If the URL is under the same domain, please use
window.history.push.State() - If the URL is a different domain, you need to write the unit test in a new file and add the following header
- If the URL is under the same domain, please use
Use dark colors for code blocks Copy /** * @jest-environment-options {"url":"https://www.yourdomain.com"} */ - If you need to spy the
- Some workarounds:
Previous releases
- Version 1.18 July 2025
- Version 1.17 March 2025
- Version 1.16 December 2024
- Version 1.15 July 2024
- Version 1.14 March 2024
- Version 1.13 November 2023
- Version 1.12 July 2023
- Version 1.11 March 2023
- Version 1.10 November 2022
- Version 1.9 June 2022
- Version 1.8 April 2022
- Version 1.7 January 2022
- Version 1.6 October 2021
- Version 1.5 July 2021
- Version 1.4 May 2021
- Version 1.3 January 2021
- Version 1.2 November 2020
- Version 1.1 July 2020