gsintegrations 0.0.485 → 0.0.487

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/dist/bundle.cjs.js +894 -103
  2. package/dist/bundle.cjs.js.map +2 -2
  3. package/dist/bundle.esm.js +894 -104
  4. package/dist/bundle.esm.js.map +2 -2
  5. package/dist/index.d.ts +98 -2
  6. package/dist/types/components/FormChatAssistant/FormChatAssistant.types.d.ts +2 -0
  7. package/dist/types/pages/ActivityDetailPage/ActivityDetailPage.d.ts +1 -0
  8. package/dist/types/pages/ActivityDetailPage/ActivityDetailPage.types.d.ts +8 -0
  9. package/dist/types/pages/ActivityDetailPage/useActivityDetailPage.d.ts +1 -0
  10. package/dist/types/pages/ActivityListPage/ActivityListPage.types.d.ts +8 -0
  11. package/dist/types/pages/ActivityListPage/useActivityListPage.d.ts +1 -0
  12. package/dist/types/pages/ActivityOnboardingPage/ActivityOnboarding.types.d.ts +8 -0
  13. package/dist/types/pages/EventDetailPage/EventDetailPage.d.ts +2 -0
  14. package/dist/types/pages/EventDetailPage/EventDetailPage.types.d.ts +27 -0
  15. package/dist/types/pages/EventDetailPage/useEventDetailPage.d.ts +2 -0
  16. package/dist/types/pages/EventOnboardingPage/EventOnboarding.types.d.ts +22 -0
  17. package/dist/types/pages/EventOnboardingPage/components/EventActivitySelectionStep.d.ts +1 -0
  18. package/dist/types/pages/EventsPage/EventsPage.types.d.ts +8 -0
  19. package/dist/types/pages/EventsPage/useEventsPage.d.ts +1 -0
  20. package/dist/types/pages/HomePage/HomePage.types.d.ts +12 -0
  21. package/dist/types/pages/NearbyTerreiroSearchPage/NearbyTerreiroSearchPage.d.ts +4 -0
  22. package/dist/types/pages/NearbyTerreiroSearchPage/NearbyTerreiroSearchPage.types.d.ts +42 -0
  23. package/dist/types/pages/NearbyTerreiroSearchPage/TerreiroLocationSearch.d.ts +8 -0
  24. package/dist/types/pages/NearbyTerreiroSearchPage/TerreiroResultMap.d.ts +16 -0
  25. package/dist/types/pages/NearbyTerreiroSearchPage/index.d.ts +3 -0
  26. package/dist/types/pages/index.d.ts +1 -0
  27. package/package.json +1 -1
@@ -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');
@@ -126860,7 +126868,7 @@ const ActivityFormChatSummaryCard = ({ summary, confirmLabel = "Criar atividade"
126860
126868
  React__default.createElement(SummaryRow$4, { icon: React__default.createElement(default_1$X, { fontSize: "small" }), label: "Hor\u00E1rio", value: summary.isAllDay
126861
126869
  ? "Dia inteiro"
126862
126870
  : `${formatTime$2(summary.startTime)} – ${formatTime$2(summary.endTime)}` }))) : null,
126863
- summary.checkinStartWindowMinutes !== undefined ? (React__default.createElement(SummaryRow$4, { icon: React__default.createElement(default_1$X, { fontSize: "small" }), label: "Check-in", value: `${summary.checkinStartWindowMinutes} min antes / ${(_e = summary.checkinEndWindowMinutes) !== null && _e !== void 0 ? _e : 15} min depois` })) : null,
126871
+ summary.qrCheckinEnabled === false ? (React__default.createElement(SummaryRow$4, { icon: React__default.createElement(default_1$X, { fontSize: "small" }), label: "Check-in", value: "Desativado" })) : summary.checkinStartWindowMinutes !== undefined ? (React__default.createElement(SummaryRow$4, { icon: React__default.createElement(default_1$X, { fontSize: "small" }), label: "Check-in", value: `${summary.checkinStartWindowMinutes} min antes / ${(_e = summary.checkinEndWindowMinutes) !== null && _e !== void 0 ? _e : 15} min depois` })) : null,
126864
126872
  React__default.createElement(SummaryRow$4, { icon: React__default.createElement(default_1$Z, { fontSize: "small" }), label: "Participantes", value: members }),
126865
126873
  summary.minConfirmedMembers !== undefined ? (React__default.createElement(SummaryRow$4, { icon: React__default.createElement(default_1$Z, { fontSize: "small" }), label: "Qu\u00F3rum m\u00EDnimo", value: String(summary.minConfirmedMembers) })) : null,
126866
126874
  React__default.createElement(SummaryRow$4, { icon: React__default.createElement(default_1$Y, { fontSize: "small" }), label: "Materiais", value: insumos })),
@@ -127008,7 +127016,7 @@ const EventFormChatSummaryCard = ({ summary, confirmLabel = "Criar evento", edit
127008
127016
  React__default.createElement(SummaryRow$3, { icon: React__default.createElement(default_1$X, { fontSize: "small" }), label: "Hor\u00E1rio", value: summary.isAllDay
127009
127017
  ? "Dia inteiro"
127010
127018
  : `${formatTime$1(summary.startTime)} – ${formatTime$1(summary.endTime)}` }))) : null,
127011
- summary.checkinStartWindowMinutes !== undefined ? (React__default.createElement(SummaryRow$3, { icon: React__default.createElement(default_1$X, { fontSize: "small" }), label: "Check-in", value: `${summary.checkinStartWindowMinutes} min antes / ${(_g = summary.checkinEndWindowMinutes) !== null && _g !== void 0 ? _g : 15} min depois` })) : null,
127019
+ summary.qrCheckinEnabled === false ? (React__default.createElement(SummaryRow$3, { icon: React__default.createElement(default_1$X, { fontSize: "small" }), label: "Check-in", value: "Desativado" })) : summary.checkinStartWindowMinutes !== undefined ? (React__default.createElement(SummaryRow$3, { icon: React__default.createElement(default_1$X, { fontSize: "small" }), label: "Check-in", value: `${summary.checkinStartWindowMinutes} min antes / ${(_g = summary.checkinEndWindowMinutes) !== null && _g !== void 0 ? _g : 15} min depois` })) : null,
127012
127020
  React__default.createElement(SummaryRow$3, { icon: React__default.createElement(default_1$14, { fontSize: "small" }), label: "Local", value: formatLocation(summary) }),
127013
127021
  React__default.createElement(SummaryRow$3, { icon: React__default.createElement(default_1$W, { fontSize: "small" }), label: "Atividades", value: activities }),
127014
127022
  React__default.createElement(SummaryRow$3, { icon: React__default.createElement(default_1$Z, { fontSize: "small" }), label: "Participantes", value: members }),
@@ -133224,27 +133232,31 @@ const ActivityCheckinWindowStep = ({ formState, validationErrors, onChange, setF
133224
133232
  });
133225
133233
  }
133226
133234
  }, [setFieldValue, onChange]);
133235
+ const checkinEnabled = formState.qrCheckinEnabled !== false;
133227
133236
  return (React__default.createElement(Box$1, { sx: { p: { xs: 0.5, sm: 1 } } },
133228
- React__default.createElement(Typography$1, { variant: "body2", color: "text.secondary", sx: { mb: { xs: 2, sm: 3 } } },
133229
- "Configure o intervalo de tempo permitido para check-in. O check-in estar\u00E1 dispon\u00EDvel a partir de X minutos ",
133230
- React__default.createElement("strong", null, "antes"),
133231
- " da atividade at\u00E9 Y minutos",
133232
- React__default.createElement("strong", null, " ap\u00F3s"),
133233
- " o in\u00EDcio."),
133234
- React__default.createElement(Alert$1, { severity: "info", icon: React__default.createElement(Info$1, null), sx: { mb: { xs: 2, sm: 3 } } },
133235
- React__default.createElement(Typography$1, { variant: "body2" },
133236
- React__default.createElement("strong", null, "Exemplo:"),
133237
- " Com os valores padr\u00E3o (10 e 15), se a atividade come\u00E7a \u00E0s 19h, o check-in abrir\u00E1 \u00E0s 18h50 e fechar\u00E1 \u00E0s 19h15.")),
133238
- React__default.createElement(Box$1, { sx: { mb: { xs: 2, sm: 3 } } },
133239
- React__default.createElement(LabeledMinuteInput, { name: "checkinStartWindowMinutes", label: "Abrir check-in (minutos antes)", value: formState.checkinStartWindowMinutes, onChange: (value) => updateField("checkinStartWindowMinutes", value), error: validationErrors.checkinStartWindowMinutes, helperText: validationErrors.checkinStartWindowMinutes ||
133240
- "Quantos minutos antes da atividade checar entrada (0-120)", fallbackValue: 10, presets: [10, 20, 30], min: 0, max: 120, "data-testid": "activity-checkin-start-window-input" })),
133241
- React__default.createElement(Box$1, { sx: { mb: { xs: 2, sm: 3 } } },
133242
- React__default.createElement(LabeledMinuteInput, { name: "checkinEndWindowMinutes", label: "Fechar check-in (minutos ap\u00F3s)", value: formState.checkinEndWindowMinutes, onChange: (value) => updateField("checkinEndWindowMinutes", value), error: validationErrors.checkinEndWindowMinutes, helperText: validationErrors.checkinEndWindowMinutes ||
133243
- "Quantos minutos após o início da atividade checar entrada (0-120)", fallbackValue: 15, presets: [10, 20, 30], min: 0, max: 120, "data-testid": "activity-checkin-end-window-input" })),
133244
- React__default.createElement(Box$1, { sx: { p: { xs: 1.5, sm: 2 }, bgcolor: "action.hover", borderRadius: RADIUS.default } },
133245
- React__default.createElement(Typography$1, { variant: "body2", color: "text.secondary" },
133246
- React__default.createElement("strong", null, "Dica:"),
133247
- " Para atividades ritualisticas, manter a precis\u00E3o \u00E9 importante. Use 10 minutos de abertura e 15 minutos de fechamento como padr\u00E3o para manter a disciplina energ\u00E9tica."))));
133237
+ React__default.createElement(FormControlLabel$1, { control: React__default.createElement(Switch$1, { checked: checkinEnabled, onChange: (_, checked) => updateField("qrCheckinEnabled", checked), inputProps: { "aria-label": "Habilitar check-in" }, "data-testid": "activity-checkin-enabled-switch" }), label: "Habilitar check-in", sx: { mb: 2, ml: 0 } }),
133238
+ !checkinEnabled ? (React__default.createElement(Typography$1, { variant: "body2", color: "text.secondary" }, "Esta atividade n\u00E3o ter\u00E1 check-in na porta. A janela e o QR ficam ocultos.")) : null,
133239
+ checkinEnabled ? (React__default.createElement(React__default.Fragment, null,
133240
+ React__default.createElement(Typography$1, { variant: "body2", color: "text.secondary", sx: { mb: { xs: 2, sm: 3 } } },
133241
+ "Configure o intervalo de tempo permitido para check-in. O check-in estar\u00E1 dispon\u00EDvel a partir de X minutos ",
133242
+ React__default.createElement("strong", null, "antes"),
133243
+ " da atividade at\u00E9 Y minutos",
133244
+ React__default.createElement("strong", null, " ap\u00F3s"),
133245
+ " o in\u00EDcio."),
133246
+ React__default.createElement(Alert$1, { severity: "info", icon: React__default.createElement(Info$1, null), sx: { mb: { xs: 2, sm: 3 } } },
133247
+ React__default.createElement(Typography$1, { variant: "body2" },
133248
+ React__default.createElement("strong", null, "Exemplo:"),
133249
+ " Com os valores padr\u00E3o (10 e 15), se a atividade come\u00E7a \u00E0s 19h, o check-in abrir\u00E1 \u00E0s 18h50 e fechar\u00E1 \u00E0s 19h15.")),
133250
+ React__default.createElement(Box$1, { sx: { mb: { xs: 2, sm: 3 } } },
133251
+ React__default.createElement(LabeledMinuteInput, { name: "checkinStartWindowMinutes", label: "Abrir check-in (minutos antes)", value: formState.checkinStartWindowMinutes, onChange: (value) => updateField("checkinStartWindowMinutes", value), error: validationErrors.checkinStartWindowMinutes, helperText: validationErrors.checkinStartWindowMinutes ||
133252
+ "Quantos minutos antes da atividade checar entrada (0-120)", fallbackValue: 10, presets: [10, 20, 30], min: 0, max: 120, "data-testid": "activity-checkin-start-window-input" })),
133253
+ React__default.createElement(Box$1, { sx: { mb: { xs: 2, sm: 3 } } },
133254
+ React__default.createElement(LabeledMinuteInput, { name: "checkinEndWindowMinutes", label: "Fechar check-in (minutos ap\u00F3s)", value: formState.checkinEndWindowMinutes, onChange: (value) => updateField("checkinEndWindowMinutes", value), error: validationErrors.checkinEndWindowMinutes, helperText: validationErrors.checkinEndWindowMinutes ||
133255
+ "Quantos minutos após o início da atividade checar entrada (0-120)", fallbackValue: 15, presets: [10, 20, 30], min: 0, max: 120, "data-testid": "activity-checkin-end-window-input" })),
133256
+ React__default.createElement(Box$1, { sx: { p: { xs: 1.5, sm: 2 }, bgcolor: "action.hover", borderRadius: RADIUS.default } },
133257
+ React__default.createElement(Typography$1, { variant: "body2", color: "text.secondary" },
133258
+ React__default.createElement("strong", null, "Dica:"),
133259
+ " Para atividades ritualisticas, manter a precis\u00E3o \u00E9 importante. Use 10 minutos de abertura e 15 minutos de fechamento como padr\u00E3o para manter a disciplina energ\u00E9tica.")))) : null));
133248
133260
  };
