gsintegrations 0.0.484 → 0.0.486

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/dist/bundle.cjs.js +987 -54
  2. package/dist/bundle.cjs.js.map +2 -2
  3. package/dist/bundle.esm.js +985 -55
  4. package/dist/bundle.esm.js.map +2 -2
  5. package/dist/index.d.ts +177 -42
  6. package/dist/types/components/social/EditedMark.d.ts +7 -0
  7. package/dist/types/components/social/ExperienceCard.d.ts +5 -0
  8. package/dist/types/components/social/ExperienceCommentRow.d.ts +3 -0
  9. package/dist/types/components/social/ExperienceCommentsSheet.d.ts +3 -0
  10. package/dist/types/components/social/ExperienceDetailView.d.ts +5 -0
  11. package/dist/types/components/social/SocialDeleteConfirmDialog.d.ts +11 -0
  12. package/dist/types/components/social/SocialEditTextDialog.d.ts +19 -0
  13. package/dist/types/components/social/index.d.ts +4 -0
  14. package/dist/types/components/social/types.d.ts +11 -0
  15. package/dist/types/pages/FinancialAccountPage/FinancialAccountPage.types.d.ts +12 -12
  16. package/dist/types/pages/FinancialRegisterPage/FinancialRegister.types.d.ts +28 -28
  17. package/dist/types/pages/NearbyTerreiroSearchPage/NearbyTerreiroSearchPage.d.ts +4 -0
  18. package/dist/types/pages/NearbyTerreiroSearchPage/NearbyTerreiroSearchPage.types.d.ts +42 -0
  19. package/dist/types/pages/NearbyTerreiroSearchPage/TerreiroLocationSearch.d.ts +8 -0
  20. package/dist/types/pages/NearbyTerreiroSearchPage/TerreiroResultMap.d.ts +16 -0
  21. package/dist/types/pages/NearbyTerreiroSearchPage/index.d.ts +3 -0
  22. package/dist/types/pages/Social/ExperienceDetailPage/ExperienceDetailPage.d.ts +7 -0
  23. package/dist/types/pages/Social/JourneyProfilePage/JourneyProfilePage.d.ts +8 -0
  24. package/dist/types/pages/Social/SocialDiscoverPage/SocialDiscoverPage.d.ts +6 -0
  25. package/dist/types/pages/Social/SocialHomePage/SocialHomePage.d.ts +7 -0
  26. package/dist/types/pages/Social/SocialSavedPage/SocialSavedPage.d.ts +7 -0
  27. package/dist/types/pages/index.d.ts +1 -0
  28. 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');
@@ -79998,7 +80006,7 @@ const TYPE = 16191; /* i: waiting for type bits, including last-flag
79998
80006
  const TYPEDO = 16192; /* i: same, but skip check to exit inflate on new block */
79999
80007
  const STORED = 16193; /* i: waiting for stored size (length and complement) */
80000
80008
  const COPY_ = 16194; /* i/o: same as COPY below, but only first time in */
80001
- const COPY$1 = 16195; /* i/o: waiting for input or output to copy stored block */
80009
+ const COPY$2 = 16195; /* i/o: waiting for input or output to copy stored block */
80002
80010
  const TABLE = 16196; /* i: waiting for dynamic block table lengths */
80003
80011
  const LENLENS = 16197; /* i: waiting for code length code lengths */
80004
80012
  const CODELENS = 16198; /* i: waiting for length/lit and distance code lengths */
