@riligar/auth-react 1.10.0 → 1.12.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
@@ -2,8 +2,8 @@ import { create } from 'zustand';
2
2
  import { useMemo, useEffect, createContext, useState, useRef } from 'react';
3
3
  import { useShallow } from 'zustand/react/shallow';
4
4
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
5
- import { Navigate, Outlet } from 'react-router-dom';
6
- import { Paper, Stack, Image, Title, Text, TextInput, PasswordInput, Anchor, Button, Divider, Group, Center, Loader, Modal, Box, Avatar, Collapse, Card, Tooltip, ThemeIcon } from '@mantine/core';
5
+ import { Navigate, Outlet, useNavigate } from 'react-router-dom';
6
+ import { Modal, Stack, Text, Image, Title, Paper, TextInput, PasswordInput, Anchor, Button, Divider, Group, Center, Loader, Box, Avatar, Collapse, Card, Tooltip, ThemeIcon } from '@mantine/core';
7
7
  import { useForm } from '@mantine/form';
8
8
  import { IconMail, IconLock, IconArrowRight, IconBrandGoogle, IconBrandGithub, IconUser, IconSend, IconCheck, IconX, IconRefresh, IconPhoto, IconTrash, IconPencil, IconShield, IconKey, IconUserCircle } from '@tabler/icons-react';
9
9
  import { notifications } from '@mantine/notifications';
