gsintegrations 0.0.485 → 0.0.486

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.
@@ -58777,6 +58777,10 @@ var DeleteOutline = createSvgIcon( /*#__PURE__*/jsx$1("path", {
58777
58777
  d: "M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6zM8 9h8v10H8zm7.5-5-1-1h-5l-1 1H5v2h14V4z"
58778
58778
  }), 'DeleteOutline');
58779
58779
 
58780
+ var DirectionsOutlined = createSvgIcon( /*#__PURE__*/jsx$1("path", {
58781
+ d: "m22.43 10.59-9.01-9.01c-.75-.75-2.07-.76-2.83 0l-9 9c-.78.78-.78 2.04 0 2.82l9 9c.39.39.9.58 1.41.58.51 0 1.02-.19 1.41-.58l8.99-8.99c.79-.76.8-2.02.03-2.82m-10.42 10.4-9-9 9-9 9 9zM8 11v4h2v-3h4v2.5l3.5-3.5L14 7.5V10H9c-.55 0-1 .45-1 1"
58782
+ }), 'DirectionsOutlined');
58783
+
58780
58784
  var DirectionsWalk = createSvgIcon( /*#__PURE__*/jsx$1("path", {
58781
58785
  d: "M13.5 5.5c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2M9.8 8.9 7 23h2.1l1.8-8 2.1 2v6h2v-7.5l-2.1-2 .6-3C14.8 12 16.8 13 19 13v-2c-1.9 0-3.5-1-4.3-2.4l-1-1.6c-.4-.6-1-1-1.7-1-.3 0-.5.1-.8.1L6 8.3V13h2V9.6z"
58782
58786
  }), 'DirectionsWalk');
@@ -59026,6 +59030,10 @@ var MoreVert = createSvgIcon( /*#__PURE__*/jsx$1("path", {
59026
59030
  d: "M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2m0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2"
59027
59031
  }), 'MoreVert');
59028
59032
 
59033
+ var MyLocation = createSvgIcon( /*#__PURE__*/jsx$1("path", {
59034
+ d: "M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4m8.94 3c-.46-4.17-3.77-7.48-7.94-7.94V1h-2v2.06C6.83 3.52 3.52 6.83 3.06 11H1v2h2.06c.46 4.17 3.77 7.48 7.94 7.94V23h2v-2.06c4.17-.46 7.48-3.77 7.94-7.94H23v-2zM12 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7"
59035
+ }), 'MyLocation');
59036
+
59029
59037
  var NavigateNext = createSvgIcon( /*#__PURE__*/jsx$1("path", {
59030
59038
  d: "M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"
59031
59039
  }), 'NavigateNext');
@@ -147218,6 +147226,7 @@ const ACTION_ICON_MAP = {
147218
147226
  "🧘": React__default.createElement(Spa, null),
147219
147227
  "🎓": React__default.createElement(School$1, null),
147220
147228
  "🌐": React__default.createElement(Public, null),
147229
+ place: React__default.createElement(Place, null),
147221
147230
  social: React__default.createElement(Public, null),
147222
147231
  public: React__default.createElement(Public, null),
147223
147232
  };
@@ -147876,7 +147885,7 @@ function getEventCoordinates(event) {
147876
147885
  return null;
147877
147886
  }
147878
147887
 
