@ogc-maps/storybook-components 0.9.0 → 0.11.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 (85) hide show
  1. package/dist/{CollapsibleControl-CGRNPpCw.js → CollapsibleControl-qo9daiD8.js} +5 -5
  2. package/dist/ExportButton-BsNrOvRE.js +25 -0
  3. package/dist/FeatureTooltip-DxzN-jnp.js +49 -0
  4. package/dist/Legend-BLWBzD7Y.js +275 -0
  5. package/dist/SearchPanel-4Y12jfuP.js +401 -0
  6. package/dist/components/CollapsibleControl/index.js +1 -1
  7. package/dist/components/ExportButton/ExportButton.d.ts +2 -8
  8. package/dist/components/ExportButton/ExportButton.d.ts.map +1 -1
  9. package/dist/components/ExportButton/index.d.ts +1 -1
  10. package/dist/components/ExportButton/index.d.ts.map +1 -1
  11. package/dist/components/ExportButton/index.js +1 -1
  12. package/dist/components/ExportModal/ExportModal.d.ts +29 -0
  13. package/dist/components/ExportModal/ExportModal.d.ts.map +1 -0
  14. package/dist/components/ExportModal/index.d.ts +3 -0
  15. package/dist/components/ExportModal/index.d.ts.map +1 -0
  16. package/dist/components/FeatureTooltip/FeatureTooltip.d.ts +12 -2
  17. package/dist/components/FeatureTooltip/FeatureTooltip.d.ts.map +1 -1
  18. package/dist/components/FeatureTooltip/index.js +1 -1
  19. package/dist/components/LayerEditor/LayerEditor.d.ts.map +1 -1
  20. package/dist/components/Legend/Legend.d.ts.map +1 -1
  21. package/dist/components/Legend/index.js +1 -1
  22. package/dist/components/MeasurePanel/MeasurePanel.d.ts +13 -0
  23. package/dist/components/MeasurePanel/MeasurePanel.d.ts.map +1 -0
  24. package/dist/components/MeasurePanel/index.d.ts +3 -0
  25. package/dist/components/MeasurePanel/index.d.ts.map +1 -0
  26. package/dist/components/ResultsDrawer/ResultsDrawer.d.ts +15 -0
  27. package/dist/components/ResultsDrawer/ResultsDrawer.d.ts.map +1 -0
  28. package/dist/components/ResultsDrawer/index.d.ts +3 -0
  29. package/dist/components/ResultsDrawer/index.d.ts.map +1 -0
  30. package/dist/components/SearchFieldEditor/SearchFieldEditor.d.ts.map +1 -1
  31. package/dist/components/SearchPanel/NumberInput.d.ts.map +1 -1
  32. package/dist/components/SearchPanel/SearchPanel.d.ts +2 -1
  33. package/dist/components/SearchPanel/SearchPanel.d.ts.map +1 -1
  34. package/dist/components/SearchPanel/index.js +1 -1
  35. package/dist/components/SelectionPanel/SelectionPanel.d.ts +15 -0
  36. package/dist/components/SelectionPanel/SelectionPanel.d.ts.map +1 -0
  37. package/dist/components/SelectionPanel/index.d.ts +3 -0
  38. package/dist/components/SelectionPanel/index.d.ts.map +1 -0
  39. package/dist/components/StyleEditor/DataDrivenColorEditor.d.ts.map +1 -1
  40. package/dist/components/UIConfigEditor/UIConfigEditor.d.ts.map +1 -1
  41. package/dist/components/admin/CollapsibleSection.d.ts +1 -1
  42. package/dist/components/admin/CollapsibleSection.d.ts.map +1 -1
  43. package/dist/components/index.d.ts +11 -3
  44. package/dist/components/index.d.ts.map +1 -1
  45. package/dist/geo-CyDCsiW-.js +1116 -0
  46. package/dist/hooks/index.d.ts +9 -2
  47. package/dist/hooks/index.d.ts.map +1 -1
  48. package/dist/hooks/index.js +47 -37
  49. package/dist/hooks/useExport.d.ts +22 -0
  50. package/dist/hooks/useExport.d.ts.map +1 -0
  51. package/dist/hooks/useMeasure.d.ts +15 -0
  52. package/dist/hooks/useMeasure.d.ts.map +1 -0
  53. package/dist/hooks/useSelection.d.ts +14 -0
  54. package/dist/hooks/useSelection.d.ts.map +1 -0
  55. package/dist/{index-UmK2u6Yd.js → index-BrphSJJ2.js} +401 -395
  56. package/dist/main.js +1677 -1096
  57. package/dist/schemas/config.d.ts +142 -0
  58. package/dist/schemas/config.d.ts.map +1 -1
  59. package/dist/schemas/index.js +1 -1
  60. package/dist/style.css +1 -1
  61. package/dist/types/index.js +1 -1
  62. package/dist/utils/boxDraw.d.ts +5 -0
  63. package/dist/utils/boxDraw.d.ts.map +1 -0
  64. package/dist/utils/cql2.d.ts +11 -0
  65. package/dist/utils/cql2.d.ts.map +1 -1
  66. package/dist/utils/csvExport.d.ts.map +1 -1
  67. package/dist/utils/download.d.ts +2 -0
  68. package/dist/utils/download.d.ts.map +1 -0
  69. package/dist/utils/expressionColors.d.ts.map +1 -1
  70. package/dist/utils/geo.d.ts +3 -0
  71. package/dist/utils/geo.d.ts.map +1 -0
  72. package/dist/utils/index.d.ts +3 -0
  73. package/dist/utils/index.d.ts.map +1 -1
  74. package/dist/utils/measure.d.ts +49 -0
  75. package/dist/utils/measure.d.ts.map +1 -0
  76. package/dist/utils/ogcApi.d.ts +7 -0
  77. package/dist/utils/ogcApi.d.ts.map +1 -1
  78. package/dist/utils/selection.d.ts +12 -0
  79. package/dist/utils/selection.d.ts.map +1 -0
  80. package/package.json +6 -3
  81. package/dist/ExportButton-CLsWoW4m.js +0 -77
  82. package/dist/FeatureTooltip-Db1LgLQV.js +0 -47
  83. package/dist/Legend-CwaZA84A.js +0 -273
  84. package/dist/SearchPanel-DtLXMoVs.js +0 -363
  85. package/dist/cql2-DOJnQwcv.js +0 -440