@@ -892,8 +892,8 @@ const useSession = () => useAuthStore(useShallow(s => ({
892
892
  // Loading States Hook
893
893
  const useAuthLoading = () => useAuthStore(s => s.loadingStates);
894
894
 
895
- // Profile Management Hook
896
- const useProfile = () => useAuthStore(useShallow(s => ({
895
+ // Profile Management Hook (novo nome estilo Clerk)
896
+ const useUser = () => useAuthStore(useShallow(s => ({
897
897
  user: s.user,
898
898
  updateProfile: s.updateProfile,
899
899
  changePassword: s.changePassword,
@@ -904,6 +904,9 @@ const useProfile = () => useAuthStore(useShallow(s => ({
904
904
  error: s.error
905
905
  })));
906
906
 
907
+ // Alias deprecado para backwards compatibility
908
+ const useProfile = useUser;
909
+
907
910
  // Application Logo Hook
908
911
  const useApplicationLogo = () => {
909
912
  const applicationInfo = useAuthStore(s => s.applicationInfo);
@@ -911,11 +914,11 @@ const useApplicationLogo = () => {
911
914
  return applicationInfo?.image || null;
912
915
  };
913
916
 
914
- function ProtectedRoute({
917
+ function Protect({
915
918
  fallback = /*#__PURE__*/jsx("p", {
916
919
  children: "\u231B Carregando..."
917
920
  }),
918
- redirectTo = "/login"
921
+ redirectTo = '/login'
919
922
  }) {
920
923
  const {
921
924
  user,
@@ -936,8 +939,68 @@ function AuthCard({
936
939
  logo,
937
940
  logoHeight = 28,
938
941
  width = 350,
942
+ // Variant props
943
+ variant = 'card',
944
+ opened,
945
+ onClose,
946
+ modalProps = {},
939
947
  ...props
940
948
  }) {
949
+ // Conteúdo interno compartilhado entre Card e Modal
950
+ const content = /*#__PURE__*/jsxs(Stack, {
951
+ gap: "sm",
952
+ children: [(logo || title || subtitle) && /*#__PURE__*/jsxs(Stack, {
953
+ gap: "xs",
954
+ children: [logo && /*#__PURE__*/jsx(Image, {
955
+ src: logo,
956
+ alt: "Auth",
957
+ h: logoHeight,
958
+ fit: "contain"
959
+ }), title && /*#__PURE__*/jsx(Title, {
960
+ order: 3,
961
+ children: title
962
+ }), subtitle && /*#__PURE__*/jsx(Text, {
963
+ size: "sm",
964
+ c: "dimmed",
965
+ children: subtitle
966
+ })]
967
+ }), children]
968
+ });
969
+
970
+ // Renderizar como Modal
971
+ if (variant === 'modal') {
972
+ return /*#__PURE__*/jsx(Modal, {
973
+ opened: opened,
974
+ onClose: onClose,
975
+ size: width + 50,
976
+ withCloseButton: true,
977
+ radius: "md",
978
+ overlayProps: {
979
+ backgroundOpacity: 0.55,
980
+ blur: 3
981
+ },
982
+ title: logo ? /*#__PURE__*/jsx(Image, {
983
+ src: logo,
984
+ alt: "Auth",
985
+ h: logoHeight,
986
+ fit: "contain"
987
+ }) : title ? /*#__PURE__*/jsx(Title, {
988
+ order: 4,
989
+ children: title
990
+ }) : null,
991
+ ...modalProps,
992
+ children: /*#__PURE__*/jsxs(Stack, {
993
+ gap: "sm",
994
+ children: [subtitle && /*#__PURE__*/jsx(Text, {
995
+ size: "sm",
996
+ c: "dimmed",
997
+ children: subtitle
998
+ }), children]
999
+ })
1000
+ });
1001
+ }
1002
+
1003
+ // Renderizar como Card (default)
941
1004
  return /*#__PURE__*/jsx(Paper, {
942
1005
  withBorder: true,
943
1006
  shadow: "md",
@@ -945,36 +1008,23 @@ function AuthCard({
945
1008
  w: width,
946
1009
  radius: "md",
947
1010
  ...props,
948
- children: /*#__PURE__*/jsxs(Stack, {
949
- gap: "sm",
950
- children: [(logo || title || subtitle) && /*#__PURE__*/jsxs(Stack, {
951
- gap: "xs",
952
- children: [logo && /*#__PURE__*/jsx(Image, {
953
- src: logo,
954
- alt: "Auth",
955
- h: logoHeight,
956
- fit: "contain"
957
- }), title && /*#__PURE__*/jsx(Title, {
958
- order: 3,
959
- children: title
960
- }), subtitle && /*#__PURE__*/jsx(Text, {
961
- size: "sm",
962
- c: "dimmed",
963
- children: subtitle
964
- })]
965
- }), children]
966
- })
1011
+ children: content
967
1012
  });
968
1013
  }
969
1014
 
970
1015
  var img = "data:image/webp;base64,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";
971
1016
 
972
- function SignInForm({
1017
+ function SignIn({
973
1018
  // Configuração
974
1019
  logo,
975
1020
  // Removido default, será calculado abaixo
976
1021
  title = 'Entrar',
977
1022
  subtitle = 'Acesse sua conta para continuar',
1023
+ // Variant
1024
+ variant = 'card',
1025
+ opened,
1026
+ onClose,
1027
+ modalProps = {},
978
1028
  // Features
979
1029
  showMagicLink = true,
980
1030
  showForgotPassword = true,
@@ -1049,6 +1099,10 @@ function SignInForm({
1049
1099
  logo: finalLogo,
1050
1100
  title: title,
1051
1101
  subtitle: subtitle,
1102
+ variant: variant,
1103
+ opened: opened,
1104
+ onClose: onClose,
1105
+ modalProps: modalProps,
1052
1106
  ...cardProps,
1053
1107
  children: [/*#__PURE__*/jsx("form", {
1054
1108
  onSubmit: form.onSubmit(handleSubmit),
@@ -1137,11 +1191,16 @@ function SignInForm({
1137
1191
  });
1138
1192
  }
1139
1193
 
1140
- function SignUpForm({
1194
+ function SignUp({
1141
1195
  // Configuração
1142
1196
  logo,
1143
1197
  title = 'Criar Conta',
1144
1198
  subtitle = 'Preencha os dados para se cadastrar',
1199
+ // Variant
1200
+ variant = 'card',
1201
+ opened,
1202
+ onClose,
1203
+ modalProps = {},
1145
1204
  // Features
1146
1205
  requireName = true,
1147
1206
  showSignInLink = true,
@@ -1188,6 +1247,10 @@ function SignUpForm({
1188
1247
  logo: finalLogo,
1189
1248
  title: title,
1190
1249
  subtitle: subtitle,
1250
+ variant: variant,
1251
+ opened: opened,
1252
+ onClose: onClose,
1253
+ modalProps: modalProps,
1191
1254
  ...cardProps,
1192
1255
  children: [/*#__PURE__*/jsx("form", {
1193
1256
  onSubmit: form.onSubmit(handleSubmit),
@@ -1271,11 +1334,16 @@ function SignUpForm({
1271
1334
  });
1272
1335
  }
1273
1336
 
1274
- function MagicLinkForm({
1337
+ function MagicLink({
1275
1338
  // Configuração
1276
1339
  logo,
1277
1340
  title = 'Login sem Senha',
1278
1341
  subtitle = 'Receba um link de acesso no seu email',
1342
+ // Variant
1343
+ variant = 'card',
1344
+ opened,
1345
+ onClose,
1346
+ modalProps = {},
1279
1347
  // Features
1280
1348
  showSignInLink = true,
1281
1349
  // Links
@@ -1313,6 +1381,10 @@ function MagicLinkForm({
1313
1381
  logo: finalLogo,
1314
1382
  title: title,
1315
1383
  subtitle: subtitle,
1384
+ variant: variant,
1385
+ opened: opened,
1386
+ onClose: onClose,
1387
+ modalProps: modalProps,
1316
1388
  ...cardProps,
1317
1389
  children: [/*#__PURE__*/jsx("form", {
1318
1390
  onSubmit: form.onSubmit(handleSubmit),
@@ -1349,7 +1421,7 @@ function MagicLinkForm({
1349
1421
  });
1350
1422
  }
1351
1423
 
1352
- function MagicLinkVerify({
1424
+ function MagicLinkCallback({
1353
1425
  // Configuração
1354
1426
  logo,
1355
1427
  // Token pode ser passado diretamente ou extraído da URL
@@ -1459,11 +1531,16 @@ function MagicLinkVerify({
1459
1531
  });
1460
1532
  }
1461
1533
 
1462
- function ForgotPasswordForm({
1534
+ function ForgotPassword({
1463
1535
  // Configuração
1464
1536
  logo,
1465
1537
  title = 'Recuperar Senha',
1466
1538
  subtitle = 'Enviaremos um link para redefinir sua senha',
1539
+ // Variant
1540
+ variant = 'card',
1541
+ opened,
1542
+ onClose,
1543
+ modalProps = {},
1467
1544
  // Features
1468
1545
  showSignInLink = true,
1469
1546
  // Links
@@ -1501,6 +1578,10 @@ function ForgotPasswordForm({
1501
1578
  logo: finalLogo,
1502
1579
  title: title,
1503
1580
  subtitle: subtitle,
1581
+ variant: variant,
1582
+ opened: opened,
1583
+ onClose: onClose,
1584
+ modalProps: modalProps,
1504
1585
  ...cardProps,
1505
1586
  children: [/*#__PURE__*/jsx("form", {
1506
1587
  onSubmit: form.onSubmit(handleSubmit),
@@ -1537,7 +1618,7 @@ function ForgotPasswordForm({
1537
1618
  });
1538
1619
  }
1539
1620
 
1540
- function ResetPasswordForm({
1621
+ function ResetPassword({
1541
1622
  // Configuração
1542
1623
  logo,
1543
1624
  title = 'Nova Senha',
@@ -1676,7 +1757,7 @@ function ResetPasswordForm({
1676
1757
  });
1677
1758
  }
1678
1759
 
1679
- function VerifyEmailCard({
1760
+ function VerifyEmail({
1680
1761
  // Configuração
1681
1762
  logo,
1682
1763
  // Token pode ser passado diretamente ou extraído da URL
@@ -1840,8 +1921,9 @@ function VerifyEmailCard({
1840
1921
  });
1841
1922
  }
1842
1923
 
1843
- function AccountModal({
1844
- // Controle do modal
1924
+ function UserProfile({
1925
+ // Variant
1926
+ variant = 'modal',
1845
1927
  opened,
1846
1928
  onClose,
1847
1929
  // Callbacks
@@ -1858,11 +1940,14 @@ function AccountModal({
1858
1940
  labels = {},
1859
1941
  title = 'Account',
1860
1942
  subtitle = 'Manage your account info.',
1943
+ logo,
1944
+ logoHeight = 28,
1945
+ width = 500,
1861
1946
  // Avatar config
1862
1947
  maxAvatarSize = 500 * 1024,
1863
1948
  // 500KB
1864
1949
 
1865
- ...modalProps
1950
+ ...containerProps
1866
1951
  }) {
1867
1952
  // Local state - which section is expanded
1868
1953
  const [editingSection, setEditingSection] = useState(null); // 'password' | 'email' | 'name' | 'avatar' | null
@@ -2176,39 +2261,10 @@ function AccountModal({
2176
2261
  })]
2177
2262
  })
2178
2263
  });
2179
- return /*#__PURE__*/jsxs(Modal, {
2180
- opened: opened,
2181
- onClose: onClose,
2182
- size: 550,
2183
- withCloseButton: true,
2184
- radius: "lg",
2185
- overlayProps: {
2186
- backgroundOpacity: 0.55,
2187
- blur: 3
2188
- },
2189
- title: /*#__PURE__*/jsxs(Group, {
2190
- gap: "md",
2191
- children: [/*#__PURE__*/jsx(ThemeIcon, {
2192
- size: 44,
2193
- variant: "light",
2194
- children: /*#__PURE__*/jsx(IconUserCircle, {
2195
- size: 24
2196
- })
2197
- }), /*#__PURE__*/jsxs(Box, {
2198
- children: [/*#__PURE__*/jsx(Title, {
2199
- order: 4,
2200
- children: title
2201
- }), /*#__PURE__*/jsx(Text, {
2202
- size: "sm",
2203
- c: "dimmed",
2204
- children: subtitle
2205
- })]
2206
- })]
2207
- }),
2208
- ...modalProps,
2209
- children: [/*#__PURE__*/jsx(Divider, {
2210
- mb: "md"
2211
- }), (showAvatar || showName || showEmail) && /*#__PURE__*/jsxs(Box, {
2264
+
2265
+ // Conteúdo interno compartilhado
2266
+ const profileContent = /*#__PURE__*/jsxs(Fragment, {
2267
+ children: [(showAvatar || showName || showEmail) && /*#__PURE__*/jsxs(Box, {
2212
2268
  mb: "xl",
2213
2269
  children: [/*#__PURE__*/jsx(SectionHeader, {
2214
2270
  icon: IconUser,
@@ -2513,7 +2569,184 @@ function AccountModal({
2513
2569
  })]
2514
2570
  })]
2515
2571
  });
2572
+
2573
+ // Renderizar como Modal
2574
+ if (variant === 'modal') {
2575
+ return /*#__PURE__*/jsxs(Modal, {
2576
+ opened: opened,
2577
+ onClose: onClose,
2578
+ size: width + 50,
2579
+ withCloseButton: true,
2580
+ radius: "md",
2581
+ overlayProps: {
2582
+ backgroundOpacity: 0.55,
2583
+ blur: 3
2584
+ },
2585
+ title: /*#__PURE__*/jsxs(Group, {
2586
+ gap: "md",
2587
+ children: [/*#__PURE__*/jsx(ThemeIcon, {
2588
+ size: 44,
2589
+ variant: "light",
2590
+ children: /*#__PURE__*/jsx(IconUserCircle, {
2591
+ size: 24
2592
+ })
2593
+ }), /*#__PURE__*/jsxs(Box, {
2594
+ children: [/*#__PURE__*/jsx(Title, {
2595
+ order: 4,
2596
+ children: title
2597
+ }), /*#__PURE__*/jsx(Text, {
2598
+ size: "sm",
2599
+ c: "dimmed",
2600
+ children: subtitle
2601
+ })]
2602
+ })]
2603
+ }),
2604
+ ...containerProps,
2605
+ children: [/*#__PURE__*/jsx(Divider, {
2606
+ mb: "md"
2607
+ }), profileContent]
2608
+ });
2609
+ }
2610
+
2611
+ // Renderizar como Card
2612
+ return /*#__PURE__*/jsx(Paper, {
2613
+ withBorder: true
2614
+ // shadow="md"
2615
+ ,
2616
+ p: "md",
2617
+ w: width,
2618
+ radius: "md",
2619
+ ...containerProps,
2620
+ children: /*#__PURE__*/jsxs(Stack, {
2621
+ gap: "sm",
2622
+ children: [/*#__PURE__*/jsxs(Group, {
2623
+ gap: "md",
2624
+ children: [logo ? /*#__PURE__*/jsx(Image, {
2625
+ src: logo,
2626
+ alt: "Auth",
2627
+ h: logoHeight,
2628
+ fit: "contain"
2629
+ }) : /*#__PURE__*/jsx(ThemeIcon, {
2630
+ size: 44,
2631
+ variant: "light",
2632
+ children: /*#__PURE__*/jsx(IconUserCircle, {
2633
+ size: 24
2634
+ })
2635
+ }), /*#__PURE__*/jsxs(Box, {
2636
+ children: [/*#__PURE__*/jsx(Title, {
2637
+ order: 4,
2638
+ children: title
2639
+ }), /*#__PURE__*/jsx(Text, {
2640
+ size: "sm",
2641
+ c: "dimmed",
2642
+ children: subtitle
2643
+ })]
2644
+ })]
2645
+ }), /*#__PURE__*/jsx(Divider, {}), profileContent]
2646
+ })
2647
+ });
2648
+ }
2649
+
2650
+ /**
2651
+ * Renderiza children apenas quando o usuário está autenticado
2652
+ * Equivalente ao <SignedIn> do Clerk
2653
+ */
2654
+ function SignedIn({
2655
+ children
2656
+ }) {
2657
+ const {
2658
+ user,
2659
+ loading
2660
+ } = useAuth();
2661
+ if (loading || !user) return null;
2662
+ return children;
2663
+ }
2664
+
2665
+ /**
2666
+ * Renderiza children apenas quando o usuário NÃO está autenticado
2667
+ * Equivalente ao <SignedOut> do Clerk
2668
+ */
2669
+ function SignedOut({
2670
+ children
2671
+ }) {
2672
+ const {
2673
+ user,
2674
+ loading
2675
+ } = useAuth();
2676
+ if (loading || user) return null;
2677
+ return children;
2678
+ }
2679
+
2680
+ /**
2681
+ * Renderiza children enquanto a autenticação está carregando
2682
+ * Equivalente ao <ClerkLoading> do Clerk
2683
+ */
2684
+ function AuthLoading({
2685
+ children
2686
+ }) {
2687
+ const {
2688
+ loading
2689
+ } = useAuth();
2690
+ if (!loading) return null;
2691
+ return children;
2692
+ }
2693
+
2694
+ /**
2695
+ * Renderiza children quando a autenticação terminou de carregar
2696
+ * Equivalente ao <ClerkLoaded> do Clerk
2697
+ */
2698
+ function AuthLoaded({
2699
+ children
2700
+ }) {
2701
+ const {
2702
+ loading
2703
+ } = useAuth();
2704
+ if (loading) return null;
2705
+ return children;
2706
+ }
2707
+
2708
+ function SignInButton({
2709
+ children,
2710
+ redirectTo = '/login',
2711
+ ...props
2712
+ }) {
2713
+ const navigate = useNavigate();
2714
+ return /*#__PURE__*/jsx("button", {
2715
+ onClick: () => navigate(redirectTo),
2716
+ ...props,
2717
+ children: children || 'Sign In'
2718
+ });
2719
+ }
2720
+
2721
+ function SignUpButton({
2722
+ children,
2723
+ redirectTo = '/register',
2724
+ ...props
2725
+ }) {
2726
+ const navigate = useNavigate();
2727
+ return /*#__PURE__*/jsx("button", {
2728
+ onClick: () => navigate(redirectTo),
2729
+ ...props,
2730
+ children: children || 'Sign Up'
2731
+ });
2732
+ }
2733
+
2734
+ function SignOutButton({
2735
+ children,
2736
+ onSignOut,
2737
+ ...props
2738
+ }) {
2739
+ const signOut = useSignOut();
2740
+ const handleClick = async () => {
2741
+ await signOut();
2742
+ onSignOut?.();
2743
+ };
2744
+ return /*#__PURE__*/jsx("button", {
2745
+ onClick: handleClick,
2746
+ ...props,
2747
+ children: children || 'Sign Out'
2748
+ });
2516
2749
  }
2517
2750
 
2518
- export { AccountModal, AuthCard, AuthProvider, ForgotPasswordForm, MagicLinkForm, MagicLinkVerify, ProtectedRoute, ResetPasswordForm, SignInForm, SignUpForm, VerifyEmailCard, changeEmail, changePassword, configure, decodeJWT, forgotPassword, getApplicationInfo, getCurrentUser, getSession, isAuthenticated, refreshToken, resendVerification, resetPassword, sendMagicLink, signIn, signOut, signUp, socialRedirect, updateProfile, useAuth, useAuthLoading, useAuthStore, useCheckToken, useEmailVerification, useMagicLink, usePasswordReset, useProfile, useSession, useSignIn, useSignOut, useSignUp, verifyEmail, verifyMagicLink };
2751
+ export { UserProfile as AccountModal, AuthCard, AuthLoaded, AuthLoading, AuthProvider, ForgotPassword, ForgotPassword as ForgotPasswordForm, MagicLink, MagicLinkCallback, MagicLink as MagicLinkForm, MagicLinkCallback as MagicLinkVerify, Protect, Protect as ProtectedRoute, ResetPassword, ResetPassword as ResetPasswordForm, SignIn, SignInButton, SignIn as SignInForm, SignOutButton, SignUp, SignUpButton, SignUp as SignUpForm, SignedIn, SignedOut, UserProfile, VerifyEmail, VerifyEmail as VerifyEmailCard, changeEmail, changePassword, configure, decodeJWT, forgotPassword, getApplicationInfo, getCurrentUser, getSession, isAuthenticated, refreshToken, resendVerification, resetPassword, sendMagicLink, signIn, signOut, signUp, socialRedirect, updateProfile, useApplicationLogo, useAuth, useAuthLoading, useAuthStore, useCheckToken, useEmailVerification, useMagicLink, usePasswordReset, useUser as useProfile, useSession, useSignIn, useSignOut, useSignUp, useUser, verifyEmail, verifyMagicLink };
2519
2752
  //# sourceMappingURL=index.esm.js.map