@riligar/auth-react 1.8.0 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.esm.js CHANGED
@@ -1,10 +1,11 @@
1
1
  import { create } from 'zustand';
2
2
  import { useMemo, useEffect, createContext, useState, useRef } from 'react';
3
3
  import { useShallow } from 'zustand/react/shallow';
4
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
4
5
  import { Navigate, Outlet } from 'react-router-dom';
5
6
  import { Paper, Stack, Image, Title, Text, TextInput, PasswordInput, Anchor, Button, Divider, Group, Center, Loader } from '@mantine/core';
6
7
  import { useForm } from '@mantine/form';
7
- import { IconArrowRight, IconMail, IconBrandGoogle, IconBrandGithub, IconLock, IconUser, IconSend, IconCheck, IconX, IconRefresh } from '@tabler/icons-react';
8
+ import { IconMail, IconLock, IconArrowRight, IconBrandGoogle, IconBrandGithub, IconUser, IconSend, IconCheck, IconX, IconRefresh } from '@tabler/icons-react';
8
9
 
9
10
  // Config - pode ser sobrescrita pelo AuthProvider
10
11
  // Tenta detectar ambiente Vite, mas falha graciosamente se não existir
@@ -735,9 +736,10 @@ function AuthProvider({
735
736
  const contextValue = useMemo(() => ({
736
737
  onError
737
738
  }), [onError]);
738
- return /*#__PURE__*/React.createElement(AuthContext.Provider, {
739
- value: contextValue
740
- }, children);
739
+ return /*#__PURE__*/jsx(AuthContext.Provider, {
740
+ value: contextValue,
741
+ children: children
742
+ });
741
743
  }
742
744
 
743
745
  /* Hooks "facade" que a app vai usar */
@@ -798,7 +800,9 @@ const useApplicationLogo = () => {
798
800
  };
799
801
 
800
802
  function ProtectedRoute({
801
- fallback = /*#__PURE__*/React.createElement("p", null, "\u231B Carregando..."),
803
+ fallback = /*#__PURE__*/jsx("p", {
804
+ children: "\u231B Carregando..."
805
+ }),
802
806
  redirectTo = "/login"
803
807
  }) {
804
808
  const {
@@ -806,27 +810,13 @@ function ProtectedRoute({
806
810
  loading
807
811
  } = useAuth();
808
812
  if (loading) return fallback;
809
- if (!user) return /*#__PURE__*/React.createElement(Navigate, {
813
+ if (!user) return /*#__PURE__*/jsx(Navigate, {
810
814
  to: redirectTo,
811
815
  replace: true
812
816
  });
813
- return /*#__PURE__*/React.createElement(Outlet, null);
817
+ return /*#__PURE__*/jsx(Outlet, {});
814
818
  }
815
819
 
816
- function _extends() {
817
- return _extends = Object.assign ? Object.assign.bind() : function (n) {
818
- for (var e = 1; e < arguments.length; e++) {
819
- var t = arguments[e];
820
- for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
821
- }
822
- return n;
823
- }, _extends.apply(null, arguments);
824
- }
825
-
826
- /**
827
- * Container wrapper para componentes de autenticação
828
- * Usa Mantine Paper com estilo consistente
829
- */
830
820
  function AuthCard({
831
821
  children,
832
822
  title,
@@ -836,35 +826,37 @@ function AuthCard({
836
826
  width = 350,
837
827
  ...props
838
828
  }) {
839
- return /*#__PURE__*/React.createElement(Paper, _extends({
829
+ return /*#__PURE__*/jsx(Paper, {
840
830
  withBorder: true,
841
831
  shadow: "md",
842
832
  p: 24,
843
833
  w: width,
844
- radius: "md"
845
- }, props), /*#__PURE__*/React.createElement(Stack, {
846
- gap: "sm"
847
- }, (logo || title || subtitle) && /*#__PURE__*/React.createElement(Stack, {
848
- gap: "xs"
849
- }, logo && /*#__PURE__*/React.createElement(Image, {
850
- src: logo,
851
- alt: "Auth",
852
- h: logoHeight,
853
- fit: "contain"
854
- }), title && /*#__PURE__*/React.createElement(Title, {
855
- order: 3
856
- }, title), subtitle && /*#__PURE__*/React.createElement(Text, {
857
- size: "sm",
858
- c: "dimmed"
859
- }, subtitle)), children));
834
+ radius: "md",
835
+ ...props,
836
+ children: /*#__PURE__*/jsxs(Stack, {
837
+ gap: "sm",
838
+ children: [(logo || title || subtitle) && /*#__PURE__*/jsxs(Stack, {
839
+ gap: "xs",
840
+ children: [logo && /*#__PURE__*/jsx(Image, {
841
+ src: logo,
842
+ alt: "Auth",
843
+ h: logoHeight,
844
+ fit: "contain"
845
+ }), title && /*#__PURE__*/jsx(Title, {
846
+ order: 3,
847
+ children: title
848
+ }), subtitle && /*#__PURE__*/jsx(Text, {
849
+ size: "sm",
850
+ c: "dimmed",
851
+ children: subtitle
852
+ })]
853
+ }), children]
854
+ })
855
+ });
860
856
  }
861
857
 
862
858
  var img = "data:image/webp;base64,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";
863
859
 
864
- /**
865
- * Formulário de Sign In completo com Mantine
866
- * Suporta email/password, magic link, social login
867
- */
868
860
  function SignInForm({
869
861
  // Configuração
870
862
  logo,
@@ -941,83 +933,98 @@ function SignInForm({
941
933
  }
942
934
  };
943
935
  const isLoading = loadingSignIn || loadingMagicLink || loadingResetPassword;
944
- return /*#__PURE__*/React.createElement(AuthCard, _extends({
936
+ return /*#__PURE__*/jsxs(AuthCard, {
945
937
  logo: finalLogo,
946
938
  title: title,
947
- subtitle: subtitle
948
- }, cardProps), /*#__PURE__*/React.createElement("form", {
949
- onSubmit: form.onSubmit(handleSubmit)
950
- }, /*#__PURE__*/React.createElement(Stack, {
951
- gap: "sm"
952
- }, /*#__PURE__*/React.createElement(TextInput, _extends({
953
- label: labels.email || 'Email',
954
- placeholder: labels.emailPlaceholder || 'seu@email.com',
955
- leftSection: /*#__PURE__*/React.createElement(IconMail, {
956
- size: 16
957
- })
958
- }, form.getInputProps('email'), {
959
- disabled: isLoading
960
- })), /*#__PURE__*/React.createElement(PasswordInput, _extends({
961
- label: labels.password || 'Senha',
962
- placeholder: labels.passwordPlaceholder || 'Sua senha',
963
- leftSection: /*#__PURE__*/React.createElement(IconLock, {
964
- size: 16
965
- })
966
- }, form.getInputProps('password'), {
967
- disabled: isLoading
968
- })), showForgotPassword && /*#__PURE__*/React.createElement(Anchor, {
969
- size: "sm",
970
- ta: "right",
971
- onClick: handleForgotPassword,
972
- style: {
973
- cursor: 'pointer'
974
- },
975
- c: loadingResetPassword ? 'dimmed' : 'blue'
976
- }, loadingResetPassword ? labels.sendingReset || 'Enviando...' : labels.forgotPassword || 'Esqueceu a senha?'), /*#__PURE__*/React.createElement(Button, {
977
- type: "submit",
978
- fullWidth: true,
979
- loading: loadingSignIn,
980
- rightSection: /*#__PURE__*/React.createElement(IconArrowRight, {
981
- size: 16
982
- })
983
- }, labels.signInButton || 'Entrar'))), showMagicLink && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Divider, {
984
- label: labels.orContinueWith || 'Ou continue com'
985
- }), /*#__PURE__*/React.createElement(Button, {
986
- variant: "light",
987
- fullWidth: true,
988
- loading: loadingMagicLink,
989
- leftSection: /*#__PURE__*/React.createElement(IconMail, {
990
- size: 16
991
- }),
992
- onClick: handleMagicLink,
993
- disabled: isLoading || !form.values.email
994
- }, labels.magicLinkButton || 'Enviar Link Mágico')), showSocialLogin && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Divider, null), /*#__PURE__*/React.createElement(Group, {
995
- grow: true
996
- }, /*#__PURE__*/React.createElement(Button, {
997
- variant: "light",
998
- leftSection: /*#__PURE__*/React.createElement(IconBrandGoogle, {
999
- size: 16
1000
- }),
1001
- onClick: () => onSocialLogin?.('google'),
1002
- disabled: isLoading
1003
- }, "Google"), /*#__PURE__*/React.createElement(Button, {
1004
- variant: "light",
1005
- leftSection: /*#__PURE__*/React.createElement(IconBrandGithub, {
1006
- size: 16
1007
- }),
1008
- onClick: () => onSocialLogin?.('github'),
1009
- disabled: isLoading
1010
- }, "GitHub"))), showSignUpLink && /*#__PURE__*/React.createElement(Center, null, /*#__PURE__*/React.createElement(Text, {
1011
- size: "sm",
1012
- c: "dimmed"
1013
- }, labels.noAccount || 'Não tem uma conta?', " ", /*#__PURE__*/React.createElement(Anchor, {
1014
- href: signUpUrl
1015
- }, labels.createAccount || 'Criar conta'))));
939
+ subtitle: subtitle,
940
+ ...cardProps,
941
+ children: [/*#__PURE__*/jsx("form", {
942
+ onSubmit: form.onSubmit(handleSubmit),
943
+ children: /*#__PURE__*/jsxs(Stack, {
944
+ gap: "sm",
945
+ children: [/*#__PURE__*/jsx(TextInput, {
946
+ label: labels.email || 'Email',
947
+ placeholder: labels.emailPlaceholder || 'seu@email.com',
948
+ leftSection: /*#__PURE__*/jsx(IconMail, {
949
+ size: 16
950
+ }),
951
+ ...form.getInputProps('email'),
952
+ disabled: isLoading
953
+ }), /*#__PURE__*/jsx(PasswordInput, {
954
+ label: labels.password || 'Senha',
955
+ placeholder: labels.passwordPlaceholder || 'Sua senha',
956
+ leftSection: /*#__PURE__*/jsx(IconLock, {
957
+ size: 16
958
+ }),
959
+ ...form.getInputProps('password'),
960
+ disabled: isLoading
961
+ }), showForgotPassword && /*#__PURE__*/jsx(Anchor, {
962
+ size: "sm",
963
+ ta: "right",
964
+ onClick: handleForgotPassword,
965
+ style: {
966
+ cursor: 'pointer'
967
+ },
968
+ c: loadingResetPassword ? 'dimmed' : 'blue',
969
+ children: loadingResetPassword ? labels.sendingReset || 'Enviando...' : labels.forgotPassword || 'Esqueceu a senha?'
970
+ }), /*#__PURE__*/jsx(Button, {
971
+ type: "submit",
972
+ fullWidth: true,
973
+ loading: loadingSignIn,
974
+ rightSection: /*#__PURE__*/jsx(IconArrowRight, {
975
+ size: 16
976
+ }),
977
+ children: labels.signInButton || 'Entrar'
978
+ })]
979
+ })
980
+ }), showMagicLink && /*#__PURE__*/jsxs(Fragment, {
981
+ children: [/*#__PURE__*/jsx(Divider, {
982
+ label: labels.orContinueWith || 'Ou continue com'
983
+ }), /*#__PURE__*/jsx(Button, {
984
+ variant: "light",
985
+ fullWidth: true,
986
+ loading: loadingMagicLink,
987
+ leftSection: /*#__PURE__*/jsx(IconMail, {
988
+ size: 16
989
+ }),
990
+ onClick: handleMagicLink,
991
+ disabled: isLoading || !form.values.email,
992
+ children: labels.magicLinkButton || 'Enviar Link Mágico'
993
+ })]
994
+ }), showSocialLogin && /*#__PURE__*/jsxs(Fragment, {
995
+ children: [/*#__PURE__*/jsx(Divider, {}), /*#__PURE__*/jsxs(Group, {
996
+ grow: true,
997
+ children: [/*#__PURE__*/jsx(Button, {
998
+ variant: "light",
999
+ leftSection: /*#__PURE__*/jsx(IconBrandGoogle, {
1000
+ size: 16
1001
+ }),
1002
+ onClick: () => onSocialLogin?.('google'),
1003
+ disabled: isLoading,
1004
+ children: "Google"
1005
+ }), /*#__PURE__*/jsx(Button, {
1006
+ variant: "light",
1007
+ leftSection: /*#__PURE__*/jsx(IconBrandGithub, {
1008
+ size: 16
1009
+ }),
1010
+ onClick: () => onSocialLogin?.('github'),
1011
+ disabled: isLoading,
1012
+ children: "GitHub"
1013
+ })]
1014
+ })]
1015
+ }), showSignUpLink && /*#__PURE__*/jsx(Center, {
1016
+ children: /*#__PURE__*/jsxs(Text, {
1017
+ size: "sm",
1018
+ c: "dimmed",
1019
+ children: [labels.noAccount || 'Não tem uma conta?', " ", /*#__PURE__*/jsx(Anchor, {
1020
+ href: signUpUrl,
1021
+ children: labels.createAccount || 'Criar conta'
1022
+ })]
1023
+ })
1024
+ })]
1025
+ });
1016
1026
  }
1017
1027
 
1018
- /**
1019
- * Formulário de Sign Up com Mantine
1020
- */
1021
1028
  function SignUpForm({
1022
1029
  // Configuração
1023
1030
  logo,
@@ -1065,82 +1072,93 @@ function SignUpForm({
1065
1072
  onError?.(error);
1066
1073
  }
1067
1074
  };
1068
- return /*#__PURE__*/React.createElement(AuthCard, _extends({
1075
+ return /*#__PURE__*/jsxs(AuthCard, {
1069
1076
  logo: finalLogo,
1070
1077
  title: title,
1071
- subtitle: subtitle
1072
- }, cardProps), /*#__PURE__*/React.createElement("form", {
1073
- onSubmit: form.onSubmit(handleSubmit)
1074
- }, /*#__PURE__*/React.createElement(Stack, {
1075
- gap: "sm"
1076
- }, requireName && /*#__PURE__*/React.createElement(TextInput, _extends({
1077
- label: labels.name || 'Nome',
1078
- placeholder: labels.namePlaceholder || 'Seu nome',
1079
- leftSection: /*#__PURE__*/React.createElement(IconUser, {
1080
- size: 16
1081
- })
1082
- }, form.getInputProps('name'), {
1083
- disabled: loading
1084
- })), /*#__PURE__*/React.createElement(TextInput, _extends({
1085
- label: labels.email || 'Email',
1086
- placeholder: labels.emailPlaceholder || 'seu@email.com',
1087
- leftSection: /*#__PURE__*/React.createElement(IconMail, {
1088
- size: 16
1089
- })
1090
- }, form.getInputProps('email'), {
1091
- disabled: loading
1092
- })), /*#__PURE__*/React.createElement(PasswordInput, _extends({
1093
- label: labels.password || 'Senha',
1094
- placeholder: labels.passwordPlaceholder || 'Crie uma senha',
1095
- leftSection: /*#__PURE__*/React.createElement(IconLock, {
1096
- size: 16
1097
- })
1098
- }, form.getInputProps('password'), {
1099
- disabled: loading
1100
- })), /*#__PURE__*/React.createElement(PasswordInput, _extends({
1101
- label: labels.confirmPassword || 'Confirmar Senha',
1102
- placeholder: labels.confirmPasswordPlaceholder || 'Repita a senha',
1103
- leftSection: /*#__PURE__*/React.createElement(IconLock, {
1104
- size: 16
1105
- })
1106
- }, form.getInputProps('confirmPassword'), {
1107
- disabled: loading
1108
- })), /*#__PURE__*/React.createElement(Button, {
1109
- type: "submit",
1110
- fullWidth: true,
1111
- loading: loading,
1112
- rightSection: /*#__PURE__*/React.createElement(IconArrowRight, {
1113
- size: 16
1114
- })
1115
- }, labels.signUpButton || 'Criar Conta'))), showSocialLogin && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Divider, {
1116
- label: labels.orContinueWith || 'Ou continue com'
1117
- }), /*#__PURE__*/React.createElement(Group, {
1118
- grow: true
1119
- }, /*#__PURE__*/React.createElement(Button, {
1120
- variant: "light",
1121
- leftSection: /*#__PURE__*/React.createElement(IconBrandGoogle, {
1122
- size: 16
1123
- }),
1124
- onClick: () => onSocialLogin?.('google'),
1125
- disabled: loading
1126
- }, "Google"), /*#__PURE__*/React.createElement(Button, {
1127
- variant: "light",
1128
- leftSection: /*#__PURE__*/React.createElement(IconBrandGithub, {
1129
- size: 16
1130
- }),
1131
- onClick: () => onSocialLogin?.('github'),
1132
- disabled: loading
1133
- }, "GitHub"))), showSignInLink && /*#__PURE__*/React.createElement(Center, null, /*#__PURE__*/React.createElement(Text, {
1134
- size: "sm",
1135
- c: "dimmed"
1136
- }, labels.hasAccount || 'Já tem uma conta?', " ", /*#__PURE__*/React.createElement(Anchor, {
1137
- href: signInUrl
1138
- }, labels.signIn || 'Entrar'))));
1078
+ subtitle: subtitle,
1079
+ ...cardProps,
1080
+ children: [/*#__PURE__*/jsx("form", {
1081
+ onSubmit: form.onSubmit(handleSubmit),
1082
+ children: /*#__PURE__*/jsxs(Stack, {
1083
+ gap: "sm",
1084
+ children: [requireName && /*#__PURE__*/jsx(TextInput, {
1085
+ label: labels.name || 'Nome',
1086
+ placeholder: labels.namePlaceholder || 'Seu nome',
1087
+ leftSection: /*#__PURE__*/jsx(IconUser, {
1088
+ size: 16
1089
+ }),
1090
+ ...form.getInputProps('name'),
1091
+ disabled: loading
1092
+ }), /*#__PURE__*/jsx(TextInput, {
1093
+ label: labels.email || 'Email',
1094
+ placeholder: labels.emailPlaceholder || 'seu@email.com',
1095
+ leftSection: /*#__PURE__*/jsx(IconMail, {
1096
+ size: 16
1097
+ }),
1098
+ ...form.getInputProps('email'),
1099
+ disabled: loading
1100
+ }), /*#__PURE__*/jsx(PasswordInput, {
1101
+ label: labels.password || 'Senha',
1102
+ placeholder: labels.passwordPlaceholder || 'Crie uma senha',
1103
+ leftSection: /*#__PURE__*/jsx(IconLock, {
1104
+ size: 16
1105
+ }),
1106
+ ...form.getInputProps('password'),
1107
+ disabled: loading
1108
+ }), /*#__PURE__*/jsx(PasswordInput, {
1109
+ label: labels.confirmPassword || 'Confirmar Senha',
1110
+ placeholder: labels.confirmPasswordPlaceholder || 'Repita a senha',
1111
+ leftSection: /*#__PURE__*/jsx(IconLock, {
1112
+ size: 16
1113
+ }),
1114
+ ...form.getInputProps('confirmPassword'),
1115
+ disabled: loading
1116
+ }), /*#__PURE__*/jsx(Button, {
1117
+ type: "submit",
1118
+ fullWidth: true,
1119
+ loading: loading,
1120
+ rightSection: /*#__PURE__*/jsx(IconArrowRight, {
1121
+ size: 16
1122
+ }),
1123
+ children: labels.signUpButton || 'Criar Conta'
1124
+ })]
1125
+ })
1126
+ }), showSocialLogin && /*#__PURE__*/jsxs(Fragment, {
1127
+ children: [/*#__PURE__*/jsx(Divider, {
1128
+ label: labels.orContinueWith || 'Ou continue com'
1129
+ }), /*#__PURE__*/jsxs(Group, {
1130
+ grow: true,
1131
+ children: [/*#__PURE__*/jsx(Button, {
1132
+ variant: "light",
1133
+ leftSection: /*#__PURE__*/jsx(IconBrandGoogle, {
1134
+ size: 16
1135
+ }),
1136
+ onClick: () => onSocialLogin?.('google'),
1137
+ disabled: loading,
1138
+ children: "Google"
1139
+ }), /*#__PURE__*/jsx(Button, {
1140
+ variant: "light",
1141
+ leftSection: /*#__PURE__*/jsx(IconBrandGithub, {
1142
+ size: 16
1143
+ }),
1144
+ onClick: () => onSocialLogin?.('github'),
1145
+ disabled: loading,
1146
+ children: "GitHub"
1147
+ })]
1148
+ })]
1149
+ }), showSignInLink && /*#__PURE__*/jsx(Center, {
1150
+ children: /*#__PURE__*/jsxs(Text, {
1151
+ size: "sm",
1152
+ c: "dimmed",
1153
+ children: [labels.hasAccount || 'Já tem uma conta?', " ", /*#__PURE__*/jsx(Anchor, {
1154
+ href: signInUrl,
1155
+ children: labels.signIn || 'Entrar'
1156
+ })]
1157
+ })
1158
+ })]
1159
+ });
1139
1160
  }
1140
1161
 
1141
- /**
1142
- * Formulário para envio de Magic Link
1143
- */
1144
1162
  function MagicLinkForm({
1145
1163
  // Configuração
1146
1164
  logo,
@@ -1179,41 +1197,46 @@ function MagicLinkForm({
1179
1197
  onError?.(error);
1180
1198
  }
1181
1199
  };
1182
- return /*#__PURE__*/React.createElement(AuthCard, _extends({
1200
+ return /*#__PURE__*/jsxs(AuthCard, {
1183
1201
  logo: finalLogo,
1184
1202
  title: title,
1185
- subtitle: subtitle
1186
- }, cardProps), /*#__PURE__*/React.createElement("form", {
1187
- onSubmit: form.onSubmit(handleSubmit)
1188
- }, /*#__PURE__*/React.createElement(Stack, {
1189
- gap: "sm"
1190
- }, /*#__PURE__*/React.createElement(TextInput, _extends({
1191
- label: labels.email || 'Email',
1192
- placeholder: labels.emailPlaceholder || 'seu@email.com',
1193
- leftSection: /*#__PURE__*/React.createElement(IconMail, {
1194
- size: 16
1195
- })
1196
- }, form.getInputProps('email'), {
1197
- disabled: loading
1198
- })), /*#__PURE__*/React.createElement(Button, {
1199
- type: "submit",
1200
- fullWidth: true,
1201
- loading: loading,
1202
- leftSection: /*#__PURE__*/React.createElement(IconSend, {
1203
- size: 16
1204
- })
1205
- }, labels.sendButton || 'Enviar Link Mágico'))), showSignInLink && /*#__PURE__*/React.createElement(Center, null, /*#__PURE__*/React.createElement(Text, {
1206
- size: "sm",
1207
- c: "dimmed"
1208
- }, labels.backTo || 'Voltar para', " ", /*#__PURE__*/React.createElement(Anchor, {
1209
- href: signInUrl
1210
- }, labels.signIn || 'login com senha'))));
1203
+ subtitle: subtitle,
1204
+ ...cardProps,
1205
+ children: [/*#__PURE__*/jsx("form", {
1206
+ onSubmit: form.onSubmit(handleSubmit),
1207
+ children: /*#__PURE__*/jsxs(Stack, {
1208
+ gap: "sm",
1209
+ children: [/*#__PURE__*/jsx(TextInput, {
1210
+ label: labels.email || 'Email',
1211
+ placeholder: labels.emailPlaceholder || 'seu@email.com',
1212
+ leftSection: /*#__PURE__*/jsx(IconMail, {
1213
+ size: 16
1214
+ }),
1215
+ ...form.getInputProps('email'),
1216
+ disabled: loading
1217
+ }), /*#__PURE__*/jsx(Button, {
1218
+ type: "submit",
1219
+ fullWidth: true,
1220
+ loading: loading,
1221
+ leftSection: /*#__PURE__*/jsx(IconSend, {
1222
+ size: 16
1223
+ }),
1224
+ children: labels.sendButton || 'Enviar Link Mágico'
1225
+ })]
1226
+ })
1227
+ }), showSignInLink && /*#__PURE__*/jsx(Center, {
1228
+ children: /*#__PURE__*/jsxs(Text, {
1229
+ size: "sm",
1230
+ c: "dimmed",
1231
+ children: [labels.backTo || 'Voltar para', " ", /*#__PURE__*/jsx(Anchor, {
1232
+ href: signInUrl,
1233
+ children: labels.signIn || 'login com senha'
1234
+ })]
1235
+ })
1236
+ })]
1237
+ });
1211
1238
  }
1212
1239
 
1213
- /**
1214
- * Componente de verificação de Magic Link
1215
- * Extrai token da URL e verifica automaticamente
1216
- */
1217
1240
  function MagicLinkVerify({
1218
1241
  // Configuração
1219
1242
  logo,
@@ -1273,49 +1296,57 @@ function MagicLinkVerify({
1273
1296
  verify();
1274
1297
  // eslint-disable-next-line react-hooks/exhaustive-deps
1275
1298
  }, [propToken, redirectTo, redirectDelay]);
1276
- return /*#__PURE__*/React.createElement(AuthCard, _extends({
1277
- logo: finalLogo
1278
- }, cardProps), status === 'verifying' && /*#__PURE__*/React.createElement(Stack, {
1279
- align: "center",
1280
- gap: "sm"
1281
- }, /*#__PURE__*/React.createElement(Loader, {
1282
- size: "lg"
1283
- }), /*#__PURE__*/React.createElement(Title, {
1284
- order: 4
1285
- }, labels.verifying || 'Verificando Link Mágico'), /*#__PURE__*/React.createElement(Text, {
1286
- size: "sm",
1287
- c: "dimmed",
1288
- ta: "center"
1289
- }, labels.pleaseWait || 'Aguarde enquanto autenticamos você...')), status === 'success' && /*#__PURE__*/React.createElement(Stack, {
1290
- align: "center",
1291
- gap: "sm"
1292
- }, /*#__PURE__*/React.createElement(IconCheck, {
1293
- size: 48,
1294
- color: "var(--mantine-color-green-6)"
1295
- }), /*#__PURE__*/React.createElement(Title, {
1296
- order: 4
1297
- }, labels.success || 'Autenticado com Sucesso!'), /*#__PURE__*/React.createElement(Text, {
1298
- size: "sm",
1299
- c: "dimmed",
1300
- ta: "center"
1301
- }, redirectTo ? labels.redirecting || 'Redirecionando...' : labels.authenticated || 'Você está autenticado.')), status === 'error' && /*#__PURE__*/React.createElement(Stack, {
1302
- align: "center",
1303
- gap: "sm"
1304
- }, /*#__PURE__*/React.createElement(IconX, {
1305
- size: 48,
1306
- color: "var(--mantine-color-red-6)"
1307
- }), /*#__PURE__*/React.createElement(Title, {
1308
- order: 4
1309
- }, labels.failed || 'Falha na Autenticação'), /*#__PURE__*/React.createElement(Text, {
1310
- size: "sm",
1311
- c: "dimmed",
1312
- ta: "center"
1313
- }, errorMessage || labels.invalidLink || 'O link é inválido ou expirou.')));
1299
+ return /*#__PURE__*/jsxs(AuthCard, {
1300
+ logo: finalLogo,
1301
+ ...cardProps,
1302
+ children: [status === 'verifying' && /*#__PURE__*/jsxs(Stack, {
1303
+ align: "center",
1304
+ gap: "sm",
1305
+ children: [/*#__PURE__*/jsx(Loader, {
1306
+ size: "lg"
1307
+ }), /*#__PURE__*/jsx(Title, {
1308
+ order: 4,
1309
+ children: labels.verifying || 'Verificando Link Mágico'
1310
+ }), /*#__PURE__*/jsx(Text, {
1311
+ size: "sm",
1312
+ c: "dimmed",
1313
+ ta: "center",
1314
+ children: labels.pleaseWait || 'Aguarde enquanto autenticamos você...'
1315
+ })]
1316
+ }), status === 'success' && /*#__PURE__*/jsxs(Stack, {
1317
+ align: "center",
1318
+ gap: "sm",
1319
+ children: [/*#__PURE__*/jsx(IconCheck, {
1320
+ size: 48,
1321
+ color: "var(--mantine-color-green-6)"
1322
+ }), /*#__PURE__*/jsx(Title, {
1323
+ order: 4,
1324
+ children: labels.success || 'Autenticado com Sucesso!'
1325
+ }), /*#__PURE__*/jsx(Text, {
1326
+ size: "sm",
1327
+ c: "dimmed",
1328
+ ta: "center",
1329
+ children: redirectTo ? labels.redirecting || 'Redirecionando...' : labels.authenticated || 'Você está autenticado.'
1330
+ })]
1331
+ }), status === 'error' && /*#__PURE__*/jsxs(Stack, {
1332
+ align: "center",
1333
+ gap: "sm",
1334
+ children: [/*#__PURE__*/jsx(IconX, {
1335
+ size: 48,
1336
+ color: "var(--mantine-color-red-6)"
1337
+ }), /*#__PURE__*/jsx(Title, {
1338
+ order: 4,
1339
+ children: labels.failed || 'Falha na Autenticação'
1340
+ }), /*#__PURE__*/jsx(Text, {
1341
+ size: "sm",
1342
+ c: "dimmed",
1343
+ ta: "center",
1344
+ children: errorMessage || labels.invalidLink || 'O link é inválido ou expirou.'
1345
+ })]
1346
+ })]
1347
+ });
1314
1348
  }
1315
1349
 
1316
- /**
1317
- * Formulário para solicitar reset de senha
1318
- */
1319
1350
  function ForgotPasswordForm({
1320
1351
  // Configuração
1321
1352
  logo,
@@ -1354,40 +1385,46 @@ function ForgotPasswordForm({
1354
1385
  onError?.(error);
1355
1386
  }
1356
1387
  };
1357
- return /*#__PURE__*/React.createElement(AuthCard, _extends({
1388
+ return /*#__PURE__*/jsxs(AuthCard, {
1358
1389
  logo: finalLogo,
1359
1390
  title: title,
1360
- subtitle: subtitle
1361
- }, cardProps), /*#__PURE__*/React.createElement("form", {
1362
- onSubmit: form.onSubmit(handleSubmit)
1363
- }, /*#__PURE__*/React.createElement(Stack, {
1364
- gap: "sm"
1365
- }, /*#__PURE__*/React.createElement(TextInput, _extends({
1366
- label: labels.email || 'Email',
1367
- placeholder: labels.emailPlaceholder || 'seu@email.com',
1368
- leftSection: /*#__PURE__*/React.createElement(IconMail, {
1369
- size: 16
1370
- })
1371
- }, form.getInputProps('email'), {
1372
- disabled: loading
1373
- })), /*#__PURE__*/React.createElement(Button, {
1374
- type: "submit",
1375
- fullWidth: true,
1376
- loading: loading,
1377
- leftSection: /*#__PURE__*/React.createElement(IconSend, {
1378
- size: 16
1379
- })
1380
- }, labels.sendButton || 'Enviar Link de Recuperação'))), showSignInLink && /*#__PURE__*/React.createElement(Center, null, /*#__PURE__*/React.createElement(Text, {
1381
- size: "sm",
1382
- c: "dimmed"
1383
- }, labels.rememberedPassword || 'Lembrou a senha?', " ", /*#__PURE__*/React.createElement(Anchor, {
1384
- href: signInUrl
1385
- }, labels.signIn || 'Entrar'))));
1391
+ subtitle: subtitle,
1392
+ ...cardProps,
1393
+ children: [/*#__PURE__*/jsx("form", {
1394
+ onSubmit: form.onSubmit(handleSubmit),
1395
+ children: /*#__PURE__*/jsxs(Stack, {
1396
+ gap: "sm",
1397
+ children: [/*#__PURE__*/jsx(TextInput, {
1398
+ label: labels.email || 'Email',
1399
+ placeholder: labels.emailPlaceholder || 'seu@email.com',
1400
+ leftSection: /*#__PURE__*/jsx(IconMail, {
1401
+ size: 16
1402
+ }),
1403
+ ...form.getInputProps('email'),
1404
+ disabled: loading
1405
+ }), /*#__PURE__*/jsx(Button, {
1406
+ type: "submit",
1407
+ fullWidth: true,
1408
+ loading: loading,
1409
+ leftSection: /*#__PURE__*/jsx(IconSend, {
1410
+ size: 16
1411
+ }),
1412
+ children: labels.sendButton || 'Enviar Link de Recuperação'
1413
+ })]
1414
+ })
1415
+ }), showSignInLink && /*#__PURE__*/jsx(Center, {
1416
+ children: /*#__PURE__*/jsxs(Text, {
1417
+ size: "sm",
1418
+ c: "dimmed",
1419
+ children: [labels.rememberedPassword || 'Lembrou a senha?', " ", /*#__PURE__*/jsx(Anchor, {
1420
+ href: signInUrl,
1421
+ children: labels.signIn || 'Entrar'
1422
+ })]
1423
+ })
1424
+ })]
1425
+ });
1386
1426
  }
1387
1427
 
1388
- /**
1389
- * Formulário para redefinir senha com token
1390
- */
1391
1428
  function ResetPasswordForm({
1392
1429
  // Configuração
1393
1430
  logo,
@@ -1445,76 +1482,88 @@ function ResetPasswordForm({
1445
1482
  }
1446
1483
  };
1447
1484
  if (success) {
1448
- return /*#__PURE__*/React.createElement(AuthCard, _extends({
1449
- logo: finalLogo
1450
- }, cardProps), /*#__PURE__*/React.createElement(Stack, {
1451
- align: "center",
1452
- gap: "sm"
1453
- }, /*#__PURE__*/React.createElement(IconCheck, {
1454
- size: 48,
1455
- color: "var(--mantine-color-green-6)"
1456
- }), /*#__PURE__*/React.createElement(Title, {
1457
- order: 4
1458
- }, labels.successTitle || 'Senha Redefinida!'), /*#__PURE__*/React.createElement(Text, {
1459
- size: "sm",
1460
- c: "dimmed",
1461
- ta: "center"
1462
- }, labels.successMessage || 'Sua senha foi alterada com sucesso.'), /*#__PURE__*/React.createElement(Button, {
1463
- component: "a",
1464
- href: signInUrl,
1465
- fullWidth: true
1466
- }, labels.goToSignIn || 'Ir para Login')));
1485
+ return /*#__PURE__*/jsx(AuthCard, {
1486
+ logo: finalLogo,
1487
+ ...cardProps,
1488
+ children: /*#__PURE__*/jsxs(Stack, {
1489
+ align: "center",
1490
+ gap: "sm",
1491
+ children: [/*#__PURE__*/jsx(IconCheck, {
1492
+ size: 48,
1493
+ color: "var(--mantine-color-green-6)"
1494
+ }), /*#__PURE__*/jsx(Title, {
1495
+ order: 4,
1496
+ children: labels.successTitle || 'Senha Redefinida!'
1497
+ }), /*#__PURE__*/jsx(Text, {
1498
+ size: "sm",
1499
+ c: "dimmed",
1500
+ ta: "center",
1501
+ children: labels.successMessage || 'Sua senha foi alterada com sucesso.'
1502
+ }), /*#__PURE__*/jsx(Button, {
1503
+ component: "a",
1504
+ href: signInUrl,
1505
+ fullWidth: true,
1506
+ children: labels.goToSignIn || 'Ir para Login'
1507
+ })]
1508
+ })
1509
+ });
1467
1510
  }
1468
1511
  if (!token) {
1469
- return /*#__PURE__*/React.createElement(AuthCard, _extends({
1470
- logo: finalLogo
1471
- }, cardProps), /*#__PURE__*/React.createElement(Stack, {
1472
- align: "center",
1473
- gap: "sm"
1474
- }, /*#__PURE__*/React.createElement(Text, {
1475
- c: "red"
1476
- }, labels.noToken || 'Token não encontrado na URL'), /*#__PURE__*/React.createElement(Button, {
1477
- component: "a",
1478
- href: signInUrl,
1479
- variant: "light",
1480
- fullWidth: true
1481
- }, labels.goToSignIn || 'Voltar para Login')));
1512
+ return /*#__PURE__*/jsx(AuthCard, {
1513
+ logo: finalLogo,
1514
+ ...cardProps,
1515
+ children: /*#__PURE__*/jsxs(Stack, {
1516
+ align: "center",
1517
+ gap: "sm",
1518
+ children: [/*#__PURE__*/jsx(Text, {
1519
+ c: "red",
1520
+ children: labels.noToken || 'Token não encontrado na URL'
1521
+ }), /*#__PURE__*/jsx(Button, {
1522
+ component: "a",
1523
+ href: signInUrl,
1524
+ variant: "light",
1525
+ fullWidth: true,
1526
+ children: labels.goToSignIn || 'Voltar para Login'
1527
+ })]
1528
+ })
1529
+ });
1482
1530
  }
1483
- return /*#__PURE__*/React.createElement(AuthCard, _extends({
1531
+ return /*#__PURE__*/jsx(AuthCard, {
1484
1532
  logo: finalLogo,
1485
1533
  title: title,
1486
- subtitle: subtitle
1487
- }, cardProps), /*#__PURE__*/React.createElement("form", {
1488
- onSubmit: form.onSubmit(handleSubmit)
1489
- }, /*#__PURE__*/React.createElement(Stack, {
1490
- gap: "sm"
1491
- }, /*#__PURE__*/React.createElement(PasswordInput, _extends({
1492
- label: labels.newPassword || 'Nova Senha',
1493
- placeholder: labels.newPasswordPlaceholder || 'Crie uma nova senha',
1494
- leftSection: /*#__PURE__*/React.createElement(IconLock, {
1495
- size: 16
1496
- })
1497
- }, form.getInputProps('password'), {
1498
- disabled: loading
1499
- })), /*#__PURE__*/React.createElement(PasswordInput, _extends({
1500
- label: labels.confirmPassword || 'Confirmar Senha',
1501
- placeholder: labels.confirmPasswordPlaceholder || 'Repita a nova senha',
1502
- leftSection: /*#__PURE__*/React.createElement(IconLock, {
1503
- size: 16
1534
+ subtitle: subtitle,
1535
+ ...cardProps,
1536
+ children: /*#__PURE__*/jsx("form", {
1537
+ onSubmit: form.onSubmit(handleSubmit),
1538
+ children: /*#__PURE__*/jsxs(Stack, {
1539
+ gap: "sm",
1540
+ children: [/*#__PURE__*/jsx(PasswordInput, {
1541
+ label: labels.newPassword || 'Nova Senha',
1542
+ placeholder: labels.newPasswordPlaceholder || 'Crie uma nova senha',
1543
+ leftSection: /*#__PURE__*/jsx(IconLock, {
1544
+ size: 16
1545
+ }),
1546
+ ...form.getInputProps('password'),
1547
+ disabled: loading
1548
+ }), /*#__PURE__*/jsx(PasswordInput, {
1549
+ label: labels.confirmPassword || 'Confirmar Senha',
1550
+ placeholder: labels.confirmPasswordPlaceholder || 'Repita a nova senha',
1551
+ leftSection: /*#__PURE__*/jsx(IconLock, {
1552
+ size: 16
1553
+ }),
1554
+ ...form.getInputProps('confirmPassword'),
1555
+ disabled: loading
1556
+ }), /*#__PURE__*/jsx(Button, {
1557
+ type: "submit",
1558
+ fullWidth: true,
1559
+ loading: loading,
1560
+ children: labels.resetButton || 'Redefinir Senha'
1561
+ })]
1562
+ })
1504
1563
  })
1505
- }, form.getInputProps('confirmPassword'), {
1506
- disabled: loading
1507
- })), /*#__PURE__*/React.createElement(Button, {
1508
- type: "submit",
1509
- fullWidth: true,
1510
- loading: loading
1511
- }, labels.resetButton || 'Redefinir Senha'))));
1564
+ });
1512
1565
  }
1513
1566
 
1514
- /**
1515
- * Card de verificação de email
1516
- * Verifica token automaticamente e permite reenvio
1517
- */
1518
1567
  function VerifyEmailCard({
1519
1568
  // Configuração
1520
1569
  logo,
@@ -1604,64 +1653,79 @@ function VerifyEmailCard({
1604
1653
  onError?.(error);
1605
1654
  }
1606
1655
  };
1607
- return /*#__PURE__*/React.createElement(AuthCard, _extends({
1608
- logo: finalLogo
1609
- }, cardProps), status === 'verifying' && /*#__PURE__*/React.createElement(Stack, {
1610
- align: "center",
1611
- gap: "sm"
1612
- }, /*#__PURE__*/React.createElement(Loader, {
1613
- size: "lg"
1614
- }), /*#__PURE__*/React.createElement(Title, {
1615
- order: 4
1616
- }, labels.verifying || 'Verificando Email'), /*#__PURE__*/React.createElement(Text, {
1617
- size: "sm",
1618
- c: "dimmed",
1619
- ta: "center"
1620
- }, labels.pleaseWait || 'Aguarde enquanto verificamos seu email...')), status === 'missing_token' && /*#__PURE__*/React.createElement(Stack, {
1621
- align: "center",
1622
- gap: "sm"
1623
- }, /*#__PURE__*/React.createElement(IconMail, {
1624
- size: 48,
1625
- color: "var(--mantine-color-blue-6)"
1626
- }), /*#__PURE__*/React.createElement(Title, {
1627
- order: 4
1628
- }, labels.verification || 'Verificação de Email'), /*#__PURE__*/React.createElement(Text, {
1629
- size: "sm",
1630
- c: "dimmed",
1631
- ta: "center"
1632
- }, labels.missingToken || 'Para verificar seu conta, clique no link enviado para seu email.')), status === 'success' && /*#__PURE__*/React.createElement(Stack, {
1633
- align: "center",
1634
- gap: "sm"
1635
- }, /*#__PURE__*/React.createElement(IconCheck, {
1636
- size: 48,
1637
- color: "var(--mantine-color-green-6)"
1638
- }), /*#__PURE__*/React.createElement(Title, {
1639
- order: 4
1640
- }, labels.success || 'Email Verificado!'), /*#__PURE__*/React.createElement(Text, {
1641
- size: "sm",
1642
- c: "dimmed",
1643
- ta: "center"
1644
- }, redirectTo ? labels.redirecting || 'Redirecionando...' : labels.verified || 'Seu email foi verificado com sucesso.')), status === 'error' && /*#__PURE__*/React.createElement(Stack, {
1645
- align: "center",
1646
- gap: "sm"
1647
- }, /*#__PURE__*/React.createElement(IconX, {
1648
- size: 48,
1649
- color: "var(--mantine-color-red-6)"
1650
- }), /*#__PURE__*/React.createElement(Title, {
1651
- order: 4
1652
- }, labels.failed || 'Verificação Falhou'), /*#__PURE__*/React.createElement(Text, {
1653
- size: "sm",
1654
- c: "dimmed",
1655
- ta: "center"
1656
- }, errorMessage || labels.invalidToken || 'O link é inválido ou expirou.'), (email || user?.email || tokenEmail) && errorMessage?.toLowerCase().includes('expired') && /*#__PURE__*/React.createElement(Button, {
1657
- variant: "light",
1658
- leftSection: /*#__PURE__*/React.createElement(IconRefresh, {
1659
- size: 16
1660
- }),
1661
- onClick: handleResend,
1662
- loading: loadingResend,
1663
- fullWidth: true
1664
- }, labels.resend || 'Solicitar novo link')));
1656
+ return /*#__PURE__*/jsxs(AuthCard, {
1657
+ logo: finalLogo,
1658
+ ...cardProps,
1659
+ children: [status === 'verifying' && /*#__PURE__*/jsxs(Stack, {
1660
+ align: "center",
1661
+ gap: "sm",
1662
+ children: [/*#__PURE__*/jsx(Loader, {
1663
+ size: "lg"
1664
+ }), /*#__PURE__*/jsx(Title, {
1665
+ order: 4,
1666
+ children: labels.verifying || 'Verificando Email'
1667
+ }), /*#__PURE__*/jsx(Text, {
1668
+ size: "sm",
1669
+ c: "dimmed",
1670
+ ta: "center",
1671
+ children: labels.pleaseWait || 'Aguarde enquanto verificamos seu email...'
1672
+ })]
1673
+ }), status === 'missing_token' && /*#__PURE__*/jsxs(Stack, {
1674
+ align: "center",
1675
+ gap: "sm",
1676
+ children: [/*#__PURE__*/jsx(IconMail, {
1677
+ size: 48,
1678
+ color: "var(--mantine-color-blue-6)"
1679
+ }), /*#__PURE__*/jsx(Title, {
1680
+ order: 4,
1681
+ children: labels.verification || 'Verificação de Email'
1682
+ }), /*#__PURE__*/jsx(Text, {
1683
+ size: "sm",
1684
+ c: "dimmed",
1685
+ ta: "center",
1686
+ children: labels.missingToken || 'Para verificar seu conta, clique no link enviado para seu email.'
1687
+ })]
1688
+ }), status === 'success' && /*#__PURE__*/jsxs(Stack, {
1689
+ align: "center",
1690
+ gap: "sm",
1691
+ children: [/*#__PURE__*/jsx(IconCheck, {
1692
+ size: 48,
1693
+ color: "var(--mantine-color-green-6)"
1694
+ }), /*#__PURE__*/jsx(Title, {
1695
+ order: 4,
1696
+ children: labels.success || 'Email Verificado!'
1697
+ }), /*#__PURE__*/jsx(Text, {
1698
+ size: "sm",
1699
+ c: "dimmed",
1700
+ ta: "center",
1701
+ children: redirectTo ? labels.redirecting || 'Redirecionando...' : labels.verified || 'Seu email foi verificado com sucesso.'
1702
+ })]
1703
+ }), status === 'error' && /*#__PURE__*/jsxs(Stack, {
1704
+ align: "center",
1705
+ gap: "sm",
1706
+ children: [/*#__PURE__*/jsx(IconX, {
1707
+ size: 48,
1708
+ color: "var(--mantine-color-red-6)"
1709
+ }), /*#__PURE__*/jsx(Title, {
1710
+ order: 4,
1711
+ children: labels.failed || 'Verificação Falhou'
1712
+ }), /*#__PURE__*/jsx(Text, {
1713
+ size: "sm",
1714
+ c: "dimmed",
1715
+ ta: "center",
1716
+ children: errorMessage || labels.invalidToken || 'O link é inválido ou expirou.'
1717
+ }), (email || user?.email || tokenEmail) && errorMessage?.toLowerCase().includes('expired') && /*#__PURE__*/jsx(Button, {
1718
+ variant: "light",
1719
+ leftSection: /*#__PURE__*/jsx(IconRefresh, {
1720
+ size: 16
1721
+ }),
1722
+ onClick: handleResend,
1723
+ loading: loadingResend,
1724
+ fullWidth: true,
1725
+ children: labels.resend || 'Solicitar novo link'
1726
+ })]
1727
+ })]
1728
+ });
1665
1729
  }
1666
1730
 
1667
1731
  export { AuthCard, AuthProvider, ForgotPasswordForm, MagicLinkForm, MagicLinkVerify, ProtectedRoute, ResetPasswordForm, SignInForm, SignUpForm, VerifyEmailCard, configure, decodeJWT, forgotPassword, getApplicationInfo, getCurrentUser, getSession, isAuthenticated, refreshToken, resendVerification, resetPassword, sendMagicLink, signIn, signOut, signUp, socialRedirect, useAuth, useAuthLoading, useAuthStore, useCheckToken, useEmailVerification, useMagicLink, usePasswordReset, useSession, useSignIn, useSignOut, useSignUp, verifyEmail, verifyMagicLink };