133249
133261
 
133250
133262
  const MembersSelectionStep = ({ formState, validationErrors, onChange, availableMembers = [], }) => {
@@ -134046,6 +134058,7 @@ const TemplateSchema = objectType({
134046
134058
  isTemplate: booleanType(),
134047
134059
  });
134048
134060
  const ActivityCheckinWindowSchema = objectType({
134061
+ qrCheckinEnabled: booleanType().optional(),
134049
134062
  checkinStartWindowMinutes: numberType()
134050
134063
  .int()
134051
134064
  .min(0, "Deve ser 0 ou maior")
@@ -134073,6 +134086,7 @@ objectType({
134073
134086
  .int("Quórum mínimo deve ser um número inteiro")
134074
134087
  .min(1, "Quórum mínimo deve ser pelo menos 1")
134075
134088
  .optional(),
134089
+ qrCheckinEnabled: booleanType().optional(),
134076
134090
  checkinStartWindowMinutes: numberType()
134077
134091
  .int()
134078
134092
  .min(0)
@@ -134165,13 +134179,18 @@ const DEFAULT_FORM_STATE$4 = {
134165
134179
  insumos: [],
134166
134180
  isTemplate: false,
134167
134181
  minConfirmedMembers: undefined,
134182
+ qrCheckinEnabled: true,
134168
134183
  };
134169
134184
  const useActivityOnboarding = (props) => {
134170
134185
  const [isLoading, setIsLoading] = useState(false);
134171
134186
  const [error, setError] = useState();
134172
134187
  const formState = useMemo(() => {
134173
- return props.initialData || DEFAULT_FORM_STATE$4;
134174
- }, [props.initialData]);
134188
+ const base = props.initialData || DEFAULT_FORM_STATE$4;
134189
+ if (props.isPersonalProfile) {
134190
+ return Object.assign(Object.assign({}, base), { qrCheckinEnabled: false });
134191
+ }
134192
+ return base;
134193
+ }, [props.initialData, props.isPersonalProfile]);
134175
134194
  const steps = useMemo(() => {
134176
134195
  return [
134177
134196
  {
@@ -134204,7 +134223,7 @@ const useActivityOnboarding = (props) => {
134204
134223
  id: "checkin-window",
134205
134224
  label: "Check-in",
134206
134225
  title: "Configurar Check-in",
134207
- description: "Defina o período permitido para que os participantes façam check-in",
134226
+ description: "Escolha se haverá check-in e, se houver, o período permitido",
134208
134227
  component: ActivityCheckinWindowStep,
134209
134228
  },
134210
134229
  ]),
@@ -134945,6 +134964,8 @@ const formatMinutesToHHMM$3 = (totalMinutes) => {
134945
134964
  };
134946
134965
  const getConfiguredCheckinWindow$1 = (activity) => {
134947
134966
  var _a, _b, _c, _d;
134967
+ if (activity.qrCheckinEnabled === false)
134968
+ return null;
134948
134969
  const startTime = (_b = (_a = activity.occurrences) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.startTime;
134949
134970
  const startMinutes = parseTimeToMinutes$3(startTime);
134950
134971
  if (startMinutes === null)
@@ -135249,26 +135270,27 @@ const ActivityDateTime = ({ activity, checkinWindow, formatDate, formatTime, the
135249
135270
  ? formatTime(occurrence.endTime)
135250
135271
  : "Não definido"))))))) : (React__default.createElement(Box$1, { sx: { textAlign: "center", py: 2 } },
135251
135272
  React__default.createElement(Typography$1, { variant: "body2", color: "text.secondary" }, "Nenhuma data definida"))),
135252
- React__default.createElement(Box$1, { sx: { display: "flex", alignItems: "center", mt: 1 } },
135253
- React__default.createElement(AccessTime, { sx: { mr: 1.5, color: "text.secondary" } }),
135254
- React__default.createElement(Typography$1, { variant: "body2", color: "text.secondary", sx: { mr: 1 } },
135255
- "Check-in v\u00E1lido: ",
135256
- getCheckinSummary()),
135257
- checkinWindow ? (React__default.createElement(Box$1, { component: "span" },
135258
- React__default.createElement(Typography$1, { component: "span", variant: "caption", sx: {
135259
- px: 1,
135260
- py: 0.25,
135261
- borderRadius: RADIUS.default,
135262
- border: `1px solid ${theme.palette.divider}`,
135263
- color: checkinWindow.state === "active"
135264
- ? theme.palette.success.main
135265
- : checkinWindow.state === "scheduled"
135266
- ? theme.palette.warning.main
135267
- : checkinWindow.state === "closed"
135268
- ? theme.palette.error.main
135269
- : theme.palette.text.secondary,
135270
- } }, stateLabel[checkinWindow.state]))) : null),
135271
- getCheckinExplanation() ? (React__default.createElement(Typography$1, { variant: "caption", color: "text.secondary", sx: { mt: 0.5 } }, getCheckinExplanation())) : null)));
135273
+ activity.qrCheckinEnabled !== false ? (React__default.createElement(React__default.Fragment, null,
135274
+ React__default.createElement(Box$1, { sx: { display: "flex", alignItems: "center", mt: 1 } },
135275
+ React__default.createElement(AccessTime, { sx: { mr: 1.5, color: "text.secondary" } }),
135276
+ React__default.createElement(Typography$1, { variant: "body2", color: "text.secondary", sx: { mr: 1 } },
135277
+ "Check-in v\u00E1lido: ",
135278
+ getCheckinSummary()),
135279
+ checkinWindow ? (React__default.createElement(Box$1, { component: "span" },
135280
+ React__default.createElement(Typography$1, { component: "span", variant: "caption", sx: {
135281
+ px: 1,
135282
+ py: 0.25,
135283
+ borderRadius: RADIUS.default,
135284
+ border: `1px solid ${theme.palette.divider}`,
135285
+ color: checkinWindow.state === "active"
135286
+ ? theme.palette.success.main
135287
+ : checkinWindow.state === "scheduled"
135288
+ ? theme.palette.warning.main
135289
+ : checkinWindow.state === "closed"
135290
+ ? theme.palette.error.main
135291
+ : theme.palette.text.secondary,
135292
+ } }, stateLabel[checkinWindow.state]))) : null),
135293
+ getCheckinExplanation() ? (React__default.createElement(Typography$1, { variant: "caption", color: "text.secondary", sx: { mt: 0.5 } }, getCheckinExplanation())) : null)) : null)));
135272
135294
  };
135273
135295
  var ActivityDateTime$1 = React__default.memo(ActivityDateTime);
135274
135296
 
