@agentic-ui-experience/ui-arcgis 0.0.1-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,228 @@
1
+ # @agentic-ui-experience/ui-arcgis
2
+
3
+ Optional ArcGIS extension for `@agentic-ui-experience/ui-core`,
4
+ `@agentic-ui-experience/ui-runtime`, and
5
+ `@agentic-ui-experience/ui-react`.
6
+
7
+ The package provides the `ArcGISMapView` component, its schema and Agent
8
+ metadata, and ready-made catalog projections. It does not proxy or re-export
9
+ the generic APIs from the foundational UI packages.
10
+
11
+ ## Package role
12
+
13
+ ```text
14
+ ui-core / ui-runtime / ui-react
15
+
16
+ ui-arcgis
17
+
18
+ application
19
+ ```
20
+
21
+ Applications continue to create Agent tools, runtimes, and React renderers
22
+ from the foundational packages. They import only ArcGIS-specific components
23
+ and catalog projections from `ui-arcgis`.
24
+
25
+ ## Exports
26
+
27
+ | Export | Consumer | Purpose |
28
+ | --- | --- | --- |
29
+ | `ArcGISMapViewApi` | Agent/runtime | Component name and Zod props schema; source of truth for the other projections |
30
+ | `ArcGISMapView` | React renderer | React implementation backed by ArcGIS Map Components |
31
+ | `useArcGISMapController` | Host React app | Attach snapshot and presentation-command APIs to a host-owned map element |
32
+ | `arcgisPromptDescriptor` | Agent tools | Static component schema, description, and style-guide projection |
33
+ | `arcgisRuntimeCatalog` | `ui-runtime` | Props validation and surface-state processing |
34
+ | `arcgisReactCatalog` | `ui-react` | Props validation and React renderer binding |
35
+
36
+ The three catalog exports share `ARCGIS_CATALOG_ID`, but have different types
37
+ and consumers. A prompt descriptor is not an executable runtime catalog and is
38
+ not UI output generated by an Agent.
39
+
40
+ ## Install and load styles
41
+
42
+ Install this package alongside the foundational UI packages used by the host.
43
+ Install `@arcgis/core` directly when the host configures the ArcGIS SDK:
44
+
45
+ ```bash
46
+ pnpm add @agentic-ui-experience/ui-arcgis @arcgis/core
47
+ ```
48
+
49
+ Load the ArcGIS Map Components styles once in the application:
50
+
51
+ ```ts
52
+ import "@agentic-ui-experience/ui-arcgis/styles.css";
53
+ ```
54
+
55
+ ## Configure the portal in the host
56
+
57
+ Portal configuration belongs to the host application, not to an
58
+ `ArcGISMapView` prop. Initialize the global ArcGIS SDK before rendering maps:
59
+
60
+ ```ts
61
+ import esriConfig from "@arcgis/core/config.js";
62
+
63
+ esriConfig.portalUrl = "https://example.arcgis.com";
64
+ ```
65
+
66
+ If the application uses OAuth, the host must also register OAuth information
67
+ and complete sign-in. Do not use a custom-portal token as a production Basemap
68
+ Styles API token.
69
+
70
+ Use the configured portal's default basemap with:
71
+
72
+ ```json
73
+ {
74
+ "source": {
75
+ "type": "basemap",
76
+ "basemap": "portal/default",
77
+ "center": { "latitude": 39.9, "longitude": 116.4 },
78
+ "zoom": 10
79
+ }
80
+ }
81
+ ```
82
+
83
+ ## Use the ready-made ArcGIS catalogs
84
+
85
+ When the application only needs the A2UI basic components and
86
+ `ArcGISMapView`, use the provided projections directly:
87
+
88
+ ```ts
89
+ import {
90
+ arcgisPromptDescriptor,
91
+ arcgisRuntimeCatalog,
92
+ arcgisReactCatalog
93
+ } from "@agentic-ui-experience/ui-arcgis";
94
+ ```
95
+
96
+ - Register `arcgisPromptDescriptor` with the Agent-side catalog registry.
97
+ - Register `arcgisRuntimeCatalog` with a non-React runtime.
98
+ - Pass `arcgisReactCatalog` to `useUIRuntime({ catalogs: [...] })` in a React
99
+ application.
100
+
101
+ All three projections include the A2UI basic catalog capabilities.
102
+
103
+ ## Attach to a host-owned map
104
+
105
+ Applications that keep a primary map mounted outside A2UI can attach the
106
+ controller hook to their own ArcGIS Map Component:
107
+
108
+ ```tsx
109
+ import React, { useRef } from "react";
110
+ import type { ArcgisMap } from "@arcgis/map-components/components/arcgis-map";
111
+ import { useArcGISMapController } from "@agentic-ui-experience/ui-arcgis";
112
+
113
+ const mapRef = useRef<ArcgisMap | null>(null);
114
+ const { status, controller } = useArcGISMapController(mapRef);
115
+
116
+ return React.createElement("arcgis-map", {
117
+ ref: mapRef,
118
+ "item-id": webMapItemId
119
+ });
120
+ ```
121
+
122
+ The hook waits for the component view, exposes serializable snapshots plus
123
+ `goTo` and `setLayerVisibility`, and removes its watches on unmount. It does
124
+ not render or destroy the host element. This controller API is separate from
125
+ the A2UI `ArcGISMapView`, which remains a display-only catalog component.
126
+
127
+ ### Reference application
128
+
129
+ [Map Workspace](../../apps/map-workspace/README.md) demonstrates the controller
130
+ with a persistent host WebMap, compact agent context, semantic layer retrieval,
131
+ and explicit map tools. WebMap embedding resources and semantic retrieval are
132
+ application-local responsibilities; they are not capabilities of
133
+ `ui-arcgis`.
134
+
135
+ ## Compose with application components
136
+
137
+ If an application also owns custom components, it must create one application
138
+ catalog ID and derive all three projections from the combined component set:
139
+
140
+ ```ts
141
+ import { defineCatalogPromptDescriptor } from "@agentic-ui-experience/ui-core";
142
+ import { defineCatalog as defineRuntimeCatalog } from "@agentic-ui-experience/ui-runtime";
143
+ import { defineReactCatalog } from "@agentic-ui-experience/ui-react";
144
+ import {
145
+ ArcGISMapView,
146
+ ArcGISMapViewApi,
147
+ arcGISMapViewDescription,
148
+ arcgisStyleGuide
149
+ } from "@agentic-ui-experience/ui-arcgis";
150
+ import {
151
+ Weather,
152
+ WeatherApi,
153
+ weatherDescription,
154
+ weatherStyleGuide
155
+ } from "./weather.js";
156
+
157
+ const id = "com.example.application.v1";
158
+ const componentApis = [WeatherApi, ArcGISMapViewApi] as const;
159
+
160
+ export const promptDescriptor = defineCatalogPromptDescriptor({
161
+ id,
162
+ components: componentApis,
163
+ descriptions: {
164
+ Weather: weatherDescription,
165
+ ArcGISMapView: arcGISMapViewDescription
166
+ },
167
+ styleGuide: [weatherStyleGuide, arcgisStyleGuide].join("\n\n")
168
+ });
169
+
170
+ export const runtimeCatalog = defineRuntimeCatalog({
171
+ id,
172
+ components: componentApis
173
+ });
174
+
175
+ export const reactCatalog = defineReactCatalog({
176
+ id,
177
+ components: [Weather, ArcGISMapView]
178
+ });
179
+ ```
180
+
181
+ A surface selects one `createSurface.catalogId`, so the application owns the
182
+ final composition. `ui-arcgis` does not guess which other components an
183
+ application needs.
184
+
185
+ ## `ArcGISMapView` props
186
+
187
+ - `title?`, `description?`
188
+ - `source`: required `webmap` or `basemap` source
189
+ - `controls?`: `zoom`, `legend`, `layerList`, and `search`
190
+ - `height?`: 180–640 pixels; defaults to 280
191
+ - `openInArcGIS?`: show the open-in-ArcGIS action
192
+
193
+ Web map source:
194
+
195
+ ```json
196
+ {
197
+ "source": {
198
+ "type": "webmap",
199
+ "itemId": "0123456789abcdef0123456789abcdef"
200
+ }
201
+ }
202
+ ```
203
+
204
+ Basemap source:
205
+
206
+ ```json
207
+ {
208
+ "source": {
209
+ "type": "basemap",
210
+ "basemap": "portal/default",
211
+ "center": { "latitude": 39.9, "longitude": 116.4 },
212
+ "zoom": 10
213
+ }
214
+ }
215
+ ```
216
+
217
+ Other basemap values are `arcgis/topographic`, `arcgis/streets`,
218
+ `arcgis/navigation`, `arcgis/light-gray`, `arcgis/dark-gray`,
219
+ `arcgis/imagery`, and `arcgis/outdoor`. Omitting `basemap` defaults to
220
+ `arcgis/topographic`.
221
+
222
+ ## Verify
223
+
224
+ ```bash
225
+ pnpm --filter @agentic-ui-experience/ui-arcgis test
226
+ pnpm --filter @agentic-ui-experience/map-workspace exec tsc --noEmit
227
+ pnpm --filter @agentic-ui-experience/map-workspace build
228
+ ```
@@ -0,0 +1,51 @@
1
+ import { type ReactComponentImplementation } from "@agentic-ui-experience/ui-react";
2
+ import { type ArcGISMapViewProps, normalizeArcGISMapViewProps } from "./api.js";
3
+ type ArcGISMapFailure = "registration" | "load";
4
+ type NormalizedArcGISMapViewProps = ReturnType<typeof normalizeArcGISMapViewProps>;
5
+ type ArcGISMapSource = NormalizedArcGISMapViewProps["source"];
6
+ type ArcGISPortalWithDefaultBasemap = {
7
+ defaultBasemap: unknown | null;
8
+ load(): Promise<unknown>;
9
+ };
10
+ type GetDefaultArcGISPortal = () => Promise<ArcGISPortalWithDefaultBasemap>;
11
+ type ArcGISMapFailureState = {
12
+ sourceKey: string;
13
+ failure: ArcGISMapFailure | null;
14
+ };
15
+ export declare function applyPortalDefaultBasemap(mapElement: {
16
+ basemap?: unknown;
17
+ }, getPortal?: GetDefaultArcGISPortal, isCurrent?: () => boolean): Promise<void>;
18
+ export declare function observeArcGISComponentRegistration(registration: Promise<unknown>, onFailure: (failure: ArcGISMapFailure) => void): Promise<void>;
19
+ export declare function createArcGISMapLoadErrorHandler(onFailure: (failure: ArcGISMapFailure) => void): () => void;
20
+ export declare function observeArcGISMapLoadError(mapElement: EventTarget, onFailure: (failure: ArcGISMapFailure) => void): () => void;
21
+ export declare function getArcGISMapSourceKey(source: ArcGISMapSource): string;
22
+ export declare function createArcGISMapElementProps(props: NormalizedArcGISMapViewProps, sourceKey: string): {
23
+ style: {
24
+ display: string;
25
+ height: string;
26
+ width: string;
27
+ };
28
+ "item-id": string;
29
+ key: string;
30
+ } | {
31
+ style: {
32
+ display: string;
33
+ height: string;
34
+ width: string;
35
+ };
36
+ zoom?: string | undefined;
37
+ center: string;
38
+ basemap?: "arcgis/topographic" | "arcgis/streets" | "arcgis/navigation" | "arcgis/light-gray" | "arcgis/dark-gray" | "arcgis/imagery" | "arcgis/outdoor" | undefined;
39
+ "item-id"?: undefined;
40
+ key: string;
41
+ };
42
+ export declare function getArcGISMapFailureForSource(state: ArcGISMapFailureState, sourceKey: string): ArcGISMapFailure | null;
43
+ export declare function resetArcGISMapFailureForSource(state: ArcGISMapFailureState, sourceKey: string): ArcGISMapFailureState;
44
+ export declare const ArcGISMapView: ReactComponentImplementation;
45
+ export declare function ArcGISMapViewContent({ props }: {
46
+ props: ArcGISMapViewProps;
47
+ }): import("react/jsx-runtime").JSX.Element;
48
+ export declare function ArcGISMapFailureFallback({ failure }: {
49
+ failure: ArcGISMapFailure;
50
+ }): import("react/jsx-runtime").JSX.Element;
51
+ export {};
@@ -0,0 +1 @@
1
+ const _0x4b247b=_0x1a78;(function(_0x342ac1,_0x2b76e9){const _0x13f1c5=_0x1a78,_0x50c366=_0x342ac1();while(!![]){try{const _0x575495=-parseInt(_0x13f1c5(0x1b8))/0x1+-parseInt(_0x13f1c5(0x1a5))/0x2*(-parseInt(_0x13f1c5(0x1bc))/0x3)+parseInt(_0x13f1c5(0x1b6))/0x4+-parseInt(_0x13f1c5(0x19f))/0x5+-parseInt(_0x13f1c5(0x1c5))/0x6*(-parseInt(_0x13f1c5(0x19a))/0x7)+parseInt(_0x13f1c5(0x1ab))/0x8+parseInt(_0x13f1c5(0x18c))/0x9*(-parseInt(_0x13f1c5(0x1b9))/0xa);if(_0x575495===_0x2b76e9)break;else _0x50c366['push'](_0x50c366['shift']());}catch(_0x445d85){_0x50c366['push'](_0x50c366['shift']());}}}(_0x29d3,0x7a650));function _0x29d3(){const _0x570efc=['search','portalUrl','load','top-right','div','toFixed','type','3487164CWHnrj','then','820042zGTWos','22590jnwQOm','useState','arcgis-search','1418397VRNCoZ','webmap','arcgis-layer-list','hidden','zoom','current','/home/webmap/viewer.html?webmap=','catch','createElement','12iCOXXg','useRef','#fff5f5','latitude','registration','Open\x20in\x20ArcGIS','&level=','useEffect','1px\x20solid\x20rgba(226,\x20232,\x20240,\x200.9)','5634Weosha','undefined','The\x20configured\x20ArcGIS\x20portal\x20has\x20no\x20default\x20basemap.','itemId','addEventListener','#2563eb','source','controls','12px\x2014px','defaultBasemap','100%','header','height','top-left','2122890mPHMDL','arcgisLoadError','bottom-left','arcgis-map','block','3172710HHhCYl','ArcGIS\x20map\x20could\x20not\x20be\x20loaded.','sourceKey','resolve','flex','description','4REuhMC','stringify','longitude','title','basemap','#ffffff','7568936Cwggwq','alert','center','portal/default'];_0x29d3=function(){return _0x570efc;};return _0x29d3();}function _0x1a78(_0x141619,_0x535bc4){_0x141619=_0x141619-0x186;const _0x29d36e=_0x29d3();let _0x1a781c=_0x29d36e[_0x141619];return _0x1a781c;}import{jsx,jsxs,Fragment}from'react/jsx-runtime';import _0x309a9e from'react';import _0x48cbef from'@arcgis/core/config.js';import{createComponentImplementation}from'@agentic-ui-experience/ui-react';import{ArcGISMapViewApi,normalizeArcGISMapViewProps}from'./api.js';let arcgisComponentsRegistration;async function getDefaultArcGISPortal(){const {default:_0x551831}=await import('@arcgis/core/portal/Portal.js');return _0x551831['getDefault']();}async function applyPortalDefaultBasemap(_0x4d1f4d,_0x1dd79d=getDefaultArcGISPortal,_0x306316=()=>!![]){const _0x2a01be=_0x1a78,_0x451a3a=await _0x1dd79d();await _0x451a3a[_0x2a01be(0x1b1)]();if(!_0x451a3a['defaultBasemap'])throw new Error(_0x2a01be(0x18e));_0x306316()&&(_0x4d1f4d['basemap']=_0x451a3a[_0x2a01be(0x195)]);}function ensureArcGISMapComponents(){const _0x5a2e7e=_0x1a78;if(typeof window===_0x5a2e7e(0x18d))return Promise[_0x5a2e7e(0x1a2)]();return!arcgisComponentsRegistration&&(arcgisComponentsRegistration=Promise['all']([import('@arcgis/map-components/components/arcgis-map'),import('@arcgis/map-components/components/arcgis-zoom'),import('@arcgis/map-components/components/arcgis-legend'),import('@arcgis/map-components/components/arcgis-layer-list'),import('@arcgis/map-components/components/arcgis-search')])[_0x5a2e7e(0x1b7)](()=>void 0x0)[_0x5a2e7e(0x1c3)](_0x370655=>{arcgisComponentsRegistration=void 0x0;throw _0x370655;})),arcgisComponentsRegistration;}function observeArcGISComponentRegistration(_0x1a8c74,_0x39ff11){const _0x4dafd3=_0x1a78;return _0x1a8c74[_0x4dafd3(0x1b7)](()=>void 0x0,()=>{_0x39ff11('registration');});}function createArcGISMapLoadErrorHandler(_0x58d6e2){return()=>{const _0x2e64f1=_0x1a78;_0x58d6e2(_0x2e64f1(0x1b1));};}function observeArcGISMapLoadError(_0x4f3fa8,_0x1a4970){const _0x58f87d=_0x1a78,_0x21b3be=createArcGISMapLoadErrorHandler(_0x1a4970);return _0x4f3fa8[_0x58f87d(0x190)]('arcgisLoadError',_0x21b3be),()=>{const _0x24441b=_0x58f87d;_0x4f3fa8['removeEventListener'](_0x24441b(0x19b),_0x21b3be);};}function getArcGISMapSourceKey(_0x1284dc){const _0x21ce1a=_0x1a78;if(_0x1284dc['type']===_0x21ce1a(0x1bd))return JSON[_0x21ce1a(0x1a6)]([_0x1284dc['type'],_0x1284dc[_0x21ce1a(0x18f)]]);return JSON[_0x21ce1a(0x1a6)]([_0x1284dc['type'],_0x1284dc['basemap'],_0x1284dc['center'][_0x21ce1a(0x1a7)],_0x1284dc['center'][_0x21ce1a(0x186)],_0x1284dc[_0x21ce1a(0x1c0)]??null]);}function createArcGISMapElementProps(_0x11f5e,_0x16be61){const _0x25a798=_0x1a78,_0x1b3be8=_0x11f5e['source'][_0x25a798(0x1b5)]===_0x25a798(0x1bd)?{'item-id':_0x11f5e[_0x25a798(0x192)]['itemId']}:{..._0x11f5e[_0x25a798(0x192)][_0x25a798(0x1a9)]==='portal/default'?{}:{'basemap':_0x11f5e['source'][_0x25a798(0x1a9)]},'center':_0x11f5e['source']['center']['longitude']+','+_0x11f5e[_0x25a798(0x192)][_0x25a798(0x1ad)]['latitude'],..._0x11f5e[_0x25a798(0x192)][_0x25a798(0x1c0)]===void 0x0?{}:{'zoom':String(_0x11f5e[_0x25a798(0x192)][_0x25a798(0x1c0)])}};return{'key':_0x16be61,..._0x1b3be8,'style':{'display':_0x25a798(0x19e),'height':_0x11f5e[_0x25a798(0x198)]+'px','width':_0x25a798(0x196)}};}function getArcGISMapFailureForSource(_0x46c5ae,_0x451109){return _0x46c5ae['sourceKey']===_0x451109?_0x46c5ae['failure']:null;}function resetArcGISMapFailureForSource(_0x42c114,_0xa2cf3f){const _0x3da5e4=_0x1a78;if(_0x42c114[_0x3da5e4(0x1a1)]===_0xa2cf3f&&_0x42c114['failure']===null)return _0x42c114;return{'sourceKey':_0xa2cf3f,'failure':null};}function createOpenUrl(_0x566de6){const _0x59be03=_0x1a78,_0x57a326=_0x48cbef[_0x59be03(0x1b0)]['replace'](/\/+$/,'');if(_0x566de6[_0x59be03(0x192)][_0x59be03(0x1b5)]==='webmap')return _0x57a326+_0x59be03(0x1c2)+encodeURIComponent(_0x566de6['source'][_0x59be03(0x18f)]);const {latitude:_0x515da4,longitude:_0x5c9758}=_0x566de6['source'][_0x59be03(0x1ad)],_0x61fd11=_0x566de6[_0x59be03(0x192)]['zoom']??0xb,_0x2a5df9=_0x5c9758[_0x59be03(0x1b4)](0x5)+','+_0x515da4['toFixed'](0x5);return _0x57a326+'/home/webmap/viewer.html?center='+encodeURIComponent(_0x2a5df9)+_0x59be03(0x189)+_0x61fd11;}const ArcGISMapView=createComponentImplementation(ArcGISMapViewApi,({props:_0x17f34f})=>jsx(ArcGISMapViewContent,{'props':_0x17f34f}));function ArcGISMapViewContent({props:_0x114415}){const _0x1d3ca2=_0x1a78,_0x5e9946=normalizeArcGISMapViewProps(_0x114415),_0x4e05ce=_0x5e9946[_0x1d3ca2(0x1a8)]??'ArcGIS\x20map',_0x3d9357=createOpenUrl(_0x5e9946);if(_0x5e9946[_0x1d3ca2(0x192)][_0x1d3ca2(0x1b5)]===_0x1d3ca2(0x1a9)&&(!Number['isFinite'](_0x5e9946[_0x1d3ca2(0x192)][_0x1d3ca2(0x1ad)]['latitude'])||!Number['isFinite'](_0x5e9946[_0x1d3ca2(0x192)][_0x1d3ca2(0x1ad)][_0x1d3ca2(0x1a7)])))return jsx('div',{'style':fallbackStyle,'children':'ArcGISMapView\x20needs\x20valid\x20finite\x20latitude\x20and\x20longitude.'});return jsxs('section',{'style':shellStyle,'aria-label':_0x4e05ce,'children':[jsxs(_0x1d3ca2(0x197),{'style':headerStyle,'children':[jsxs(_0x1d3ca2(0x1b3),{'style':{'minWidth':0x0},'children':[jsx(_0x1d3ca2(0x1b3),{'style':titleStyle,'children':_0x4e05ce}),_0x5e9946['description']?jsx(_0x1d3ca2(0x1b3),{'style':descriptionStyle,'children':_0x5e9946[_0x1d3ca2(0x1a4)]}):null]}),_0x5e9946['openInArcGIS']&&_0x3d9357?jsx('a',{'href':_0x3d9357,'target':'_blank','rel':'noopener\x20noreferrer','style':linkStyle,'children':_0x1d3ca2(0x188)}):null]}),jsx(ArcGISMapBody,{'props':_0x5e9946})]});}function ArcGISMapBody({props:_0x3c6d39}){const _0x112876=_0x1a78,_0x3f7664=getArcGISMapSourceKey(_0x3c6d39['source']),_0x2d2891=_0x309a9e[_0x112876(0x1c6)](null),[_0x1e6203,_0x216b9c]=_0x309a9e[_0x112876(0x1ba)]({'sourceKey':_0x3f7664,'failure':null}),_0x5d490e=getArcGISMapFailureForSource(_0x1e6203,_0x3f7664);_0x309a9e[_0x112876(0x18a)](()=>{let _0x4d2cc5=!![];_0x216b9c(_0xdb8f91=>resetArcGISMapFailureForSource(_0xdb8f91,_0x3f7664));const _0x5d213a=_0x203ffb=>{_0x4d2cc5&&_0x216b9c({'sourceKey':_0x3f7664,'failure':_0x203ffb});};return void ensureArcGISMapComponents()['then'](()=>{const _0x862d3e=_0x1a78;if(!_0x4d2cc5||_0x3c6d39[_0x862d3e(0x192)]['type']!=='basemap'||_0x3c6d39[_0x862d3e(0x192)][_0x862d3e(0x1a9)]!==_0x862d3e(0x1ae))return;const _0x3ec4a3=_0x2d2891[_0x862d3e(0x1c1)];if(!_0x3ec4a3){_0x5d213a('load');return;}void applyPortalDefaultBasemap(_0x3ec4a3,getDefaultArcGISPortal,()=>_0x4d2cc5&&_0x2d2891['current']===_0x3ec4a3)['catch'](()=>{const _0xce50d2=_0x862d3e;_0x5d213a(_0xce50d2(0x1b1));});},()=>{const _0x3ac99e=_0x1a78;_0x5d213a(_0x3ac99e(0x187));}),()=>{_0x4d2cc5=![];};},[_0x3f7664]),_0x309a9e['useEffect'](()=>{const _0x218ebb=_0x2d2891['current'];if(!_0x218ebb)return;return observeArcGISMapLoadError(_0x218ebb,_0x59bf6c=>{_0x216b9c({'sourceKey':_0x3f7664,'failure':_0x59bf6c});});},[_0x3f7664]);if(_0x5d490e)return jsx(ArcGISMapFailureFallback,{'failure':_0x5d490e});return _0x309a9e['createElement'](_0x112876(0x19d),{...createArcGISMapElementProps(_0x3c6d39,_0x3f7664),'ref':_0x2d2891},jsxs(Fragment,{'children':[_0x3c6d39['controls'][_0x112876(0x1c0)]?_0x309a9e[_0x112876(0x1c4)]('arcgis-zoom',{'slot':_0x112876(0x199)}):null,_0x3c6d39[_0x112876(0x193)][_0x112876(0x1af)]?_0x309a9e['createElement'](_0x112876(0x1bb),{'slot':_0x112876(0x1b2)}):null,_0x3c6d39['controls']['legend']?_0x309a9e['createElement']('arcgis-legend',{'slot':_0x112876(0x19c)}):null,_0x3c6d39[_0x112876(0x193)]['layerList']?_0x309a9e['createElement'](_0x112876(0x1be),{'slot':_0x112876(0x1b2)}):null]}));}function ArcGISMapFailureFallback({failure:_0x4db332}){const _0x2a3c25=_0x1a78;return jsx(_0x2a3c25(0x1b3),{'role':_0x2a3c25(0x1ac),'style':mapFailureStyle,'children':_0x4db332==='registration'?'ArcGIS\x20map\x20components\x20could\x20not\x20be\x20loaded.':_0x2a3c25(0x1a0)});}const shellStyle={'width':'100%','borderRadius':0x8,'border':'1px\x20solid\x20rgba(148,\x20163,\x20184,\x200.45)','background':_0x4b247b(0x1aa),'overflow':_0x4b247b(0x1bf)},headerStyle={'display':_0x4b247b(0x1a3),'alignItems':'center','justifyContent':'space-between','gap':0xa,'padding':'10px\x2012px','borderBottom':_0x4b247b(0x18b)},titleStyle={'color':'#111827','fontSize':0xd,'fontWeight':0x2bc,'lineHeight':1.2,'overflow':'hidden','textOverflow':'ellipsis','whiteSpace':'nowrap'},descriptionStyle={'color':'#64748b','fontSize':0xc,'lineHeight':1.3,'marginTop':0x4},linkStyle={'color':_0x4b247b(0x191),'flexShrink':0x0,'fontSize':0xc,'fontWeight':0x2bc,'textDecoration':'none'},fallbackStyle={'width':_0x4b247b(0x196),'borderRadius':0x8,'border':'1px\x20solid\x20rgba(220,\x2038,\x2038,\x200.25)','background':_0x4b247b(0x1c7),'color':'#991b1b','fontSize':0xd,'padding':_0x4b247b(0x194)},mapFailureStyle={...fallbackStyle,'border':0x0,'borderRadius':0x0};export{ArcGISMapFailureFallback,ArcGISMapView,ArcGISMapViewContent,applyPortalDefaultBasemap,createArcGISMapElementProps,createArcGISMapLoadErrorHandler,getArcGISMapFailureForSource,getArcGISMapSourceKey,observeArcGISComponentRegistration,observeArcGISMapLoadError,resetArcGISMapFailureForSource};