@gisfun/maplibre-gl-components 0.15.0-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 (196) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1960 -0
  3. package/dist/ControlGrid-DN5md8hp.cjs +19636 -0
  4. package/dist/ControlGrid-rVNG7B9O.js +170422 -0
  5. package/dist/DuckDBConverter-B98M0DFs.cjs +23 -0
  6. package/dist/DuckDBConverter-RPq48-t0.js +434 -0
  7. package/dist/ShapefileConverter-AjbEjEyq.cjs +1 -0
  8. package/dist/ShapefileConverter-trvt8J3z.js +125 -0
  9. package/dist/decoder-CLokFc0V.js +8 -0
  10. package/dist/decoder-D9LU4bUo.cjs +1 -0
  11. package/dist/deflate-BA1jZeSX.js +10 -0
  12. package/dist/deflate-DEdCz12a.cjs +1 -0
  13. package/dist/geojson-BQSVgKFt.cjs +1 -0
  14. package/dist/geojson-BSUuDj5k.js +2551 -0
  15. package/dist/geotiff-De1w1lBy.cjs +8 -0
  16. package/dist/geotiff-o_Fq1Na4.js +3108 -0
  17. package/dist/index-8ZZtuDTp.js +705 -0
  18. package/dist/index-B-Nr9y7J.cjs +84 -0
  19. package/dist/index-B5NoFrpY.js +8892 -0
  20. package/dist/index-Bi1MMPUx.js +4163 -0
  21. package/dist/index-C9fk_HKR.js +167 -0
  22. package/dist/index-CBBRBJvR.cjs +274 -0
  23. package/dist/index-CZxPF1qt.js +4 -0
  24. package/dist/index-CiDPSJ9T.cjs +1 -0
  25. package/dist/index-CjM_nbxd.cjs +107 -0
  26. package/dist/index-DQXdX5y1.js +4666 -0
  27. package/dist/index-Dh1kpCb6.cjs +1 -0
  28. package/dist/index-IrsIiQNM.cjs +4 -0
  29. package/dist/index.cjs +3819 -0
  30. package/dist/index.mjs +19580 -0
  31. package/dist/jpeg-CF9OGQg_.js +533 -0
  32. package/dist/jpeg-JSQOxGHy.cjs +1 -0
  33. package/dist/lerc-7LlQoT6u.js +1032 -0
  34. package/dist/lerc-BIsodce9.cjs +1 -0
  35. package/dist/lzw-BZniWIYG.js +84 -0
  36. package/dist/lzw-BhML-BvT.cjs +1 -0
  37. package/dist/main-dist-Bymiy5aM.cjs +2 -0
  38. package/dist/main-dist-Cv8AKwrY.js +629 -0
  39. package/dist/maplibre-geoman.es-Bxdg-2EU.cjs +129 -0
  40. package/dist/maplibre-geoman.es-CFgM2ajb.js +22827 -0
  41. package/dist/maplibre-gl-components.css +1 -0
  42. package/dist/packbits-B9b7gX2c.cjs +1 -0
  43. package/dist/packbits-DWY5O-FG.js +24 -0
  44. package/dist/pako.esm-Bx5X36Wo.js +1074 -0
  45. package/dist/pako.esm-DZC2QrbJ.cjs +1 -0
  46. package/dist/raw-C3ARbSFo.cjs +1 -0
  47. package/dist/raw-DUslI1gr.js +9 -0
  48. package/dist/react.cjs +1 -0
  49. package/dist/react.mjs +1306 -0
  50. package/dist/types/index.d.ts +44 -0
  51. package/dist/types/index.d.ts.map +1 -0
  52. package/dist/types/lib/adapters/AddVectorAdapter.d.ts +66 -0
  53. package/dist/types/lib/adapters/AddVectorAdapter.d.ts.map +1 -0
  54. package/dist/types/lib/adapters/CogLayerAdapter.d.ts +126 -0
  55. package/dist/types/lib/adapters/CogLayerAdapter.d.ts.map +1 -0
  56. package/dist/types/lib/adapters/PMTilesLayerAdapter.d.ts +78 -0
  57. package/dist/types/lib/adapters/PMTilesLayerAdapter.d.ts.map +1 -0
  58. package/dist/types/lib/adapters/StacLayerAdapter.d.ts +71 -0
  59. package/dist/types/lib/adapters/StacLayerAdapter.d.ts.map +1 -0
  60. package/dist/types/lib/adapters/ZarrLayerAdapter.d.ts +72 -0
  61. package/dist/types/lib/adapters/ZarrLayerAdapter.d.ts.map +1 -0
  62. package/dist/types/lib/adapters/index.d.ts +7 -0
  63. package/dist/types/lib/adapters/index.d.ts.map +1 -0
  64. package/dist/types/lib/addControlGrid.d.ts +80 -0
  65. package/dist/types/lib/addControlGrid.d.ts.map +1 -0
  66. package/dist/types/lib/colormaps/diverging.d.ts +30 -0
  67. package/dist/types/lib/colormaps/diverging.d.ts.map +1 -0
  68. package/dist/types/lib/colormaps/index.d.ts +32 -0
  69. package/dist/types/lib/colormaps/index.d.ts.map +1 -0
  70. package/dist/types/lib/colormaps/misc.d.ts +38 -0
  71. package/dist/types/lib/colormaps/misc.d.ts.map +1 -0
  72. package/dist/types/lib/colormaps/sequential.d.ts +22 -0
  73. package/dist/types/lib/colormaps/sequential.d.ts.map +1 -0
  74. package/dist/types/lib/converters/DuckDBConverter.d.ts +112 -0
  75. package/dist/types/lib/converters/DuckDBConverter.d.ts.map +1 -0
  76. package/dist/types/lib/converters/ShapefileConverter.d.ts +56 -0
  77. package/dist/types/lib/converters/ShapefileConverter.d.ts.map +1 -0
  78. package/dist/types/lib/converters/index.d.ts +8 -0
  79. package/dist/types/lib/converters/index.d.ts.map +1 -0
  80. package/dist/types/lib/converters/types.d.ts +75 -0
  81. package/dist/types/lib/converters/types.d.ts.map +1 -0
  82. package/dist/types/lib/core/AddVector.d.ts +116 -0
  83. package/dist/types/lib/core/AddVector.d.ts.map +1 -0
  84. package/dist/types/lib/core/Basemap.d.ts +206 -0
  85. package/dist/types/lib/core/Basemap.d.ts.map +1 -0
  86. package/dist/types/lib/core/BasemapReact.d.ts +32 -0
  87. package/dist/types/lib/core/BasemapReact.d.ts.map +1 -0
  88. package/dist/types/lib/core/BookmarkControl.d.ts +180 -0
  89. package/dist/types/lib/core/BookmarkControl.d.ts.map +1 -0
  90. package/dist/types/lib/core/ChoroplethControl.d.ts +105 -0
  91. package/dist/types/lib/core/ChoroplethControl.d.ts.map +1 -0
  92. package/dist/types/lib/core/CogLayer.d.ts +139 -0
  93. package/dist/types/lib/core/CogLayer.d.ts.map +1 -0
  94. package/dist/types/lib/core/CogLayerReact.d.ts +32 -0
  95. package/dist/types/lib/core/CogLayerReact.d.ts.map +1 -0
  96. package/dist/types/lib/core/Colorbar.d.ts +133 -0
  97. package/dist/types/lib/core/Colorbar.d.ts.map +1 -0
  98. package/dist/types/lib/core/ColorbarGuiControl.d.ts +79 -0
  99. package/dist/types/lib/core/ColorbarGuiControl.d.ts.map +1 -0
  100. package/dist/types/lib/core/ColorbarReact.d.ts +34 -0
  101. package/dist/types/lib/core/ColorbarReact.d.ts.map +1 -0
  102. package/dist/types/lib/core/ControlGrid.d.ts +125 -0
  103. package/dist/types/lib/core/ControlGrid.d.ts.map +1 -0
  104. package/dist/types/lib/core/ControlGridReact.d.ts +32 -0
  105. package/dist/types/lib/core/ControlGridReact.d.ts.map +1 -0
  106. package/dist/types/lib/core/HtmlControl.d.ts +140 -0
  107. package/dist/types/lib/core/HtmlControl.d.ts.map +1 -0
  108. package/dist/types/lib/core/HtmlControlReact.d.ts +32 -0
  109. package/dist/types/lib/core/HtmlControlReact.d.ts.map +1 -0
  110. package/dist/types/lib/core/HtmlGuiControl.d.ts +68 -0
  111. package/dist/types/lib/core/HtmlGuiControl.d.ts.map +1 -0
  112. package/dist/types/lib/core/InspectControl.d.ts +202 -0
  113. package/dist/types/lib/core/InspectControl.d.ts.map +1 -0
  114. package/dist/types/lib/core/InspectControlReact.d.ts +32 -0
  115. package/dist/types/lib/core/InspectControlReact.d.ts.map +1 -0
  116. package/dist/types/lib/core/Legend.d.ts +142 -0
  117. package/dist/types/lib/core/Legend.d.ts.map +1 -0
  118. package/dist/types/lib/core/LegendGuiControl.d.ts +69 -0
  119. package/dist/types/lib/core/LegendGuiControl.d.ts.map +1 -0
  120. package/dist/types/lib/core/LegendReact.d.ts +34 -0
  121. package/dist/types/lib/core/LegendReact.d.ts.map +1 -0
  122. package/dist/types/lib/core/MeasureControl.d.ts +211 -0
  123. package/dist/types/lib/core/MeasureControl.d.ts.map +1 -0
  124. package/dist/types/lib/core/MinimapControl.d.ts +77 -0
  125. package/dist/types/lib/core/MinimapControl.d.ts.map +1 -0
  126. package/dist/types/lib/core/MinimapControlReact.d.ts +32 -0
  127. package/dist/types/lib/core/MinimapControlReact.d.ts.map +1 -0
  128. package/dist/types/lib/core/PMTilesLayer.d.ts +119 -0
  129. package/dist/types/lib/core/PMTilesLayer.d.ts.map +1 -0
  130. package/dist/types/lib/core/PrintControl.d.ts +226 -0
  131. package/dist/types/lib/core/PrintControl.d.ts.map +1 -0
  132. package/dist/types/lib/core/SearchControl.d.ts +172 -0
  133. package/dist/types/lib/core/SearchControl.d.ts.map +1 -0
  134. package/dist/types/lib/core/SearchControlReact.d.ts +32 -0
  135. package/dist/types/lib/core/SearchControlReact.d.ts.map +1 -0
  136. package/dist/types/lib/core/StacLayer.d.ts +107 -0
  137. package/dist/types/lib/core/StacLayer.d.ts.map +1 -0
  138. package/dist/types/lib/core/StacSearch.d.ts +109 -0
  139. package/dist/types/lib/core/StacSearch.d.ts.map +1 -0
  140. package/dist/types/lib/core/Terrain.d.ts +165 -0
  141. package/dist/types/lib/core/Terrain.d.ts.map +1 -0
  142. package/dist/types/lib/core/TerrainReact.d.ts +32 -0
  143. package/dist/types/lib/core/TerrainReact.d.ts.map +1 -0
  144. package/dist/types/lib/core/VectorDataset.d.ts +228 -0
  145. package/dist/types/lib/core/VectorDataset.d.ts.map +1 -0
  146. package/dist/types/lib/core/VectorDatasetReact.d.ts +31 -0
  147. package/dist/types/lib/core/VectorDatasetReact.d.ts.map +1 -0
  148. package/dist/types/lib/core/ViewStateControl.d.ts +205 -0
  149. package/dist/types/lib/core/ViewStateControl.d.ts.map +1 -0
  150. package/dist/types/lib/core/ViewStateControlReact.d.ts +32 -0
  151. package/dist/types/lib/core/ViewStateControlReact.d.ts.map +1 -0
  152. package/dist/types/lib/core/ZarrLayer.d.ts +110 -0
  153. package/dist/types/lib/core/ZarrLayer.d.ts.map +1 -0
  154. package/dist/types/lib/core/types.d.ts +2793 -0
  155. package/dist/types/lib/core/types.d.ts.map +1 -0
  156. package/dist/types/lib/hooks/index.d.ts +13 -0
  157. package/dist/types/lib/hooks/index.d.ts.map +1 -0
  158. package/dist/types/lib/hooks/useBasemap.d.ts +43 -0
  159. package/dist/types/lib/hooks/useBasemap.d.ts.map +1 -0
  160. package/dist/types/lib/hooks/useCogLayer.d.ts +44 -0
  161. package/dist/types/lib/hooks/useCogLayer.d.ts.map +1 -0
  162. package/dist/types/lib/hooks/useColorbar.d.ts +36 -0
  163. package/dist/types/lib/hooks/useColorbar.d.ts.map +1 -0
  164. package/dist/types/lib/hooks/useControlGrid.d.ts +41 -0
  165. package/dist/types/lib/hooks/useControlGrid.d.ts.map +1 -0
  166. package/dist/types/lib/hooks/useHtmlControl.d.ts +39 -0
  167. package/dist/types/lib/hooks/useHtmlControl.d.ts.map +1 -0
  168. package/dist/types/lib/hooks/useInspectControl.d.ts +49 -0
  169. package/dist/types/lib/hooks/useInspectControl.d.ts.map +1 -0
  170. package/dist/types/lib/hooks/useLegend.d.ts +41 -0
  171. package/dist/types/lib/hooks/useLegend.d.ts.map +1 -0
  172. package/dist/types/lib/hooks/useMinimapControl.d.ts +35 -0
  173. package/dist/types/lib/hooks/useMinimapControl.d.ts.map +1 -0
  174. package/dist/types/lib/hooks/useSearchControl.d.ts +43 -0
  175. package/dist/types/lib/hooks/useSearchControl.d.ts.map +1 -0
  176. package/dist/types/lib/hooks/useTerrain.d.ts +43 -0
  177. package/dist/types/lib/hooks/useTerrain.d.ts.map +1 -0
  178. package/dist/types/lib/hooks/useVectorDataset.d.ts +35 -0
  179. package/dist/types/lib/hooks/useVectorDataset.d.ts.map +1 -0
  180. package/dist/types/lib/hooks/useViewState.d.ts +43 -0
  181. package/dist/types/lib/hooks/useViewState.d.ts.map +1 -0
  182. package/dist/types/lib/utils/color.d.ts +47 -0
  183. package/dist/types/lib/utils/color.d.ts.map +1 -0
  184. package/dist/types/lib/utils/fileHelpers.d.ts +207 -0
  185. package/dist/types/lib/utils/fileHelpers.d.ts.map +1 -0
  186. package/dist/types/lib/utils/helpers.d.ts +48 -0
  187. package/dist/types/lib/utils/helpers.d.ts.map +1 -0
  188. package/dist/types/lib/utils/index.d.ts +4 -0
  189. package/dist/types/lib/utils/index.d.ts.map +1 -0
  190. package/dist/types/lib/utils/providers.d.ts +46 -0
  191. package/dist/types/lib/utils/providers.d.ts.map +1 -0
  192. package/dist/types/react.d.ts +15 -0
  193. package/dist/types/react.d.ts.map +1 -0
  194. package/dist/webimage-CBRffWZD.cjs +1 -0
  195. package/dist/webimage-ibSPOLHJ.js +19 -0
  196. package/package.json +137 -0