@@ -135854,6 +135876,7 @@ const ActivitySchema$3 = objectType({
135854
135876
  title: stringType(),
135855
135877
  description: stringType(),
135856
135878
  isTemplate: booleanType(),
135879
+ qrCheckinEnabled: booleanType().optional(),
135857
135880
  qrReleaseOffsetMinutes: numberType().nullable().optional(),
135858
135881
  qrCheckinGraceMinutes: numberType().nullable().optional(),
135859
135882
  checkinStartWindowMinutes: numberType().nullable().optional(),
@@ -135969,6 +135992,7 @@ const ActivityDetailSchema = objectType({
135969
135992
  title: stringType(),
135970
135993
  description: stringType(),
135971
135994
  isTemplate: booleanType(),
135995
+ qrCheckinEnabled: booleanType().optional(),
135972
135996
  qrReleaseOffsetMinutes: numberType().nullable().optional(),
135973
135997
  qrCheckinGraceMinutes: numberType().nullable().optional(),
135974
135998
  checkinStartWindowMinutes: numberType().nullable().optional(),
@@ -136377,7 +136401,9 @@ const ActivityDetailPage = (props) => {
136377
136401
  const bTime = b.confirmedAt ? new Date(b.confirmedAt).getTime() : 0;
136378
136402
  return bTime - aTime;
136379
136403
  });
136380
- const canShowCheckinCta = props.canScanCheckin &&
136404
+ const checkinEnabled = data.activity.qrCheckinEnabled !== false;
136405
+ const canShowCheckinCta = checkinEnabled &&
136406
+ props.canScanCheckin &&
136381
136407
  ((_a = props.checkinWindow) === null || _a === void 0 ? void 0 : _a.state) === "active" &&
136382
136408
  !(currentMember === null || currentMember === void 0 ? void 0 : currentMember.confirmedAt) &&
136383
136409
  !props.isPersonalProfile;
@@ -136402,7 +136428,7 @@ const ActivityDetailPage = (props) => {
136402
136428
  React__default.createElement(Stack$1, { spacing: LIST_GAP },
136403
136429
  React__default.createElement(ActivityInfo$1, { activity: data.activity, canChangeStatus: props.canChangeStatus || false, canUseModel: props.canUseModel || false, statusOptions: statusOptions, onStatusChange: fns.handleChangeStatus, onUseModel: fns.handleUseModel, theme: theme }),
136404
136430
  React__default.createElement(ActivityDateTime$1, { activity: data.activity, checkinWindow: props.checkinWindow, formatDate: data.formatDate, formatTime: data.formatTime, theme: theme }),
136405
- props.canManageQr && !props.isPersonalProfile && (React__default.createElement(ActivityAttendanceQr, { attendanceQr: props.attendanceQr, onRefreshQrState: props.onRefreshQrState })),
136431
+ checkinEnabled && props.canManageQr && !props.isPersonalProfile && (React__default.createElement(ActivityAttendanceQr, { attendanceQr: props.attendanceQr, onRefreshQrState: props.onRefreshQrState })),
136406
136432
  React__default.createElement(ActivityMediums$1, { activity: data.activity, onAddMedium: fns.handleAddMedium, isAdmin: data.isAdmin, theme: theme, currentMemberId: data.currentMemberId, onConfirmParticipation: fns.handleConfirmParticipation, onDeclineParticipation: fns.handleDeclineParticipation }),
136407
136433
  attendanceMembers.length > 0 && (React__default.createElement(ConfirmedAttendanceCard$3, { attendanceMembers: attendanceMembers, theme: theme, formatConfirmedAt: formatConfirmedAt })),
136408
136434
  React__default.createElement(ActivitySupplies$1, { activity: data.activity, onAddSupply: fns.handleAddSupply, theme: theme })))),
@@ -137251,6 +137277,7 @@ const EventSchema = objectType({
137251
137277
  name: stringType().optional(),
137252
137278
  description: stringType().optional(),
137253
137279
  isTemplate: booleanType().optional(),
137280
+ qrCheckinEnabled: booleanType().optional(),
137254
137281
  qrReleaseOffsetMinutes: numberType().nullable().optional(),
137255
137282
  qrCheckinGraceMinutes: numberType().nullable().optional(),
137256
137283
  checkinStartWindowMinutes: numberType().nullable().optional(),
@@ -137499,27 +137526,31 @@ const EventCheckinWindowStep = ({ formState, validationErrors, onChange, setFiel
137499
137526
  onChange(createFieldEvent(name, value));
137500
137527
  }
137501
137528
  }, [setFieldValue, onChange]);
137529
+ const checkinEnabled = formState.qrCheckinEnabled !== false;
137502
137530
  return (React__default.createElement(Box$1, { sx: { p: { xs: 0.5, sm: 1 } } },
137503
- React__default.createElement(Typography$1, { variant: "body2", color: "text.secondary", sx: { mb: 2.5 } },
137504
- "Configure o intervalo de tempo permitido para check-in. O check-in estar\u00E1 dispon\u00EDvel a partir de X minutos ",
137505
- React__default.createElement("strong", null, "antes"),
137506
- " do evento at\u00E9 Y minutos",
137507
- React__default.createElement("strong", null, " ap\u00F3s"),
137508
- " o in\u00EDcio."),
137509
- React__default.createElement(Alert$1, { severity: "info", icon: React__default.createElement(Info$1, null), sx: { mb: 2.5 } },
137510
- React__default.createElement(Typography$1, { variant: "body2" },
137511
- React__default.createElement("strong", null, "Exemplo:"),
137512
- " Com os valores padr\u00E3o (10 e 15), se o evento come\u00E7a \u00E0s 19h, o check-in abrir\u00E1 \u00E0s 18h50 e fechar\u00E1 \u00E0s 19h15.")),
137513
- React__default.createElement(Box$1, { sx: { mb: 2.5 } },
137514
- React__default.createElement(LabeledMinuteInput, { name: "checkinStartWindowMinutes", label: "Abrir check-in (minutos antes)", value: formState.checkinStartWindowMinutes, onChange: (value) => updateField("checkinStartWindowMinutes", value), error: validationErrors.checkinStartWindowMinutes, helperText: validationErrors.checkinStartWindowMinutes ||
137515
- "Quantos minutos antes do evento checar entrada (0-120)", fallbackValue: 10, min: 0, max: 120, "data-testid": "event-checkin-start-window-input" })),
137516
- React__default.createElement(Box$1, { sx: { mb: 2.5 } },
137517
- React__default.createElement(LabeledMinuteInput, { name: "checkinEndWindowMinutes", label: "Fechar check-in (minutos ap\u00F3s)", value: formState.checkinEndWindowMinutes, onChange: (value) => updateField("checkinEndWindowMinutes", value), error: validationErrors.checkinEndWindowMinutes, helperText: validationErrors.checkinEndWindowMinutes ||
137518
- "Quantos minutos após o início do evento checar entrada (0-120)", fallbackValue: 15, min: 0, max: 120, "data-testid": "event-checkin-end-window-input" })),
137519
- React__default.createElement(Box$1, { sx: { p: { xs: 1.5, sm: 2 }, bgcolor: "action.hover", borderRadius: RADIUS.default } },
137520
- React__default.createElement(Typography$1, { variant: "body2", color: "text.secondary" },
137521
- React__default.createElement("strong", null, "Dica:"),
137522
- " Para eventos grandes, aumentar o intervalo de abertura (e.g. 20 minutos antes) permite que mais pessoas cheguem a tempo. Para eventos pequenos, 10 e 15 minutos geralmente \u00E9 o ideal."))));
137531
+ React__default.createElement(FormControlLabel$1, { control: React__default.createElement(Switch$1, { checked: checkinEnabled, onChange: (_, checked) => updateField("qrCheckinEnabled", checked), inputProps: { "aria-label": "Habilitar check-in" }, "data-testid": "event-checkin-enabled-switch" }), label: "Habilitar check-in", sx: { mb: 2, ml: 0 } }),
137532
+ !checkinEnabled ? (React__default.createElement(Typography$1, { variant: "body2", color: "text.secondary" }, "Este evento n\u00E3o ter\u00E1 check-in na porta. A janela e o QR ficam ocultos.")) : null,
137533
+ checkinEnabled ? (React__default.createElement(React__default.Fragment, null,
137534
+ React__default.createElement(Typography$1, { variant: "body2", color: "text.secondary", sx: { mb: 2.5 } },
137535
+ "Configure o intervalo de tempo permitido para check-in. O check-in estar\u00E1 dispon\u00EDvel a partir de X minutos ",
137536
+ React__default.createElement("strong", null, "antes"),
137537
+ " do evento at\u00E9 Y minutos",
137538
+ React__default.createElement("strong", null, " ap\u00F3s"),
137539
+ " o in\u00EDcio."),
137540
+ React__default.createElement(Alert$1, { severity: "info", icon: React__default.createElement(Info$1, null), sx: { mb: 2.5 } },
137541
+ React__default.createElement(Typography$1, { variant: "body2" },
137542
+ React__default.createElement("strong", null, "Exemplo:"),
137543
+ " Com os valores padr\u00E3o (10 e 15), se o evento come\u00E7a \u00E0s 19h, o check-in abrir\u00E1 \u00E0s 18h50 e fechar\u00E1 \u00E0s 19h15.")),
137544
+ React__default.createElement(Box$1, { sx: { mb: 2.5 } },
137545
+ React__default.createElement(LabeledMinuteInput, { name: "checkinStartWindowMinutes", label: "Abrir check-in (minutos antes)", value: formState.checkinStartWindowMinutes, onChange: (value) => updateField("checkinStartWindowMinutes", value), error: validationErrors.checkinStartWindowMinutes, helperText: validationErrors.checkinStartWindowMinutes ||
137546
+ "Quantos minutos antes do evento checar entrada (0-120)", fallbackValue: 10, min: 0, max: 120, "data-testid": "event-checkin-start-window-input" })),
137547
+ React__default.createElement(Box$1, { sx: { mb: 2.5 } },
137548
+ React__default.createElement(LabeledMinuteInput, { name: "checkinEndWindowMinutes", label: "Fechar check-in (minutos ap\u00F3s)", value: formState.checkinEndWindowMinutes, onChange: (value) => updateField("checkinEndWindowMinutes", value), error: validationErrors.checkinEndWindowMinutes, helperText: validationErrors.checkinEndWindowMinutes ||
137549
+ "Quantos minutos após o início do evento checar entrada (0-120)", fallbackValue: 15, min: 0, max: 120, "data-testid": "event-checkin-end-window-input" })),
137550
+ React__default.createElement(Box$1, { sx: { p: { xs: 1.5, sm: 2 }, bgcolor: "action.hover", borderRadius: RADIUS.default } },
137551
+ React__default.createElement(Typography$1, { variant: "body2", color: "text.secondary" },
137552
+ React__default.createElement("strong", null, "Dica:"),
137553
+ " Para eventos grandes, aumentar o intervalo de abertura (e.g. 20 minutos antes) permite que mais pessoas cheguem a tempo. Para eventos pequenos, 10 e 15 minutos geralmente \u00E9 o ideal.")))) : null));
137523
137554
  };
137524
137555
 
137525
137556
  let googleMapsScriptPromise = null;
