@bigbinary/neeto-team-members-frontend 5.0.31 → 5.0.33

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 (104) hide show
  1. package/app/javascript/src/translations/ar.json +2 -1
  2. package/app/javascript/src/translations/bg.json +2 -1
  3. package/app/javascript/src/translations/ca.json +2 -1
  4. package/app/javascript/src/translations/cs.json +2 -1
  5. package/app/javascript/src/translations/da.json +2 -1
  6. package/app/javascript/src/translations/de.json +2 -1
  7. package/app/javascript/src/translations/en.json +1 -0
  8. package/app/javascript/src/translations/es-MX.json +2 -1
  9. package/app/javascript/src/translations/es.json +2 -1
  10. package/app/javascript/src/translations/et.json +2 -1
  11. package/app/javascript/src/translations/fi.json +2 -1
  12. package/app/javascript/src/translations/fil.json +2 -1
  13. package/app/javascript/src/translations/fr.json +2 -1
  14. package/app/javascript/src/translations/he.json +2 -1
  15. package/app/javascript/src/translations/hi.json +2 -1
  16. package/app/javascript/src/translations/hr.json +2 -1
  17. package/app/javascript/src/translations/hu.json +2 -1
  18. package/app/javascript/src/translations/id.json +2 -1
  19. package/app/javascript/src/translations/it.json +2 -1
  20. package/app/javascript/src/translations/ja.json +2 -1
  21. package/app/javascript/src/translations/ko.json +2 -1
  22. package/app/javascript/src/translations/nl.json +2 -1
  23. package/app/javascript/src/translations/pl.json +2 -1
  24. package/app/javascript/src/translations/pt-BR.json +2 -1
  25. package/app/javascript/src/translations/pt.json +2 -1
  26. package/app/javascript/src/translations/ro.json +2 -1
  27. package/app/javascript/src/translations/ru.json +2 -1
  28. package/app/javascript/src/translations/sk.json +2 -1
  29. package/app/javascript/src/translations/sl.json +2 -1
  30. package/app/javascript/src/translations/sv.json +2 -1
  31. package/app/javascript/src/translations/th.json +2 -1
  32. package/app/javascript/src/translations/tr.json +2 -1
  33. package/app/javascript/src/translations/uk.json +2 -1
  34. package/app/javascript/src/translations/vi.json +2 -1
  35. package/app/javascript/src/translations/zh-CN.json +2 -1
  36. package/app/javascript/src/translations/zh-TW.json +2 -1
  37. package/dist/.ready +1 -1
  38. package/dist/{Permissions-3L2jJkiY.js → Permissions-Ds61VDtG.js} +4 -4
  39. package/dist/Permissions-Ds61VDtG.js.map +1 -0
  40. package/dist/{Permissions-CpmpfRk1.js → Permissions-rFYQmsMn.js} +4 -4
  41. package/dist/Permissions-rFYQmsMn.js.map +1 -0
  42. package/dist/{RolesRadioGroup-fBmS68cW.js → RolesRadioGroup-bXyHmk_Q.js} +35 -38
  43. package/dist/RolesRadioGroup-bXyHmk_Q.js.map +1 -0
  44. package/dist/{RolesRadioGroup-tSNC-Wtu.js → RolesRadioGroup-n1NclSyf.js} +35 -38
  45. package/dist/RolesRadioGroup-n1NclSyf.js.map +1 -0
  46. package/dist/cjs/v2/Groups.js +1 -1
  47. package/dist/cjs/v2/Groups.js.map +1 -1
  48. package/dist/cjs/v2/ManageMember.js +5 -3
  49. package/dist/cjs/v2/ManageMember.js.map +1 -1
  50. package/dist/cjs/v2/MembersDropdown.js +1 -1
  51. package/dist/cjs/v2/MembersInvite.js +1 -1
  52. package/dist/cjs/v2/MembersInvite.js.map +1 -1
  53. package/dist/cjs/v2/Permissions.js +1 -1
  54. package/dist/cjs/v2/Profile.js +189 -202
  55. package/dist/cjs/v2/Profile.js.map +1 -1
  56. package/dist/cjs/v2/Roles.js +2 -2
  57. package/dist/cjs/v2/RolesRadioGroup.js +1 -1
  58. package/dist/cjs/v2/TeamMembers.js +5 -3
  59. package/dist/cjs/v2/TeamMembers.js.map +1 -1
  60. package/dist/cjs/v2/TeamsAndMembersDropdown.js +12 -18
  61. package/dist/cjs/v2/TeamsAndMembersDropdown.js.map +1 -1
  62. package/dist/cjs/v2/TeamsDropdown.js +1 -1
  63. package/dist/{index-DqqXniGT.js → index-BaW7CGuF.js} +3 -3
  64. package/dist/index-BaW7CGuF.js.map +1 -0
  65. package/dist/{index-DXwn-_HJ.js → index-C8-7qqvv.js} +185 -106
  66. package/dist/index-C8-7qqvv.js.map +1 -0
  67. package/dist/{index-DeYRFiJy.js → index-C8Aaixo-.js} +3 -3
  68. package/dist/index-C8Aaixo-.js.map +1 -0
  69. package/dist/{index-DFIYLo4H.js → index-CsL8uUVb.js} +184 -105
  70. package/dist/index-CsL8uUVb.js.map +1 -0
  71. package/dist/timezone-selector-C8J9ifSA.js +175 -0
  72. package/dist/timezone-selector-C8J9ifSA.js.map +1 -0
  73. package/dist/timezone-selector-DjLjMes0.js +165 -0
  74. package/dist/timezone-selector-DjLjMes0.js.map +1 -0
  75. package/dist/v2/Groups.js +1 -1
  76. package/dist/v2/Groups.js.map +1 -1
  77. package/dist/v2/ManageMember.js +5 -3
  78. package/dist/v2/ManageMember.js.map +1 -1
  79. package/dist/v2/MembersDropdown.js +1 -1
  80. package/dist/v2/MembersInvite.js +1 -1
  81. package/dist/v2/MembersInvite.js.map +1 -1
  82. package/dist/v2/Permissions.js +1 -1
  83. package/dist/v2/Profile.js +184 -199
  84. package/dist/v2/Profile.js.map +1 -1
  85. package/dist/v2/Roles.js +2 -2
  86. package/dist/v2/RolesRadioGroup.js +1 -1
  87. package/dist/v2/TeamMembers.js +5 -3
  88. package/dist/v2/TeamMembers.js.map +1 -1
  89. package/dist/v2/TeamsAndMembersDropdown.js +12 -18
  90. package/dist/v2/TeamsAndMembersDropdown.js.map +1 -1
  91. package/dist/v2/TeamsDropdown.js +1 -1
  92. package/package.json +7 -7
  93. package/dist/Permissions-3L2jJkiY.js.map +0 -1
  94. package/dist/Permissions-CpmpfRk1.js.map +0 -1
  95. package/dist/RolesRadioGroup-fBmS68cW.js.map +0 -1
  96. package/dist/RolesRadioGroup-tSNC-Wtu.js.map +0 -1
  97. package/dist/index-DFIYLo4H.js.map +0 -1
  98. package/dist/index-DXwn-_HJ.js.map +0 -1
  99. package/dist/index-DeYRFiJy.js.map +0 -1
  100. package/dist/index-DqqXniGT.js.map +0 -1
  101. package/dist/useCountries-CQdvJz0R.js +0 -249
  102. package/dist/useCountries-CQdvJz0R.js.map +0 -1
  103. package/dist/useCountries-DePOPtue.js +0 -235
  104. package/dist/useCountries-DePOPtue.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"MembersInvite.js","sources":["../../app/javascript/src/components/v2/common/PageLoader.jsx","../../app/javascript/src/components/v2/apis/public/invitations.js","../../app/javascript/src/components/v2/hooks/reactQuery/public/useInvitationsApi.js","../../app/javascript/src/components/v2/MembersInvite/constants.js","../../app/javascript/src/components/v2/MembersInvite/ErrorPage.jsx","../../app/javascript/src/components/v2/MembersInvite/utils.js","../../app/javascript/src/components/v2/MembersInvite/index.jsx"],"sourcesContent":["import { Spinner, cn } from \"@bigbinary/neeto-atoms\";\n\nconst PageLoader = ({ className }) => (\n <div\n className={cn(\n \"flex h-full w-full items-center justify-center p-6\",\n className\n )}\n >\n <Spinner />\n </div>\n);\n\nexport default PageLoader;\n","// eslint-disable-next-line @bigbinary/neeto/no-axios-import-outside-apis\nimport axios from \"axios\";\nimport { BASE_URL } from \"v2/common/constants\";\n\nconst showInviteLink = inviteToken =>\n axios.get(`${BASE_URL}/public/invitations/${inviteToken}`);\n\nconst createInvitation = payload =>\n axios.post(`${BASE_URL}/public/invitations`, payload);\n\nexport default {\n showInviteLink,\n createInvitation,\n};\n","import { useQuery, useMutation } from \"@tanstack/react-query\";\n\nimport invitationsApi from \"v2/apis/public/invitations\";\nimport { QUERY_KEYS } from \"v2/common/constants\";\nconst useShowInviteLink = inviteToken =>\n useQuery({\n queryKey: [QUERY_KEYS.INVITATION_LINK, inviteToken],\n queryFn: () => invitationsApi.showInviteLink(inviteToken),\n enabled: !!inviteToken,\n });\n\nconst useCreateInvitation = (options = {}) =>\n useMutation({\n mutationFn: payload => invitationsApi.createInvitation(payload),\n ...options,\n });\nexport { useShowInviteLink, useCreateInvitation };\n","import { t } from \"i18next\";\nimport { SINGULAR } from \"neetocommons/constants\";\nimport * as yup from \"yup\";\n\nexport const VALIDATION_SCHEMA = yup.object().shape({\n email: yup\n .string()\n .email(t(\"neetoTeamMembers.validations.validEmail_one\"))\n .required(\n t(\"neetoTeamMembers.validations.required\", {\n what: t(\"neetoTeamMembers.common.email\", SINGULAR),\n })\n ),\n});\n\nexport const ERROR = { EXPIRED: 410, INVALID_DOMAIN: 422 };\n\nexport const ROOT_URL = \"/\";\n","import { Typography } from \"@bigbinary/neeto-atoms\";\nimport { withT } from \"neetocommons/react-utils\";\nimport { Trans } from \"react-i18next\";\n\nimport InviteLinkError from \"assets/images/InviteLinkError\";\n\nconst ErrorPage = withT(\n ({ t, isExpired = false, email = \"\", allowedDomain = \"\" }) => (\n <div className=\"flex h-screen w-screen items-center justify-center bg-gray-50 px-4\">\n <div className=\"flex w-full max-w-2xl flex-col items-center justify-center space-y-4 text-center\">\n <div className=\"mb-4\">\n <InviteLinkError size={64} />\n </div>\n <Typography style=\"h1\" weight=\"bold\">\n {isExpired\n ? t(\"neetoTeamMembers.alerts.messages.expiredTitle\")\n : t(\"neetoTeamMembers.alerts.messages.domainTitle\")}\n </Typography>\n <Typography className=\"text-muted-foreground\">\n {isExpired ? (\n t(\"neetoTeamMembers.alerts.messages.expiredMessage\")\n ) : (\n <Trans\n components={{ strong: <strong /> }}\n i18nKey=\"neetoTeamMembers.alerts.messages.domainMessage\"\n values={{ allowedDomain, email }}\n />\n )}\n </Typography>\n </div>\n </div>\n )\n);\nexport default ErrorPage;\n","import { dayjs } from \"neetocommons/utils\";\n\nconst getStartOfDay = date => dayjs(date).startOf(\"day\");\n\nexport const isExpired = date => {\n if (!date) return false;\n\n const today = getStartOfDay();\n const expiryDate = getStartOfDay(date);\n\n return expiryDate.isBefore(today);\n};\n","import { useState } from \"react\";\n\nimport { Typography } from \"@bigbinary/neeto-atoms\";\nimport { Input as FormikInput } from \"@bigbinary/neeto-atoms/formik\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { useDisplayErrorPage } from \"neetocommons/react-utils\";\nimport ErrorPageGlobal from \"neetomolecules/v2/ErrorPage\";\nimport { Trans, useTranslation } from \"react-i18next\";\nimport { useParams } from \"react-router-dom\";\n\nimport { QUERY_KEYS } from \"v2/common/constants\";\nimport { FormikForm, FormikActionBlock } from \"v2/common/formik\";\nimport PageLoader from \"v2/common/PageLoader\";\nimport {\n useShowInviteLink,\n useCreateInvitation,\n} from \"v2/hooks/reactQuery/public/useInvitationsApi\";\n\nimport { ERROR, VALIDATION_SCHEMA, ROOT_URL } from \"./constants\";\nimport ErrorPage from \"./ErrorPage\";\nimport { isExpired } from \"./utils\";\n\nconst MembersInvite = () => {\n const queryClient = useQueryClient();\n const { t } = useTranslation();\n const { inviteId } = useParams();\n const displayErrorPage = useDisplayErrorPage();\n const [isSubmitting, setIsSubmitting] = useState(false);\n\n const { data: inviteLink, isLoading } = useShowInviteLink(inviteId);\n\n const handleSuccess = response => {\n if (response?.redirectUrl) {\n window.location.href = response.redirectUrl;\n } else {\n setIsSubmitting(false);\n }\n };\n\n const handleError = () => {\n queryClient.invalidateQueries({\n queryKey: [QUERY_KEYS.INVITATION_LINK, inviteId],\n });\n setIsSubmitting(false);\n };\n\n const {\n mutate: createInvitation,\n isError,\n error,\n variables,\n } = useCreateInvitation({ onSuccess: handleSuccess, onError: handleError });\n\n const isInviteExpired =\n isExpired(inviteLink?.expiresAt) ||\n (isError && error?.status === ERROR.EXPIRED);\n\n const isInvalidDomain = isError && error?.status === ERROR.INVALID_DOMAIN;\n\n const handleSubmit = ({ email }) => {\n setIsSubmitting(true);\n\n return createInvitation({ email, inviteToken: inviteId });\n };\n\n if (isLoading || isSubmitting) {\n return (\n <div className=\"h-screen w-screen\">\n <PageLoader />\n </div>\n );\n }\n\n if (isInviteExpired || isInvalidDomain) {\n return (\n <ErrorPage\n allowedDomain={inviteLink?.domain}\n email={variables?.email}\n isExpired={isInviteExpired}\n />\n );\n }\n\n if (displayErrorPage) {\n return <ErrorPageGlobal homeUrl={ROOT_URL} />;\n }\n\n return (\n <div className=\"flex min-h-screen w-screen items-center justify-center bg-gray-50 px-4\">\n <div className=\"w-full max-w-md space-y-6 p-6 neeto-ui-shadow-lg\">\n <div className=\"space-y-2 text-center\">\n <Typography style=\"h3\">\n {t(\"neetoTeamMembers.helpers.invitationTitle\")}\n </Typography>\n <Typography className=\"text-muted-foreground\" style=\"body2\">\n <Trans\n components={{ strong: <strong /> }}\n i18nKey=\"neetoTeamMembers.helpers.invitationMessage\"\n values={{ organization: globalProps.organization.name }}\n />\n </Typography>\n </div>\n <FormikForm\n formikProps={{\n initialValues: { email: \"\" },\n validationSchema: VALIDATION_SCHEMA,\n onSubmit: handleSubmit,\n }}\n >\n {({ isValid, dirty }) => (\n <div className=\"space-y-4\">\n <FormikInput\n required\n label={t(\"neetoTeamMembers.common.email_one\")}\n name=\"email\"\n type=\"email\"\n />\n <FormikActionBlock\n submitButtonProps={{\n label: t(\"neetoTeamMembers.buttons.acceptInvitation\"),\n disabled: !isValid || !dirty,\n }}\n />\n </div>\n )}\n </FormikForm>\n </div>\n </div>\n );\n};\n\nexport default MembersInvite;\n"],"names":["PageLoader","_ref","className","_jsx","cn","children","Spinner","showInviteLink","inviteToken","axios","get","concat","BASE_URL","createInvitation","payload","post","useShowInviteLink","useQuery","queryKey","QUERY_KEYS","INVITATION_LINK","queryFn","invitationsApi","enabled","useCreateInvitation","options","arguments","length","undefined","useMutation","_objectSpread","mutationFn","VALIDATION_SCHEMA","yup","object","shape","email","string","t","required","what","SINGULAR","ERROR","EXPIRED","INVALID_DOMAIN","ROOT_URL","ErrorPage","withT","_ref$isExpired","isExpired","_ref$email","_ref$allowedDomain","allowedDomain","_jsxs","InviteLinkError","size","Typography","style","weight","Trans","components","strong","i18nKey","values","getStartOfDay","date","dayjs","startOf","today","expiryDate","isBefore","MembersInvite","queryClient","useQueryClient","_useTranslation","useTranslation","_useParams","useParams","inviteId","displayErrorPage","useDisplayErrorPage","_useState","useState","_useState2","_slicedToArray","isSubmitting","setIsSubmitting","_useShowInviteLink","inviteLink","data","isLoading","handleSuccess","response","redirectUrl","window","location","href","handleError","invalidateQueries","_useCreateInvitation","onSuccess","onError","mutate","isError","error","variables","isInviteExpired","expiresAt","status","isInvalidDomain","handleSubmit","domain","ErrorPageGlobal","homeUrl","organization","globalProps","name","FormikForm","formikProps","initialValues","validationSchema","onSubmit","_ref2","isValid","dirty","FormikInput","label","type","FormikActionBlock","submitButtonProps","disabled"],"mappings":"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"}