@@ -80803,9 +80811,9 @@ const inflate$2 = (strm, flush) => {
80803
80811
  if (flush === Z_TREES) { break inf_leave; }
80804
80812
  /* falls through */
80805
80813
  case COPY_:
80806
- state.mode = COPY$1;
80814
+ state.mode = COPY$2;
80807
80815
  /* falls through */
80808
- case COPY$1:
80816
+ case COPY$2:
80809
80817
  copy = state.length;
80810
80818
  if (copy) {
80811
80819
  if (copy > have) { copy = have; }
@@ -128227,6 +128235,7 @@ const ExperienceSchema = objectType({
128227
128235
  eventId: stringType().nullable().optional(),
128228
128236
  terreiroId: stringType().nullable().optional(),
128229
128237
  publishedAt: unionType([stringType(), dateType()]).nullable().optional(),
128238
+ editedAt: unionType([stringType(), dateType()]).nullable().optional(),
128230
128239
  createdAt: unionType([stringType(), dateType()]).optional(),
128231
128240
  });
128232
128241
  const QuestionSchema = objectType({
@@ -128269,6 +128278,7 @@ const ExperienceCommentSchema = objectType({
128269
128278
  likeCount: numberType().optional(),
128270
128279
  viewerHasLiked: booleanType().optional(),
128271
128280
  repliesHasMore: booleanType().optional(),
128281
+ editedAt: unionType([stringType(), dateType()]).nullable().optional(),
128272
128282
  createdAt: unionType([stringType(), dateType()]).optional(),
128273
128283
  });
128274
128284
  const SocialProfileSchema = objectType({
@@ -128758,26 +128768,89 @@ const AlsoExperiencedButton = ({ count = 0, active = false, loading = false, dis
128758
128768
  ? `Eu também passei por isso · ${count}`
128759
128769
  : "Eu também passei por isso"));
128760
128770
 
128771
+ const EditedMark = ({ editedAt, fontSize = "0.9375rem", }) => {
128772
+ if (!editedAt)
128773
+ return null;
128774
+ return (React__default.createElement(React__default.Fragment, null,
128775
+ React__default.createElement(Typography$1, { component: "span", color: "text.secondary", sx: { fontSize }, "data-testid": "edited-mark" }, "\u00B7"),
128776
+ React__default.createElement(Typography$1, { component: "span", color: "text.secondary", sx: { fontSize } }, "Editado")));
128777
+ };
128778
+
128779
+ const COPY$1 = {
128780
+ post: {
128781
+ title: "Excluir publicação",
128782
+ body: "Excluir esta publicação? Essa ação não pode ser desfeita.",
128783
+ },
128784
+ comment: {
128785
+ title: "Excluir comentário",
128786
+ body: "Excluir este comentário? As respostas também serão removidas.",
128787
+ },
128788
+ reply: {
128789
+ title: "Excluir resposta",
128790
+ body: "Excluir esta resposta? Essa ação não pode ser desfeita.",
128791
+ },
128792
+ };
128793
+ const SocialDeleteConfirmDialog = ({ open, kind, submitting = false, onClose, onConfirm, }) => {
128794
+ const copy = COPY$1[kind];
128795
+ return (React__default.createElement(Dialog$1, { open: open, onClose: submitting ? undefined : onClose, fullWidth: true, maxWidth: "xs", "data-testid": "social-delete-confirm-dialog" },
128796
+ React__default.createElement(DialogTitle$1, null, copy.title),
128797
+ React__default.createElement(DialogContent$1, null,
128798
+ React__default.createElement(DialogContentText$1, null, copy.body)),
128799
+ React__default.createElement(DialogActions$1, null,
128800
+ React__default.createElement(Button$1, { onClick: onClose, disabled: submitting }, "Cancelar"),
128801
+ React__default.createElement(Button$1, { variant: "contained", color: "error", disabled: submitting, onClick: () => void onConfirm() }, "Excluir"))));
128802
+ };
128803
+
128804
+ const SocialEditTextDialog = ({ open, dialogTitle, contentLabel, initialContent, initialTitle = null, showTitle = false, submitting = false, maxLength = 10000, onClose, onSave, }) => {
128805
+ const [title, setTitle] = useState(initialTitle !== null && initialTitle !== void 0 ? initialTitle : "");
128806
+ const [content, setContent] = useState(initialContent);
128807
+ useEffect(() => {
128808
+ if (!open)
128809
+ return;
128810
+ setTitle(initialTitle !== null && initialTitle !== void 0 ? initialTitle : "");
128811
+ setContent(initialContent);
128812
+ }, [open, initialContent, initialTitle]);
128813
+ const trimmed = content.trim();
128814
+ const canSave = trimmed.length > 0 && !submitting;
128815
+ return (React__default.createElement(Dialog$1, { open: open, onClose: submitting ? undefined : onClose, fullWidth: true, maxWidth: "xs", "data-testid": "social-edit-text-dialog" },
128816
+ React__default.createElement(DialogTitle$1, null, dialogTitle),
128817
+ React__default.createElement(DialogContent$1, null,
128818
+ showTitle ? (React__default.createElement(TextField$1, { label: "T\u00EDtulo", value: title, onChange: (event) => setTitle(event.target.value), fullWidth: true, margin: "normal", disabled: submitting, inputProps: { maxLength: 200 } })) : null,
128819
+ React__default.createElement(TextField$1, { label: contentLabel, value: content, onChange: (event) => setContent(event.target.value), fullWidth: true, multiline: true, minRows: 3, margin: "normal", disabled: submitting, inputProps: { maxLength } })),
128820
+ React__default.createElement(DialogActions$1, null,
128821
+ React__default.createElement(Button$1, { onClick: onClose, disabled: submitting }, "Cancelar"),
128822
+ React__default.createElement(Button$1, { variant: "contained", disabled: !canSave, onClick: () => void onSave(Object.assign({ content: trimmed }, (showTitle ? { title: title.trim() || null } : {}))) }, "Salvar"))));
128823
+ };
128824
+
128761
128825
  const ActionCount$1 = ({ count, active }) => count > 0 ? (React__default.createElement(Typography$1, { variant: "caption", color: active ? "primary.main" : "text.secondary", sx: { minWidth: 16 } }, count)) : null;
128762
- const ExperienceCard = ({ experience, viewerUserId, onOpen, onAlsoExperienced, onReactionToggle, onShare, onReport, onComment, onBookmark, onAuthorClick, alsoExperiencedLoading = false, compact = false, }) => {
128763
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
128826
+ const ExperienceCard = ({ experience, viewerUserId, onOpen, onAlsoExperienced, onReactionToggle, onShare, onReport, onEdit, onDelete, onComment, onBookmark, onAuthorClick, alsoExperiencedLoading = false, compact = false, }) => {
128827
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
128764
128828
  const [menuAnchor, setMenuAnchor] = useState(null);
128829
+ const [editOpen, setEditOpen] = useState(false);
128830
+ const [deleteOpen, setDeleteOpen] = useState(false);
128831
+ const [actionPending, setActionPending] = useState(false);
128765
128832
  const authorName = authorDisplayName(experience.author, {
128766
128833
  authorId: (_b = (_a = experience.author) === null || _a === void 0 ? void 0 : _a.userId) !== null && _b !== void 0 ? _b : experience.authorId,
128767
128834
  viewerUserId,
128768
128835
  });
128769
128836
  const username = (_c = experience.author) === null || _c === void 0 ? void 0 : _c.username;
128770
- const verified = Boolean((_d = experience.author) === null || _d === void 0 ? void 0 : _d.verified);
128771
- const timeLabel = formatRelativeTime((_e = experience.publishedAt) !== null && _e !== void 0 ? _e : experience.createdAt);
128772
- const hasImage = Boolean((_f = experience.imageUrl) === null || _f === void 0 ? void 0 : _f.trim());
128837
+ const isAuthor = Boolean(viewerUserId) &&
128838
+ (experience.authorId === viewerUserId ||
128839
+ ((_d = experience.author) === null || _d === void 0 ? void 0 : _d.userId) === viewerUserId);
128840
+ const canEdit = isAuthor && Boolean(onEdit);
128841
+ const canDelete = isAuthor && Boolean(onDelete);
128842
+ const showMenu = Boolean(onShare || (!isAuthor && onReport) || canEdit || canDelete);
128843
+ const verified = Boolean((_e = experience.author) === null || _e === void 0 ? void 0 : _e.verified);
128844
+ const timeLabel = formatRelativeTime((_f = experience.publishedAt) !== null && _f !== void 0 ? _f : experience.createdAt);
128845
+ const hasImage = Boolean((_g = experience.imageUrl) === null || _g === void 0 ? void 0 : _g.trim());
128773
128846
  const postType = resolveExperiencePostType(experience);
128774
128847
  const alsoActive = Boolean(experience.viewerHasAlsoExperienced);
128775
128848
  const bookmarked = Boolean(experience.viewerHasBookmarked);
128776
- const commentCount = (_g = experience.commentCount) !== null && _g !== void 0 ? _g : 0;
128777
- const bookmarkCount = (_h = experience.bookmarkCount) !== null && _h !== void 0 ? _h : 0;
128778
- const shareCount = (_j = experience.shareCount) !== null && _j !== void 0 ? _j : 0;
128779
- const reactionCount = (_k = experience.reactionCount) !== null && _k !== void 0 ? _k : 0;
128780
- const alsoCount = (_l = experience.alsoExperiencedCount) !== null && _l !== void 0 ? _l : 0;
128849
+ const commentCount = (_h = experience.commentCount) !== null && _h !== void 0 ? _h : 0;
128850
+ const bookmarkCount = (_j = experience.bookmarkCount) !== null && _j !== void 0 ? _j : 0;
128851
+ const shareCount = (_k = experience.shareCount) !== null && _k !== void 0 ? _k : 0;
128852
+ const reactionCount = (_l = experience.reactionCount) !== null && _l !== void 0 ? _l : 0;
128853
+ const alsoCount = (_m = experience.alsoExperiencedCount) !== null && _m !== void 0 ? _m : 0;
128781
128854
  const openAuthor = (event) => {
128782
128855
  var _a, _b, _c;
128783
128856
  event.stopPropagation();
@@ -128785,7 +128858,7 @@ const ExperienceCard = ({ experience, viewerUserId, onOpen, onAlsoExperienced, o
128785
128858
  };
128786
128859
  return (React__default.createElement(Box$1, { component: "article", sx: socialTimelineRowSx, "data-testid": "experience-card", "data-experience-id": experience.id },
128787
128860
  React__default.createElement(Stack$1, { direction: "row", spacing: 1.5, alignItems: "flex-start" },
128788
- React__default.createElement(Avatar$1, { src: (_o = (_m = experience.author) === null || _m === void 0 ? void 0 : _m.avatarUrl) !== null && _o !== void 0 ? _o : undefined, alt: authorName, onClick: openAuthor, sx: {
128861
+ React__default.createElement(Avatar$1, { src: (_p = (_o = experience.author) === null || _o === void 0 ? void 0 : _o.avatarUrl) !== null && _p !== void 0 ? _p : undefined, alt: authorName, onClick: openAuthor, sx: {
128789
128862
  width: 40,
128790
128863
  height: 40,
128791
128864
  mt: 0.25,
@@ -128812,8 +128885,9 @@ const ExperienceCard = ({ experience, viewerUserId, onOpen, onAlsoExperienced, o
128812
128885
  timeLabel ? (React__default.createElement(React__default.Fragment, null,
128813
128886
  React__default.createElement(Typography$1, { component: "span", color: "text.secondary", sx: { fontSize: "0.9375rem" } }, "\u00B7"),
128814
128887
  React__default.createElement(Typography$1, { component: "span", color: "text.secondary", noWrap: true, sx: { fontSize: "0.9375rem" } }, timeLabel))) : null,
128888
+ React__default.createElement(EditedMark, { editedAt: experience.editedAt }),
128815
128889
  React__default.createElement(Box$1, { sx: { flex: 1 } }),
128816
- (onReport || onShare) && (React__default.createElement(React__default.Fragment, null,
128890
+ showMenu ? (React__default.createElement(React__default.Fragment, null,
128817
128891
  React__default.createElement(IconButton$1, { size: "small", "aria-label": "Mais op\u00E7\u00F5es", onClick: (event) => {
128818
128892
  event.stopPropagation();
128819
128893
  setMenuAnchor(event.currentTarget);
@@ -128824,10 +128898,18 @@ const ExperienceCard = ({ experience, viewerUserId, onOpen, onAlsoExperienced, o
128824
128898
  setMenuAnchor(null);
128825
128899
  onShare(experience.id);
128826
128900
  } }, "Compartilhar")) : null,
128827
- onReport ? (React__default.createElement(MenuItem$1, { onClick: () => {
128901
+ canEdit ? (React__default.createElement(MenuItem$1, { onClick: () => {
128902
+ setMenuAnchor(null);
128903
+ setEditOpen(true);
128904
+ } }, "Editar")) : null,
128905
+ canDelete ? (React__default.createElement(MenuItem$1, { onClick: () => {
128906
+ setMenuAnchor(null);
128907
+ setDeleteOpen(true);
128908
+ } }, "Excluir")) : null,
128909
+ !isAuthor && onReport ? (React__default.createElement(MenuItem$1, { onClick: () => {
128828
128910
  setMenuAnchor(null);
128829
128911
  onReport(experience.id);
128830
- } }, "Denunciar")) : null)))),
128912
+ } }, "Denunciar")) : null))) : null),
128831
128913
  React__default.createElement(Box$1, { role: onOpen ? "link" : undefined, tabIndex: onOpen ? 0 : undefined, onClick: () => onOpen === null || onOpen === void 0 ? void 0 : onOpen(experience.id), onKeyDown: (event) => {
128832
128914
  if (!onOpen)
128833
128915
  return;
@@ -128883,23 +128965,52 @@ const ExperienceCard = ({ experience, viewerUserId, onOpen, onAlsoExperienced, o
128883
128965
  React__default.createElement(Stack$1, { direction: "row", alignItems: "center", spacing: 0.25 },
128884
128966
  React__default.createElement(IconButton$1, { size: "small", "aria-label": "Compartilhar", onClick: () => onShare === null || onShare === void 0 ? void 0 : onShare(experience.id), disabled: !onShare, sx: socialActionIconSx },
128885
128967
  React__default.createElement(ShareOutlined$1, { sx: { fontSize: 18 } })),
128886
- React__default.createElement(ActionCount$1, { count: shareCount })))))));
128968
+ React__default.createElement(ActionCount$1, { count: shareCount }))))),
128969
+ editOpen ? (React__default.createElement(SocialEditTextDialog, { open: true, dialogTitle: "Editar publica\u00E7\u00E3o", contentLabel: "Texto", initialContent: experience.content, initialTitle: experience.title, showTitle: Boolean((_q = experience.title) === null || _q === void 0 ? void 0 : _q.trim()), submitting: actionPending, onClose: () => setEditOpen(false), onSave: (value) => __awaiter$1(void 0, void 0, void 0, function* () {
128970
+ if (!onEdit)
128971
+ return;
128972
+ setActionPending(true);
128973
+ try {
128974
+ yield onEdit(experience.id, value);
128975
+ setEditOpen(false);
128976
+ }
128977
+ finally {
128978
+ setActionPending(false);
128979
+ }
128980
+ }) })) : null,
128981
+ deleteOpen ? (React__default.createElement(SocialDeleteConfirmDialog, { open: true, kind: "post", submitting: actionPending, onClose: () => setDeleteOpen(false), onConfirm: () => __awaiter$1(void 0, void 0, void 0, function* () {
128982
+ if (!onDelete)
128983
+ return;
128984
+ setActionPending(true);
128985
+ try {
128986
+ yield onDelete(experience.id);
128987
+ setDeleteOpen(false);
128988
+ }
128989
+ finally {
128990
+ setActionPending(false);
128991
+ }
128992
+ }) })) : null));
128887
128993
  };
128888
128994
 
128889
- const ExperienceCommentRow = ({ comment, depth = 0, likeDisabled = false, onAuthorClick, onReply, onToggleLike, }) => {
128890
- var _a, _b, _c, _d;
128995
+ const ExperienceCommentRow = ({ comment, depth = 0, likeDisabled = false, viewerUserId, onAuthorClick, onReply, onToggleLike, onEdit, onDelete, }) => {
128996
+ var _a, _b, _c, _d, _e;
128997
+ const [menuAnchor, setMenuAnchor] = useState(null);
128891
128998
  const name = authorDisplayName(comment.author);
128892
- const username = (_a = comment.author) === null || _a === void 0 ? void 0 : _a.username;
128999
+ const isAuthor = Boolean(viewerUserId) &&
129000
+ (comment.authorId === viewerUserId ||
129001
+ ((_a = comment.author) === null || _a === void 0 ? void 0 : _a.userId) === viewerUserId);
129002
+ const showOwnerMenu = isAuthor && Boolean(onEdit || onDelete);
129003
+ const username = (_b = comment.author) === null || _b === void 0 ? void 0 : _b.username;
128893
129004
  const isReply = depth === 1;
128894
129005
  const avatarSize = isReply ? 28 : 36;
128895
- const likeCount = (_b = comment.likeCount) !== null && _b !== void 0 ? _b : 0;
129006
+ const likeCount = (_c = comment.likeCount) !== null && _c !== void 0 ? _c : 0;
128896
129007
  const liked = Boolean(comment.viewerHasLiked);
128897
129008
  return (React__default.createElement(Stack$1, { direction: "row", spacing: 1.25, alignItems: "flex-start", sx: {
128898
129009
  px: 2,
128899
129010
  py: 1.25,
128900
129011
  pl: isReply ? 7 : 2,
128901
129012
  }, "data-testid": "experience-comment-row" },
128902
- React__default.createElement(Avatar$1, { src: (_d = (_c = comment.author) === null || _c === void 0 ? void 0 : _c.avatarUrl) !== null && _d !== void 0 ? _d : undefined, alt: name, sx: {
129013
+ React__default.createElement(Avatar$1, { src: (_e = (_d = comment.author) === null || _d === void 0 ? void 0 : _d.avatarUrl) !== null && _e !== void 0 ? _e : undefined, alt: name, sx: {
128903
129014
  width: avatarSize,
128904
129015
  height: avatarSize,
128905
129016
  cursor: onAuthorClick ? "pointer" : "default",
@@ -128919,6 +129030,7 @@ const ExperienceCommentRow = ({ comment, depth = 0, likeDisabled = false, onAuth
128919
129030
  React__default.createElement(Box$1, { component: "span", sx: { whiteSpace: "pre-wrap" } }, comment.body)),
128920
129031
  React__default.createElement(Stack$1, { direction: "row", spacing: 1.5, alignItems: "center", sx: { mt: 0.25 } },
128921
129032
  React__default.createElement(Typography$1, { variant: "caption", color: "text.secondary" }, formatRelativeTime(comment.createdAt)),
129033
+ React__default.createElement(EditedMark, { editedAt: comment.editedAt, fontSize: "0.75rem" }),
128922
129034
  onReply ? (React__default.createElement(ButtonBase$1, { onClick: () => onReply(comment), "aria-label": "Responder", sx: {
128923
129035
  typography: "caption",
128924
129036
  fontWeight: 700,
@@ -128927,6 +129039,18 @@ const ExperienceCommentRow = ({ comment, depth = 0, likeDisabled = false, onAuth
128927
129039
  px: 0.25,
128928
129040
  "&:hover": { color: "text.primary" },
128929
129041
  } }, "Responder")) : null)),
129042
+ showOwnerMenu ? (React__default.createElement(React__default.Fragment, null,
129043
+ React__default.createElement(IconButton$1, { size: "small", "aria-label": "Mais op\u00E7\u00F5es do coment\u00E1rio", onClick: (event) => setMenuAnchor(event.currentTarget), sx: socialActionIconSx },
129044
+ React__default.createElement(MoreHoriz$1, { fontSize: "small" })),
129045
+ React__default.createElement(Menu$2, { anchorEl: menuAnchor, open: Boolean(menuAnchor), onClose: () => setMenuAnchor(null) },
129046
+ onEdit ? (React__default.createElement(MenuItem$1, { onClick: () => {
129047
+ setMenuAnchor(null);
129048
+ onEdit(comment);
129049
+ } }, "Editar")) : null,
129050
+ onDelete ? (React__default.createElement(MenuItem$1, { onClick: () => {
129051
+ setMenuAnchor(null);
129052
+ onDelete(comment);
129053
+ } }, "Excluir")) : null))) : null,
128930
129054
  onToggleLike ? (React__default.createElement(Stack$1, { alignItems: "center", sx: { pt: 0.25, minWidth: 28 } },
128931
129055
  React__default.createElement(IconButton$1, { size: "small", "aria-label": liked ? "Remover curtida" : "Curtir", disabled: likeDisabled, onClick: () => onToggleLike(comment), sx: {
128932
129056
  color: liked ? "error.main" : "text.secondary",
@@ -129025,9 +129149,12 @@ const SocialMessageComposer = ({ value, onChange, onSend, isSending = false, dis
129025
129149
  } }, isSending ? (React__default.createElement(CircularProgress$1, { size: 22, color: "inherit" })) : (React__default.createElement(Send, { fontSize: "small" })))))));
129026
129150
  };
129027
129151
 
129028
- const ExperienceCommentsSheet = ({ open, comments = [], commentCount, isLoading = false, isFetchingMore = false, hasMore = false, isSubmitting = false, error = null, composerDisabled = false, onClose, onLoadMore, onLoadMoreReplies, onSubmitComment, onRetry, onAuthorClick, onToggleLike, }) => {
129152
+ const ExperienceCommentsSheet = ({ open, comments = [], commentCount, isLoading = false, isFetchingMore = false, hasMore = false, isSubmitting = false, error = null, composerDisabled = false, onClose, onLoadMore, onLoadMoreReplies, onSubmitComment, onRetry, onAuthorClick, onToggleLike, viewerUserId, onEditComment, onDeleteComment, }) => {
129029
129153
  var _a;
129030
129154
  const [draft, setDraft] = useState("");
129155
+ const [editing, setEditing] = useState(null);
129156
+ const [deleting, setDeleting] = useState(null);
129157
+ const [actionPending, setActionPending] = useState(false);
129031
129158
  const [replyTarget, setReplyTarget] = useState(null);
129032
129159
  const [loadingRepliesFor, setLoadingRepliesFor] = useState(null);
129033
129160
  const listRef = useRef(null);
@@ -129037,6 +129164,8 @@ const ExperienceCommentsSheet = ({ open, comments = [], commentCount, isLoading
129037
129164
  setDraft("");
129038
129165
  setReplyTarget(null);
129039
129166
  setLoadingRepliesFor(null);
129167
+ setEditing(null);
129168
+ setDeleting(null);
129040
129169
  }
129041
129170
  }, [open]);
129042
129171
  useEffect(() => {
@@ -129112,8 +129241,8 @@ const ExperienceCommentsSheet = ({ open, comments = [], commentCount, isLoading
129112
129241
  (Boolean(comment.repliesHasMore) ||
129113
129242
  replyCount > replies.length);
129114
129243
  return (React__default.createElement(Box$1, { key: comment.id },
129115
- React__default.createElement(ExperienceCommentRow, { comment: comment, depth: 0, likeDisabled: composerDisabled, onAuthorClick: onAuthorClick, onReply: onSubmitComment ? startReply : undefined, onToggleLike: onToggleLike }),
129116
- replies.map((reply) => (React__default.createElement(ExperienceCommentRow, { key: reply.id, comment: reply, depth: 1, likeDisabled: composerDisabled, onAuthorClick: onAuthorClick, onReply: onSubmitComment ? startReply : undefined, onToggleLike: onToggleLike }))),
129244
+ React__default.createElement(ExperienceCommentRow, { comment: comment, depth: 0, likeDisabled: composerDisabled, viewerUserId: viewerUserId, onAuthorClick: onAuthorClick, onReply: onSubmitComment ? startReply : undefined, onToggleLike: onToggleLike, onEdit: onEditComment ? setEditing : undefined, onDelete: onDeleteComment ? setDeleting : undefined }),
129245
+ replies.map((reply) => (React__default.createElement(ExperienceCommentRow, { key: reply.id, comment: reply, depth: 1, likeDisabled: composerDisabled, viewerUserId: viewerUserId, onAuthorClick: onAuthorClick, onReply: onSubmitComment ? startReply : undefined, onToggleLike: onToggleLike, onEdit: onEditComment ? setEditing : undefined, onDelete: onDeleteComment ? setDeleting : undefined }))),
129117
129246
  showViewReplies ? (React__default.createElement(Box$1, { sx: { pl: 7, pb: 1 } },
129118
129247
  React__default.createElement(ButtonBase$1, { onClick: () => void handleLoadReplies(comment.id), disabled: loadingRepliesFor === comment.id, "aria-label": "Ver respostas", sx: {
129119
129248
  typography: "caption",
@@ -129143,7 +129272,31 @@ const ExperienceCommentsSheet = ({ open, comments = [], commentCount, isLoading
129143
129272
  React__default.createElement(default_1$N, { fontSize: "small" })))) : null,
129144
129273
  React__default.createElement(SocialMessageComposer, { variant: "drawer", value: draft, onChange: setDraft, onSend: (message) => void handleSend(message), isSending: isSubmitting, disabled: composerDisabled || !onSubmitComment, placeholder: replyTarget
129145
129274
  ? "Adicione uma resposta..."
129146
- : "Adicione um comentário...", maxLength: 2000 }))));
129275
+ : "Adicione um comentário...", maxLength: 2000 }),
129276
+ editing ? (React__default.createElement(SocialEditTextDialog, { open: true, dialogTitle: editing.parentId ? "Editar resposta" : "Editar comentário", contentLabel: "Texto", initialContent: editing.body, submitting: actionPending, maxLength: 2000, onClose: () => setEditing(null), onSave: (value) => __awaiter$1(void 0, void 0, void 0, function* () {
129277
+ if (!onEditComment)
129278
+ return;
129279
+ setActionPending(true);
129280
+ try {
129281
+ yield onEditComment(editing, value.content);
129282
+ setEditing(null);
129283
+ }
129284
+ finally {
129285
+ setActionPending(false);
129286
+ }
129287
+ }) })) : null,
129288
+ deleting ? (React__default.createElement(SocialDeleteConfirmDialog, { open: true, kind: deleting.parentId ? "reply" : "comment", submitting: actionPending, onClose: () => setDeleting(null), onConfirm: () => __awaiter$1(void 0, void 0, void 0, function* () {
129289
+ if (!onDeleteComment)
129290
+ return;
129291
+ setActionPending(true);
129292
+ try {
129293
+ yield onDeleteComment(deleting);
129294
+ setDeleting(null);
129295
+ }
129296
+ finally {
129297
+ setActionPending(false);
129298
+ }
129299
+ }) })) : null)));
129147
129300
  };
129148
129301
 
129149
129302
  const DEFAULT_OPTIONS = [
@@ -129298,9 +129451,12 @@ const SimilarExperienceCard = ({ experience, onOpen, }) => {
129298
129451
  } }, experience.title || experience.content)))));
129299
129452
  };
129300
129453
 
129301
- const ExperienceDetailView = ({ experience, similarExperiences = [], viewerUserId, alsoExperiencedLoading, onAlsoExperienced, onReactionToggle, onComment, onShare, onReport, onAuthorClick, onSimilarOpen, }) => {
129302
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
129454
+ const ExperienceDetailView = ({ experience, similarExperiences = [], viewerUserId, alsoExperiencedLoading, onAlsoExperienced, onReactionToggle, onComment, onShare, onReport, onEdit, onDelete, onAuthorClick, onSimilarOpen, }) => {
129455
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
129303
129456
  const [menuAnchor, setMenuAnchor] = useState(null);
129457
+ const [editOpen, setEditOpen] = useState(false);
129458
+ const [deleteOpen, setDeleteOpen] = useState(false);
129459
+ const [actionPending, setActionPending] = useState(false);
129304
129460
  const authorName = authorDisplayName(experience.author, {
129305
129461
  authorId: (_b = (_a = experience.author) === null || _a === void 0 ? void 0 : _a.userId) !== null && _b !== void 0 ? _b : experience.authorId,
129306
129462
  viewerUserId,
@@ -129310,6 +129466,9 @@ const ExperienceDetailView = ({ experience, similarExperiences = [], viewerUserI
129310
129466
  const isAuthor = Boolean(viewerUserId) &&
129311
129467
  (experience.authorId === viewerUserId ||
129312
129468
  ((_e = experience.author) === null || _e === void 0 ? void 0 : _e.userId) === viewerUserId);
129469
+ const canEdit = isAuthor && Boolean(onEdit);
129470
+ const canDelete = isAuthor && Boolean(onDelete);
129471
+ const showMenu = Boolean(onShare || (!isAuthor && onReport) || canEdit || canDelete);
129313
129472
  const hasImage = Boolean((_f = experience.imageUrl) === null || _f === void 0 ? void 0 : _f.trim());
129314
129473
  const commentCount = (_g = experience.commentCount) !== null && _g !== void 0 ? _g : 0;
129315
129474
  const shareCount = (_h = experience.shareCount) !== null && _h !== void 0 ? _h : 0;
@@ -129352,8 +129511,9 @@ const ExperienceDetailView = ({ experience, similarExperiences = [], viewerUserI
129352
129511
  timeLabel ? (React__default.createElement(React__default.Fragment, null,
129353
129512
  React__default.createElement(Typography$1, { component: "span", color: "text.secondary", sx: { fontSize: "0.9375rem" } }, "\u00B7"),
129354
129513
  React__default.createElement(Typography$1, { component: "span", color: "text.secondary", noWrap: true, sx: { fontSize: "0.9375rem" } }, timeLabel))) : null,
129514
+ React__default.createElement(EditedMark, { editedAt: experience.editedAt }),
129355
129515
  React__default.createElement(Box$1, { sx: { flex: 1 } }),
129356
- (!isAuthor && (onReport || onShare)) || (isAuthor && onShare) ? (React__default.createElement(React__default.Fragment, null,
129516
+ showMenu ? (React__default.createElement(React__default.Fragment, null,
129357
129517
  React__default.createElement(IconButton$1, { size: "small", "aria-label": "Mais op\u00E7\u00F5es", onClick: (event) => setMenuAnchor(event.currentTarget), sx: socialActionIconSx },
129358
129518
  React__default.createElement(default_1$K, { fontSize: "small" })),
129359
129519
  React__default.createElement(Menu$2, { anchorEl: menuAnchor, open: Boolean(menuAnchor), onClose: () => setMenuAnchor(null) },
@@ -129361,6 +129521,14 @@ const ExperienceDetailView = ({ experience, similarExperiences = [], viewerUserI
129361
129521
  setMenuAnchor(null);
129362
129522
  onShare();
129363
129523
  } }, "Compartilhar")) : null,
129524
+ canEdit ? (React__default.createElement(MenuItem$1, { onClick: () => {
129525
+ setMenuAnchor(null);
129526
+ setEditOpen(true);
129527
+ } }, "Editar")) : null,
129528
+ canDelete ? (React__default.createElement(MenuItem$1, { onClick: () => {
129529
+ setMenuAnchor(null);
129530
+ setDeleteOpen(true);
129531
+ } }, "Excluir")) : null,
129364
129532
  !isAuthor && onReport ? (React__default.createElement(MenuItem$1, { onClick: () => {
129365
129533
  setMenuAnchor(null);
129366
129534
  onReport();
@@ -129411,7 +129579,31 @@ const ExperienceDetailView = ({ experience, similarExperiences = [], viewerUserI
129411
129579
  borderBottom: 1,
129412
129580
  borderColor: "divider",
129413
129581
  } }, "Semelhantes"),
129414
- similarExperiences.map((item) => (React__default.createElement(SimilarExperienceCard, { key: item.id, experience: item, onOpen: onSimilarOpen }))))) : null));
129582
+ similarExperiences.map((item) => (React__default.createElement(SimilarExperienceCard, { key: item.id, experience: item, onOpen: onSimilarOpen }))))) : null,
129583
+ editOpen ? (React__default.createElement(SocialEditTextDialog, { open: true, dialogTitle: "Editar publica\u00E7\u00E3o", contentLabel: "Texto", initialContent: experience.content, initialTitle: experience.title, showTitle: Boolean((_p = experience.title) === null || _p === void 0 ? void 0 : _p.trim()), submitting: actionPending, onClose: () => setEditOpen(false), onSave: (value) => __awaiter$1(void 0, void 0, void 0, function* () {
129584
+ if (!onEdit)
129585
+ return;
129586
+ setActionPending(true);
129587
+ try {
129588
+ yield onEdit(value);
129589
+ setEditOpen(false);
129590
+ }
129591
+ finally {
129592
+ setActionPending(false);
129593
+ }
129594
+ }) })) : null,
129595
+ deleteOpen ? (React__default.createElement(SocialDeleteConfirmDialog, { open: true, kind: "post", submitting: actionPending, onClose: () => setDeleteOpen(false), onConfirm: () => __awaiter$1(void 0, void 0, void 0, function* () {
129596
+ if (!onDelete)
129597
+ return;
129598
+ setActionPending(true);
129599
+ try {
129600
+ yield onDelete();
129601
+ setDeleteOpen(false);
129602
+ }
129603
+ finally {
129604
+ setActionPending(false);
129605
+ }
129606
+ }) })) : null));
129415
129607
  };
129416
129608
 
129417
129609
  const QuestionSourceBadge = ({ source }) => {
@@ -147034,6 +147226,7 @@ const ACTION_ICON_MAP = {
147034
147226
  "🧘": React__default.createElement(Spa, null),
147035
147227
  "🎓": React__default.createElement(School$1, null),
147036
147228
  "🌐": React__default.createElement(Public, null),
147229
+ place: React__default.createElement(Place, null),
147037
147230
  social: React__default.createElement(Public, null),
147038
147231
  public: React__default.createElement(Public, null),
147039
147232
  };
@@ -147692,7 +147885,7 @@ function getEventCoordinates(event) {
147692
147885
  return null;
147693
147886
  }
147694
147887
 
147695
- const CSS = /*#__PURE__*/Object.freeze({
147888
+ const CSS$1 = /*#__PURE__*/Object.freeze({
147696
147889
  Translate: {
147697
147890
  toString(transform) {
147698
147891
  if (!transform) {
@@ -147727,7 +147920,7 @@ const CSS = /*#__PURE__*/Object.freeze({
147727
147920
  return;
147728
147921
  }
147729
147922
 
147730
- return [CSS.Translate.toString(transform), CSS.Scale.toString(transform)].join(' ');
147923
+ return [CSS$1.Translate.toString(transform), CSS$1.Scale.toString(transform)].join(' ');
147731
147924
  }
147732
147925
 
147733
147926
  },
@@ -151566,7 +151759,7 @@ const defaultTransition = {
151566
151759
  easing: 'ease'
151567
151760
  };
151568
151761
  const transitionProperty = 'transform';
151569
- const disabledTransition = /*#__PURE__*/CSS.Transition.toString({
151762
+ const disabledTransition = /*#__PURE__*/CSS$1.Transition.toString({
151570
151763
  property: transitionProperty,
151571
151764
  duration: 0,
151572
151765
  easing: 'linear'
@@ -151800,7 +151993,7 @@ function useSortable(_ref) {
151800
151993
  }
151801
151994
 
151802
151995
  if (isSorting || shouldAnimateLayoutChanges) {
151803
- return CSS.Transition.toString({ ...transition,
151996
+ return CSS$1.Transition.toString({ ...transition,
151804
151997
  property: transitionProperty
151805
151998
  });
151806
151999
  }
@@ -152487,7 +152680,7 @@ const SortableOrderRow = ({ widget, index, total, onMove }) => {
152487
152680
  const theme = useTheme$1();
152488
152681
  const { attributes, listeners, setNodeRef, setActivatorNodeRef, transform, transition, isDragging, } = useSortable({ id: widget.id });
152489
152682
  return (React__default.createElement(Box$1, { ref: setNodeRef, style: {
152490
- transform: CSS.Transform.toString(transform),
152683
+ transform: CSS$1.Transform.toString(transform),
152491
152684
  transition,
152492
152685
  }, sx: {
152493
152686
  display: "flex",
@@ -154823,6 +155016,14 @@ const useHomePage = (props) => {
154823
155016
  route: "/terreiro",
154824
155017
  color: "primary",
154825
155018
  },
155019
+ {
155020
+ id: "terreiro-search",
155021
+ title: "Terreiros",
155022
+ description: "Buscar casas próximas",
155023
+ icon: "place",
155024
+ route: "/terreiros/buscar",
155025
+ color: "primary",
155026
+ },
154826
155027
  {
154827
155028
  id: "mediums",
154828
155029
  title: "Médiuns",
@@ -154958,6 +155159,7 @@ const useHomePage = (props) => {
154958
155159
  // Admin + personal: include Social when feature enabled
154959
155160
  return withSocialUnreadBadge(filterByIds(withSocialPersonalOnly(withIngressos([
154960
155161
  "terreiro",
155162
+ "terreiro-search",
154961
155163
  "activities",
154962
155164
  "ritual-baths",
154963
155165
  "inventory",
@@ -154969,6 +155171,7 @@ const useHomePage = (props) => {
154969
155171
  // Admin + terreiro: no Social
154970
155172
  return filterByIds(withIngressos([
154971
155173
  "terreiro",
155174
+ "terreiro-search",
154972
155175
  "mediums",
154973
155176
  "activities",
154974
155177
  "events",
@@ -154983,6 +155186,7 @@ const useHomePage = (props) => {
154983
155186
  if (selectedTerreiro) {
154984
155187
  const filtered = filterByIds(withIngressos([
154985
155188
  "terreiro",
155189
+ "terreiro-search",
154986
155190
  "mediums",
154987
155191
  "activities",
154988
155192
  "events",
@@ -154996,6 +155200,7 @@ const useHomePage = (props) => {
154996
155200
  // Non-admin + personal profile: include Social when feature enabled
154997
155201
  return withSocialUnreadBadge(filterByIds(withSocialPersonalOnly([
154998
155202
  "terreiro",
155203
+ "terreiro-search",
154999
155204
  "activities",
155000
155205
  "ritual-baths",
155001
155206
  "inventory",
@@ -160833,7 +161038,7 @@ const FormGrid$8 = styled$1(Grid$1)(({ theme }) => ({
160833
161038
  const CEP_MIN_LENGTH = 8;
160834
161039
  const ZIP_PLACEHOLDER = "00000-000";
160835
161040
  const ADORNMENT_SPINNER_SIZE = 20;
160836
- const GOOGLE_SEARCH_PLACEHOLDER = "Digite o endereço para buscar no Google";
161041
+ const GOOGLE_SEARCH_PLACEHOLDER$1 = "Digite o endereço para buscar no Google";
160837
161042
  const AddressPage = (props) => {
160838
161043
  const theme = useTheme$1();
160839
161044
  const { data, fns } = useAddressPage(props);
@@ -160905,7 +161110,7 @@ const AddressPage = (props) => {
160905
161110
  }
160906
161111
  }, onChange: (_, newValue) => {
160907
161112
  fns.handleGoogleSuggestionSelect(newValue);
160908
- }, renderInput: (params) => (React__default.createElement(TextField$1, Object.assign({}, params, { label: "Buscar endere\u00E7o", placeholder: GOOGLE_SEARCH_PLACEHOLDER, fullWidth: true, "data-testid": "address-google-search", InputProps: Object.assign(Object.assign({}, params.InputProps), { startAdornment: (React__default.createElement(InputAdornment$1, { position: "start" },
161113
+ }, renderInput: (params) => (React__default.createElement(TextField$1, Object.assign({}, params, { label: "Buscar endere\u00E7o", placeholder: GOOGLE_SEARCH_PLACEHOLDER$1, fullWidth: true, "data-testid": "address-google-search", InputProps: Object.assign(Object.assign({}, params.InputProps), { startAdornment: (React__default.createElement(InputAdornment$1, { position: "start" },
160909
161114
  React__default.createElement(LocationOn, { sx: { color: theme.palette.text.secondary } }))) }) }))) }),
160910
161115
  data.googleSearchError && (React__default.createElement(Box$1, { sx: { mt: 1 } },
160911
161116
  React__default.createElement(Alert$1, { severity: "warning" }, data.googleSearchError))),
@@ -178291,8 +178496,8 @@ const SocialHomePage = (props) => {
178291
178496
  : undefined, onAction: tab === "para-voce"
178292
178497
  ? props.onCreateExperience
178293
178498
  : props.onOpenFollow })) : (React__default.createElement(InfiniteScroll, { hasNextPage: feedHasNextPage, isFetchingNextPage: feedIsFetchingNextPage, onLoadMore: onFeedLoadMore !== null && onFeedLoadMore !== void 0 ? onFeedLoadMore : (() => undefined) },
178294
- React__default.createElement(Box$1, { sx: { border: "none" } }, feed.map((item) => item.kind === "experience" ? (React__default.createElement(ExperienceCard, { key: `experience-${item.id}`, experience: item.experience, viewerUserId: props.viewerUserId, onOpen: props.onOpenExperience, onAlsoExperienced: props.onAlsoExperienced, onReactionToggle: props.onReactionToggle, onShare: props.onShareExperience, onReport: props.onReportExperience, onComment: openComments, onBookmark: props.onBookmarkExperience, onAuthorClick: props.onOpenPerson, alsoExperiencedLoading: props.alsoExperiencedLoadingId === item.id })) : (React__default.createElement(QuestionCard, { key: `question-${item.id}`, question: item.question, viewerUserId: props.viewerUserId, onOpen: openAnswers, onOpenAnswers: openAnswers, onBookmark: props.onBookmarkQuestion, onShare: props.onShareQuestion, onReactionToggle: props.onReactionToggleQuestion, onAuthorClick: props.onOpenPerson }))))))),
178295
- React__default.createElement(ExperienceCommentsSheet, { open: Boolean(commentsExperienceId), experienceId: commentsExperienceId, comments: props.comments, commentCount: (_k = (_j = props.commentsCount) !== null && _j !== void 0 ? _j : commentsTarget === null || commentsTarget === void 0 ? void 0 : commentsTarget.commentCount) !== null && _k !== void 0 ? _k : undefined, isLoading: props.commentsLoading, isFetchingMore: props.commentsFetchingMore, hasMore: props.commentsHasMore, isSubmitting: props.commentsSubmitting, error: props.commentsError, composerDisabled: props.commentsComposerDisabled, onClose: closeComments, onLoadMore: props.onLoadMoreComments, onLoadMoreReplies: props.onLoadMoreReplies, onSubmitComment: props.onSubmitComment, onToggleLike: props.onToggleCommentLike, onRetry: props.onRetryComments, onAuthorClick: props.onOpenPerson }),
178499
+ React__default.createElement(Box$1, { sx: { border: "none" } }, feed.map((item) => item.kind === "experience" ? (React__default.createElement(ExperienceCard, { key: `experience-${item.id}`, experience: item.experience, viewerUserId: props.viewerUserId, onOpen: props.onOpenExperience, onAlsoExperienced: props.onAlsoExperienced, onReactionToggle: props.onReactionToggle, onShare: props.onShareExperience, onReport: props.onReportExperience, onEdit: props.onEditExperience, onDelete: props.onDeleteExperience, onComment: openComments, onBookmark: props.onBookmarkExperience, onAuthorClick: props.onOpenPerson, alsoExperiencedLoading: props.alsoExperiencedLoadingId === item.id })) : (React__default.createElement(QuestionCard, { key: `question-${item.id}`, question: item.question, viewerUserId: props.viewerUserId, onOpen: openAnswers, onOpenAnswers: openAnswers, onBookmark: props.onBookmarkQuestion, onShare: props.onShareQuestion, onReactionToggle: props.onReactionToggleQuestion, onAuthorClick: props.onOpenPerson }))))))),
178500
+ React__default.createElement(ExperienceCommentsSheet, { open: Boolean(commentsExperienceId), experienceId: commentsExperienceId, comments: props.comments, commentCount: (_k = (_j = props.commentsCount) !== null && _j !== void 0 ? _j : commentsTarget === null || commentsTarget === void 0 ? void 0 : commentsTarget.commentCount) !== null && _k !== void 0 ? _k : undefined, isLoading: props.commentsLoading, isFetchingMore: props.commentsFetchingMore, hasMore: props.commentsHasMore, isSubmitting: props.commentsSubmitting, error: props.commentsError, composerDisabled: props.commentsComposerDisabled, onClose: closeComments, onLoadMore: props.onLoadMoreComments, onLoadMoreReplies: props.onLoadMoreReplies, onSubmitComment: props.onSubmitComment, onToggleLike: props.onToggleCommentLike, onRetry: props.onRetryComments, onAuthorClick: props.onOpenPerson, viewerUserId: props.viewerUserId, onEditComment: props.onEditComment, onDeleteComment: props.onDeleteComment }),
178296
178501
  React__default.createElement(QuestionAnswersSheet, { open: Boolean(answersQuestionId), questionId: answersQuestionId, questionTitle: answersTarget === null || answersTarget === void 0 ? void 0 : answersTarget.title, answers: props.answers, answerCount: (_m = (_l = props.answersCount) !== null && _l !== void 0 ? _l : answersTarget === null || answersTarget === void 0 ? void 0 : answersTarget.answerCount) !== null && _m !== void 0 ? _m : undefined, isLoading: props.answersLoading, isSubmitting: props.answersSubmitting, error: props.answersError, onClose: closeAnswers, onRetry: props.onRetryAnswers, onSubmitAnswer: props.onSubmitAnswer, onAuthorClick: props.onOpenPerson }),
178297
178502
  hasCreateActions ? (React__default.createElement(React__default.Fragment, null,
178298
178503
  React__default.createElement(Fab$1, { color: "primary", "aria-label": "Criar", "data-testid": "social-create-fab", onClick: openCreateSheet, sx: {
@@ -178594,10 +178799,10 @@ const ExperienceDetailPage = (props) => {
178594
178799
  (_a = props.onCloseComments) === null || _a === void 0 ? void 0 : _a.call(props);
178595
178800
  };
178596
178801
  return (React__default.createElement(SocialPageShell, { title: "Experi\u00EAncia", onBack: props.onBack }, props.isLoading ? (React__default.createElement(SocialSkeleton, { count: 1 })) : props.error ? (React__default.createElement(SocialErrorState, { message: props.error, onRetry: props.onRetry })) : props.experience ? (React__default.createElement(React__default.Fragment, null,
178597
- React__default.createElement(ExperienceDetailView, { experience: props.experience, similarExperiences: props.similarExperiences, viewerUserId: props.viewerUserId, alsoExperiencedLoading: props.alsoExperiencedLoading, onAlsoExperienced: props.onAlsoExperienced, onReactionToggle: props.onReactionToggle, onComment: openComments, onShare: props.onShare, onReport: props.onReport, onAuthorClick: props.onAuthorClick, onSimilarOpen: props.onSimilarOpen }),
178802
+ React__default.createElement(ExperienceDetailView, { experience: props.experience, similarExperiences: props.similarExperiences, viewerUserId: props.viewerUserId, alsoExperiencedLoading: props.alsoExperiencedLoading, onAlsoExperienced: props.onAlsoExperienced, onReactionToggle: props.onReactionToggle, onComment: openComments, onShare: props.onShare, onReport: props.onReport, onEdit: props.onEditExperience, onDelete: props.onDeleteExperience, onAuthorClick: props.onAuthorClick, onSimilarOpen: props.onSimilarOpen }),
178598
178803
  React__default.createElement(ShareSheet, { open: Boolean(props.shareOpen), onClose: (_b = props.onShareClose) !== null && _b !== void 0 ? _b : (() => undefined), previewText: (_c = props.sharePreviewText) !== null && _c !== void 0 ? _c : "Uma experiência na comunidade", shareUrl: (_d = props.shareUrl) !== null && _d !== void 0 ? _d : "", onWhatsAppShare: props.onWhatsAppShare, onCopyLink: props.onCopyLink, onShareStarted: props.onShareStarted }),
178599
178804
  React__default.createElement(ReportDialog, { open: Boolean(props.reportOpen), onClose: (_e = props.onReportClose) !== null && _e !== void 0 ? _e : (() => undefined), onSubmit: (_f = props.onReportSubmit) !== null && _f !== void 0 ? _f : (() => undefined) }),
178600
- React__default.createElement(ExperienceCommentsSheet, { open: commentsOpen, experienceId: props.experience.id, comments: props.comments, commentCount: (_h = (_g = props.commentsCount) !== null && _g !== void 0 ? _g : props.experience.commentCount) !== null && _h !== void 0 ? _h : undefined, isLoading: props.commentsLoading, isFetchingMore: props.commentsFetchingMore, hasMore: props.commentsHasMore, isSubmitting: props.commentsSubmitting, error: props.commentsError, composerDisabled: props.commentsComposerDisabled, onClose: closeComments, onLoadMore: props.onLoadMoreComments, onLoadMoreReplies: props.onLoadMoreReplies, onSubmitComment: props.onSubmitComment, onToggleLike: props.onToggleCommentLike, onRetry: props.onRetryComments, onAuthorClick: props.onCommentAuthorClick }))) : (React__default.createElement(SocialErrorState, { title: "Experi\u00EAncia n\u00E3o encontrada", message: "Este conte\u00FAdo pode ter sido removido ou n\u00E3o est\u00E1 dispon\u00EDvel.", onRetry: props.onRetry }))));
178805
+ React__default.createElement(ExperienceCommentsSheet, { open: commentsOpen, experienceId: props.experience.id, comments: props.comments, commentCount: (_h = (_g = props.commentsCount) !== null && _g !== void 0 ? _g : props.experience.commentCount) !== null && _h !== void 0 ? _h : undefined, isLoading: props.commentsLoading, isFetchingMore: props.commentsFetchingMore, hasMore: props.commentsHasMore, isSubmitting: props.commentsSubmitting, error: props.commentsError, composerDisabled: props.commentsComposerDisabled, onClose: closeComments, onLoadMore: props.onLoadMoreComments, onLoadMoreReplies: props.onLoadMoreReplies, onSubmitComment: props.onSubmitComment, onToggleLike: props.onToggleCommentLike, onRetry: props.onRetryComments, onAuthorClick: props.onCommentAuthorClick, viewerUserId: props.viewerUserId, onEditComment: props.onEditComment, onDeleteComment: props.onDeleteComment }))) : (React__default.createElement(SocialErrorState, { title: "Experi\u00EAncia n\u00E3o encontrada", message: "Este conte\u00FAdo pode ter sido removido ou n\u00E3o est\u00E1 dispon\u00EDvel.", onRetry: props.onRetry }))));
178601
178806
  };
178602
178807
 
178603
178808
  const QuestionsPage = ({ questions = [], isLoading, error, onBack, onRetry, onOpenQuestion, onCreateQuestion, }) => (React__default.createElement(SocialPageShell, { title: "Perguntas", onBack: onBack },
@@ -178726,12 +178931,13 @@ const stubEmptyCopy = {
178726
178931
  },
178727
178932
  };
178728
178933
  const JourneyProfilePage = (props) => {
178729
- var _a, _b, _c, _d, _e, _f, _g, _h;
178934
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
178730
178935
  const [contentTab, setContentTab] = useState("posts");
178731
178936
  const [commentsExperienceId, setCommentsExperienceId] = useState(null);
178732
178937
  const experiences = (_a = props.experiences) !== null && _a !== void 0 ? _a : [];
178733
178938
  (_b = props.similarPeople) !== null && _b !== void 0 ? _b : [];
178734
178939
  const isOwn = props.isOwnProfile || ((_c = props.profile) === null || _c === void 0 ? void 0 : _c.connectionStatus) === "SELF";
178940
+ const viewerUserId = (_d = props.viewerUserId) !== null && _d !== void 0 ? _d : (isOwn ? (_e = props.profile) === null || _e === void 0 ? void 0 : _e.userId : undefined);
178735
178941
  const commentsTarget = commentsExperienceId == null
178736
178942
  ? undefined
178737
178943
  : experiences.find((item) => item.id === commentsExperienceId);
@@ -178746,7 +178952,7 @@ const JourneyProfilePage = (props) => {
178746
178952
  (_a = props.onCloseComments) === null || _a === void 0 ? void 0 : _a.call(props);
178747
178953
  };
178748
178954
  return (React__default.createElement(SocialPageShell, { title: "Jornada", onBack: props.onBack, hideHeader: true }, props.isLoading ? (React__default.createElement(SocialSkeleton, { variant: "profile", count: 1 })) : props.error ? (React__default.createElement(SocialErrorState, { message: props.error, onRetry: props.onRetry })) : props.profile ? (React__default.createElement(React__default.Fragment, null,
178749
- React__default.createElement(JourneyProfile, { profile: props.profile, isOwnProfile: isOwn, connectionLoading: props.connectionLoading, onBack: props.onBack, onSearch: props.onSearch, onMore: (_d = props.onMore) !== null && _d !== void 0 ? _d : (isOwn ? undefined : props.onBlockOpen), onConnect: props.onConnect, onDisconnect: props.onDisconnect, onMessage: props.onMessage, onEdit: props.onEdit, onShare: props.onShare, onBlock: props.onBlockOpen, onOpenJoined: props.onOpenJoined, onOpenFollowing: props.onOpenFollowing, onOpenFollowers: props.onOpenFollowers, showVerificationBanner: Boolean(props.showVerificationBanner) && isOwn, verificationBannerMode: props.verificationBannerMode, verificationDaysRemaining: props.verificationDaysRemaining, onOpenVerificationProgress: props.onOpenVerificationProgress, onGetVerification: props.onGetVerification, onDismissVerification: props.onDismissVerification, experiencesCount: props.experiencesCount, connectionsCount: props.connectionsCount }),
178955
+ React__default.createElement(JourneyProfile, { profile: props.profile, isOwnProfile: isOwn, connectionLoading: props.connectionLoading, onBack: props.onBack, onSearch: props.onSearch, onMore: (_f = props.onMore) !== null && _f !== void 0 ? _f : (isOwn ? undefined : props.onBlockOpen), onConnect: props.onConnect, onDisconnect: props.onDisconnect, onMessage: props.onMessage, onEdit: props.onEdit, onShare: props.onShare, onBlock: props.onBlockOpen, onOpenJoined: props.onOpenJoined, onOpenFollowing: props.onOpenFollowing, onOpenFollowers: props.onOpenFollowers, showVerificationBanner: Boolean(props.showVerificationBanner) && isOwn, verificationBannerMode: props.verificationBannerMode, verificationDaysRemaining: props.verificationDaysRemaining, onOpenVerificationProgress: props.onOpenVerificationProgress, onGetVerification: props.onGetVerification, onDismissVerification: props.onDismissVerification, experiencesCount: props.experiencesCount, connectionsCount: props.connectionsCount }),
178750
178956
  React__default.createElement(Tabs$1, { value: contentTab, onChange: (_, value) => setContentTab(value), variant: "fullWidth", "aria-label": "Conte\u00FAdo da jornada", sx: {
178751
178957
  borderBottom: 1,
178752
178958
  borderColor: "divider",
@@ -178767,14 +178973,11 @@ const JourneyProfilePage = (props) => {
178767
178973
  } },
178768
178974
  React__default.createElement(Tab$1, { value: "posts", label: "Posts", disableRipple: true }),
178769
178975
  React__default.createElement(Tab$1, { value: "replies", "aria-label": "Respostas", icon: React__default.createElement(ChatBubbleOutline$1, { fontSize: "small" }), disableRipple: true })),
178770
- contentTab === "posts" ? (experiences.length === 0 ? (React__default.createElement(SocialEmptyState, { title: "Sem experi\u00EAncias p\u00FAblicas", description: "Esta jornada ainda n\u00E3o tem experi\u00EAncias vis\u00EDveis.", actionLabel: isOwn ? "Compartilhar experiência" : undefined, onAction: isOwn ? props.onCreateExperience : undefined })) : (React__default.createElement(Box$1, null, experiences.map((experience) => {
178771
- var _a;
178772
- return (React__default.createElement(ExperienceCard, { key: experience.id, experience: experience, viewerUserId: isOwn ? (_a = props.profile) === null || _a === void 0 ? void 0 : _a.userId : undefined, onOpen: props.onOpenExperience, onComment: openComments, onAuthorClick: props.onOpenPerson, compact: true }));
178773
- })))) : (React__default.createElement(SocialEmptyState, { title: stubEmptyCopy[contentTab].title, description: stubEmptyCopy[contentTab].description })),
178976
+ contentTab === "posts" ? (experiences.length === 0 ? (React__default.createElement(SocialEmptyState, { title: "Sem experi\u00EAncias p\u00FAblicas", description: "Esta jornada ainda n\u00E3o tem experi\u00EAncias vis\u00EDveis.", actionLabel: isOwn ? "Compartilhar experiência" : undefined, onAction: isOwn ? props.onCreateExperience : undefined })) : (React__default.createElement(Box$1, null, experiences.map((experience) => (React__default.createElement(ExperienceCard, { key: experience.id, experience: experience, viewerUserId: viewerUserId, onOpen: props.onOpenExperience, onEdit: props.onEditExperience, onDelete: props.onDeleteExperience, onComment: openComments, onAuthorClick: props.onOpenPerson, compact: true })))))) : (React__default.createElement(SocialEmptyState, { title: stubEmptyCopy[contentTab].title, description: stubEmptyCopy[contentTab].description })),
178774
178977
  isOwn && props.onCreateExperience ? (React__default.createElement(Fab$1, { color: "primary", "aria-label": "Nova experi\u00EAncia", onClick: props.onCreateExperience, sx: { position: "fixed", bottom: 24, right: 16, zIndex: 10 } },
178775
178978
  React__default.createElement(Add$1, null))) : null,
178776
- React__default.createElement(ExperienceCommentsSheet, { open: Boolean(commentsExperienceId), experienceId: commentsExperienceId, comments: props.comments, commentCount: (_f = (_e = props.commentsCount) !== null && _e !== void 0 ? _e : commentsTarget === null || commentsTarget === void 0 ? void 0 : commentsTarget.commentCount) !== null && _f !== void 0 ? _f : undefined, isLoading: props.commentsLoading, isFetchingMore: props.commentsFetchingMore, hasMore: props.commentsHasMore, isSubmitting: props.commentsSubmitting, error: props.commentsError, composerDisabled: props.commentsComposerDisabled, onClose: closeComments, onLoadMore: props.onLoadMoreComments, onLoadMoreReplies: props.onLoadMoreReplies, onSubmitComment: props.onSubmitComment, onToggleLike: props.onToggleCommentLike, onRetry: props.onRetryComments, onAuthorClick: props.onOpenPerson }),
178777
- React__default.createElement(BlockDialog, { open: Boolean(props.blockOpen), displayName: props.profile.displayName || props.profile.username || undefined, onClose: (_g = props.onBlockClose) !== null && _g !== void 0 ? _g : (() => undefined), onConfirm: (_h = props.onBlockConfirm) !== null && _h !== void 0 ? _h : (() => undefined) }))) : (React__default.createElement(Box$1, { sx: { pt: 2 } },
178979
+ React__default.createElement(ExperienceCommentsSheet, { open: Boolean(commentsExperienceId), experienceId: commentsExperienceId, comments: props.comments, commentCount: (_h = (_g = props.commentsCount) !== null && _g !== void 0 ? _g : commentsTarget === null || commentsTarget === void 0 ? void 0 : commentsTarget.commentCount) !== null && _h !== void 0 ? _h : undefined, isLoading: props.commentsLoading, isFetchingMore: props.commentsFetchingMore, hasMore: props.commentsHasMore, isSubmitting: props.commentsSubmitting, error: props.commentsError, composerDisabled: props.commentsComposerDisabled, onClose: closeComments, onLoadMore: props.onLoadMoreComments, onLoadMoreReplies: props.onLoadMoreReplies, onSubmitComment: props.onSubmitComment, onToggleLike: props.onToggleCommentLike, onRetry: props.onRetryComments, onAuthorClick: props.onOpenPerson, viewerUserId: viewerUserId, onEditComment: props.onEditComment, onDeleteComment: props.onDeleteComment }),
178980
+ React__default.createElement(BlockDialog, { open: Boolean(props.blockOpen), displayName: props.profile.displayName || props.profile.username || undefined, onClose: (_j = props.onBlockClose) !== null && _j !== void 0 ? _j : (() => undefined), onConfirm: (_k = props.onBlockConfirm) !== null && _k !== void 0 ? _k : (() => undefined) }))) : (React__default.createElement(Box$1, { sx: { pt: 2 } },
178778
178981
  props.onBack ? (React__default.createElement(Typography$1, { component: "button", onClick: props.onBack, sx: {
178779
178982
  display: "block",
178780
178983
  mx: 2,
@@ -179534,7 +179737,7 @@ const SocialDiscoverPage = (props) => {
179534
179737
  const renderMixed = (experienceItems, questionItems, peopleItems, sectioned) => (React__default.createElement(Box$1, null,
179535
179738
  experienceItems.length > 0 ? (React__default.createElement(Box$1, null,
179536
179739
  sectioned ? (React__default.createElement(Typography$1, { component: "h2", sx: sectionTitleSx$1 }, "Experi\u00EAncias")) : null,
179537
- experienceItems.map((experience) => (React__default.createElement(ExperienceCard, { key: experience.id, experience: experience, onOpen: props.onOpenExperience, compact: true }))),
179740
+ experienceItems.map((experience) => (React__default.createElement(ExperienceCard, { key: experience.id, experience: experience, viewerUserId: props.viewerUserId, onOpen: props.onOpenExperience, onEdit: props.onEditExperience, onDelete: props.onDeleteExperience, compact: true }))),
179538
179741
  sectioned ? (React__default.createElement(DiscoverSeeMoreRow, { label: "Ver mais experi\u00EAncias", onSeeMore: () => goToTab("experiences") })) : null)) : null,
179539
179742
  questionItems.length > 0 ? (React__default.createElement(Box$1, null,
179540
179743
  sectioned ? (React__default.createElement(Typography$1, { component: "h2", sx: sectionTitleSx$1 }, "Perguntas")) : null,
@@ -179568,7 +179771,7 @@ const SocialDiscoverPage = (props) => {
179568
179771
  return (React__default.createElement(SocialErrorState, { message: props.error, onRetry: props.onRetry }));
179569
179772
  }
179570
179773
  if (tab === "experiences" && experiences.length > 0) {
179571
- return (React__default.createElement(Box$1, null, experiences.map((experience) => (React__default.createElement(ExperienceCard, { key: experience.id, experience: experience, onOpen: props.onOpenExperience, compact: true })))));
179774
+ return (React__default.createElement(Box$1, null, experiences.map((experience) => (React__default.createElement(ExperienceCard, { key: experience.id, experience: experience, viewerUserId: props.viewerUserId, onOpen: props.onOpenExperience, onEdit: props.onEditExperience, onDelete: props.onDeleteExperience, compact: true })))));
179572
179775
  }
179573
179776
  if (tab === "questions" && questions.length > 0) {
179574
179777
  return (React__default.createElement(Box$1, null, questions.map((question) => (React__default.createElement(QuestionCard, { key: question.id, question: question, onOpen: props.onOpenQuestion, onOpenAnswers: props.onOpenQuestionAnswers, onBookmark: props.onBookmarkQuestion, onShare: props.onShareQuestion, onReactionToggle: props.onReactionToggleQuestion, onAuthorClick: props.onOpenPerson })))));
@@ -179748,12 +179951,12 @@ const SocialSavedPage = (props) => {
179748
179951
  showExperiences && experiences.length > 0 ? (React__default.createElement(InfiniteScroll, { hasNextPage: Boolean(props.hasNextPage), isFetchingNextPage: Boolean(props.isFetchingNextPage), onLoadMore: (_d = props.onLoadMore) !== null && _d !== void 0 ? _d : (() => undefined) },
179749
179952
  React__default.createElement(Box$1, { sx: { border: "none" } },
179750
179953
  tab === "all" ? (React__default.createElement(Typography$1, { sx: sectionTitleSx }, "Experi\u00EAncias")) : null,
179751
- experiences.map((experience) => (React__default.createElement(ExperienceCard, { key: experience.id, experience: experience, viewerUserId: props.viewerUserId, onOpen: props.onOpenExperience, onAlsoExperienced: props.onAlsoExperienced, onReactionToggle: props.onReactionToggle, onShare: props.onShareExperience, onComment: openComments, onBookmark: props.onBookmarkExperience, onAuthorClick: props.onOpenPerson, alsoExperiencedLoading: props.alsoExperiencedLoadingId === experience.id })))))) : null,
179954
+ experiences.map((experience) => (React__default.createElement(ExperienceCard, { key: experience.id, experience: experience, viewerUserId: props.viewerUserId, onOpen: props.onOpenExperience, onAlsoExperienced: props.onAlsoExperienced, onReactionToggle: props.onReactionToggle, onShare: props.onShareExperience, onEdit: props.onEditExperience, onDelete: props.onDeleteExperience, onComment: openComments, onBookmark: props.onBookmarkExperience, onAuthorClick: props.onOpenPerson, alsoExperiencedLoading: props.alsoExperiencedLoadingId === experience.id })))))) : null,
179752
179955
  showQuestions && questions.length > 0 ? (React__default.createElement(InfiniteScroll, { hasNextPage: Boolean(props.questionsHasNextPage), isFetchingNextPage: Boolean(props.questionsFetchingNextPage), onLoadMore: (_e = props.onLoadMoreQuestions) !== null && _e !== void 0 ? _e : (() => undefined) },
179753
179956
  React__default.createElement(Box$1, { sx: { border: "none" } },
179754
179957
  tab === "all" ? (React__default.createElement(Typography$1, { sx: sectionTitleSx }, "Perguntas")) : null,
179755
179958
  questions.map((question) => (React__default.createElement(QuestionCard, { key: question.id, question: question, viewerUserId: props.viewerUserId, onOpen: openAnswers, onOpenAnswers: openAnswers, onBookmark: props.onBookmarkQuestion, onShare: props.onShareQuestion, onReactionToggle: props.onReactionToggleQuestion, onAuthorClick: props.onOpenPerson })))))) : null)),
179756
- React__default.createElement(ExperienceCommentsSheet, { open: Boolean(commentsExperienceId), experienceId: commentsExperienceId, comments: props.comments, commentCount: (_g = (_f = props.commentsCount) !== null && _f !== void 0 ? _f : commentsTarget === null || commentsTarget === void 0 ? void 0 : commentsTarget.commentCount) !== null && _g !== void 0 ? _g : undefined, isLoading: props.commentsLoading, isFetchingMore: props.commentsFetchingMore, hasMore: props.commentsHasMore, isSubmitting: props.commentsSubmitting, error: props.commentsError, composerDisabled: false, onClose: closeComments, onLoadMore: props.onLoadMoreComments, onLoadMoreReplies: props.onLoadMoreReplies, onSubmitComment: props.onSubmitComment, onToggleLike: props.onToggleCommentLike, onRetry: props.onRetryComments, onAuthorClick: props.onOpenPerson }),
179959
+ React__default.createElement(ExperienceCommentsSheet, { open: Boolean(commentsExperienceId), experienceId: commentsExperienceId, comments: props.comments, commentCount: (_g = (_f = props.commentsCount) !== null && _f !== void 0 ? _f : commentsTarget === null || commentsTarget === void 0 ? void 0 : commentsTarget.commentCount) !== null && _g !== void 0 ? _g : undefined, isLoading: props.commentsLoading, isFetchingMore: props.commentsFetchingMore, hasMore: props.commentsHasMore, isSubmitting: props.commentsSubmitting, error: props.commentsError, composerDisabled: false, onClose: closeComments, onLoadMore: props.onLoadMoreComments, onLoadMoreReplies: props.onLoadMoreReplies, onSubmitComment: props.onSubmitComment, onToggleLike: props.onToggleCommentLike, viewerUserId: props.viewerUserId, onEditComment: props.onEditComment, onDeleteComment: props.onDeleteComment, onRetry: props.onRetryComments, onAuthorClick: props.onOpenPerson }),
179757
179960
  React__default.createElement(QuestionAnswersSheet, { open: Boolean(answersQuestionId), questionId: answersQuestionId, questionTitle: answersTarget === null || answersTarget === void 0 ? void 0 : answersTarget.title, answers: props.answers, answerCount: (_j = (_h = props.answersCount) !== null && _h !== void 0 ? _h : answersTarget === null || answersTarget === void 0 ? void 0 : answersTarget.answerCount) !== null && _j !== void 0 ? _j : undefined, isLoading: props.answersLoading, isSubmitting: props.answersSubmitting, error: props.answersError, onClose: closeAnswers, onRetry: props.onRetryAnswers, onSubmitAnswer: props.onSubmitAnswer, onAuthorClick: props.onOpenPerson })));
179758
179961
  };
179759
179962
 
@@ -181215,6 +181418,733 @@ const QrLandingPagePropsSchema = objectType({
181215
181418
  .optional(),
181216
181419
  });
181217
181420
 
181421
+ const GOOGLE_SEARCH_PLACEHOLDER = "Digite o endereço para buscar no Google";
181422
+ const MIN_SEARCH_LENGTH = 3;
181423
+ const TerreiroLocationSearch = ({ apiKey, onSelect, onUnavailable, }) => {
181424
+ const theme = useTheme$1();
181425
+ const onUnavailableRef = useRef(onUnavailable);
181426
+ const onSelectRef = useRef(onSelect);
181427
+ onUnavailableRef.current = onUnavailable;
181428
+ onSelectRef.current = onSelect;
181429
+ const servicesRef = useRef({});
181430
+ const [ready, setReady] = useState(false);
181431
+ const [loading, setLoading] = useState(false);
181432
+ const [inputValue, setInputValue] = useState("");
181433
+ const [suggestions, setSuggestions] = useState([]);
181434
+ const [error, setError] = useState(null);
181435
+ useEffect(() => {
181436
+ let cancelled = false;
181437
+ loadGoogleMapsPlacesScript(apiKey, "pt-BR", "BR")
181438
+ .then(() => {
181439
+ var _a, _b;
181440
+ if (cancelled)
181441
+ return;
181442
+ const places = (_b = (_a = window.google) === null || _a === void 0 ? void 0 : _a.maps) === null || _b === void 0 ? void 0 : _b.places;
181443
+ if (!(places === null || places === void 0 ? void 0 : places.AutocompleteService) || !(places === null || places === void 0 ? void 0 : places.PlacesService)) {
181444
+ onUnavailableRef.current();
181445
+ return;
181446
+ }
181447
+ servicesRef.current.autocompleteService = new places.AutocompleteService();
181448
+ const container = document.createElement("div");
181449
+ servicesRef.current.placesService = new places.PlacesService(container);
181450
+ setReady(true);
181451
+ })
181452
+ .catch(() => {
181453
+ if (!cancelled)
181454
+ onUnavailableRef.current();
181455
+ });
181456
+ return () => {
181457
+ cancelled = true;
181458
+ };
181459
+ }, [apiKey]);
181460
+ const search = (value) => {
181461
+ var _a, _b;
181462
+ const autocomplete = servicesRef.current.autocompleteService;
181463
+ const places = (_b = (_a = window.google) === null || _a === void 0 ? void 0 : _a.maps) === null || _b === void 0 ? void 0 : _b.places;
181464
+ if (!autocomplete || !places)
181465
+ return;
181466
+ if (value.trim().length < MIN_SEARCH_LENGTH) {
181467
+ setSuggestions([]);
181468
+ setError(null);
181469
+ return;
181470
+ }
181471
+ setLoading(true);
181472
+ setError(null);
181473
+ autocomplete.getPlacePredictions({
181474
+ input: value,
181475
+ componentRestrictions: { country: "br" },
181476
+ types: ["address"],
181477
+ }, (predictions, status) => {
181478
+ setLoading(false);
181479
+ if (status !== places.PlacesServiceStatus.OK) {
181480
+ setSuggestions([]);
181481
+ if (status !== places.PlacesServiceStatus.ZERO_RESULTS) {
181482
+ setError("Não foi possível buscar endereços no Google");
181483
+ }
181484
+ return;
181485
+ }
181486
+ setSuggestions((predictions !== null && predictions !== void 0 ? predictions : []).map((prediction) => ({
181487
+ description: prediction.description,
181488
+ placeId: prediction.place_id,
181489
+ })));
181490
+ });
181491
+ };
181492
+ const selectSuggestion = (suggestion) => {
181493
+ var _a, _b;
181494
+ if (!suggestion)
181495
+ return;
181496
+ const placesService = servicesRef.current.placesService;
181497
+ const places = (_b = (_a = window.google) === null || _a === void 0 ? void 0 : _a.maps) === null || _b === void 0 ? void 0 : _b.places;
181498
+ if (!placesService || !places) {
181499
+ setError("Não foi possível carregar os detalhes do endereço");
181500
+ return;
181501
+ }
181502
+ setInputValue(suggestion.description);
181503
+ setLoading(true);
181504
+ setError(null);
181505
+ placesService.getDetails({
181506
+ placeId: suggestion.placeId,
181507
+ fields: ["address_components", "formatted_address"],
181508
+ }, (place, status) => {
181509
+ var _a;
181510
+ setLoading(false);
181511
+ if (status !== places.PlacesServiceStatus.OK || !place) {
181512
+ setError("Não foi possível obter detalhes do endereço");
181513
+ return;
181514
+ }
181515
+ const mapped = mapGooglePlaceToAddressForm({
181516
+ address_components: place.address_components,
181517
+ formatted_address: place.formatted_address,
181518
+ });
181519
+ if (!mapped.city) {
181520
+ setError("Não foi possível identificar a cidade deste endereço");
181521
+ return;
181522
+ }
181523
+ onSelectRef.current(mapped.city, (_a = mapped.state) !== null && _a !== void 0 ? _a : "");
181524
+ });
181525
+ };
181526
+ if (!ready)
181527
+ return null;
181528
+ return (React__default.createElement(Autocomplete$1, { options: suggestions, getOptionLabel: (option) => option.description, filterOptions: (options) => options, loading: loading, inputValue: inputValue, onInputChange: (_, value, reason) => {
181529
+ if (reason !== "input" && reason !== "clear")
181530
+ return;
181531
+ setInputValue(value);
181532
+ search(value);
181533
+ }, onChange: (_, value) => selectSuggestion(value), isOptionEqualToValue: (option, value) => option.placeId === value.placeId, noOptionsText: error !== null && error !== void 0 ? error : (inputValue.trim().length >= MIN_SEARCH_LENGTH
181534
+ ? "Nenhum endereço encontrado para esta busca."
181535
+ : "Digite ao menos 3 caracteres"), renderInput: (params) => (React__default.createElement(TextField$1, Object.assign({}, params, { label: "Buscar endere\u00E7o", placeholder: GOOGLE_SEARCH_PLACEHOLDER, fullWidth: true, error: Boolean(error), helperText: error !== null && error !== void 0 ? error : undefined, inputProps: Object.assign(Object.assign({}, params.inputProps), { "data-testid": "terreiro-search-address" }), sx: {
181536
+ "& .MuiInputBase-input": { color: "text.primary" },
181537
+ "& .MuiInputBase-input::placeholder": { color: "text.secondary", opacity: 1 },
181538
+ }, InputProps: Object.assign(Object.assign({}, params.InputProps), { startAdornment: (React__default.createElement(InputAdornment$1, { position: "start" },
181539
+ React__default.createElement(LocationOn, { sx: { color: theme.palette.text.secondary } }))), endAdornment: (React__default.createElement(React__default.Fragment, null,
181540
+ loading ? React__default.createElement(CircularProgress$1, { size: 20 }) : null,
181541
+ params.InputProps.endAdornment)) }) }))) }));
181542
+ };
181543
+
181544
+ const BRAZIL_CENTER = { lat: -14.2, lng: -51.9 };
181545
+ const BRAZIL_ZOOM = 4;
181546
+ const SINGLE_RESULT_ZOOM = 15;
181547
+ const USER_LOCATION_ZOOM = 13;
181548
+ const PIN_ORANGE = "#BA4813";
181549
+ const PIN_COAL = "#201C10";
181550
+ const PIN_CREAM = "#F3E2B3";
181551
+ const mapColorScheme = (mode) => {
181552
+ var _a, _b;
181553
+ const scheme = (_b = (_a = window.google) === null || _a === void 0 ? void 0 : _a.maps) === null || _b === void 0 ? void 0 : _b.ColorScheme;
181554
+ if (!scheme)
181555
+ return undefined;
181556
+ if (scheme.FOLLOW_SYSTEM)
181557
+ return scheme.FOLLOW_SYSTEM;
181558
+ return mode === "dark" ? scheme.DARK : scheme.LIGHT;
181559
+ };
181560
+ const finitePlaces = (results) => (results !== null && results !== void 0 ? results : []).filter((place) => Number.isFinite(place.latitude) && Number.isFinite(place.longitude));
181561
+ const pinIcon = (selected, mode) => {
181562
+ var _a, _b, _c;
181563
+ const maps = (_a = window.google) === null || _a === void 0 ? void 0 : _a.maps;
181564
+ const idleFill = mode === "dark" ? PIN_CREAM : PIN_COAL;
181565
+ const idleStroke = mode === "dark" ? PIN_COAL : PIN_CREAM;
181566
+ return {
181567
+ path: (_c = (_b = maps === null || maps === void 0 ? void 0 : maps.SymbolPath) === null || _b === void 0 ? void 0 : _b.CIRCLE) !== null && _c !== void 0 ? _c : 0,
181568
+ scale: selected ? 11 : 8,
181569
+ fillColor: selected ? PIN_ORANGE : idleFill,
181570
+ fillOpacity: 1,
181571
+ strokeColor: selected ? PIN_CREAM : idleStroke,
181572
+ strokeWeight: 2,
181573
+ };
181574
+ };
181575
+ const TerreiroResultMap = ({ apiKey, results, selectedPlaceId, userCoordinates, layoutKey = null, onSelectPlace, }) => {
181576
+ var _a, _b;
181577
+ const theme = useTheme$1();
181578
+ const mode = theme.palette.mode;
181579
+ const modeRef = useRef(mode);
181580
+ modeRef.current = mode;
181581
+ const containerRef = useRef(null);
181582
+ const mapRef = useRef(null);
181583
+ const markersRef = useRef(new Map());
181584
+ const onSelectRef = useRef(onSelectPlace);
181585
+ const resultsRef = useRef(results);
181586
+ const userCoordinatesRef = useRef(userCoordinates);
181587
+ const selectedPlaceIdRef = useRef(selectedPlaceId);
181588
+ const [mapReady, setMapReady] = useState(false);
181589
+ const [mapFailed, setMapFailed] = useState(!(apiKey === null || apiKey === void 0 ? void 0 : apiKey.trim()));
181590
+ const [mapEpoch, setMapEpoch] = useState(0);
181591
+ onSelectRef.current = onSelectPlace;
181592
+ resultsRef.current = results;
181593
+ userCoordinatesRef.current = userCoordinates;
181594
+ selectedPlaceIdRef.current = selectedPlaceId;
181595
+ const trimmedKey = (_a = apiKey === null || apiKey === void 0 ? void 0 : apiKey.trim()) !== null && _a !== void 0 ? _a : "";
181596
+ const resultSignature = (_b = results === null || results === void 0 ? void 0 : results.map((place) => `${place.placeId}:${place.latitude}:${place.longitude}`).join("|")) !== null && _b !== void 0 ? _b : "";
181597
+ const userLocationKey = userCoordinates
181598
+ ? `${userCoordinates.latitude},${userCoordinates.longitude}`
181599
+ : "";
181600
+ useEffect(() => {
181601
+ if (!trimmedKey) {
181602
+ setMapFailed(true);
181603
+ setMapReady(false);
181604
+ return;
181605
+ }
181606
+ let cancelled = false;
181607
+ setMapFailed(false);
181608
+ loadGoogleMapsPlacesScript(trimmedKey, "pt-BR", "BR")
181609
+ .then(() => {
181610
+ var _a, _b, _c, _d;
181611
+ if (cancelled)
181612
+ return;
181613
+ if (!((_b = (_a = window.google) === null || _a === void 0 ? void 0 : _a.maps) === null || _b === void 0 ? void 0 : _b.Map) || !((_d = (_c = window.google) === null || _c === void 0 ? void 0 : _c.maps) === null || _d === void 0 ? void 0 : _d.Marker)) {
181614
+ setMapFailed(true);
181615
+ return;
181616
+ }
181617
+ setMapReady(true);
181618
+ })
181619
+ .catch(() => {
181620
+ if (!cancelled)
181621
+ setMapFailed(true);
181622
+ });
181623
+ return () => {
181624
+ cancelled = true;
181625
+ };
181626
+ }, [trimmedKey]);
181627
+ useEffect(() => {
181628
+ var _a, _b;
181629
+ if (!mapReady || !containerRef.current || !((_b = (_a = window.google) === null || _a === void 0 ? void 0 : _a.maps) === null || _b === void 0 ? void 0 : _b.Map))
181630
+ return;
181631
+ const colorScheme = mapColorScheme(modeRef.current);
181632
+ const map = new window.google.maps.Map(containerRef.current, Object.assign({ center: BRAZIL_CENTER, zoom: BRAZIL_ZOOM, disableDefaultUI: true, zoomControl: true, clickableIcons: false, gestureHandling: "greedy", mapTypeControl: false, streetViewControl: false, fullscreenControl: false }, (colorScheme ? { colorScheme } : {})));
181633
+ mapRef.current = map;
181634
+ setMapEpoch((epoch) => epoch + 1);
181635
+ return () => {
181636
+ markersRef.current.forEach((marker) => marker.setMap(null));
181637
+ markersRef.current.clear();
181638
+ mapRef.current = null;
181639
+ };
181640
+ }, [mapReady]);
181641
+ useEffect(() => {
181642
+ var _a;
181643
+ const map = mapRef.current;
181644
+ const maps = (_a = window.google) === null || _a === void 0 ? void 0 : _a.maps;
181645
+ if (!mapReady || !map || !(maps === null || maps === void 0 ? void 0 : maps.Marker))
181646
+ return;
181647
+ const places = finitePlaces(resultsRef.current);
181648
+ const nextIds = new Set(places.map((place) => place.placeId));
181649
+ markersRef.current.forEach((marker, id) => {
181650
+ if (!nextIds.has(id)) {
181651
+ marker.setMap(null);
181652
+ markersRef.current.delete(id);
181653
+ }
181654
+ });
181655
+ places.forEach((place) => {
181656
+ const position = { lat: place.latitude, lng: place.longitude };
181657
+ const existing = markersRef.current.get(place.placeId);
181658
+ if (existing) {
181659
+ existing.setPosition(position);
181660
+ return;
181661
+ }
181662
+ const marker = new maps.Marker({
181663
+ map,
181664
+ position,
181665
+ title: place.name,
181666
+ icon: pinIcon(place.placeId === selectedPlaceIdRef.current, modeRef.current),
181667
+ });
181668
+ marker.addListener("click", () => onSelectRef.current(place.placeId));
181669
+ markersRef.current.set(place.placeId, marker);
181670
+ });
181671
+ if (places.length === 1) {
181672
+ map.setCenter({ lat: places[0].latitude, lng: places[0].longitude });
181673
+ map.setZoom(SINGLE_RESULT_ZOOM);
181674
+ return;
181675
+ }
181676
+ if (places.length > 1) {
181677
+ const bounds = new maps.LatLngBounds();
181678
+ places.forEach((place) => {
181679
+ bounds.extend({ lat: place.latitude, lng: place.longitude });
181680
+ });
181681
+ map.fitBounds(bounds, 48);
181682
+ return;
181683
+ }
181684
+ const coords = userCoordinatesRef.current;
181685
+ if (coords && Number.isFinite(coords.latitude) && Number.isFinite(coords.longitude)) {
181686
+ map.setCenter({ lat: coords.latitude, lng: coords.longitude });
181687
+ map.setZoom(USER_LOCATION_ZOOM);
181688
+ return;
181689
+ }
181690
+ map.setCenter(BRAZIL_CENTER);
181691
+ map.setZoom(BRAZIL_ZOOM);
181692
+ }, [mapEpoch, mapReady, resultSignature, userLocationKey]);
181693
+ useEffect(() => {
181694
+ var _a;
181695
+ const map = mapRef.current;
181696
+ if (!mapReady || !map)
181697
+ return;
181698
+ const scheme = mapColorScheme(mode);
181699
+ if (scheme)
181700
+ (_a = map.setOptions) === null || _a === void 0 ? void 0 : _a.call(map, { colorScheme: scheme });
181701
+ markersRef.current.forEach((marker, id) => {
181702
+ marker.setIcon(pinIcon(id === selectedPlaceId, mode));
181703
+ });
181704
+ if (!selectedPlaceId)
181705
+ return;
181706
+ const place = finitePlaces(resultsRef.current).find((item) => item.placeId === selectedPlaceId);
181707
+ if (!place)
181708
+ return;
181709
+ map.panTo({ lat: place.latitude, lng: place.longitude });
181710
+ }, [mapEpoch, mapReady, mode, resultSignature, selectedPlaceId]);
181711
+ useEffect(() => {
181712
+ var _a, _b, _c, _d;
181713
+ const map = mapRef.current;
181714
+ if (!mapReady || !map || layoutKey === null)
181715
+ return;
181716
+ (_d = (_c = (_b = (_a = window.google) === null || _a === void 0 ? void 0 : _a.maps) === null || _b === void 0 ? void 0 : _b.event) === null || _c === void 0 ? void 0 : _c.trigger) === null || _d === void 0 ? void 0 : _d.call(_c, map, "resize");
181717
+ }, [layoutKey, mapEpoch, mapReady]);
181718
+ const showPlaceholder = !trimmedKey || mapFailed || !mapReady;
181719
+ return (React__default.createElement(Box$1, { sx: { position: "absolute", inset: 0 } },
181720
+ React__default.createElement(Box$1, { ref: containerRef, role: "region", "aria-label": "Mapa de terreiros", "data-testid": "terreiro-search-map", sx: { position: "absolute", inset: 0, bgcolor: "background.default" } }),
181721
+ showPlaceholder ? (React__default.createElement(Box$1, { "aria-hidden": true, "data-testid": "terreiro-search-map-placeholder", sx: {
181722
+ position: "absolute",
181723
+ inset: 0,
181724
+ bgcolor: "background.default",
181725
+ zIndex: 1,
181726
+ } })) : null));
181727
+ };
181728
+
181729
+ const TRADITIONS = ["Umbanda", "Candomblé", "Omolocô", "Quimbanda"];
181730
+ const statusLabel = (status) => {
181731
+ if (status === "CLOSED_PERMANENTLY")
181732
+ return "Fechado permanentemente";
181733
+ if (status === "CLOSED_TEMPORARILY")
181734
+ return "Fechado temporariamente";
181735
+ return null;
181736
+ };
181737
+ const traditionPressed = (query, tradition) => query.trim().localeCompare(tradition, "pt-BR", { sensitivity: "accent" }) === 0;
181738
+ const floatingControlShadow = "0 4px 16px rgba(32, 28, 16, 0.12)";
181739
+ const PEEK_HEIGHT = 72;
181740
+ const TOP_CLEARANCE = 120;
181741
+ const DRAG_SLOP = 5;
181742
+ const maxSheetHeight = () => {
181743
+ const viewport = typeof window === "undefined" ? 800 : window.innerHeight;
181744
+ return Math.max(PEEK_HEIGHT, viewport - TOP_CLEARANCE);
181745
+ };
181746
+ const defaultOpenHeight = () => {
181747
+ const viewport = typeof window === "undefined" ? 800 : window.innerHeight;
181748
+ return Math.round(Math.min(Math.max(viewport * 0.4, PEEK_HEIGHT), maxSheetHeight()));
181749
+ };
181750
+ const focusRing = {
181751
+ "&:focus-visible": {
181752
+ outline: "2px solid",
181753
+ outlineColor: "primary.main",
181754
+ outlineOffset: 2,
181755
+ },
181756
+ };
181757
+ const ResultRow = ({ place, selected, onSelect, onOpenMaps }) => {
181758
+ const closedLabel = statusLabel(place.businessStatus);
181759
+ return (React__default.createElement(Box$1, { component: "li", "data-testid": `terreiro-search-result-${place.placeId}`, sx: {
181760
+ display: "flex",
181761
+ alignItems: "center",
181762
+ gap: 0.5,
181763
+ minHeight: 56,
181764
+ listStyle: "none",
181765
+ } },
181766
+ React__default.createElement(Box$1, { component: "button", type: "button", "aria-pressed": selected, onClick: () => onSelect(place.placeId), sx: Object.assign({ flex: 1, minWidth: 0, minHeight: 56, display: "flex", alignItems: "center", gap: 1.5, py: 1, px: 0, border: 0, background: "transparent", textAlign: "left", cursor: "pointer", color: "inherit" }, focusRing) },
181767
+ React__default.createElement(Box$1, { "aria-hidden": true, sx: {
181768
+ width: 40,
181769
+ height: 40,
181770
+ borderRadius: "50%",
181771
+ display: "grid",
181772
+ placeItems: "center",
181773
+ flexShrink: 0,
181774
+ bgcolor: (theme) => alpha(selected ? theme.palette.primary.main : theme.palette.text.primary, 0.12),
181775
+ color: selected ? "primary.main" : "text.primary",
181776
+ } },
181777
+ React__default.createElement(PlaceOutlined, { fontSize: "small" })),
181778
+ React__default.createElement(Box$1, { sx: { minWidth: 0 } },
181779
+ React__default.createElement(Typography$1, { sx: {
181780
+ fontWeight: 700,
181781
+ fontSize: 16,
181782
+ color: selected ? "primary.main" : "text.primary",
181783
+ } }, place.name),
181784
+ React__default.createElement(Typography$1, { sx: { fontSize: 13, color: "text.secondary" } }, place.formattedAddress),
181785
+ closedLabel ? (React__default.createElement(Typography$1, { sx: { fontSize: 12, color: "text.secondary" } }, closedLabel)) : null)),
181786
+ React__default.createElement(Link$1, { href: place.googleMapsUrl, target: "_blank", rel: "noopener noreferrer", "aria-label": "Ver no Google Maps", "data-testid": `terreiro-search-maps-${place.placeId}`, onClick: () => onOpenMaps(place), sx: Object.assign({ width: 44, height: 44, display: "inline-flex", alignItems: "center", justifyContent: "center", flexShrink: 0, color: "text.primary", borderRadius: "50%" }, focusRing) },
181787
+ React__default.createElement(DirectionsOutlined, null))));
181788
+ };
181789
+ const NearbyTerreiroSearchPage = ({ query, onQueryChange, city, onCityChange, state, onStateChange, locationMode, geolocationNotice, isLocating = false, isLoading = false, isLoadingMore = false, results, errorMessage, hasMore = false, onSearch, onUseMyLocation, onRetry, onLoadMore, onOpenMaps, onBack, googleMapsApiKey, userCoordinates, }) => {
181790
+ const theme = useTheme$1();
181791
+ const isWide = useMediaQuery(theme.breakpoints.up("sm"));
181792
+ const [locationOpen, setLocationOpen] = useState(false);
181793
+ const [addressSearchUnavailable, setAddressSearchUnavailable] = useState(false);
181794
+ const [selectedPlaceId, setSelectedPlaceId] = useState(null);
181795
+ const [sheetHeight, setSheetHeight] = useState(null);
181796
+ const hasSheetContent = isLoading || Boolean(errorMessage) || results !== null;
181797
+ const listVisible = Boolean(results && results.length > 0);
181798
+ const previousMode = useRef(locationMode);
181799
+ const lastOpenHeight = useRef(defaultOpenHeight());
181800
+ const dragOrigin = useRef(null);
181801
+ const dragMoved = useRef(false);
181802
+ const resolvedSheetHeight = sheetHeight !== null && sheetHeight !== void 0 ? sheetHeight : defaultOpenHeight();
181803
+ const sheetOpen = resolvedSheetHeight > PEEK_HEIGHT + DRAG_SLOP;
181804
+ useEffect(() => {
181805
+ if (!listVisible || sheetHeight !== null)
181806
+ return;
181807
+ const open = defaultOpenHeight();
181808
+ lastOpenHeight.current = open;
181809
+ setSheetHeight(open);
181810
+ }, [listVisible, sheetHeight]);
181811
+ const toggleSheet = () => {
181812
+ setSheetHeight((current) => {
181813
+ const height = current !== null && current !== void 0 ? current : defaultOpenHeight();
181814
+ if (height <= PEEK_HEIGHT + DRAG_SLOP) {
181815
+ const open = lastOpenHeight.current > PEEK_HEIGHT + DRAG_SLOP
181816
+ ? lastOpenHeight.current
181817
+ : defaultOpenHeight();
181818
+ return Math.min(open, maxSheetHeight());
181819
+ }
181820
+ lastOpenHeight.current = height;
181821
+ return PEEK_HEIGHT;
181822
+ });
181823
+ };
181824
+ const onHandlePointerDown = (event) => {
181825
+ if (!listVisible)
181826
+ return;
181827
+ dragMoved.current = false;
181828
+ dragOrigin.current = {
181829
+ y: event.clientY,
181830
+ height: sheetHeight !== null && sheetHeight !== void 0 ? sheetHeight : defaultOpenHeight(),
181831
+ };
181832
+ if (event.currentTarget.setPointerCapture && Number.isFinite(event.pointerId)) {
181833
+ event.currentTarget.setPointerCapture(event.pointerId);
181834
+ }
181835
+ };
181836
+ const onHandlePointerMove = (event) => {
181837
+ const origin = dragOrigin.current;
181838
+ if (!origin)
181839
+ return;
181840
+ if (Math.abs(origin.y - event.clientY) > DRAG_SLOP)
181841
+ dragMoved.current = true;
181842
+ if (!dragMoved.current)
181843
+ return;
181844
+ const next = Math.min(maxSheetHeight(), Math.max(PEEK_HEIGHT, origin.height + (origin.y - event.clientY)));
181845
+ setSheetHeight(next);
181846
+ };
181847
+ const onHandlePointerUp = (event) => {
181848
+ if (!dragOrigin.current)
181849
+ return;
181850
+ dragOrigin.current = null;
181851
+ if (event.currentTarget.hasPointerCapture &&
181852
+ Number.isFinite(event.pointerId) &&
181853
+ event.currentTarget.hasPointerCapture(event.pointerId)) {
181854
+ event.currentTarget.releasePointerCapture(event.pointerId);
181855
+ }
181856
+ if (!dragMoved.current)
181857
+ return;
181858
+ setSheetHeight((current) => {
181859
+ if (current !== null && current > PEEK_HEIGHT + DRAG_SLOP) {
181860
+ lastOpenHeight.current = current;
181861
+ }
181862
+ return current;
181863
+ });
181864
+ };
181865
+ const onHandleClick = () => {
181866
+ if (!listVisible)
181867
+ return;
181868
+ if (dragMoved.current) {
181869
+ dragMoved.current = false;
181870
+ return;
181871
+ }
181872
+ toggleSheet();
181873
+ };
181874
+ const trimmedQuery = query.trim();
181875
+ const locationReady = locationMode === "geolocation" || city.trim().length >= 2;
181876
+ const canSearch = trimmedQuery.length >= 3 &&
181877
+ trimmedQuery.length <= 80 &&
181878
+ locationReady &&
181879
+ !isLoading &&
181880
+ !isLocating;
181881
+ useEffect(() => {
181882
+ if (previousMode.current !== "geolocation" && locationMode === "geolocation") {
181883
+ setLocationOpen(false);
181884
+ }
181885
+ previousMode.current = locationMode;
181886
+ }, [locationMode]);
181887
+ useEffect(() => {
181888
+ if (!selectedPlaceId)
181889
+ return;
181890
+ if (!(results === null || results === void 0 ? void 0 : results.some((place) => place.placeId === selectedPlaceId))) {
181891
+ setSelectedPlaceId(null);
181892
+ }
181893
+ }, [results, selectedPlaceId]);
181894
+ useEffect(() => {
181895
+ if (!selectedPlaceId || !listVisible)
181896
+ return;
181897
+ setSheetHeight((current) => {
181898
+ const height = current !== null && current !== void 0 ? current : defaultOpenHeight();
181899
+ if (height > PEEK_HEIGHT + DRAG_SLOP)
181900
+ return current;
181901
+ const open = lastOpenHeight.current > PEEK_HEIGHT + DRAG_SLOP
181902
+ ? lastOpenHeight.current
181903
+ : defaultOpenHeight();
181904
+ return Math.min(open, maxSheetHeight());
181905
+ });
181906
+ let innerFrame = 0;
181907
+ const outerFrame = requestAnimationFrame(() => {
181908
+ innerFrame = requestAnimationFrame(() => {
181909
+ var _a;
181910
+ const row = (_a = document
181911
+ .getElementById("terreiro-search-sheet-body")) === null || _a === void 0 ? void 0 : _a.querySelector(`[data-testid="terreiro-search-result-${CSS.escape(selectedPlaceId)}"]`);
181912
+ if (row instanceof HTMLElement) {
181913
+ row.scrollIntoView({ block: "nearest" });
181914
+ }
181915
+ });
181916
+ });
181917
+ return () => {
181918
+ cancelAnimationFrame(outerFrame);
181919
+ cancelAnimationFrame(innerFrame);
181920
+ };
181921
+ }, [listVisible, selectedPlaceId]);
181922
+ const locationLabel = locationMode === "geolocation"
181923
+ ? "Perto de mim"
181924
+ : city.trim()
181925
+ ? state.trim()
181926
+ ? `${city.trim()}, ${state.trim()}`
181927
+ : city.trim()
181928
+ : "Escolher cidade";
181929
+ const peekLabel = (() => {
181930
+ if (isLoading)
181931
+ return "Buscando terreiros...";
181932
+ if (errorMessage)
181933
+ return "Não foi possível buscar";
181934
+ if (results && results.length === 1)
181935
+ return "1 terreiro";
181936
+ if (results && results.length > 1)
181937
+ return `${results.length} terreiros`;
181938
+ if (results && results.length === 0)
181939
+ return "Nenhum terreiro";
181940
+ return "Busque para ver terreiros na região";
181941
+ })();
181942
+ const submitTradition = (tradition) => {
181943
+ onQueryChange(tradition);
181944
+ if (locationReady && !isLoading && !isLocating)
181945
+ onSearch(tradition);
181946
+ };
181947
+ const notice = geolocationNotice ? (React__default.createElement(Typography$1, { role: "status", variant: "body2", "data-testid": "terreiro-search-geo-notice", sx: {
181948
+ alignSelf: "flex-start",
181949
+ maxWidth: "100%",
181950
+ bgcolor: "background.paper",
181951
+ color: "text.secondary",
181952
+ borderRadius: 2,
181953
+ px: 1.5,
181954
+ py: 1,
181955
+ fontSize: 13,
181956
+ boxShadow: floatingControlShadow,
181957
+ } }, geolocationNotice)) : null;
181958
+ return (React__default.createElement(Box$1, { sx: {
181959
+ position: "relative",
181960
+ height: "100dvh",
181961
+ display: "flex",
181962
+ overflow: "hidden",
181963
+ bgcolor: "background.default",
181964
+ } },
181965
+ React__default.createElement(Box$1, { component: "section", "aria-label": "Resultados", "data-testid": "terreiro-search-sheet", style: listVisible ? { height: resolvedSheetHeight } : undefined, sx: {
181966
+ position: listVisible ? "absolute" : { xs: "absolute", sm: "relative" },
181967
+ left: 0,
181968
+ right: { xs: 0, sm: "auto" },
181969
+ bottom: 0,
181970
+ zIndex: 2,
181971
+ display: "flex",
181972
+ flexDirection: "column",
181973
+ width: { xs: "100%", sm: 400 },
181974
+ maxWidth: { sm: 400 },
181975
+ flexShrink: 0,
181976
+ height: listVisible ? undefined : { sm: "100%" },
181977
+ maxHeight: listVisible ? `calc(100dvh - ${TOP_CLEARANCE}px)` : "none",
181978
+ bgcolor: "background.paper",
181979
+ borderTopLeftRadius: listVisible || !isWide ? "20px" : 0,
181980
+ borderTopRightRadius: listVisible || !isWide ? "20px" : 0,
181981
+ borderRight: listVisible ? 0 : { sm: 1 },
181982
+ borderColor: "divider",
181983
+ boxShadow: listVisible || !isWide ? "0 -8px 24px rgba(32, 28, 16, 0.08)" : "none",
181984
+ } },
181985
+ listVisible ? (React__default.createElement(Box$1, { component: "button", type: "button", "aria-expanded": sheetOpen, "aria-controls": "terreiro-search-sheet-body", "data-testid": "terreiro-search-sheet-handle", onPointerDown: onHandlePointerDown, onPointerMove: onHandlePointerMove, onPointerUp: onHandlePointerUp, onClick: onHandleClick, sx: Object.assign({ width: "100%", border: 0, bgcolor: "transparent", cursor: "ns-resize", touchAction: "none", display: "flex", flexDirection: "column", alignItems: "center", gap: 0.75, pt: 1, pb: 1, px: 2, minHeight: 44, color: "text.primary" }, focusRing) },
181986
+ React__default.createElement(Box$1, { "aria-hidden": true, sx: {
181987
+ width: 36,
181988
+ height: 4,
181989
+ borderRadius: RADIUS.pill,
181990
+ bgcolor: (muiTheme) => alpha(muiTheme.palette.text.primary, 0.28),
181991
+ } }),
181992
+ React__default.createElement(Box$1, { component: "span", sx: { alignSelf: "flex-start", fontSize: 16, fontWeight: 800 } }, peekLabel))) : isWide ? (React__default.createElement(Typography$1, { sx: { px: 2, pt: 2, pb: 1, fontSize: 16, fontWeight: 800 } }, peekLabel)) : (React__default.createElement(Box$1, { sx: {
181993
+ width: "100%",
181994
+ display: "flex",
181995
+ flexDirection: "column",
181996
+ alignItems: "center",
181997
+ gap: 0.75,
181998
+ pt: 1,
181999
+ pb: 1,
182000
+ px: 2,
182001
+ minHeight: 44,
182002
+ color: "text.primary",
182003
+ } },
182004
+ React__default.createElement(Box$1, { "aria-hidden": true, sx: {
182005
+ width: 36,
182006
+ height: 4,
182007
+ borderRadius: RADIUS.pill,
182008
+ bgcolor: (muiTheme) => alpha(muiTheme.palette.text.primary, 0.28),
182009
+ } }),
182010
+ React__default.createElement(Box$1, { component: "span", sx: { alignSelf: "flex-start", fontSize: 16, fontWeight: 800 } }, peekLabel))),
182011
+ React__default.createElement(Box$1, { id: "terreiro-search-sheet-body", sx: {
182012
+ display: hasSheetContent ? "flex" : "none",
182013
+ flexDirection: "column",
182014
+ flex: 1,
182015
+ minHeight: 0,
182016
+ overflowY: "auto",
182017
+ px: 2,
182018
+ pb: 2,
182019
+ } },
182020
+ isLoading ? (React__default.createElement(Stack$1, { spacing: 1, "data-testid": "terreiro-search-loading" }, [0, 1, 2].map((item) => (React__default.createElement(Skeleton$1, { key: item, variant: "rectangular", height: 56 }))))) : null,
182021
+ !isLoading && errorMessage ? (React__default.createElement(Stack$1, { spacing: 1, "data-testid": "terreiro-search-error", role: "alert" },
182022
+ React__default.createElement(Typography$1, null, errorMessage),
182023
+ onRetry ? (React__default.createElement(Button$1, { type: "button", variant: "text", onClick: onRetry, "data-testid": "terreiro-search-retry", sx: {
182024
+ alignSelf: "flex-start",
182025
+ minHeight: 44,
182026
+ fontWeight: 700,
182027
+ color: "text.primary",
182028
+ } }, "Tentar de novo")) : null)) : null,
182029
+ !isLoading && !errorMessage && results && results.length === 0 ? (React__default.createElement(Stack$1, { spacing: 1, "data-testid": "terreiro-search-empty", sx: { py: 2 } },
182030
+ React__default.createElement(PlaceOutlined, { sx: { color: "text.primary" } }),
182031
+ React__default.createElement(Typography$1, { sx: { fontWeight: 700 } }, "Nenhum terreiro encontrado para esta busca na regi\u00E3o selecionada."),
182032
+ React__default.createElement(Typography$1, { sx: { fontSize: 13, color: "text.secondary" } }, "Ajuste o termo ou a cidade e busque de novo."))) : null,
182033
+ !isLoading && !errorMessage && results && results.length > 0 ? (React__default.createElement(Box$1, { component: "ul", sx: { m: 0, p: 0 } }, results.map((place) => (React__default.createElement(ResultRow, { key: place.placeId, place: place, selected: place.placeId === selectedPlaceId, onSelect: setSelectedPlaceId, onOpenMaps: onOpenMaps }))))) : null,
182034
+ !isLoading && !errorMessage && hasMore ? (React__default.createElement(Button$1, { type: "button", variant: "text", onClick: onLoadMore, disabled: isLoadingMore, "data-testid": "terreiro-search-load-more", sx: {
182035
+ alignSelf: "flex-start",
182036
+ mt: 0.5,
182037
+ minHeight: 44,
182038
+ fontWeight: 700,
182039
+ color: "text.primary",
182040
+ } }, isLoadingMore ? "Carregando..." : "Carregar mais")) : null)),
182041
+ React__default.createElement(Box$1, { sx: { position: "relative", flex: 1, minWidth: 0 } },
182042
+ React__default.createElement(TerreiroResultMap, { apiKey: googleMapsApiKey, results: results, selectedPlaceId: selectedPlaceId, userCoordinates: userCoordinates, layoutKey: listVisible ? resolvedSheetHeight : null, onSelectPlace: setSelectedPlaceId }),
182043
+ React__default.createElement(Box$1, { component: "form", onSubmit: (event) => {
182044
+ event.preventDefault();
182045
+ if (canSearch)
182046
+ onSearch(trimmedQuery);
182047
+ }, sx: {
182048
+ position: "absolute",
182049
+ top: 16,
182050
+ left: 16,
182051
+ right: 16,
182052
+ zIndex: 3,
182053
+ display: "flex",
182054
+ flexDirection: "column",
182055
+ gap: 1,
182056
+ } },
182057
+ React__default.createElement(Box$1, { sx: { display: "flex", alignItems: "center", gap: 1 } },
182058
+ onBack ? (React__default.createElement(IconButton$1, { type: "button", "aria-label": "Voltar", onClick: onBack, sx: Object.assign({ width: 44, height: 44, flexShrink: 0, bgcolor: "background.paper", color: "text.primary", boxShadow: floatingControlShadow, "&:hover": { bgcolor: "background.paper" } }, focusRing) },
182059
+ React__default.createElement(ArrowBack$1, null))) : null,
182060
+ React__default.createElement(Box$1, { sx: {
182061
+ flex: 1,
182062
+ minWidth: 0,
182063
+ display: "flex",
182064
+ alignItems: "center",
182065
+ minHeight: 44,
182066
+ pl: 2,
182067
+ pr: 0.5,
182068
+ bgcolor: "background.paper",
182069
+ borderRadius: RADIUS.pill,
182070
+ boxShadow: floatingControlShadow,
182071
+ } },
182072
+ React__default.createElement(InputBase$1, { value: query, onChange: (event) => onQueryChange(event.target.value), placeholder: "Umbanda, Candombl\u00E9...", fullWidth: true, inputProps: {
182073
+ "aria-label": "Tradição ou nome",
182074
+ maxLength: 80,
182075
+ "data-testid": "terreiro-search-query",
182076
+ }, sx: {
182077
+ fontSize: 16,
182078
+ color: "text.primary",
182079
+ "& input::placeholder": { color: "text.secondary", opacity: 1 },
182080
+ } }),
182081
+ query ? (React__default.createElement(IconButton$1, { type: "button", "aria-label": "Limpar busca", onClick: () => onQueryChange(""), sx: { width: 44, height: 44, flexShrink: 0, color: "text.primary" } },
182082
+ React__default.createElement(Close$1, null))) : null),
182083
+ React__default.createElement(IconButton$1, { type: "submit", "aria-label": "Buscar", disabled: !canSearch, "data-testid": "terreiro-search-submit", onClick: (event) => {
182084
+ event.preventDefault();
182085
+ if (canSearch)
182086
+ onSearch(trimmedQuery);
182087
+ }, sx: Object.assign({ width: 44, height: 44, flexShrink: 0, bgcolor: "primary.main", color: "primary.contrastText", boxShadow: floatingControlShadow, "&:hover": { bgcolor: "primary.dark" }, "&.Mui-disabled": {
182088
+ bgcolor: (muiTheme) => alpha(muiTheme.palette.primary.main, 0.38),
182089
+ color: "primary.contrastText",
182090
+ } }, focusRing) },
182091
+ React__default.createElement(Search$1, null))),
182092
+ React__default.createElement(Box$1, { role: "group", "aria-label": "Tradi\u00E7\u00F5es", sx: {
182093
+ display: "flex",
182094
+ gap: 1,
182095
+ overflowX: "auto",
182096
+ scrollbarWidth: "none",
182097
+ "&::-webkit-scrollbar": { display: "none" },
182098
+ } }, TRADITIONS.map((tradition) => {
182099
+ const pressed = traditionPressed(query, tradition);
182100
+ return (React__default.createElement(Button$1, { key: tradition, type: "button", variant: "outlined", "aria-pressed": pressed, onClick: () => submitTradition(tradition), sx: {
182101
+ flexShrink: 0,
182102
+ minHeight: 44,
182103
+ px: 2,
182104
+ borderRadius: RADIUS.pill,
182105
+ textTransform: "none",
182106
+ fontWeight: 600,
182107
+ bgcolor: "background.paper",
182108
+ borderColor: pressed ? "primary.main" : "divider",
182109
+ color: pressed ? "primary.main" : "text.primary",
182110
+ "&:hover": {
182111
+ bgcolor: "background.paper",
182112
+ borderColor: pressed ? "primary.main" : "divider",
182113
+ },
182114
+ } }, tradition));
182115
+ })),
182116
+ React__default.createElement(Button$1, { type: "button", variant: "outlined", "aria-expanded": locationOpen, "aria-haspopup": "dialog", onClick: () => setLocationOpen(true), startIcon: locationMode === "geolocation" ? React__default.createElement(MyLocation, null) : React__default.createElement(PlaceOutlined, null), sx: {
182117
+ alignSelf: "flex-start",
182118
+ minHeight: 44,
182119
+ maxWidth: "100%",
182120
+ borderRadius: RADIUS.pill,
182121
+ textTransform: "none",
182122
+ fontWeight: 600,
182123
+ bgcolor: "background.paper",
182124
+ borderColor: "divider",
182125
+ color: "text.primary",
182126
+ "&:hover": { bgcolor: "background.paper", borderColor: "divider" },
182127
+ } }, locationLabel),
182128
+ !locationOpen ? notice : null)),
182129
+ React__default.createElement(GenericDrawer, { open: locationOpen, onClose: () => setLocationOpen(false), "aria-label": "Local da busca" }, locationOpen ? (React__default.createElement(Stack$1, { spacing: 2, sx: { px: 2, pb: 3 } },
182130
+ React__default.createElement(Typography$1, { sx: { fontSize: 16, fontWeight: 800 } }, "Onde buscar"),
182131
+ (googleMapsApiKey === null || googleMapsApiKey === void 0 ? void 0 : googleMapsApiKey.trim()) && !addressSearchUnavailable ? (React__default.createElement(TerreiroLocationSearch, { apiKey: googleMapsApiKey.trim(), onUnavailable: () => setAddressSearchUnavailable(true), onSelect: (nextCity, nextState) => {
182132
+ onCityChange(nextCity);
182133
+ onStateChange(nextState);
182134
+ setLocationOpen(false);
182135
+ } })) : (React__default.createElement(Stack$1, { direction: "row", spacing: 1 },
182136
+ React__default.createElement(TextField$1, { label: "Cidade", value: city, onChange: (event) => onCityChange(event.target.value), inputProps: { "data-testid": "terreiro-search-city" }, fullWidth: true, sx: {
182137
+ "& .MuiInputBase-input": { color: "text.primary" },
182138
+ "& .MuiInputBase-input::placeholder": { color: "text.secondary", opacity: 1 },
182139
+ } }),
182140
+ React__default.createElement(TextField$1, { label: "UF", value: state, onChange: (event) => onStateChange(event.target.value.toUpperCase().slice(0, 2)), inputProps: { maxLength: 2, "data-testid": "terreiro-search-state" }, sx: {
182141
+ width: 88,
182142
+ "& .MuiInputBase-input": { color: "text.primary" },
182143
+ } }))),
182144
+ React__default.createElement(Button$1, { type: "button", variant: "text", onClick: onUseMyLocation, disabled: isLocating || isLoading, "data-testid": "terreiro-search-geolocation", sx: { alignSelf: "flex-start", minHeight: 44, fontWeight: 700, color: "text.primary" } }, isLocating ? "Buscando localização..." : "Usar minha localização"),
182145
+ notice)) : null)));
182146
+ };
182147
+
181218
182148
  /**
181219
182149
  * Convert the given array buffer into a Base64URL-encoded string. Ideal for converting various
181220
182150
  * credential response ArrayBuffers to string for sending back to the server as JSON.
@@ -194641,5 +195571,5 @@ var index_es = /*#__PURE__*/Object.freeze({
194641
195571
  vectorsRatio: vectorsRatio
194642
195572
  });
194643
195573
 
194644
- 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, SocialDiscoverPage, SocialEmptyState, SocialErrorState, SocialFeedItemSchema, SocialHomeBottomNav, SocialHomeCurrentUserSchema, SocialHomeHeader, SocialHomePage, SocialInboxPage, SocialMessageBubble, SocialMessageComposer, SocialMessageDeliveryStatusSchema, SocialMessageSchema, SocialNotificationsPage, SocialOnboardingIntro, SocialOnboardingPage, SocialOnboardingValuesSchema, SocialPrivacySettingsPage, SocialProfileFieldsSchema, SocialProfileSchema, SocialReadOnlyNotice, SocialReportReasonSchema, SocialSavedPage, SocialSkeleton, SocialUnreadIndicator, SocialUsernameSchema, SocialVerificationEarnedCelebration, SocialVerificationProgressSheet, SocialVisibilitySchema, SpiritualFormChatSummaryCard, SpiritualProfilePage, StreakInfoSchema, SubscriptionGuard, SubscriptionProvider, SubscriptionRequiredForMediumPage, SuggestionsCarousel, SupplyPlanBlockerSchema, SupplyPlanCostsSchema, SupplyPlanItemSchema, SupplyPlanMissionSchema, SupplyPlanPage, SupplyPlanPagePropsSchema, SupplyPlanReadinessSchema, SupplyPlanSchema, SupplyPlanSourceActivitySchema, SupplyPlanSourceEventSchema, SupplyPlanSummarySchema, SystemSettingsPage, TERREIRO_COMPLETION_MESSAGES, TERREIRO_ONBOARDING_FIELDS_BY_STEP, TERREIRO_SECTION_CONFIG, TERREIRO_SECTION_WEIGHTS, TOP_BAR_HEIGHTS, TYPOGRAPHY_SCALE, TerreiroFinancialInfoSchema, TerreiroOnboardingApiErrorSchema, TerreiroOnboardingFormStateSchema, TerreiroOnboardingValidationErrorsSchema, TerreiroPersonalInfoSchema, TerreiroPolicyPage, TerreiroPolicyPagePropsSchema, TerreiroProfileDataPage$1 as TerreiroProfileDataPage, TerreiroProfilePage, TerreiroReadonlyProfilePage, TerreiroRegistrationSchema, TerreiroRegistrationWithoutPasswordSchema, TerreiroSchema$2 as TerreiroSchema, TerreiroSearchPage, TerreiroSectionCard, TerreiroSectionCardPropsSchema, TerreiroStatusSchema, TerreiroStepValidationSchemas, TerreiroSubscriptionInfoSchema, ThemeButton, ThemeProvider, TicketVoucherPage, TicketingClaimFormChatSummaryCard, TraditionBadge, UnitCostMetaSchema, UpcomingPhasesSchema, UpgradePrompt, UsageBar, UsageBarPropsSchema, UsageProvider, UsageQuotaPage, UsageQuotaPagePropsSchema, UseInfiniteScrollReturnSchema, VISIBILITY_HELPERS, VISIBILITY_LABELS, ValidationErrorsSchema, VerificationBadge, WhatsAppShareButton, WhatsNewModal, authorDisplayName, brand, buildAcademyCertificatePreviewNode, buildItemReasonText, buildMergedInsumos$1 as buildMergedInsumos, buildMergedMediums$1 as buildMergedMediums, defaultDisplayProps, defaultInputProps, drawerSheetRadius, filterSupplyPlanMissions, formatRelativeTime, formatScheduleDate, formatSecondsAsMinutesLabel, formatCurrency$1 as formatTerreiroCurrency, formatPhone as formatTerreiroPhone, generateAcademyCertificatePdf, getBannerGradient, getCardBaseStyles, getContentMarginTop, getContentPaddingTop, getCustomBannerGradient, getDateString, getDefaultHomeWidgetOrder, getHomeWidgetsForProfile, getReorderableHomeWidgetsForProfile, getSocialBannerSx, getSocialUsernameError, getTopBarExpandedHeight, getTopBarHeight, getTopBarStackHeight, installPromptPropsSchema, isDefaultHomeWidgetOrder, isPasskeySupported, isValidEmail, isValidPassword, mapPasskeyError, mapRawMemberToActivityChatOption, mediumStatusLabelsPtBr, mergeHomeWidgetOrder, mergeHomeWidgetVisibility, mockCalendarActivities, mockCalendarEvents, mockCalendarRitualBaths, mockHomePageProps, mockLoadingHomePageProps, mockMediumHomePageProps, mockMoonData, mockPendingMediumHomePageProps, mockQuickActions, mockRituals, mockSupplyPlanEmpty, mockSupplyPlanSufficientWithDemand, mockSupplyPlanWithCosts, mockSupplyPlanWithoutCosts, mockTerreiros, mockUpcomingEvents, mockUser, moveHomeWidgetInOrder, onboardingIntroModalPropsSchema, onboardingIntroModeSchema, onboardingIntroProfileContextSchema, overlayZIndex, parseScheduleDate, radiusPx, reorderHomeWidgetOrder, resolveExperiencePostType, secondsToRoundedMinutes, startPasskeyAuthentication, startPasskeyRegistration, useAcademyModulePage, useAcademyPage, useAccessBlockedPage, useActivityOnboarding, useAddressSectionCard, useAffiliateProgramPage, useAttendanceCheckinEntryPage, useAttendanceInsightsPage, useAvatarWithBadge, useBadgesPage, useCellphoneInput, useCompletenessCard, useContactPage, useContentClearance, useCredentialsPage, useElementSize, useEventAISuggestionsPage, useFilterDrawer, useFinancialRegister, useFinancialTransparencyPage, useFormChatAssistant, useGamificationCard, useGamificationHelpPage, useHideOnScroll, useHomePage, useInfiniteScroll, useInstallPrompt, useInventoryListItemPage, useInventoryListPage, useInviteLandingPage, useJoinTerreiroPage, useLabeledBrazilianStateSelect, useLeaderboardPage, useMeasureSlot, useMeasuredLayoutContext, useMeasuredSlot, useMediumFinancialTransparencyPage, useMediumHubPage, useMemberListItem, useMonthlyFeePaymentsManagementPage, useMoonCard, useMyPermissionsPage, useNotFoundPage, useNotificationSettingsPage, useOnboardingIntroModal, useOnboardingMedium, useOnboardingPage, useOnboardingTerreiro, useOptionalMeasuredLayoutContext, useOptionalUsageContext, usePWAUpdatePromptUI, usePermissionSelector, usePlanManagementPage, useProfileCompletenessCard, useQrLandingPage, useQuotaGuard, useRitualBathDetailPage, useRitualBathListPage, useRitualBathOnboarding, useRoleFormPage, useRoleManagementPage, useSelectMediumsPage, useSpiritualProfilePage, useSubscription, useSubscriptionContext, useSubscriptionGuard, useSupplyPlanPage, useTerreiroPolicyPage, useTerreiroProfileDataPage, useTerreiroProfilePage$1 as useTerreiroProfilePage, useTerreiroSectionCard, useThemeProvider, useUpgradePrompt, useUsageContext, useUsageQuota, useUsageQuotaPage, useVerificationBadge, useWhatsNewModal, validateEmail$1 as validateEmail, validatePassword$1 as validatePassword, validatePhoneNumber, validateCurrency as validateTerreiroCurrency, validateDueDay as validateTerreiroDueDay, validatePassword as validateTerreiroPassword, validatePasswordConfirmation as validateTerreiroPasswordConfirmation, validatePhone as validateTerreiroPhone, whatsNewAnnouncementSchema, whatsNewModalPropsSchema, whatsNewSlideSchema };
195574
+ export { ACTIVITY_STEP_ORDER, ALSO_EXPERIENCED_LABEL, AVATAR_SIZE_CONFIG, AcademyCertificatePreview, AcademyModulePage, AcademyPage, AccessBlockedPage, AccountOptionSchema, BasicInfoSchema as ActivityBasicInfoSchema, ActivityChatInsumosPicker, ActivityChatMembersPicker, ActivityCheckinWindowSchema, ActivityDetailPage$1 as ActivityDetailPage, ActivityEditPage, ActivityFormChatSummaryCard, InsumosSelectionSchema$1 as ActivityInsumosSelectionSchema, ActivityListPage, MembersSelectionSchema as ActivityMembersSelectionSchema, ActivityOnboardingPage, TemplateSchema as ActivityTemplateSchema, TimeSelectionSchema as ActivityTimeSelectionSchema, AddMediumByQRCodePage, AddressInfoSchema, AddressPage, AffiliateProgramPage, AlsoExperiencedButton, AttendanceCheckinCta$1 as AttendanceCheckinCta, AttendanceCheckinDialog, AttendanceCheckinEntryPage, AttendanceInsightsPage, AvatarWithBadge, BADGE_SIZE_CONFIG, BADGE_TIER_COLORS, BADGE_TIER_CONFIG, BADGE_TIER_LABELS, BADGE_TYPE_LABELS, BANK_OPTIONS, BANNER_GRADIENT_KEYS, BANNER_GRADIENT_PRESETS, BRAZILIAN_STATES$1 as BRAZILIAN_STATES, BadgeProgressSchema, BadgeTierSchema$2 as BadgeTierSchema, BadgesPage, BadgeInfoSchema as BadgesPageBadgeInfoSchema, BadgeTierSchema as BadgesPageBadgeTierSchema, BadgeTypeSchema as BadgesPageBadgeTypeSchema, BadgesPagePropsSchema, BathCategorySchema$2 as BathCategorySchema, BlockDialog, BrazilianStateUFSchema, CARD_CONTENT_STYLES, CATEGORY_CONFIG, CATEGORY_LABELS, CREATE_EXPERIENCE_STEP_LABELS, CREATE_EXPERIENCE_STEP_ORDER, CREATE_QUESTION_STEP_LABELS, CREATE_QUESTION_STEP_ORDER, CellphoneInput, CellphoneInputPropsSchema, CompletenessCard, ConnectionButton, ContactArraySchema, ContactPage, ContactPagePropsSchema, ContactSchema, ContactSectionCardPropsSchema, ContributionImpactCard, CopyTargetSchema, CreateExperiencePage, CreateExperienceValuesSchema, CreateIngressoPage, CreateQuestionPage, CreateQuestionValuesSchema, CredentialsApiErrorSchema, CredentialsDataSchema, CredentialsFormStateSchema, CredentialsPage, CredentialsPagePropsSchema, CredentialsValidationErrorsSchema, CustomBannerGradientPresetSchema, DAILY_MESSAGE_POOL, DEFAULT_BANNER_GRADIENT_KEY, DEFAULT_HOME_WIDGET_ORDER, DEFAULT_HOME_WIDGET_VISIBILITY, DailyRitualCard, DescriptionBox$3 as DescriptionBox, DetailedPermissionSchema, EMPTY_ELEMENT_SIZE, EMPTY_ELEMENT_SIZE as EMPTY_SLOT_SIZE, EVENT_STEP_ORDER, EditEventPage, EditJourneyPage, EventAISuggestionsPage, EventBasicInfoSchema, EventChatActivitiesPicker, EventChatInsumosPicker, EventChatLocationPicker, EventChatMembersPicker, EventChatTypePicker, EventCheckinWindowSchema, EventDateTimeSchema, EventDetailPage$1 as EventDetailPage, EventFormChatSummaryCard, EventFormValuesSchema, InsumosSelectionSchema as EventInsumosSelectionSchema, EventLocationSchema, EventOnboardingPage, EventParticipantsSchema, EventProfileBlockedPage, EventPublicationFormChatSummaryCard, EventTicketingManagementPage, EventsPage, ExperienceCard, ExperienceCategoryBadge, ExperienceCategorySchema, ExperienceCommentRow, ExperienceCommentSchema, ExperienceCommentsSheet, ExperienceComposer, ExperienceDetailPage, ExperienceDetailView, ExperienceEngageMenu, ExperiencePostTypeBadge, ExperiencePostTypeSchema, ExperienceReactionBar, ExperienceReactionTypeSchema, ExperienceSchema, ExpiredLinkPage, FORM_CONFIG, FacebookAuthButton, FilterDrawerShellPropsSchema, FinanceMetricCard$1 as FinanceMetricCard, FinancialAccountPage, FinancialAccountsList$1 as FinancialAccountsList, FinancialOverviewCard, FinancialRegisterPage, FinancialTransparencyPage, ForbiddenPage, ForgotPasswordPage, FormChatAssistant, FormChatListSelect, FormChatPickerDrawer, FormChatSelectionBar, GLOW_EFFECT, GamificationBadgeSchema, GamificationBadgeTierEnum, GamificationBadgeTypeEnum, GamificationCard, GamificationCardPropsSchema, GamificationHelpPage, GamificationHelpPagePropsSchema, GamificationHelpTopicSchema, GamificationSummarySchema, GoogleAuthButton, HOME_BELL_NOTIFICATION_LIMIT, HOME_MEASURE_SLOTS, HOME_WIDGETS_CATALOG, HomePage, Image$1 as Image, ImageButton, IncomeListPage$1 as IncomeListPage, IncomingFinancialPage, InfiniteScroll, InfiniteScrollPropsSchema, InstallPrompt, InsumosAvatarGroup, InventoryItemDetail$1 as InventoryItemDetailPage, InventoryItemOnboardingPage, InventoryListItemPage, InventoryListPage, InviteCard$1 as InviteCard, InviteLandingPage, InviteLandingPagePropsSchema, InviteLandingViewStateSchema, InviteTerreiroInfoSchema, JoinTerreiroPage, JourneyProfile, JourneyProfilePage, LAYOUT, LabeledBrazilianStateSelect, LabeledBrazilianStateSelectPropsSchema, LabeledDatePickerPropsSchema, LabeledFieldHeaderPropsSchema, LabeledMinuteInput, LabeledMonthPickerPropsSchema, LabeledTextField$1 as LabeledTextField, LabeledTimePicker, LeaderboardPage, LeaderboardPagePropsSchema, LoadMoreResultSchema, Loading, LunarEclipseSchema, MeasuredLayoutProvider, MediumBadgeSchema, MediumFinancialTransparencyPage, MediumHubPage, MediumListPage, MediumPage, MediumPointsSchema, MediumProfilePage, MediumProfileViewPage$1 as MediumProfileViewPage, MediumStatus$1 as MediumStatus, MemberListItem$1 as MemberListItem, MonthlyFeeInfoSchema, MonthlyFeePage, MonthlyFeePaymentsManagementPage, MoonApiResponseSchema, MoonCard, MoonCardContent, MoonCardPropsSchema, MoonCardSkeleton, MoonDataSchema, MoonDetailedSchema, MoonEventsSchema, MoonPositionSchema, MoonZodiacSchema, MyPermissionsDetailedSchema, MyPermissionsPage, MyPermissionsPagePropsSchema, NearbyTerreiroSearchPage, NotFoundPage, NotificationSettingsPage, NotificationSettingsPagePropsSchema, NotificationsPage, ONBOARDING_TERREIRO_STEPS, ORIGIN_LABELS, OnboardingFormChatPanel, OnboardingFormChatSummaryCard, OnboardingIntroModal, OnboardingMediumPage, OnboardingPage, OnboardingTerreiroPage$1 as OnboardingTerreiroPage, OnboardingTerreiroPagePropsSchema, OutcomeListPage$1 as OutcomeListPage, OutgoingFinancialPage, PAYMENT_METHOD_OPTIONS$1 as PAYMENT_METHOD_OPTIONS, PIX_KEY_TYPE_OPTIONS, POST_TYPE_LABELS, PROFILE_SECTION_CONFIG, PROFILE_SECTION_WEIGHTS, PWAUpdatePromptUI, PageHeader$2 as PageHeader, PaginationInfoSchema, ParticipationResponseButtons$1 as ParticipationResponseButtons, ParticipationStatusBadge$1 as ParticipationStatusBadge, ParticipationStatusLabels, PasskeyCredentialSchema, PasskeyEnrollmentPrompt, PasskeyLoginDialog, PasswordInfoSchemaWithConfirmation, PasswordVisibilitySchema, PaymentStatusBanner, PeerMessageList, PendingApprovalBlockedPage, PermissionSelector, PermissionStatsSchema, PersonalInfoSchema, PhaseEventSchema, PlanChangePayloadSchema, PlanManagementPage, PlanManagementPagePropsSchema, PointsSummarySchema, PositionInfoSchema, PostGiraPrompt, PrivacySelector, ProfileCompletenessCard, ProfileDetailsPage, PublicEventTicketPage, PublicExperiencePreviewSchema, PublicProfilePreviewSchema, PublicQuestionPreviewSchema, PublicSocialPreviewDataSchema, PublicSocialPreviewPage, PublicTerreiroAgendaPage, QUESTION_SOURCE_LABELS, QUICK_ONBOARDING_TERREIRO_STEPS, QUICK_TERREIRO_ONBOARDING_FIELDS_BY_STEP, QrAnalyticsEventNameSchema, QrLandingPage, QrLandingPagePropsSchema, QrScannerSurface$1 as QrScannerSurface, QrTrackingEventSchema, QrTrackingPayloadSchema, QrVariantSchema, QuestionAnswerCard, QuestionAnswerSchema, QuestionAnswersSheet, QuestionCard, QuestionComposer, QuestionDetailPage, QuestionSchema, QuestionSourceBadge, QuestionSourceSchema, QuestionsPage, QuickActionSchema$1 as QuickActionSchema, QuickActions, QuickActionsPropsSchema, QuickMediumOnboardingFormStateSchema, QuickPersonalInfoSchema, QuickPersonalInfoStep, QuickTerreiroOnboardingFormStateSchema, QuickTerreiroPersonalInfoSchema, QuickTerreiroStepValidationSchemas, QuotaBehaviorSchema, QuotaGuard, QuotaGuardPropsSchema, QuotaStatusSchema, QuotaSummaryCard, QuotaSummaryCardPropsSchema, RADIUS, RANKING_PERIOD_LABELS, RANKING_SCOPE_LABELS, REACTION_LABELS, REPORT_REASON_LABELS, RankingEntrySchema, RankingPeriodEnum, RankingResultSchema, RankingScopeEnum, ReasonDialog$1 as ReasonDialog, ReasonDialogPropsSchema, ReligionSchema, ReportDialog, ResetPasswordPage, BasicInfoStepSchema as RitualBathBasicInfoStepSchema, RitualBathDetailPage$1 as RitualBathDetailPage, RitualBathDetailPagePropsSchema, RitualBathDetailSchema, RitualBathFilterSchema, RitualBathFormValuesSchema, RitualBathIngredientSchema$2 as RitualBathIngredientSchema, IngredientsStepSchema as RitualBathIngredientsStepSchema, RitualBathItemSchema, BathCategorySchema$1 as RitualBathListCategorySchema, RitualBathListPage, RitualBathOccurrenceSchema, RitualBathOnboardingPage, RitualBathOriginSchema, OriginStepSchema as RitualBathOriginStepSchema, RitualBathScheduleFormSchema, RitualBathSchedulePage, RitualBathSchedulePagePropsSchema, RitualBathScheduleSummarySchema, RitualBathStatusSchema, RitualBathStepSchema$2 as RitualBathStepSchema, RitualBathStepTypeSchema, StepsStepSchema as RitualBathStepsStepSchema, RitualCard, RoleFormPage, RoleFormValuesSchema, RoleInfoSchema, RoleManagementPage, RoleSchema, SKELETON_SIZES, SOCIAL_BIO_MAX_LENGTH, SOCIAL_DISPLAY_NAME_MAX_LENGTH, SOCIAL_HOME_BOTTOM_NAV_CLEARANCE, SOCIAL_HOME_BOTTOM_NAV_FLOAT_MB, SOCIAL_HOME_BOTTOM_NAV_HEIGHT, SOCIAL_HOME_HEADER_HEIGHT, SOCIAL_ONBOARDING_INTRO_STEPS, SOCIAL_ONBOARDING_STEP_LABELS, SOCIAL_ONBOARDING_STEP_ORDER, SOCIAL_TRADITION_MAX_LENGTH, SOCIAL_USERNAME_MAX_LENGTH, STATUS_COLORS, STATUS_LABELS, STEP_ORDER, STEP_TYPE_ICONS, STEP_TYPE_LABELS, ScheduleDateTimeFields$1 as ScheduleDateTimeFields, SelectField$2 as SelectField, ShareDrawerPropsSchema, SharePlatformSchema, ShareSheet, SharedExpensesCard, SigninPage, SignupPage, SimilarExperienceCard, SimilarPage, SimilarPeopleCard, SimilarPersonSchema, SingleContactSchema, SocialAccountDrawer, SocialAuthorSchema, SocialConnectionsPage, SocialConversationPage, SocialConversationPeerSchema, SocialConversationRow, SocialConversationSchema, SocialCreateActionsSheet, SocialDeleteConfirmDialog, SocialDiscoverPage, SocialEditTextDialog, SocialEmptyState, SocialErrorState, SocialFeedItemSchema, SocialHomeBottomNav, SocialHomeCurrentUserSchema, SocialHomeHeader, SocialHomePage, SocialInboxPage, SocialMessageBubble, SocialMessageComposer, SocialMessageDeliveryStatusSchema, SocialMessageSchema, SocialNotificationsPage, SocialOnboardingIntro, SocialOnboardingPage, SocialOnboardingValuesSchema, SocialPrivacySettingsPage, SocialProfileFieldsSchema, SocialProfileSchema, SocialReadOnlyNotice, SocialReportReasonSchema, SocialSavedPage, SocialSkeleton, SocialUnreadIndicator, SocialUsernameSchema, SocialVerificationEarnedCelebration, SocialVerificationProgressSheet, SocialVisibilitySchema, SpiritualFormChatSummaryCard, SpiritualProfilePage, StreakInfoSchema, SubscriptionGuard, SubscriptionProvider, SubscriptionRequiredForMediumPage, SuggestionsCarousel, SupplyPlanBlockerSchema, SupplyPlanCostsSchema, SupplyPlanItemSchema, SupplyPlanMissionSchema, SupplyPlanPage, SupplyPlanPagePropsSchema, SupplyPlanReadinessSchema, SupplyPlanSchema, SupplyPlanSourceActivitySchema, SupplyPlanSourceEventSchema, SupplyPlanSummarySchema, SystemSettingsPage, TERREIRO_COMPLETION_MESSAGES, TERREIRO_ONBOARDING_FIELDS_BY_STEP, TERREIRO_SECTION_CONFIG, TERREIRO_SECTION_WEIGHTS, TOP_BAR_HEIGHTS, TYPOGRAPHY_SCALE, TerreiroFinancialInfoSchema, TerreiroOnboardingApiErrorSchema, TerreiroOnboardingFormStateSchema, TerreiroOnboardingValidationErrorsSchema, TerreiroPersonalInfoSchema, TerreiroPolicyPage, TerreiroPolicyPagePropsSchema, TerreiroProfileDataPage$1 as TerreiroProfileDataPage, TerreiroProfilePage, TerreiroReadonlyProfilePage, TerreiroRegistrationSchema, TerreiroRegistrationWithoutPasswordSchema, TerreiroSchema$2 as TerreiroSchema, TerreiroSearchPage, TerreiroSectionCard, TerreiroSectionCardPropsSchema, TerreiroStatusSchema, TerreiroStepValidationSchemas, TerreiroSubscriptionInfoSchema, ThemeButton, ThemeProvider, TicketVoucherPage, TicketingClaimFormChatSummaryCard, TraditionBadge, UnitCostMetaSchema, UpcomingPhasesSchema, UpgradePrompt, UsageBar, UsageBarPropsSchema, UsageProvider, UsageQuotaPage, UsageQuotaPagePropsSchema, UseInfiniteScrollReturnSchema, VISIBILITY_HELPERS, VISIBILITY_LABELS, ValidationErrorsSchema, VerificationBadge, WhatsAppShareButton, WhatsNewModal, authorDisplayName, brand, buildAcademyCertificatePreviewNode, buildItemReasonText, buildMergedInsumos$1 as buildMergedInsumos, buildMergedMediums$1 as buildMergedMediums, defaultDisplayProps, defaultInputProps, drawerSheetRadius, filterSupplyPlanMissions, formatRelativeTime, formatScheduleDate, formatSecondsAsMinutesLabel, formatCurrency$1 as formatTerreiroCurrency, formatPhone as formatTerreiroPhone, generateAcademyCertificatePdf, getBannerGradient, getCardBaseStyles, getContentMarginTop, getContentPaddingTop, getCustomBannerGradient, getDateString, getDefaultHomeWidgetOrder, getHomeWidgetsForProfile, getReorderableHomeWidgetsForProfile, getSocialBannerSx, getSocialUsernameError, getTopBarExpandedHeight, getTopBarHeight, getTopBarStackHeight, installPromptPropsSchema, isDefaultHomeWidgetOrder, isPasskeySupported, isValidEmail, isValidPassword, mapPasskeyError, mapRawMemberToActivityChatOption, mediumStatusLabelsPtBr, mergeHomeWidgetOrder, mergeHomeWidgetVisibility, mockCalendarActivities, mockCalendarEvents, mockCalendarRitualBaths, mockHomePageProps, mockLoadingHomePageProps, mockMediumHomePageProps, mockMoonData, mockPendingMediumHomePageProps, mockQuickActions, mockRituals, mockSupplyPlanEmpty, mockSupplyPlanSufficientWithDemand, mockSupplyPlanWithCosts, mockSupplyPlanWithoutCosts, mockTerreiros, mockUpcomingEvents, mockUser, moveHomeWidgetInOrder, onboardingIntroModalPropsSchema, onboardingIntroModeSchema, onboardingIntroProfileContextSchema, overlayZIndex, parseScheduleDate, radiusPx, reorderHomeWidgetOrder, resolveExperiencePostType, secondsToRoundedMinutes, startPasskeyAuthentication, startPasskeyRegistration, useAcademyModulePage, useAcademyPage, useAccessBlockedPage, useActivityOnboarding, useAddressSectionCard, useAffiliateProgramPage, useAttendanceCheckinEntryPage, useAttendanceInsightsPage, useAvatarWithBadge, useBadgesPage, useCellphoneInput, useCompletenessCard, useContactPage, useContentClearance, useCredentialsPage, useElementSize, useEventAISuggestionsPage, useFilterDrawer, useFinancialRegister, useFinancialTransparencyPage, useFormChatAssistant, useGamificationCard, useGamificationHelpPage, useHideOnScroll, useHomePage, useInfiniteScroll, useInstallPrompt, useInventoryListItemPage, useInventoryListPage, useInviteLandingPage, useJoinTerreiroPage, useLabeledBrazilianStateSelect, useLeaderboardPage, useMeasureSlot, useMeasuredLayoutContext, useMeasuredSlot, useMediumFinancialTransparencyPage, useMediumHubPage, useMemberListItem, useMonthlyFeePaymentsManagementPage, useMoonCard, useMyPermissionsPage, useNotFoundPage, useNotificationSettingsPage, useOnboardingIntroModal, useOnboardingMedium, useOnboardingPage, useOnboardingTerreiro, useOptionalMeasuredLayoutContext, useOptionalUsageContext, usePWAUpdatePromptUI, usePermissionSelector, usePlanManagementPage, useProfileCompletenessCard, useQrLandingPage, useQuotaGuard, useRitualBathDetailPage, useRitualBathListPage, useRitualBathOnboarding, useRoleFormPage, useRoleManagementPage, useSelectMediumsPage, useSpiritualProfilePage, useSubscription, useSubscriptionContext, useSubscriptionGuard, useSupplyPlanPage, useTerreiroPolicyPage, useTerreiroProfileDataPage, useTerreiroProfilePage$1 as useTerreiroProfilePage, useTerreiroSectionCard, useThemeProvider, useUpgradePrompt, useUsageContext, useUsageQuota, useUsageQuotaPage, useVerificationBadge, useWhatsNewModal, validateEmail$1 as validateEmail, validatePassword$1 as validatePassword, validatePhoneNumber, validateCurrency as validateTerreiroCurrency, validateDueDay as validateTerreiroDueDay, validatePassword as validateTerreiroPassword, validatePasswordConfirmation as validateTerreiroPasswordConfirmation, validatePhone as validateTerreiroPhone, whatsNewAnnouncementSchema, whatsNewModalPropsSchema, whatsNewSlideSchema };
194645
195575
  //# sourceMappingURL=bundle.esm.js.map