@@ -138564,7 +138595,7 @@ const EventReviewStep = ({ formState, availableActivities, }) => {
138564
138595
  React__default.createElement(Typography$1, { variant: "h6", sx: { mb: 2, display: "flex", alignItems: "center" } },
138565
138596
  React__default.createElement(AccessTime, { sx: { mr: 1 } }),
138566
138597
  " Janela de Check-in"),
138567
- !formState.isAllDay ? (React__default.createElement(React__default.Fragment, null,
138598
+ formState.qrCheckinEnabled === false ? (React__default.createElement(Typography$1, { variant: "body2", color: "text.secondary" }, "Check-in desativado para este evento.")) : !formState.isAllDay ? (React__default.createElement(React__default.Fragment, null,
138568
138599
  React__default.createElement(Typography$1, { variant: "body2", sx: { mb: 1 } },
138569
138600
  React__default.createElement("strong", null, "Evento:"),
138570
138601
  " ",
@@ -139423,7 +139454,7 @@ const EventActivitySelectionStep = ({ formState, validationErrors, onChange, ava
139423
139454
  "):"),
139424
139455
  React__default.createElement(Button$1, { variant: "text", size: "small", startIcon: React__default.createElement(Clear$1, null), onClick: handleClear, sx: { alignSelf: { xs: "stretch", sm: "flex-start" } } }, "Limpar todas")),
139425
139456
  selectedActivities.map((activity) => {
139426
- var _a, _b, _c, _d, _e, _f;
139457
+ var _a, _b, _c, _d, _e, _f, _g;
139427
139458
  return (React__default.createElement(Box$1, { key: activity.id, sx: {
139428
139459
  mb: 1.5,
139429
139460
  p: { xs: 1.25, sm: 1.5 },
@@ -139467,8 +139498,9 @@ const EventActivitySelectionStep = ({ formState, validationErrors, onChange, ava
139467
139498
  } },
139468
139499
  React__default.createElement(LabeledTimePicker, { label: "In\u00EDcio", value: activity.startTime || "", error: (_a = activityTimeValidation.errorsByActivityId[String(activity.id)]) === null || _a === void 0 ? void 0 : _a.startTime, helperText: ((_b = activityTimeValidation.errorsByActivityId[String(activity.id)]) === null || _b === void 0 ? void 0 : _b.startTime) || " ", onChange: (value) => handleActivityTimeChange(activity.id, "startTime", value), "data-testid": `event-activity-start-time-${activity.id}` }),
139469
139500
  React__default.createElement(LabeledTimePicker, { label: "T\u00E9rmino", value: activity.endTime || "", error: (_c = activityTimeValidation.errorsByActivityId[String(activity.id)]) === null || _c === void 0 ? void 0 : _c.endTime, helperText: ((_d = activityTimeValidation.errorsByActivityId[String(activity.id)]) === null || _d === void 0 ? void 0 : _d.endTime) || " ", onChange: (value) => handleActivityTimeChange(activity.id, "endTime", value), "data-testid": `event-activity-end-time-${activity.id}` }),
139470
- React__default.createElement(TextField$1, { fullWidth: true, label: checkinOpenLabel, type: "number", size: "small", value: (_e = activity.checkinStartWindowMinutes) !== null && _e !== void 0 ? _e : 10, onChange: (e) => handleActivityCheckinWindowChange(activity.id, "checkinStartWindowMinutes", e.target.value), InputLabelProps: { shrink: true }, inputProps: { min: 0, max: 120 }, helperText: isMobile ? "Antes do início" : "Minutos antes do início" }),
139471
- React__default.createElement(TextField$1, { fullWidth: true, label: checkinCloseLabel, type: "number", size: "small", value: (_f = activity.checkinEndWindowMinutes) !== null && _f !== void 0 ? _f : 15, onChange: (e) => handleActivityCheckinWindowChange(activity.id, "checkinEndWindowMinutes", e.target.value), InputLabelProps: { shrink: true }, inputProps: { min: 0, max: 120 }, helperText: isMobile ? "Após o início" : "Minutos após o início" })),
139501
+ ((_e = availableActivities.find((item) => String(item.id) === String(activity.id))) === null || _e === void 0 ? void 0 : _e.qrCheckinEnabled) !== false ? (React__default.createElement(React__default.Fragment, null,
139502
+ React__default.createElement(TextField$1, { fullWidth: true, label: checkinOpenLabel, type: "number", size: "small", value: (_f = activity.checkinStartWindowMinutes) !== null && _f !== void 0 ? _f : 10, onChange: (e) => handleActivityCheckinWindowChange(activity.id, "checkinStartWindowMinutes", e.target.value), InputLabelProps: { shrink: true }, inputProps: { min: 0, max: 120 }, helperText: isMobile ? "Antes do início" : "Minutos antes do início" }),
139503
+ React__default.createElement(TextField$1, { fullWidth: true, label: checkinCloseLabel, type: "number", size: "small", value: (_g = activity.checkinEndWindowMinutes) !== null && _g !== void 0 ? _g : 15, onChange: (e) => handleActivityCheckinWindowChange(activity.id, "checkinEndWindowMinutes", e.target.value), InputLabelProps: { shrink: true }, inputProps: { min: 0, max: 120 }, helperText: isMobile ? "Após o início" : "Minutos após o início" }))) : null),
139472
139504
  React__default.createElement(Box$1, { sx: {
139473
139505
  display: "flex",
139474
139506
  alignItems: { xs: "flex-start", sm: "center" },
@@ -139708,6 +139740,7 @@ const EventLocationSchema = objectType({
139708
139740
  }
139709
139741
  });
139710
139742
  const EventCheckinWindowSchema = objectType({
139743
+ qrCheckinEnabled: booleanType().optional(),
139711
139744
  checkinStartWindowMinutes: numberType()
139712
139745
  .int()
139713
139746
  .min(0, "Deve ser 0 ou maior")
@@ -139760,6 +139793,7 @@ const ActivitySchema$1 = objectType({
139760
139793
  durationMinutes: numberType().optional(),
139761
139794
  startTime: stringType().optional(), // HH:MM — per-activity start time for the event
139762
139795
  endTime: stringType().optional(), // HH:MM — per-activity end time for the event
139796
+ qrCheckinEnabled: booleanType().optional(),
139763
139797
  checkinStartWindowMinutes: numberType().int().min(0).max(120).optional(),
139764
139798
  checkinEndWindowMinutes: numberType().int().min(0).max(120).optional(),
139765
139799
  qrReleaseOffsetMinutes: numberType().int().min(0).max(180).optional(),
@@ -139819,6 +139853,7 @@ const EventFormValuesSchema = objectType({
139819
139853
  insumos: arrayType(anyType()).optional(),
139820
139854
  activities: arrayType(ActivitySchema$1).optional(), // Changed from activity to activities
139821
139855
  requiredActivityIds: arrayType(stringType()).optional(),
139856
+ qrCheckinEnabled: booleanType().optional(),
139822
139857
  checkinStartWindowMinutes: numberType()
139823
139858
  .int()
139824
139859
  .min(0)
@@ -139936,6 +139971,7 @@ const DEFAULT_FORM_STATE$3 = {
139936
139971
  isAllDay: false,
139937
139972
  startTime: "",
139938
139973
  endTime: "",
139974
+ qrCheckinEnabled: true,
139939
139975
  checkinStartWindowMinutes: 10,
139940
139976
  checkinEndWindowMinutes: 15,
139941
139977
  location: {
@@ -139976,24 +140012,26 @@ const EMPTY_SCHEMA = objectType({});
139976
140012
  * Computes the initial form state from props, applying terreiro address
139977
140013
  * defaults when the location type is "in terreiro".
139978
140014
  */
139979
- const buildInitialFormState = (initialData, isTerreiroAddressEmpty, knownLocations) => {
140015
+ const buildInitialFormState = (initialData, isTerreiroAddressEmpty, knownLocations, isPersonalProfile = false) => {
139980
140016
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
139981
140017
  const baseState = initialData !== null && initialData !== void 0 ? initialData : DEFAULT_FORM_STATE$3;
139982
- const isCreateFlow = !baseState.id;
140018
+ const withCheckin = isPersonalProfile
140019
+ ? Object.assign(Object.assign({}, baseState), { qrCheckinEnabled: false }) : baseState;
140020
+ const isCreateFlow = !withCheckin.id;
139983
140021
  if (isCreateFlow) {
139984
140022
  const fallback = (knownLocations && knownLocations[0]) || "Endereço do Terreiro";
139985
- const existingKnownLocation = ((_c = (_b = (_a = baseState.location) === null || _a === void 0 ? void 0 : _a.knownLocation) === null || _b === void 0 ? void 0 : _b.trim) === null || _c === void 0 ? void 0 : _c.call(_b)) || "";
139986
- return Object.assign(Object.assign({}, baseState), { location: Object.assign(Object.assign({}, baseState.location), { isInTerreiro: !isTerreiroAddressEmpty, knownLocation: !isTerreiroAddressEmpty
140023
+ const existingKnownLocation = ((_c = (_b = (_a = withCheckin.location) === null || _a === void 0 ? void 0 : _a.knownLocation) === null || _b === void 0 ? void 0 : _b.trim) === null || _c === void 0 ? void 0 : _c.call(_b)) || "";
140024
+ return Object.assign(Object.assign({}, withCheckin), { location: Object.assign(Object.assign({}, withCheckin.location), { isInTerreiro: !isTerreiroAddressEmpty, knownLocation: !isTerreiroAddressEmpty
139987
140025
  ? existingKnownLocation || fallback
139988
- : (_e = (_d = baseState.location) === null || _d === void 0 ? void 0 : _d.knownLocation) !== null && _e !== void 0 ? _e : "" }) });
140026
+ : (_e = (_d = withCheckin.location) === null || _d === void 0 ? void 0 : _d.knownLocation) !== null && _e !== void 0 ? _e : "" }) });
139989
140027
  }
139990
- const shouldDefaultToTerreiro = (_g = (_f = baseState.location) === null || _f === void 0 ? void 0 : _f.isInTerreiro) !== null && _g !== void 0 ? _g : true;
140028
+ const shouldDefaultToTerreiro = (_g = (_f = withCheckin.location) === null || _f === void 0 ? void 0 : _f.isInTerreiro) !== null && _g !== void 0 ? _g : true;
139991
140029
  if (shouldDefaultToTerreiro && !isTerreiroAddressEmpty) {
139992
- const existing = ((_k = (_j = (_h = baseState.location) === null || _h === void 0 ? void 0 : _h.knownLocation) === null || _j === void 0 ? void 0 : _j.trim) === null || _k === void 0 ? void 0 : _k.call(_j)) || "";
140030
+ const existing = ((_k = (_j = (_h = withCheckin.location) === null || _h === void 0 ? void 0 : _h.knownLocation) === null || _j === void 0 ? void 0 : _j.trim) === null || _k === void 0 ? void 0 : _k.call(_j)) || "";
139993
140031
  const fallback = (knownLocations && knownLocations[0]) || "Endereço do Terreiro";
139994
- return Object.assign(Object.assign({}, baseState), { location: Object.assign(Object.assign({}, baseState.location), { isInTerreiro: true, knownLocation: existing || fallback }) });
140032
+ return Object.assign(Object.assign({}, withCheckin), { location: Object.assign(Object.assign({}, withCheckin.location), { isInTerreiro: true, knownLocation: existing || fallback }) });
139995
140033
  }
139996
- return baseState;
140034
+ return withCheckin;
139997
140035
  };
139998
140036
  // ---------------------------------------------------------------------------
139999
140037
  // Hook
@@ -140003,7 +140041,7 @@ const useEventOnboarding = (props) => {
140003
140041
  const { initialData, isTerreiroAddressEmpty, knownLocations, createFromModel, availableActivities, canAddActivities = true, activityQuotaMessage, canCreateTemplates = true, templateQuotaMessage, availableMembers, availableInsumos, onComplete, onCancel, onStepChange: onStepChangeProp, onRequestAISuggestions, isAISuggestionsLoading = false, isPersonalProfile = false, enableGoogleAddress = false, googleMapsApiKey, googleCountryCode = "br", googleLanguage = "pt-BR", } = props;
140004
140042
  const [isLoading, setIsLoading] = useState(false);
140005
140043
  const [error, setError] = useState();
140006
- const initialFormState = useMemo(() => buildInitialFormState(initialData, isTerreiroAddressEmpty, knownLocations), [initialData, isTerreiroAddressEmpty, knownLocations]);
140044
+ const initialFormState = useMemo(() => buildInitialFormState(initialData, isTerreiroAddressEmpty, knownLocations, isPersonalProfile), [initialData, isTerreiroAddressEmpty, knownLocations, isPersonalProfile]);
140007
140045
  // -----------------------------------------------------------------------
140008
140046
  // Step definitions — pure data, no inline wrapper components
140009
140047
  // -----------------------------------------------------------------------
@@ -140046,7 +140084,7 @@ const useEventOnboarding = (props) => {
140046
140084
  id: "checkin-window",
140047
140085
  label: "Check-in",
140048
140086
  title: "Configurar Check-in",
140049
- description: "Defina o período permitido para que os participantes façam check-in",
140087
+ description: "Escolha se haverá check-in e, se houver, o período permitido",
140050
140088
  component: EventCheckinWindowStep,
140051
140089
  },
140052
140090
  ]),
@@ -140363,17 +140401,18 @@ const EventDateTime = ({ event, checkinWindow, formatDate, formatTime, theme, })
140363
140401
  ? formatTime(firstOccurrence.endTime)
140364
140402
  : "Não definido"))),
140365
140403
  isAllDay && (React__default.createElement(Chip$1, { label: "Dia inteiro", size: "small", color: "primary", variant: "outlined", sx: { mb: 1.5 } })),
140366
- React__default.createElement(Box$1, { sx: { display: "flex", alignItems: "center", mb: 0.75 } },
140367
- React__default.createElement(AccessTime, { sx: {
140368
- mr: 1.5,
140369
- color: "text.secondary",
140370
- fontSize: { xs: 18, sm: 20 },
140371
- } }),
140372
- React__default.createElement(Typography$1, { variant: "body2", color: "text.secondary", sx: { mr: 1 } },
140373
- "Check-in v\u00E1lido: ",
140374
- getCheckinSummary()),
140375
- checkinWindow ? (React__default.createElement(Chip$1, { label: stateLabel[checkinWindow.state], size: "small", color: stateColor[checkinWindow.state], variant: "outlined" })) : null),
140376
- getCheckinExplanation() ? (React__default.createElement(Typography$1, { variant: "caption", color: "text.secondary" }, getCheckinExplanation())) : null)));
140404
+ event.qrCheckinEnabled !== false ? (React__default.createElement(React__default.Fragment, null,
140405
+ React__default.createElement(Box$1, { sx: { display: "flex", alignItems: "center", mb: 0.75 } },
140406
+ React__default.createElement(AccessTime, { sx: {
140407
+ mr: 1.5,
140408
+ color: "text.secondary",
140409
+ fontSize: { xs: 18, sm: 20 },
140410
+ } }),
140411
+ React__default.createElement(Typography$1, { variant: "body2", color: "text.secondary", sx: { mr: 1 } },
140412
+ "Check-in v\u00E1lido: ",
140413
+ getCheckinSummary()),
140414
+ checkinWindow ? (React__default.createElement(Chip$1, { label: stateLabel[checkinWindow.state], size: "small", color: stateColor[checkinWindow.state], variant: "outlined" })) : null),
140415
+ getCheckinExplanation() ? (React__default.createElement(Typography$1, { variant: "caption", color: "text.secondary" }, getCheckinExplanation())) : null)) : null)));
140377
140416
  };
140378
140417
  var EventDateTime$1 = React__default.memo(EventDateTime);
140379
140418
 
@@ -140904,7 +140943,9 @@ const EventActivities = ({ event, theme, formatDate, formatTime, canChangeActivi
140904
140943
  } },
140905
140944
  React__default.createElement(Typography$1, { variant: "h6", fontWeight: "medium" }, activity.title),
140906
140945
  React__default.createElement(Box$1, { sx: { display: "flex", gap: 1, alignItems: "flex-start" } },
140907
- !isModelEvent && onActivityQrOpen && (React__default.createElement(Box$1, { sx: {
140946
+ !isModelEvent &&
140947
+ onActivityQrOpen &&
140948
+ activity.qrCheckinEnabled !== false && (React__default.createElement(Box$1, { sx: {
140908
140949
  display: "flex",
140909
140950
  flexDirection: "column",
140910
140951
  alignItems: "flex-end",
@@ -140961,6 +141002,7 @@ const EventActivities = ({ event, theme, formatDate, formatTime, canChangeActivi
140961
141002
  ? formatTime(activity.occurrences[0].endTime)
140962
141003
  : "Não definido")))),
140963
141004
  !isModelEvent &&
141005
+ activity.qrCheckinEnabled !== false &&
140964
141006
  (() => {
140965
141007
  var _a, _b, _c, _d;
140966
141008
  const startMinutes = parseTimeToMinutes$2((_b = (_a = activity.occurrences) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.startTime);
@@ -141437,6 +141479,7 @@ const TerreiroSchema = objectType({
141437
141479
  const ActivitySchema = objectType({
141438
141480
  id: stringType(),
141439
141481
  requiredForConfirmation: booleanType().optional(),
141482
+ qrCheckinEnabled: booleanType().optional(),
141440
141483
  qrReleaseOffsetMinutes: numberType().nullable().optional(),
141441
141484
  qrCheckinGraceMinutes: numberType().nullable().optional(),
141442
141485
  checkinStartWindowMinutes: numberType().nullable().optional(),
@@ -141463,6 +141506,7 @@ const EventDetailSchema = objectType({
141463
141506
  name: stringType().optional(),
141464
141507
  description: stringType().optional(),
141465
141508
  isTemplate: booleanType().optional(),
141509
+ qrCheckinEnabled: booleanType().optional(),
141466
141510
  qrReleaseOffsetMinutes: numberType().nullable().optional(),
141467
141511
  qrCheckinGraceMinutes: numberType().nullable().optional(),
141468
141512
  checkinStartWindowMinutes: numberType().nullable().optional(),
@@ -141990,7 +142034,9 @@ const EventDetailPage = (props) => {
141990
142034
  }
141991
142035
  const statusOptions = data.getStatusMenuOptions(data.event);
141992
142036
  const currentMember = (_c = data.event.members) === null || _c === void 0 ? void 0 : _c.list.find((m) => m.id === data.currentMemberId);
141993
- const canShowCheckinCta = props.canScanCheckin &&
142037
+ const checkinEnabled = data.event.qrCheckinEnabled !== false;
142038
+ const canShowCheckinCta = checkinEnabled &&
142039
+ props.canScanCheckin &&
141994
142040
  ((_d = props.checkinWindow) === null || _d === void 0 ? void 0 : _d.state) === "active" &&
141995
142041
  !(currentMember === null || currentMember === void 0 ? void 0 : currentMember.confirmedAt) &&
141996
142042
  !props.isPersonalProfile;
@@ -142025,7 +142071,7 @@ const EventDetailPage = (props) => {
142025
142071
  React__default.createElement(Stack$1, { spacing: LIST_GAP },
142026
142072
  React__default.createElement(EventInfo$1, { event: data.event, canChangeStatus: props.canChangeStatus || false, canUseModel: props.canUseModel || false, statusOptions: statusOptions, onStatusChange: (status) => fns.handleChangeStatus(status), onUseModel: fns.handleUseModel, theme: theme }),
142027
142073
  React__default.createElement(EventDateTime$1, { event: data.event, checkinWindow: props.checkinWindow, formatDate: data.formatDate, formatTime: data.formatTime, theme: theme }),
142028
- props.canManageQr && (React__default.createElement(EventAttendanceQr, { attendanceQr: props.attendanceQr, onRefreshQrState: props.onRefreshQrState, onCopyCode: fns.handleCopyCode })),
142074
+ props.canManageQr && checkinEnabled && (React__default.createElement(EventAttendanceQr, { attendanceQr: props.attendanceQr, onRefreshQrState: props.onRefreshQrState, onCopyCode: fns.handleCopyCode })),
142029
142075
  props.canManageTickets && (React__default.createElement(EventPublicTickets$1, { onManageTickets: props.onManageTickets, theme: theme })),
142030
142076
  data.event.address && (React__default.createElement(EventAddress$1, { event: data.event, theme: theme })),
142031
142077
  data.event.activities && data.event.activities.count > 0 && (React__default.createElement(EventActivities$1, { event: data.event, theme: theme, formatDate: data.formatDate, formatTime: data.formatTime, activityAttendanceQrById: props.activityAttendanceQrById, canChangeActivityStatus: props.canChangeActivityStatus || false, getStatusMenuOptions: data.getActivityStatusMenuOptions, onChangeActivityStatus: fns.handleChangeActivityStatus, onBulkChangeActivityStatus: fns.handleBulkChangeActivityStatus, onActivityQrOpen: props.canManageQr ? setSelectedActivityQrId : undefined })),
@@ -143045,6 +143091,8 @@ const formatMinutesToHHMM$1 = (totalMinutes) => {
143045
143091
  };
143046
143092
  const getConfiguredCheckinWindow = (event) => {
143047
143093
  var _a, _b, _c, _d, _e;
143094
+ if (event.qrCheckinEnabled === false)
143095
+ return null;
143048
143096
  const startTime = (_c = (_b = (_a = event.occurrences) === null || _a === void 0 ? void 0 : _a.list) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.startTime;
143049
143097
  const startMinutes = parseTimeToMinutes$1(startTime);
143050
143098
  if (startMinutes === null)
@@ -147218,6 +147266,7 @@ const ACTION_ICON_MAP = {
147218
147266
  "🧘": React__default.createElement(Spa, null),
147219
147267
  "🎓": React__default.createElement(School$1, null),
147220
147268
  "🌐": React__default.createElement(Public, null),
147269
+ place: React__default.createElement(Place, null),
147221
147270
  social: React__default.createElement(Public, null),
147222
147271
  public: React__default.createElement(Public, null),
147223
147272
  };
@@ -147876,7 +147925,7 @@ function getEventCoordinates(event) {
147876
147925
  return null;
147877
147926
  }
147878
147927
 
147879
- const CSS = /*#__PURE__*/Object.freeze({
147928
+ const CSS$1 = /*#__PURE__*/Object.freeze({
147880
147929
  Translate: {
147881
147930
  toString(transform) {
147882
147931
  if (!transform) {
@@ -147911,7 +147960,7 @@ const CSS = /*#__PURE__*/Object.freeze({
147911
147960
  return;
147912
147961
  }
147913
147962
 
147914
- return [CSS.Translate.toString(transform), CSS.Scale.toString(transform)].join(' ');
147963
+ return [CSS$1.Translate.toString(transform), CSS$1.Scale.toString(transform)].join(' ');
147915
147964
  }
147916
147965
 
147917
147966
  },
@@ -151750,7 +151799,7 @@ const defaultTransition = {
151750
151799
  easing: 'ease'
151751
151800
  };
151752
151801
  const transitionProperty = 'transform';
151753
- const disabledTransition = /*#__PURE__*/CSS.Transition.toString({
151802
+ const disabledTransition = /*#__PURE__*/CSS$1.Transition.toString({
151754
151803
  property: transitionProperty,
151755
151804
  duration: 0,
151756
151805
  easing: 'linear'
@@ -151984,7 +152033,7 @@ function useSortable(_ref) {
151984
152033
  }
151985
152034
 
151986
152035
  if (isSorting || shouldAnimateLayoutChanges) {
151987
- return CSS.Transition.toString({ ...transition,
152036
+ return CSS$1.Transition.toString({ ...transition,
151988
152037
  property: transitionProperty
151989
152038
  });
151990
152039
  }
@@ -152671,7 +152720,7 @@ const SortableOrderRow = ({ widget, index, total, onMove }) => {
152671
152720
  const theme = useTheme$1();
152672
152721
  const { attributes, listeners, setNodeRef, setActivatorNodeRef, transform, transition, isDragging, } = useSortable({ id: widget.id });
152673
152722
  return (React__default.createElement(Box$1, { ref: setNodeRef, style: {
152674
- transform: CSS.Transform.toString(transform),
152723
+ transform: CSS$1.Transform.toString(transform),
152675
152724
  transition,
152676
152725
  }, sx: {
152677
152726
  display: "flex",
@@ -153240,6 +153289,8 @@ const formatMinutesToHHMM = (totalMinutes) => {
153240
153289
  };
153241
153290
  const getCheckinWindowRange = (event) => {
153242
153291
  var _a, _b;
153292
+ if (event.qrCheckinEnabled === false)
153293
+ return null;
153243
153294
  const startMinutes = parseTimeToMinutes(event.time);
153244
153295
  if (startMinutes === null)
153245
153296
  return null;
@@ -155007,6 +155058,14 @@ const useHomePage = (props) => {
155007
155058
  route: "/terreiro",
155008
155059
  color: "primary",
155009
155060
  },
155061
+ {
155062
+ id: "terreiro-search",
155063
+ title: "Terreiros",
155064
+ description: "Buscar casas próximas",
155065
+ icon: "place",
155066
+ route: "/terreiros/buscar",
155067
+ color: "primary",
155068
+ },
155010
155069
  {
155011
155070
  id: "mediums",
155012
155071
  title: "Médiuns",
@@ -155142,6 +155201,7 @@ const useHomePage = (props) => {
155142
155201
  // Admin + personal: include Social when feature enabled
155143
155202
  return withSocialUnreadBadge(filterByIds(withSocialPersonalOnly(withIngressos([
155144
155203
  "terreiro",
155204
+ "terreiro-search",
155145
155205
  "activities",
155146
155206
  "ritual-baths",
155147
155207
  "inventory",
@@ -155153,6 +155213,7 @@ const useHomePage = (props) => {
155153
155213
  // Admin + terreiro: no Social
155154
155214
  return filterByIds(withIngressos([
155155
155215
  "terreiro",
155216
+ "terreiro-search",
155156
155217
  "mediums",
155157
155218
  "activities",
155158
155219
  "events",
@@ -155167,6 +155228,7 @@ const useHomePage = (props) => {
155167
155228
  if (selectedTerreiro) {
155168
155229
  const filtered = filterByIds(withIngressos([
155169
155230
  "terreiro",
155231
+ "terreiro-search",
155170
155232
  "mediums",
155171
155233
  "activities",
155172
155234
  "events",
@@ -155180,6 +155242,7 @@ const useHomePage = (props) => {
155180
155242
  // Non-admin + personal profile: include Social when feature enabled
155181
155243
  return withSocialUnreadBadge(filterByIds(withSocialPersonalOnly([
155182
155244
  "terreiro",
155245
+ "terreiro-search",
155183
155246
  "activities",
155184
155247
  "ritual-baths",
155185
155248
  "inventory",
@@ -161017,7 +161080,7 @@ const FormGrid$8 = styled$1(Grid$1)(({ theme }) => ({
161017
161080
  const CEP_MIN_LENGTH = 8;
161018
161081
  const ZIP_PLACEHOLDER = "00000-000";
161019
161082
  const ADORNMENT_SPINNER_SIZE = 20;
161020
- const GOOGLE_SEARCH_PLACEHOLDER = "Digite o endereço para buscar no Google";
161083
+ const GOOGLE_SEARCH_PLACEHOLDER$1 = "Digite o endereço para buscar no Google";
161021
161084
  const AddressPage = (props) => {
161022
161085
  const theme = useTheme$1();
161023
161086
  const { data, fns } = useAddressPage(props);
@@ -161089,7 +161152,7 @@ const AddressPage = (props) => {
161089
161152
  }
161090
161153
  }, onChange: (_, newValue) => {
161091
161154
  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" },
161155
+ }, 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
161156
  React__default.createElement(LocationOn, { sx: { color: theme.palette.text.secondary } }))) }) }))) }),
161094
161157
  data.googleSearchError && (React__default.createElement(Box$1, { sx: { mt: 1 } },
161095
161158
  React__default.createElement(Alert$1, { severity: "warning" }, data.googleSearchError))),
@@ -181397,6 +181460,733 @@ const QrLandingPagePropsSchema = objectType({
181397
181460
  .optional(),
181398
181461
  });
181399
181462
 
181463
+ const GOOGLE_SEARCH_PLACEHOLDER = "Digite o endereço para buscar no Google";
181464
+ const MIN_SEARCH_LENGTH = 3;
181465
+ const TerreiroLocationSearch = ({ apiKey, onSelect, onUnavailable, }) => {
181466
+ const theme = useTheme$1();
181467
+ const onUnavailableRef = useRef(onUnavailable);
181468
+ const onSelectRef = useRef(onSelect);
181469
+ onUnavailableRef.current = onUnavailable;
181470
+ onSelectRef.current = onSelect;
181471
+ const servicesRef = useRef({});
181472
+ const [ready, setReady] = useState(false);
181473
+ const [loading, setLoading] = useState(false);
181474
+ const [inputValue, setInputValue] = useState("");
181475
+ const [suggestions, setSuggestions] = useState([]);
181476
+ const [error, setError] = useState(null);
181477
+ useEffect(() => {
181478
+ let cancelled = false;
181479
+ loadGoogleMapsPlacesScript(apiKey, "pt-BR", "BR")
181480
+ .then(() => {
181481
+ var _a, _b;
181482
+ if (cancelled)
181483
+ return;
181484
+ const places = (_b = (_a = window.google) === null || _a === void 0 ? void 0 : _a.maps) === null || _b === void 0 ? void 0 : _b.places;
181485
+ if (!(places === null || places === void 0 ? void 0 : places.AutocompleteService) || !(places === null || places === void 0 ? void 0 : places.PlacesService)) {
181486
+ onUnavailableRef.current();
181487
+ return;
181488
+ }
181489
+ servicesRef.current.autocompleteService = new places.AutocompleteService();
181490
+ const container = document.createElement("div");
181491
+ servicesRef.current.placesService = new places.PlacesService(container);
181492
+ setReady(true);
181493
+ })
181494
+ .catch(() => {
181495
+ if (!cancelled)
181496
+ onUnavailableRef.current();
181497
+ });
181498
+ return () => {
181499
+ cancelled = true;
181500
+ };
181501
+ }, [apiKey]);
181502
+ const search = (value) => {
181503
+ var _a, _b;
181504
+ const autocomplete = servicesRef.current.autocompleteService;
181505
+ const places = (_b = (_a = window.google) === null || _a === void 0 ? void 0 : _a.maps) === null || _b === void 0 ? void 0 : _b.places;
181506
+ if (!autocomplete || !places)
181507
+ return;
181508
+ if (value.trim().length < MIN_SEARCH_LENGTH) {
181509
+ setSuggestions([]);
181510
+ setError(null);
181511
+ return;
181512
+ }
181513
+ setLoading(true);
181514
+ setError(null);
181515
+ autocomplete.getPlacePredictions({
181516
+ input: value,
181517
+ componentRestrictions: { country: "br" },
181518
+ types: ["address"],
181519
+ }, (predictions, status) => {
181520
+ setLoading(false);
181521
+ if (status !== places.PlacesServiceStatus.OK) {
181522
+ setSuggestions([]);
181523
+ if (status !== places.PlacesServiceStatus.ZERO_RESULTS) {
181524
+ setError("Não foi possível buscar endereços no Google");
181525
+ }
181526
+ return;
181527
+ }
181528
+ setSuggestions((predictions !== null && predictions !== void 0 ? predictions : []).map((prediction) => ({
181529
+ description: prediction.description,
181530
+ placeId: prediction.place_id,
181531
+ })));
181532
+ });
181533
+ };
181534
+ const selectSuggestion = (suggestion) => {
181535
+ var _a, _b;
181536
+ if (!suggestion)
181537
+ return;
181538
+ const placesService = servicesRef.current.placesService;
181539
+ const places = (_b = (_a = window.google) === null || _a === void 0 ? void 0 : _a.maps) === null || _b === void 0 ? void 0 : _b.places;
181540
+ if (!placesService || !places) {
181541
+ setError("Não foi possível carregar os detalhes do endereço");
181542
+ return;
181543
+ }
181544
+ setInputValue(suggestion.description);
181545
+ setLoading(true);
181546
+ setError(null);
181547
+ placesService.getDetails({
181548
+ placeId: suggestion.placeId,
181549
+ fields: ["address_components", "formatted_address"],
181550
+ }, (place, status) => {
181551
+ var _a;
181552
+ setLoading(false);
181553
+ if (status !== places.PlacesServiceStatus.OK || !place) {
181554
+ setError("Não foi possível obter detalhes do endereço");
181555
+ return;
181556
+ }
181557
+ const mapped = mapGooglePlaceToAddressForm({
181558
+ address_components: place.address_components,
181559
+ formatted_address: place.formatted_address,
181560
+ });
181561
+ if (!mapped.city) {
181562
+ setError("Não foi possível identificar a cidade deste endereço");
181563
+ return;
181564
+ }
181565
+ onSelectRef.current(mapped.city, (_a = mapped.state) !== null && _a !== void 0 ? _a : "");
181566
+ });
181567
+ };
181568
+ if (!ready)
181569
+ return null;
181570
+ return (React__default.createElement(Autocomplete$1, { options: suggestions, getOptionLabel: (option) => option.description, filterOptions: (options) => options, loading: loading, inputValue: inputValue, onInputChange: (_, value, reason) => {
181571
+ if (reason !== "input" && reason !== "clear")
181572
+ return;
181573
+ setInputValue(value);
181574
+ search(value);
181575
+ }, onChange: (_, value) => selectSuggestion(value), isOptionEqualToValue: (option, value) => option.placeId === value.placeId, noOptionsText: error !== null && error !== void 0 ? error : (inputValue.trim().length >= MIN_SEARCH_LENGTH
181576
+ ? "Nenhum endereço encontrado para esta busca."
181577
+ : "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: {
181578
+ "& .MuiInputBase-input": { color: "text.primary" },
181579
+ "& .MuiInputBase-input::placeholder": { color: "text.secondary", opacity: 1 },
181580
+ }, InputProps: Object.assign(Object.assign({}, params.InputProps), { startAdornment: (React__default.createElement(InputAdornment$1, { position: "start" },
181581
+ React__default.createElement(LocationOn, { sx: { color: theme.palette.text.secondary } }))), endAdornment: (React__default.createElement(React__default.Fragment, null,
181582
+ loading ? React__default.createElement(CircularProgress$1, { size: 20 }) : null,
181583
+ params.InputProps.endAdornment)) }) }))) }));
181584
+ };
181585
+
181586
+ const BRAZIL_CENTER = { lat: -14.2, lng: -51.9 };
181587
+ const BRAZIL_ZOOM = 4;
181588
+ const SINGLE_RESULT_ZOOM = 15;
181589
+ const USER_LOCATION_ZOOM = 13;
181590
+ const PIN_ORANGE = "#BA4813";
181591
+ const PIN_COAL = "#201C10";
181592
+ const PIN_CREAM = "#F3E2B3";
181593
+ const mapColorScheme = (mode) => {
181594
+ var _a, _b;
181595
+ const scheme = (_b = (_a = window.google) === null || _a === void 0 ? void 0 : _a.maps) === null || _b === void 0 ? void 0 : _b.ColorScheme;
181596
+ if (!scheme)
181597
+ return undefined;
181598
+ if (scheme.FOLLOW_SYSTEM)
181599
+ return scheme.FOLLOW_SYSTEM;
181600
+ return mode === "dark" ? scheme.DARK : scheme.LIGHT;
181601
+ };
181602
+ const finitePlaces = (results) => (results !== null && results !== void 0 ? results : []).filter((place) => Number.isFinite(place.latitude) && Number.isFinite(place.longitude));
181603
+ const pinIcon = (selected, mode) => {
181604
+ var _a, _b, _c;
181605
+ const maps = (_a = window.google) === null || _a === void 0 ? void 0 : _a.maps;
181606
+ const idleFill = mode === "dark" ? PIN_CREAM : PIN_COAL;
181607
+ const idleStroke = mode === "dark" ? PIN_COAL : PIN_CREAM;
181608
+ return {
181609
+ 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,
181610
+ scale: selected ? 11 : 8,
181611
+ fillColor: selected ? PIN_ORANGE : idleFill,
181612
+ fillOpacity: 1,
181613
+ strokeColor: selected ? PIN_CREAM : idleStroke,
181614
+ strokeWeight: 2,
181615
+ };
181616
+ };
181617
+ const TerreiroResultMap = ({ apiKey, results, selectedPlaceId, userCoordinates, layoutKey = null, onSelectPlace, }) => {
181618
+ var _a, _b;
181619
+ const theme = useTheme$1();
181620
+ const mode = theme.palette.mode;
181621
+ const modeRef = useRef(mode);
181622
+ modeRef.current = mode;
181623
+ const containerRef = useRef(null);
181624
+ const mapRef = useRef(null);
181625
+ const markersRef = useRef(new Map());
181626
+ const onSelectRef = useRef(onSelectPlace);
181627
+ const resultsRef = useRef(results);
181628
+ const userCoordinatesRef = useRef(userCoordinates);
181629
+ const selectedPlaceIdRef = useRef(selectedPlaceId);
181630
+ const [mapReady, setMapReady] = useState(false);
181631
+ const [mapFailed, setMapFailed] = useState(!(apiKey === null || apiKey === void 0 ? void 0 : apiKey.trim()));
181632
+ const [mapEpoch, setMapEpoch] = useState(0);
181633
+ onSelectRef.current = onSelectPlace;
181634
+ resultsRef.current = results;
181635
+ userCoordinatesRef.current = userCoordinates;
181636
+ selectedPlaceIdRef.current = selectedPlaceId;
181637
+ const trimmedKey = (_a = apiKey === null || apiKey === void 0 ? void 0 : apiKey.trim()) !== null && _a !== void 0 ? _a : "";
181638
+ 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 : "";
181639
+ const userLocationKey = userCoordinates
181640
+ ? `${userCoordinates.latitude},${userCoordinates.longitude}`
181641
+ : "";
181642
+ useEffect(() => {
181643
+ if (!trimmedKey) {
181644
+ setMapFailed(true);
181645
+ setMapReady(false);
181646
+ return;
181647
+ }
181648
+ let cancelled = false;
181649
+ setMapFailed(false);
181650
+ loadGoogleMapsPlacesScript(trimmedKey, "pt-BR", "BR")
181651
+ .then(() => {
181652
+ var _a, _b, _c, _d;
181653
+ if (cancelled)
181654
+ return;
181655
+ 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)) {
181656
+ setMapFailed(true);
181657
+ return;
181658
+ }
181659
+ setMapReady(true);
181660
+ })
181661
+ .catch(() => {
181662
+ if (!cancelled)
181663
+ setMapFailed(true);
181664
+ });
181665
+ return () => {
181666
+ cancelled = true;
181667
+ };
181668
+ }, [trimmedKey]);
181669
+ useEffect(() => {
181670
+ var _a, _b;
181671
+ if (!mapReady || !containerRef.current || !((_b = (_a = window.google) === null || _a === void 0 ? void 0 : _a.maps) === null || _b === void 0 ? void 0 : _b.Map))
181672
+ return;
181673
+ const colorScheme = mapColorScheme(modeRef.current);
181674
+ 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 } : {})));
181675
+ mapRef.current = map;
181676
+ setMapEpoch((epoch) => epoch + 1);
181677
+ return () => {
181678
+ markersRef.current.forEach((marker) => marker.setMap(null));
181679
+ markersRef.current.clear();
181680
+ mapRef.current = null;
181681
+ };
181682
+ }, [mapReady]);
181683
+ useEffect(() => {
181684
+ var _a;
181685
+ const map = mapRef.current;
181686
+ const maps = (_a = window.google) === null || _a === void 0 ? void 0 : _a.maps;
181687
+ if (!mapReady || !map || !(maps === null || maps === void 0 ? void 0 : maps.Marker))
181688
+ return;
181689
+ const places = finitePlaces(resultsRef.current);
181690
+ const nextIds = new Set(places.map((place) => place.placeId));
181691
+ markersRef.current.forEach((marker, id) => {
181692
+ if (!nextIds.has(id)) {
181693
+ marker.setMap(null);
181694
+ markersRef.current.delete(id);
181695
+ }
181696
+ });
181697
+ places.forEach((place) => {
181698
+ const position = { lat: place.latitude, lng: place.longitude };
181699
+ const existing = markersRef.current.get(place.placeId);
181700
+ if (existing) {
181701
+ existing.setPosition(position);
181702
+ return;
181703
+ }
181704
+ const marker = new maps.Marker({
181705
+ map,
181706
+ position,
181707
+ title: place.name,
181708
+ icon: pinIcon(place.placeId === selectedPlaceIdRef.current, modeRef.current),
181709
+ });
181710
+ marker.addListener("click", () => onSelectRef.current(place.placeId));
181711
+ markersRef.current.set(place.placeId, marker);
181712
+ });
181713
+ if (places.length === 1) {
181714
+ map.setCenter({ lat: places[0].latitude, lng: places[0].longitude });
181715
+ map.setZoom(SINGLE_RESULT_ZOOM);
181716
+ return;
181717
+ }
181718
+ if (places.length > 1) {
181719
+ const bounds = new maps.LatLngBounds();
181720
+ places.forEach((place) => {
181721
+ bounds.extend({ lat: place.latitude, lng: place.longitude });
181722
+ });
181723
+ map.fitBounds(bounds, 48);
181724
+ return;
181725
+ }
181726
+ const coords = userCoordinatesRef.current;
181727
+ if (coords && Number.isFinite(coords.latitude) && Number.isFinite(coords.longitude)) {
181728
+ map.setCenter({ lat: coords.latitude, lng: coords.longitude });
181729
+ map.setZoom(USER_LOCATION_ZOOM);
181730
+ return;
181731
+ }
181732
+ map.setCenter(BRAZIL_CENTER);
181733
+ map.setZoom(BRAZIL_ZOOM);
181734
+ }, [mapEpoch, mapReady, resultSignature, userLocationKey]);
181735
+ useEffect(() => {
181736
+ var _a;
181737
+ const map = mapRef.current;
181738
+ if (!mapReady || !map)
181739
+ return;
181740
+ const scheme = mapColorScheme(mode);
181741
+ if (scheme)
181742
+ (_a = map.setOptions) === null || _a === void 0 ? void 0 : _a.call(map, { colorScheme: scheme });
181743
+ markersRef.current.forEach((marker, id) => {
181744
+ marker.setIcon(pinIcon(id === selectedPlaceId, mode));
181745
+ });
181746
+ if (!selectedPlaceId)
181747
+ return;
181748
+ const place = finitePlaces(resultsRef.current).find((item) => item.placeId === selectedPlaceId);
181749
+ if (!place)
181750
+ return;
181751
+ map.panTo({ lat: place.latitude, lng: place.longitude });
181752
+ }, [mapEpoch, mapReady, mode, resultSignature, selectedPlaceId]);
181753
+ useEffect(() => {
181754
+ var _a, _b, _c, _d;
181755
+ const map = mapRef.current;
181756
+ if (!mapReady || !map || layoutKey === null)
181757
+ return;
181758
+ (_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");
181759
+ }, [layoutKey, mapEpoch, mapReady]);
181760
+ const showPlaceholder = !trimmedKey || mapFailed || !mapReady;
181761
+ return (React__default.createElement(Box$1, { sx: { position: "absolute", inset: 0 } },
181762
+ 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" } }),
181763
+ showPlaceholder ? (React__default.createElement(Box$1, { "aria-hidden": true, "data-testid": "terreiro-search-map-placeholder", sx: {
181764
+ position: "absolute",
181765
+ inset: 0,
181766
+ bgcolor: "background.default",
181767
+ zIndex: 1,
181768
+ } })) : null));
181769
+ };
181770
+
181771
+ const TRADITIONS = ["Umbanda", "Candomblé", "Omolocô", "Quimbanda"];
181772
+ const statusLabel = (status) => {
181773
+ if (status === "CLOSED_PERMANENTLY")
181774
+ return "Fechado permanentemente";
181775
+ if (status === "CLOSED_TEMPORARILY")
181776
+ return "Fechado temporariamente";
181777
+ return null;
181778
+ };
181779
+ const traditionPressed = (query, tradition) => query.trim().localeCompare(tradition, "pt-BR", { sensitivity: "accent" }) === 0;
181780
+ const floatingControlShadow = "0 4px 16px rgba(32, 28, 16, 0.12)";
181781
+ const PEEK_HEIGHT = 72;
181782
+ const TOP_CLEARANCE = 120;
181783
+ const DRAG_SLOP = 5;
181784
+ const maxSheetHeight = () => {
181785
+ const viewport = typeof window === "undefined" ? 800 : window.innerHeight;
181786
+ return Math.max(PEEK_HEIGHT, viewport - TOP_CLEARANCE);
181787
+ };
181788
+ const defaultOpenHeight = () => {
181789
+ const viewport = typeof window === "undefined" ? 800 : window.innerHeight;
181790
+ return Math.round(Math.min(Math.max(viewport * 0.4, PEEK_HEIGHT), maxSheetHeight()));
181791
+ };
181792
+ const focusRing = {
181793
+ "&:focus-visible": {
181794
+ outline: "2px solid",
181795
+ outlineColor: "primary.main",
181796
+ outlineOffset: 2,
181797
+ },
181798
+ };
181799
+ const ResultRow = ({ place, selected, onSelect, onOpenMaps }) => {
181800
+ const closedLabel = statusLabel(place.businessStatus);
181801
+ return (React__default.createElement(Box$1, { component: "li", "data-testid": `terreiro-search-result-${place.placeId}`, sx: {
181802
+ display: "flex",
181803
+ alignItems: "center",
181804
+ gap: 0.5,
181805
+ minHeight: 56,
181806
+ listStyle: "none",
181807
+ } },
181808
+ 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) },
181809
+ React__default.createElement(Box$1, { "aria-hidden": true, sx: {
181810
+ width: 40,
181811
+ height: 40,
181812
+ borderRadius: "50%",
181813
+ display: "grid",
181814
+ placeItems: "center",
181815
+ flexShrink: 0,
181816
+ bgcolor: (theme) => alpha(selected ? theme.palette.primary.main : theme.palette.text.primary, 0.12),
181817
+ color: selected ? "primary.main" : "text.primary",
181818
+ } },
181819
+ React__default.createElement(PlaceOutlined, { fontSize: "small" })),
181820
+ React__default.createElement(Box$1, { sx: { minWidth: 0 } },
181821
+ React__default.createElement(Typography$1, { sx: {
181822
+ fontWeight: 700,
181823
+ fontSize: 16,
181824
+ color: selected ? "primary.main" : "text.primary",
181825
+ } }, place.name),
181826
+ React__default.createElement(Typography$1, { sx: { fontSize: 13, color: "text.secondary" } }, place.formattedAddress),
181827
+ closedLabel ? (React__default.createElement(Typography$1, { sx: { fontSize: 12, color: "text.secondary" } }, closedLabel)) : null)),
181828
+ 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) },
181829
+ React__default.createElement(DirectionsOutlined, null))));
181830
+ };
181831
+ 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, }) => {
181832
+ const theme = useTheme$1();
181833
+ const isWide = useMediaQuery(theme.breakpoints.up("sm"));
181834
+ const [locationOpen, setLocationOpen] = useState(false);
181835
+ const [addressSearchUnavailable, setAddressSearchUnavailable] = useState(false);
181836
+ const [selectedPlaceId, setSelectedPlaceId] = useState(null);
181837
+ const [sheetHeight, setSheetHeight] = useState(null);
181838
+ const hasSheetContent = isLoading || Boolean(errorMessage) || results !== null;
181839
+ const listVisible = Boolean(results && results.length > 0);
181840
+ const previousMode = useRef(locationMode);
181841
+ const lastOpenHeight = useRef(defaultOpenHeight());
181842
+ const dragOrigin = useRef(null);
181843
+ const dragMoved = useRef(false);
181844
+ const resolvedSheetHeight = sheetHeight !== null && sheetHeight !== void 0 ? sheetHeight : defaultOpenHeight();
181845
+ const sheetOpen = resolvedSheetHeight > PEEK_HEIGHT + DRAG_SLOP;
181846
+ useEffect(() => {
181847
+ if (!listVisible || sheetHeight !== null)
181848
+ return;
181849
+ const open = defaultOpenHeight();
181850
+ lastOpenHeight.current = open;
181851
+ setSheetHeight(open);
181852
+ }, [listVisible, sheetHeight]);
181853
+ const toggleSheet = () => {
181854
+ setSheetHeight((current) => {
181855
+ const height = current !== null && current !== void 0 ? current : defaultOpenHeight();
181856
+ if (height <= PEEK_HEIGHT + DRAG_SLOP) {
181857
+ const open = lastOpenHeight.current > PEEK_HEIGHT + DRAG_SLOP
181858
+ ? lastOpenHeight.current
181859
+ : defaultOpenHeight();
181860
+ return Math.min(open, maxSheetHeight());
181861
+ }
181862
+ lastOpenHeight.current = height;
181863
+ return PEEK_HEIGHT;
181864
+ });
181865
+ };
181866
+ const onHandlePointerDown = (event) => {
181867
+ if (!listVisible)
181868
+ return;
181869
+ dragMoved.current = false;
181870
+ dragOrigin.current = {
181871
+ y: event.clientY,
181872
+ height: sheetHeight !== null && sheetHeight !== void 0 ? sheetHeight : defaultOpenHeight(),
181873
+ };
181874
+ if (event.currentTarget.setPointerCapture && Number.isFinite(event.pointerId)) {
181875
+ event.currentTarget.setPointerCapture(event.pointerId);
181876
+ }
181877
+ };
181878
+ const onHandlePointerMove = (event) => {
181879
+ const origin = dragOrigin.current;
181880
+ if (!origin)
181881
+ return;
181882
+ if (Math.abs(origin.y - event.clientY) > DRAG_SLOP)
181883
+ dragMoved.current = true;
181884
+ if (!dragMoved.current)
181885
+ return;
181886
+ const next = Math.min(maxSheetHeight(), Math.max(PEEK_HEIGHT, origin.height + (origin.y - event.clientY)));
181887
+ setSheetHeight(next);
181888
+ };
181889
+ const onHandlePointerUp = (event) => {
181890
+ if (!dragOrigin.current)
181891
+ return;
181892
+ dragOrigin.current = null;
181893
+ if (event.currentTarget.hasPointerCapture &&
181894
+ Number.isFinite(event.pointerId) &&
181895
+ event.currentTarget.hasPointerCapture(event.pointerId)) {
181896
+ event.currentTarget.releasePointerCapture(event.pointerId);
181897
+ }
181898
+ if (!dragMoved.current)
181899
+ return;
181900
+ setSheetHeight((current) => {
181901
+ if (current !== null && current > PEEK_HEIGHT + DRAG_SLOP) {
181902
+ lastOpenHeight.current = current;
181903
+ }
181904
+ return current;
181905
+ });
181906
+ };
181907
+ const onHandleClick = () => {
181908
+ if (!listVisible)
181909
+ return;
181910
+ if (dragMoved.current) {
181911
+ dragMoved.current = false;
181912
+ return;
181913
+ }
181914
+ toggleSheet();
181915
+ };
181916
+ const trimmedQuery = query.trim();
181917
+ const locationReady = locationMode === "geolocation" || city.trim().length >= 2;
181918
+ const canSearch = trimmedQuery.length >= 3 &&
181919
+ trimmedQuery.length <= 80 &&
181920
+ locationReady &&
181921
+ !isLoading &&
181922
+ !isLocating;
181923
+ useEffect(() => {
181924
+ if (previousMode.current !== "geolocation" && locationMode === "geolocation") {
181925
+ setLocationOpen(false);
181926
+ }
181927
+ previousMode.current = locationMode;
181928
+ }, [locationMode]);
181929
+ useEffect(() => {
181930
+ if (!selectedPlaceId)
181931
+ return;
181932
+ if (!(results === null || results === void 0 ? void 0 : results.some((place) => place.placeId === selectedPlaceId))) {
181933
+ setSelectedPlaceId(null);
181934
+ }
181935
+ }, [results, selectedPlaceId]);
181936
+ useEffect(() => {
181937
+ if (!selectedPlaceId || !listVisible)
181938
+ return;
181939
+ setSheetHeight((current) => {
181940
+ const height = current !== null && current !== void 0 ? current : defaultOpenHeight();
181941
+ if (height > PEEK_HEIGHT + DRAG_SLOP)
181942
+ return current;
181943
+ const open = lastOpenHeight.current > PEEK_HEIGHT + DRAG_SLOP
181944
+ ? lastOpenHeight.current
181945
+ : defaultOpenHeight();
181946
+ return Math.min(open, maxSheetHeight());
181947
+ });
181948
+ let innerFrame = 0;
181949
+ const outerFrame = requestAnimationFrame(() => {
181950
+ innerFrame = requestAnimationFrame(() => {
181951
+ var _a;
181952
+ const row = (_a = document
181953
+ .getElementById("terreiro-search-sheet-body")) === null || _a === void 0 ? void 0 : _a.querySelector(`[data-testid="terreiro-search-result-${CSS.escape(selectedPlaceId)}"]`);
181954
+ if (row instanceof HTMLElement) {
181955
+ row.scrollIntoView({ block: "nearest" });
181956
+ }
181957
+ });
181958
+ });
181959
+ return () => {
181960
+ cancelAnimationFrame(outerFrame);
181961
+ cancelAnimationFrame(innerFrame);
181962
+ };
181963
+ }, [listVisible, selectedPlaceId]);
181964
+ const locationLabel = locationMode === "geolocation"
181965
+ ? "Perto de mim"
181966
+ : city.trim()
181967
+ ? state.trim()
181968
+ ? `${city.trim()}, ${state.trim()}`
181969
+ : city.trim()
181970
+ : "Escolher cidade";
181971
+ const peekLabel = (() => {
181972
+ if (isLoading)
181973
+ return "Buscando terreiros...";
181974
+ if (errorMessage)
181975
+ return "Não foi possível buscar";
181976
+ if (results && results.length === 1)
181977
+ return "1 terreiro";
181978
+ if (results && results.length > 1)
181979
+ return `${results.length} terreiros`;
181980
+ if (results && results.length === 0)
181981
+ return "Nenhum terreiro";
181982
+ return "Busque para ver terreiros na região";
181983
+ })();
181984
+ const submitTradition = (tradition) => {
181985
+ onQueryChange(tradition);
181986
+ if (locationReady && !isLoading && !isLocating)
181987
+ onSearch(tradition);
181988
+ };
181989
+ const notice = geolocationNotice ? (React__default.createElement(Typography$1, { role: "status", variant: "body2", "data-testid": "terreiro-search-geo-notice", sx: {
181990
+ alignSelf: "flex-start",
181991
+ maxWidth: "100%",
181992
+ bgcolor: "background.paper",
181993
+ color: "text.secondary",
181994
+ borderRadius: 2,
181995
+ px: 1.5,
181996
+ py: 1,
181997
+ fontSize: 13,
181998
+ boxShadow: floatingControlShadow,
181999
+ } }, geolocationNotice)) : null;
182000
+ return (React__default.createElement(Box$1, { sx: {
182001
+ position: "relative",
182002
+ height: "100dvh",
182003
+ display: "flex",
182004
+ overflow: "hidden",
182005
+ bgcolor: "background.default",
182006
+ } },
182007
+ React__default.createElement(Box$1, { component: "section", "aria-label": "Resultados", "data-testid": "terreiro-search-sheet", style: listVisible ? { height: resolvedSheetHeight } : undefined, sx: {
182008
+ position: listVisible ? "absolute" : { xs: "absolute", sm: "relative" },
182009
+ left: 0,
182010
+ right: { xs: 0, sm: "auto" },
182011
+ bottom: 0,
182012
+ zIndex: 2,
182013
+ display: "flex",
182014
+ flexDirection: "column",
182015
+ width: { xs: "100%", sm: 400 },
182016
+ maxWidth: { sm: 400 },
182017
+ flexShrink: 0,
182018
+ height: listVisible ? undefined : { sm: "100%" },
182019
+ maxHeight: listVisible ? `calc(100dvh - ${TOP_CLEARANCE}px)` : "none",
182020
+ bgcolor: "background.paper",
182021
+ borderTopLeftRadius: listVisible || !isWide ? "20px" : 0,
182022
+ borderTopRightRadius: listVisible || !isWide ? "20px" : 0,
182023
+ borderRight: listVisible ? 0 : { sm: 1 },
182024
+ borderColor: "divider",
182025
+ boxShadow: listVisible || !isWide ? "0 -8px 24px rgba(32, 28, 16, 0.08)" : "none",
182026
+ } },
182027
+ 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) },
182028
+ React__default.createElement(Box$1, { "aria-hidden": true, sx: {
182029
+ width: 36,
182030
+ height: 4,
182031
+ borderRadius: RADIUS.pill,
182032
+ bgcolor: (muiTheme) => alpha(muiTheme.palette.text.primary, 0.28),
182033
+ } }),
182034
+ 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: {
182035
+ width: "100%",
182036
+ display: "flex",
182037
+ flexDirection: "column",
182038
+ alignItems: "center",
182039
+ gap: 0.75,
182040
+ pt: 1,
182041
+ pb: 1,
182042
+ px: 2,
182043
+ minHeight: 44,
182044
+ color: "text.primary",
182045
+ } },
182046
+ React__default.createElement(Box$1, { "aria-hidden": true, sx: {
182047
+ width: 36,
182048
+ height: 4,
182049
+ borderRadius: RADIUS.pill,
182050
+ bgcolor: (muiTheme) => alpha(muiTheme.palette.text.primary, 0.28),
182051
+ } }),
182052
+ React__default.createElement(Box$1, { component: "span", sx: { alignSelf: "flex-start", fontSize: 16, fontWeight: 800 } }, peekLabel))),
182053
+ React__default.createElement(Box$1, { id: "terreiro-search-sheet-body", sx: {
182054
+ display: hasSheetContent ? "flex" : "none",
182055
+ flexDirection: "column",
182056
+ flex: 1,
182057
+ minHeight: 0,
182058
+ overflowY: "auto",
182059
+ px: 2,
182060
+ pb: 2,
182061
+ } },
182062
+ 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,
182063
+ !isLoading && errorMessage ? (React__default.createElement(Stack$1, { spacing: 1, "data-testid": "terreiro-search-error", role: "alert" },
182064
+ React__default.createElement(Typography$1, null, errorMessage),
182065
+ onRetry ? (React__default.createElement(Button$1, { type: "button", variant: "text", onClick: onRetry, "data-testid": "terreiro-search-retry", sx: {
182066
+ alignSelf: "flex-start",
182067
+ minHeight: 44,
182068
+ fontWeight: 700,
182069
+ color: "text.primary",
182070
+ } }, "Tentar de novo")) : null)) : null,
182071
+ !isLoading && !errorMessage && results && results.length === 0 ? (React__default.createElement(Stack$1, { spacing: 1, "data-testid": "terreiro-search-empty", sx: { py: 2 } },
182072
+ React__default.createElement(PlaceOutlined, { sx: { color: "text.primary" } }),
182073
+ React__default.createElement(Typography$1, { sx: { fontWeight: 700 } }, "Nenhum terreiro encontrado para esta busca na regi\u00E3o selecionada."),
182074
+ React__default.createElement(Typography$1, { sx: { fontSize: 13, color: "text.secondary" } }, "Ajuste o termo ou a cidade e busque de novo."))) : null,
182075
+ !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,
182076
+ !isLoading && !errorMessage && hasMore ? (React__default.createElement(Button$1, { type: "button", variant: "text", onClick: onLoadMore, disabled: isLoadingMore, "data-testid": "terreiro-search-load-more", sx: {
182077
+ alignSelf: "flex-start",
182078
+ mt: 0.5,
182079
+ minHeight: 44,
182080
+ fontWeight: 700,
182081
+ color: "text.primary",
182082
+ } }, isLoadingMore ? "Carregando..." : "Carregar mais")) : null)),
182083
+ React__default.createElement(Box$1, { sx: { position: "relative", flex: 1, minWidth: 0 } },
182084
+ React__default.createElement(TerreiroResultMap, { apiKey: googleMapsApiKey, results: results, selectedPlaceId: selectedPlaceId, userCoordinates: userCoordinates, layoutKey: listVisible ? resolvedSheetHeight : null, onSelectPlace: setSelectedPlaceId }),
182085
+ React__default.createElement(Box$1, { component: "form", onSubmit: (event) => {
182086
+ event.preventDefault();
182087
+ if (canSearch)
182088
+ onSearch(trimmedQuery);
182089
+ }, sx: {
182090
+ position: "absolute",
182091
+ top: 16,
182092
+ left: 16,
182093
+ right: 16,
182094
+ zIndex: 3,
182095
+ display: "flex",
182096
+ flexDirection: "column",
182097
+ gap: 1,
182098
+ } },
182099
+ React__default.createElement(Box$1, { sx: { display: "flex", alignItems: "center", gap: 1 } },
182100
+ 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) },
182101
+ React__default.createElement(ArrowBack$1, null))) : null,
182102
+ React__default.createElement(Box$1, { sx: {
182103
+ flex: 1,
182104
+ minWidth: 0,
182105
+ display: "flex",
182106
+ alignItems: "center",
182107
+ minHeight: 44,
182108
+ pl: 2,
182109
+ pr: 0.5,
182110
+ bgcolor: "background.paper",
182111
+ borderRadius: RADIUS.pill,
182112
+ boxShadow: floatingControlShadow,
182113
+ } },
182114
+ React__default.createElement(InputBase$1, { value: query, onChange: (event) => onQueryChange(event.target.value), placeholder: "Umbanda, Candombl\u00E9...", fullWidth: true, inputProps: {
182115
+ "aria-label": "Tradição ou nome",
182116
+ maxLength: 80,
182117
+ "data-testid": "terreiro-search-query",
182118
+ }, sx: {
182119
+ fontSize: 16,
182120
+ color: "text.primary",
182121
+ "& input::placeholder": { color: "text.secondary", opacity: 1 },
182122
+ } }),
182123
+ query ? (React__default.createElement(IconButton$1, { type: "button", "aria-label": "Limpar busca", onClick: () => onQueryChange(""), sx: { width: 44, height: 44, flexShrink: 0, color: "text.primary" } },
182124
+ React__default.createElement(Close$1, null))) : null),
182125
+ React__default.createElement(IconButton$1, { type: "submit", "aria-label": "Buscar", disabled: !canSearch, "data-testid": "terreiro-search-submit", onClick: (event) => {
182126
+ event.preventDefault();
182127
+ if (canSearch)
182128
+ onSearch(trimmedQuery);
182129
+ }, sx: Object.assign({ width: 44, height: 44, flexShrink: 0, bgcolor: "primary.main", color: "primary.contrastText", boxShadow: floatingControlShadow, "&:hover": { bgcolor: "primary.dark" }, "&.Mui-disabled": {
182130
+ bgcolor: (muiTheme) => alpha(muiTheme.palette.primary.main, 0.38),
182131
+ color: "primary.contrastText",
182132
+ } }, focusRing) },
182133
+ React__default.createElement(Search$1, null))),
182134
+ React__default.createElement(Box$1, { role: "group", "aria-label": "Tradi\u00E7\u00F5es", sx: {
182135
+ display: "flex",
182136
+ gap: 1,
182137
+ overflowX: "auto",
182138
+ scrollbarWidth: "none",
182139
+ "&::-webkit-scrollbar": { display: "none" },
182140
+ } }, TRADITIONS.map((tradition) => {
182141
+ const pressed = traditionPressed(query, tradition);
182142
+ return (React__default.createElement(Button$1, { key: tradition, type: "button", variant: "outlined", "aria-pressed": pressed, onClick: () => submitTradition(tradition), sx: {
182143
+ flexShrink: 0,
182144
+ minHeight: 44,
182145
+ px: 2,
182146
+ borderRadius: RADIUS.pill,
182147
+ textTransform: "none",
182148
+ fontWeight: 600,
182149
+ bgcolor: "background.paper",
182150
+ borderColor: pressed ? "primary.main" : "divider",
182151
+ color: pressed ? "primary.main" : "text.primary",
182152
+ "&:hover": {
182153
+ bgcolor: "background.paper",
182154
+ borderColor: pressed ? "primary.main" : "divider",
182155
+ },
182156
+ } }, tradition));
182157
+ })),
182158
+ 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: {
182159
+ alignSelf: "flex-start",
182160
+ minHeight: 44,
182161
+ maxWidth: "100%",
182162
+ borderRadius: RADIUS.pill,
182163
+ textTransform: "none",
182164
+ fontWeight: 600,
182165
+ bgcolor: "background.paper",
182166
+ borderColor: "divider",
182167
+ color: "text.primary",
182168
+ "&:hover": { bgcolor: "background.paper", borderColor: "divider" },
182169
+ } }, locationLabel),
182170
+ !locationOpen ? notice : null)),
182171
+ 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 } },
182172
+ React__default.createElement(Typography$1, { sx: { fontSize: 16, fontWeight: 800 } }, "Onde buscar"),
182173
+ (googleMapsApiKey === null || googleMapsApiKey === void 0 ? void 0 : googleMapsApiKey.trim()) && !addressSearchUnavailable ? (React__default.createElement(TerreiroLocationSearch, { apiKey: googleMapsApiKey.trim(), onUnavailable: () => setAddressSearchUnavailable(true), onSelect: (nextCity, nextState) => {
182174
+ onCityChange(nextCity);
182175
+ onStateChange(nextState);
182176
+ setLocationOpen(false);
182177
+ } })) : (React__default.createElement(Stack$1, { direction: "row", spacing: 1 },
182178
+ React__default.createElement(TextField$1, { label: "Cidade", value: city, onChange: (event) => onCityChange(event.target.value), inputProps: { "data-testid": "terreiro-search-city" }, fullWidth: true, sx: {
182179
+ "& .MuiInputBase-input": { color: "text.primary" },
182180
+ "& .MuiInputBase-input::placeholder": { color: "text.secondary", opacity: 1 },
182181
+ } }),
182182
+ 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: {
182183
+ width: 88,
182184
+ "& .MuiInputBase-input": { color: "text.primary" },
182185
+ } }))),
182186
+ 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"),
182187
+ notice)) : null)));
182188
+ };
182189
+
181400
182190
  /**
181401
182191
  * Convert the given array buffer into a Base64URL-encoded string. Ideal for converting various
181402
182192
  * credential response ArrayBuffers to string for sending back to the server as JSON.
@@ -194823,5 +195613,5 @@ var index_es = /*#__PURE__*/Object.freeze({
194823
195613
  vectorsRatio: vectorsRatio
194824
195614
  });
194825
195615
 
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 };
195616
+ 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
195617
  //# sourceMappingURL=bundle.esm.js.map