1
+ {"version":3,"file":"MembersInvite.js","sources":["../../app/javascript/src/components/v2/common/PageLoader.jsx","../../app/javascript/src/components/v2/apis/public/invitations.js","../../app/javascript/src/components/v2/hooks/reactQuery/public/useInvitationsApi.js","../../app/javascript/src/components/v2/MembersInvite/constants.js","../../app/javascript/src/components/v2/MembersInvite/ErrorPage.jsx","../../app/javascript/src/components/v2/MembersInvite/utils.js","../../app/javascript/src/components/v2/MembersInvite/index.jsx"],"sourcesContent":["import { Spinner, cn } from \"@bigbinary/neeto-atoms\";\n\nconst PageLoader = ({ className }) => (\n <div\n className={cn(\n \"flex h-full w-full items-center justify-center p-6\",\n className\n )}\n >\n <Spinner />\n </div>\n);\n\nexport default PageLoader;\n","// eslint-disable-next-line @bigbinary/neeto/no-axios-import-outside-apis\nimport axios from \"axios\";\nimport { BASE_URL } from \"v2/common/constants\";\n\nconst showInviteLink = inviteToken =>\n axios.get(`${BASE_URL}/public/invitations/${inviteToken}`);\n\nconst createInvitation = payload =>\n axios.post(`${BASE_URL}/public/invitations`, payload);\n\nexport default {\n showInviteLink,\n createInvitation,\n};\n","import { useQuery, useMutation } from \"@tanstack/react-query\";\n\nimport invitationsApi from \"v2/apis/public/invitations\";\nimport { QUERY_KEYS } from \"v2/common/constants\";\nconst useShowInviteLink = inviteToken =>\n useQuery({\n queryKey: [QUERY_KEYS.INVITATION_LINK, inviteToken],\n queryFn: () => invitationsApi.showInviteLink(inviteToken),\n enabled: !!inviteToken,\n });\n\nconst useCreateInvitation = (options = {}) =>\n useMutation({\n mutationFn: payload => invitationsApi.createInvitation(payload),\n ...options,\n });\nexport { useShowInviteLink, useCreateInvitation };\n","import { t } from \"i18next\";\nimport { SINGULAR } from \"neetocommons/constants\";\nimport * as yup from \"yup\";\n\nexport const VALIDATION_SCHEMA = yup.object().shape({\n email: yup\n .string()\n .email(t(\"neetoTeamMembers.validations.validEmail_one\"))\n .required(\n t(\"neetoTeamMembers.validations.required\", {\n what: t(\"neetoTeamMembers.common.email\", SINGULAR),\n })\n ),\n});\n\nexport const ERROR = { EXPIRED: 410, INVALID_DOMAIN: 422 };\n\nexport const ROOT_URL = \"/\";\n","import { Typography } from \"@bigbinary/neeto-atoms\";\nimport { withT } from \"neetocommons/react-utils\";\nimport { Trans } from \"react-i18next\";\n\nimport InviteLinkError from \"assets/images/InviteLinkError\";\n\nconst ErrorPage = withT(\n ({ t, isExpired = false, email = \"\", allowedDomain = \"\" }) => (\n <div className=\"flex h-screen w-screen items-center justify-center bg-gray-50 px-4\">\n <div className=\"flex w-full max-w-2xl flex-col items-center justify-center space-y-4 text-center\">\n <div className=\"mb-4\">\n <InviteLinkError size={64} />\n </div>\n <Typography style=\"h1\" weight=\"bold\">\n {isExpired\n ? t(\"neetoTeamMembers.alerts.messages.expiredTitle\")\n : t(\"neetoTeamMembers.alerts.messages.domainTitle\")}\n </Typography>\n <Typography className=\"text-muted-foreground\">\n {isExpired ? (\n t(\"neetoTeamMembers.alerts.messages.expiredMessage\")\n ) : (\n <Trans\n components={{ strong: <strong /> }}\n i18nKey=\"neetoTeamMembers.alerts.messages.domainMessage\"\n values={{ allowedDomain, email }}\n />\n )}\n </Typography>\n </div>\n </div>\n )\n);\nexport default ErrorPage;\n","import { dayjs } from \"neetocommons/utils\";\n\nconst getStartOfDay = date => dayjs(date).startOf(\"day\");\n\nexport const isExpired = date => {\n if (!date) return false;\n\n const today = getStartOfDay();\n const expiryDate = getStartOfDay(date);\n\n return expiryDate.isBefore(today);\n};\n","import { useState } from \"react\";\n\nimport { Typography } from \"@bigbinary/neeto-atoms\";\nimport { Input as FormikInput } from \"@bigbinary/neeto-atoms/formik\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { useDisplayErrorPage } from \"neetocommons/react-utils\";\nimport ErrorPageGlobal from \"neetomolecules/v2/ErrorPage\";\nimport { Trans, useTranslation } from \"react-i18next\";\nimport { useParams } from \"react-router-dom\";\n\nimport { QUERY_KEYS } from \"v2/common/constants\";\nimport { FormikForm, FormikActionBlock } from \"v2/common/formik\";\nimport PageLoader from \"v2/common/PageLoader\";\nimport {\n useShowInviteLink,\n useCreateInvitation,\n} from \"v2/hooks/reactQuery/public/useInvitationsApi\";\n\nimport { ERROR, VALIDATION_SCHEMA, ROOT_URL } from \"./constants\";\nimport ErrorPage from \"./ErrorPage\";\nimport { isExpired } from \"./utils\";\n\nconst MembersInvite = () => {\n const queryClient = useQueryClient();\n const { t } = useTranslation();\n const { inviteId } = useParams();\n const displayErrorPage = useDisplayErrorPage();\n const [isSubmitting, setIsSubmitting] = useState(false);\n\n const { data: inviteLink, isLoading } = useShowInviteLink(inviteId);\n\n const handleSuccess = response => {\n if (response?.redirectUrl) {\n window.location.href = response.redirectUrl;\n } else {\n setIsSubmitting(false);\n }\n };\n\n const handleError = () => {\n queryClient.invalidateQueries({\n queryKey: [QUERY_KEYS.INVITATION_LINK, inviteId],\n });\n setIsSubmitting(false);\n };\n\n const {\n mutate: createInvitation,\n isError,\n error,\n variables,\n } = useCreateInvitation({ onSuccess: handleSuccess, onError: handleError });\n\n const isInviteExpired =\n isExpired(inviteLink?.expiresAt) ||\n (isError && error?.status === ERROR.EXPIRED);\n\n const isInvalidDomain = isError && error?.status === ERROR.INVALID_DOMAIN;\n\n const handleSubmit = ({ email }) => {\n setIsSubmitting(true);\n\n return createInvitation({ email, inviteToken: inviteId });\n };\n\n if (isLoading || isSubmitting) {\n return (\n <div className=\"h-screen w-screen\">\n <PageLoader />\n </div>\n );\n }\n\n if (isInviteExpired || isInvalidDomain) {\n return (\n <ErrorPage\n allowedDomain={inviteLink?.domain}\n email={variables?.email}\n isExpired={isInviteExpired}\n />\n );\n }\n\n if (displayErrorPage) {\n return <ErrorPageGlobal homeUrl={ROOT_URL} />;\n }\n\n return (\n <div className=\"flex min-h-screen w-screen items-center justify-center bg-gray-50 px-4\">\n <div className=\"w-full max-w-md space-y-6 p-6 shadow-lg\">\n <div className=\"space-y-2 text-center\">\n <Typography style=\"h3\">\n {t(\"neetoTeamMembers.helpers.invitationTitle\")}\n </Typography>\n <Typography className=\"text-muted-foreground\" style=\"body2\">\n <Trans\n components={{ strong: <strong /> }}\n i18nKey=\"neetoTeamMembers.helpers.invitationMessage\"\n values={{ organization: globalProps.organization.name }}\n />\n </Typography>\n </div>\n <FormikForm\n formikProps={{\n initialValues: { email: \"\" },\n validationSchema: VALIDATION_SCHEMA,\n onSubmit: handleSubmit,\n }}\n >\n {({ isValid, dirty }) => (\n <div className=\"space-y-4\">\n <FormikInput\n required\n label={t(\"neetoTeamMembers.common.email_one\")}\n name=\"email\"\n type=\"email\"\n />\n <FormikActionBlock\n submitButtonProps={{\n label: t(\"neetoTeamMembers.buttons.acceptInvitation\"),\n disabled: !isValid || !dirty,\n }}\n />\n </div>\n )}\n </FormikForm>\n </div>\n </div>\n );\n};\n\nexport default MembersInvite;\n"],"names":["PageLoader","_ref","className","_jsx","cn","children","Spinner","showInviteLink","inviteToken","axios","get","concat","BASE_URL","createInvitation","payload","post","useShowInviteLink","useQuery","queryKey","QUERY_KEYS","INVITATION_LINK","queryFn","invitationsApi","enabled","useCreateInvitation","options","arguments","length","undefined","useMutation","_objectSpread","mutationFn","VALIDATION_SCHEMA","yup","object","shape","email","string","t","required","what","SINGULAR","ERROR","EXPIRED","INVALID_DOMAIN","ROOT_URL","ErrorPage","withT","_ref$isExpired","isExpired","_ref$email","_ref$allowedDomain","allowedDomain","_jsxs","InviteLinkError","size","Typography","style","weight","Trans","components","strong","i18nKey","values","getStartOfDay","date","dayjs","startOf","today","expiryDate","isBefore","MembersInvite","queryClient","useQueryClient","_useTranslation","useTranslation","_useParams","useParams","inviteId","displayErrorPage","useDisplayErrorPage","_useState","useState","_useState2","_slicedToArray","isSubmitting","setIsSubmitting","_useShowInviteLink","inviteLink","data","isLoading","handleSuccess","response","redirectUrl","window","location","href","handleError","invalidateQueries","_useCreateInvitation","onSuccess","onError","mutate","isError","error","variables","isInviteExpired","expiresAt","status","isInvalidDomain","handleSubmit","domain","ErrorPageGlobal","homeUrl","organization","globalProps","name","FormikForm","formikProps","initialValues","validationSchema","onSubmit","_ref2","isValid","dirty","FormikInput","label","type","FormikActionBlock","submitButtonProps","disabled"],"mappings":"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"}
@@ -7,7 +7,7 @@ import '@bigbinary/neeto-cist';
7
7
  import '@bigbinary/neeto-commons-frontend/constants';
