@honua/app-platform 0.0.20-alpha.0

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.
Files changed (840) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +11 -0
  3. package/app/index.d.ts +164 -0
  4. package/app/index.d.ts.map +1 -0
  5. package/app/index.js +424 -0
  6. package/app-controller/controller.d.ts +425 -0
  7. package/app-controller/controller.d.ts.map +1 -0
  8. package/app-controller/controller.js +1173 -0
  9. package/app-controller/index.d.ts +14 -0
  10. package/app-controller/index.d.ts.map +1 -0
  11. package/app-controller/index.js +12 -0
  12. package/app-workspace/index.d.ts +421 -0
  13. package/app-workspace/index.d.ts.map +1 -0
  14. package/app-workspace/index.js +722 -0
  15. package/collaboration/client.d.ts +40 -0
  16. package/collaboration/client.d.ts.map +1 -0
  17. package/collaboration/client.js +299 -0
  18. package/collaboration/errors.d.ts +15 -0
  19. package/collaboration/errors.d.ts.map +1 -0
  20. package/collaboration/errors.js +17 -0
  21. package/collaboration/fixture.d.ts +41 -0
  22. package/collaboration/fixture.d.ts.map +1 -0
  23. package/collaboration/fixture.js +362 -0
  24. package/collaboration/index.d.ts +18 -0
  25. package/collaboration/index.d.ts.map +1 -0
  26. package/collaboration/index.js +14 -0
  27. package/collaboration/types.d.ts +240 -0
  28. package/collaboration/types.d.ts.map +1 -0
  29. package/collaboration/types.js +1 -0
  30. package/contract/analytics-sources.d.ts +149 -0
  31. package/contract/analytics-sources.d.ts.map +1 -0
  32. package/contract/analytics-sources.js +235 -0
  33. package/contract/edit-session.d.ts +203 -0
  34. package/contract/edit-session.d.ts.map +1 -0
  35. package/contract/edit-session.js +760 -0
  36. package/contract/edit-sketch.d.ts +91 -0
  37. package/contract/edit-sketch.d.ts.map +1 -0
  38. package/contract/edit-sketch.js +281 -0
  39. package/contract/index.d.ts +63 -0
  40. package/contract/index.d.ts.map +1 -0
  41. package/contract/index.js +52 -0
  42. package/contract/jobs.d.ts +149 -0
  43. package/contract/jobs.d.ts.map +1 -0
  44. package/contract/jobs.js +40 -0
  45. package/contract/pmtiles.d.ts +162 -0
  46. package/contract/pmtiles.d.ts.map +1 -0
  47. package/contract/pmtiles.js +155 -0
  48. package/contract/source.d.ts +447 -0
  49. package/contract/source.d.ts.map +1 -0
  50. package/contract/source.js +3909 -0
  51. package/contract/spatial-aggregation.d.ts +336 -0
  52. package/contract/spatial-aggregation.d.ts.map +1 -0
  53. package/contract/spatial-aggregation.js +298 -0
  54. package/contract/temporal.d.ts +455 -0
  55. package/contract/temporal.d.ts.map +1 -0
  56. package/contract/temporal.js +146 -0
  57. package/contract/tiles.d.ts +370 -0
  58. package/contract/tiles.d.ts.map +1 -0
  59. package/contract/tiles.js +519 -0
  60. package/contract/types.d.ts +694 -0
  61. package/contract/types.d.ts.map +1 -0
  62. package/contract/types.js +183 -0
  63. package/contract/widget-source.d.ts +205 -0
  64. package/contract/widget-source.d.ts.map +1 -0
  65. package/contract/widget-source.js +1473 -0
  66. package/control-plane/client.d.ts +95 -0
  67. package/control-plane/client.d.ts.map +1 -0
  68. package/control-plane/client.js +374 -0
  69. package/control-plane/index.d.ts +18 -0
  70. package/control-plane/index.d.ts.map +1 -0
  71. package/control-plane/index.js +14 -0
  72. package/control-plane/types.d.ts +233 -0
  73. package/control-plane/types.d.ts.map +1 -0
  74. package/control-plane/types.js +7 -0
  75. package/controls/basemap-style-binding.d.ts +54 -0
  76. package/controls/basemap-style-binding.d.ts.map +1 -0
  77. package/controls/basemap-style-binding.js +199 -0
  78. package/controls/basemap-switcher.d.ts +95 -0
  79. package/controls/basemap-switcher.d.ts.map +1 -0
  80. package/controls/basemap-switcher.js +379 -0
  81. package/controls/element-utils.d.ts +48 -0
  82. package/controls/element-utils.d.ts.map +1 -0
  83. package/controls/element-utils.js +78 -0
  84. package/controls/index.d.ts +33 -0
  85. package/controls/index.d.ts.map +1 -0
  86. package/controls/index.js +30 -0
  87. package/controls/layer-list.d.ts +98 -0
  88. package/controls/layer-list.d.ts.map +1 -0
  89. package/controls/layer-list.js +375 -0
  90. package/controls/legend-derive.d.ts +53 -0
  91. package/controls/legend-derive.d.ts.map +1 -0
  92. package/controls/legend-derive.js +196 -0
  93. package/controls/legend.d.ts +104 -0
  94. package/controls/legend.d.ts.map +1 -0
  95. package/controls/legend.js +381 -0
  96. package/controls/swipe-control.d.ts +80 -0
  97. package/controls/swipe-control.d.ts.map +1 -0
  98. package/controls/swipe-control.js +368 -0
  99. package/controls/types.d.ts +227 -0
  100. package/controls/types.d.ts.map +1 -0
  101. package/controls/types.js +11 -0
  102. package/core/auth/client-credentials-provider.d.ts +51 -0
  103. package/core/auth/client-credentials-provider.d.ts.map +1 -0
  104. package/core/auth/client-credentials-provider.js +115 -0
  105. package/core/auth/credential-store.d.ts +52 -0
  106. package/core/auth/credential-store.d.ts.map +1 -0
  107. package/core/auth/credential-store.js +82 -0
  108. package/core/auth/index.d.ts +23 -0
  109. package/core/auth/index.d.ts.map +1 -0
  110. package/core/auth/index.js +20 -0
  111. package/core/auth/oauth2-provider.d.ts +114 -0
  112. package/core/auth/oauth2-provider.d.ts.map +1 -0
  113. package/core/auth/oauth2-provider.js +408 -0
  114. package/core/auth/pkce.d.ts +25 -0
  115. package/core/auth/pkce.d.ts.map +1 -0
  116. package/core/auth/pkce.js +46 -0
  117. package/core/auth/static-providers.d.ts +20 -0
  118. package/core/auth/static-providers.d.ts.map +1 -0
  119. package/core/auth/static-providers.js +26 -0
  120. package/core/auth/token-endpoint.d.ts +40 -0
  121. package/core/auth/token-endpoint.d.ts.map +1 -0
  122. package/core/auth/token-endpoint.js +133 -0
  123. package/core/auth/types.d.ts +144 -0
  124. package/core/auth/types.d.ts.map +1 -0
  125. package/core/auth/types.js +8 -0
  126. package/core/batch.d.ts +37 -0
  127. package/core/batch.d.ts.map +1 -0
  128. package/core/batch.js +79 -0
  129. package/core/cache-state.d.ts +79 -0
  130. package/core/cache-state.d.ts.map +1 -0
  131. package/core/cache-state.js +87 -0
  132. package/core/client.d.ts +607 -0
  133. package/core/client.d.ts.map +1 -0
  134. package/core/client.js +1716 -0
  135. package/core/compatibility.d.ts +18 -0
  136. package/core/compatibility.d.ts.map +1 -0
  137. package/core/compatibility.js +245 -0
  138. package/core/errors.d.ts +139 -0
  139. package/core/errors.d.ts.map +1 -0
  140. package/core/errors.js +176 -0
  141. package/core/esri-geojson.d.ts +66 -0
  142. package/core/esri-geojson.d.ts.map +1 -0
  143. package/core/esri-geojson.js +363 -0
  144. package/core/geoparquet-sql.d.ts +162 -0
  145. package/core/geoparquet-sql.d.ts.map +1 -0
  146. package/core/geoparquet-sql.js +333 -0
  147. package/core/geoservices.d.ts +34 -0
  148. package/core/geoservices.d.ts.map +1 -0
  149. package/core/geoservices.js +434 -0
  150. package/core/grpc-adapter.d.ts +23 -0
  151. package/core/grpc-adapter.d.ts.map +1 -0
  152. package/core/grpc-adapter.js +688 -0
  153. package/core/odata.d.ts +347 -0
  154. package/core/odata.d.ts.map +1 -0
  155. package/core/odata.js +913 -0
  156. package/core/ogc-conformance.d.ts +35 -0
  157. package/core/ogc-conformance.d.ts.map +1 -0
  158. package/core/ogc-conformance.js +134 -0
  159. package/core/ogc-endpoint-layout.d.ts +70 -0
  160. package/core/ogc-endpoint-layout.d.ts.map +1 -0
  161. package/core/ogc-endpoint-layout.js +173 -0
  162. package/core/ogc-features.d.ts +23 -0
  163. package/core/ogc-features.d.ts.map +1 -0
  164. package/core/ogc-features.js +129 -0
  165. package/core/ogc-maps.d.ts +49 -0
  166. package/core/ogc-maps.d.ts.map +1 -0
  167. package/core/ogc-maps.js +126 -0
  168. package/core/ogc-processes.d.ts +118 -0
  169. package/core/ogc-processes.d.ts.map +1 -0
  170. package/core/ogc-processes.js +423 -0
  171. package/core/ogc-records.d.ts +75 -0
  172. package/core/ogc-records.d.ts.map +1 -0
  173. package/core/ogc-records.js +251 -0
  174. package/core/ogc-tiles.d.ts +125 -0
  175. package/core/ogc-tiles.d.ts.map +1 -0
  176. package/core/ogc-tiles.js +183 -0
  177. package/core/path-utils.d.ts +69 -0
  178. package/core/path-utils.d.ts.map +1 -0
  179. package/core/path-utils.js +123 -0
  180. package/core/pbf-decoder.d.ts +39 -0
  181. package/core/pbf-decoder.d.ts.map +1 -0
  182. package/core/pbf-decoder.js +702 -0
  183. package/core/process-runner.d.ts +104 -0
  184. package/core/process-runner.d.ts.map +1 -0
  185. package/core/process-runner.js +315 -0
  186. package/core/protocol-transport.d.ts +76 -0
  187. package/core/protocol-transport.d.ts.map +1 -0
  188. package/core/protocol-transport.js +15 -0
  189. package/core/query-builder.d.ts +261 -0
  190. package/core/query-builder.d.ts.map +1 -0
  191. package/core/query-builder.js +538 -0
  192. package/core/request-pipeline.d.ts +88 -0
  193. package/core/request-pipeline.d.ts.map +1 -0
  194. package/core/request-pipeline.js +273 -0
  195. package/core/spatial-filter.d.ts +93 -0
  196. package/core/spatial-filter.d.ts.map +1 -0
  197. package/core/spatial-filter.js +153 -0
  198. package/core/stac-static.d.ts +51 -0
  199. package/core/stac-static.d.ts.map +1 -0
  200. package/core/stac-static.js +195 -0
  201. package/core/stac.d.ts +67 -0
  202. package/core/stac.d.ts.map +1 -0
  203. package/core/stac.js +259 -0
  204. package/core/surfaces.d.ts +540 -0
  205. package/core/surfaces.d.ts.map +1 -0
  206. package/core/surfaces.js +1964 -0
  207. package/core/terrain-elevation.d.ts +114 -0
  208. package/core/terrain-elevation.d.ts.map +1 -0
  209. package/core/terrain-elevation.js +150 -0
  210. package/core/types.d.ts +1404 -0
  211. package/core/types.d.ts.map +1 -0
  212. package/core/types.js +13 -0
  213. package/core/wfs-capabilities.d.ts +153 -0
  214. package/core/wfs-capabilities.d.ts.map +1 -0
  215. package/core/wfs-capabilities.js +490 -0
  216. package/core/wfs-filter.d.ts +118 -0
  217. package/core/wfs-filter.d.ts.map +1 -0
  218. package/core/wfs-filter.js +634 -0
  219. package/core/wfs.d.ts +232 -0
  220. package/core/wfs.d.ts.map +1 -0
  221. package/core/wfs.js +426 -0
  222. package/core/wire-shared.d.ts +32 -0
  223. package/core/wire-shared.d.ts.map +1 -0
  224. package/core/wire-shared.js +76 -0
  225. package/core/wms-axis.d.ts +36 -0
  226. package/core/wms-axis.d.ts.map +1 -0
  227. package/core/wms-axis.js +73 -0
  228. package/core/wms-capabilities.d.ts +110 -0
  229. package/core/wms-capabilities.d.ts.map +1 -0
  230. package/core/wms-capabilities.js +559 -0
  231. package/core/wms-types.d.ts +128 -0
  232. package/core/wms-types.d.ts.map +1 -0
  233. package/core/wms-types.js +32 -0
  234. package/core/wms.d.ts +144 -0
  235. package/core/wms.d.ts.map +1 -0
  236. package/core/wms.js +338 -0
  237. package/core/wmts-capabilities.d.ts +82 -0
  238. package/core/wmts-capabilities.d.ts.map +1 -0
  239. package/core/wmts-capabilities.js +402 -0
  240. package/core/wmts.d.ts +103 -0
  241. package/core/wmts.d.ts.map +1 -0
  242. package/core/wmts.js +332 -0
  243. package/core/xml-text.d.ts +20 -0
  244. package/core/xml-text.d.ts.map +1 -0
  245. package/core/xml-text.js +85 -0
  246. package/esri-compat/basemap-gallery.d.ts +38 -0
  247. package/esri-compat/basemap-gallery.d.ts.map +1 -0
  248. package/esri-compat/basemap-gallery.js +159 -0
  249. package/esri-compat/basemap-layer-list.d.ts +35 -0
  250. package/esri-compat/basemap-layer-list.d.ts.map +1 -0
  251. package/esri-compat/basemap-layer-list.js +139 -0
  252. package/esri-compat/basemap.d.ts +32 -0
  253. package/esri-compat/basemap.d.ts.map +1 -0
  254. package/esri-compat/basemap.js +84 -0
  255. package/esri-compat/bookmarks.d.ts +36 -0
  256. package/esri-compat/bookmarks.d.ts.map +1 -0
  257. package/esri-compat/bookmarks.js +108 -0
  258. package/esri-compat/class-breaks-renderer.d.ts +50 -0
  259. package/esri-compat/class-breaks-renderer.d.ts.map +1 -0
  260. package/esri-compat/class-breaks-renderer.js +164 -0
  261. package/esri-compat/color.d.ts +22 -0
  262. package/esri-compat/color.d.ts.map +1 -0
  263. package/esri-compat/color.js +106 -0
  264. package/esri-compat/controls.d.ts +174 -0
  265. package/esri-compat/controls.d.ts.map +1 -0
  266. package/esri-compat/controls.js +479 -0
  267. package/esri-compat/coordinate-conversion.d.ts +41 -0
  268. package/esri-compat/coordinate-conversion.d.ts.map +1 -0
  269. package/esri-compat/coordinate-conversion.js +125 -0
  270. package/esri-compat/directions.d.ts +45 -0
  271. package/esri-compat/directions.d.ts.map +1 -0
  272. package/esri-compat/directions.js +123 -0
  273. package/esri-compat/editor.d.ts +47 -0
  274. package/esri-compat/editor.d.ts.map +1 -0
  275. package/esri-compat/editor.js +170 -0
  276. package/esri-compat/esri-config.d.ts +16 -0
  277. package/esri-compat/esri-config.d.ts.map +1 -0
  278. package/esri-compat/esri-config.js +23 -0
  279. package/esri-compat/esri-request.d.ts +17 -0
  280. package/esri-compat/esri-request.d.ts.map +1 -0
  281. package/esri-compat/esri-request.js +127 -0
  282. package/esri-compat/event-bus.d.ts +106 -0
  283. package/esri-compat/event-bus.d.ts.map +1 -0
  284. package/esri-compat/event-bus.js +90 -0
  285. package/esri-compat/expand.d.ts +36 -0
  286. package/esri-compat/expand.d.ts.map +1 -0
  287. package/esri-compat/expand.js +97 -0
  288. package/esri-compat/extent.d.ts +43 -0
  289. package/esri-compat/extent.d.ts.map +1 -0
  290. package/esri-compat/extent.js +140 -0
  291. package/esri-compat/feature-filter.d.ts +55 -0
  292. package/esri-compat/feature-filter.d.ts.map +1 -0
  293. package/esri-compat/feature-filter.js +109 -0
  294. package/esri-compat/feature-form.d.ts +64 -0
  295. package/esri-compat/feature-form.d.ts.map +1 -0
  296. package/esri-compat/feature-form.js +137 -0
  297. package/esri-compat/feature-layer.d.ts +173 -0
  298. package/esri-compat/feature-layer.d.ts.map +1 -0
  299. package/esri-compat/feature-layer.js +661 -0
  300. package/esri-compat/feature-set.d.ts +32 -0
  301. package/esri-compat/feature-set.d.ts.map +1 -0
  302. package/esri-compat/feature-set.js +80 -0
  303. package/esri-compat/feature-table.d.ts +141 -0
  304. package/esri-compat/feature-table.d.ts.map +1 -0
  305. package/esri-compat/feature-table.js +500 -0
  306. package/esri-compat/feature-templates.d.ts +41 -0
  307. package/esri-compat/feature-templates.d.ts.map +1 -0
  308. package/esri-compat/feature-templates.js +97 -0
  309. package/esri-compat/feature.d.ts +33 -0
  310. package/esri-compat/feature.d.ts.map +1 -0
  311. package/esri-compat/feature.js +83 -0
  312. package/esri-compat/geojson-layer.d.ts +86 -0
  313. package/esri-compat/geojson-layer.d.ts.map +1 -0
  314. package/esri-compat/geojson-layer.js +191 -0
  315. package/esri-compat/geometry-engine.d.ts +107 -0
  316. package/esri-compat/geometry-engine.d.ts.map +1 -0
  317. package/esri-compat/geometry-engine.js +266 -0
  318. package/esri-compat/graphic.d.ts +46 -0
  319. package/esri-compat/graphic.d.ts.map +1 -0
  320. package/esri-compat/graphic.js +103 -0
  321. package/esri-compat/graphics-layer.d.ts +49 -0
  322. package/esri-compat/graphics-layer.d.ts.map +1 -0
  323. package/esri-compat/graphics-layer.js +185 -0
  324. package/esri-compat/group-layer.d.ts +48 -0
  325. package/esri-compat/group-layer.d.ts.map +1 -0
  326. package/esri-compat/group-layer.js +212 -0
  327. package/esri-compat/identify.d.ts +71 -0
  328. package/esri-compat/identify.d.ts.map +1 -0
  329. package/esri-compat/identify.js +299 -0
  330. package/esri-compat/identity-manager.d.ts +74 -0
  331. package/esri-compat/identity-manager.d.ts.map +1 -0
  332. package/esri-compat/identity-manager.js +245 -0
  333. package/esri-compat/imagery-layer.d.ts +78 -0
  334. package/esri-compat/imagery-layer.d.ts.map +1 -0
  335. package/esri-compat/imagery-layer.js +167 -0
  336. package/esri-compat/label-class.d.ts +31 -0
  337. package/esri-compat/label-class.d.ts.map +1 -0
  338. package/esri-compat/label-class.js +102 -0
  339. package/esri-compat/layer-list.d.ts +77 -0
  340. package/esri-compat/layer-list.d.ts.map +1 -0
  341. package/esri-compat/layer-list.js +342 -0
  342. package/esri-compat/legend.d.ts +53 -0
  343. package/esri-compat/legend.d.ts.map +1 -0
  344. package/esri-compat/legend.js +254 -0
  345. package/esri-compat/map-image-layer.d.ts +162 -0
  346. package/esri-compat/map-image-layer.d.ts.map +1 -0
  347. package/esri-compat/map-image-layer.js +709 -0
  348. package/esri-compat/map-view.d.ts +323 -0
  349. package/esri-compat/map-view.d.ts.map +1 -0
  350. package/esri-compat/map-view.js +1175 -0
  351. package/esri-compat/map.d.ts +47 -0
  352. package/esri-compat/map.d.ts.map +1 -0
  353. package/esri-compat/map.js +209 -0
  354. package/esri-compat/measurement-2d.d.ts +61 -0
  355. package/esri-compat/measurement-2d.d.ts.map +1 -0
  356. package/esri-compat/measurement-2d.js +184 -0
  357. package/esri-compat/measurement.d.ts +45 -0
  358. package/esri-compat/measurement.d.ts.map +1 -0
  359. package/esri-compat/measurement.js +193 -0
  360. package/esri-compat/oauth-info.d.ts +50 -0
  361. package/esri-compat/oauth-info.d.ts.map +1 -0
  362. package/esri-compat/oauth-info.js +142 -0
  363. package/esri-compat/picture-marker-symbol.d.ts +35 -0
  364. package/esri-compat/picture-marker-symbol.d.ts.map +1 -0
  365. package/esri-compat/picture-marker-symbol.js +126 -0
  366. package/esri-compat/point.d.ts +31 -0
  367. package/esri-compat/point.d.ts.map +1 -0
  368. package/esri-compat/point.js +102 -0
  369. package/esri-compat/polygon.d.ts +31 -0
  370. package/esri-compat/polygon.d.ts.map +1 -0
  371. package/esri-compat/polygon.js +107 -0
  372. package/esri-compat/polyline.d.ts +31 -0
  373. package/esri-compat/polyline.d.ts.map +1 -0
  374. package/esri-compat/polyline.js +107 -0
  375. package/esri-compat/popup-template.d.ts +55 -0
  376. package/esri-compat/popup-template.d.ts.map +1 -0
  377. package/esri-compat/popup-template.js +128 -0
  378. package/esri-compat/popup.d.ts +54 -0
  379. package/esri-compat/popup.d.ts.map +1 -0
  380. package/esri-compat/popup.js +312 -0
  381. package/esri-compat/print.d.ts +47 -0
  382. package/esri-compat/print.d.ts.map +1 -0
  383. package/esri-compat/print.js +105 -0
  384. package/esri-compat/query.d.ts +58 -0
  385. package/esri-compat/query.d.ts.map +1 -0
  386. package/esri-compat/query.js +128 -0
  387. package/esri-compat/reactive-utils.d.ts +24 -0
  388. package/esri-compat/reactive-utils.d.ts.map +1 -0
  389. package/esri-compat/reactive-utils.js +193 -0
  390. package/esri-compat/request.d.ts +41 -0
  391. package/esri-compat/request.d.ts.map +1 -0
  392. package/esri-compat/request.js +253 -0
  393. package/esri-compat/route-layer.d.ts +59 -0
  394. package/esri-compat/route-layer.d.ts.map +1 -0
  395. package/esri-compat/route-layer.js +223 -0
  396. package/esri-compat/route-task.d.ts +88 -0
  397. package/esri-compat/route-task.d.ts.map +1 -0
  398. package/esri-compat/route-task.js +225 -0
  399. package/esri-compat/scene-view.d.ts +41 -0
  400. package/esri-compat/scene-view.d.ts.map +1 -0
  401. package/esri-compat/scene-view.js +68 -0
  402. package/esri-compat/search.d.ts +112 -0
  403. package/esri-compat/search.d.ts.map +1 -0
  404. package/esri-compat/search.js +820 -0
  405. package/esri-compat/simple-fill-symbol.d.ts +27 -0
  406. package/esri-compat/simple-fill-symbol.d.ts.map +1 -0
  407. package/esri-compat/simple-fill-symbol.js +85 -0
  408. package/esri-compat/simple-line-symbol.d.ts +27 -0
  409. package/esri-compat/simple-line-symbol.d.ts.map +1 -0
  410. package/esri-compat/simple-line-symbol.js +85 -0
  411. package/esri-compat/simple-marker-symbol.d.ts +29 -0
  412. package/esri-compat/simple-marker-symbol.d.ts.map +1 -0
  413. package/esri-compat/simple-marker-symbol.js +92 -0
  414. package/esri-compat/simple-renderer.d.ts +29 -0
  415. package/esri-compat/simple-renderer.d.ts.map +1 -0
  416. package/esri-compat/simple-renderer.js +92 -0
  417. package/esri-compat/sketch.d.ts +64 -0
  418. package/esri-compat/sketch.d.ts.map +1 -0
  419. package/esri-compat/sketch.js +227 -0
  420. package/esri-compat/spatial-reference.d.ts +31 -0
  421. package/esri-compat/spatial-reference.d.ts.map +1 -0
  422. package/esri-compat/spatial-reference.js +102 -0
  423. package/esri-compat/swipe.d.ts +34 -0
  424. package/esri-compat/swipe.d.ts.map +1 -0
  425. package/esri-compat/swipe.js +93 -0
  426. package/esri-compat/table-list.d.ts +36 -0
  427. package/esri-compat/table-list.d.ts.map +1 -0
  428. package/esri-compat/table-list.js +126 -0
  429. package/esri-compat/text-symbol.d.ts +37 -0
  430. package/esri-compat/text-symbol.d.ts.map +1 -0
  431. package/esri-compat/text-symbol.js +123 -0
  432. package/esri-compat/tile-layer.d.ts +52 -0
  433. package/esri-compat/tile-layer.d.ts.map +1 -0
  434. package/esri-compat/tile-layer.js +168 -0
  435. package/esri-compat/time-slider.d.ts +70 -0
  436. package/esri-compat/time-slider.d.ts.map +1 -0
  437. package/esri-compat/time-slider.js +208 -0
  438. package/esri-compat/track.d.ts +51 -0
  439. package/esri-compat/track.d.ts.map +1 -0
  440. package/esri-compat/track.js +174 -0
  441. package/esri-compat/unique-value-renderer.d.ts +41 -0
  442. package/esri-compat/unique-value-renderer.d.ts.map +1 -0
  443. package/esri-compat/unique-value-renderer.js +127 -0
  444. package/esri-compat/url.d.ts +13 -0
  445. package/esri-compat/url.d.ts.map +1 -0
  446. package/esri-compat/url.js +68 -0
  447. package/esri-compat/vector-tile-layer.d.ts +47 -0
  448. package/esri-compat/vector-tile-layer.d.ts.map +1 -0
  449. package/esri-compat/vector-tile-layer.js +130 -0
  450. package/esri-compat/web-map.d.ts +14 -0
  451. package/esri-compat/web-map.d.ts.map +1 -0
  452. package/esri-compat/web-map.js +24 -0
  453. package/esri-compat/wfs-layer.d.ts +64 -0
  454. package/esri-compat/wfs-layer.d.ts.map +1 -0
  455. package/esri-compat/wfs-layer.js +145 -0
  456. package/esri-compat/wms-layer.d.ts +76 -0
  457. package/esri-compat/wms-layer.d.ts.map +1 -0
  458. package/esri-compat/wms-layer.js +157 -0
  459. package/exploration/context.d.ts +25 -0
  460. package/exploration/context.d.ts.map +1 -0
  461. package/exploration/context.js +396 -0
  462. package/exploration/index.d.ts +27 -0
  463. package/exploration/index.d.ts.map +1 -0
  464. package/exploration/index.js +24 -0
  465. package/exploration/presets.d.ts +27 -0
  466. package/exploration/presets.d.ts.map +1 -0
  467. package/exploration/presets.js +114 -0
  468. package/exploration/reducer.d.ts +23 -0
  469. package/exploration/reducer.d.ts.map +1 -0
  470. package/exploration/reducer.js +332 -0
  471. package/exploration/selection.d.ts +25 -0
  472. package/exploration/selection.d.ts.map +1 -0
  473. package/exploration/selection.js +34 -0
  474. package/exploration/selectors.d.ts +56 -0
  475. package/exploration/selectors.d.ts.map +1 -0
  476. package/exploration/selectors.js +110 -0
  477. package/exploration/types.d.ts +294 -0
  478. package/exploration/types.d.ts.map +1 -0
  479. package/exploration/types.js +33 -0
  480. package/expr/expression.d.ts +457 -0
  481. package/expr/expression.d.ts.map +1 -0
  482. package/expr/expression.js +663 -0
  483. package/expr/index.d.ts +32 -0
  484. package/expr/index.d.ts.map +1 -0
  485. package/expr/index.js +30 -0
  486. package/filter-registry/index.d.ts +145 -0
  487. package/filter-registry/index.d.ts.map +1 -0
  488. package/filter-registry/index.js +531 -0
  489. package/gen/honua/v1/feature_service_pb.d.ts +918 -0
  490. package/gen/honua/v1/feature_service_pb.d.ts.map +1 -0
  491. package/gen/honua/v1/feature_service_pb.js +375 -0
  492. package/generated-app/errors.d.ts +41 -0
  493. package/generated-app/errors.d.ts.map +1 -0
  494. package/generated-app/errors.js +41 -0
  495. package/generated-app/index.d.ts +17 -0
  496. package/generated-app/index.d.ts.map +1 -0
  497. package/generated-app/index.js +12 -0
  498. package/generated-app/manifest.d.ts +183 -0
  499. package/generated-app/manifest.d.ts.map +1 -0
  500. package/generated-app/manifest.js +14 -0
  501. package/generated-app/projection.d.ts +44 -0
  502. package/generated-app/projection.d.ts.map +1 -0
  503. package/generated-app/projection.js +234 -0
  504. package/generated-app/runtime.d.ts +215 -0
  505. package/generated-app/runtime.d.ts.map +1 -0
  506. package/generated-app/runtime.js +1196 -0
  507. package/geocoding/index.d.ts +106 -0
  508. package/geocoding/index.d.ts.map +1 -0
  509. package/geocoding/index.js +278 -0
  510. package/interactions/detail-model.d.ts +54 -0
  511. package/interactions/detail-model.d.ts.map +1 -0
  512. package/interactions/detail-model.js +105 -0
  513. package/interactions/exploration-bindings.d.ts +120 -0
  514. package/interactions/exploration-bindings.d.ts.map +1 -0
  515. package/interactions/exploration-bindings.js +218 -0
  516. package/interactions/feature-state.d.ts +144 -0
  517. package/interactions/feature-state.d.ts.map +1 -0
  518. package/interactions/feature-state.js +169 -0
  519. package/interactions/hit-test.d.ts +112 -0
  520. package/interactions/hit-test.d.ts.map +1 -0
  521. package/interactions/hit-test.js +291 -0
  522. package/interactions/index.d.ts +31 -0
  523. package/interactions/index.d.ts.map +1 -0
  524. package/interactions/index.js +24 -0
  525. package/interactions/share-state.d.ts +36 -0
  526. package/interactions/share-state.d.ts.map +1 -0
  527. package/interactions/share-state.js +123 -0
  528. package/map/feature-service-adapter.d.ts +138 -0
  529. package/map/feature-service-adapter.d.ts.map +1 -0
  530. package/map/feature-service-adapter.js +279 -0
  531. package/map/honua-map.d.ts +203 -0
  532. package/map/honua-map.d.ts.map +1 -0
  533. package/map/honua-map.js +347 -0
  534. package/map/index.d.ts +27 -0
  535. package/map/index.d.ts.map +1 -0
  536. package/map/index.js +22 -0
  537. package/map/maplibre-target.d.ts +103 -0
  538. package/map/maplibre-target.d.ts.map +1 -0
  539. package/map/maplibre-target.js +164 -0
  540. package/map/webmap-maplibre.d.ts +60 -0
  541. package/map/webmap-maplibre.d.ts.map +1 -0
  542. package/map/webmap-maplibre.js +212 -0
  543. package/operate/client.d.ts +94 -0
  544. package/operate/client.d.ts.map +1 -0
  545. package/operate/client.js +361 -0
  546. package/operate/index.d.ts +22 -0
  547. package/operate/index.d.ts.map +1 -0
  548. package/operate/index.js +19 -0
  549. package/operate/types.d.ts +397 -0
  550. package/operate/types.d.ts.map +1 -0
  551. package/operate/types.js +17 -0
  552. package/operator/client.d.ts +60 -0
  553. package/operator/client.d.ts.map +1 -0
  554. package/operator/client.js +20 -0
  555. package/operator/controllers/approval.d.ts +52 -0
  556. package/operator/controllers/approval.d.ts.map +1 -0
  557. package/operator/controllers/approval.js +123 -0
  558. package/operator/controllers/base.d.ts +27 -0
  559. package/operator/controllers/base.d.ts.map +1 -0
  560. package/operator/controllers/base.js +53 -0
  561. package/operator/controllers/builder-workspace.d.ts +55 -0
  562. package/operator/controllers/builder-workspace.d.ts.map +1 -0
  563. package/operator/controllers/builder-workspace.js +108 -0
  564. package/operator/controllers/chat.d.ts +61 -0
  565. package/operator/controllers/chat.d.ts.map +1 -0
  566. package/operator/controllers/chat.js +154 -0
  567. package/operator/controllers/clarification.d.ts +52 -0
  568. package/operator/controllers/clarification.d.ts.map +1 -0
  569. package/operator/controllers/clarification.js +121 -0
  570. package/operator/controllers/execution.d.ts +60 -0
  571. package/operator/controllers/execution.d.ts.map +1 -0
  572. package/operator/controllers/execution.js +286 -0
  573. package/operator/controllers/index.d.ts +23 -0
  574. package/operator/controllers/index.d.ts.map +1 -0
  575. package/operator/controllers/index.js +15 -0
  576. package/operator/controllers/map-workspace.d.ts +85 -0
  577. package/operator/controllers/map-workspace.d.ts.map +1 -0
  578. package/operator/controllers/map-workspace.js +296 -0
  579. package/operator/controllers/plan-review.d.ts +66 -0
  580. package/operator/controllers/plan-review.d.ts.map +1 -0
  581. package/operator/controllers/plan-review.js +124 -0
  582. package/operator/errors.d.ts +62 -0
  583. package/operator/errors.d.ts.map +1 -0
  584. package/operator/errors.js +75 -0
  585. package/operator/i18n/index.d.ts +10 -0
  586. package/operator/i18n/index.d.ts.map +1 -0
  587. package/operator/i18n/index.js +8 -0
  588. package/operator/i18n/messages.d.ts +19 -0
  589. package/operator/i18n/messages.d.ts.map +1 -0
  590. package/operator/i18n/messages.js +54 -0
  591. package/operator/index.d.ts +19 -0
  592. package/operator/index.d.ts.map +1 -0
  593. package/operator/index.js +15 -0
  594. package/operator/telemetry.d.ts +26 -0
  595. package/operator/telemetry.d.ts.map +1 -0
  596. package/operator/telemetry.js +9 -0
  597. package/operator/theming/index.d.ts +12 -0
  598. package/operator/theming/index.d.ts.map +1 -0
  599. package/operator/theming/index.js +9 -0
  600. package/operator/theming/provider.d.ts +27 -0
  601. package/operator/theming/provider.d.ts.map +1 -0
  602. package/operator/theming/provider.js +26 -0
  603. package/operator/theming/tokens.d.ts +28 -0
  604. package/operator/theming/tokens.d.ts.map +1 -0
  605. package/operator/theming/tokens.js +65 -0
  606. package/operator/workspace/events.d.ts +70 -0
  607. package/operator/workspace/events.d.ts.map +1 -0
  608. package/operator/workspace/events.js +9 -0
  609. package/operator/workspace/index.d.ts +12 -0
  610. package/operator/workspace/index.d.ts.map +1 -0
  611. package/operator/workspace/index.js +8 -0
  612. package/operator/workspace/types.d.ts +178 -0
  613. package/operator/workspace/types.d.ts.map +1 -0
  614. package/operator/workspace/types.js +47 -0
  615. package/operator/workspace/workspace.d.ts +58 -0
  616. package/operator/workspace/workspace.d.ts.map +1 -0
  617. package/operator/workspace/workspace.js +339 -0
  618. package/package.json +105 -0
  619. package/realtime/exploration.d.ts +16 -0
  620. package/realtime/exploration.d.ts.map +1 -0
  621. package/realtime/exploration.js +32 -0
  622. package/realtime/honua-server.d.ts +123 -0
  623. package/realtime/honua-server.d.ts.map +1 -0
  624. package/realtime/honua-server.js +188 -0
  625. package/realtime/index.d.ts +20 -0
  626. package/realtime/index.d.ts.map +1 -0
  627. package/realtime/index.js +14 -0
  628. package/realtime/projections.d.ts +30 -0
  629. package/realtime/projections.d.ts.map +1 -0
  630. package/realtime/projections.js +51 -0
  631. package/realtime/reducer.d.ts +14 -0
  632. package/realtime/reducer.d.ts.map +1 -0
  633. package/realtime/reducer.js +351 -0
  634. package/realtime/sse.d.ts +23 -0
  635. package/realtime/sse.d.ts.map +1 -0
  636. package/realtime/sse.js +143 -0
  637. package/realtime/store.d.ts +18 -0
  638. package/realtime/store.d.ts.map +1 -0
  639. package/realtime/store.js +63 -0
  640. package/realtime/types.d.ts +190 -0
  641. package/realtime/types.d.ts.map +1 -0
  642. package/realtime/types.js +10 -0
  643. package/replica-sync/client.d.ts +32 -0
  644. package/replica-sync/client.d.ts.map +1 -0
  645. package/replica-sync/client.js +52 -0
  646. package/replica-sync/errors.d.ts +22 -0
  647. package/replica-sync/errors.d.ts.map +1 -0
  648. package/replica-sync/errors.js +29 -0
  649. package/replica-sync/fixture.d.ts +40 -0
  650. package/replica-sync/fixture.d.ts.map +1 -0
  651. package/replica-sync/fixture.js +364 -0
  652. package/replica-sync/index.d.ts +22 -0
  653. package/replica-sync/index.d.ts.map +1 -0
  654. package/replica-sync/index.js +17 -0
  655. package/replica-sync/types.d.ts +270 -0
  656. package/replica-sync/types.d.ts.map +1 -0
  657. package/replica-sync/types.js +13 -0
  658. package/runtime/diff.d.ts +31 -0
  659. package/runtime/diff.d.ts.map +1 -0
  660. package/runtime/diff.js +143 -0
  661. package/runtime/errors.d.ts +40 -0
  662. package/runtime/errors.d.ts.map +1 -0
  663. package/runtime/errors.js +35 -0
  664. package/runtime/index.d.ts +59 -0
  665. package/runtime/index.d.ts.map +1 -0
  666. package/runtime/index.js +40 -0
  667. package/runtime/legend.d.ts +23 -0
  668. package/runtime/legend.d.ts.map +1 -0
  669. package/runtime/legend.js +38 -0
  670. package/runtime/load-package.d.ts +125 -0
  671. package/runtime/load-package.d.ts.map +1 -0
  672. package/runtime/load-package.js +272 -0
  673. package/runtime/map-package-fetch.d.ts +107 -0
  674. package/runtime/map-package-fetch.d.ts.map +1 -0
  675. package/runtime/map-package-fetch.js +336 -0
  676. package/runtime/map-package-realtime.d.ts +169 -0
  677. package/runtime/map-package-realtime.d.ts.map +1 -0
  678. package/runtime/map-package-realtime.js +350 -0
  679. package/runtime/map-package-validation.d.ts +30 -0
  680. package/runtime/map-package-validation.d.ts.map +1 -0
  681. package/runtime/map-package-validation.js +257 -0
  682. package/runtime/map-package-watch.d.ts +78 -0
  683. package/runtime/map-package-watch.d.ts.map +1 -0
  684. package/runtime/map-package-watch.js +695 -0
  685. package/runtime/map-package.d.ts +167 -0
  686. package/runtime/map-package.d.ts.map +1 -0
  687. package/runtime/map-package.js +15 -0
  688. package/runtime/ogc-styles.d.ts +110 -0
  689. package/runtime/ogc-styles.d.ts.map +1 -0
  690. package/runtime/ogc-styles.js +195 -0
  691. package/runtime/pmtiles-protocol.d.ts +77 -0
  692. package/runtime/pmtiles-protocol.d.ts.map +1 -0
  693. package/runtime/pmtiles-protocol.js +120 -0
  694. package/runtime/popups.d.ts +62 -0
  695. package/runtime/popups.d.ts.map +1 -0
  696. package/runtime/popups.js +95 -0
  697. package/runtime/query-tiles.d.ts +217 -0
  698. package/runtime/query-tiles.d.ts.map +1 -0
  699. package/runtime/query-tiles.js +801 -0
  700. package/runtime/runtime.d.ts +243 -0
  701. package/runtime/runtime.d.ts.map +1 -0
  702. package/runtime/runtime.js +1147 -0
  703. package/runtime/source-bridge.d.ts +99 -0
  704. package/runtime/source-bridge.d.ts.map +1 -0
  705. package/runtime/source-bridge.js +428 -0
  706. package/runtime/style-compose.d.ts +46 -0
  707. package/runtime/style-compose.d.ts.map +1 -0
  708. package/runtime/style-compose.js +144 -0
  709. package/runtime/style-interactions.d.ts +141 -0
  710. package/runtime/style-interactions.d.ts.map +1 -0
  711. package/runtime/style-interactions.js +574 -0
  712. package/runtime/style-spec-validation.d.ts +23 -0
  713. package/runtime/style-spec-validation.d.ts.map +1 -0
  714. package/runtime/style-spec-validation.js +357 -0
  715. package/scene-workspace/analysis-widgets.d.ts +334 -0
  716. package/scene-workspace/analysis-widgets.d.ts.map +1 -0
  717. package/scene-workspace/analysis-widgets.js +424 -0
  718. package/scene-workspace/cesium-adapter.d.ts +438 -0
  719. package/scene-workspace/cesium-adapter.d.ts.map +1 -0
  720. package/scene-workspace/cesium-adapter.js +493 -0
  721. package/scene-workspace/index.d.ts +21 -0
  722. package/scene-workspace/index.d.ts.map +1 -0
  723. package/scene-workspace/index.js +14 -0
  724. package/scene-workspace/primitives.d.ts +162 -0
  725. package/scene-workspace/primitives.d.ts.map +1 -0
  726. package/scene-workspace/primitives.js +255 -0
  727. package/scene-workspace/scene-discovery.d.ts +196 -0
  728. package/scene-workspace/scene-discovery.d.ts.map +1 -0
  729. package/scene-workspace/scene-discovery.js +228 -0
  730. package/scene-workspace/scene-view.d.ts +209 -0
  731. package/scene-workspace/scene-view.d.ts.map +1 -0
  732. package/scene-workspace/scene-view.js +267 -0
  733. package/scene-workspace/types.d.ts +229 -0
  734. package/scene-workspace/types.d.ts.map +1 -0
  735. package/scene-workspace/types.js +23 -0
  736. package/scene-workspace/workspace.d.ts +13 -0
  737. package/scene-workspace/workspace.d.ts.map +1 -0
  738. package/scene-workspace/workspace.js +391 -0
  739. package/share/denial.d.ts +78 -0
  740. package/share/denial.d.ts.map +1 -0
  741. package/share/denial.js +61 -0
  742. package/share/embed-token.d.ts +71 -0
  743. package/share/embed-token.d.ts.map +1 -0
  744. package/share/embed-token.js +99 -0
  745. package/share/index.d.ts +35 -0
  746. package/share/index.d.ts.map +1 -0
  747. package/share/index.js +30 -0
  748. package/share/open-data.d.ts +114 -0
  749. package/share/open-data.d.ts.map +1 -0
  750. package/share/open-data.js +81 -0
  751. package/share/types.d.ts +163 -0
  752. package/share/types.d.ts.map +1 -0
  753. package/share/types.js +17 -0
  754. package/studio/capability-manifest.d.ts +285 -0
  755. package/studio/capability-manifest.d.ts.map +1 -0
  756. package/studio/capability-manifest.js +59 -0
  757. package/studio/chart-spec.d.ts +85 -0
  758. package/studio/chart-spec.d.ts.map +1 -0
  759. package/studio/chart-spec.js +106 -0
  760. package/studio/index.d.ts +34 -0
  761. package/studio/index.d.ts.map +1 -0
  762. package/studio/index.js +27 -0
  763. package/studio/provenance.d.ts +131 -0
  764. package/studio/provenance.d.ts.map +1 -0
  765. package/studio/provenance.js +39 -0
  766. package/studio/publish.d.ts +64 -0
  767. package/studio/publish.d.ts.map +1 -0
  768. package/studio/publish.js +13 -0
  769. package/studio/types.d.ts +278 -0
  770. package/studio/types.d.ts.map +1 -0
  771. package/studio/types.js +71 -0
  772. package/studio/validate.d.ts +45 -0
  773. package/studio/validate.d.ts.map +1 -0
  774. package/studio/validate.js +255 -0
  775. package/studio/validation.d.ts +112 -0
  776. package/studio/validation.d.ts.map +1 -0
  777. package/studio/validation.js +42 -0
  778. package/style/factory.d.ts +30 -0
  779. package/style/factory.d.ts.map +1 -0
  780. package/style/factory.js +61 -0
  781. package/style/index.d.ts +25 -0
  782. package/style/index.d.ts.map +1 -0
  783. package/style/index.js +24 -0
  784. package/style/specification.d.ts +203 -0
  785. package/style/specification.d.ts.map +1 -0
  786. package/style/specification.js +178 -0
  787. package/style/wms-wmts-resolvers.d.ts +38 -0
  788. package/style/wms-wmts-resolvers.d.ts.map +1 -0
  789. package/style/wms-wmts-resolvers.js +92 -0
  790. package/web-components/controller.d.ts +39 -0
  791. package/web-components/controller.d.ts.map +1 -0
  792. package/web-components/controller.js +640 -0
  793. package/web-components/elements.d.ts +210 -0
  794. package/web-components/elements.d.ts.map +1 -0
  795. package/web-components/elements.js +1651 -0
  796. package/web-components/index.d.ts +24 -0
  797. package/web-components/index.d.ts.map +1 -0
  798. package/web-components/index.js +22 -0
  799. package/web-components/maplibre-renderer.d.ts +22 -0
  800. package/web-components/maplibre-renderer.d.ts.map +1 -0
  801. package/web-components/maplibre-renderer.js +474 -0
  802. package/web-components/types.d.ts +397 -0
  803. package/web-components/types.d.ts.map +1 -0
  804. package/web-components/types.js +1 -0
  805. package/webmap/contract.d.ts +28 -0
  806. package/webmap/contract.d.ts.map +1 -0
  807. package/webmap/contract.js +130 -0
  808. package/webmap/convert-basemap.d.ts +17 -0
  809. package/webmap/convert-basemap.d.ts.map +1 -0
  810. package/webmap/convert-basemap.js +78 -0
  811. package/webmap/convert-extent.d.ts +17 -0
  812. package/webmap/convert-extent.d.ts.map +1 -0
  813. package/webmap/convert-extent.js +114 -0
  814. package/webmap/convert-label.d.ts +13 -0
  815. package/webmap/convert-label.d.ts.map +1 -0
  816. package/webmap/convert-label.js +125 -0
  817. package/webmap/convert-layer.d.ts +22 -0
  818. package/webmap/convert-layer.d.ts.map +1 -0
  819. package/webmap/convert-layer.js +181 -0
  820. package/webmap/convert-popup.d.ts +34 -0
  821. package/webmap/convert-popup.d.ts.map +1 -0
  822. package/webmap/convert-popup.js +68 -0
  823. package/webmap/convert-renderer.d.ts +17 -0
  824. package/webmap/convert-renderer.d.ts.map +1 -0
  825. package/webmap/convert-renderer.js +161 -0
  826. package/webmap/convert-symbol.d.ts +17 -0
  827. package/webmap/convert-symbol.d.ts.map +1 -0
  828. package/webmap/convert-symbol.js +122 -0
  829. package/webmap/index.d.ts +44 -0
  830. package/webmap/index.d.ts.map +1 -0
  831. package/webmap/index.js +33 -0
  832. package/webmap/parse.d.ts +25 -0
  833. package/webmap/parse.d.ts.map +1 -0
  834. package/webmap/parse.js +83 -0
  835. package/webmap/types.d.ts +264 -0
  836. package/webmap/types.d.ts.map +1 -0
  837. package/webmap/types.js +13 -0
  838. package/webmap/warnings.d.ts +30 -0
  839. package/webmap/warnings.d.ts.map +1 -0
  840. package/webmap/warnings.js +37 -0