@@ -0,0 +1,401 @@
1
+ import { jsxs as x, jsx as m } from "react/jsx-runtime";
2
+ import { useState as I, useRef as A, useId as S, useMemo as E, useCallback as R, useEffect as D } from "react";
3
+ function V({
4
+ value: e,
5
+ onChange: p,
6
+ suggestions: u,
7
+ onQueryChange: b,
8
+ placeholder: f = "",
9
+ className: o = "",
10
+ id: g
11
+ }) {
12
+ const [y, h] = I(!1), [l, i] = I(-1), c = A(null), v = S(), a = l >= 0 ? `${v}-option-${l}` : void 0, n = E(
13
+ () => u.filter((s) => s.toLowerCase().includes(e.toLowerCase())),
14
+ [u, e]
15
+ ), N = y && n.length > 0, t = R(
16
+ (s) => {
17
+ p(s), b == null || b(s), h(!1), i(-1);
18
+ },
19
+ [p, b]
20
+ ), r = (s) => {
21
+ const d = s.target.value;
22
+ p(d), b == null || b(d), h(!0), i(-1);
23
+ }, $ = (s) => {
24
+ N && (s.key === "ArrowDown" ? (s.preventDefault(), i((d) => Math.min(d + 1, n.length - 1))) : s.key === "ArrowUp" ? (s.preventDefault(), i((d) => Math.max(d - 1, 0))) : s.key === "Enter" && l >= 0 ? (s.preventDefault(), t(n[l])) : s.key === "Escape" && (h(!1), i(-1)));
25
+ };
26
+ return D(() => {
27
+ const s = (d) => {
28
+ c.current && !c.current.contains(d.target) && (h(!1), i(-1));
29
+ };
30
+ return document.addEventListener("mousedown", s), () => document.removeEventListener("mousedown", s);
31
+ }, []), /* @__PURE__ */ x("div", { ref: c, className: `mapui:relative ${o}`.trim(), children: [
32
+ /* @__PURE__ */ m(
33
+ "input",
34
+ {
35
+ id: g,
36
+ type: "text",
37
+ value: e,
38
+ placeholder: f,
39
+ role: "combobox",
40
+ "aria-expanded": N,
41
+ "aria-autocomplete": "list",
42
+ "aria-controls": v,
43
+ "aria-activedescendant": a,
44
+ onChange: r,
45
+ onFocus: () => h(!0),
46
+ onKeyDown: $,
47
+ className: "mapui:w-full mapui:rounded mapui:border mapui:border-gray-300 mapui:px-2 mapui:py-1 mapui:text-sm mapui:outline-none focus:mapui:border-blue-500 focus:mapui:ring-1 focus:mapui:ring-blue-500"
48
+ }
49
+ ),
50
+ N && /* @__PURE__ */ m(
51
+ "ul",
52
+ {
53
+ id: v,
54
+ role: "listbox",
55
+ className: "mapui:absolute mapui:z-10 mapui:mt-1 mapui:w-full mapui:rounded mapui:border mapui:border-gray-200 mapui:bg-white mapui:shadow-lg mapui:max-h-48 mapui:overflow-y-auto mapui:p-0 mapui:m-0 mapui:list-none",
56
+ children: n.map((s, d) => /* @__PURE__ */ m(
57
+ "li",
58
+ {
59
+ id: `${v}-option-${d}`,
60
+ role: "option",
61
+ "aria-selected": d === l,
62
+ onMouseDown: (w) => {
63
+ w.preventDefault(), t(s);
64
+ },
65
+ className: `mapui:cursor-pointer mapui:px-2 mapui:py-1 mapui:text-sm ${d === l ? "mapui:bg-blue-100" : "hover:mapui:bg-gray-50"}`,
66
+ children: s
67
+ },
68
+ `${d}-${s}`
69
+ ))
70
+ }
71
+ )
72
+ ] });
73
+ }
74
+ function k({
75
+ startValue: e,
76
+ endValue: p,
77
+ onStartChange: u,
78
+ onEndChange: b,
79
+ className: f = "",
80
+ id: o
81
+ }) {
82
+ const g = S(), y = o ?? g, h = `${y}-start`, l = `${y}-end`, i = "mapui:flex-1 mapui:rounded mapui:border mapui:border-gray-300 mapui:px-2 mapui:py-1 mapui:text-sm mapui:outline-none focus:mapui:border-blue-500 focus:mapui:ring-1 focus:mapui:ring-blue-500";
83
+ return /* @__PURE__ */ x("div", { className: `mapui:flex mapui:flex-col mapui:gap-1.5 ${f}`.trim(), children: [
84
+ /* @__PURE__ */ x("div", { className: "mapui:flex mapui:items-center mapui:gap-2", children: [
85
+ /* @__PURE__ */ m("label", { htmlFor: h, className: "mapui:text-xs mapui:text-gray-400 mapui:w-8", children: "From" }),
86
+ /* @__PURE__ */ m(
87
+ "input",
88
+ {
89
+ id: h,
90
+ type: "datetime-local",
91
+ value: e,
92
+ onChange: (c) => u(c.target.value),
93
+ "aria-label": "Start date",
94
+ className: i
95
+ }
96
+ )
97
+ ] }),
98
+ /* @__PURE__ */ x("div", { className: "mapui:flex mapui:items-center mapui:gap-2", children: [
99
+ /* @__PURE__ */ m("label", { htmlFor: l, className: "mapui:text-xs mapui:text-gray-400 mapui:w-8", children: "To" }),
100
+ /* @__PURE__ */ m(
101
+ "input",
102
+ {
103
+ id: l,
104
+ type: "datetime-local",
105
+ value: p,
106
+ onChange: (c) => b(c.target.value),
107
+ "aria-label": "End date",
108
+ className: i
109
+ }
110
+ )
111
+ ] })
112
+ ] });
113
+ }
114
+ const q = {
115
+ eq: "=",
116
+ gt: ">",
117
+ lt: "<",
118
+ gte: ">=",
119
+ lte: "<=",
120
+ between: "between"
121
+ }, z = {
122
+ eq: "equal to",
123
+ gt: "greater than",
124
+ lt: "less than",
125
+ gte: "greater than or equal to",
126
+ lte: "less than or equal to",
127
+ between: "between"
128
+ }, L = ["eq", "gt", "lt", "gte", "lte", "between"];
129
+ function M(e, p) {
130
+ if (e && typeof e == "object") {
131
+ if ("operator" in e) return e.operator;
132
+ if ("min" in e) return "between";
133
+ }
134
+ return p;
135
+ }
136
+ const j = "mapui:rounded mapui:border mapui:border-gray-300 mapui:px-2 mapui:py-1 mapui:text-sm mapui:outline-none focus:mapui:border-blue-500 focus:mapui:ring-1 focus:mapui:ring-blue-500", B = "mapui:rounded mapui:border mapui:border-gray-300 mapui:px-2 mapui:py-1 mapui:text-sm mapui:outline-none focus:mapui:border-blue-500 focus:mapui:ring-1 focus:mapui:ring-blue-500 mapui:bg-white";
137
+ function _({ field: e, value: p, onChange: u, className: b = "", id: f }) {
138
+ const [o, g] = I(
139
+ () => M(p, e.operator)
140
+ );
141
+ D(() => {
142
+ g(M(p, e.operator));
143
+ }, [p, e.operator]);
144
+ const y = o === "between", h = e.inputMode === "slider" ? L.filter((t) => t !== "between") : L, l = (t) => {
145
+ if (g(t), t === "between")
146
+ u(void 0);
147
+ else if (y)
148
+ u(void 0);
149
+ else if (p && typeof p == "object" && "value" in p) {
150
+ const r = p.value;
151
+ u({ value: r, operator: t });
152
+ }
153
+ }, i = (t) => {
154
+ u(t === "" ? void 0 : { value: Number(t), operator: o });
155
+ }, c = (t) => {
156
+ const r = p && typeof p == "object" && "max" in p ? p.max : void 0;
157
+ u(t === "" ? r === void 0 ? void 0 : { min: e.min ?? 0, max: r } : { min: Number(t), max: r ?? e.max ?? 0 });
158
+ }, v = (t) => {
159
+ const r = p && typeof p == "object" && "min" in p ? p.min : void 0;
160
+ u(t === "" ? r === void 0 ? void 0 : { min: r, max: e.max ?? 0 } : { min: r ?? e.min ?? 0, max: Number(t) });
161
+ }, a = p && typeof p == "object" && "value" in p ? String(p.value) : "", n = p && typeof p == "object" && "min" in p ? String(p.min) : "", N = p && typeof p == "object" && "max" in p ? String(p.max) : "";
162
+ return /* @__PURE__ */ x("div", { className: `mapui:flex mapui:flex-col mapui:gap-1.5 ${b}`.trim(), children: [
163
+ /* @__PURE__ */ m(
164
+ "select",
165
+ {
166
+ value: o,
167
+ onChange: (t) => l(t.target.value),
168
+ "aria-label": `${e.label} operator`,
169
+ className: B,
170
+ children: h.map((t) => /* @__PURE__ */ m("option", { value: t, children: (e.operatorLabelStyle === "word" ? z : q)[t] }, t))
171
+ }
172
+ ),
173
+ y ? (
174
+ /* Between: min + max inputs */
175
+ /* @__PURE__ */ x("div", { className: "mapui:flex mapui:gap-2", children: [
176
+ /* @__PURE__ */ m(
177
+ "input",
178
+ {
179
+ type: "number",
180
+ value: n,
181
+ placeholder: e.min !== void 0 ? String(e.min) : "Min",
182
+ min: e.min,
183
+ max: e.max,
184
+ step: e.step,
185
+ onChange: (t) => c(t.target.value),
186
+ "aria-label": `${e.label} minimum`,
187
+ className: `${j} mapui:w-1/2`
188
+ }
189
+ ),
190
+ /* @__PURE__ */ m(
191
+ "input",
192
+ {
193
+ type: "number",
194
+ value: N,
195
+ placeholder: e.max !== void 0 ? String(e.max) : "Max",
196
+ min: e.min,
197
+ max: e.max,
198
+ step: e.step,
199
+ onChange: (t) => v(t.target.value),
200
+ "aria-label": `${e.label} maximum`,
201
+ className: `${j} mapui:w-1/2`
202
+ }
203
+ )
204
+ ] })
205
+ ) : e.inputMode === "slider" ? (
206
+ /* Slider */
207
+ e.showRange ? /* @__PURE__ */ x("div", { className: "mapui:flex mapui:flex-col mapui:gap-0.5", children: [
208
+ /* @__PURE__ */ x("div", { className: "mapui:flex mapui:items-center mapui:gap-2", children: [
209
+ /* @__PURE__ */ m("span", { className: "mapui:text-xs mapui:text-gray-400 mapui:whitespace-nowrap", children: e.min ?? 0 }),
210
+ /* @__PURE__ */ m(
211
+ "input",
212
+ {
213
+ type: "range",
214
+ value: a !== "" ? a : e.min ?? 0,
215
+ min: e.min ?? 0,
216
+ max: e.max ?? 100,
217
+ step: e.step ?? 1,
218
+ onChange: (t) => i(t.target.value),
219
+ "aria-label": e.label,
220
+ className: "mapui:flex-1"
221
+ }
222
+ ),
223
+ /* @__PURE__ */ m("span", { className: "mapui:text-xs mapui:text-gray-400 mapui:whitespace-nowrap", children: e.max ?? 100 })
224
+ ] }),
225
+ /* @__PURE__ */ m("span", { className: "mapui:text-xs mapui:text-gray-600 mapui:text-center", children: a !== "" ? a : e.min ?? 0 })
226
+ ] }) : /* @__PURE__ */ x("div", { className: "mapui:flex mapui:items-center mapui:gap-2", children: [
227
+ /* @__PURE__ */ m(
228
+ "input",
229
+ {
230
+ type: "range",
231
+ value: a !== "" ? a : e.min ?? 0,
232
+ min: e.min ?? 0,
233
+ max: e.max ?? 100,
234
+ step: e.step ?? 1,
235
+ onChange: (t) => i(t.target.value),
236
+ "aria-label": e.label,
237
+ className: "mapui:flex-1"
238
+ }
239
+ ),
240
+ /* @__PURE__ */ m("span", { className: "mapui:text-xs mapui:text-gray-600 mapui:min-w-12 mapui:whitespace-nowrap mapui:text-right", children: a !== "" ? a : e.min ?? 0 })
241
+ ] })
242
+ ) : (
243
+ /* Number input */
244
+ /* @__PURE__ */ m(
245
+ "input",
246
+ {
247
+ id: f,
248
+ type: "number",
249
+ value: a,
250
+ placeholder: e.placeholder ?? "",
251
+ min: e.min,
252
+ max: e.max,
253
+ step: e.step,
254
+ onChange: (t) => i(t.target.value),
255
+ className: j
256
+ }
257
+ )
258
+ )
259
+ ] });
260
+ }
261
+ function K(e) {
262
+ return e === void 0 || e === "" || e === null ? !1 : typeof e == "object" && "start" in e && "end" in e ? e.start !== "" || e.end !== "" : !0;
263
+ }
264
+ function H({
265
+ layers: e,
266
+ activeFilters: p,
267
+ onFilterChange: u,
268
+ onClearFilters: b,
269
+ autocompleteSuggestions: f = {},
270
+ onZoomToFeature: o,
271
+ onFetchSuggestions: g,
272
+ className: y = "",
273
+ hideTitle: h
274
+ }) {
275
+ const l = E(
276
+ () => e.filter((i) => {
277
+ var c;
278
+ return (c = i.search) == null ? void 0 : c.fields.length;
279
+ }),
280
+ [e]
281
+ );
282
+ return D(() => {
283
+ if (g)
284
+ for (const i of l)
285
+ for (const c of i.search.fields)
286
+ c.type === "select" && c.prefetch && g(i.id, c.property, "", { prefetch: !0 });
287
+ }, [l, g]), l.length === 0 ? /* @__PURE__ */ x("div", { className: `mapui:flex mapui:flex-col mapui:gap-1 ${y}`.trim(), children: [
288
+ !h && /* @__PURE__ */ m("h3", { className: "mapui:m-0 mapui:mb-2 mapui:text-sm mapui:font-semibold mapui:text-gray-700", children: "Search & Filter" }),
289
+ /* @__PURE__ */ m("p", { className: "mapui:m-0 mapui:text-xs mapui:text-gray-500", children: "No searchable layers configured." })
290
+ ] }) : /* @__PURE__ */ x("div", { className: `mapui:flex mapui:flex-col mapui:gap-3 ${y}`.trim(), children: [
291
+ !h && /* @__PURE__ */ m("h3", { className: "mapui:m-0 mapui:mb-2 mapui:text-sm mapui:font-semibold mapui:text-gray-700", children: "Search & Filter" }),
292
+ l.map((i) => {
293
+ const c = p[i.id] ?? {}, v = Object.values(c).some(K);
294
+ return /* @__PURE__ */ x("div", { className: "mapui:flex mapui:flex-col mapui:gap-3 mapui:border-b mapui:border-gray-100 mapui:pb-3 last:mapui:border-0", children: [
295
+ /* @__PURE__ */ x("div", { className: "mapui:flex mapui:items-center mapui:justify-between", children: [
296
+ /* @__PURE__ */ m("span", { className: "mapui:text-sm mapui:font-medium mapui:text-gray-600", children: i.label }),
297
+ v && /* @__PURE__ */ m(
298
+ "button",
299
+ {
300
+ type: "button",
301
+ onClick: () => b(i.id),
302
+ className: "mapui:cursor-pointer mapui:border-none mapui:bg-transparent mapui:p-0 mapui:text-xs mapui:text-blue-600 hover:mapui:text-blue-800",
303
+ children: "Clear"
304
+ }
305
+ )
306
+ ] }),
307
+ i.search.fields.map((a) => {
308
+ const n = c[a.property], N = `${i.id}:${a.property}`, t = `search-${i.id}-${a.property}`;
309
+ return /* @__PURE__ */ x("div", { className: "mapui:flex mapui:flex-col mapui:gap-1", children: [
310
+ /* @__PURE__ */ m("label", { htmlFor: t, className: "mapui:text-xs mapui:text-gray-500", children: a.label }),
311
+ a.type === "text" && a.autocomplete ? /* @__PURE__ */ m(
312
+ V,
313
+ {
314
+ id: t,
315
+ value: n ?? "",
316
+ onChange: (r) => {
317
+ u(i.id, a.property, r || void 0), r && a.zoomTo && (o == null || o(i.id, a.property, r));
318
+ },
319
+ suggestions: [.../* @__PURE__ */ new Set([
320
+ ...f[N] ?? [],
321
+ ...a.options ?? []
322
+ ])],
323
+ onQueryChange: (r) => g == null ? void 0 : g(i.id, a.property, r, { prefetch: a.prefetch }),
324
+ placeholder: a.placeholder ?? ""
325
+ }
326
+ ) : a.type === "text" ? /* @__PURE__ */ m(
327
+ "input",
328
+ {
329
+ id: t,
330
+ type: "text",
331
+ value: n ?? "",
332
+ placeholder: a.placeholder ?? "",
333
+ onChange: (r) => u(i.id, a.property, r.target.value || void 0),
334
+ onBlur: (r) => {
335
+ r.target.value && a.zoomTo && (o == null || o(i.id, a.property, r.target.value));
336
+ },
337
+ onKeyDown: (r) => {
338
+ r.key === "Enter" && r.target.value && a.zoomTo && (o == null || o(i.id, a.property, r.target.value));
339
+ },
340
+ className: "mapui:rounded mapui:border mapui:border-gray-300 mapui:px-2 mapui:py-1 mapui:text-sm mapui:outline-none focus:mapui:border-blue-500 focus:mapui:ring-1 focus:mapui:ring-blue-500"
341
+ }
342
+ ) : a.type === "datetime" && a.range ? /* @__PURE__ */ m(
343
+ k,
344
+ {
345
+ id: t,
346
+ startValue: n && typeof n == "object" && "start" in n ? n.start : "",
347
+ endValue: n && typeof n == "object" && "end" in n ? n.end : "",
348
+ onStartChange: (r) => u(i.id, a.property, {
349
+ start: r,
350
+ end: n && typeof n == "object" && "end" in n ? n.end : ""
351
+ }),
352
+ onEndChange: (r) => u(i.id, a.property, {
353
+ start: n && typeof n == "object" && "start" in n ? n.start : "",
354
+ end: r
355
+ })
356
+ }
357
+ ) : a.type === "datetime" ? /* @__PURE__ */ m(
358
+ "input",
359
+ {
360
+ id: t,
361
+ type: "datetime-local",
362
+ value: n ?? "",
363
+ onChange: (r) => u(i.id, a.property, r.target.value || void 0),
364
+ className: "mapui:rounded mapui:border mapui:border-gray-300 mapui:px-2 mapui:py-1 mapui:text-sm mapui:outline-none focus:mapui:border-blue-500 focus:mapui:ring-1 focus:mapui:ring-blue-500"
365
+ }
366
+ ) : a.type === "number" ? /* @__PURE__ */ m(
367
+ _,
368
+ {
369
+ id: t,
370
+ field: a,
371
+ value: n,
372
+ onChange: (r) => u(i.id, a.property, r)
373
+ }
374
+ ) : a.type === "select" ? (() => {
375
+ const r = a, $ = f[N] ?? [], s = r.options ?? [], d = [.../* @__PURE__ */ new Set([...$, ...s])];
376
+ return /* @__PURE__ */ x(
377
+ "select",
378
+ {
379
+ id: t,
380
+ value: n ?? "",
381
+ onChange: (w) => {
382
+ const O = w.target.value || void 0;
383
+ u(i.id, a.property, O), O && a.zoomTo && (o == null || o(i.id, a.property, O));
384
+ },
385
+ className: "mapui:rounded mapui:border mapui:border-gray-300 mapui:px-2 mapui:py-1 mapui:text-sm mapui:outline-none focus:mapui:border-blue-500 focus:mapui:ring-1 focus:mapui:ring-blue-500",
386
+ children: [
387
+ /* @__PURE__ */ m("option", { value: "", children: a.placeholder ?? "Select..." }),
388
+ d.map((w) => /* @__PURE__ */ m("option", { value: w, children: w }, w))
389
+ ]
390
+ }
391
+ );
392
+ })() : null
393
+ ] }, a.property);
394
+ })
395
+ ] }, i.id);
396
+ })
397
+ ] });
398
+ }
399
+ export {
400
+ H as S
401
+ };
@@ -1,4 +1,4 @@
1
- import { C as r } from "../../CollapsibleControl-CGRNPpCw.js";
1
+ import { C as r } from "../../CollapsibleControl-qo9daiD8.js";
2
2
  export {
3
3
  r as CollapsibleControl
4
4
  };