8
8
  import 'ramda';
9
9
  import 'react-i18next';
10
- export { P as default } from '../Permissions-3L2jJkiY.js';
10
+ export { P as default } from '../Permissions-Ds61VDtG.js';
11
11
  import 'react/jsx-runtime';
12
12
  import '../inject-css-C2dztUxs.js';
13
13
  //# sourceMappingURL=Permissions.js.map
@@ -1,13 +1,14 @@
1
1
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
2
2
  import { useRef, useCallback, useEffect, memo, useState } from 'react';
3
- import { Spinner, Label, cn, Typography, Avatar, Button, Sheet, DropdownMenu } from '@bigbinary/neeto-atoms';
4
- import { Crown, EllipsisVertical } from 'lucide-react';
3
+ import { Spinner, Sheet, Label, cn, Typography, Avatar, Button } from '@bigbinary/neeto-atoms';
4
+ import MoreDropdown from '@bigbinary/neeto-molecules/v2/MoreDropdown';
5
5
  import { useTranslation } from 'react-i18next';
6
6
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
7
7
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
8
8
  import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';
9
9
  import _regeneratorRuntime from '@babel/runtime/regenerator';
10
10
  import { Input } from '@bigbinary/neeto-atoms/formik';
11
+ import { Card, CardContent, CardAction } from '@bigbinary/neeto-atoms/primitives/Card';
11
12
  import { NeetoTimezoneSelector, ianaTimezoneToHumanReadable } from '@bigbinary/neeto-time-zones';