147879
- const CSS = /*#__PURE__*/Object.freeze({
147888
+ const CSS$1 = /*#__PURE__*/Object.freeze({
147880
147889
  Translate: {
147881
147890
  toString(transform) {
147882
147891
  if (!transform) {
@@ -147911,7 +147920,7 @@ const CSS = /*#__PURE__*/Object.freeze({
147911
147920
  return;
147912
147921
  }
147913
147922
 
147914
- return [CSS.Translate.toString(transform), CSS.Scale.toString(transform)].join(' ');
147923
+ return [CSS$1.Translate.toString(transform), CSS$1.Scale.toString(transform)].join(' ');
147915
147924
  }
147916
147925
 
147917
147926
  },
@@ -151750,7 +151759,7 @@ const defaultTransition = {
151750
151759
  easing: 'ease'
151751
151760
  };
151752
151761
  const transitionProperty = 'transform';
151753
- const disabledTransition = /*#__PURE__*/CSS.Transition.toString({
151762
+ const disabledTransition = /*#__PURE__*/CSS$1.Transition.toString({
151754
151763
  property: transitionProperty,
151755
151764
  duration: 0,
151756
151765
  easing: 'linear'
@@ -151984,7 +151993,7 @@ function useSortable(_ref) {
151984
151993
  }
151985
151994
 
151986
151995
  if (isSorting || shouldAnimateLayoutChanges) {
151987
- return CSS.Transition.toString({ ...transition,
151996
+ return CSS$1.Transition.toString({ ...transition,
151988
151997
  property: transitionProperty
151989
151998
  });
151990
151999
  }
@@ -152671,7 +152680,7 @@ const SortableOrderRow = ({ widget, index, total, onMove }) => {
152671
152680
  const theme = useTheme$1();
152672
152681
  const { attributes, listeners, setNodeRef, setActivatorNodeRef, transform, transition, isDragging, } = useSortable({ id: widget.id });
152673
152682
  return (React__default.createElement(Box$1, { ref: setNodeRef, style: {
152674
- transform: CSS.Transform.toString(transform),
152683
+ transform: CSS$1.Transform.toString(transform),
152675
152684
  transition,
152676
152685
  }, sx: {
152677
152686
  display: "flex",
@@ -155007,6 +155016,14 @@ const useHomePage = (props) => {
155007
155016
  route: "/terreiro",
155008
155017
  color: "primary",
155009
155018
  },
155019
+ {
155020
+ id: "terreiro-search",
155021
+ title: "Terreiros",
155022
+ description: "Buscar casas próximas",
155023
+ icon: "place",
155024
+ route: "/terreiros/buscar",
155025
+ color: "primary",
155026
+ },
155010
155027
  {
155011
155028
  id: "mediums",
155012
155029
  title: "Médiuns",
@@ -155142,6 +155159,7 @@ const useHomePage = (props) => {
155142
155159
  // Admin + personal: include Social when feature enabled
155143
155160
  return withSocialUnreadBadge(filterByIds(withSocialPersonalOnly(withIngressos([
155144
155161
  "terreiro",
155162
+ "terreiro-search",
155145
155163
  "activities",
155146
155164
  "ritual-baths",
155147
155165
  "inventory",
@@ -155153,6 +155171,7 @@ const useHomePage = (props) => {
155153
155171
  // Admin + terreiro: no Social
155154
155172
  return filterByIds(withIngressos([
155155
155173
  "terreiro",
155174
+ "terreiro-search",
155156
155175
  "mediums",
155157
155176
  "activities",
155158
155177
  "events",
@@ -155167,6 +155186,7 @@ const useHomePage = (props) => {
155167
155186
  if (selectedTerreiro) {
155168
155187
  const filtered = filterByIds(withIngressos([
155169
155188
  "terreiro",
155189
+ "terreiro-search",
155170
155190
  "mediums",
155171
155191
  "activities",
155172
155192
  "events",
@@ -155180,6 +155200,7 @@ const useHomePage = (props) => {
155180
155200
  // Non-admin + personal profile: include Social when feature enabled
155181
155201
  return withSocialUnreadBadge(filterByIds(withSocialPersonalOnly([
155182
155202
  "terreiro",
155203
+ "terreiro-search",
155183
155204
  "activities",
155184
155205
  "ritual-baths",
155185
155206
  "inventory",
@@ -161017,7 +161038,7 @@ const FormGrid$8 = styled$1(Grid$1)(({ theme }) => ({
161017
161038
  const CEP_MIN_LENGTH = 8;
161018
161039
  const ZIP_PLACEHOLDER = "00000-000";
161019
161040
  const ADORNMENT_SPINNER_SIZE = 20;
161020
- const GOOGLE_SEARCH_PLACEHOLDER = "Digite o endereço para buscar no Google";
161041
+ const GOOGLE_SEARCH_PLACEHOLDER$1 = "Digite o endereço para buscar no Google";
161021
161042
  const AddressPage = (props) => {
161022
161043
  const theme = useTheme$1();
161023
161044
  const { data, fns } = useAddressPage(props);
@@ -161089,7 +161110,7 @@ const AddressPage = (props) => {
161089
161110
  }
161090
161111
  }, onChange: (_, newValue) => {
161091
161112
  fns.handleGoogleSuggestionSelect(newValue);
161092
- }, renderInput: (params) => (React__default.createElement(TextField$1, Object.assign({}, params, { label: "Buscar endere\u00E7o", placeholder: GOOGLE_SEARCH_PLACEHOLDER, fullWidth: true, "data-testid": "address-google-search", InputProps: Object.assign(Object.assign({}, params.InputProps), { startAdornment: (React__default.createElement(InputAdornment$1, { position: "start" },
161113
+ }, renderInput: (params) => (React__default.createElement(TextField$1, Object.assign({}, params, { label: "Buscar endere\u00E7o", placeholder: GOOGLE_SEARCH_PLACEHOLDER$1, fullWidth: true, "data-testid": "address-google-search", InputProps: Object.assign(Object.assign({}, params.InputProps), { startAdornment: (React__default.createElement(InputAdornment$1, { position: "start" },
161093
161114
  React__default.createElement(LocationOn, { sx: { color: theme.palette.text.secondary } }))) }) }))) }),
161094
161115
  data.googleSearchError && (React__default.createElement(Box$1, { sx: { mt: 1 } },
161095
161116
  React__default.createElement(Alert$1, { severity: "warning" }, data.googleSearchError))),
@@ -181397,6 +181418,733 @@ const QrLandingPagePropsSchema = objectType({
181397
181418
  .optional(),
181398
181419
  });
181399
181420
 
181421
+ const GOOGLE_SEARCH_PLACEHOLDER = "Digite o endereço para buscar no Google";
181422
+ const MIN_SEARCH_LENGTH = 3;
181423
+ const TerreiroLocationSearch = ({ apiKey, onSelect, onUnavailable, }) => {
181424
+ const theme = useTheme$1();
181425
+ const onUnavailableRef = useRef(onUnavailable);
181426
+ const onSelectRef = useRef(onSelect);
181427
+ onUnavailableRef.current = onUnavailable;
181428
+ onSelectRef.current = onSelect;
181429
+ const servicesRef = useRef({});
181430
+ const [ready, setReady] = useState(false);
181431
+ const [loading, setLoading] = useState(false);
181432
+ const [inputValue, setInputValue] = useState("");
181433
+ const [suggestions, setSuggestions] = useState([]);
181434
+ const [error, setError] = useState(null);
181435
+ useEffect(() => {
181436
+ let cancelled = false;
181437
+ loadGoogleMapsPlacesScript(apiKey, "pt-BR", "BR")
181438
+ .then(() => {
181439
+ var _a, _b;
181440
+ if (cancelled)
181441
+ return;
181442
+ const places = (_b = (_a = window.google) === null || _a === void 0 ? void 0 : _a.maps) === null || _b === void 0 ? void 0 : _b.places;
181443
+ if (!(places === null || places === void 0 ? void 0 : places.AutocompleteService) || !(places === null || places === void 0 ? void 0 : places.PlacesService)) {
181444
+ onUnavailableRef.current();
181445
+ return;
181446
+ }
181447
+ servicesRef.current.autocompleteService = new places.AutocompleteService();
181448
+ const container = document.createElement("div");
181449
+ servicesRef.current.placesService = new places.PlacesService(container);
181450
+ setReady(true);
181451
+ })
181452
+ .catch(() => {
181453
+ if (!cancelled)
181454
+ onUnavailableRef.current();
181455
+ });
181456
+ return () => {
181457
+ cancelled = true;
181458
+ };
181459
+ }, [apiKey]);
181460
+ const search = (value) => {
181461
+ var _a, _b;
181462
+ const autocomplete = servicesRef.current.autocompleteService;
181463
+ const places = (_b = (_a = window.google) === null || _a === void 0 ? void 0 : _a.maps) === null || _b === void 0 ? void 0 : _b.places;
181464
+ if (!autocomplete || !places)
181465
+ return;
181466
+ if (value.trim().length < MIN_SEARCH_LENGTH) {
181467
+ setSuggestions([]);
181468
+ setError(null);
181469
+ return;
181470
+ }
181471
+ setLoading(true);
181472
+ setError(null);
181473
+ autocomplete.getPlacePredictions({
181474
+ input: value,
181475
+ componentRestrictions: { country: "br" },
181476
+ types: ["address"],
181477
+ }, (predictions, status) => {
181478
+ setLoading(false);
181479
+ if (status !== places.PlacesServiceStatus.OK) {
181480
+ setSuggestions([]);
181481
+ if (status !== places.PlacesServiceStatus.ZERO_RESULTS) {
181482
+ setError("Não foi possível buscar endereços no Google");
181483
+ }
181484
+ return;
181485
+ }
181486
+ setSuggestions((predictions !== null && predictions !== void 0 ? predictions : []).map((prediction) => ({
181487
+ description: prediction.description,
181488
+ placeId: prediction.place_id,
181489
+ })));
181490
+ });
181491
+ };
181492
+ const selectSuggestion = (suggestion) => {
181493
+ var _a, _b;
181494
+ if (!suggestion)
181495
+ return;
181496
+ const placesService = servicesRef.current.placesService;
181497
+ const places = (_b = (_a = window.google) === null || _a === void 0 ? void 0 : _a.maps) === null || _b === void 0 ? void 0 : _b.places;
181498
+ if (!placesService || !places) {
181499
+ setError("Não foi possível carregar os detalhes do endereço");
181500
+ return;
181501
+ }
181502
+ setInputValue(suggestion.description);
181503
+ setLoading(true);
181504
+ setError(null);
181505
+ placesService.getDetails({
181506
+ placeId: suggestion.placeId,
181507
+ fields: ["address_components", "formatted_address"],
181508
+ }, (place, status) => {
181509
+ var _a;
181510
+ setLoading(false);
181511
+ if (status !== places.PlacesServiceStatus.OK || !place) {
181512
+ setError("Não foi possível obter detalhes do endereço");
181513
+ return;
181514
+ }
181515
+ const mapped = mapGooglePlaceToAddressForm({
181516
+ address_components: place.address_components,
181517
+ formatted_address: place.formatted_address,
181518
+ });
181519
+ if (!mapped.city) {
181520
+ setError("Não foi possível identificar a cidade deste endereço");
181521
+ return;
181522
+ }
181523
+ onSelectRef.current(mapped.city, (_a = mapped.state) !== null && _a !== void 0 ? _a : "");
181524
+ });
181525
+ };
181526
+ if (!ready)
181527
+ return null;
181528
+ return (React__default.createElement(Autocomplete$1, { options: suggestions, getOptionLabel: (option) => option.description, filterOptions: (options) => options, loading: loading, inputValue: inputValue, onInputChange: (_, value, reason) => {
181529
+ if (reason !== "input" && reason !== "clear")
181530
+ return;
181531
+ setInputValue(value);
181532
+ search(value);
181533
+ }, onChange: (_, value) => selectSuggestion(value), isOptionEqualToValue: (option, value) => option.placeId === value.placeId, noOptionsText: error !== null && error !== void 0 ? error : (inputValue.trim().length >= MIN_SEARCH_LENGTH
181534
+ ? "Nenhum endereço encontrado para esta busca."
181535
+ : "Digite ao menos 3 caracteres"), renderInput: (params) => (React__default.createElement(TextField$1, Object.assign({}, params, { label: "Buscar endere\u00E7o", placeholder: GOOGLE_SEARCH_PLACEHOLDER, fullWidth: true, error: Boolean(error), helperText: error !== null && error !== void 0 ? error : undefined, inputProps: Object.assign(Object.assign({}, params.inputProps), { "data-testid": "terreiro-search-address" }), sx: {
181536
+ "& .MuiInputBase-input": { color: "text.primary" },
181537
+ "& .MuiInputBase-input::placeholder": { color: "text.secondary", opacity: 1 },
181538
+ }, InputProps: Object.assign(Object.assign({}, params.InputProps), { startAdornment: (React__default.createElement(InputAdornment$1, { position: "start" },
181539
+ React__default.createElement(LocationOn, { sx: { color: theme.palette.text.secondary } }))), endAdornment: (React__default.createElement(React__default.Fragment, null,
181540
+ loading ? React__default.createElement(CircularProgress$1, { size: 20 }) : null,
181541
+ params.InputProps.endAdornment)) }) }))) }));
181542
+ };
181543
+
181544
+ const BRAZIL_CENTER = { lat: -14.2, lng: -51.9 };
181545
+ const BRAZIL_ZOOM = 4;
181546
+ const SINGLE_RESULT_ZOOM = 15;
181547
+ const USER_LOCATION_ZOOM = 13;
181548
+ const PIN_ORANGE = "#BA4813";
181549
+ const PIN_COAL = "#201C10";
181550
+ const PIN_CREAM = "#F3E2B3";
181551
+ const mapColorScheme = (mode) => {
181552
+ var _a, _b;
181553
+ const scheme = (_b = (_a = window.google) === null || _a === void 0 ? void 0 : _a.maps) === null || _b === void 0 ? void 0 : _b.ColorScheme;
181554
+ if (!scheme)
181555
+ return undefined;
181556
+ if (scheme.FOLLOW_SYSTEM)
181557
+ return scheme.FOLLOW_SYSTEM;
181558
+ return mode === "dark" ? scheme.DARK : scheme.LIGHT;
181559
+ };
181560
+ const finitePlaces = (results) => (results !== null && results !== void 0 ? results : []).filter((place) => Number.isFinite(place.latitude) && Number.isFinite(place.longitude));
181561
+ const pinIcon = (selected, mode) => {
181562
+ var _a, _b, _c;
181563
+ const maps = (_a = window.google) === null || _a === void 0 ? void 0 : _a.maps;
181564
+ const idleFill = mode === "dark" ? PIN_CREAM : PIN_COAL;
181565
+ const idleStroke = mode === "dark" ? PIN_COAL : PIN_CREAM;
181566
+ return {
181567
+ path: (_c = (_b = maps === null || maps === void 0 ? void 0 : maps.SymbolPath) === null || _b === void 0 ? void 0 : _b.CIRCLE) !== null && _c !== void 0 ? _c : 0,
181568
+ scale: selected ? 11 : 8,
181569
+ fillColor: selected ? PIN_ORANGE : idleFill,
181570
+ fillOpacity: 1,
181571
+ strokeColor: selected ? PIN_CREAM : idleStroke,
181572
+ strokeWeight: 2,
181573
+ };
181574
+ };
181575
+ const TerreiroResultMap = ({ apiKey, results, selectedPlaceId, userCoordinates, layoutKey = null, onSelectPlace, }) => {
181576
+ var _a, _b;
181577
+ const theme = useTheme$1();
181578
+ const mode = theme.palette.mode;
181579
+ const modeRef = useRef(mode);
181580
+ modeRef.current = mode;
181581
+ const containerRef = useRef(null);
181582
+ const mapRef = useRef(null);
181583
+ const markersRef = useRef(new Map());
181584
+ const onSelectRef = useRef(onSelectPlace);
181585
+ const resultsRef = useRef(results);
181586
+ const userCoordinatesRef = useRef(userCoordinates);
181587
+ const selectedPlaceIdRef = useRef(selectedPlaceId);
181588
+ const [mapReady, setMapReady] = useState(false);
181589
+ const [mapFailed, setMapFailed] = useState(!(apiKey === null || apiKey === void 0 ? void 0 : apiKey.trim()));
181590
+ const [mapEpoch, setMapEpoch] = useState(0);
181591
+ onSelectRef.current = onSelectPlace;
181592
+ resultsRef.current = results;
181593
+ userCoordinatesRef.current = userCoordinates;
181594
+ selectedPlaceIdRef.current = selectedPlaceId;
181595
+ const trimmedKey = (_a = apiKey === null || apiKey === void 0 ? void 0 : apiKey.trim()) !== null && _a !== void 0 ? _a : "";
181596
+ const resultSignature = (_b = results === null || results === void 0 ? void 0 : results.map((place) => `${place.placeId}:${place.latitude}:${place.longitude}`).join("|")) !== null && _b !== void 0 ? _b : "";
181597
+ const userLocationKey = userCoordinates
181598
+ ? `${userCoordinates.latitude},${userCoordinates.longitude}`
181599
+ : "";
181600
+ useEffect(() => {
181601
+ if (!trimmedKey) {
181602
+ setMapFailed(true);
181603
+ setMapReady(false);
181604
+ return;
181605
+ }
181606
+ let cancelled = false;
181607
+ setMapFailed(false);
181608
+ loadGoogleMapsPlacesScript(trimmedKey, "pt-BR", "BR")
181609
+ .then(() => {
181610
+ var _a, _b, _c, _d;
181611
+ if (cancelled)
181612
+ return;
181613
+ if (!((_b = (_a = window.google) === null || _a === void 0 ? void 0 : _a.maps) === null || _b === void 0 ? void 0 : _b.Map) || !((_d = (_c = window.google) === null || _c === void 0 ? void 0 : _c.maps) === null || _d === void 0 ? void 0 : _d.Marker)) {
181614
+ setMapFailed(true);
181615
+ return;
181616
+ }
181617
+ setMapReady(true);
181618
+ })
181619
+ .catch(() => {
181620
+ if (!cancelled)
181621
+ setMapFailed(true);
181622
+ });
181623
+ return () => {
181624
+ cancelled = true;
181625
+ };
181626
+ }, [trimmedKey]);
181627
+ useEffect(() => {
181628
+ var _a, _b;
181629
+ if (!mapReady || !containerRef.current || !((_b = (_a = window.google) === null || _a === void 0 ? void 0 : _a.maps) === null || _b === void 0 ? void 0 : _b.Map))
181630
+ return;
181631
+ const colorScheme = mapColorScheme(modeRef.current);
181632
+ const map = new window.google.maps.Map(containerRef.current, Object.assign({ center: BRAZIL_CENTER, zoom: BRAZIL_ZOOM, disableDefaultUI: true, zoomControl: true, clickableIcons: false, gestureHandling: "greedy", mapTypeControl: false, streetViewControl: false, fullscreenControl: false }, (colorScheme ? { colorScheme } : {})));
181633
+ mapRef.current = map;
181634
+ setMapEpoch((epoch) => epoch + 1);
181635
+ return () => {
181636
+ markersRef.current.forEach((marker) => marker.setMap(null));
181637
+ markersRef.current.clear();
181638
+ mapRef.current = null;
181639
+ };
181640
+ }, [mapReady]);
181641
+ useEffect(() => {
181642
+ var _a;
181643
+ const map = mapRef.current;
181644
+ const maps = (_a = window.google) === null || _a === void 0 ? void 0 : _a.maps;
181645
+ if (!mapReady || !map || !(maps === null || maps === void 0 ? void 0 : maps.Marker))
181646
+ return;
181647
+ const places = finitePlaces(resultsRef.current);
181648
+ const nextIds = new Set(places.map((place) => place.placeId));
181649
+ markersRef.current.forEach((marker, id) => {
181650
+ if (!nextIds.has(id)) {
181651
+ marker.setMap(null);
181652
+ markersRef.current.delete(id);
181653
+ }
181654
+ });
181655
+ places.forEach((place) => {
181656
+ const position = { lat: place.latitude, lng: place.longitude };
181657
+ const existing = markersRef.current.get(place.placeId);
181658
+ if (existing) {
181659
+ existing.setPosition(position);
181660
+ return;
181661
+ }
181662
+ const marker = new maps.Marker({
181663
+ map,
181664
+ position,
181665
+ title: place.name,
181666
+ icon: pinIcon(place.placeId === selectedPlaceIdRef.current, modeRef.current),
181667
+ });
181668
+ marker.addListener("click", () => onSelectRef.current(place.placeId));
181669
+ markersRef.current.set(place.placeId, marker);
181670
+ });
181671
+ if (places.length === 1) {
181672
+ map.setCenter({ lat: places[0].latitude, lng: places[0].longitude });
181673
+ map.setZoom(SINGLE_RESULT_ZOOM);
181674
+ return;
181675
+ }
181676
+ if (places.length > 1) {
181677
+ const bounds = new maps.LatLngBounds();
181678
+ places.forEach((place) => {
181679
+ bounds.extend({ lat: place.latitude, lng: place.longitude });
181680
+ });
181681
+ map.fitBounds(bounds, 48);
181682
+ return;
181683
+ }
181684
+ const coords = userCoordinatesRef.current;
181685
+ if (coords && Number.isFinite(coords.latitude) && Number.isFinite(coords.longitude)) {
181686
+ map.setCenter({ lat: coords.latitude, lng: coords.longitude });
181687
+ map.setZoom(USER_LOCATION_ZOOM);
181688
+ return;
181689
+ }
181690
+ map.setCenter(BRAZIL_CENTER);
181691
+ map.setZoom(BRAZIL_ZOOM);
181692
+ }, [mapEpoch, mapReady, resultSignature, userLocationKey]);
181693
+ useEffect(() => {
181694
+ var _a;
181695
+ const map = mapRef.current;
181696
+ if (!mapReady || !map)
181697
+ return;
181698
+ const scheme = mapColorScheme(mode);
181699
+ if (scheme)
181700
+ (_a = map.setOptions) === null || _a === void 0 ? void 0 : _a.call(map, { colorScheme: scheme });
181701
+ markersRef.current.forEach((marker, id) => {
181702
+ marker.setIcon(pinIcon(id === selectedPlaceId, mode));
181703
+ });
181704
+ if (!selectedPlaceId)
181705
+ return;
181706
+ const place = finitePlaces(resultsRef.current).find((item) => item.placeId === selectedPlaceId);
181707
+ if (!place)
181708
+ return;
181709
+ map.panTo({ lat: place.latitude, lng: place.longitude });
181710
+ }, [mapEpoch, mapReady, mode, resultSignature, selectedPlaceId]);
181711
+ useEffect(() => {
181712
+ var _a, _b, _c, _d;
181713
+ const map = mapRef.current;
181714
+ if (!mapReady || !map || layoutKey === null)
181715
+ return;
181716
+ (_d = (_c = (_b = (_a = window.google) === null || _a === void 0 ? void 0 : _a.maps) === null || _b === void 0 ? void 0 : _b.event) === null || _c === void 0 ? void 0 : _c.trigger) === null || _d === void 0 ? void 0 : _d.call(_c, map, "resize");
181717
+ }, [layoutKey, mapEpoch, mapReady]);
181718
+ const showPlaceholder = !trimmedKey || mapFailed || !mapReady;
181719
+ return (React__default.createElement(Box$1, { sx: { position: "absolute", inset: 0 } },
181720
+ React__default.createElement(Box$1, { ref: containerRef, role: "region", "aria-label": "Mapa de terreiros", "data-testid": "terreiro-search-map", sx: { position: "absolute", inset: 0, bgcolor: "background.default" } }),
181721
+ showPlaceholder ? (React__default.createElement(Box$1, { "aria-hidden": true, "data-testid": "terreiro-search-map-placeholder", sx: {
181722
+ position: "absolute",
181723
+ inset: 0,
181724
+ bgcolor: "background.default",
181725
+ zIndex: 1,
181726
+ } })) : null));
181727
+ };
181728
+
181729
+ const TRADITIONS = ["Umbanda", "Candomblé", "Omolocô", "Quimbanda"];
181730
+ const statusLabel = (status) => {
181731
+ if (status === "CLOSED_PERMANENTLY")
181732
+ return "Fechado permanentemente";
181733
+ if (status === "CLOSED_TEMPORARILY")
181734
+ return "Fechado temporariamente";
181735
+ return null;
181736
+ };
181737
+ const traditionPressed = (query, tradition) => query.trim().localeCompare(tradition, "pt-BR", { sensitivity: "accent" }) === 0;
181738
+ const floatingControlShadow = "0 4px 16px rgba(32, 28, 16, 0.12)";
181739
+ const PEEK_HEIGHT = 72;
181740
+ const TOP_CLEARANCE = 120;
181741
+ const DRAG_SLOP = 5;
181742
+ const maxSheetHeight = () => {
181743
+ const viewport = typeof window === "undefined" ? 800 : window.innerHeight;
181744
+ return Math.max(PEEK_HEIGHT, viewport - TOP_CLEARANCE);
181745
+ };
181746
+ const defaultOpenHeight = () => {
181747
+ const viewport = typeof window === "undefined" ? 800 : window.innerHeight;
181748
+ return Math.round(Math.min(Math.max(viewport * 0.4, PEEK_HEIGHT), maxSheetHeight()));
181749
+ };
181750
+ const focusRing = {
181751
+ "&:focus-visible": {
181752
+ outline: "2px solid",
181753
+ outlineColor: "primary.main",
181754
+ outlineOffset: 2,
181755
+ },
181756
+ };
181757
+ const ResultRow = ({ place, selected, onSelect, onOpenMaps }) => {
181758
+ const closedLabel = statusLabel(place.businessStatus);
181759
+ return (React__default.createElement(Box$1, { component: "li", "data-testid": `terreiro-search-result-${place.placeId}`, sx: {
181760
+ display: "flex",
181761
+ alignItems: "center",
181762
+ gap: 0.5,
181763
+ minHeight: 56,
181764
+ listStyle: "none",
181765
+ } },
181766
+ React__default.createElement(Box$1, { component: "button", type: "button", "aria-pressed": selected, onClick: () => onSelect(place.placeId), sx: Object.assign({ flex: 1, minWidth: 0, minHeight: 56, display: "flex", alignItems: "center", gap: 1.5, py: 1, px: 0, border: 0, background: "transparent", textAlign: "left", cursor: "pointer", color: "inherit" }, focusRing) },
181767
+ React__default.createElement(Box$1, { "aria-hidden": true, sx: {
181768
+ width: 40,
181769
+ height: 40,
181770
+ borderRadius: "50%",
181771
+ display: "grid",
181772
+ placeItems: "center",
181773
+ flexShrink: 0,
181774
+ bgcolor: (theme) => alpha(selected ? theme.palette.primary.main : theme.palette.text.primary, 0.12),
181775
+ color: selected ? "primary.main" : "text.primary",
181776
+ } },
181777
+ React__default.createElement(PlaceOutlined, { fontSize: "small" })),
181778
+ React__default.createElement(Box$1, { sx: { minWidth: 0 } },
181779
+ React__default.createElement(Typography$1, { sx: {
181780
+ fontWeight: 700,
181781
+ fontSize: 16,
181782
+ color: selected ? "primary.main" : "text.primary",
181783
+ } }, place.name),
181784
+ React__default.createElement(Typography$1, { sx: { fontSize: 13, color: "text.secondary" } }, place.formattedAddress),
181785
+ closedLabel ? (React__default.createElement(Typography$1, { sx: { fontSize: 12, color: "text.secondary" } }, closedLabel)) : null)),
181786
+ React__default.createElement(Link$1, { href: place.googleMapsUrl, target: "_blank", rel: "noopener noreferrer", "aria-label": "Ver no Google Maps", "data-testid": `terreiro-search-maps-${place.placeId}`, onClick: () => onOpenMaps(place), sx: Object.assign({ width: 44, height: 44, display: "inline-flex", alignItems: "center", justifyContent: "center", flexShrink: 0, color: "text.primary", borderRadius: "50%" }, focusRing) },
181787
+ React__default.createElement(DirectionsOutlined, null))));
181788
+ };
181789
+ const NearbyTerreiroSearchPage = ({ query, onQueryChange, city, onCityChange, state, onStateChange, locationMode, geolocationNotice, isLocating = false, isLoading = false, isLoadingMore = false, results, errorMessage, hasMore = false, onSearch, onUseMyLocation, onRetry, onLoadMore, onOpenMaps, onBack, googleMapsApiKey, userCoordinates, }) => {
181790
+ const theme = useTheme$1();
181791
+ const isWide = useMediaQuery(theme.breakpoints.up("sm"));
181792
+ const [locationOpen, setLocationOpen] = useState(false);
181793
+ const [addressSearchUnavailable, setAddressSearchUnavailable] = useState(false);
181794
+ const [selectedPlaceId, setSelectedPlaceId] = useState(null);
181795
+ const [sheetHeight, setSheetHeight] = useState(null);
181796
+ const hasSheetContent = isLoading || Boolean(errorMessage) || results !== null;
181797
+ const listVisible = Boolean(results && results.length > 0);
181798
+ const previousMode = useRef(locationMode);
181799
+ const lastOpenHeight = useRef(defaultOpenHeight());
181800
+ const dragOrigin = useRef(null);
181801
+ const dragMoved = useRef(false);
181802
+ const resolvedSheetHeight = sheetHeight !== null && sheetHeight !== void 0 ? sheetHeight : defaultOpenHeight();
181803
+ const sheetOpen = resolvedSheetHeight > PEEK_HEIGHT + DRAG_SLOP;
181804
+ useEffect(() => {
181805
+ if (!listVisible || sheetHeight !== null)
181806
+ return;
181807
+ const open = defaultOpenHeight();
181808
+ lastOpenHeight.current = open;
181809
+ setSheetHeight(open);
181810
+ }, [listVisible, sheetHeight]);
181811
+ const toggleSheet = () => {
181812
+ setSheetHeight((current) => {
181813
+ const height = current !== null && current !== void 0 ? current : defaultOpenHeight();
181814
+ if (height <= PEEK_HEIGHT + DRAG_SLOP) {
181815
+ const open = lastOpenHeight.current > PEEK_HEIGHT + DRAG_SLOP
181816
+ ? lastOpenHeight.current
181817
+ : defaultOpenHeight();
181818
+ return Math.min(open, maxSheetHeight());
181819
+ }
181820
+ lastOpenHeight.current = height;
181821
+ return PEEK_HEIGHT;
181822
+ });
181823
+ };
181824
+ const onHandlePointerDown = (event) => {
181825
+ if (!listVisible)
181826
+ return;
181827
+ dragMoved.current = false;
181828
+ dragOrigin.current = {
181829
+ y: event.clientY,
181830
+ height: sheetHeight !== null && sheetHeight !== void 0 ? sheetHeight : defaultOpenHeight(),
181831
+ };
181832
+ if (event.currentTarget.setPointerCapture && Number.isFinite(event.pointerId)) {
181833
+ event.currentTarget.setPointerCapture(event.pointerId);
181834
+ }
181835
+ };
181836
+ const onHandlePointerMove = (event) => {
181837
+ const origin = dragOrigin.current;
181838
+ if (!origin)
181839
+ return;
181840
+ if (Math.abs(origin.y - event.clientY) > DRAG_SLOP)
181841
+ dragMoved.current = true;
181842
+ if (!dragMoved.current)
181843
+ return;
181844
+ const next = Math.min(maxSheetHeight(), Math.max(PEEK_HEIGHT, origin.height + (origin.y - event.clientY)));
181845
+ setSheetHeight(next);
181846
+ };
181847
+ const onHandlePointerUp = (event) => {
181848
+ if (!dragOrigin.current)
181849
+ return;
181850
+ dragOrigin.current = null;
181851
+ if (event.currentTarget.hasPointerCapture &&
181852
+ Number.isFinite(event.pointerId) &&
181853
+ event.currentTarget.hasPointerCapture(event.pointerId)) {
181854
+ event.currentTarget.releasePointerCapture(event.pointerId);
181855
+ }
181856
+ if (!dragMoved.current)
181857
+ return;
181858
+ setSheetHeight((current) => {
181859
+ if (current !== null && current > PEEK_HEIGHT + DRAG_SLOP) {
181860
+ lastOpenHeight.current = current;
181861
+ }
181862
+ return current;
181863
+ });
181864
+ };
181865
+ const onHandleClick = () => {
181866
+ if (!listVisible)
181867
+ return;
181868
+ if (dragMoved.current) {
181869
+ dragMoved.current = false;
181870
+ return;
181871
+ }
181872
+ toggleSheet();
181873
+ };
181874
+ const trimmedQuery = query.trim();
181875
+ const locationReady = locationMode === "geolocation" || city.trim().length >= 2;
181876
+ const canSearch = trimmedQuery.length >= 3 &&
181877
+ trimmedQuery.length <= 80 &&
181878
+ locationReady &&
181879
+ !isLoading &&
181880
+ !isLocating;
181881
+ useEffect(() => {
181882
+ if (previousMode.current !== "geolocation" && locationMode === "geolocation") {
181883
+ setLocationOpen(false);
181884
+ }
181885
+ previousMode.current = locationMode;
181886
+ }, [locationMode]);
181887
+ useEffect(() => {
181888
+ if (!selectedPlaceId)
181889
+ return;
181890
+ if (!(results === null || results === void 0 ? void 0 : results.some((place) => place.placeId === selectedPlaceId))) {
181891
+ setSelectedPlaceId(null);
181892
+ }
181893
+ }, [results, selectedPlaceId]);
181894
+ useEffect(() => {
181895
+ if (!selectedPlaceId || !listVisible)
181896
+ return;
181897
+ setSheetHeight((current) => {
181898
+ const height = current !== null && current !== void 0 ? current : defaultOpenHeight();
181899
+ if (height > PEEK_HEIGHT + DRAG_SLOP)
181900
+ return current;
181901
+ const open = lastOpenHeight.current > PEEK_HEIGHT + DRAG_SLOP
181902
+ ? lastOpenHeight.current
181903
+ : defaultOpenHeight();
181904
+ return Math.min(open, maxSheetHeight());
181905
+ });
181906
+ let innerFrame = 0;
181907
+ const outerFrame = requestAnimationFrame(() => {
181908
+ innerFrame = requestAnimationFrame(() => {
181909
+ var _a;
181910
+ const row = (_a = document
181911
+ .getElementById("terreiro-search-sheet-body")) === null || _a === void 0 ? void 0 : _a.querySelector(`[data-testid="terreiro-search-result-${CSS.escape(selectedPlaceId)}"]`);
181912
+ if (row instanceof HTMLElement) {
181913
+ row.scrollIntoView({ block: "nearest" });
181914
+ }
181915
+ });
181916
+ });
181917
+ return () => {
181918
+ cancelAnimationFrame(outerFrame);
181919
+ cancelAnimationFrame(innerFrame);
181920
+ };
181921
+ }, [listVisible, selectedPlaceId]);
181922
+ const locationLabel = locationMode === "geolocation"
181923
+ ? "Perto de mim"
181924
+ : city.trim()
181925
+ ? state.trim()
181926
+ ? `${city.trim()}, ${state.trim()}`
181927
+ : city.trim()
181928
+ : "Escolher cidade";
181929
+ const peekLabel = (() => {
181930
+ if (isLoading)
181931
+ return "Buscando terreiros...";
181932
+ if (errorMessage)
181933
+ return "Não foi possível buscar";
181934
+ if (results && results.length === 1)
181935
+ return "1 terreiro";
181936
+ if (results && results.length > 1)
181937
+ return `${results.length} terreiros`;
181938
+ if (results && results.length === 0)
181939
+ return "Nenhum terreiro";
181940
+ return "Busque para ver terreiros na região";
181941
+ })();
181942
+ const submitTradition = (tradition) => {
181943
+ onQueryChange(tradition);
181944
+ if (locationReady && !isLoading && !isLocating)
181945
+ onSearch(tradition);
181946
+ };
181947
+ const notice = geolocationNotice ? (React__default.createElement(Typography$1, { role: "status", variant: "body2", "data-testid": "terreiro-search-geo-notice", sx: {
181948
+ alignSelf: "flex-start",
181949
+ maxWidth: "100%",
181950
+ bgcolor: "background.paper",
181951
+ color: "text.secondary",
181952
+ borderRadius: 2,
181953
+ px: 1.5,
181954
+ py: 1,
181955
+ fontSize: 13,
181956
+ boxShadow: floatingControlShadow,
181957
+ } }, geolocationNotice)) : null;
181958
+ return (React__default.createElement(Box$1, { sx: {
181959
+ position: "relative",
181960
+ height: "100dvh",
181961
+ display: "flex",
181962
+ overflow: "hidden",
181963
+ bgcolor: "background.default",
181964
+ } },
181965
+ React__default.createElement(Box$1, { component: "section", "aria-label": "Resultados", "data-testid": "terreiro-search-sheet", style: listVisible ? { height: resolvedSheetHeight } : undefined, sx: {
181966
+ position: listVisible ? "absolute" : { xs: "absolute", sm: "relative" },
181967
+ left: 0,
181968
+ right: { xs: 0, sm: "auto" },
181969
+ bottom: 0,
181970
+ zIndex: 2,
181971
+ display: "flex",
181972
+ flexDirection: "column",
181973
+ width: { xs: "100%", sm: 400 },
181974
+ maxWidth: { sm: 400 },
181975
+ flexShrink: 0,
181976
+ height: listVisible ? undefined : { sm: "100%" },
181977
+ maxHeight: listVisible ? `calc(100dvh - ${TOP_CLEARANCE}px)` : "none",
181978
+ bgcolor: "background.paper",
181979
+ borderTopLeftRadius: listVisible || !isWide ? "20px" : 0,
181980
+ borderTopRightRadius: listVisible || !isWide ? "20px" : 0,
181981
+ borderRight: listVisible ? 0 : { sm: 1 },
181982
+ borderColor: "divider",
181983
+ boxShadow: listVisible || !isWide ? "0 -8px 24px rgba(32, 28, 16, 0.08)" : "none",
181984
+ } },
181985
+ listVisible ? (React__default.createElement(Box$1, { component: "button", type: "button", "aria-expanded": sheetOpen, "aria-controls": "terreiro-search-sheet-body", "data-testid": "terreiro-search-sheet-handle", onPointerDown: onHandlePointerDown, onPointerMove: onHandlePointerMove, onPointerUp: onHandlePointerUp, onClick: onHandleClick, sx: Object.assign({ width: "100%", border: 0, bgcolor: "transparent", cursor: "ns-resize", touchAction: "none", display: "flex", flexDirection: "column", alignItems: "center", gap: 0.75, pt: 1, pb: 1, px: 2, minHeight: 44, color: "text.primary" }, focusRing) },
181986
+ React__default.createElement(Box$1, { "aria-hidden": true, sx: {
181987
+ width: 36,
181988
+ height: 4,
181989
+ borderRadius: RADIUS.pill,
181990
+ bgcolor: (muiTheme) => alpha(muiTheme.palette.text.primary, 0.28),
181991
+ } }),
181992
+ React__default.createElement(Box$1, { component: "span", sx: { alignSelf: "flex-start", fontSize: 16, fontWeight: 800 } }, peekLabel))) : isWide ? (React__default.createElement(Typography$1, { sx: { px: 2, pt: 2, pb: 1, fontSize: 16, fontWeight: 800 } }, peekLabel)) : (React__default.createElement(Box$1, { sx: {
181993
+ width: "100%",
181994
+ display: "flex",
181995
+ flexDirection: "column",
181996
+ alignItems: "center",
181997
+ gap: 0.75,
181998
+ pt: 1,
181999
+ pb: 1,
182000
+ px: 2,
182001
+ minHeight: 44,
182002
+ color: "text.primary",
182003
+ } },
182004
+ React__default.createElement(Box$1, { "aria-hidden": true, sx: {
182005
+ width: 36,
182006
+ height: 4,
182007
+ borderRadius: RADIUS.pill,
182008
+ bgcolor: (muiTheme) => alpha(muiTheme.palette.text.primary, 0.28),
182009
+ } }),
182010
+ React__default.createElement(Box$1, { component: "span", sx: { alignSelf: "flex-start", fontSize: 16, fontWeight: 800 } }, peekLabel))),
182011
+ React__default.createElement(Box$1, { id: "terreiro-search-sheet-body", sx: {
182012
+ display: hasSheetContent ? "flex" : "none",
182013
+ flexDirection: "column",
182014
+ flex: 1,
182015
+ minHeight: 0,
182016
+ overflowY: "auto",
182017
+ px: 2,
182018
+ pb: 2,
182019
+ } },
182020
+ isLoading ? (React__default.createElement(Stack$1, { spacing: 1, "data-testid": "terreiro-search-loading" }, [0, 1, 2].map((item) => (React__default.createElement(Skeleton$1, { key: item, variant: "rectangular", height: 56 }))))) : null,
182021
+ !isLoading && errorMessage ? (React__default.createElement(Stack$1, { spacing: 1, "data-testid": "terreiro-search-error", role: "alert" },
182022
+ React__default.createElement(Typography$1, null, errorMessage),
182023
+ onRetry ? (React__default.createElement(Button$1, { type: "button", variant: "text", onClick: onRetry, "data-testid": "terreiro-search-retry", sx: {
182024
+ alignSelf: "flex-start",
182025
+ minHeight: 44,
182026
+ fontWeight: 700,
182027
+ color: "text.primary",
182028
+ } }, "Tentar de novo")) : null)) : null,
182029
+ !isLoading && !errorMessage && results && results.length === 0 ? (React__default.createElement(Stack$1, { spacing: 1, "data-testid": "terreiro-search-empty", sx: { py: 2 } },
182030
+ React__default.createElement(PlaceOutlined, { sx: { color: "text.primary" } }),
182031
+ React__default.createElement(Typography$1, { sx: { fontWeight: 700 } }, "Nenhum terreiro encontrado para esta busca na regi\u00E3o selecionada."),
182032
+ React__default.createElement(Typography$1, { sx: { fontSize: 13, color: "text.secondary" } }, "Ajuste o termo ou a cidade e busque de novo."))) : null,
182033
+ !isLoading && !errorMessage && results && results.length > 0 ? (React__default.createElement(Box$1, { component: "ul", sx: { m: 0, p: 0 } }, results.map((place) => (React__default.createElement(ResultRow, { key: place.placeId, place: place, selected: place.placeId === selectedPlaceId, onSelect: setSelectedPlaceId, onOpenMaps: onOpenMaps }))))) : null,
182034
+ !isLoading && !errorMessage && hasMore ? (React__default.createElement(Button$1, { type: "button", variant: "text", onClick: onLoadMore, disabled: isLoadingMore, "data-testid": "terreiro-search-load-more", sx: {
182035
+ alignSelf: "flex-start",
182036
+ mt: 0.5,
182037
+ minHeight: 44,
182038
+ fontWeight: 700,
182039
+ color: "text.primary",
182040
+ } }, isLoadingMore ? "Carregando..." : "Carregar mais")) : null)),
182041
+ React__default.createElement(Box$1, { sx: { position: "relative", flex: 1, minWidth: 0 } },
182042
+ React__default.createElement(TerreiroResultMap, { apiKey: googleMapsApiKey, results: results, selectedPlaceId: selectedPlaceId, userCoordinates: userCoordinates, layoutKey: listVisible ? resolvedSheetHeight : null, onSelectPlace: setSelectedPlaceId }),
182043
+ React__default.createElement(Box$1, { component: "form", onSubmit: (event) => {
182044
+ event.preventDefault();
182045
+ if (canSearch)
182046
+ onSearch(trimmedQuery);
182047
+ }, sx: {
182048
+ position: "absolute",
182049
+ top: 16,
182050
+ left: 16,
182051
+ right: 16,
182052
+ zIndex: 3,
182053
+ display: "flex",
182054
+ flexDirection: "column",
182055
+ gap: 1,
182056
+ } },
182057
+ React__default.createElement(Box$1, { sx: { display: "flex", alignItems: "center", gap: 1 } },
182058
+ onBack ? (React__default.createElement(IconButton$1, { type: "button", "aria-label": "Voltar", onClick: onBack, sx: Object.assign({ width: 44, height: 44, flexShrink: 0, bgcolor: "background.paper", color: "text.primary", boxShadow: floatingControlShadow, "&:hover": { bgcolor: "background.paper" } }, focusRing) },
182059
+ React__default.createElement(ArrowBack$1, null))) : null,
182060
+ React__default.createElement(Box$1, { sx: {
182061
+ flex: 1,
182062
+ minWidth: 0,
182063
+ display: "flex",
182064
+ alignItems: "center",
182065
+ minHeight: 44,
182066
+ pl: 2,
182067
+ pr: 0.5,
182068
+ bgcolor: "background.paper",
182069
+ borderRadius: RADIUS.pill,
182070
+ boxShadow: floatingControlShadow,
182071
+ } },
182072
+ React__default.createElement(InputBase$1, { value: query, onChange: (event) => onQueryChange(event.target.value), placeholder: "Umbanda, Candombl\u00E9...", fullWidth: true, inputProps: {
182073
+ "aria-label": "Tradição ou nome",
182074
+ maxLength: 80,
182075
+ "data-testid": "terreiro-search-query",
182076
+ }, sx: {
182077
+ fontSize: 16,
182078
+ color: "text.primary",
182079
+ "& input::placeholder": { color: "text.secondary", opacity: 1 },
182080
+ } }),
182081
+ query ? (React__default.createElement(IconButton$1, { type: "button", "aria-label": "Limpar busca", onClick: () => onQueryChange(""), sx: { width: 44, height: 44, flexShrink: 0, color: "text.primary" } },
182082
+ React__default.createElement(Close$1, null))) : null),
182083
+ React__default.createElement(IconButton$1, { type: "submit", "aria-label": "Buscar", disabled: !canSearch, "data-testid": "terreiro-search-submit", onClick: (event) => {
182084
+ event.preventDefault();
182085
+ if (canSearch)
182086
+ onSearch(trimmedQuery);
182087
+ }, sx: Object.assign({ width: 44, height: 44, flexShrink: 0, bgcolor: "primary.main", color: "primary.contrastText", boxShadow: floatingControlShadow, "&:hover": { bgcolor: "primary.dark" }, "&.Mui-disabled": {
182088
+ bgcolor: (muiTheme) => alpha(muiTheme.palette.primary.main, 0.38),
182089
+ color: "primary.contrastText",
182090
+ } }, focusRing) },
182091
+ React__default.createElement(Search$1, null))),
182092
+ React__default.createElement(Box$1, { role: "group", "aria-label": "Tradi\u00E7\u00F5es", sx: {
182093
+ display: "flex",
182094
+ gap: 1,
182095
+ overflowX: "auto",
182096
+ scrollbarWidth: "none",
182097
+ "&::-webkit-scrollbar": { display: "none" },
182098
+ } }, TRADITIONS.map((tradition) => {
182099
+ const pressed = traditionPressed(query, tradition);
182100
+ return (React__default.createElement(Button$1, { key: tradition, type: "button", variant: "outlined", "aria-pressed": pressed, onClick: () => submitTradition(tradition), sx: {
182101
+ flexShrink: 0,
182102
+ minHeight: 44,
182103
+ px: 2,
182104
+ borderRadius: RADIUS.pill,
182105
+ textTransform: "none",
182106
+ fontWeight: 600,
182107
+ bgcolor: "background.paper",
182108
+ borderColor: pressed ? "primary.main" : "divider",
182109
+ color: pressed ? "primary.main" : "text.primary",
182110
+ "&:hover": {
182111
+ bgcolor: "background.paper",
182112
+ borderColor: pressed ? "primary.main" : "divider",
182113
+ },
182114
+ } }, tradition));
182115
+ })),
182116
+ React__default.createElement(Button$1, { type: "button", variant: "outlined", "aria-expanded": locationOpen, "aria-haspopup": "dialog", onClick: () => setLocationOpen(true), startIcon: locationMode === "geolocation" ? React__default.createElement(MyLocation, null) : React__default.createElement(PlaceOutlined, null), sx: {
182117
+ alignSelf: "flex-start",
182118
+ minHeight: 44,
182119
+ maxWidth: "100%",
182120
+ borderRadius: RADIUS.pill,
182121
+ textTransform: "none",
182122
+ fontWeight: 600,
182123
+ bgcolor: "background.paper",
182124
+ borderColor: "divider",
182125
+ color: "text.primary",
182126
+ "&:hover": { bgcolor: "background.paper", borderColor: "divider" },
182127
+ } }, locationLabel),
182128
+ !locationOpen ? notice : null)),
182129
+ React__default.createElement(GenericDrawer, { open: locationOpen, onClose: () => setLocationOpen(false), "aria-label": "Local da busca" }, locationOpen ? (React__default.createElement(Stack$1, { spacing: 2, sx: { px: 2, pb: 3 } },
182130
+ React__default.createElement(Typography$1, { sx: { fontSize: 16, fontWeight: 800 } }, "Onde buscar"),
182131
+ (googleMapsApiKey === null || googleMapsApiKey === void 0 ? void 0 : googleMapsApiKey.trim()) && !addressSearchUnavailable ? (React__default.createElement(TerreiroLocationSearch, { apiKey: googleMapsApiKey.trim(), onUnavailable: () => setAddressSearchUnavailable(true), onSelect: (nextCity, nextState) => {
182132
+ onCityChange(nextCity);
182133
+ onStateChange(nextState);
182134
+ setLocationOpen(false);
182135
+ } })) : (React__default.createElement(Stack$1, { direction: "row", spacing: 1 },
182136
+ React__default.createElement(TextField$1, { label: "Cidade", value: city, onChange: (event) => onCityChange(event.target.value), inputProps: { "data-testid": "terreiro-search-city" }, fullWidth: true, sx: {
182137
+ "& .MuiInputBase-input": { color: "text.primary" },
182138
+ "& .MuiInputBase-input::placeholder": { color: "text.secondary", opacity: 1 },
182139
+ } }),
182140
+ React__default.createElement(TextField$1, { label: "UF", value: state, onChange: (event) => onStateChange(event.target.value.toUpperCase().slice(0, 2)), inputProps: { maxLength: 2, "data-testid": "terreiro-search-state" }, sx: {
182141
+ width: 88,
182142
+ "& .MuiInputBase-input": { color: "text.primary" },
182143
+ } }))),
182144
+ React__default.createElement(Button$1, { type: "button", variant: "text", onClick: onUseMyLocation, disabled: isLocating || isLoading, "data-testid": "terreiro-search-geolocation", sx: { alignSelf: "flex-start", minHeight: 44, fontWeight: 700, color: "text.primary" } }, isLocating ? "Buscando localização..." : "Usar minha localização"),
182145
+ notice)) : null)));
182146
+ };
182147
+
181400
182148
  /**
181401
182149
  * Convert the given array buffer into a Base64URL-encoded string. Ideal for converting various
181402
182150
  * credential response ArrayBuffers to string for sending back to the server as JSON.
@@ -194823,5 +195571,5 @@ var index_es = /*#__PURE__*/Object.freeze({
194823
195571
  vectorsRatio: vectorsRatio
194824
195572
  });
194825
195573
 
194826
- export { ACTIVITY_STEP_ORDER, ALSO_EXPERIENCED_LABEL, AVATAR_SIZE_CONFIG, AcademyCertificatePreview, AcademyModulePage, AcademyPage, AccessBlockedPage, AccountOptionSchema, BasicInfoSchema as ActivityBasicInfoSchema, ActivityChatInsumosPicker, ActivityChatMembersPicker, ActivityCheckinWindowSchema, ActivityDetailPage$1 as ActivityDetailPage, ActivityEditPage, ActivityFormChatSummaryCard, InsumosSelectionSchema$1 as ActivityInsumosSelectionSchema, ActivityListPage, MembersSelectionSchema as ActivityMembersSelectionSchema, ActivityOnboardingPage, TemplateSchema as ActivityTemplateSchema, TimeSelectionSchema as ActivityTimeSelectionSchema, AddMediumByQRCodePage, AddressInfoSchema, AddressPage, AffiliateProgramPage, AlsoExperiencedButton, AttendanceCheckinCta$1 as AttendanceCheckinCta, AttendanceCheckinDialog, AttendanceCheckinEntryPage, AttendanceInsightsPage, AvatarWithBadge, BADGE_SIZE_CONFIG, BADGE_TIER_COLORS, BADGE_TIER_CONFIG, BADGE_TIER_LABELS, BADGE_TYPE_LABELS, BANK_OPTIONS, BANNER_GRADIENT_KEYS, BANNER_GRADIENT_PRESETS, BRAZILIAN_STATES$1 as BRAZILIAN_STATES, BadgeProgressSchema, BadgeTierSchema$2 as BadgeTierSchema, BadgesPage, BadgeInfoSchema as BadgesPageBadgeInfoSchema, BadgeTierSchema as BadgesPageBadgeTierSchema, BadgeTypeSchema as BadgesPageBadgeTypeSchema, BadgesPagePropsSchema, BathCategorySchema$2 as BathCategorySchema, BlockDialog, BrazilianStateUFSchema, CARD_CONTENT_STYLES, CATEGORY_CONFIG, CATEGORY_LABELS, CREATE_EXPERIENCE_STEP_LABELS, CREATE_EXPERIENCE_STEP_ORDER, CREATE_QUESTION_STEP_LABELS, CREATE_QUESTION_STEP_ORDER, CellphoneInput, CellphoneInputPropsSchema, CompletenessCard, ConnectionButton, ContactArraySchema, ContactPage, ContactPagePropsSchema, ContactSchema, ContactSectionCardPropsSchema, ContributionImpactCard, CopyTargetSchema, CreateExperiencePage, CreateExperienceValuesSchema, CreateIngressoPage, CreateQuestionPage, CreateQuestionValuesSchema, CredentialsApiErrorSchema, CredentialsDataSchema, CredentialsFormStateSchema, CredentialsPage, CredentialsPagePropsSchema, CredentialsValidationErrorsSchema, CustomBannerGradientPresetSchema, DAILY_MESSAGE_POOL, DEFAULT_BANNER_GRADIENT_KEY, DEFAULT_HOME_WIDGET_ORDER, DEFAULT_HOME_WIDGET_VISIBILITY, DailyRitualCard, DescriptionBox$3 as DescriptionBox, DetailedPermissionSchema, EMPTY_ELEMENT_SIZE, EMPTY_ELEMENT_SIZE as EMPTY_SLOT_SIZE, EVENT_STEP_ORDER, EditEventPage, EditJourneyPage, EventAISuggestionsPage, EventBasicInfoSchema, EventChatActivitiesPicker, EventChatInsumosPicker, EventChatLocationPicker, EventChatMembersPicker, EventChatTypePicker, EventCheckinWindowSchema, EventDateTimeSchema, EventDetailPage$1 as EventDetailPage, EventFormChatSummaryCard, EventFormValuesSchema, InsumosSelectionSchema as EventInsumosSelectionSchema, EventLocationSchema, EventOnboardingPage, EventParticipantsSchema, EventProfileBlockedPage, EventPublicationFormChatSummaryCard, EventTicketingManagementPage, EventsPage, ExperienceCard, ExperienceCategoryBadge, ExperienceCategorySchema, ExperienceCommentRow, ExperienceCommentSchema, ExperienceCommentsSheet, ExperienceComposer, ExperienceDetailPage, ExperienceDetailView, ExperienceEngageMenu, ExperiencePostTypeBadge, ExperiencePostTypeSchema, ExperienceReactionBar, ExperienceReactionTypeSchema, ExperienceSchema, ExpiredLinkPage, FORM_CONFIG, FacebookAuthButton, FilterDrawerShellPropsSchema, FinanceMetricCard$1 as FinanceMetricCard, FinancialAccountPage, FinancialAccountsList$1 as FinancialAccountsList, FinancialOverviewCard, FinancialRegisterPage, FinancialTransparencyPage, ForbiddenPage, ForgotPasswordPage, FormChatAssistant, FormChatListSelect, FormChatPickerDrawer, FormChatSelectionBar, GLOW_EFFECT, GamificationBadgeSchema, GamificationBadgeTierEnum, GamificationBadgeTypeEnum, GamificationCard, GamificationCardPropsSchema, GamificationHelpPage, GamificationHelpPagePropsSchema, GamificationHelpTopicSchema, GamificationSummarySchema, GoogleAuthButton, HOME_BELL_NOTIFICATION_LIMIT, HOME_MEASURE_SLOTS, HOME_WIDGETS_CATALOG, HomePage, Image$1 as Image, ImageButton, IncomeListPage$1 as IncomeListPage, IncomingFinancialPage, InfiniteScroll, InfiniteScrollPropsSchema, InstallPrompt, InsumosAvatarGroup, InventoryItemDetail$1 as InventoryItemDetailPage, InventoryItemOnboardingPage, InventoryListItemPage, InventoryListPage, InviteCard$1 as InviteCard, InviteLandingPage, InviteLandingPagePropsSchema, InviteLandingViewStateSchema, InviteTerreiroInfoSchema, JoinTerreiroPage, JourneyProfile, JourneyProfilePage, LAYOUT, LabeledBrazilianStateSelect, LabeledBrazilianStateSelectPropsSchema, LabeledDatePickerPropsSchema, LabeledFieldHeaderPropsSchema, LabeledMinuteInput, LabeledMonthPickerPropsSchema, LabeledTextField$1 as LabeledTextField, LabeledTimePicker, LeaderboardPage, LeaderboardPagePropsSchema, LoadMoreResultSchema, Loading, LunarEclipseSchema, MeasuredLayoutProvider, MediumBadgeSchema, MediumFinancialTransparencyPage, MediumHubPage, MediumListPage, MediumPage, MediumPointsSchema, MediumProfilePage, MediumProfileViewPage$1 as MediumProfileViewPage, MediumStatus$1 as MediumStatus, MemberListItem$1 as MemberListItem, MonthlyFeeInfoSchema, MonthlyFeePage, MonthlyFeePaymentsManagementPage, MoonApiResponseSchema, MoonCard, MoonCardContent, MoonCardPropsSchema, MoonCardSkeleton, MoonDataSchema, MoonDetailedSchema, MoonEventsSchema, MoonPositionSchema, MoonZodiacSchema, MyPermissionsDetailedSchema, MyPermissionsPage, MyPermissionsPagePropsSchema, NotFoundPage, NotificationSettingsPage, NotificationSettingsPagePropsSchema, NotificationsPage, ONBOARDING_TERREIRO_STEPS, ORIGIN_LABELS, OnboardingFormChatPanel, OnboardingFormChatSummaryCard, OnboardingIntroModal, OnboardingMediumPage, OnboardingPage, OnboardingTerreiroPage$1 as OnboardingTerreiroPage, OnboardingTerreiroPagePropsSchema, OutcomeListPage$1 as OutcomeListPage, OutgoingFinancialPage, PAYMENT_METHOD_OPTIONS$1 as PAYMENT_METHOD_OPTIONS, PIX_KEY_TYPE_OPTIONS, POST_TYPE_LABELS, PROFILE_SECTION_CONFIG, PROFILE_SECTION_WEIGHTS, PWAUpdatePromptUI, PageHeader$2 as PageHeader, PaginationInfoSchema, ParticipationResponseButtons$1 as ParticipationResponseButtons, ParticipationStatusBadge$1 as ParticipationStatusBadge, ParticipationStatusLabels, PasskeyCredentialSchema, PasskeyEnrollmentPrompt, PasskeyLoginDialog, PasswordInfoSchemaWithConfirmation, PasswordVisibilitySchema, PaymentStatusBanner, PeerMessageList, PendingApprovalBlockedPage, PermissionSelector, PermissionStatsSchema, PersonalInfoSchema, PhaseEventSchema, PlanChangePayloadSchema, PlanManagementPage, PlanManagementPagePropsSchema, PointsSummarySchema, PositionInfoSchema, PostGiraPrompt, PrivacySelector, ProfileCompletenessCard, ProfileDetailsPage, PublicEventTicketPage, PublicExperiencePreviewSchema, PublicProfilePreviewSchema, PublicQuestionPreviewSchema, PublicSocialPreviewDataSchema, PublicSocialPreviewPage, PublicTerreiroAgendaPage, QUESTION_SOURCE_LABELS, QUICK_ONBOARDING_TERREIRO_STEPS, QUICK_TERREIRO_ONBOARDING_FIELDS_BY_STEP, QrAnalyticsEventNameSchema, QrLandingPage, QrLandingPagePropsSchema, QrScannerSurface$1 as QrScannerSurface, QrTrackingEventSchema, QrTrackingPayloadSchema, QrVariantSchema, QuestionAnswerCard, QuestionAnswerSchema, QuestionAnswersSheet, QuestionCard, QuestionComposer, QuestionDetailPage, QuestionSchema, QuestionSourceBadge, QuestionSourceSchema, QuestionsPage, QuickActionSchema$1 as QuickActionSchema, QuickActions, QuickActionsPropsSchema, QuickMediumOnboardingFormStateSchema, QuickPersonalInfoSchema, QuickPersonalInfoStep, QuickTerreiroOnboardingFormStateSchema, QuickTerreiroPersonalInfoSchema, QuickTerreiroStepValidationSchemas, QuotaBehaviorSchema, QuotaGuard, QuotaGuardPropsSchema, QuotaStatusSchema, QuotaSummaryCard, QuotaSummaryCardPropsSchema, RADIUS, RANKING_PERIOD_LABELS, RANKING_SCOPE_LABELS, REACTION_LABELS, REPORT_REASON_LABELS, RankingEntrySchema, RankingPeriodEnum, RankingResultSchema, RankingScopeEnum, ReasonDialog$1 as ReasonDialog, ReasonDialogPropsSchema, ReligionSchema, ReportDialog, ResetPasswordPage, BasicInfoStepSchema as RitualBathBasicInfoStepSchema, RitualBathDetailPage$1 as RitualBathDetailPage, RitualBathDetailPagePropsSchema, RitualBathDetailSchema, RitualBathFilterSchema, RitualBathFormValuesSchema, RitualBathIngredientSchema$2 as RitualBathIngredientSchema, IngredientsStepSchema as RitualBathIngredientsStepSchema, RitualBathItemSchema, BathCategorySchema$1 as RitualBathListCategorySchema, RitualBathListPage, RitualBathOccurrenceSchema, RitualBathOnboardingPage, RitualBathOriginSchema, OriginStepSchema as RitualBathOriginStepSchema, RitualBathScheduleFormSchema, RitualBathSchedulePage, RitualBathSchedulePagePropsSchema, RitualBathScheduleSummarySchema, RitualBathStatusSchema, RitualBathStepSchema$2 as RitualBathStepSchema, RitualBathStepTypeSchema, StepsStepSchema as RitualBathStepsStepSchema, RitualCard, RoleFormPage, RoleFormValuesSchema, RoleInfoSchema, RoleManagementPage, RoleSchema, SKELETON_SIZES, SOCIAL_BIO_MAX_LENGTH, SOCIAL_DISPLAY_NAME_MAX_LENGTH, SOCIAL_HOME_BOTTOM_NAV_CLEARANCE, SOCIAL_HOME_BOTTOM_NAV_FLOAT_MB, SOCIAL_HOME_BOTTOM_NAV_HEIGHT, SOCIAL_HOME_HEADER_HEIGHT, SOCIAL_ONBOARDING_INTRO_STEPS, SOCIAL_ONBOARDING_STEP_LABELS, SOCIAL_ONBOARDING_STEP_ORDER, SOCIAL_TRADITION_MAX_LENGTH, SOCIAL_USERNAME_MAX_LENGTH, STATUS_COLORS, STATUS_LABELS, STEP_ORDER, STEP_TYPE_ICONS, STEP_TYPE_LABELS, ScheduleDateTimeFields$1 as ScheduleDateTimeFields, SelectField$2 as SelectField, ShareDrawerPropsSchema, SharePlatformSchema, ShareSheet, SharedExpensesCard, SigninPage, SignupPage, SimilarExperienceCard, SimilarPage, SimilarPeopleCard, SimilarPersonSchema, SingleContactSchema, SocialAccountDrawer, SocialAuthorSchema, SocialConnectionsPage, SocialConversationPage, SocialConversationPeerSchema, SocialConversationRow, SocialConversationSchema, SocialCreateActionsSheet, SocialDeleteConfirmDialog, SocialDiscoverPage, SocialEditTextDialog, SocialEmptyState, SocialErrorState, SocialFeedItemSchema, SocialHomeBottomNav, SocialHomeCurrentUserSchema, SocialHomeHeader, SocialHomePage, SocialInboxPage, SocialMessageBubble, SocialMessageComposer, SocialMessageDeliveryStatusSchema, SocialMessageSchema, SocialNotificationsPage, SocialOnboardingIntro, SocialOnboardingPage, SocialOnboardingValuesSchema, SocialPrivacySettingsPage, SocialProfileFieldsSchema, SocialProfileSchema, SocialReadOnlyNotice, SocialReportReasonSchema, SocialSavedPage, SocialSkeleton, SocialUnreadIndicator, SocialUsernameSchema, SocialVerificationEarnedCelebration, SocialVerificationProgressSheet, SocialVisibilitySchema, SpiritualFormChatSummaryCard, SpiritualProfilePage, StreakInfoSchema, SubscriptionGuard, SubscriptionProvider, SubscriptionRequiredForMediumPage, SuggestionsCarousel, SupplyPlanBlockerSchema, SupplyPlanCostsSchema, SupplyPlanItemSchema, SupplyPlanMissionSchema, SupplyPlanPage, SupplyPlanPagePropsSchema, SupplyPlanReadinessSchema, SupplyPlanSchema, SupplyPlanSourceActivitySchema, SupplyPlanSourceEventSchema, SupplyPlanSummarySchema, SystemSettingsPage, TERREIRO_COMPLETION_MESSAGES, TERREIRO_ONBOARDING_FIELDS_BY_STEP, TERREIRO_SECTION_CONFIG, TERREIRO_SECTION_WEIGHTS, TOP_BAR_HEIGHTS, TYPOGRAPHY_SCALE, TerreiroFinancialInfoSchema, TerreiroOnboardingApiErrorSchema, TerreiroOnboardingFormStateSchema, TerreiroOnboardingValidationErrorsSchema, TerreiroPersonalInfoSchema, TerreiroPolicyPage, TerreiroPolicyPagePropsSchema, TerreiroProfileDataPage$1 as TerreiroProfileDataPage, TerreiroProfilePage, TerreiroReadonlyProfilePage, TerreiroRegistrationSchema, TerreiroRegistrationWithoutPasswordSchema, TerreiroSchema$2 as TerreiroSchema, TerreiroSearchPage, TerreiroSectionCard, TerreiroSectionCardPropsSchema, TerreiroStatusSchema, TerreiroStepValidationSchemas, TerreiroSubscriptionInfoSchema, ThemeButton, ThemeProvider, TicketVoucherPage, TicketingClaimFormChatSummaryCard, TraditionBadge, UnitCostMetaSchema, UpcomingPhasesSchema, UpgradePrompt, UsageBar, UsageBarPropsSchema, UsageProvider, UsageQuotaPage, UsageQuotaPagePropsSchema, UseInfiniteScrollReturnSchema, VISIBILITY_HELPERS, VISIBILITY_LABELS, ValidationErrorsSchema, VerificationBadge, WhatsAppShareButton, WhatsNewModal, authorDisplayName, brand, buildAcademyCertificatePreviewNode, buildItemReasonText, buildMergedInsumos$1 as buildMergedInsumos, buildMergedMediums$1 as buildMergedMediums, defaultDisplayProps, defaultInputProps, drawerSheetRadius, filterSupplyPlanMissions, formatRelativeTime, formatScheduleDate, formatSecondsAsMinutesLabel, formatCurrency$1 as formatTerreiroCurrency, formatPhone as formatTerreiroPhone, generateAcademyCertificatePdf, getBannerGradient, getCardBaseStyles, getContentMarginTop, getContentPaddingTop, getCustomBannerGradient, getDateString, getDefaultHomeWidgetOrder, getHomeWidgetsForProfile, getReorderableHomeWidgetsForProfile, getSocialBannerSx, getSocialUsernameError, getTopBarExpandedHeight, getTopBarHeight, getTopBarStackHeight, installPromptPropsSchema, isDefaultHomeWidgetOrder, isPasskeySupported, isValidEmail, isValidPassword, mapPasskeyError, mapRawMemberToActivityChatOption, mediumStatusLabelsPtBr, mergeHomeWidgetOrder, mergeHomeWidgetVisibility, mockCalendarActivities, mockCalendarEvents, mockCalendarRitualBaths, mockHomePageProps, mockLoadingHomePageProps, mockMediumHomePageProps, mockMoonData, mockPendingMediumHomePageProps, mockQuickActions, mockRituals, mockSupplyPlanEmpty, mockSupplyPlanSufficientWithDemand, mockSupplyPlanWithCosts, mockSupplyPlanWithoutCosts, mockTerreiros, mockUpcomingEvents, mockUser, moveHomeWidgetInOrder, onboardingIntroModalPropsSchema, onboardingIntroModeSchema, onboardingIntroProfileContextSchema, overlayZIndex, parseScheduleDate, radiusPx, reorderHomeWidgetOrder, resolveExperiencePostType, secondsToRoundedMinutes, startPasskeyAuthentication, startPasskeyRegistration, useAcademyModulePage, useAcademyPage, useAccessBlockedPage, useActivityOnboarding, useAddressSectionCard, useAffiliateProgramPage, useAttendanceCheckinEntryPage, useAttendanceInsightsPage, useAvatarWithBadge, useBadgesPage, useCellphoneInput, useCompletenessCard, useContactPage, useContentClearance, useCredentialsPage, useElementSize, useEventAISuggestionsPage, useFilterDrawer, useFinancialRegister, useFinancialTransparencyPage, useFormChatAssistant, useGamificationCard, useGamificationHelpPage, useHideOnScroll, useHomePage, useInfiniteScroll, useInstallPrompt, useInventoryListItemPage, useInventoryListPage, useInviteLandingPage, useJoinTerreiroPage, useLabeledBrazilianStateSelect, useLeaderboardPage, useMeasureSlot, useMeasuredLayoutContext, useMeasuredSlot, useMediumFinancialTransparencyPage, useMediumHubPage, useMemberListItem, useMonthlyFeePaymentsManagementPage, useMoonCard, useMyPermissionsPage, useNotFoundPage, useNotificationSettingsPage, useOnboardingIntroModal, useOnboardingMedium, useOnboardingPage, useOnboardingTerreiro, useOptionalMeasuredLayoutContext, useOptionalUsageContext, usePWAUpdatePromptUI, usePermissionSelector, usePlanManagementPage, useProfileCompletenessCard, useQrLandingPage, useQuotaGuard, useRitualBathDetailPage, useRitualBathListPage, useRitualBathOnboarding, useRoleFormPage, useRoleManagementPage, useSelectMediumsPage, useSpiritualProfilePage, useSubscription, useSubscriptionContext, useSubscriptionGuard, useSupplyPlanPage, useTerreiroPolicyPage, useTerreiroProfileDataPage, useTerreiroProfilePage$1 as useTerreiroProfilePage, useTerreiroSectionCard, useThemeProvider, useUpgradePrompt, useUsageContext, useUsageQuota, useUsageQuotaPage, useVerificationBadge, useWhatsNewModal, validateEmail$1 as validateEmail, validatePassword$1 as validatePassword, validatePhoneNumber, validateCurrency as validateTerreiroCurrency, validateDueDay as validateTerreiroDueDay, validatePassword as validateTerreiroPassword, validatePasswordConfirmation as validateTerreiroPasswordConfirmation, validatePhone as validateTerreiroPhone, whatsNewAnnouncementSchema, whatsNewModalPropsSchema, whatsNewSlideSchema };
195574
+ export { ACTIVITY_STEP_ORDER, ALSO_EXPERIENCED_LABEL, AVATAR_SIZE_CONFIG, AcademyCertificatePreview, AcademyModulePage, AcademyPage, AccessBlockedPage, AccountOptionSchema, BasicInfoSchema as ActivityBasicInfoSchema, ActivityChatInsumosPicker, ActivityChatMembersPicker, ActivityCheckinWindowSchema, ActivityDetailPage$1 as ActivityDetailPage, ActivityEditPage, ActivityFormChatSummaryCard, InsumosSelectionSchema$1 as ActivityInsumosSelectionSchema, ActivityListPage, MembersSelectionSchema as ActivityMembersSelectionSchema, ActivityOnboardingPage, TemplateSchema as ActivityTemplateSchema, TimeSelectionSchema as ActivityTimeSelectionSchema, AddMediumByQRCodePage, AddressInfoSchema, AddressPage, AffiliateProgramPage, AlsoExperiencedButton, AttendanceCheckinCta$1 as AttendanceCheckinCta, AttendanceCheckinDialog, AttendanceCheckinEntryPage, AttendanceInsightsPage, AvatarWithBadge, BADGE_SIZE_CONFIG, BADGE_TIER_COLORS, BADGE_TIER_CONFIG, BADGE_TIER_LABELS, BADGE_TYPE_LABELS, BANK_OPTIONS, BANNER_GRADIENT_KEYS, BANNER_GRADIENT_PRESETS, BRAZILIAN_STATES$1 as BRAZILIAN_STATES, BadgeProgressSchema, BadgeTierSchema$2 as BadgeTierSchema, BadgesPage, BadgeInfoSchema as BadgesPageBadgeInfoSchema, BadgeTierSchema as BadgesPageBadgeTierSchema, BadgeTypeSchema as BadgesPageBadgeTypeSchema, BadgesPagePropsSchema, BathCategorySchema$2 as BathCategorySchema, BlockDialog, BrazilianStateUFSchema, CARD_CONTENT_STYLES, CATEGORY_CONFIG, CATEGORY_LABELS, CREATE_EXPERIENCE_STEP_LABELS, CREATE_EXPERIENCE_STEP_ORDER, CREATE_QUESTION_STEP_LABELS, CREATE_QUESTION_STEP_ORDER, CellphoneInput, CellphoneInputPropsSchema, CompletenessCard, ConnectionButton, ContactArraySchema, ContactPage, ContactPagePropsSchema, ContactSchema, ContactSectionCardPropsSchema, ContributionImpactCard, CopyTargetSchema, CreateExperiencePage, CreateExperienceValuesSchema, CreateIngressoPage, CreateQuestionPage, CreateQuestionValuesSchema, CredentialsApiErrorSchema, CredentialsDataSchema, CredentialsFormStateSchema, CredentialsPage, CredentialsPagePropsSchema, CredentialsValidationErrorsSchema, CustomBannerGradientPresetSchema, DAILY_MESSAGE_POOL, DEFAULT_BANNER_GRADIENT_KEY, DEFAULT_HOME_WIDGET_ORDER, DEFAULT_HOME_WIDGET_VISIBILITY, DailyRitualCard, DescriptionBox$3 as DescriptionBox, DetailedPermissionSchema, EMPTY_ELEMENT_SIZE, EMPTY_ELEMENT_SIZE as EMPTY_SLOT_SIZE, EVENT_STEP_ORDER, EditEventPage, EditJourneyPage, EventAISuggestionsPage, EventBasicInfoSchema, EventChatActivitiesPicker, EventChatInsumosPicker, EventChatLocationPicker, EventChatMembersPicker, EventChatTypePicker, EventCheckinWindowSchema, EventDateTimeSchema, EventDetailPage$1 as EventDetailPage, EventFormChatSummaryCard, EventFormValuesSchema, InsumosSelectionSchema as EventInsumosSelectionSchema, EventLocationSchema, EventOnboardingPage, EventParticipantsSchema, EventProfileBlockedPage, EventPublicationFormChatSummaryCard, EventTicketingManagementPage, EventsPage, ExperienceCard, ExperienceCategoryBadge, ExperienceCategorySchema, ExperienceCommentRow, ExperienceCommentSchema, ExperienceCommentsSheet, ExperienceComposer, ExperienceDetailPage, ExperienceDetailView, ExperienceEngageMenu, ExperiencePostTypeBadge, ExperiencePostTypeSchema, ExperienceReactionBar, ExperienceReactionTypeSchema, ExperienceSchema, ExpiredLinkPage, FORM_CONFIG, FacebookAuthButton, FilterDrawerShellPropsSchema, FinanceMetricCard$1 as FinanceMetricCard, FinancialAccountPage, FinancialAccountsList$1 as FinancialAccountsList, FinancialOverviewCard, FinancialRegisterPage, FinancialTransparencyPage, ForbiddenPage, ForgotPasswordPage, FormChatAssistant, FormChatListSelect, FormChatPickerDrawer, FormChatSelectionBar, GLOW_EFFECT, GamificationBadgeSchema, GamificationBadgeTierEnum, GamificationBadgeTypeEnum, GamificationCard, GamificationCardPropsSchema, GamificationHelpPage, GamificationHelpPagePropsSchema, GamificationHelpTopicSchema, GamificationSummarySchema, GoogleAuthButton, HOME_BELL_NOTIFICATION_LIMIT, HOME_MEASURE_SLOTS, HOME_WIDGETS_CATALOG, HomePage, Image$1 as Image, ImageButton, IncomeListPage$1 as IncomeListPage, IncomingFinancialPage, InfiniteScroll, InfiniteScrollPropsSchema, InstallPrompt, InsumosAvatarGroup, InventoryItemDetail$1 as InventoryItemDetailPage, InventoryItemOnboardingPage, InventoryListItemPage, InventoryListPage, InviteCard$1 as InviteCard, InviteLandingPage, InviteLandingPagePropsSchema, InviteLandingViewStateSchema, InviteTerreiroInfoSchema, JoinTerreiroPage, JourneyProfile, JourneyProfilePage, LAYOUT, LabeledBrazilianStateSelect, LabeledBrazilianStateSelectPropsSchema, LabeledDatePickerPropsSchema, LabeledFieldHeaderPropsSchema, LabeledMinuteInput, LabeledMonthPickerPropsSchema, LabeledTextField$1 as LabeledTextField, LabeledTimePicker, LeaderboardPage, LeaderboardPagePropsSchema, LoadMoreResultSchema, Loading, LunarEclipseSchema, MeasuredLayoutProvider, MediumBadgeSchema, MediumFinancialTransparencyPage, MediumHubPage, MediumListPage, MediumPage, MediumPointsSchema, MediumProfilePage, MediumProfileViewPage$1 as MediumProfileViewPage, MediumStatus$1 as MediumStatus, MemberListItem$1 as MemberListItem, MonthlyFeeInfoSchema, MonthlyFeePage, MonthlyFeePaymentsManagementPage, MoonApiResponseSchema, MoonCard, MoonCardContent, MoonCardPropsSchema, MoonCardSkeleton, MoonDataSchema, MoonDetailedSchema, MoonEventsSchema, MoonPositionSchema, MoonZodiacSchema, MyPermissionsDetailedSchema, MyPermissionsPage, MyPermissionsPagePropsSchema, NearbyTerreiroSearchPage, NotFoundPage, NotificationSettingsPage, NotificationSettingsPagePropsSchema, NotificationsPage, ONBOARDING_TERREIRO_STEPS, ORIGIN_LABELS, OnboardingFormChatPanel, OnboardingFormChatSummaryCard, OnboardingIntroModal, OnboardingMediumPage, OnboardingPage, OnboardingTerreiroPage$1 as OnboardingTerreiroPage, OnboardingTerreiroPagePropsSchema, OutcomeListPage$1 as OutcomeListPage, OutgoingFinancialPage, PAYMENT_METHOD_OPTIONS$1 as PAYMENT_METHOD_OPTIONS, PIX_KEY_TYPE_OPTIONS, POST_TYPE_LABELS, PROFILE_SECTION_CONFIG, PROFILE_SECTION_WEIGHTS, PWAUpdatePromptUI, PageHeader$2 as PageHeader, PaginationInfoSchema, ParticipationResponseButtons$1 as ParticipationResponseButtons, ParticipationStatusBadge$1 as ParticipationStatusBadge, ParticipationStatusLabels, PasskeyCredentialSchema, PasskeyEnrollmentPrompt, PasskeyLoginDialog, PasswordInfoSchemaWithConfirmation, PasswordVisibilitySchema, PaymentStatusBanner, PeerMessageList, PendingApprovalBlockedPage, PermissionSelector, PermissionStatsSchema, PersonalInfoSchema, PhaseEventSchema, PlanChangePayloadSchema, PlanManagementPage, PlanManagementPagePropsSchema, PointsSummarySchema, PositionInfoSchema, PostGiraPrompt, PrivacySelector, ProfileCompletenessCard, ProfileDetailsPage, PublicEventTicketPage, PublicExperiencePreviewSchema, PublicProfilePreviewSchema, PublicQuestionPreviewSchema, PublicSocialPreviewDataSchema, PublicSocialPreviewPage, PublicTerreiroAgendaPage, QUESTION_SOURCE_LABELS, QUICK_ONBOARDING_TERREIRO_STEPS, QUICK_TERREIRO_ONBOARDING_FIELDS_BY_STEP, QrAnalyticsEventNameSchema, QrLandingPage, QrLandingPagePropsSchema, QrScannerSurface$1 as QrScannerSurface, QrTrackingEventSchema, QrTrackingPayloadSchema, QrVariantSchema, QuestionAnswerCard, QuestionAnswerSchema, QuestionAnswersSheet, QuestionCard, QuestionComposer, QuestionDetailPage, QuestionSchema, QuestionSourceBadge, QuestionSourceSchema, QuestionsPage, QuickActionSchema$1 as QuickActionSchema, QuickActions, QuickActionsPropsSchema, QuickMediumOnboardingFormStateSchema, QuickPersonalInfoSchema, QuickPersonalInfoStep, QuickTerreiroOnboardingFormStateSchema, QuickTerreiroPersonalInfoSchema, QuickTerreiroStepValidationSchemas, QuotaBehaviorSchema, QuotaGuard, QuotaGuardPropsSchema, QuotaStatusSchema, QuotaSummaryCard, QuotaSummaryCardPropsSchema, RADIUS, RANKING_PERIOD_LABELS, RANKING_SCOPE_LABELS, REACTION_LABELS, REPORT_REASON_LABELS, RankingEntrySchema, RankingPeriodEnum, RankingResultSchema, RankingScopeEnum, ReasonDialog$1 as ReasonDialog, ReasonDialogPropsSchema, ReligionSchema, ReportDialog, ResetPasswordPage, BasicInfoStepSchema as RitualBathBasicInfoStepSchema, RitualBathDetailPage$1 as RitualBathDetailPage, RitualBathDetailPagePropsSchema, RitualBathDetailSchema, RitualBathFilterSchema, RitualBathFormValuesSchema, RitualBathIngredientSchema$2 as RitualBathIngredientSchema, IngredientsStepSchema as RitualBathIngredientsStepSchema, RitualBathItemSchema, BathCategorySchema$1 as RitualBathListCategorySchema, RitualBathListPage, RitualBathOccurrenceSchema, RitualBathOnboardingPage, RitualBathOriginSchema, OriginStepSchema as RitualBathOriginStepSchema, RitualBathScheduleFormSchema, RitualBathSchedulePage, RitualBathSchedulePagePropsSchema, RitualBathScheduleSummarySchema, RitualBathStatusSchema, RitualBathStepSchema$2 as RitualBathStepSchema, RitualBathStepTypeSchema, StepsStepSchema as RitualBathStepsStepSchema, RitualCard, RoleFormPage, RoleFormValuesSchema, RoleInfoSchema, RoleManagementPage, RoleSchema, SKELETON_SIZES, SOCIAL_BIO_MAX_LENGTH, SOCIAL_DISPLAY_NAME_MAX_LENGTH, SOCIAL_HOME_BOTTOM_NAV_CLEARANCE, SOCIAL_HOME_BOTTOM_NAV_FLOAT_MB, SOCIAL_HOME_BOTTOM_NAV_HEIGHT, SOCIAL_HOME_HEADER_HEIGHT, SOCIAL_ONBOARDING_INTRO_STEPS, SOCIAL_ONBOARDING_STEP_LABELS, SOCIAL_ONBOARDING_STEP_ORDER, SOCIAL_TRADITION_MAX_LENGTH, SOCIAL_USERNAME_MAX_LENGTH, STATUS_COLORS, STATUS_LABELS, STEP_ORDER, STEP_TYPE_ICONS, STEP_TYPE_LABELS, ScheduleDateTimeFields$1 as ScheduleDateTimeFields, SelectField$2 as SelectField, ShareDrawerPropsSchema, SharePlatformSchema, ShareSheet, SharedExpensesCard, SigninPage, SignupPage, SimilarExperienceCard, SimilarPage, SimilarPeopleCard, SimilarPersonSchema, SingleContactSchema, SocialAccountDrawer, SocialAuthorSchema, SocialConnectionsPage, SocialConversationPage, SocialConversationPeerSchema, SocialConversationRow, SocialConversationSchema, SocialCreateActionsSheet, SocialDeleteConfirmDialog, SocialDiscoverPage, SocialEditTextDialog, SocialEmptyState, SocialErrorState, SocialFeedItemSchema, SocialHomeBottomNav, SocialHomeCurrentUserSchema, SocialHomeHeader, SocialHomePage, SocialInboxPage, SocialMessageBubble, SocialMessageComposer, SocialMessageDeliveryStatusSchema, SocialMessageSchema, SocialNotificationsPage, SocialOnboardingIntro, SocialOnboardingPage, SocialOnboardingValuesSchema, SocialPrivacySettingsPage, SocialProfileFieldsSchema, SocialProfileSchema, SocialReadOnlyNotice, SocialReportReasonSchema, SocialSavedPage, SocialSkeleton, SocialUnreadIndicator, SocialUsernameSchema, SocialVerificationEarnedCelebration, SocialVerificationProgressSheet, SocialVisibilitySchema, SpiritualFormChatSummaryCard, SpiritualProfilePage, StreakInfoSchema, SubscriptionGuard, SubscriptionProvider, SubscriptionRequiredForMediumPage, SuggestionsCarousel, SupplyPlanBlockerSchema, SupplyPlanCostsSchema, SupplyPlanItemSchema, SupplyPlanMissionSchema, SupplyPlanPage, SupplyPlanPagePropsSchema, SupplyPlanReadinessSchema, SupplyPlanSchema, SupplyPlanSourceActivitySchema, SupplyPlanSourceEventSchema, SupplyPlanSummarySchema, SystemSettingsPage, TERREIRO_COMPLETION_MESSAGES, TERREIRO_ONBOARDING_FIELDS_BY_STEP, TERREIRO_SECTION_CONFIG, TERREIRO_SECTION_WEIGHTS, TOP_BAR_HEIGHTS, TYPOGRAPHY_SCALE, TerreiroFinancialInfoSchema, TerreiroOnboardingApiErrorSchema, TerreiroOnboardingFormStateSchema, TerreiroOnboardingValidationErrorsSchema, TerreiroPersonalInfoSchema, TerreiroPolicyPage, TerreiroPolicyPagePropsSchema, TerreiroProfileDataPage$1 as TerreiroProfileDataPage, TerreiroProfilePage, TerreiroReadonlyProfilePage, TerreiroRegistrationSchema, TerreiroRegistrationWithoutPasswordSchema, TerreiroSchema$2 as TerreiroSchema, TerreiroSearchPage, TerreiroSectionCard, TerreiroSectionCardPropsSchema, TerreiroStatusSchema, TerreiroStepValidationSchemas, TerreiroSubscriptionInfoSchema, ThemeButton, ThemeProvider, TicketVoucherPage, TicketingClaimFormChatSummaryCard, TraditionBadge, UnitCostMetaSchema, UpcomingPhasesSchema, UpgradePrompt, UsageBar, UsageBarPropsSchema, UsageProvider, UsageQuotaPage, UsageQuotaPagePropsSchema, UseInfiniteScrollReturnSchema, VISIBILITY_HELPERS, VISIBILITY_LABELS, ValidationErrorsSchema, VerificationBadge, WhatsAppShareButton, WhatsNewModal, authorDisplayName, brand, buildAcademyCertificatePreviewNode, buildItemReasonText, buildMergedInsumos$1 as buildMergedInsumos, buildMergedMediums$1 as buildMergedMediums, defaultDisplayProps, defaultInputProps, drawerSheetRadius, filterSupplyPlanMissions, formatRelativeTime, formatScheduleDate, formatSecondsAsMinutesLabel, formatCurrency$1 as formatTerreiroCurrency, formatPhone as formatTerreiroPhone, generateAcademyCertificatePdf, getBannerGradient, getCardBaseStyles, getContentMarginTop, getContentPaddingTop, getCustomBannerGradient, getDateString, getDefaultHomeWidgetOrder, getHomeWidgetsForProfile, getReorderableHomeWidgetsForProfile, getSocialBannerSx, getSocialUsernameError, getTopBarExpandedHeight, getTopBarHeight, getTopBarStackHeight, installPromptPropsSchema, isDefaultHomeWidgetOrder, isPasskeySupported, isValidEmail, isValidPassword, mapPasskeyError, mapRawMemberToActivityChatOption, mediumStatusLabelsPtBr, mergeHomeWidgetOrder, mergeHomeWidgetVisibility, mockCalendarActivities, mockCalendarEvents, mockCalendarRitualBaths, mockHomePageProps, mockLoadingHomePageProps, mockMediumHomePageProps, mockMoonData, mockPendingMediumHomePageProps, mockQuickActions, mockRituals, mockSupplyPlanEmpty, mockSupplyPlanSufficientWithDemand, mockSupplyPlanWithCosts, mockSupplyPlanWithoutCosts, mockTerreiros, mockUpcomingEvents, mockUser, moveHomeWidgetInOrder, onboardingIntroModalPropsSchema, onboardingIntroModeSchema, onboardingIntroProfileContextSchema, overlayZIndex, parseScheduleDate, radiusPx, reorderHomeWidgetOrder, resolveExperiencePostType, secondsToRoundedMinutes, startPasskeyAuthentication, startPasskeyRegistration, useAcademyModulePage, useAcademyPage, useAccessBlockedPage, useActivityOnboarding, useAddressSectionCard, useAffiliateProgramPage, useAttendanceCheckinEntryPage, useAttendanceInsightsPage, useAvatarWithBadge, useBadgesPage, useCellphoneInput, useCompletenessCard, useContactPage, useContentClearance, useCredentialsPage, useElementSize, useEventAISuggestionsPage, useFilterDrawer, useFinancialRegister, useFinancialTransparencyPage, useFormChatAssistant, useGamificationCard, useGamificationHelpPage, useHideOnScroll, useHomePage, useInfiniteScroll, useInstallPrompt, useInventoryListItemPage, useInventoryListPage, useInviteLandingPage, useJoinTerreiroPage, useLabeledBrazilianStateSelect, useLeaderboardPage, useMeasureSlot, useMeasuredLayoutContext, useMeasuredSlot, useMediumFinancialTransparencyPage, useMediumHubPage, useMemberListItem, useMonthlyFeePaymentsManagementPage, useMoonCard, useMyPermissionsPage, useNotFoundPage, useNotificationSettingsPage, useOnboardingIntroModal, useOnboardingMedium, useOnboardingPage, useOnboardingTerreiro, useOptionalMeasuredLayoutContext, useOptionalUsageContext, usePWAUpdatePromptUI, usePermissionSelector, usePlanManagementPage, useProfileCompletenessCard, useQrLandingPage, useQuotaGuard, useRitualBathDetailPage, useRitualBathListPage, useRitualBathOnboarding, useRoleFormPage, useRoleManagementPage, useSelectMediumsPage, useSpiritualProfilePage, useSubscription, useSubscriptionContext, useSubscriptionGuard, useSupplyPlanPage, useTerreiroPolicyPage, useTerreiroProfileDataPage, useTerreiroProfilePage$1 as useTerreiroProfilePage, useTerreiroSectionCard, useThemeProvider, useUpgradePrompt, useUsageContext, useUsageQuota, useUsageQuotaPage, useVerificationBadge, useWhatsNewModal, validateEmail$1 as validateEmail, validatePassword$1 as validatePassword, validatePhoneNumber, validateCurrency as validateTerreiroCurrency, validateDueDay as validateTerreiroDueDay, validatePassword as validateTerreiroPassword, validatePasswordConfirmation as validateTerreiroPasswordConfirmation, validatePhone as validateTerreiroPhone, whatsNewAnnouncementSchema, whatsNewModalPropsSchema, whatsNewSlideSchema };
194827
195575
  //# sourceMappingURL=bundle.esm.js.map