@@ -1,14 +1,8 @@
1
- export interface ExportableLayer {
2
- id: string;
3
- label: string;
4
- collection: string;
5
- }
6
1
  export interface ExportButtonProps {
7
- layers: ExportableLayer[];
8
- onExport: (layer: ExportableLayer) => void;
2
+ onExport: () => void;
9
3
  loading?: boolean;
10
4
  disabled?: boolean;
11
5
  className?: string;
12
6
  }
13
- export declare function ExportButton({ layers, onExport, loading, disabled, className, }: ExportButtonProps): import("react/jsx-runtime").JSX.Element;
7
+ export declare function ExportButton({ onExport, loading, disabled, className, }: ExportButtonProps): import("react/jsx-runtime").JSX.Element;
14
8
  //# sourceMappingURL=ExportButton.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExportButton.d.ts","sourceRoot":"","sources":["../../../src/components/ExportButton/ExportButton.tsx"],"names":[],"mappings":"AAEA,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,YAAY,CAAC,EAC3B,MAAM,EACN,QAAQ,EACR,OAAe,EACf,QAAgB,EAChB,SAAc,GACf,EAAE,iBAAiB,2CAsFnB"}
1
+ {"version":3,"file":"ExportButton.d.ts","sourceRoot":"","sources":["../../../src/components/ExportButton/ExportButton.tsx"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,OAAe,EACf,QAAgB,EAChB,SAAc,GACf,EAAE,iBAAiB,2CAoBnB"}
@@ -1,3 +1,3 @@
1
1
  export { ExportButton } from './ExportButton';
2
- export type { ExportButtonProps, ExportableLayer } from './ExportButton';
2
+ export type { ExportButtonProps } from './ExportButton';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ExportButton/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ExportButton/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { E as r } from "../../ExportButton-CLsWoW4m.js";
1
+ import { E as r } from "../../ExportButton-BsNrOvRE.js";
2
2
  export {
3
3
  r as ExportButton
4
4
  };
@@ -0,0 +1,29 @@
1
+ export interface ExportableLayer {
2
+ id: string;
3
+ label: string;
4
+ collection: string;
5
+ }
6
+ export interface ExportFormatOption {
7
+ id: string;
8
+ label: string;
9
+ extension: string;
10
+ description?: string;
11
+ }
12
+ export interface ExportRequest {
13
+ layer: ExportableLayer;
14
+ format: ExportFormatOption;
15
+ filtered: boolean;
16
+ }
17
+ export interface ExportModalProps {
18
+ open: boolean;
19
+ layers: ExportableLayer[];
20
+ availableFormats: ExportFormatOption[];
21
+ hasActiveFilter: (layerId: string) => boolean;
22
+ loading?: boolean;
23
+ progress?: string | null;
24
+ error?: string | null;
25
+ onExport: (request: ExportRequest) => void;
26
+ onClose: () => void;
27
+ }
28
+ export declare function ExportModal({ open, layers, availableFormats, hasActiveFilter, loading, progress, error, onExport, onClose, }: ExportModalProps): import("react/jsx-runtime").JSX.Element | null;
29
+ //# sourceMappingURL=ExportModal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExportModal.d.ts","sourceRoot":"","sources":["../../../src/components/ExportModal/ExportModal.tsx"],"names":[],"mappings":"AAEA,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,gBAAgB,EAAE,kBAAkB,EAAE,CAAC;IACvC,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAC;IAC3C,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,MAAM,EACN,gBAAgB,EAChB,eAAe,EACf,OAAe,EACf,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,OAAO,GACR,EAAE,gBAAgB,kDA4JlB"}
@@ -0,0 +1,3 @@
1
+ export { ExportModal } from './ExportModal';
2
+ export type { ExportModalProps, ExportFormatOption, ExportRequest, ExportableLayer } from './ExportModal';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ExportModal/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}
@@ -1,10 +1,20 @@
1
+ interface FeatureEntry {
2
+ title?: string;
3
+ properties: Record<string, unknown>;
4
+ fields?: string[];
5
+ labels?: Record<string, string>;
6
+ }
1
7
  export interface FeatureTooltipProps {
8
+ /** Single feature (legacy) */
2
9
  title?: string;
3
- properties: Record<string, unknown> | null;
10
+ properties?: Record<string, unknown> | null;
4
11
  fields?: string[];
5
12
  labels?: Record<string, string>;
13
+ /** Multiple features — takes precedence over single-feature props */
14
+ features?: FeatureEntry[];
6
15
  maxItems?: number;
7
16
  className?: string;
8
17
  }
9
- export declare function FeatureTooltip({ title, properties, fields, labels, maxItems, className, }: FeatureTooltipProps): import("react/jsx-runtime").JSX.Element;
18
+ export declare function FeatureTooltip({ title, properties, fields, labels, features, maxItems, className, }: FeatureTooltipProps): import("react/jsx-runtime").JSX.Element;
19
+ export {};
10
20
  //# sourceMappingURL=FeatureTooltip.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FeatureTooltip.d.ts","sourceRoot":"","sources":["../../../src/components/FeatureTooltip/FeatureTooltip.tsx"],"names":[],"mappings":"AAEA,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC3C,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,UAAU,EACV,MAAM,EACN,MAAM,EACN,QAAY,EACZ,SAAc,GACf,EAAE,mBAAmB,2CAoCrB"}
1
+ {"version":3,"file":"FeatureTooltip.d.ts","sourceRoot":"","sources":["../../../src/components/FeatureTooltip/FeatureTooltip.tsx"],"names":[],"mappings":"AAEA,UAAU,YAAY;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,mBAAmB;IAClC,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC5C,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,qEAAqE;IACrE,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,UAAU,EACV,MAAM,EACN,MAAM,EACN,QAAQ,EACR,QAAY,EACZ,SAAc,GACf,EAAE,mBAAmB,2CAsDrB"}
@@ -1,4 +1,4 @@
1
- import { F as r } from "../../FeatureTooltip-Db1LgLQV.js";
1
+ import { F as r } from "../../FeatureTooltip-DxzN-jnp.js";
2
2
  export {
3
3
  r as FeatureTooltip
4
4
  };
@@ -1 +1 @@
1
- {"version":3,"file":"LayerEditor.d.ts","sourceRoot":"","sources":["../../../src/components/LayerEditor/LayerEditor.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAkC,MAAM,aAAa,CAAC;AA2B7F,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACvC,gBAAgB,EAAE,YAAY,EAAE,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAKD,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,cAAc,EAAE,EAAE,gBAAgB,2CAuQlG"}
1
+ {"version":3,"file":"LayerEditor.d.ts","sourceRoot":"","sources":["../../../src/components/LayerEditor/LayerEditor.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAkC,MAAM,aAAa,CAAC;AA6B7F,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACvC,gBAAgB,EAAE,YAAY,EAAE,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAKD,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,cAAc,EAAE,EAAE,gBAAgB,2CAsRlG"}
@@ -1 +1 @@
1
- {"version":3,"file":"Legend.d.ts","sourceRoot":"","sources":["../../../src/components/Legend/Legend.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAA6B,MAAM,aAAa,CAAC;AAE1E,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA8TD,wBAAgB,MAAM,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,EAAE,WAAW,kDA2F1F"}
1
+ {"version":3,"file":"Legend.d.ts","sourceRoot":"","sources":["../../../src/components/Legend/Legend.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAA6B,MAAM,aAAa,CAAC;AAE1E,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA2UD,wBAAgB,MAAM,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,EAAE,WAAW,kDA4F1F"}
@@ -1,4 +1,4 @@
1
- import { L as r } from "../../Legend-CwaZA84A.js";
1
+ import { L as r } from "../../Legend-BLWBzD7Y.js";
2
2
  export {
3
3
  r as Legend
4
4
  };
@@ -0,0 +1,13 @@
1
+ import { MeasureMode, MeasureUnit, Measurement } from '../../utils/measure';
2
+ export interface MeasurePanelProps {
3
+ mode: MeasureMode | null;
4
+ onModeChange: (mode: MeasureMode | null) => void;
5
+ points: [number, number][];
6
+ measurement: Measurement | null;
7
+ unit: MeasureUnit;
8
+ onUnitChange: (unit: MeasureUnit) => void;
9
+ onClear: () => void;
10
+ className?: string;
11
+ }
12
+ export declare function MeasurePanel({ mode, onModeChange, points, measurement, unit, onUnitChange, onClear, className, }: MeasurePanelProps): import("react/jsx-runtime").JSX.Element;
13
+ //# sourceMappingURL=MeasurePanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MeasurePanel.d.ts","sourceRoot":"","sources":["../../../src/components/MeasurePanel/MeasurePanel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,WAAW,EAGZ,MAAM,qBAAqB,CAAC;AAG7B,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;IACzB,YAAY,EAAE,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;IACjD,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IAC3B,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,IAAI,EAAE,WAAW,CAAC;IAClB,YAAY,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IAC1C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAeD,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,YAAY,EACZ,MAAM,EACN,WAAW,EACX,IAAI,EACJ,YAAY,EACZ,OAAO,EACP,SAAS,GACV,EAAE,iBAAiB,2CAkFnB"}
@@ -0,0 +1,3 @@
1
+ export { MeasurePanel } from './MeasurePanel';
2
+ export type { MeasurePanelProps } from './MeasurePanel';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/MeasurePanel/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,15 @@
1
+ export interface ResultsDrawerProps {
2
+ open: boolean;
3
+ features: Array<{
4
+ properties: Record<string, unknown>;
5
+ geometry?: Record<string, unknown>;
6
+ }>;
7
+ columns?: string[];
8
+ title?: string;
9
+ onClose: () => void;
10
+ onExport?: () => void;
11
+ onFeatureClick?: (index: number) => void;
12
+ onClearSelection?: () => void;
13
+ }
14
+ export declare function ResultsDrawer({ open, features, columns, title, onClose, onExport, onFeatureClick, onClearSelection, }: ResultsDrawerProps): import("react/jsx-runtime").JSX.Element | null;
15
+ //# sourceMappingURL=ResultsDrawer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResultsDrawer.d.ts","sourceRoot":"","sources":["../../../src/components/ResultsDrawer/ResultsDrawer.tsx"],"names":[],"mappings":"AAWA,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC;QACd,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;CAC/B;AAMD,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,KAAiB,EACjB,OAAO,EACP,QAAQ,EACR,cAAc,EACd,gBAAgB,GACjB,EAAE,kBAAkB,kDAmJpB"}
@@ -0,0 +1,3 @@
1
+ export { ResultsDrawer } from './ResultsDrawer';
2
+ export type { ResultsDrawerProps } from './ResultsDrawer';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ResultsDrawer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SearchFieldEditor.d.ts","sourceRoot":"","sources":["../../../src/components/SearchFieldEditor/SearchFieldEditor.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EAKX,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAyCrB,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACvC,mBAAmB,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAC3C;AAYD,wBAAgB,iBAAiB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,mBAAmB,EAAE,EAAE,sBAAsB,2CA4OjG"}
1
+ {"version":3,"file":"SearchFieldEditor.d.ts","sourceRoot":"","sources":["../../../src/components/SearchFieldEditor/SearchFieldEditor.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EAKX,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAyCrB,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACvC,mBAAmB,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAC3C;AAYD,wBAAgB,iBAAiB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,mBAAmB,EAAE,EAAE,sBAAsB,2CAqSjG"}
@@ -1 +1 @@
1
- {"version":3,"file":"NumberInput.d.ts","sourceRoot":"","sources":["../../../src/components/SearchPanel/NumberInput.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAExE,UAAU,gBAAgB;IACxB,KAAK,EAAE,iBAAiB,CAAC;IACzB,KAAK,EAAE,iBAAiB,CAAC;IACzB,QAAQ,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AA2BD,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAc,EAAE,EAAE,EAAE,EAAE,gBAAgB,2CAgK3F"}
1
+ {"version":3,"file":"NumberInput.d.ts","sourceRoot":"","sources":["../../../src/components/SearchPanel/NumberInput.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAExE,UAAU,gBAAgB;IACxB,KAAK,EAAE,iBAAiB,CAAC;IACzB,KAAK,EAAE,iBAAiB,CAAC;IACzB,QAAQ,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAoCD,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAc,EAAE,EAAE,EAAE,EAAE,gBAAgB,2CA0L3F"}
@@ -8,8 +8,9 @@ export interface SearchPanelProps {
8
8
  onFetchSuggestions?: (layerId: string, property: string, query: string, options?: {
9
9
  prefetch?: boolean;
10
10
  }) => void;
11
+ onZoomToFeature?: (layerId: string, property: string, value: string) => void;
11
12
  className?: string;
12
13
  hideTitle?: boolean;
13
14
  }
14
- export declare function SearchPanel({ layers, activeFilters, onFilterChange, onClearFilters, autocompleteSuggestions, onFetchSuggestions, className, hideTitle, }: SearchPanelProps): import("react/jsx-runtime").JSX.Element;
15
+ export declare function SearchPanel({ layers, activeFilters, onFilterChange, onClearFilters, autocompleteSuggestions, onZoomToFeature, onFetchSuggestions, className, hideTitle, }: SearchPanelProps): import("react/jsx-runtime").JSX.Element;
15
16
  //# sourceMappingURL=SearchPanel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SearchPanel.d.ts","sourceRoot":"","sources":["../../../src/components/SearchPanel/SearchPanel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,iBAAiB,EAA2F,MAAM,aAAa,CAAC;AAK/K,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAClD,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACtF,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,uBAAuB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACnD,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IAClH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAcD,wBAAgB,WAAW,CAAC,EAC1B,MAAM,EACN,aAAa,EACb,cAAc,EACd,cAAc,EACd,uBAA4B,EAC5B,kBAAkB,EAClB,SAAc,EACd,SAAS,GACV,EAAE,gBAAgB,2CA4KlB"}
1
+ {"version":3,"file":"SearchPanel.d.ts","sourceRoot":"","sources":["../../../src/components/SearchPanel/SearchPanel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,iBAAiB,EAA2F,MAAM,aAAa,CAAC;AAK/K,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAClD,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACtF,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,uBAAuB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACnD,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IAClH,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAcD,wBAAgB,WAAW,CAAC,EAC1B,MAAM,EACN,aAAa,EACb,cAAc,EACd,cAAc,EACd,uBAA4B,EAC5B,eAAe,EACf,kBAAkB,EAClB,SAAc,EACd,SAAS,GACV,EAAE,gBAAgB,2CA+LlB"}