@@ -0,0 +1,104 @@
1
+ /**
2
+ * `<honua-legend>` — framework-free custom element rendering swatch+label
3
+ * rows from the same definitions the map uses (issue #274), so the map and
4
+ * its legend cannot drift apart.
5
+ *
6
+ * ## Input modes
7
+ * - **Explicit entries** — assign the `entries` property a flat
8
+ * {@link HonuaLegendEntry} array (rendered as one untitled section) and/or
9
+ * {@link HonuaLegendSection} groups with optional titles.
10
+ * - **Derive mode** (the headline) — set the `layer` attribute to a style
11
+ * layer id; the element parses the layer's categorical color paint
12
+ * expression into entries via {@link deriveLegendEntries}. See
13
+ * `legend-derive.ts` for the supported expression shapes (literal color,
14
+ * `match` on a `["get", <attr>]` input, simple-equality `case`, numeric
15
+ * `step`); anything else fails gracefully — the element keeps rendering
16
+ * its explicit sections and exposes the failure on `deriveError`.
17
+ * Both modes compose: explicit sections render first, then the derived
18
+ * section.
19
+ *
20
+ * ## Wiring
21
+ * - `element.map = map` (any MapLibre `Map`) or `element.connect(map)`;
22
+ * - declaratively via `for="<honua-map id>"` — same idiom as
23
+ * `<honua-basemap-switcher>` (resolves `.map` from the referenced element
24
+ * and listens for `honua-map-ready`).
25
+ *
26
+ * ## Reactivity
27
+ * - `refresh()` re-derives and re-renders on demand;
28
+ * - with the `auto-refresh` attribute, the element subscribes to the map's
29
+ * `styledata` event while connected and refreshes automatically (style
30
+ * edits, layers added later, visibility toggles).
31
+ *
32
+ * ## Attributes
33
+ * - `for` — id of the map-providing element.
34
+ * - `layer` — style layer id to derive entries from.
35
+ * - `layer-title` — optional title rendered above the derived section.
36
+ * - `heading` — optional heading rendered above the whole legend.
37
+ * - `follow-layer-visibility` — boolean; hide a section while its source
38
+ * layer's `visibility` layout property is `"none"` (sections carry the
39
+ * derived `layer` id or their own `layer` field).
40
+ * - `auto-refresh` — boolean; see Reactivity.
41
+ *
42
+ * ## CSS parts
43
+ * `root`, `heading`, `section`, `section-title`, `row`, `swatch`, `label`.
44
+ * Structural CSS only — theme via `::part()`.
45
+ *
46
+ * ## Accessibility
47
+ * Rows are real list items (`<ul>`/`<li>`); swatches are `aria-hidden`
48
+ * presentation, with the text labels carrying the meaning.
49
+ *
50
+ * Note: the `web-components` entry also registers a (controller-driven)
51
+ * `honua-legend` element. Both registrations are guarded with an if-missing
52
+ * check, so whichever entry is imported first owns the tag; import
53
+ * `@honua/sdk-js/controls` first to use this element.
54
+ */
55
+ import { HTMLElementBase } from "./element-utils.js";
56
+ import type { HonuaLegendEntry, HonuaLegendMap, HonuaLegendSection } from "./types.js";
57
+ /**
58
+ * Custom element implementing the legend. Registered as `honua-legend` by
59
+ * `defineHonuaControls` (which runs automatically on import of the controls
60
+ * entry when a `customElements` registry exists).
61
+ */
62
+ export declare class HonuaLegendElement extends HTMLElementBase {
63
+ #private;
64
+ static get observedAttributes(): string[];
65
+ /** The MapLibre map this legend reads from (derive mode and visibility coupling). */
66
+ get map(): HonuaLegendMap | undefined;
67
+ set map(map: HonuaLegendMap | undefined);
68
+ /** Wires the legend to a MapLibre map. Equivalent to setting `.map`. */
69
+ connect(map: HonuaLegendMap): void;
70
+ /**
71
+ * Explicit legend content. Accepts a flat {@link HonuaLegendEntry} array
72
+ * (one untitled section), {@link HonuaLegendSection} groups, or a mix;
73
+ * the getter returns the normalized sections. Invalid items are dropped.
74
+ */
75
+ get entries(): readonly HonuaLegendSection[];
76
+ set entries(value: readonly (HonuaLegendEntry | HonuaLegendSection)[]);
77
+ /** Style layer id used by derive mode. Reflects the `layer` attribute. */
78
+ get layer(): string | undefined;
79
+ set layer(value: string | undefined);
80
+ /** Hide sections whose source layer is hidden. Reflects `follow-layer-visibility`. */
81
+ get followLayerVisibility(): boolean;
82
+ set followLayerVisibility(value: boolean);
83
+ /** Refresh automatically on the map's `styledata` event. Reflects `auto-refresh`. */
84
+ get autoRefresh(): boolean;
85
+ set autoRefresh(value: boolean);
86
+ /**
87
+ * Why the last derive attempt failed (message of the underlying
88
+ * {@link HonuaLegendDeriveError}), or `undefined` while derive mode is
89
+ * succeeding or inactive.
90
+ */
91
+ get deriveError(): string | undefined;
92
+ /**
93
+ * The sections the legend renders: explicit sections followed by the
94
+ * derived section (when derive mode is active and succeeded).
95
+ */
96
+ get sections(): readonly HonuaLegendSection[];
97
+ /** Re-derives entries from the map (when in derive mode) and re-renders. */
98
+ refresh(): void;
99
+ attributeChangedCallback(name: string, _oldValue: string | null, newValue: string | null): void;
100
+ connectedCallback(): void;
101
+ disconnectedCallback(): void;
102
+ protected render(): void;
103
+ }
104
+ //# sourceMappingURL=legend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legend.d.ts","sourceRoot":"","sources":["../../../src/controls/legend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AAEH,OAAO,EACL,eAAe,EAKhB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,kBAAkB,EAA0B,MAAM,YAAY,CAAC;AAE/G;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,eAAe;;IACrD,WAAkB,kBAAkB,IAAI,MAAM,EAAE,CAE/C;IAUD,qFAAqF;IACrF,IAAW,GAAG,IAAI,cAAc,GAAG,SAAS,CAE3C;IAED,IAAW,GAAG,CAAC,GAAG,EAAE,cAAc,GAAG,SAAS,EAM7C;IAED,wEAAwE;IACjE,OAAO,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI;IAIzC;;;;OAIG;IACH,IAAW,OAAO,IAAI,SAAS,kBAAkB,EAAE,CAElD;IAED,IAAW,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,gBAAgB,GAAG,kBAAkB,CAAC,EAAE,EAG3E;IAED,0EAA0E;IAC1E,IAAW,KAAK,IAAI,MAAM,GAAG,SAAS,CAErC;IAED,IAAW,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAIzC;IAED,sFAAsF;IACtF,IAAW,qBAAqB,IAAI,OAAO,CAE1C;IAED,IAAW,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAE9C;IAED,qFAAqF;IACrF,IAAW,WAAW,IAAI,OAAO,CAEhC;IAED,IAAW,WAAW,CAAC,KAAK,EAAE,OAAO,EAEpC;IAED;;;;OAIG;IACH,IAAW,WAAW,IAAI,MAAM,GAAG,SAAS,CAE3C;IAED;;;OAGG;IACH,IAAW,QAAQ,IAAI,SAAS,kBAAkB,EAAE,CAQnD;IAED,4EAA4E;IACrE,OAAO,IAAI,IAAI;IAKf,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAkB/F,iBAAiB,IAAI,IAAI;IASzB,oBAAoB,IAAI,IAAI;IAyEnC,SAAS,CAAC,MAAM,IAAI,IAAI;CAgDzB"}
@@ -0,0 +1,381 @@
1
+ /**
2
+ * `<honua-legend>` — framework-free custom element rendering swatch+label
3
+ * rows from the same definitions the map uses (issue #274), so the map and
4
+ * its legend cannot drift apart.
5
+ *
6
+ * ## Input modes
7
+ * - **Explicit entries** — assign the `entries` property a flat
8
+ * {@link HonuaLegendEntry} array (rendered as one untitled section) and/or
9
+ * {@link HonuaLegendSection} groups with optional titles.
10
+ * - **Derive mode** (the headline) — set the `layer` attribute to a style
11
+ * layer id; the element parses the layer's categorical color paint
12
+ * expression into entries via {@link deriveLegendEntries}. See
13
+ * `legend-derive.ts` for the supported expression shapes (literal color,
14
+ * `match` on a `["get", <attr>]` input, simple-equality `case`, numeric
15
+ * `step`); anything else fails gracefully — the element keeps rendering
16
+ * its explicit sections and exposes the failure on `deriveError`.
17
+ * Both modes compose: explicit sections render first, then the derived
18
+ * section.
19
+ *
20
+ * ## Wiring
21
+ * - `element.map = map` (any MapLibre `Map`) or `element.connect(map)`;
22
+ * - declaratively via `for="<honua-map id>"` — same idiom as
23
+ * `<honua-basemap-switcher>` (resolves `.map` from the referenced element
24
+ * and listens for `honua-map-ready`).
25
+ *
26
+ * ## Reactivity
27
+ * - `refresh()` re-derives and re-renders on demand;
28
+ * - with the `auto-refresh` attribute, the element subscribes to the map's
29
+ * `styledata` event while connected and refreshes automatically (style
30
+ * edits, layers added later, visibility toggles).
31
+ *
32
+ * ## Attributes
33
+ * - `for` — id of the map-providing element.
34
+ * - `layer` — style layer id to derive entries from.
35
+ * - `layer-title` — optional title rendered above the derived section.
36
+ * - `heading` — optional heading rendered above the whole legend.
37
+ * - `follow-layer-visibility` — boolean; hide a section while its source
38
+ * layer's `visibility` layout property is `"none"` (sections carry the
39
+ * derived `layer` id or their own `layer` field).
40
+ * - `auto-refresh` — boolean; see Reactivity.
41
+ *
42
+ * ## CSS parts
43
+ * `root`, `heading`, `section`, `section-title`, `row`, `swatch`, `label`.
44
+ * Structural CSS only — theme via `::part()`.
45
+ *
46
+ * ## Accessibility
47
+ * Rows are real list items (`<ul>`/`<li>`); swatches are `aria-hidden`
48
+ * presentation, with the text labels carrying the meaning.
49
+ *
50
+ * Note: the `web-components` entry also registers a (controller-driven)
51
+ * `honua-legend` element. Both registrations are guarded with an if-missing
52
+ * check, so whichever entry is imported first owns the tag; import
53
+ * `@honua/sdk-js/controls` first to use this element.
54
+ */
55
+ import { HTMLElementBase, escapeAttribute, escapeHtml, listenForHonuaMapReady, resolveHonuaMapFromContext, } from "./element-utils.js";
56
+ import { HonuaLegendDeriveError, deriveLegendEntries } from "./legend-derive.js";
57
+ /**
58
+ * Custom element implementing the legend. Registered as `honua-legend` by
59
+ * `defineHonuaControls` (which runs automatically on import of the controls
60
+ * entry when a `customElements` registry exists).
61
+ */
62
+ export class HonuaLegendElement extends HTMLElementBase {
63
+ static get observedAttributes() {
64
+ return ["for", "layer", "layer-title", "heading", "follow-layer-visibility", "auto-refresh"];
65
+ }
66
+ #map;
67
+ #explicitSections = [];
68
+ #derivedEntries;
69
+ #deriveError;
70
+ #connected = false;
71
+ #disposeMapReadyListener;
72
+ #styledataListener;
73
+ /** The MapLibre map this legend reads from (derive mode and visibility coupling). */
74
+ get map() {
75
+ return this.#map;
76
+ }
77
+ set map(map) {
78
+ if (this.#map === map)
79
+ return;
80
+ this.#unsubscribeStyledata();
81
+ this.#map = map;
82
+ this.refresh();
83
+ this.#subscribeStyledata();
84
+ }
85
+ /** Wires the legend to a MapLibre map. Equivalent to setting `.map`. */
86
+ connect(map) {
87
+ this.map = map;
88
+ }
89
+ /**
90
+ * Explicit legend content. Accepts a flat {@link HonuaLegendEntry} array
91
+ * (one untitled section), {@link HonuaLegendSection} groups, or a mix;
92
+ * the getter returns the normalized sections. Invalid items are dropped.
93
+ */
94
+ get entries() {
95
+ return this.#explicitSections;
96
+ }
97
+ set entries(value) {
98
+ this.#explicitSections = normalizeSections(value);
99
+ this.render();
100
+ }
101
+ /** Style layer id used by derive mode. Reflects the `layer` attribute. */
102
+ get layer() {
103
+ return this.#attr("layer") ?? undefined;
104
+ }
105
+ set layer(value) {
106
+ if (typeof this.setAttribute !== "function")
107
+ return;
108
+ if (value === undefined)
109
+ this.removeAttribute?.("layer");
110
+ else
111
+ this.setAttribute("layer", value);
112
+ }
113
+ /** Hide sections whose source layer is hidden. Reflects `follow-layer-visibility`. */
114
+ get followLayerVisibility() {
115
+ return this.#hasAttr("follow-layer-visibility");
116
+ }
117
+ set followLayerVisibility(value) {
118
+ this.#setBooleanAttr("follow-layer-visibility", value);
119
+ }
120
+ /** Refresh automatically on the map's `styledata` event. Reflects `auto-refresh`. */
121
+ get autoRefresh() {
122
+ return this.#hasAttr("auto-refresh");
123
+ }
124
+ set autoRefresh(value) {
125
+ this.#setBooleanAttr("auto-refresh", value);
126
+ }
127
+ /**
128
+ * Why the last derive attempt failed (message of the underlying
129
+ * {@link HonuaLegendDeriveError}), or `undefined` while derive mode is
130
+ * succeeding or inactive.
131
+ */
132
+ get deriveError() {
133
+ return this.#deriveError;
134
+ }
135
+ /**
136
+ * The sections the legend renders: explicit sections followed by the
137
+ * derived section (when derive mode is active and succeeded).
138
+ */
139
+ get sections() {
140
+ const layerId = this.layer;
141
+ if (!this.#derivedEntries || !layerId)
142
+ return this.#explicitSections;
143
+ const title = this.#attr("layer-title");
144
+ return [
145
+ ...this.#explicitSections,
146
+ { ...(title !== null ? { title } : {}), layer: layerId, entries: this.#derivedEntries },
147
+ ];
148
+ }
149
+ /** Re-derives entries from the map (when in derive mode) and re-renders. */
150
+ refresh() {
151
+ this.#derive();
152
+ this.render();
153
+ }
154
+ attributeChangedCallback(name, _oldValue, newValue) {
155
+ if (name === "for") {
156
+ this.#resolveMapFromContext();
157
+ return;
158
+ }
159
+ if (name === "layer" || name === "layer-title") {
160
+ this.refresh();
161
+ return;
162
+ }
163
+ if (name === "auto-refresh") {
164
+ if (newValue === null)
165
+ this.#unsubscribeStyledata();
166
+ else
167
+ this.#subscribeStyledata();
168
+ return;
169
+ }
170
+ // "heading" / "follow-layer-visibility" only change the rendering.
171
+ this.render();
172
+ }
173
+ connectedCallback() {
174
+ this.#connected = true;
175
+ this.#ensureShadowRoot();
176
+ this.#listenForMapReady();
177
+ this.#resolveMapFromContext();
178
+ this.#subscribeStyledata();
179
+ this.refresh();
180
+ }
181
+ disconnectedCallback() {
182
+ this.#connected = false;
183
+ this.#disposeMapReadyListener?.();
184
+ this.#disposeMapReadyListener = undefined;
185
+ this.#unsubscribeStyledata();
186
+ }
187
+ // ── derive mode ────────────────────────────────────────────
188
+ #derive() {
189
+ this.#derivedEntries = undefined;
190
+ const layerId = this.layer;
191
+ const map = this.#map;
192
+ if (!layerId || !map) {
193
+ this.#deriveError = undefined;
194
+ return;
195
+ }
196
+ try {
197
+ this.#derivedEntries = deriveLegendEntries(map, layerId);
198
+ this.#deriveError = undefined;
199
+ }
200
+ catch (error) {
201
+ const message = error instanceof Error ? error.message : String(error);
202
+ // A missing layer is usually transient (style still loading), so it is
203
+ // not warned about; real shape mismatches are warned once per message.
204
+ const transient = error instanceof HonuaLegendDeriveError && error.code === "layer-not-found";
205
+ if (!transient && message !== this.#deriveError && typeof console !== "undefined") {
206
+ console.warn(`<honua-legend> could not derive entries: ${message}`);
207
+ }
208
+ this.#deriveError = message;
209
+ }
210
+ }
211
+ // ── map wiring (matches the `for` + ready-event idiom) ──────
212
+ #listenForMapReady() {
213
+ if (this.#disposeMapReadyListener)
214
+ return;
215
+ this.#disposeMapReadyListener = listenForHonuaMapReady(this, (map) => {
216
+ const forId = this.#attr("for");
217
+ if (!forId && this.map)
218
+ return;
219
+ this.map = map;
220
+ });
221
+ }
222
+ #resolveMapFromContext() {
223
+ if (this.map)
224
+ return;
225
+ const map = resolveHonuaMapFromContext(this);
226
+ if (map)
227
+ this.map = map;
228
+ }
229
+ #subscribeStyledata() {
230
+ if (this.#styledataListener || !this.#connected || !this.autoRefresh)
231
+ return;
232
+ const map = this.#map;
233
+ if (!map || typeof map.on !== "function")
234
+ return;
235
+ const listener = () => this.refresh();
236
+ map.on("styledata", listener);
237
+ this.#styledataListener = listener;
238
+ }
239
+ #unsubscribeStyledata() {
240
+ const listener = this.#styledataListener;
241
+ if (!listener)
242
+ return;
243
+ this.#styledataListener = undefined;
244
+ this.#map?.off?.("styledata", listener);
245
+ }
246
+ // ── rendering ──────────────────────────────────────────────
247
+ #ensureShadowRoot() {
248
+ if (!this.shadowRoot && typeof this.attachShadow === "function") {
249
+ this.attachShadow({ mode: "open" });
250
+ }
251
+ }
252
+ render() {
253
+ const root = this.shadowRoot;
254
+ if (!root)
255
+ return;
256
+ const heading = this.#attr("heading");
257
+ root.innerHTML = `
258
+ <style>${structuralStyles()}</style>
259
+ <div part="root" class="root">
260
+ ${heading ? `<p part="heading" class="heading">${escapeHtml(heading)}</p>` : ""}
261
+ ${this.sections.map((section) => this.#renderSection(section)).join("")}
262
+ </div>
263
+ `;
264
+ }
265
+ #renderSection(section) {
266
+ const hidden = this.#sectionHidden(section);
267
+ return `
268
+ <section part="section" class="section"${hidden ? " hidden" : ""}${section.layer ? ` data-layer="${escapeAttribute(section.layer)}"` : ""}>
269
+ ${section.title ? `<p part="section-title" class="section-title">${escapeHtml(section.title)}</p>` : ""}
270
+ <ul class="rows">
271
+ ${section.entries.map((entry) => renderRow(entry)).join("")}
272
+ </ul>
273
+ </section>
274
+ `;
275
+ }
276
+ #sectionHidden(section) {
277
+ if (!this.followLayerVisibility || !section.layer)
278
+ return false;
279
+ return this.#map?.getLayoutProperty?.(section.layer, "visibility") === "none";
280
+ }
281
+ // ── attribute helpers (safe under Node test stubs) ──────────
282
+ #attr(name) {
283
+ return typeof this.getAttribute === "function" ? this.getAttribute(name) : null;
284
+ }
285
+ #hasAttr(name) {
286
+ if (typeof this.hasAttribute === "function")
287
+ return this.hasAttribute(name);
288
+ return this.#attr(name) !== null;
289
+ }
290
+ #setBooleanAttr(name, value) {
291
+ if (typeof this.setAttribute !== "function")
292
+ return;
293
+ if (value)
294
+ this.setAttribute(name, "");
295
+ else
296
+ this.removeAttribute?.(name);
297
+ }
298
+ }
299
+ function normalizeSections(value) {
300
+ const sections = [];
301
+ let loose = [];
302
+ const flushLoose = () => {
303
+ if (loose.length > 0)
304
+ sections.push({ entries: loose });
305
+ loose = [];
306
+ };
307
+ for (const item of value ?? []) {
308
+ if (isSection(item)) {
309
+ flushLoose();
310
+ const entries = item.entries.filter(isEntry).map(normalizeEntry);
311
+ sections.push({
312
+ ...(typeof item.title === "string" ? { title: item.title } : {}),
313
+ ...(typeof item.layer === "string" ? { layer: item.layer } : {}),
314
+ entries,
315
+ });
316
+ }
317
+ else if (isEntry(item)) {
318
+ loose.push(normalizeEntry(item));
319
+ }
320
+ }
321
+ flushLoose();
322
+ return sections;
323
+ }
324
+ function isSection(item) {
325
+ return typeof item === "object" && item !== null && Array.isArray(item.entries);
326
+ }
327
+ function isEntry(item) {
328
+ if (typeof item !== "object" || item === null)
329
+ return false;
330
+ const entry = item;
331
+ if (typeof entry.label !== "string")
332
+ return false;
333
+ if (typeof entry.color === "string")
334
+ return true;
335
+ return (typeof entry.color === "object" &&
336
+ entry.color !== null &&
337
+ (entry.color.fill === undefined || typeof entry.color.fill === "string") &&
338
+ (entry.color.outline === undefined || typeof entry.color.outline === "string"));
339
+ }
340
+ function normalizeEntry(entry) {
341
+ const shape = isSwatchShape(entry.shape) ? entry.shape : "fill";
342
+ return { label: entry.label, color: entry.color, shape };
343
+ }
344
+ function isSwatchShape(value) {
345
+ return value === "fill" || value === "line" || value === "circle";
346
+ }
347
+ function renderRow(entry) {
348
+ const fill = typeof entry.color === "string" ? entry.color : entry.color.fill;
349
+ const outline = typeof entry.color === "object" && entry.color !== null ? entry.color.outline : undefined;
350
+ const shape = entry.shape ?? "fill";
351
+ const swatchStyle = [
352
+ ...(fill !== undefined ? [`--legend-fill:${fill}`] : []),
353
+ ...(outline !== undefined ? [`--legend-outline:${outline}`] : []),
354
+ ].join(";");
355
+ return `
356
+ <li part="row" class="row">
357
+ <span part="swatch" class="swatch swatch-${shape}" aria-hidden="true"${swatchStyle ? ` style="${escapeAttribute(swatchStyle)}"` : ""}></span>
358
+ <span part="label" class="label">${escapeHtml(entry.label)}</span>
359
+ </li>
360
+ `;
361
+ }
362
+ /** Structural-only styles; theme via `::part(root)`, `::part(row)`, `::part(swatch)`, ... */
363
+ function structuralStyles() {
364
+ return `
365
+ :host { display: block; }
366
+ .heading, .section-title { margin: 0; }
367
+ .section { margin: 0; }
368
+ .rows { list-style: none; margin: 0; padding: 0; }
369
+ .row { display: flex; align-items: center; gap: 0.5em; }
370
+ .swatch {
371
+ flex: none;
372
+ inline-size: 1em;
373
+ block-size: 1em;
374
+ box-sizing: border-box;
375
+ background: var(--legend-fill, transparent);
376
+ border: 1px solid var(--legend-outline, transparent);
377
+ }
378
+ .swatch-line { block-size: 3px; border: none; }
379
+ .swatch-circle { border-radius: 50%; }
380
+ `;
381
+ }
@@ -0,0 +1,80 @@
1
+ /**
2
+ * `<honua-swipe-control>` — framework-free custom element implementing the
3
+ * dual-map "swipe"/compare trick (issue #279, candidate third control for the
4
+ * native kit, #274).
5
+ *
6
+ * Two MapLibre maps are stacked (the host positions them; the control does
7
+ * not own layout) and the control clips the **top** map against the **bottom**
8
+ * map along a draggable divider via CSS `clip-path`. Dragging the divider (or
9
+ * using the keyboard) reveals more or less of each map and emits a `change`
10
+ * event with the divider position.
11
+ *
12
+ * Like the other controls, this element imports nothing from `maplibre-gl` or
13
+ * the SDK core — it drives any MapLibre `Map` through the duck-typed
14
+ * {@link HonuaSwipeMap} interface (it only needs `getContainer()`), so the
15
+ * `@honua/sdk-js/controls` entry stays bundle-independent. Node imports are
16
+ * safe; the element no-ops without a DOM.
17
+ *
18
+ * ## Wiring
19
+ * - `element.topMap = map` / `element.bottomMap = map`, or
20
+ * `element.connect(topMap, bottomMap)`. The top map is the one that gets
21
+ * clipped; the bottom map shows through the revealed region.
22
+ *
23
+ * ## Attributes
24
+ * - `position` — divider position as a percentage 0–100 (default 50).
25
+ * - `orientation` — `"vertical"` (default) or `"horizontal"`.
26
+ * - `label` — accessible name of the divider (default "Compare maps").
27
+ *
28
+ * ## Events
29
+ * - `change` — `CustomEvent<HonuaSwipeChangeDetail>` (bubbles, composed)
30
+ * whenever the divider position changes: drag, keyboard, or programmatic
31
+ * `position` assignment.
32
+ *
33
+ * ## CSS parts
34
+ * - `divider` — the full-length divider line.
35
+ * - `handle` — the draggable grip on the divider.
36
+ *
37
+ * ## Accessibility
38
+ * The divider is an ARIA slider (`role="slider"`, `aria-valuenow/min/max`,
39
+ * `aria-orientation`) with arrow-key control (ArrowLeft/ArrowRight or
40
+ * ArrowUp/ArrowDown step by 1, Home/End jump to 0/100, with Shift = 10).
41
+ *
42
+ * @module
43
+ */
44
+ import { HTMLElementBase } from "./element-utils.js";
45
+ import type { HonuaSwipeMap, HonuaSwipeOrientation } from "./types.js";
46
+ /**
47
+ * Custom element implementing the dual-map swipe/compare divider. Registered
48
+ * as `honua-swipe-control` by {@link defineHonuaSwipeControl} (which runs
49
+ * automatically on import when a `customElements` registry exists).
50
+ */
51
+ export declare class HonuaSwipeControlElement extends HTMLElementBase {
52
+ #private;
53
+ static get observedAttributes(): string[];
54
+ /** The clipped (overlay) map. Reapplies the clip when assigned. */
55
+ get topMap(): HonuaSwipeMap | undefined;
56
+ set topMap(map: HonuaSwipeMap | undefined);
57
+ /** The underlying map revealed by the clip. */
58
+ get bottomMap(): HonuaSwipeMap | undefined;
59
+ set bottomMap(map: HonuaSwipeMap | undefined);
60
+ /** Wires both maps at once. The first map is clipped against the second. */
61
+ connect(topMap: HonuaSwipeMap, bottomMap?: HonuaSwipeMap): void;
62
+ /** Divider position as a percentage 0–100. Reflects the `position` attribute. */
63
+ get position(): number;
64
+ set position(value: number);
65
+ /** Divider orientation. Reflects the `orientation` attribute. */
66
+ get orientation(): HonuaSwipeOrientation;
67
+ set orientation(value: HonuaSwipeOrientation);
68
+ attributeChangedCallback(name: string, _oldValue: string | null, newValue: string | null): void;
69
+ connectedCallback(): void;
70
+ disconnectedCallback(): void;
71
+ protected render(): void;
72
+ }
73
+ /**
74
+ * Registers the swipe control custom element (`honua-swipe-control`). Invoked
75
+ * automatically on import when a global `customElements` registry is present;
76
+ * call explicitly when using a scoped registry. Skips the registration when
77
+ * the tag is already defined.
78
+ */
79
+ export declare function defineHonuaSwipeControl(registry?: CustomElementRegistry): void;
80
+ //# sourceMappingURL=swipe-control.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swipe-control.d.ts","sourceRoot":"","sources":["../../../src/controls/swipe-control.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAEH,OAAO,EAAE,eAAe,EAA8B,MAAM,oBAAoB,CAAC;AACjF,OAAO,KAAK,EAA0B,aAAa,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAM/F;;;;GAIG;AACH,qBAAa,wBAAyB,SAAQ,eAAe;;IAC3D,WAAkB,kBAAkB,IAAI,MAAM,EAAE,CAE/C;IASD,mEAAmE;IACnE,IAAW,MAAM,IAAI,aAAa,GAAG,SAAS,CAE7C;IAED,IAAW,MAAM,CAAC,GAAG,EAAE,aAAa,GAAG,SAAS,EAI/C;IAED,+CAA+C;IAC/C,IAAW,SAAS,IAAI,aAAa,GAAG,SAAS,CAEhD;IAED,IAAW,SAAS,CAAC,GAAG,EAAE,aAAa,GAAG,SAAS,EAElD;IAED,4EAA4E;IACrE,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE,aAAa,GAAG,IAAI;IAKtE,iFAAiF;IACjF,IAAW,QAAQ,IAAI,MAAM,CAE5B;IAED,IAAW,QAAQ,CAAC,KAAK,EAAE,MAAM,EAEhC;IAED,iEAAiE;IACjE,IAAW,WAAW,IAAI,qBAAqB,CAE9C;IAED,IAAW,WAAW,CAAC,KAAK,EAAE,qBAAqB,EAGlD;IAEM,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAgB/F,iBAAiB,IAAI,IAAI;IAMzB,oBAAoB,IAAI,IAAI;IA4CnC,SAAS,CAAC,MAAM,IAAI,IAAI;CAoJzB;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,wBAA2B,GAAG,IAAI,CAKjF"}