12
13
  import { findBy, noop, _findBy } from '@bigbinary/neeto-cist';
13
14
  import { DEFAULT_STALE_TIME, LANGUAGE_OPTIONS } from '@bigbinary/neeto-commons-frontend/constants';
@@ -21,14 +22,17 @@ import 'formik';
21
22
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
22
23
  import { useQuery } from '@tanstack/react-query';
23
24
  import { useMutationWithInvalidation } from '@bigbinary/neeto-commons-frontend/react-utils';
24
- import { p as profileApi, u as useCountries, P as ProfileImage, C as CopyToClipboardButton } from '../useCountries-DePOPtue.js';
25
+ import { p as profileApi, u as useCountries, P as ProfileImage } from '../timezone-selector-DjLjMes0.js';
25
26
  import { t } from 'i18next';
26
27
  import { globalProps } from '@bigbinary/neeto-commons-frontend/initializers';
27
28
  import * as yup from 'yup';
28
29
  import withImmutableActions from '@bigbinary/neeto-commons-frontend/react-utils/withImmutableActions';
29
30
  import { create } from 'zustand';
30
31
  import { shallow } from 'zustand/shallow';
32
+ import { Crown } from 'lucide-react';
33
+ import CopyToClipboardButton from '@bigbinary/neeto-molecules/v2/CopyToClipboardButton';
31
34
  import 'axios';
