@mapfirst.ai/react 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -34,6 +34,7 @@ __export(index_exports, {
34
34
  CloseIcon: () => CloseIcon,
35
35
  EditIcon: () => EditIcon,
36
36
  FilterChips: () => FilterChips,
37
+ IconsProvider: () => IconsProvider,
37
38
  LeafletAdapter: () => import_core2.LeafletAdapter,
38
39
  MapFirstCore: () => import_core2.MapFirstCore,
39
40
  MinRatingFilterChip: () => MinRatingFilterChip,
@@ -55,21 +56,25 @@ __export(index_exports, {
55
56
  processApiFilters: () => import_core2.processApiFilters,
56
57
  renderStars: () => renderStars,
57
58
  useFilterScroll: () => useFilterScroll,
59
+ useIcons: () => useIcons,
58
60
  useMapFirst: () => useMapFirst,
59
61
  useTranslation: () => useTranslation
60
62
  });
61
63
  module.exports = __toCommonJS(index_exports);
62
- var import_react10 = __toESM(require("react"));
64
+ var import_react11 = __toESM(require("react"));
63
65
  var import_core = require("@mapfirst.ai/core");
64
66
  var import_core2 = require("@mapfirst.ai/core");
65
67
 
66
68
  // src/components/SmartFilter.tsx
67
- var import_react9 = require("react");
69
+ var import_react10 = require("react");
68
70
 
69
71
  // src/components/smart-filter/FilterChips.tsx
70
- var import_react8 = __toESM(require("react"));
72
+ var import_react9 = __toESM(require("react"));
71
73
 
72
74
  // src/components/smart-filter/CloseButton.tsx
75
+ var import_react2 = __toESM(require("react"));
76
+
77
+ // src/context/IconsContext.tsx
73
78
  var import_react = __toESM(require("react"));
74
79
 
75
80
  // src/components/Icons.tsx
@@ -123,7 +128,7 @@ var EditIcon = ({ className, style }) => /* @__PURE__ */ (0, import_jsx_runtime.
123
128
  {
124
129
  d: "M.75,17.5A.751.751,0,0,1,0,16.75V12.569a.755.755,0,0,1,.22-.53L11.461.8a2.72,2.72,0,0,1,3.848,0L16.7,2.191a2.72,2.72,0,0,1,0,3.848L5.462,17.28a.747.747,0,0,1-.531.22ZM1.5,12.879V16h3.12l7.91-7.91L9.41,4.97ZM13.591,7.03l2.051-2.051a1.223,1.223,0,0,0,0-1.727L14.249,1.858a1.222,1.222,0,0,0-1.727,0L10.47,3.91Z",
125
130
  transform: "translate(3.25 3.25)",
126
- fill: "currentColor"
131
+ fill: "#141124"
127
132
  }
128
133
  )
129
134
  ]
@@ -164,8 +169,20 @@ var StarIcon = ({
164
169
  }
165
170
  );
166
171
 
167
- // src/components/smart-filter/CloseButton.tsx
172
+ // src/context/IconsContext.tsx
168
173
  var import_jsx_runtime2 = require("react/jsx-runtime");
174
+ var defaultIcons = {
175
+ CloseIcon,
176
+ EditIcon,
177
+ NextIcon,
178
+ SearchIcon
179
+ };
180
+ var IconsContext = import_react.default.createContext(defaultIcons);
181
+ var IconsProvider = ({ value, children }) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(IconsContext.Provider, { value: value ? { ...defaultIcons, ...value } : defaultIcons, children });
182
+ var useIcons = () => import_react.default.useContext(IconsContext);
183
+
184
+ // src/components/smart-filter/CloseButton.tsx
185
+ var import_jsx_runtime3 = require("react/jsx-runtime");
169
186
  var closeButtonStyles = {
170
187
  position: "absolute",
171
188
  top: "-8px",
@@ -185,8 +202,9 @@ var iconStyles = {
185
202
  height: "17px"
186
203
  };
187
204
  var CloseButton = ({ onClick, style }) => {
188
- const [isHovering, setIsHovering] = import_react.default.useState(false);
189
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
205
+ const [isHovering, setIsHovering] = import_react2.default.useState(false);
206
+ const { CloseIcon: CloseIcon2 } = useIcons();
207
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
190
208
  "button",
191
209
  {
192
210
  style: {
@@ -198,13 +216,13 @@ var CloseButton = ({ onClick, style }) => {
198
216
  onMouseEnter: () => setIsHovering(true),
199
217
  onMouseLeave: () => setIsHovering(false),
200
218
  "aria-label": "Remove filter",
201
- children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(CloseIcon, { style: iconStyles })
219
+ children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(CloseIcon2, { style: iconStyles })
202
220
  }
203
221
  );
204
222
  };
205
223
 
206
224
  // src/components/smart-filter/Chip.tsx
207
- var import_jsx_runtime3 = require("react/jsx-runtime");
225
+ var import_jsx_runtime4 = require("react/jsx-runtime");
208
226
  var chipStyles = {
209
227
  position: "relative",
210
228
  backgroundColor: "white",
@@ -221,25 +239,25 @@ var chipStyles = {
221
239
  height: "34px"
222
240
  };
223
241
  var Chip = ({ label, icon, remove, style }) => {
224
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { style: { ...chipStyles, ...style }, children: [
225
- icon && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { style: { display: "flex", alignItems: "center" }, children: icon }),
226
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { style: { whiteSpace: "nowrap" }, children: label }),
227
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(CloseButton, { onClick: remove })
242
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { style: { ...chipStyles, ...style }, children: [
243
+ icon && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { style: { display: "flex", alignItems: "center" }, children: icon }),
244
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { style: { whiteSpace: "nowrap" }, children: label }),
245
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(CloseButton, { onClick: remove })
228
246
  ] });
229
247
  };
230
248
 
231
249
  // src/components/smart-filter/MinRatingFilterChip.tsx
232
- var import_react4 = require("react");
250
+ var import_react5 = require("react");
233
251
 
234
252
  // src/hooks/useTranslation.ts
235
- var import_react3 = require("react");
253
+ var import_react4 = require("react");
236
254
 
237
255
  // src/context/TranslationContext.tsx
238
- var import_react2 = __toESM(require("react"));
239
- var import_jsx_runtime4 = require("react/jsx-runtime");
240
- var TranslationContext = import_react2.default.createContext(void 0);
241
- var TranslationProvider = ({ value, children }) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(TranslationContext.Provider, { value, children });
242
- var useCustomTranslationsContext = () => import_react2.default.useContext(TranslationContext);
256
+ var import_react3 = __toESM(require("react"));
257
+ var import_jsx_runtime5 = require("react/jsx-runtime");
258
+ var TranslationContext = import_react3.default.createContext(void 0);
259
+ var TranslationProvider = ({ value, children }) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(TranslationContext.Provider, { value, children });
260
+ var useCustomTranslationsContext = () => import_react3.default.useContext(TranslationContext);
243
261
 
244
262
  // src/hooks/useTranslation.ts
245
263
  var defaultTranslations = {
@@ -275,12 +293,12 @@ var formatCurrencyDefault = (value, currency = "USD") => {
275
293
  var useTranslation = (customTranslations, customFormatCurrency) => {
276
294
  const contextTranslations = useCustomTranslationsContext();
277
295
  const merged = customTranslations != null ? customTranslations : contextTranslations;
278
- const [locale, setLocale] = (0, import_react3.useState)("en");
279
- const translations = (0, import_react3.useMemo)(
296
+ const [locale, setLocale] = (0, import_react4.useState)("en");
297
+ const translations = (0, import_react4.useMemo)(
280
298
  () => ({ ...defaultTranslations, ...merged }),
281
299
  [merged]
282
300
  );
283
- const t = (0, import_react3.useCallback)(
301
+ const t = (0, import_react4.useCallback)(
284
302
  (key, params) => {
285
303
  let translation = translations[key] || key;
286
304
  if (params) {
@@ -295,7 +313,7 @@ var useTranslation = (customTranslations, customFormatCurrency) => {
295
313
  },
296
314
  [translations]
297
315
  );
298
- const formatCurrency = (0, import_react3.useCallback)(
316
+ const formatCurrency = (0, import_react4.useCallback)(
299
317
  (value, currency) => {
300
318
  if (customFormatCurrency) {
301
319
  return customFormatCurrency(value, currency);
@@ -313,7 +331,7 @@ var useTranslation = (customTranslations, customFormatCurrency) => {
313
331
  };
314
332
 
315
333
  // src/components/smart-filter/utils.tsx
316
- var import_jsx_runtime5 = require("react/jsx-runtime");
334
+ var import_jsx_runtime6 = require("react/jsx-runtime");
317
335
  var STAR_BASE_STYLES = {
318
336
  display: "block",
319
337
  width: "12px",
@@ -345,19 +363,19 @@ var renderStars = (rating) => {
345
363
  const fullStars = Math.floor(rating);
346
364
  const hasHalfStar = rating % 1 !== 0;
347
365
  for (let i = 0; i < fullStars; i += 1) {
348
- stars.push(/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { style: STAR_FULL_STYLES }, `full-${i}`));
366
+ stars.push(/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { style: STAR_FULL_STYLES }, `full-${i}`));
349
367
  }
350
368
  if (hasHalfStar) {
351
- stars.push(/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { style: STAR_HALF_STYLES }, "half"));
369
+ stars.push(/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { style: STAR_HALF_STYLES }, "half"));
352
370
  }
353
371
  const remainingStars = Math.max(0, 5 - Math.ceil(rating));
354
372
  for (let i = 0; i < remainingStars; i += 1) {
355
- stars.push(/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { style: STAR_BASE_STYLES }, `empty-${i}`));
373
+ stars.push(/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { style: STAR_BASE_STYLES }, `empty-${i}`));
356
374
  }
357
375
  return stars;
358
376
  };
359
- var createMinRatingFilterLabel = (rating, suffix) => /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("span", { style: MIN_RATING_LABEL_STYLES, children: [
360
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { style: MIN_RATING_STARS_WRAPPER_STYLES, children: renderStars(rating) }),
377
+ var createMinRatingFilterLabel = (rating, suffix) => /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("span", { style: MIN_RATING_LABEL_STYLES, children: [
378
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { style: MIN_RATING_STARS_WRAPPER_STYLES, children: renderStars(rating) }),
361
379
  " ",
362
380
  suffix
363
381
  ] });
@@ -368,7 +386,7 @@ var createPriceRangeFilterLabel = (min, max, currency, formatCurrencyFn) => `${f
368
386
  )}`;
369
387
 
370
388
  // src/components/smart-filter/MinRatingFilterChip.tsx
371
- var import_jsx_runtime6 = require("react/jsx-runtime");
389
+ var import_jsx_runtime7 = require("react/jsx-runtime");
372
390
  var chipContainerStyles = {
373
391
  position: "relative",
374
392
  backgroundColor: "white",
@@ -408,7 +426,7 @@ var buttonBaseStyles = {
408
426
  padding: 0
409
427
  };
410
428
  var MinRatingFilterChip = ({ rating, onChange, onRemove, star = false, style }) => {
411
- const [hoverRating, setHoverRating] = (0, import_react4.useState)(null);
429
+ const [hoverRating, setHoverRating] = (0, import_react5.useState)(null);
412
430
  const { t } = useTranslation();
413
431
  const displayRating = hoverRating != null ? hoverRating : rating;
414
432
  const formatLabel = (value) => star && value ? value.toString() : t("smartFilter.minRating.label", { value: formatRatingValue(value) });
@@ -438,19 +456,19 @@ var MinRatingFilterChip = ({ rating, onChange, onRemove, star = false, style })
438
456
  setHoverRating(null);
439
457
  }
440
458
  };
441
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { style: { ...chipContainerStyles, ...style }, "data-min-rating-chip": true, children: [
442
- /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
459
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: { ...chipContainerStyles, ...style }, "data-min-rating-chip": true, children: [
460
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
443
461
  "div",
444
462
  {
445
463
  style: { display: "flex", alignItems: "center", gap: "4px" },
446
464
  onMouseLeave: () => setHoverRating(null),
447
465
  children: [
448
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { style: starContainerStyles, children: Array.from({ length: 5 }).map((_, index) => {
466
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: starContainerStyles, children: Array.from({ length: 5 }).map((_, index) => {
449
467
  const fillState = getFillForStar(index);
450
468
  const starNumber = index + 1;
451
469
  const halfValue = starNumber - 0.5;
452
470
  if (star) {
453
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
471
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
454
472
  "div",
455
473
  {
456
474
  style: {
@@ -459,7 +477,7 @@ var MinRatingFilterChip = ({ rating, onChange, onRemove, star = false, style })
459
477
  height: "16px"
460
478
  },
461
479
  children: [
462
- /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
480
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
463
481
  "svg",
464
482
  {
465
483
  viewBox: "0 0 24 24",
@@ -470,15 +488,15 @@ var MinRatingFilterChip = ({ rating, onChange, onRemove, star = false, style })
470
488
  },
471
489
  xmlns: "http://www.w3.org/2000/svg",
472
490
  children: [
473
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("linearGradient", { id: `star-gradient-${index}`, children: [
474
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
491
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("linearGradient", { id: `star-gradient-${index}`, children: [
492
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
475
493
  "stop",
476
494
  {
477
495
  offset: fillState === "half" ? "50%" : "0%",
478
496
  stopColor: "#03852e"
479
497
  }
480
498
  ),
481
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
499
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
482
500
  "stop",
483
501
  {
484
502
  offset: fillState === "half" ? "50%" : "0%",
@@ -486,7 +504,7 @@ var MinRatingFilterChip = ({ rating, onChange, onRemove, star = false, style })
486
504
  }
487
505
  )
488
506
  ] }) }),
489
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
507
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
490
508
  "path",
491
509
  {
492
510
  d: "M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z",
@@ -498,7 +516,7 @@ var MinRatingFilterChip = ({ rating, onChange, onRemove, star = false, style })
498
516
  ]
499
517
  }
500
518
  ),
501
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
519
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
502
520
  "button",
503
521
  {
504
522
  type: "button",
@@ -516,7 +534,7 @@ var MinRatingFilterChip = ({ rating, onChange, onRemove, star = false, style })
516
534
  title: formatLabel(halfValue)
517
535
  }
518
536
  ),
519
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
537
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
520
538
  "button",
521
539
  {
522
540
  type: "button",
@@ -544,18 +562,18 @@ var MinRatingFilterChip = ({ rating, onChange, onRemove, star = false, style })
544
562
  ...circleBaseStyles,
545
563
  background: "linear-gradient(90deg, #03852e 50%, transparent 50%)"
546
564
  };
547
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
565
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
548
566
  "div",
549
567
  {
550
568
  style: { position: "relative", width: "12px", height: "12px" },
551
569
  children: [
552
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
570
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
553
571
  "span",
554
572
  {
555
573
  style: fillState === "half" ? halfCircleStyles : circleStyles
556
574
  }
557
575
  ),
558
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
576
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
559
577
  "button",
560
578
  {
561
579
  type: "button",
@@ -575,7 +593,7 @@ var MinRatingFilterChip = ({ rating, onChange, onRemove, star = false, style })
575
593
  title: formatLabel(halfValue)
576
594
  }
577
595
  ),
578
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
596
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
579
597
  "button",
580
598
  {
581
599
  type: "button",
@@ -600,17 +618,17 @@ var MinRatingFilterChip = ({ rating, onChange, onRemove, star = false, style })
600
618
  index
601
619
  );
602
620
  }) }),
603
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { style: { whiteSpace: "nowrap" }, children: formatLabel(displayRating) })
621
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { style: { whiteSpace: "nowrap" }, children: formatLabel(displayRating) })
604
622
  ]
605
623
  }
606
624
  ),
607
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(CloseButton, { onClick: onRemove })
625
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(CloseButton, { onClick: onRemove })
608
626
  ] });
609
627
  };
610
628
 
611
629
  // src/components/smart-filter/PriceRangeFilterChip.tsx
612
- var import_react5 = require("react");
613
- var import_jsx_runtime7 = require("react/jsx-runtime");
630
+ var import_react6 = require("react");
631
+ var import_jsx_runtime8 = require("react/jsx-runtime");
614
632
  var chipStyles2 = {
615
633
  position: "relative",
616
634
  backgroundColor: "white",
@@ -660,13 +678,13 @@ var PriceBoundaryChip = ({
660
678
  onRemove,
661
679
  style
662
680
  }) => {
663
- const [draft, setDraft] = (0, import_react5.useState)(
681
+ const [draft, setDraft] = (0, import_react6.useState)(
664
682
  value !== void 0 ? String(value) : ""
665
683
  );
666
- const [isEditing, setIsEditing] = (0, import_react5.useState)(false);
667
- const [editHover, setEditHover] = (0, import_react5.useState)(false);
684
+ const [isEditing, setIsEditing] = (0, import_react6.useState)(false);
685
+ const [editHover, setEditHover] = (0, import_react6.useState)(false);
668
686
  const hasValue = value !== void 0;
669
- (0, import_react5.useEffect)(() => {
687
+ (0, import_react6.useEffect)(() => {
670
688
  setDraft(value !== void 0 ? String(value) : "");
671
689
  setIsEditing(false);
672
690
  }, [value]);
@@ -718,8 +736,8 @@ var PriceBoundaryChip = ({
718
736
  event.preventDefault();
719
737
  }
720
738
  };
721
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: { ...chipStyles2, ...style }, children: [
722
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
739
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { ...chipStyles2, ...style }, children: [
740
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
723
741
  "span",
724
742
  {
725
743
  style: {
@@ -731,7 +749,7 @@ var PriceBoundaryChip = ({
731
749
  children: label
732
750
  }
733
751
  ),
734
- isEditing ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
752
+ isEditing ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
735
753
  "input",
736
754
  {
737
755
  value: draft,
@@ -748,13 +766,13 @@ var PriceBoundaryChip = ({
748
766
  style: inputStyles,
749
767
  autoFocus: true
750
768
  }
751
- ) : hasValue ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
769
+ ) : hasValue ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
752
770
  "span",
753
771
  {
754
772
  style: { fontSize: "16px", fontWeight: 600, textAlign: "center" },
755
773
  children: value
756
774
  }
757
- ) : showAddWhenEmpty ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
775
+ ) : showAddWhenEmpty ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
758
776
  "button",
759
777
  {
760
778
  type: "button",
@@ -770,8 +788,8 @@ var PriceBoundaryChip = ({
770
788
  "aria-label": editLabel,
771
789
  children: "+"
772
790
  }
773
- ) : /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { style: { fontSize: "16px", color: "#737373" }, children: "-" }),
774
- (!showAddWhenEmpty || showAddWhenEmpty && isEditing) && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
791
+ ) : /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { style: { fontSize: "16px", color: "#737373" }, children: "-" }),
792
+ (!showAddWhenEmpty || showAddWhenEmpty && isEditing) && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
775
793
  "span",
776
794
  {
777
795
  style: {
@@ -783,7 +801,7 @@ var PriceBoundaryChip = ({
783
801
  children: currency
784
802
  }
785
803
  ),
786
- !isEditing && (!showAddWhenEmpty || hasValue) && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
804
+ !isEditing && (!showAddWhenEmpty || hasValue) && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
787
805
  "button",
788
806
  {
789
807
  type: "button",
@@ -796,10 +814,10 @@ var PriceBoundaryChip = ({
796
814
  onClick: () => setIsEditing(true),
797
815
  onMouseEnter: () => setEditHover(true),
798
816
  onMouseLeave: () => setEditHover(false),
799
- children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(EditIcon, {})
817
+ children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(EditIcon, {})
800
818
  }
801
819
  ),
802
- showRemoveButton && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(CloseButton, { onClick: onRemove })
820
+ showRemoveButton && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(CloseButton, { onClick: onRemove })
803
821
  ] });
804
822
  };
805
823
  var PriceRangeFilterChip = ({ priceRange, currency, onChange, onRemove, style }) => {
@@ -827,8 +845,8 @@ var PriceRangeFilterChip = ({ priceRange, currency, onChange, onRemove, style })
827
845
  onChange(nextRange);
828
846
  }
829
847
  };
830
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_jsx_runtime7.Fragment, { children: [
831
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
848
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_jsx_runtime8.Fragment, { children: [
849
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
832
850
  PriceBoundaryChip,
833
851
  {
834
852
  label: minLabel,
@@ -841,7 +859,7 @@ var PriceRangeFilterChip = ({ priceRange, currency, onChange, onRemove, style })
841
859
  style
842
860
  }
843
861
  ),
844
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
862
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
845
863
  PriceBoundaryChip,
846
864
  {
847
865
  label: maxChipLabel,
@@ -860,7 +878,7 @@ var PriceRangeFilterChip = ({ priceRange, currency, onChange, onRemove, style })
860
878
  };
861
879
 
862
880
  // src/components/smart-filter/RestaurantPriceLevelChip.tsx
863
- var import_jsx_runtime8 = require("react/jsx-runtime");
881
+ var import_jsx_runtime9 = require("react/jsx-runtime");
864
882
  var chipStyles3 = {
865
883
  position: "relative",
866
884
  backgroundColor: "white",
@@ -900,8 +918,8 @@ var RestaurantPriceLevelChip = ({ values, onChange, onRemove, style }) => {
900
918
  ).map((option) => option.value);
901
919
  onChange(orderedSelection);
902
920
  };
903
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { ...chipStyles3, ...style }, children: [
904
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
921
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: { ...chipStyles3, ...style }, children: [
922
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
905
923
  "div",
906
924
  {
907
925
  style: {
@@ -911,7 +929,7 @@ var RestaurantPriceLevelChip = ({ values, onChange, onRemove, style }) => {
911
929
  flexWrap: "wrap"
912
930
  },
913
931
  children: [
914
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
932
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
915
933
  "span",
916
934
  {
917
935
  style: {
@@ -923,13 +941,13 @@ var RestaurantPriceLevelChip = ({ values, onChange, onRemove, style }) => {
923
941
  children: label
924
942
  }
925
943
  ),
926
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { display: "flex", gap: "12px" }, children: [
944
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: { display: "flex", gap: "12px" }, children: [
927
945
  PRICE_LEVEL_OPTIONS.map((option) => {
928
946
  const optionLabel = t(
929
947
  `smartFilter.restaurantPriceLevel.options.${option.key}`
930
948
  );
931
949
  const checkboxId = `price-level-${option.key}`;
932
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
950
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
933
951
  "label",
934
952
  {
935
953
  htmlFor: checkboxId,
@@ -941,7 +959,7 @@ var RestaurantPriceLevelChip = ({ values, onChange, onRemove, style }) => {
941
959
  cursor: "pointer"
942
960
  },
943
961
  children: [
944
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
962
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
945
963
  "input",
946
964
  {
947
965
  id: checkboxId,
@@ -952,24 +970,24 @@ var RestaurantPriceLevelChip = ({ values, onChange, onRemove, style }) => {
952
970
  style: { accentColor: "#03852e", cursor: "pointer" }
953
971
  }
954
972
  ),
955
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { children: optionLabel })
973
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { children: optionLabel })
956
974
  ]
957
975
  },
958
976
  option.value
959
977
  );
960
978
  }),
961
- values.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { style: { fontSize: "12px", color: "#737373" }, children: noneSelectedLabel })
979
+ values.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { style: { fontSize: "12px", color: "#737373" }, children: noneSelectedLabel })
962
980
  ] })
963
981
  ]
964
982
  }
965
983
  ),
966
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(CloseButton, { onClick: onRemove })
984
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(CloseButton, { onClick: onRemove })
967
985
  ] });
968
986
  };
969
987
 
970
988
  // src/components/smart-filter/TransformedQueryChip.tsx
971
- var import_react6 = require("react");
972
- var import_jsx_runtime9 = require("react/jsx-runtime");
989
+ var import_react7 = require("react");
990
+ var import_jsx_runtime10 = require("react/jsx-runtime");
973
991
  var chipStyles4 = {
974
992
  position: "relative",
975
993
  backgroundColor: "white",
@@ -1008,14 +1026,15 @@ var editButtonStyles2 = {
1008
1026
  justifyContent: "center"
1009
1027
  };
1010
1028
  var TransformedQueryChip = ({ value, onChange, onRemove, style }) => {
1011
- const inputRef = (0, import_react6.useRef)(null);
1012
- const [draft, setDraft] = (0, import_react6.useState)(value);
1013
- const [isEditing, setIsEditing] = (0, import_react6.useState)(false);
1014
- const [editHover, setEditHover] = (0, import_react6.useState)(false);
1029
+ const inputRef = (0, import_react7.useRef)(null);
1030
+ const [draft, setDraft] = (0, import_react7.useState)(value);
1031
+ const [isEditing, setIsEditing] = (0, import_react7.useState)(false);
1032
+ const [editHover, setEditHover] = (0, import_react7.useState)(false);
1015
1033
  const { t } = useTranslation();
1034
+ const { SearchIcon: SearchIcon2, EditIcon: EditIcon2 } = useIcons();
1016
1035
  const removeLabel = t("smartFilter.transformedQuery.remove");
1017
1036
  const editLabel = t("smartFilter.transformedQuery.edit");
1018
- (0, import_react6.useEffect)(() => {
1037
+ (0, import_react7.useEffect)(() => {
1019
1038
  setDraft(value);
1020
1039
  setIsEditing(false);
1021
1040
  }, [value]);
@@ -1046,9 +1065,9 @@ var TransformedQueryChip = ({ value, onChange, onRemove, style }) => {
1046
1065
  return;
1047
1066
  }
1048
1067
  };
1049
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: { ...chipStyles4, ...style }, children: [
1050
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(SearchIcon, { style: { width: "16px", height: "16px", color: "#03852e" } }),
1051
- isEditing ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1068
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { style: { ...chipStyles4, ...style }, children: [
1069
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(SearchIcon2, { style: { width: "16px", height: "16px", color: "#03852e" } }),
1070
+ isEditing ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1052
1071
  "input",
1053
1072
  {
1054
1073
  ref: inputRef,
@@ -1063,8 +1082,8 @@ var TransformedQueryChip = ({ value, onChange, onRemove, style }) => {
1063
1082
  style: inputStyles2,
1064
1083
  autoFocus: true
1065
1084
  }
1066
- ) : /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { style: { fontSize: "16px" }, children: value }),
1067
- !isEditing && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1085
+ ) : /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { style: { fontSize: "16px" }, children: value }),
1086
+ !isEditing && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1068
1087
  "button",
1069
1088
  {
1070
1089
  type: "button",
@@ -1077,20 +1096,20 @@ var TransformedQueryChip = ({ value, onChange, onRemove, style }) => {
1077
1096
  onClick: () => setIsEditing(true),
1078
1097
  onMouseEnter: () => setEditHover(true),
1079
1098
  onMouseLeave: () => setEditHover(false),
1080
- children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(EditIcon, {})
1099
+ children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(EditIcon2, {})
1081
1100
  }
1082
1101
  ),
1083
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(CloseButton, { onClick: onRemove })
1102
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(CloseButton, { onClick: onRemove })
1084
1103
  ] });
1085
1104
  };
1086
1105
 
1087
1106
  // src/hooks/useFilterScroll.ts
1088
- var import_react7 = require("react");
1107
+ var import_react8 = require("react");
1089
1108
  var useFilterScroll = (dependency) => {
1090
- const scrollerRef = (0, import_react7.useRef)(null);
1091
- const [atStart, setAtStart] = (0, import_react7.useState)(true);
1092
- const [atEnd, setAtEnd] = (0, import_react7.useState)(true);
1093
- const updateScrollButtons = (0, import_react7.useCallback)(() => {
1109
+ const scrollerRef = (0, import_react8.useRef)(null);
1110
+ const [atStart, setAtStart] = (0, import_react8.useState)(true);
1111
+ const [atEnd, setAtEnd] = (0, import_react8.useState)(true);
1112
+ const updateScrollButtons = (0, import_react8.useCallback)(() => {
1094
1113
  const el = scrollerRef.current;
1095
1114
  if (!el) {
1096
1115
  setAtStart(true);
@@ -1101,7 +1120,7 @@ var useFilterScroll = (dependency) => {
1101
1120
  setAtStart(scrollLeft <= 0);
1102
1121
  setAtEnd(scrollLeft + clientWidth >= scrollWidth - 1);
1103
1122
  }, []);
1104
- (0, import_react7.useEffect)(() => {
1123
+ (0, import_react8.useEffect)(() => {
1105
1124
  const el = scrollerRef.current;
1106
1125
  updateScrollButtons();
1107
1126
  if (!el) {
@@ -1115,7 +1134,7 @@ var useFilterScroll = (dependency) => {
1115
1134
  window.removeEventListener("resize", updateScrollButtons);
1116
1135
  };
1117
1136
  }, [dependency, updateScrollButtons]);
1118
- const scrollByDir = (0, import_react7.useCallback)((dir) => {
1137
+ const scrollByDir = (0, import_react8.useCallback)((dir) => {
1119
1138
  const el = scrollerRef.current;
1120
1139
  if (!el) {
1121
1140
  return;
@@ -1135,7 +1154,7 @@ var useFilterScroll = (dependency) => {
1135
1154
  };
1136
1155
 
1137
1156
  // src/components/smart-filter/FilterChips.tsx
1138
- var import_jsx_runtime10 = require("react/jsx-runtime");
1157
+ var import_jsx_runtime11 = require("react/jsx-runtime");
1139
1158
  var containerStyles = {
1140
1159
  position: "relative",
1141
1160
  width: "100%"
@@ -1188,15 +1207,16 @@ var FilterChips = ({
1188
1207
  const { scrollerRef, atStart, atEnd, scrollByDir } = useFilterScroll(
1189
1208
  filters.length
1190
1209
  );
1191
- const [navHover, setNavHover] = import_react8.default.useState(null);
1192
- const [clearHover, setClearHover] = import_react8.default.useState(false);
1193
- const removeFilter = import_react8.default.useCallback(
1210
+ const { NextIcon: NextIcon2 } = useIcons();
1211
+ const [navHover, setNavHover] = import_react9.default.useState(null);
1212
+ const [clearHover, setClearHover] = import_react9.default.useState(false);
1213
+ const removeFilter = import_react9.default.useCallback(
1194
1214
  (filterId) => {
1195
1215
  void onFilterChange(filters.filter((f) => f.id !== filterId));
1196
1216
  },
1197
1217
  [filters, onFilterChange]
1198
1218
  );
1199
- const patchFilter = import_react8.default.useCallback(
1219
+ const patchFilter = import_react9.default.useCallback(
1200
1220
  (filterId, patch) => {
1201
1221
  const nextFilters = filters.map(
1202
1222
  (f) => f.id === filterId ? { ...f, ...patch } : f
@@ -1205,8 +1225,8 @@ var FilterChips = ({
1205
1225
  },
1206
1226
  [filters, onFilterChange]
1207
1227
  );
1208
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { style: containerStyles, children: [
1209
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
1228
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { style: containerStyles, children: [
1229
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
1210
1230
  "div",
1211
1231
  {
1212
1232
  ref: scrollerRef,
@@ -1217,7 +1237,7 @@ var FilterChips = ({
1217
1237
  ...styles == null ? void 0 : styles.scrollContainer
1218
1238
  },
1219
1239
  children: [
1220
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("style", { children: `
1240
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("style", { children: `
1221
1241
  div::-webkit-scrollbar {
1222
1242
  display: none;
1223
1243
  }
@@ -1225,7 +1245,7 @@ var FilterChips = ({
1225
1245
  beforeContent,
1226
1246
  filters.map((filter) => {
1227
1247
  var _a, _b;
1228
- const renderStandardChip = () => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1248
+ const renderStandardChip = () => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1229
1249
  Chip,
1230
1250
  {
1231
1251
  label: filter.label,
@@ -1240,7 +1260,7 @@ var FilterChips = ({
1240
1260
  if (!Number.isFinite(currentRating)) {
1241
1261
  return renderStandardChip();
1242
1262
  }
1243
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1263
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1244
1264
  MinRatingFilterChip,
1245
1265
  {
1246
1266
  star: filter.type === "starRating",
@@ -1258,7 +1278,7 @@ var FilterChips = ({
1258
1278
  );
1259
1279
  }
1260
1280
  if (filter.type === "priceRange" && filter.priceRange) {
1261
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1281
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1262
1282
  PriceRangeFilterChip,
1263
1283
  {
1264
1284
  priceRange: filter.priceRange,
@@ -1273,7 +1293,7 @@ var FilterChips = ({
1273
1293
  );
1274
1294
  }
1275
1295
  if (filter.type === "transformed_query") {
1276
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1296
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1277
1297
  TransformedQueryChip,
1278
1298
  {
1279
1299
  value: filter.value,
@@ -1287,7 +1307,7 @@ var FilterChips = ({
1287
1307
  );
1288
1308
  }
1289
1309
  if (filter.type === "selected_restaurant_price_levels") {
1290
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1310
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1291
1311
  RestaurantPriceLevelChip,
1292
1312
  {
1293
1313
  values: (_b = filter.priceLevels) != null ? _b : [],
@@ -1302,9 +1322,10 @@ var FilterChips = ({
1302
1322
  }
1303
1323
  return renderStandardChip();
1304
1324
  }),
1305
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1325
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1306
1326
  "button",
1307
1327
  {
1328
+ className: "mapfirst-clear-all-button",
1308
1329
  style: {
1309
1330
  flexShrink: 0,
1310
1331
  padding: "4px 16px",
@@ -1326,7 +1347,7 @@ var FilterChips = ({
1326
1347
  ]
1327
1348
  }
1328
1349
  ),
1329
- !atStart && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1350
+ !atStart && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1330
1351
  "div",
1331
1352
  {
1332
1353
  "aria-hidden": "true",
@@ -1337,7 +1358,7 @@ var FilterChips = ({
1337
1358
  }
1338
1359
  }
1339
1360
  ),
1340
- !atEnd && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1361
+ !atEnd && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1341
1362
  "div",
1342
1363
  {
1343
1364
  "aria-hidden": "true",
@@ -1348,7 +1369,7 @@ var FilterChips = ({
1348
1369
  }
1349
1370
  }
1350
1371
  ),
1351
- !atStart && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1372
+ !atStart && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1352
1373
  "button",
1353
1374
  {
1354
1375
  type: "button",
@@ -1363,10 +1384,10 @@ var FilterChips = ({
1363
1384
  onClick: () => scrollByDir("prev"),
1364
1385
  onMouseEnter: () => setNavHover("prev"),
1365
1386
  onMouseLeave: () => setNavHover(null),
1366
- children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(NextIcon, { style: { width: "20px", height: "20px" } })
1387
+ children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(NextIcon2, { style: { width: "20px", height: "20px" } })
1367
1388
  }
1368
1389
  ),
1369
- !atEnd && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1390
+ !atEnd && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1370
1391
  "button",
1371
1392
  {
1372
1393
  type: "button",
@@ -1380,14 +1401,14 @@ var FilterChips = ({
1380
1401
  onClick: () => scrollByDir("next"),
1381
1402
  onMouseEnter: () => setNavHover("next"),
1382
1403
  onMouseLeave: () => setNavHover(null),
1383
- children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(NextIcon, { style: { width: "20px", height: "20px" } })
1404
+ children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(NextIcon2, { style: { width: "20px", height: "20px" } })
1384
1405
  }
1385
1406
  )
1386
1407
  ] });
1387
1408
  };
1388
1409
 
1389
1410
  // src/components/SmartFilter.tsx
1390
- var import_jsx_runtime11 = require("react/jsx-runtime");
1411
+ var import_jsx_runtime12 = require("react/jsx-runtime");
1391
1412
  var containerStyles2 = {
1392
1413
  position: "relative",
1393
1414
  display: "flex",
@@ -1403,6 +1424,7 @@ var SmartFilter = ({
1403
1424
  currency = "USD",
1404
1425
  beforeContent,
1405
1426
  styles,
1427
+ customIcons,
1406
1428
  containerStyle,
1407
1429
  style
1408
1430
  }) => {
@@ -1411,7 +1433,7 @@ var SmartFilter = ({
1411
1433
  const previousFiltersLabel = t("smartFilter.nav.previous");
1412
1434
  const nextFiltersLabel = t("smartFilter.nav.next");
1413
1435
  const clearAllLabel = t("smartFilter.clearAll");
1414
- const handleFilterChange = (0, import_react9.useCallback)(
1436
+ const handleFilterChange = (0, import_react10.useCallback)(
1415
1437
  async (nextFilters, clearAll) => {
1416
1438
  if (isSearching) {
1417
1439
  return;
@@ -1424,13 +1446,13 @@ var SmartFilter = ({
1424
1446
  },
1425
1447
  [isSearching, onFilterChange]
1426
1448
  );
1427
- const resetFilters = (0, import_react9.useCallback)(() => {
1449
+ const resetFilters = (0, import_react10.useCallback)(() => {
1428
1450
  void handleFilterChange([]);
1429
1451
  }, [handleFilterChange]);
1430
- const clearAllFilters = (0, import_react9.useCallback)(() => {
1452
+ const clearAllFilters = (0, import_react10.useCallback)(() => {
1431
1453
  void handleFilterChange([], true);
1432
1454
  }, [handleFilterChange]);
1433
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(TranslationProvider, { value: customTranslations, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1455
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(IconsProvider, { value: customIcons, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(TranslationProvider, { value: customTranslations, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1434
1456
  "div",
1435
1457
  {
1436
1458
  style: {
@@ -1439,7 +1461,7 @@ var SmartFilter = ({
1439
1461
  ...containerStyle,
1440
1462
  ...style
1441
1463
  },
1442
- children: filters.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1464
+ children: filters.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1443
1465
  FilterChips,
1444
1466
  {
1445
1467
  filters,
@@ -1457,7 +1479,7 @@ var SmartFilter = ({
1457
1479
  }
1458
1480
  )
1459
1481
  }
1460
- ) });
1482
+ ) }) });
1461
1483
  };
1462
1484
 
1463
1485
  // src/index.tsx
@@ -1474,12 +1496,12 @@ function attachMapOnce(instanceRef, attachedRef, map, config) {
1474
1496
  attachedRef.current = true;
1475
1497
  }
1476
1498
  function useMapFirst(options) {
1477
- const optionsRef = import_react10.default.useRef(options);
1478
- import_react10.default.useEffect(() => {
1499
+ const optionsRef = import_react11.default.useRef(options);
1500
+ import_react11.default.useEffect(() => {
1479
1501
  optionsRef.current = options;
1480
1502
  });
1481
- const callbacksRef = import_react10.default.useRef({});
1482
- const instanceRef = import_react10.default.useRef(null);
1503
+ const callbacksRef = import_react11.default.useRef({});
1504
+ const instanceRef = import_react11.default.useRef(null);
1483
1505
  if (instanceRef.current === null) {
1484
1506
  instanceRef.current = new import_core.MapFirstCore({
1485
1507
  adapter: null,
@@ -1487,10 +1509,10 @@ function useMapFirst(options) {
1487
1509
  callbacks: callbacksRef.current
1488
1510
  });
1489
1511
  }
1490
- const [state, setState] = import_react10.default.useState(
1512
+ const [state, setState] = import_react11.default.useState(
1491
1513
  () => instanceRef.current.getState()
1492
1514
  );
1493
- import_react10.default.useEffect(() => {
1515
+ import_react11.default.useEffect(() => {
1494
1516
  if (!instanceRef.current) {
1495
1517
  callbacksRef.current = {};
1496
1518
  instanceRef.current = new import_core.MapFirstCore({
@@ -1569,17 +1591,17 @@ function useMapFirst(options) {
1569
1591
  instanceRef.current = null;
1570
1592
  };
1571
1593
  }, []);
1572
- const setPrimaryType = import_react10.default.useCallback((type) => {
1594
+ const setPrimaryType = import_react11.default.useCallback((type) => {
1573
1595
  if (instanceRef.current) {
1574
1596
  instanceRef.current.setPrimaryType(type);
1575
1597
  }
1576
1598
  }, []);
1577
- const setSelectedMarker = import_react10.default.useCallback((id) => {
1599
+ const setSelectedMarker = import_react11.default.useCallback((id) => {
1578
1600
  if (instanceRef.current) {
1579
1601
  instanceRef.current.setSelectedMarker(id);
1580
1602
  }
1581
1603
  }, []);
1582
- const setUseApi = import_react10.default.useCallback(
1604
+ const setUseApi = import_react11.default.useCallback(
1583
1605
  (useApi, autoLoad = true) => {
1584
1606
  if (instanceRef.current) {
1585
1607
  instanceRef.current.setUseApi(useApi, autoLoad);
@@ -1587,7 +1609,7 @@ function useMapFirst(options) {
1587
1609
  },
1588
1610
  []
1589
1611
  );
1590
- const propertiesSearch = import_react10.default.useCallback(
1612
+ const propertiesSearch = import_react11.default.useCallback(
1591
1613
  async (options2) => {
1592
1614
  if (!instanceRef.current) {
1593
1615
  throw new Error("MapFirst instance not available");
@@ -1596,7 +1618,7 @@ function useMapFirst(options) {
1596
1618
  },
1597
1619
  []
1598
1620
  );
1599
- const smartFilterSearch = import_react10.default.useCallback(
1621
+ const smartFilterSearch = import_react11.default.useCallback(
1600
1622
  async (options2) => {
1601
1623
  if (!instanceRef.current) {
1602
1624
  throw new Error("MapFirst instance not available");
@@ -1605,14 +1627,14 @@ function useMapFirst(options) {
1605
1627
  },
1606
1628
  []
1607
1629
  );
1608
- const boundsSearch = import_react10.default.useCallback(async () => {
1630
+ const boundsSearch = import_react11.default.useCallback(async () => {
1609
1631
  if (!instanceRef.current) {
1610
1632
  return null;
1611
1633
  }
1612
1634
  return await instanceRef.current.performBoundsSearch();
1613
1635
  }, []);
1614
- const mapLibreAttachedRef = import_react10.default.useRef(false);
1615
- const attachMapLibre = import_react10.default.useCallback(
1636
+ const mapLibreAttachedRef = import_react11.default.useRef(false);
1637
+ const attachMapLibre = import_react11.default.useCallback(
1616
1638
  (map, maplibregl, options2) => {
1617
1639
  attachMapOnce(instanceRef, mapLibreAttachedRef, map, {
1618
1640
  platform: "maplibre",
@@ -1623,8 +1645,8 @@ function useMapFirst(options) {
1623
1645
  },
1624
1646
  []
1625
1647
  );
1626
- const googleMapsAttachedRef = import_react10.default.useRef(false);
1627
- const attachGoogle = import_react10.default.useCallback(
1648
+ const googleMapsAttachedRef = import_react11.default.useRef(false);
1649
+ const attachGoogle = import_react11.default.useCallback(
1628
1650
  (map, google, options2) => {
1629
1651
  attachMapOnce(instanceRef, googleMapsAttachedRef, map, {
1630
1652
  platform: "google",
@@ -1635,8 +1657,8 @@ function useMapFirst(options) {
1635
1657
  },
1636
1658
  []
1637
1659
  );
1638
- const mapboxAttachedRef = import_react10.default.useRef(false);
1639
- const attachMapbox = import_react10.default.useCallback(
1660
+ const mapboxAttachedRef = import_react11.default.useRef(false);
1661
+ const attachMapbox = import_react11.default.useCallback(
1640
1662
  (map, mapboxgl, options2) => {
1641
1663
  attachMapOnce(instanceRef, mapboxAttachedRef, map, {
1642
1664
  platform: "mapbox",
@@ -1647,8 +1669,8 @@ function useMapFirst(options) {
1647
1669
  },
1648
1670
  []
1649
1671
  );
1650
- const leafletAttachedRef = import_react10.default.useRef(false);
1651
- const attachLeaflet = import_react10.default.useCallback(
1672
+ const leafletAttachedRef = import_react11.default.useRef(false);
1673
+ const attachLeaflet = import_react11.default.useCallback(
1652
1674
  (map, leaflet, options2) => {
1653
1675
  if (!instanceRef.current || !map || leafletAttachedRef.current) return;
1654
1676
  const adapter = new import_core.LeafletAdapter(map);
@@ -1710,6 +1732,7 @@ function useMapFirst(options) {
1710
1732
  CloseIcon,
1711
1733
  EditIcon,
1712
1734
  FilterChips,
1735
+ IconsProvider,
1713
1736
  LeafletAdapter,
1714
1737
  MapFirstCore,
1715
1738
  MinRatingFilterChip,
@@ -1731,6 +1754,7 @@ function useMapFirst(options) {
1731
1754
  processApiFilters,
1732
1755
  renderStars,
1733
1756
  useFilterScroll,
1757
+ useIcons,
1734
1758
  useMapFirst,
1735
1759
  useTranslation
1736
1760
  });