@@ -0,0 +1,172 @@
1
+ import { IControl, Map as MapLibreMap } from 'maplibre-gl';
2
+ import { SearchControlOptions, SearchControlState, SearchResult, SearchEvent, SearchEventHandler } from './types';
3
+ /**
4
+ * A collapsible search control for MapLibre GL maps.
5
+ *
6
+ * Provides place search functionality using Nominatim (or custom geocoder).
7
+ * Shows a search icon that expands to reveal a search input with autocomplete results.
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * const searchControl = new SearchControl({
12
+ * placeholder: 'Search for a place...',
13
+ * flyToZoom: 12,
14
+ * showMarker: true,
15
+ * });
16
+ * map.addControl(searchControl, 'top-right');
17
+ *
18
+ * // Listen for result selection
19
+ * searchControl.on('resultselect', (event) => {
20
+ * console.log('Selected:', event.result);
21
+ * });
22
+ * ```
23
+ */
24
+ export declare class SearchControl implements IControl {
25
+ private _container?;
26
+ private _inputEl?;
27
+ private _inputWrapper?;
28
+ private _resultsContainer?;
29
+ private _loadingEl?;
30
+ private _clearBtn?;
31
+ private _options;
32
+ private _state;
33
+ private _eventHandlers;
34
+ private _map?;
35
+ private _handleZoom?;
36
+ private _zoomVisible;
37
+ private _marker?;
38
+ private _debounceTimer?;
39
+ /**
40
+ * Creates a new SearchControl instance.
41
+ *
42
+ * @param options - Configuration options for the control.
43
+ */
44
+ constructor(options?: SearchControlOptions);
45
+ /**
46
+ * Called when the control is added to the map.
47
+ *
48
+ * @param map - The MapLibre GL map instance.
49
+ * @returns The control's container element.
50
+ */
51
+ onAdd(map: MapLibreMap): HTMLElement;
52
+ /**
53
+ * Called when the control is removed from the map.
54
+ */
55
+ onRemove(): void;
56
+ /**
57
+ * Shows the control.
58
+ */
59
+ show(): void;
60
+ /**
61
+ * Hides the control.
62
+ */
63
+ hide(): void;
64
+ /**
65
+ * Expands the search control to show the input.
66
+ */
67
+ expand(): void;
68
+ /**
69
+ * Collapses the search control to icon only.
70
+ */
71
+ collapse(): void;
72
+ /**
73
+ * Toggles the collapsed state.
74
+ */
75
+ toggle(): void;
76
+ /**
77
+ * Performs a search with the given query.
78
+ *
79
+ * @param query - The search query string.
80
+ */
81
+ search(query: string): Promise<void>;
82
+ /**
83
+ * Selects a search result and flies to its location.
84
+ *
85
+ * @param result - The search result to select.
86
+ */
87
+ selectResult(result: SearchResult): void;
88
+ /**
89
+ * Clears the search query and results.
90
+ */
91
+ clear(): void;
92
+ /**
93
+ * Gets the current state.
94
+ *
95
+ * @returns The current control state.
96
+ */
97
+ getState(): SearchControlState;
98
+ /**
99
+ * Updates control options.
100
+ *
101
+ * @param options - Partial options to update.
102
+ */
103
+ update(options: Partial<SearchControlOptions>): void;
104
+ /**
105
+ * Registers an event handler.
106
+ *
107
+ * @param event - The event type to listen for.
108
+ * @param handler - The callback function.
109
+ */
110
+ on(event: SearchEvent, handler: SearchEventHandler): void;
111
+ /**
112
+ * Removes an event handler.
113
+ *
114
+ * @param event - The event type.
115
+ * @param handler - The callback function to remove.
116
+ */
117
+ off(event: SearchEvent, handler: SearchEventHandler): void;
118
+ /**
119
+ * Emits an event to all registered handlers.
120
+ */
121
+ private _emit;
122
+ /**
123
+ * Performs a search using Nominatim geocoding service.
124
+ */
125
+ private _nominatimSearch;
126
+ /**
127
+ * Checks if the current zoom level is within the visibility range.
128
+ */
129
+ private _checkZoomVisibility;
130
+ /**
131
+ * Updates the display state based on visibility and zoom level.
132
+ */
133
+ private _updateDisplayState;
134
+ /**
135
+ * Adds a marker at the result location.
136
+ */
137
+ private _addMarker;
138
+ /**
139
+ * Removes the current marker.
140
+ */
141
+ private _removeMarker;
142
+ /**
143
+ * Updates only the results section without rebuilding the entire DOM.
144
+ * This prevents input focus loss during search.
145
+ */
146
+ private _renderResultsOnly;
147
+ /**
148
+ * Updates only the loading/clear button state without full DOM rebuild.
149
+ */
150
+ private _updateLoadingState;
151
+ /**
152
+ * Creates the main container element.
153
+ */
154
+ private _createContainer;
155
+ /**
156
+ * Handles input change with debouncing.
157
+ */
158
+ private _handleInput;
159
+ /**
160
+ * Renders the control content.
161
+ */
162
+ private _render;
163
+ /**
164
+ * Renders the collapsed state (search icon only).
165
+ */
166
+ private _renderCollapsedState;
167
+ /**
168
+ * Renders the expanded state (search input and results).
169
+ */
170
+ private _renderExpandedState;
171
+ }
172
+ //# sourceMappingURL=SearchControl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchControl.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/SearchControl.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAC9B,OAAO,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,WAAW,EAAU,MAAM,aAAa,CAAC;AACxE,OAAO,KAAK,EACV,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,kBAAkB,EACnB,MAAM,SAAS,CAAC;AAqCjB;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,aAAc,YAAW,QAAQ;IAC5C,OAAO,CAAC,UAAU,CAAC,CAAc;IACjC,OAAO,CAAC,QAAQ,CAAC,CAAmB;IACpC,OAAO,CAAC,aAAa,CAAC,CAAc;IACpC,OAAO,CAAC,iBAAiB,CAAC,CAAc;IACxC,OAAO,CAAC,UAAU,CAAC,CAAc;IACjC,OAAO,CAAC,SAAS,CAAC,CAAoB;IACtC,OAAO,CAAC,QAAQ,CAEd;IACF,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,cAAc,CAAwD;IAC9E,OAAO,CAAC,IAAI,CAAC,CAAc;IAC3B,OAAO,CAAC,WAAW,CAAC,CAAa;IACjC,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,cAAc,CAAC,CAAgC;IAEvD;;;;OAIG;gBACS,OAAO,CAAC,EAAE,oBAAoB;IAa1C;;;;;OAKG;IACH,KAAK,CAAC,GAAG,EAAE,WAAW,GAAG,WAAW;IAepC;;OAEG;IACH,QAAQ,IAAI,IAAI;IAoBhB;;OAEG;IACH,IAAI,IAAI,IAAI;IAQZ;;OAEG;IACH,IAAI,IAAI,IAAI;IAQZ;;OAEG;IACH,MAAM,IAAI,IAAI;IAUd;;OAEG;IACH,QAAQ,IAAI,IAAI;IAShB;;OAEG;IACH,MAAM,IAAI,IAAI;IAQd;;;;OAIG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoD1C;;;;OAIG;IACH,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAuCxC;;OAEG;IACH,KAAK,IAAI,IAAI;IAmBb;;;;OAIG;IACH,QAAQ,IAAI,kBAAkB;IAI9B;;;;OAIG;IACH,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,IAAI;IASpD;;;;;OAKG;IACH,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAOzD;;;;;OAKG;IACH,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAI1D;;OAEG;IACH,OAAO,CAAC,KAAK;IAQb;;OAEG;YACW,gBAAgB;IAkD9B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAa5B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAM3B;;OAEG;IACH,OAAO,CAAC,UAAU;IAwBlB;;OAEG;IACH,OAAO,CAAC,aAAa;IAOrB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IA8G1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA6E3B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAcxB;;OAEG;IACH,OAAO,CAAC,YAAY,CAWlB;IAEF;;OAEG;IACH,OAAO,CAAC,OAAO;IA+Cf;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA8B7B;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAoO7B"}
@@ -0,0 +1,32 @@
1
+ import { SearchControlReactProps } from './types';
2
+ /**
3
+ * React wrapper component for SearchControl.
4
+ *
5
+ * @example
6
+ * ```tsx
7
+ * import { SearchControlReact } from 'maplibre-gl-components/react';
8
+ *
9
+ * function MyMap() {
10
+ * const [map, setMap] = useState<Map | null>(null);
11
+ *
12
+ * return (
13
+ * <>
14
+ * <div ref={mapContainer} />
15
+ * {map && (
16
+ * <SearchControlReact
17
+ * map={map}
18
+ * position="top-right"
19
+ * placeholder="Search for a place..."
20
+ * onResultSelect={(result) => console.log('Selected:', result)}
21
+ * />
22
+ * )}
23
+ * </>
24
+ * );
25
+ * }
26
+ * ```
27
+ *
28
+ * @param props - Component props including map instance and control options.
29
+ * @returns null - This component renders nothing directly.
30
+ */
31
+ export declare function SearchControlReact({ map, onResultSelect, onStateChange, position, ...options }: SearchControlReactProps): null;
32
+ //# sourceMappingURL=SearchControlReact.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchControlReact.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/SearchControlReact.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,uBAAuB,EAGxB,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,GAAG,EACH,cAAc,EACd,aAAa,EACb,QAAsB,EACtB,GAAG,OAAO,EACX,EAAE,uBAAuB,GAAG,IAAI,CA6FhC"}
@@ -0,0 +1,107 @@
1
+ import { IControl, Map as MapLibreMap } from 'maplibre-gl';
2
+ import { StacLayerControlOptions, StacLayerControlState, StacLayerEvent, StacLayerEventHandler, ControlPosition } from './types';
3
+ /**
4
+ * A control for loading and displaying COG layers from STAC items.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * const stacControl = new StacLayerControl({
9
+ * defaultUrl: 'https://example.com/stac-item.json',
10
+ * loadDefaultUrl: true,
11
+ * });
12
+ * map.addControl(stacControl, 'top-right');
13
+ * ```
14
+ */
15
+ export declare class StacLayerControl implements IControl {
16
+ private _container?;
17
+ private _button?;
18
+ private _panel?;
19
+ private _colormapPreview?;
20
+ private _options;
21
+ private _state;
22
+ private _eventHandlers;
23
+ private _map?;
24
+ private _handleZoom?;
25
+ private _zoomVisible;
26
+ private _deckOverlay?;
27
+ private _cogLayers;
28
+ private _cogLayerPropsMap;
29
+ private _layerCounter;
30
+ private _activePopup?;
31
+ private _mapClickHandler?;
32
+ constructor(options?: StacLayerControlOptions);
33
+ onAdd(map: MapLibreMap): HTMLElement;
34
+ onRemove(): void;
35
+ getDefaultPosition(): ControlPosition;
36
+ expand(): void;
37
+ collapse(): void;
38
+ toggle(): void;
39
+ show(): void;
40
+ hide(): void;
41
+ getState(): StacLayerControlState;
42
+ update(options: Partial<StacLayerControlOptions>): void;
43
+ on(event: StacLayerEvent, handler: StacLayerEventHandler): void;
44
+ off(event: StacLayerEvent, handler: StacLayerEventHandler): void;
45
+ loadStacUrl(url: string): Promise<void>;
46
+ /**
47
+ * Remove a specific layer by ID, or all layers if no ID is provided.
48
+ */
49
+ removeLayer(id?: string): void;
50
+ /**
51
+ * Get all layer IDs currently managed by this control.
52
+ */
53
+ getLayerIds(): string[];
54
+ /**
55
+ * Get the opacity of a specific layer.
56
+ */
57
+ getLayerOpacity(layerId: string): number | null;
58
+ /**
59
+ * Set the opacity of a specific layer.
60
+ */
61
+ setLayerOpacity(layerId: string, opacity: number): void;
62
+ /**
63
+ * Get the visibility of a specific layer (opacity > 0 = visible).
64
+ */
65
+ getLayerVisibility(layerId: string): boolean;
66
+ /**
67
+ * Set the visibility of a specific layer via opacity.
68
+ */
69
+ setLayerVisibility(layerId: string, visible: boolean, storedOpacity?: number): void;
70
+ private _emit;
71
+ private _checkZoomVisibility;
72
+ private _updateDisplayState;
73
+ private _createContainer;
74
+ private _render;
75
+ private _renderCollapsed;
76
+ private _renderExpanded;
77
+ private _createFormGroup;
78
+ private _appendStatus;
79
+ /**
80
+ * Auto-set rescale values based on the selected asset's data type.
81
+ */
82
+ private _autoSetRescale;
83
+ private _updateColormapPreview;
84
+ private _fetchStacItem;
85
+ private _ensureOverlay;
86
+ private _setupClickHandler;
87
+ private _addLayer;
88
+ private _updateOpacity;
89
+ private _updateRescaleAndColormap;
90
+ private _removeLayer;
91
+ private _removeAllLayers;
92
+ /**
93
+ * Patch COGLayer to handle grayscale and float GeoTIFFs with colormap support.
94
+ * The upstream library has limited support for these formats.
95
+ */
96
+ private _patchCOGLayer;
97
+ /**
98
+ * Register common projections that may not be included by default.
99
+ */
100
+ private _registerCommonProjections;
101
+ /**
102
+ * Build a geoKeysParser function using geotiff-geokeys-to-proj4.
103
+ * This avoids CORS issues when looking up EPSG codes from epsg.io.
104
+ */
105
+ private _buildGeoKeysParser;
106
+ }
107
+ //# sourceMappingURL=StacLayer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StacLayer.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/StacLayer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,109 @@
1
+ import { IControl, Map as MapLibreMap } from 'maplibre-gl';
2
+ import { StacSearchControlOptions, StacSearchControlState, StacSearchEvent, StacSearchEventHandler, StacSearchItem, ControlPosition } from './types';
3
+ /**
4
+ * A control for searching and visualizing STAC items from STAC API catalogs.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * const stacSearch = new StacSearchControl({
9
+ * catalogs: [
10
+ * { name: "Earth Search", url: "https://earth-search.aws.element84.com/v1" },
11
+ * ],
12
+ * });
13
+ * map.addControl(stacSearch, 'top-right');
14
+ * ```
15
+ */
16
+ export declare class StacSearchControl implements IControl {
17
+ private _container?;
18
+ private _button?;
19
+ private _panel?;
20
+ private _options;
21
+ private _state;
22
+ private _eventHandlers;
23
+ private _map?;
24
+ private _handleZoom?;
25
+ private _zoomVisible;
26
+ private _footprintSourceId;
27
+ private _footprintLayerId;
28
+ private _footprintOutlineLayerId;
29
+ private _footprintHighlightLayerId;
30
+ private _footprintHighlightOutlineLayerId;
31
+ private _showCustomUrlInput;
32
+ private _deckOverlay?;
33
+ private _cogLayers;
34
+ private _layerCounter;
35
+ constructor(options?: StacSearchControlOptions);
36
+ onAdd(map: MapLibreMap): HTMLElement;
37
+ onRemove(): void;
38
+ getDefaultPosition(): ControlPosition;
39
+ expand(): void;
40
+ collapse(): void;
41
+ toggle(): void;
42
+ show(): void;
43
+ hide(): void;
44
+ getState(): StacSearchControlState;
45
+ update(options: Partial<StacSearchControlOptions>): void;
46
+ on(event: StacSearchEvent, handler: StacSearchEventHandler): void;
47
+ off(event: StacSearchEvent, handler: StacSearchEventHandler): void;
48
+ /**
49
+ * Get the currently selected STAC item.
50
+ */
51
+ getSelectedItem(): StacSearchItem | null;
52
+ /**
53
+ * Get all search result items.
54
+ */
55
+ getItems(): StacSearchItem[];
56
+ private _emit;
57
+ private _checkZoomVisibility;
58
+ private _updateDisplayState;
59
+ private _createContainer;
60
+ private _render;
61
+ private _renderCollapsed;
62
+ private _renderExpanded;
63
+ private _createFormGroup;
64
+ private _appendStatus;
65
+ private _fetchCollections;
66
+ private _searchItems;
67
+ private _addFootprints;
68
+ private _removeFootprints;
69
+ /**
70
+ * Update available assets based on the selected item.
71
+ */
72
+ private _updateAvailableAssets;
73
+ /**
74
+ * Find default RGB band assignments based on available assets.
75
+ */
76
+ private _findDefaultRgbBands;
77
+ /**
78
+ * Update the footprint highlight to show the selected item.
79
+ */
80
+ private _updateFootprintHighlight;
81
+ /**
82
+ * Check if a catalog URL is for Microsoft Planetary Computer.
83
+ */
84
+ private _isPlanetaryComputer;
85
+ /**
86
+ * Get default assets for a collection (fallback when no user selection).
87
+ */
88
+ private _getDefaultAssets;
89
+ /**
90
+ * Get default rescale for a collection (fallback when no user selection).
91
+ */
92
+ private _getDefaultRescale;
93
+ private _displayItem;
94
+ /**
95
+ * Display a Planetary Computer item using their TiTiler endpoint.
96
+ * PC requires signed URLs, so we use their tile service instead of direct COG access.
97
+ */
98
+ private _displayPlanetaryComputerItem;
99
+ private _ensureOverlay;
100
+ /**
101
+ * Convert S3 URLs to HTTPS URLs for browser access.
102
+ * Handles common S3 URL patterns from various providers.
103
+ */
104
+ private _convertS3ToHttps;
105
+ private _addCogLayer;
106
+ private _removeLayer;
107
+ private _removeAllLayers;
108
+ }
109
+ //# sourceMappingURL=StacSearch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StacSearch.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/StacSearch.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAC9B,OAAO,2BAA2B,CAAC;AACnC,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,GAAG,IAAI,WAAW,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,KAAK,EACV,wBAAwB,EACxB,sBAAsB,EACtB,eAAe,EACf,sBAAsB,EAGtB,cAAc,EACd,eAAe,EAChB,MAAM,SAAS,CAAC;AA+EjB;;;;;;;;;;;;GAYG;AACH,qBAAa,iBAAkB,YAAW,QAAQ;IAChD,OAAO,CAAC,UAAU,CAAC,CAAc;IAEjC,OAAO,CAAC,OAAO,CAAC,CAAoB;IAEpC,OAAO,CAAC,MAAM,CAAC,CAAc;IAC7B,OAAO,CAAC,QAAQ,CAAqC;IACrD,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,cAAc,CACV;IACZ,OAAO,CAAC,IAAI,CAAC,CAAc;IAC3B,OAAO,CAAC,WAAW,CAAC,CAAa;IACjC,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,kBAAkB,CAAoC;IAC9D,OAAO,CAAC,iBAAiB,CAA0C;IACnE,OAAO,CAAC,wBAAwB,CAA4C;IAC5E,OAAO,CAAC,0BAA0B,CACG;IACrC,OAAO,CAAC,iCAAiC,CACI;IAC7C,OAAO,CAAC,mBAAmB,CAAkB;IAE7C,OAAO,CAAC,YAAY,CAAC,CAAM;IAE3B,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,aAAa,CAAK;gBAEd,OAAO,CAAC,EAAE,wBAAwB;IA8B9C,KAAK,CAAC,GAAG,EAAE,WAAW,GAAG,WAAW;IAYpC,QAAQ,IAAI,IAAI;IA2BhB,kBAAkB,IAAI,eAAe;IAIrC,MAAM,IAAI,IAAI;IAQd,QAAQ,IAAI,IAAI;IAQhB,MAAM,IAAI,IAAI;IAKd,IAAI,IAAI,IAAI;IAQZ,IAAI,IAAI,IAAI;IAQZ,QAAQ,IAAI,sBAAsB;IAIlC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,wBAAwB,CAAC,GAAG,IAAI;IAcxD,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,sBAAsB,GAAG,IAAI;IAOjE,GAAG,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,sBAAsB,GAAG,IAAI;IAIlE;;OAEG;IACH,eAAe,IAAI,cAAc,GAAG,IAAI;IAIxC;;OAEG;IACH,QAAQ,IAAI,cAAc,EAAE;IAI5B,OAAO,CAAC,KAAK;IAiBb,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,OAAO;IA0Bf,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,eAAe;IAyjBvB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,aAAa;YAWP,iBAAiB;YAsDjB,YAAY;IAmH1B,OAAO,CAAC,cAAc;IAiGtB,OAAO,CAAC,iBAAiB;IAoBzB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAyH9B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAmC5B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAkBjC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAQ5B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAazB;;OAEG;IACH,OAAO,CAAC,kBAAkB;YAiBZ,YAAY;IAuH1B;;;OAGG;YACW,6BAA6B;YA6F7B,cAAc;IAc5B;;;OAGG;IACH,OAAO,CAAC,iBAAiB;YA2BX,YAAY;IA0B1B,OAAO,CAAC,YAAY;IAoCpB,OAAO,CAAC,gBAAgB;CASzB"}
@@ -0,0 +1,165 @@
1
+ import { IControl, Map as MapLibreMap } from 'maplibre-gl';
2
+ import { TerrainControlOptions, TerrainControlState, TerrainEvent, TerrainEventHandler } from './types';
3
+ /**
4
+ * A terrain toggle control for MapLibre GL maps.
5
+ *
6
+ * Enables/disables 3D terrain rendering using AWS Terrarium elevation tiles.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * const terrain = new TerrainControl({
11
+ * exaggeration: 1.5,
12
+ * hillshade: true,
13
+ * });
14
+ * map.addControl(terrain, 'top-right');
15
+ *
16
+ * terrain.on('terrainchange', (event) => {
17
+ * console.log('Terrain enabled:', event.state.enabled);
18
+ * });
19
+ * ```
20
+ */
21
+ export declare class TerrainControl implements IControl {
22
+ private _container?;
23
+ private _button?;
24
+ private _options;
25
+ private _state;
26
+ private _eventHandlers;
27
+ private _map?;
28
+ private _handleZoom?;
29
+ private _handleStyleLoad?;
30
+ private _zoomVisible;
31
+ /**
32
+ * Creates a new TerrainControl instance.
33
+ *
34
+ * @param options - Configuration options for the terrain control.
35
+ */
36
+ constructor(options?: TerrainControlOptions);
37
+ /**
38
+ * Called when the control is added to the map.
39
+ *
40
+ * @param map - The MapLibre GL map instance.
41
+ * @returns The control's container element.
42
+ */
43
+ onAdd(map: MapLibreMap): HTMLElement;
44
+ /**
45
+ * Called when the control is removed from the map.
46
+ */
47
+ onRemove(): void;
48
+ /**
49
+ * Shows the control.
50
+ */
51
+ show(): void;
52
+ /**
53
+ * Hides the control.
54
+ */
55
+ hide(): void;
56
+ /**
57
+ * Enables terrain rendering.
58
+ */
59
+ enable(): void;
60
+ /**
61
+ * Disables terrain rendering.
62
+ */
63
+ disable(): void;
64
+ /**
65
+ * Toggles terrain on/off.
66
+ */
67
+ toggle(): void;
68
+ /**
69
+ * Checks if terrain is currently enabled.
70
+ *
71
+ * @returns True if terrain is enabled.
72
+ */
73
+ isEnabled(): boolean;
74
+ /**
75
+ * Sets the terrain exaggeration factor.
76
+ *
77
+ * @param value - Exaggeration value (typically 0.1 to 10.0).
78
+ */
79
+ setExaggeration(value: number): void;
80
+ /**
81
+ * Gets the current exaggeration value.
82
+ *
83
+ * @returns The current exaggeration factor.
84
+ */
85
+ getExaggeration(): number;
86
+ /**
87
+ * Enables the hillshade layer.
88
+ */
89
+ enableHillshade(): void;
90
+ /**
91
+ * Disables the hillshade layer.
92
+ */
93
+ disableHillshade(): void;
94
+ /**
95
+ * Toggles the hillshade layer.
96
+ */
97
+ toggleHillshade(): void;
98
+ /**
99
+ * Updates control options and re-renders.
100
+ *
101
+ * @param options - Partial options to update.
102
+ */
103
+ update(options: Partial<TerrainControlOptions>): void;
104
+ /**
105
+ * Gets the current state.
106
+ *
107
+ * @returns The current terrain control state.
108
+ */
109
+ getState(): TerrainControlState;
110
+ /**
111
+ * Registers an event handler.
112
+ *
113
+ * @param event - The event type to listen for.
114
+ * @param handler - The callback function.
115
+ */
116
+ on(event: TerrainEvent, handler: TerrainEventHandler): void;
117
+ /**
118
+ * Removes an event handler.
119
+ *
120
+ * @param event - The event type.
121
+ * @param handler - The callback function to remove.
122
+ */
123
+ off(event: TerrainEvent, handler: TerrainEventHandler): void;
124
+ /**
125
+ * Emits an event to all registered handlers.
126
+ *
127
+ * @param event - The event type to emit.
128
+ */
129
+ private _emit;
130
+ /**
131
+ * Sets up the terrain source and enables terrain rendering.
132
+ */
133
+ private _setupTerrain;
134
+ /**
135
+ * Removes terrain and cleans up sources/layers.
136
+ */
137
+ private _removeTerrain;
138
+ /**
139
+ * Adds the hillshade layer for better terrain visualization.
140
+ */
141
+ private _addHillshadeLayer;
142
+ /**
143
+ * Removes the hillshade layer.
144
+ */
145
+ private _removeHillshadeLayer;
146
+ /**
147
+ * Checks if the current zoom level is within the visibility range.
148
+ */
149
+ private _checkZoomVisibility;
150
+ /**
151
+ * Updates the display state based on visibility and zoom level.
152
+ */
153
+ private _updateDisplayState;
154
+ /**
155
+ * Creates the main container element.
156
+ *
157
+ * @returns The container element.
158
+ */
159
+ private _createContainer;
160
+ /**
161
+ * Renders/updates the control appearance based on current state.
162
+ */
163
+ private _render;
164
+ }
165
+ //# sourceMappingURL=Terrain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Terrain.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/Terrain.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAC9B,OAAO,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,WAAW,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,KAAK,EACV,qBAAqB,EACrB,mBAAmB,EACnB,YAAY,EACZ,mBAAmB,EACpB,MAAM,SAAS,CAAC;AA8CjB;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,cAAe,YAAW,QAAQ;IAC7C,OAAO,CAAC,UAAU,CAAC,CAAc;IACjC,OAAO,CAAC,OAAO,CAAC,CAAoB;IACpC,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,cAAc,CACV;IACZ,OAAO,CAAC,IAAI,CAAC,CAAc;IAC3B,OAAO,CAAC,WAAW,CAAC,CAAa;IACjC,OAAO,CAAC,gBAAgB,CAAC,CAAa;IACtC,OAAO,CAAC,YAAY,CAAiB;IAErC;;;;OAIG;gBACS,OAAO,CAAC,EAAE,qBAAqB;IAU3C;;;;;OAKG;IACH,KAAK,CAAC,GAAG,EAAE,WAAW,GAAG,WAAW;IAkCpC;;OAEG;IACH,QAAQ,IAAI,IAAI;IAqBhB;;OAEG;IACH,IAAI,IAAI,IAAI;IAQZ;;OAEG;IACH,IAAI,IAAI,IAAI;IAQZ;;OAEG;IACH,MAAM,IAAI,IAAI;IASd;;OAEG;IACH,OAAO,IAAI,IAAI;IASf;;OAEG;IACH,MAAM,IAAI,IAAI;IAQd;;;;OAIG;IACH,SAAS,IAAI,OAAO;IAIpB;;;;OAIG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAepC;;;;OAIG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,eAAe,IAAI,IAAI;IAWvB;;OAEG;IACH,gBAAgB,IAAI,IAAI;IASxB;;OAEG;IACH,eAAe,IAAI,IAAI;IAQvB;;;;OAIG;IACH,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,qBAAqB,CAAC,GAAG,IAAI;IA6BrD;;;;OAIG;IACH,QAAQ,IAAI,mBAAmB;IAI/B;;;;;OAKG;IACH,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAO3D;;;;;OAKG;IACH,GAAG,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAI5D;;;;OAIG;IACH,OAAO,CAAC,KAAK;IAQb;;OAEG;IACH,OAAO,CAAC,aAAa;IAiCrB;;OAEG;IACH,OAAO,CAAC,cAAc;IAqBtB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA8B1B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAY7B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAa5B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAM3B;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAqCxB;;OAEG;IACH,OAAO,CAAC,OAAO;CAgBhB"}
@@ -0,0 +1,32 @@
1
+ import { TerrainControlReactProps } from './types';
2
+ /**
3
+ * React wrapper component for TerrainControl.
4
+ *
5
+ * @example
6
+ * ```tsx
7
+ * import { TerrainReact } from 'maplibre-gl-components/react';
8
+ *
9
+ * function MyMap() {
10
+ * const [map, setMap] = useState<Map | null>(null);
11
+ *
12
+ * return (
13
+ * <>
14
+ * <div ref={mapContainer} />
15
+ * {map && (
16
+ * <TerrainReact
17
+ * map={map}
18
+ * exaggeration={1.5}
19
+ * hillshade={true}
20
+ * onTerrainChange={(enabled) => console.log('Terrain:', enabled)}
21
+ * />
22
+ * )}
23
+ * </>
24
+ * );
25
+ * }
26
+ * ```
27
+ *
28
+ * @param props - Component props including map instance and terrain options.
29
+ * @returns null - This component renders nothing directly.
30
+ */
31
+ export declare function TerrainReact({ map, onTerrainChange, onStateChange, position, ...options }: TerrainControlReactProps): null;
32
+ //# sourceMappingURL=TerrainReact.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TerrainReact.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/TerrainReact.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAuB,MAAM,SAAS,CAAC;AAE7E;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,YAAY,CAAC,EAC3B,GAAG,EACH,eAAe,EACf,aAAa,EACb,QAAsB,EACtB,GAAG,OAAO,EACX,EAAE,wBAAwB,GAAG,IAAI,CA6DjC"}