35
+ import '../inject-css-C2dztUxs.js';
32
36
 
33
37
  function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
34
38
  function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -229,6 +233,7 @@ var ChangeProfile = function ChangeProfile(_ref) {
229
233
  });
230
234
  }
231
235
  return /*#__PURE__*/jsx(FormikForm, {
236
+ className: "flex flex-col h-full flex-1 overflow-y-auto",
232
237
  formProps: {
233
238
  "data-testid": "ntm-profile-form"
234
239
  },
@@ -243,12 +248,19 @@ var ChangeProfile = function ChangeProfile(_ref) {
243
248
  touched = _ref4.touched;
244
249
  setFieldValueRef.current = setFieldValue;
245
250
  return /*#__PURE__*/jsxs(Fragment, {
246
- children: [/*#__PURE__*/jsx("div", {
247
- className: "w-full flex-1 overflow-y-auto p-4",
248
- children: /*#__PURE__*/jsxs("div", {
249
- className: "w-full pb-6",
250
- children: [/*#__PURE__*/jsx(ProfileImage, {}), /*#__PURE__*/jsxs("div", {
251
- className: "mt-4 w-full space-y-4 border-t border-border pt-4",
251
+ children: [/*#__PURE__*/jsxs(Sheet.Body, {
252
+ className: "flex min-h-0 w-full flex-1 flex-col gap-2 overflow-y-auto p-4",
253
+ children: [/*#__PURE__*/jsx(Card, {
254
+ className: "w-full shrink-0 ring-0",
255
+ size: "sm",
256
+ children: /*#__PURE__*/jsx(CardContent, {
257
+ children: /*#__PURE__*/jsx(ProfileImage, {})
258
+ })
259
+ }), /*#__PURE__*/jsx(Card, {
260
+ className: "w-full shrink-0 ring-0",
261
+ size: "sm",
262
+ children: /*#__PURE__*/jsxs(CardContent, {
263
+ className: "space-y-6",
252
264
  children: [/*#__PURE__*/jsx(Input, {
253
265
  autoFocus: true,
254
266
  required: true,
@@ -264,51 +276,42 @@ var ChangeProfile = function ChangeProfile(_ref) {
264
276
  name: "lastName",
265
277
  type: "text",
266
278
  placeholder: t("neetoTeamMembers.profile.inputs.placeholder.lastName")
267
- })]
268
- }), /*#__PURE__*/jsxs("div", {
269
- className: "mt-4 w-full space-y-4 border-t border-border pt-4",
270
- children: [/*#__PURE__*/jsx(FormikSelect, {
279
+ }), /*#__PURE__*/jsx(FormikSelect, {
271
280
  required: true,
272
281
  "data-testid": "ntm-profile-country-select",
273
282
  label: t("neetoTeamMembers.profile.inputs.label.country"),
274
283
  name: "countryId",
275
284
  options: countryDropdownOptions,
276
285
  value: selectedCountryOption,
277
- onChange: function onChange(option) {
286
+ onChange: function onChange(value) {
287
+ var option = findBy({
288
+ value: value
289
+ }, countryDropdownOptions);
278
290
  var dependentFields = handleCountryChange(option);
279
291
  setFieldValue("dateFormat", dependentFields === null || dependentFields === void 0 ? void 0 : dependentFields.dateFormat);
280
- setFieldValue("countryId", option === null || option === void 0 ? void 0 : option.value);
281
292
  }
282
- }), /*#__PURE__*/jsx("div", {
283
- className: "space-y-2",
284
- children: /*#__PURE__*/jsx(FormikSelect, {
285
- required: true,
286
- "data-testid": "ntm-language-select",
287
- name: "language",
288
- options: LANGUAGE_OPTIONS,
289
- label: t("neetoTeamMembers.profile.inputs.label.language"),
290
- onChange: function onChange(option) {
291
- setFieldValue("language", option.value);
292
- }
293
- })
293
+ }), /*#__PURE__*/jsx(FormikSelect, {
294
+ required: true,
295
+ "data-testid": "ntm-language-select",
296
+ label: t("neetoTeamMembers.profile.inputs.label.language"),
297
+ name: "language",
298
+ options: LANGUAGE_OPTIONS
294
299
  }), /*#__PURE__*/jsxs("div", {
295
300
  className: "space-y-2",
296
- children: [/*#__PURE__*/jsxs("div", {
297
- className: "space-y-2",
298
- children: [/*#__PURE__*/jsxs(Label, {
299
- children: [t("neetoTeamMembers.profile.inputs.label.timeZone"), /*#__PURE__*/jsx("span", {
300
- className: "text-destructive",
301
- children: " *"
302
- })]
303
- }), /*#__PURE__*/jsx("div", {
304
- "data-testid": "ntm-profile-time-zone-select",
305
- ref: timezoneRef,
306
- className: cn("w-full grow", {
307
- "pointer-events-none bg-muted": isTimezoneFieldDisabled
308
- })
301
+ children: [/*#__PURE__*/jsxs(Label, {
302
+ children: [t("neetoTeamMembers.profile.inputs.label.timeZone"), /*#__PURE__*/jsx("span", {
303
+ className: "text-destructive",
304
+ children: " *"
309
305
  })]
306
+ }), /*#__PURE__*/jsx("div", {
307
+ "data-testid": "ntm-profile-time-zone-select",
308
+ ref: timezoneRef,
309
+ className: cn("w-full grow", {
310
+ "pointer-events-none bg-muted": isTimezoneFieldDisabled
311
+ })
310
312
  }), touched.timeZone && errors.timeZone && /*#__PURE__*/jsx(Typography, {
311
- className: "text-xs leading-none text-destructive",
313
+ className: "text-destructive",
314
+ variant: "caption",
312
315
  children: errors.timeZone
313
316
  })]
314
317
  }), /*#__PURE__*/jsx(FormikSelect, {
@@ -316,27 +319,18 @@ var ChangeProfile = function ChangeProfile(_ref) {
316
319
  "data-testid": "ntm-time-format-select",
317
320
  name: "timeFormat",
318
321
  options: TIME_FORMAT_OPTIONS,
319
- label: t("neetoTeamMembers.profile.inputs.label.preferredTimeFormat"),
320
- onChange: function onChange(option) {
321
- setFieldValue("timeFormat", option.value);
322
- }
323
- }), /*#__PURE__*/jsx("div", {
324
- className: "space-y-2",
325
- children: /*#__PURE__*/jsx(FormikSelect, {
326
- required: true,
327
- "data-testid": "ntm-date-format-select",
328
- name: "dateFormat",
329
- options: DATE_FORMAT_OPTIONS,
330
- label: t("neetoTeamMembers.profile.inputs.label.preferredDateFormat"),
331
- onChange: function onChange(option) {
332
- setFieldValue("dateFormat", option.value);
333
- }
334
- })
322
+ label: t("neetoTeamMembers.profile.inputs.label.preferredTimeFormat")
323
+ }), /*#__PURE__*/jsx(FormikSelect, {
324
+ required: true,
325
+ "data-testid": "ntm-date-format-select",
326
+ name: "dateFormat",
327
+ options: DATE_FORMAT_OPTIONS,
328
+ label: t("neetoTeamMembers.profile.inputs.label.preferredDateFormat")
335
329
  })]
336
- })]
337
- })
338
- }), /*#__PURE__*/jsx("div", {
339
- className: "border-t border-border p-4",
330
+ })
331
+ })]
332
+ }), /*#__PURE__*/jsx(Sheet.Footer, {
333
+ className: "border-t border-border",
340
334
  children: /*#__PURE__*/jsx(FormikActionBlock, {
341
335
  isSubmitting: isUpdatingProfile || isUploading,
342
336
  cancelButtonProps: {
@@ -384,6 +378,24 @@ var sanitizeValue = function sanitizeValue(value, defaultValue) {
384
378
  return isNil(value) || is(String, value) && trim(value) === "" ? defaultValue : value;
385
379
  };
386
380
 
381
+ var Field = function Field(_ref) {
382
+ var label = _ref.label,
383
+ children = _ref.children,
384
+ testId = _ref.testId;
385
+ return /*#__PURE__*/jsxs("div", {
386
+ className: "flex flex-col gap-1 py-3 first:pt-0 last:pb-0",
387
+ children: [/*#__PURE__*/jsx(Typography, {
388
+ color: "muted",
389
+ variant: "caption",
390
+ weight: "medium",
391
+ children: label
392
+ }), /*#__PURE__*/jsx(Typography, {
393
+ "data-testid": testId,
394
+ variant: "body2",
395
+ children: children
396
+ })]
397
+ });
398
+ };
387
399
  var Preview$1 = function Preview() {
388
400
  var _globalProps$user, _Intl$DateTimeFormat$, _findBy2, _findBy3, _findBy4;
389
401
  var _useTranslation = useTranslation(),
@@ -435,12 +447,12 @@ var Preview$1 = function Preview() {
435
447
  children: /*#__PURE__*/jsx(Spinner, {})
436
448
  });
437
449
  }
438
- return /*#__PURE__*/jsx("div", {
439
- className: "w-full flex-1 overflow-y-auto bg-muted/50 p-4",
440
- children: /*#__PURE__*/jsxs("div", {
441
- className: "flex w-full flex-col gap-2",
442
- children: [/*#__PURE__*/jsx("div", {
443
- className: "neeto-ui-rounded-md bg-background p-3",
450
+ return /*#__PURE__*/jsxs(Sheet.Body, {
451
+ className: "flex min-h-0 w-full flex-1 flex-col gap-2 overflow-y-auto p-4",
452
+ children: [/*#__PURE__*/jsx(Card, {
453
+ className: "w-full shrink-0 ring-0",
454
+ size: "sm",
455
+ children: /*#__PURE__*/jsx(CardContent, {
444
456
  children: /*#__PURE__*/jsxs("div", {
445
457
  className: "flex items-center gap-3",
446
458
  children: [/*#__PURE__*/jsx(Avatar, {
@@ -452,14 +464,15 @@ var Preview$1 = function Preview() {
452
464
  }), /*#__PURE__*/jsxs("div", {
453
465
  className: "flex flex-col",
454
466
  children: [/*#__PURE__*/jsx(Typography, {
455
- className: "text-base font-semibold",
456
467
  "data-testid": "profile-full-name-field",
468
+ variant: "h4",
457
469
  children: name
458
470
  }), /*#__PURE__*/jsxs("div", {
459
471
  className: "flex items-center gap-1",
460
472
  children: [/*#__PURE__*/jsx(Typography, {
461
- className: "text-sm text-muted-foreground",
473
+ color: "muted",
462
474
  "data-testid": "profile-email-field",
475
+ variant: "body3",
463
476
  children: email
464
477
  }), /*#__PURE__*/jsx(CopyToClipboardButton, {
465
478
  size: "icon-xs",
@@ -469,102 +482,69 @@ var Preview$1 = function Preview() {
469
482
  })]
470
483
  })]
471
484
  })
472
- }), /*#__PURE__*/jsxs("div", {
473
- className: "divide-y divide-border neeto-ui-rounded-md bg-background p-3",
485
+ })
486
+ }), /*#__PURE__*/jsx(Card, {
487
+ className: "w-full shrink-0 ring-0",
488
+ size: "sm",
489
+ children: /*#__PURE__*/jsxs(CardContent, {
490
+ className: "divide-y divide-border",
491
+ children: [/*#__PURE__*/jsx(Field, {
492
+ label: t("neetoTeamMembers.labels.firstName"),
493
+ testId: "profile-first-name-field",
494
+ children: firstName
495
+ }), /*#__PURE__*/jsx(Field, {
496
+ label: t("neetoTeamMembers.labels.lastName"),
497
+ testId: "profile-last-name-field",
498
+ children: lastName
499
+ }), /*#__PURE__*/jsx(Field, {
500
+ label: t("neetoTeamMembers.labels.country"),
501
+ testId: "profile-country-field",
502
+ children: countryName
503
+ }), /*#__PURE__*/jsx(Field, {
504
+ label: t("neetoTeamMembers.labels.language"),
505
+ testId: "profile-preferred-language-field",
506
+ children: ((_findBy2 = _findBy({
507
+ value: language
508
+ }, LANGUAGE_OPTIONS)) === null || _findBy2 === void 0 ? void 0 : _findBy2.label) || "-"
509
+ }), /*#__PURE__*/jsxs(Field, {
510
+ label: t("neetoTeamMembers.labels.timeZone"),
511
+ testId: "profile-time-zone-field",
512
+ children: [ianaTimezoneToHumanReadable(timeZone), timeZoneAbbreviation ? " (".concat(timeZoneAbbreviation, ")") : "", " ", time]
513
+ }), /*#__PURE__*/jsx(Field, {
514
+ label: t("neetoTeamMembers.labels.preferredTimeFormat"),
515
+ testId: "profile-preferred-time-format-field",
516
+ children: ((_findBy3 = _findBy({
517
+ value: timeFormat
518
+ }, TIME_FORMAT_OPTIONS)) === null || _findBy3 === void 0 ? void 0 : _findBy3.label) || "-"
519
+ }), /*#__PURE__*/jsx(Field, {
520
+ label: t("neetoTeamMembers.labels.preferredDateFormat"),
521
+ testId: "profile-preferred-date-format-field",
522
+ children: ((_findBy4 = _findBy({
523
+ value: dateFormat
524
+ }, DATE_FORMAT_OPTIONS)) === null || _findBy4 === void 0 ? void 0 : _findBy4.label) || "-"
525
+ })]
526
+ })
527
+ }), /*#__PURE__*/jsx(Card, {
528
+ className: "w-full shrink-0 ring-0",
529
+ size: "sm",
530
+ children: /*#__PURE__*/jsxs(CardContent, {
531
+ className: "grid grid-cols-[1fr_auto] items-center gap-2",
474
532
  children: [/*#__PURE__*/jsxs("div", {
475
- className: "flex flex-col gap-1 pb-3",
476
- children: [/*#__PURE__*/jsx(Typography, {
477
- className: "text-xs font-medium text-muted-foreground",
478
- children: t("neetoTeamMembers.labels.firstName")
479
- }), /*#__PURE__*/jsx(Typography, {
480
- className: "text-[15px] text-foreground",
481
- "data-testid": "profile-first-name-field",
482
- children: firstName
483
- })]
484
- }), /*#__PURE__*/jsxs("div", {
485
- className: "flex flex-col gap-1 py-3",
533
+ className: "flex flex-col gap-1",
486
534
  children: [/*#__PURE__*/jsx(Typography, {
487
- className: "text-xs font-medium text-muted-foreground",
488
- children: t("neetoTeamMembers.labels.lastName")
535
+ color: "muted",
536
+ variant: "caption",
537
+ weight: "medium",
538
+ children: t("neetoTeamMembers.labels.currentPlan")
489
539
  }), /*#__PURE__*/jsx(Typography, {
490
- className: "text-[15px] text-foreground",
491
- "data-testid": "profile-last-name-field",
492
- children: lastName
493
- })]
494
- }), /*#__PURE__*/jsxs("div", {
495
- className: "flex flex-col gap-1 py-3",
496
- children: [/*#__PURE__*/jsx(Typography, {
497
- className: "text-xs font-medium text-muted-foreground",
498
- children: t("neetoTeamMembers.labels.country")
499
- }), /*#__PURE__*/jsx(Typography, {
500
- className: "text-[15px] text-foreground",
501
- "data-testid": "profile-country-field",
502
- children: countryName
503
- })]
504
- }), /*#__PURE__*/jsxs("div", {
505
- className: "flex flex-col gap-1 py-3",
506
- children: [/*#__PURE__*/jsx(Typography, {
507
- className: "text-xs font-medium text-muted-foreground",
508
- children: t("neetoTeamMembers.labels.language")
509
- }), /*#__PURE__*/jsx(Typography, {
510
- className: "text-[15px] text-foreground",
511
- "data-testid": "profile-preferred-language-field",
512
- children: ((_findBy2 = _findBy({
513
- value: language
514
- }, LANGUAGE_OPTIONS)) === null || _findBy2 === void 0 ? void 0 : _findBy2.label) || "-"
515
- })]
516
- }), /*#__PURE__*/jsxs("div", {
517
- className: "flex flex-col gap-1 py-3",
518
- children: [/*#__PURE__*/jsx(Typography, {
519
- className: "text-xs font-medium text-muted-foreground",
520
- children: t("neetoTeamMembers.labels.timeZone")
521
- }), /*#__PURE__*/jsxs(Typography, {
522
- className: "text-[15px] text-foreground",
523
- "data-testid": "profile-time-zone-field",
524
- children: [ianaTimezoneToHumanReadable(timeZone), timeZoneAbbreviation ? " (".concat(timeZoneAbbreviation, ")") : "", " ", time]
525
- })]
526
- }), /*#__PURE__*/jsxs("div", {
527
- className: "flex flex-col gap-1 py-3",
528
- children: [/*#__PURE__*/jsx(Typography, {
529
- className: "text-xs font-medium text-muted-foreground",
530
- children: t("neetoTeamMembers.labels.preferredTimeFormat")
531
- }), /*#__PURE__*/jsx(Typography, {
532
- className: "text-[15px] text-foreground",
533
- "data-testid": "profile-preferred-time-format-field",
534
- children: ((_findBy3 = _findBy({
535
- value: timeFormat
536
- }, TIME_FORMAT_OPTIONS)) === null || _findBy3 === void 0 ? void 0 : _findBy3.label) || "-"
537
- })]
538
- }), /*#__PURE__*/jsxs("div", {
539
- className: "flex flex-col gap-1 pt-3",
540
- children: [/*#__PURE__*/jsx(Typography, {
541
- className: "text-xs font-medium text-muted-foreground",
542
- children: t("neetoTeamMembers.labels.preferredDateFormat")
543
- }), /*#__PURE__*/jsx(Typography, {
544
- className: "text-[15px] text-foreground",
545
- "data-testid": "profile-preferred-date-format-field",
546
- children: ((_findBy4 = _findBy({
547
- value: dateFormat
548
- }, DATE_FORMAT_OPTIONS)) === null || _findBy4 === void 0 ? void 0 : _findBy4.label) || "-"
540
+ "data-testid": "profile-subscription-type",
541
+ variant: "body2",
542
+ children: t("neetoTeamMembers.common.subscriptionType", {
543
+ subscription: subscription
544
+ })
549
545
  })]
550
- })]
551
- }), /*#__PURE__*/jsx("div", {
552
- className: "neeto-ui-rounded-md bg-background p-3",
553
- children: /*#__PURE__*/jsxs("div", {
554
- className: "flex items-center justify-between",
555
- children: [/*#__PURE__*/jsxs("div", {
556
- className: "flex flex-col gap-1",
557
- children: [/*#__PURE__*/jsx(Typography, {
558
- className: "text-xs font-medium text-muted-foreground",
559
- children: t("neetoTeamMembers.labels.currentPlan")
560
- }), /*#__PURE__*/jsx(Typography, {
561
- className: "text-[15px] text-foreground",
562
- "data-testid": "profile-subscription-type",
563
- children: t("neetoTeamMembers.common.subscriptionType", {
564
- subscription: subscription
565
- })
566
- })]
567
- }), /*#__PURE__*/jsx(Button, {
546
+ }), /*#__PURE__*/jsx(CardAction, {
547
+ children: /*#__PURE__*/jsx(Button, {
568
548
  asChild: true,
569
549
  "data-testid": "profile-upgrade-button",
570
550
  size: "sm",
@@ -574,10 +554,10 @@ var Preview$1 = function Preview() {
574
554
  className: "size-4"
575
555
  }), t("neetoTeamMembers.buttons.upgrade")]
576
556
  })
577
- })]
578
- })
579
- })]
580
- })
557
+ })
558
+ })]
559
+ })
560
+ })]
581
561
  });
582
562
  };
583
563
  var Preview = /*#__PURE__*/memo(Preview$1);
@@ -600,47 +580,52 @@ var Profile = function Profile() {
600
580
  var enableEditMode = function enableEditMode() {
601
581
  return setIsEditMode(true);
602
582
  };
583
+ var menuItems = [{
584
+ key: "edit-basic-info",
585
+ "data-testid": "edit-basic-info-menu-button",
586
+ label: t("neetoTeamMembers.buttons.editBasicInfo"),
587
+ onClick: enableEditMode
588
+ }, {
589
+ key: "update-email",
590
+ "data-testid": "update-email-menu-button",
591
+ label: t("neetoTeamMembers.buttons.updateEmail"),
592
+ onClick: function onClick() {
593
+ return window.open(MY_PROFILE_PATH, "_self");
594
+ }
595
+ }, {
596
+ key: "manage-billing-subscriptions",
597
+ "data-testid": "manage-billing-subscriptions-menu-button",
598
+ label: t("neetoTeamMembers.buttons.manageBillingAndSubscriptions"),
599
+ onClick: function onClick() {
600
+ return window.open(MY_PROFILE_PATH, "_self");
601
+ }
602
+ }];
603
603
  return /*#__PURE__*/jsx("div", {
604
604
  className: "w-full",
605
605
  children: /*#__PURE__*/jsxs(Sheet, {
606
606
  isOpen: isOpen,
607
607
  onClose: onClose,
608
- className: "max-w-96 bg-muted/50",
609
- children: [/*#__PURE__*/jsx(Sheet.Header, {
610
- className: "bg-muted/50",
611
- children: /*#__PURE__*/jsxs("div", {
612
- className: "flex justify-between",
613
- children: [/*#__PURE__*/jsx(Sheet.Title, {
614
- className: "text-xl font-semibold",
608
+ className: "ntm-timezone-shadcn-overrides max-w-96 gap-0 bg-sidebar",
609
+ children: [/*#__PURE__*/jsxs(Sheet.Header, {
610
+ children: [/*#__PURE__*/jsx(Sheet.Title, {
611
+ asChild: true,
612
+ children: /*#__PURE__*/jsx(Typography, {
613
+ variant: "h3",
615
614
  children: t("neetoTeamMembers.profile.common.myProfile")
616
- }), !isEditMode && /*#__PURE__*/jsx(DropdownMenu, {
617
- buttonSize: "small",
618
- buttonStyle: "text",
619
- icon: EllipsisVertical,
615
+ })
616
+ }), !isEditMode && /*#__PURE__*/jsx(MoreDropdown, {
617
+ menuItems: menuItems,
618
+ isVertical: true,
619
+ dropdownProps: {
620
620
  position: "bottom-end",
621
- children: /*#__PURE__*/jsxs(DropdownMenu.Menu, {
622
- children: [/*#__PURE__*/jsx(DropdownMenu.MenuItem, {
623
- children: /*#__PURE__*/jsx(DropdownMenu.MenuItem.Button, {
624
- "data-testid": "edit-basic-info-menu-button",
625
- onClick: enableEditMode,
626
- children: t("neetoTeamMembers.buttons.editBasicInfo")
627
- })
628
- }), /*#__PURE__*/jsx(DropdownMenu.MenuItem, {
629
- children: /*#__PURE__*/jsx(DropdownMenu.MenuItem.Button, {
630
- "data-testid": "update-email-menu-button",
631
- href: MY_PROFILE_PATH,
632
- children: t("neetoTeamMembers.buttons.updateEmail")
633
- })
634
- }), /*#__PURE__*/jsx(DropdownMenu.MenuItem, {
635
- children: /*#__PURE__*/jsx(DropdownMenu.MenuItem.Button, {
636
- "data-testid": "manage-billing-subscriptions-menu-button",
637
- href: MY_PROFILE_PATH,
638
- children: t("neetoTeamMembers.buttons.manageBillingAndSubscriptions")
639
- })
640
- })]
641
- })
642
- })]
643
- })
621
+ strategy: "fixed"
622
+ },
623
+ dropdownButtonProps: {
624
+ "data-testid": "profile-more-dropdown-button",
625
+ size: "icon-sm",
626
+ className: "absolute top-3 end-12"
627
+ }
628
+ })]
644
629
  }), isEditMode ? /*#__PURE__*/jsx(ChangeProfile, {
645
630
  onClose: onClose
646
631
  }) : /*#__PURE__*/jsx(Preview, {})]