@ttoss/react-auth 2.5.11 → 2.5.12

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/esm/index.js CHANGED
@@ -3,10 +3,8 @@
3
3
  // src/Auth.tsx
4
4
  import { useNotifications as useNotifications2 } from "@ttoss/react-notifications";
5
5
  import { Flex as Flex5 } from "@ttoss/ui";
6
- import { useMachine } from "@xstate/react";
7
6
  import { confirmResetPassword, confirmSignUp, resendSignUpCode, resetPassword, signIn, signUp } from "aws-amplify/auth";
8
7
  import * as React5 from "react";
9
- import { assign, createMachine } from "xstate";
10
8
 
11
9
  // src/AuthCard.tsx
12
10
  import { useNotifications } from "@ttoss/react-notifications";
@@ -38,6 +36,7 @@ var AuthCard = ({
38
36
  } = useNotifications();
39
37
  return /* @__PURE__ */jsxs(Box, {
40
38
  sx: {
39
+ maxWidth: "400px",
41
40
  width: "full",
42
41
  border: "md",
43
42
  borderColor: "display.border.muted.default",
@@ -89,9 +88,10 @@ var AuthCard = ({
89
88
  };
90
89
 
91
90
  // src/AuthConfirmSignUp.tsx
91
+ import { NotificationCard } from "@ttoss/components/NotificationCard";
92
92
  import { Form, FormFieldInput, useForm, yup, yupResolver } from "@ttoss/forms";
93
93
  import { useI18n } from "@ttoss/react-i18n";
94
- import { jsx as jsx2 } from "react/jsx-runtime";
94
+ import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
95
95
  var AuthConfirmSignUp = ({
96
96
  email,
97
97
  onConfirmSignUp
@@ -135,7 +135,7 @@ var AuthConfirmSignUp = ({
135
135
  email
136
136
  });
137
137
  },
138
- children: /* @__PURE__ */jsx2(AuthCard, {
138
+ children: /* @__PURE__ */jsxs2(AuthCard, {
139
139
  buttonLabel: intl.formatMessage({
140
140
  id: "UNttd+",
141
141
  defaultMessage: [{
@@ -151,7 +151,19 @@ var AuthConfirmSignUp = ({
151
151
  "value": "Confirmation"
152
152
  }]
153
153
  }),
154
- children: /* @__PURE__ */jsx2(FormFieldInput, {
154
+ children: [/* @__PURE__ */jsx2(NotificationCard, {
155
+ type: "info",
156
+ message: intl.formatMessage({
157
+ id: "pwv2cR",
158
+ defaultMessage: [{
159
+ "type": 0,
160
+ "value": "We have sent a confirmation code to your email address. Please enter the code below."
161
+ }]
162
+ })
163
+ }), /* @__PURE__ */jsx2(FormFieldInput, {
164
+ sx: {
165
+ marginTop: "6"
166
+ },
155
167
  name: "code",
156
168
  label: intl.formatMessage({
157
169
  id: "KY2T6J",
@@ -160,7 +172,7 @@ var AuthConfirmSignUp = ({
160
172
  "value": "Code"
161
173
  }]
162
174
  })
163
- })
175
+ })]
164
176
  })
165
177
  });
166
178
  };
@@ -170,7 +182,7 @@ import { Form as Form2, FormFieldInput as FormFieldInput2, useForm as useForm2,
170
182
  import { useI18n as useI18n2 } from "@ttoss/react-i18n";
171
183
  import { NotificationsBox } from "@ttoss/react-notifications";
172
184
  import { Button as Button2, Link, Text } from "@ttoss/ui";
173
- import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
185
+ import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
174
186
  var AuthForgotPassword = ({
175
187
  onForgotPassword,
176
188
  onCancel,
@@ -210,7 +222,7 @@ var AuthForgotPassword = ({
210
222
  email
211
223
  });
212
224
  },
213
- children: /* @__PURE__ */jsxs2(AuthCard, {
225
+ children: /* @__PURE__ */jsxs3(AuthCard, {
214
226
  buttonLabel: intl.formatMessage({
215
227
  id: "mZzmNV",
216
228
  defaultMessage: [{
@@ -278,7 +290,7 @@ import { useI18n as useI18n3 } from "@ttoss/react-i18n";
278
290
  import { NotificationsBox as NotificationsBox2 } from "@ttoss/react-notifications";
279
291
  import { Button as Button3 } from "@ttoss/ui";
280
292
  import * as React2 from "react";
281
- import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
293
+ import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
282
294
  var AuthForgotPasswordResetPassword = ({
283
295
  email,
284
296
  onForgotPasswordResetPassword,
@@ -365,7 +377,7 @@ var AuthForgotPasswordResetPassword = ({
365
377
  newPassword: password
366
378
  });
367
379
  },
368
- children: /* @__PURE__ */jsxs3(AuthCard, {
380
+ children: /* @__PURE__ */jsxs4(AuthCard, {
369
381
  buttonLabel: intl.formatMessage({
370
382
  id: "mZzmNV",
371
383
  defaultMessage: [{
@@ -533,7 +545,7 @@ import { Form as Form4, FormFieldInput as FormFieldInput4, FormFieldPassword as
533
545
  import { useI18n as useI18n4 } from "@ttoss/react-i18n";
534
546
  import { NotificationsBox as NotificationsBox3 } from "@ttoss/react-notifications";
535
547
  import { Button as Button4, Flex as Flex3, Link as Link2, Text as Text2 } from "@ttoss/ui";
536
- import { jsx as jsx7, jsxs as jsxs4 } from "react/jsx-runtime";
548
+ import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
537
549
  var AuthSignIn = ({
538
550
  onSignIn,
539
551
  onSignUp,
@@ -595,19 +607,19 @@ var AuthSignIn = ({
595
607
  },
596
608
  ...formMethods,
597
609
  onSubmit: onSubmitForm,
598
- children: /* @__PURE__ */jsxs4(AuthCard, {
610
+ children: /* @__PURE__ */jsxs5(AuthCard, {
599
611
  title: intl.formatMessage({
600
- id: "F2iS37",
612
+ id: "SQJto2",
601
613
  defaultMessage: [{
602
614
  "type": 0,
603
- "value": "Log in"
615
+ "value": "Sign in"
604
616
  }]
605
617
  }),
606
618
  buttonLabel: intl.formatMessage({
607
- id: "/J+02x",
619
+ id: "SQJto2",
608
620
  defaultMessage: [{
609
621
  "type": 0,
610
- "value": "Log in"
622
+ "value": "Sign in"
611
623
  }]
612
624
  }),
613
625
  isValidForm: formMethods.formState.isValid,
@@ -628,7 +640,7 @@ var AuthSignIn = ({
628
640
  }]
629
641
  })
630
642
  }),
631
- children: [/* @__PURE__ */jsxs4(Flex3, {
643
+ children: [/* @__PURE__ */jsxs5(Flex3, {
632
644
  sx: {
633
645
  flexDirection: "column",
634
646
  gap: "xl"
@@ -683,7 +695,7 @@ import { useI18n as useI18n5 } from "@ttoss/react-i18n";
683
695
  import { NotificationsBox as NotificationsBox4 } from "@ttoss/react-notifications";
684
696
  import { Flex as Flex4, Link as Link3, Text as Text3 } from "@ttoss/ui";
685
697
  import * as React4 from "react";
686
- import { Fragment as Fragment2, jsx as jsx8, jsxs as jsxs5 } from "react/jsx-runtime";
698
+ import { Fragment as Fragment2, jsx as jsx8, jsxs as jsxs6 } from "react/jsx-runtime";
687
699
  var AuthSignUp = props => {
688
700
  const {
689
701
  intl
@@ -759,7 +771,7 @@ var AuthSignUp = props => {
759
771
  });
760
772
  const termsLinks = props.signUpTerms.terms.map((term, index, terms) => {
761
773
  const finalPunctuation = index === terms.length - 1 ? "." : ", ";
762
- return /* @__PURE__ */jsxs5(React4.Fragment, {
774
+ return /* @__PURE__ */jsxs6(React4.Fragment, {
763
775
  children: [/* @__PURE__ */jsx8(Link3, {
764
776
  href: term.url,
765
777
  target: "_blank",
@@ -768,7 +780,7 @@ var AuthSignUp = props => {
768
780
  }, index), finalPunctuation]
769
781
  }, index);
770
782
  });
771
- const label = /* @__PURE__ */jsxs5(Text3, {
783
+ const label = /* @__PURE__ */jsxs6(Text3, {
772
784
  children: [signUpTermsFirstMessage, " ", termsLinks]
773
785
  });
774
786
  return label;
@@ -802,7 +814,7 @@ var AuthSignUp = props => {
802
814
  },
803
815
  ...formMethods,
804
816
  onSubmit: onSubmitForm,
805
- children: /* @__PURE__ */jsxs5(AuthCard, {
817
+ children: /* @__PURE__ */jsxs6(AuthCard, {
806
818
  buttonLabel: intl.formatMessage({
807
819
  id: "URJDrG",
808
820
  defaultMessage: [{
@@ -832,7 +844,7 @@ var AuthSignUp = props => {
832
844
  }]
833
845
  })
834
846
  }),
835
- children: [/* @__PURE__ */jsxs5(Flex4, {
847
+ children: [/* @__PURE__ */jsxs6(Flex4, {
836
848
  sx: {
837
849
  flexDirection: "column",
838
850
  gap: "xl"
@@ -871,87 +883,15 @@ var AuthSignUp = props => {
871
883
  };
872
884
 
873
885
  // src/Auth.tsx
874
- import { jsx as jsx9, jsxs as jsxs6 } from "react/jsx-runtime";
875
- var authMachine = createMachine({
876
- predictableActionArguments: true,
877
- initial: "signIn",
878
- states: {
879
- signIn: {
880
- on: {
881
- SIGN_UP: {
882
- target: "signUp"
883
- },
884
- SIGN_UP_RESEND_CONFIRMATION: {
885
- actions: ["assignEmail"],
886
- target: "signUpConfirm"
887
- },
888
- FORGOT_PASSWORD: {
889
- target: "forgotPassword"
890
- }
891
- }
892
- },
893
- signUp: {
894
- on: {
895
- SIGN_UP_CONFIRM: {
896
- actions: ["assignEmail"],
897
- target: "signUpConfirm"
898
- },
899
- RETURN_TO_SIGN_IN: {
900
- target: "signIn"
901
- }
902
- }
903
- },
904
- signUpConfirm: {
905
- on: {
906
- SIGN_UP_CONFIRMED: {
907
- actions: ["assignEmail"],
908
- target: "signIn"
909
- }
910
- }
911
- },
912
- forgotPassword: {
913
- on: {
914
- RETURN_TO_SIGN_IN: {
915
- target: "signIn"
916
- },
917
- SIGN_UP: {
918
- target: "signUp"
919
- },
920
- FORGOT_PASSWORD_RESET_PASSWORD: {
921
- actions: ["assignEmail"],
922
- target: "forgotPasswordResetPassword"
923
- }
924
- }
925
- },
926
- forgotPasswordResetPassword: {
927
- on: {
928
- FORGOT_PASSWORD_CONFIRMED: {
929
- actions: ["assignEmail"],
930
- target: "signIn"
931
- },
932
- RETURN_TO_SIGN_IN: {
933
- target: "signIn"
934
- }
935
- }
936
- }
937
- }
938
- }, {
939
- actions: {
940
- assignEmail: assign({
941
- email: (_, event) => {
942
- if ("email" in event) {
943
- return event.email;
944
- }
945
- return void 0;
946
- }
947
- })
948
- }
949
- });
886
+ import { jsx as jsx9, jsxs as jsxs7 } from "react/jsx-runtime";
950
887
  var AuthLogic = props => {
951
888
  const {
952
889
  isAuthenticated
953
890
  } = useAuth();
954
- const [state, send] = useMachine(authMachine);
891
+ const [screen, setScreen] = React5.useState({
892
+ value: "signIn",
893
+ context: {}
894
+ });
955
895
  const {
956
896
  setLoading,
957
897
  addNotification,
@@ -959,7 +899,7 @@ var AuthLogic = props => {
959
899
  } = useNotifications2();
960
900
  React5.useEffect(() => {
961
901
  clearNotifications();
962
- }, [state.value, clearNotifications]);
902
+ }, [screen.value, clearNotifications]);
963
903
  React5.useEffect(() => {
964
904
  return clearNotifications;
965
905
  }, [clearNotifications]);
@@ -978,20 +918,23 @@ var AuthLogic = props => {
978
918
  type: "error",
979
919
  message: `For your security, we have updated our system and you need to reset your password in 'forgot your password?' to proceed`
980
920
  });
981
- }
982
- } catch (error) {
983
- switch (error.code) {
984
- case "UserNotConfirmedException":
985
- await resendSignUpCode({
986
- username: email
987
- });
988
- send({
989
- type: "SIGN_UP_RESEND_CONFIRMATION",
921
+ } else if (result.nextStep.signInStep === "CONFIRM_SIGN_UP") {
922
+ await resendSignUpCode({
923
+ username: email
924
+ });
925
+ setScreen({
926
+ value: "signUpResendConfirmation",
927
+ context: {
990
928
  email
991
- });
992
- break;
993
- default:
929
+ }
930
+ });
931
+ } else {
932
+ addNotification({
933
+ type: "error",
934
+ message: "Unknown error"
935
+ });
994
936
  }
937
+ } catch (error) {
995
938
  addNotification({
996
939
  type: "error",
997
940
  message: error.message
@@ -999,7 +942,7 @@ var AuthLogic = props => {
999
942
  } finally {
1000
943
  setLoading(false);
1001
944
  }
1002
- }, [send, setLoading, addNotification]);
945
+ }, [addNotification, setLoading]);
1003
946
  const onSignUp = React5.useCallback(async ({
1004
947
  email,
1005
948
  password
@@ -1015,9 +958,11 @@ var AuthLogic = props => {
1015
958
  }
1016
959
  }
1017
960
  });
1018
- send({
1019
- type: "SIGN_UP_CONFIRM",
1020
- email
961
+ setScreen({
962
+ value: "signUpConfirm",
963
+ context: {
964
+ email
965
+ }
1021
966
  });
1022
967
  } catch (error) {
1023
968
  addNotification({
@@ -1027,7 +972,7 @@ var AuthLogic = props => {
1027
972
  } finally {
1028
973
  setLoading(false);
1029
974
  }
1030
- }, [send, setLoading, addNotification]);
975
+ }, [setLoading, addNotification]);
1031
976
  const onConfirmSignUp = React5.useCallback(async ({
1032
977
  email,
1033
978
  code
@@ -1038,9 +983,11 @@ var AuthLogic = props => {
1038
983
  confirmationCode: code,
1039
984
  username: email
1040
985
  });
1041
- send({
1042
- type: "SIGN_UP_CONFIRMED",
1043
- email
986
+ setScreen({
987
+ value: "signIn",
988
+ context: {
989
+ email
990
+ }
1044
991
  });
1045
992
  } catch (error) {
1046
993
  addNotification({
@@ -1050,12 +997,13 @@ var AuthLogic = props => {
1050
997
  } finally {
1051
998
  setLoading(false);
1052
999
  }
1053
- }, [send, setLoading, addNotification]);
1000
+ }, [setLoading, addNotification]);
1054
1001
  const onReturnToSignIn = React5.useCallback(() => {
1055
- send({
1056
- type: "RETURN_TO_SIGN_IN"
1002
+ setScreen({
1003
+ value: "signIn",
1004
+ context: {}
1057
1005
  });
1058
- }, [send]);
1006
+ }, []);
1059
1007
  const onForgotPassword = React5.useCallback(async ({
1060
1008
  email
1061
1009
  }) => {
@@ -1064,9 +1012,11 @@ var AuthLogic = props => {
1064
1012
  await resetPassword({
1065
1013
  username: email
1066
1014
  });
1067
- send({
1068
- type: "FORGOT_PASSWORD_RESET_PASSWORD",
1069
- email
1015
+ setScreen({
1016
+ value: "forgotPasswordResetPassword",
1017
+ context: {
1018
+ email
1019
+ }
1070
1020
  });
1071
1021
  } catch (error) {
1072
1022
  addNotification({
@@ -1076,7 +1026,7 @@ var AuthLogic = props => {
1076
1026
  } finally {
1077
1027
  setLoading(false);
1078
1028
  }
1079
- }, [send, setLoading, addNotification]);
1029
+ }, [setLoading, addNotification]);
1080
1030
  const onForgotPasswordResetPassword = React5.useCallback(async ({
1081
1031
  email,
1082
1032
  code,
@@ -1089,9 +1039,11 @@ var AuthLogic = props => {
1089
1039
  username: email,
1090
1040
  newPassword
1091
1041
  });
1092
- send({
1093
- type: "FORGOT_PASSWORD_CONFIRMED",
1094
- email
1042
+ setScreen({
1043
+ value: "signIn",
1044
+ context: {
1045
+ email
1046
+ }
1095
1047
  });
1096
1048
  } catch (error) {
1097
1049
  addNotification({
@@ -1101,35 +1053,38 @@ var AuthLogic = props => {
1101
1053
  } finally {
1102
1054
  setLoading(false);
1103
1055
  }
1104
- }, [send, setLoading, addNotification]);
1056
+ }, [setLoading, addNotification]);
1105
1057
  if (isAuthenticated) {
1106
1058
  return null;
1107
1059
  }
1108
- if (state.matches("signUp")) {
1060
+ if (screen.value === "signUp") {
1109
1061
  return /* @__PURE__ */jsx9(AuthSignUp, {
1110
1062
  onSignUp,
1111
1063
  onReturnToSignIn,
1112
1064
  signUpTerms: props.signUpTerms
1113
1065
  });
1114
1066
  }
1115
- if (state.matches("signUpConfirm")) {
1067
+ if (screen.value === "signUpConfirm" || screen.value === "signUpResendConfirmation") {
1116
1068
  return /* @__PURE__ */jsx9(AuthConfirmSignUp, {
1117
1069
  onConfirmSignUp,
1118
- email: state.context.email
1070
+ email: screen.context.email
1119
1071
  });
1120
1072
  }
1121
- if (state.matches("forgotPassword")) {
1073
+ if (screen.value === "forgotPassword") {
1122
1074
  return /* @__PURE__ */jsx9(AuthForgotPassword, {
1123
1075
  onForgotPassword,
1124
1076
  onCancel: onReturnToSignIn,
1125
1077
  onSignUp: () => {
1126
- return send("SIGN_UP");
1078
+ setScreen({
1079
+ value: "signUp",
1080
+ context: {}
1081
+ });
1127
1082
  }
1128
1083
  });
1129
1084
  }
1130
- if (state.matches("forgotPasswordResetPassword")) {
1085
+ if (screen.value === "forgotPasswordResetPassword") {
1131
1086
  return /* @__PURE__ */jsx9(AuthForgotPasswordResetPassword, {
1132
- email: state.context.email,
1087
+ email: screen.context.email,
1133
1088
  onForgotPasswordResetPassword,
1134
1089
  onCancel: onReturnToSignIn
1135
1090
  });
@@ -1137,13 +1092,19 @@ var AuthLogic = props => {
1137
1092
  return /* @__PURE__ */jsx9(AuthSignIn, {
1138
1093
  onSignIn,
1139
1094
  onSignUp: () => {
1140
- return send("SIGN_UP");
1095
+ setScreen({
1096
+ value: "signUp",
1097
+ context: {}
1098
+ });
1141
1099
  },
1142
1100
  onForgotPassword: () => {
1143
- return send("FORGOT_PASSWORD");
1101
+ setScreen({
1102
+ value: "forgotPassword",
1103
+ context: {}
1104
+ });
1144
1105
  },
1145
1106
  defaultValues: {
1146
- email: state.context.email
1107
+ email: screen.context.email
1147
1108
  }
1148
1109
  });
1149
1110
  };
@@ -1164,7 +1125,7 @@ var Auth = props => {
1164
1125
  if (layout.fullScreen) {
1165
1126
  if (layout.sideContentPosition) {
1166
1127
  return /* @__PURE__ */jsx9(AuthFullScreen, {
1167
- children: /* @__PURE__ */jsxs6(Flex5, {
1128
+ children: /* @__PURE__ */jsxs7(Flex5, {
1168
1129
  sx: {
1169
1130
  width: "100%",
1170
1131
  height: "100%",
@@ -1,10 +1,4 @@
1
1
  {
2
- "/J+02x": [
3
- {
4
- "type": 0,
5
- "value": "Log in"
6
- }
7
- ],
8
2
  "0XOzcH": [
9
3
  {
10
4
  "type": 0,
@@ -79,12 +73,6 @@
79
73
  "value": "Sign up"
80
74
  }
81
75
  ],
82
- "F2iS37": [
83
- {
84
- "type": 0,
85
- "value": "Log in"
86
- }
87
- ],
88
76
  "KY2T6J": [
89
77
  {
90
78
  "type": 0,
@@ -135,6 +123,12 @@
135
123
  "value": "Recovering Password"
136
124
  }
137
125
  ],
126
+ "SQJto2": [
127
+ {
128
+ "type": 0,
129
+ "value": "Sign in"
130
+ }
131
+ ],
138
132
  "SnONhb": [
139
133
  {
140
134
  "type": 0,
@@ -231,6 +225,12 @@
231
225
  "value": "Sign up"
232
226
  }
233
227
  ],
228
+ "pwv2cR": [
229
+ {
230
+ "type": 0,
231
+ "value": "We have sent a confirmation code to your email address. Please enter the code below."
232
+ }
233
+ ],
234
234
  "qnQYqN": [
235
235
  {
236
236
  "type": 0,
package/i18n/lang/en.json CHANGED
@@ -1,8 +1,4 @@
1
1
  {
2
- "/J+02x": {
3
- "defaultMessage": "Log in",
4
- "description": "Button label."
5
- },
6
2
  "0XOzcH": {
7
3
  "defaultMessage": "Required field",
8
4
  "description": "Required field."
@@ -42,10 +38,6 @@
42
38
  "defaultMessage": "Sign up",
43
39
  "description": "Sign up"
44
40
  },
45
- "F2iS37": {
46
- "defaultMessage": "Log in",
47
- "description": "Sign in title."
48
- },
49
41
  "KY2T6J": {
50
42
  "defaultMessage": "Code",
51
43
  "description": "Sign up confirmation code"
@@ -70,6 +62,9 @@
70
62
  "defaultMessage": "Recovering Password",
71
63
  "description": "Recovering Password"
72
64
  },
65
+ "SQJto2": {
66
+ "defaultMessage": "Sign in"
67
+ },
73
68
  "SnONhb": {
74
69
  "defaultMessage": "Please, insert a valid e-mail",
75
70
  "description": "Please, insert a valid e-mail"
@@ -122,6 +117,9 @@
122
117
  "defaultMessage": "Sign up",
123
118
  "description": "Title on sign up."
124
119
  },
120
+ "pwv2cR": {
121
+ "defaultMessage": "We have sent a confirmation code to your email address. Please enter the code below."
122
+ },
125
123
  "qnQYqN": {
126
124
  "defaultMessage": "You must accept the terms and conditions"
127
125
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ttoss/react-auth",
3
- "version": "2.5.11",
3
+ "version": "2.5.12",
4
4
  "description": "ttoss authentication module for React apps.",
5
5
  "license": "MIT",
6
6
  "author": "ttoss",
@@ -24,17 +24,14 @@
24
24
  "i18n"
25
25
  ],
26
26
  "sideEffects": false,
27
- "dependencies": {
28
- "@xstate/react": "^3.2.2",
29
- "xstate": "^4.38.3",
30
- "@ttoss/forms": "^0.29.6"
31
- },
32
27
  "peerDependencies": {
33
28
  "aws-amplify": "^6.0.0",
34
29
  "react": ">=16.8.0",
30
+ "@ttoss/components": "^2.2.6",
31
+ "@ttoss/forms": "^0.29.7",
35
32
  "@ttoss/react-i18n": "^2.0.10",
36
- "@ttoss/react-notifications": "^2.1.11",
37
- "@ttoss/ui": "^5.5.3"
33
+ "@ttoss/react-notifications": "^2.1.12",
34
+ "@ttoss/ui": "^5.5.4"
38
35
  },
39
36
  "devDependencies": {
40
37
  "@jest/globals": "^29.7.0",
@@ -44,12 +41,14 @@
44
41
  "react": "^19.0.0",
45
42
  "tsup": "^8.3.5",
46
43
  "@ttoss/cloud-auth": "^0.12.27",
44
+ "@ttoss/components": "^2.2.6",
45
+ "@ttoss/config": "^1.35.2",
47
46
  "@ttoss/i18n-cli": "^0.7.27",
48
47
  "@ttoss/react-i18n": "^2.0.10",
49
- "@ttoss/config": "^1.35.2",
50
- "@ttoss/react-notifications": "^2.1.11",
48
+ "@ttoss/forms": "^0.29.7",
49
+ "@ttoss/react-notifications": "^2.1.12",
51
50
  "@ttoss/test-utils": "^2.1.22",
52
- "@ttoss/ui": "^5.5.3"
51
+ "@ttoss/ui": "^5.5.4"
53
52
  },
54
53
  "keywords": [
55
54
  "React",