@sikka/hawa 0.5.2-next → 0.5.3-next

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.d.mts CHANGED
@@ -866,6 +866,7 @@ type RegisterFormTypes = {
866
866
  passwordTooShortText: string;
867
867
  confirmPasswordLabel: string;
868
868
  confirmPasswordPlaceholder: string;
869
+ confirmPasswordRequired: string;
869
870
  refCodePlaceholder: string;
870
871
  subscribeToNewsletter: string;
871
872
  forgotPasswordText: string;
package/dist/index.d.ts CHANGED
@@ -866,6 +866,7 @@ type RegisterFormTypes = {
866
866
  passwordTooShortText: string;
867
867
  confirmPasswordLabel: string;
868
868
  confirmPasswordPlaceholder: string;
869
+ confirmPasswordRequired: string;
869
870
  refCodePlaceholder: string;
870
871
  subscribeToNewsletter: string;
871
872
  forgotPasswordText: string;
package/dist/index.js CHANGED
@@ -6295,31 +6295,51 @@ var import_react_hook_form2 = require("react-hook-form");
6295
6295
  var import_zod = require("@hookform/resolvers/zod");
6296
6296
  var z = __toESM(require("zod"));
6297
6297
  var LoginForm = function(props) {
6298
- var _props_texts, _props_texts1, _props_texts2, _props_texts3, _props_texts4, _props_texts5, _props_texts6, _props_texts7, _props_texts8, _props_texts9, _props_texts10, _props_texts11, _props_texts12;
6299
- var formSchema2 = z.object({
6300
- email: z.string({
6301
- required_error: (_props_texts = props.texts) === null || _props_texts === void 0 ? void 0 : _props_texts.emailRequiredText
6302
- }).nonempty({
6303
- message: (_props_texts1 = props.texts) === null || _props_texts1 === void 0 ? void 0 : _props_texts1.emailRequiredText
6304
- }).email({
6305
- message: (_props_texts2 = props.texts) === null || _props_texts2 === void 0 ? void 0 : _props_texts2.emailInvalidText
6306
- }),
6307
- password: z.string({
6308
- required_error: (_props_texts3 = props.texts) === null || _props_texts3 === void 0 ? void 0 : _props_texts3.passwordRequiredText
6309
- }).min(5, {
6310
- message: "Password must be at least 5 characters long"
6311
- }).nonempty({
6312
- message: (_props_texts4 = props.texts) === null || _props_texts4 === void 0 ? void 0 : _props_texts4.passwordRequiredText
6313
- }),
6314
- username: z.string().min(2, {
6315
- message: "Username must be at least 2 characters"
6316
- }).nonempty({
6317
- message: (_props_texts5 = props.texts) === null || _props_texts5 === void 0 ? void 0 : _props_texts5.usernameRequired
6318
- }),
6319
- phone: z.string().nonempty({
6320
- message: "Phone number is required"
6321
- })
6322
- });
6298
+ var _props_texts, _props_texts1, _props_texts2, _props_texts3, _props_texts4, _props_texts5, _props_texts6;
6299
+ var formSchema2;
6300
+ if (props.loginType === "email") {
6301
+ var _props_texts7, _props_texts8, _props_texts9, _props_texts10, _props_texts11;
6302
+ formSchema2 = z.object({
6303
+ email: z.string({
6304
+ required_error: (_props_texts7 = props.texts) === null || _props_texts7 === void 0 ? void 0 : _props_texts7.emailRequiredText
6305
+ }).nonempty({
6306
+ message: (_props_texts8 = props.texts) === null || _props_texts8 === void 0 ? void 0 : _props_texts8.emailRequiredText
6307
+ }).email({
6308
+ message: (_props_texts9 = props.texts) === null || _props_texts9 === void 0 ? void 0 : _props_texts9.emailInvalidText
6309
+ }),
6310
+ password: z.string({
6311
+ required_error: (_props_texts10 = props.texts) === null || _props_texts10 === void 0 ? void 0 : _props_texts10.passwordRequiredText
6312
+ }).min(5, {
6313
+ message: "Password must be at least 5 characters long"
6314
+ }).nonempty({
6315
+ message: (_props_texts11 = props.texts) === null || _props_texts11 === void 0 ? void 0 : _props_texts11.passwordRequiredText
6316
+ })
6317
+ });
6318
+ } else if (props.loginType === "username") {
6319
+ var _props_texts12, _props_texts13, _props_texts14;
6320
+ formSchema2 = z.object({
6321
+ username: z.string().min(2, {
6322
+ message: "Username must be at least 2 characters"
6323
+ }).nonempty({
6324
+ message: (_props_texts12 = props.texts) === null || _props_texts12 === void 0 ? void 0 : _props_texts12.usernameRequired
6325
+ }),
6326
+ password: z.string({
6327
+ required_error: (_props_texts13 = props.texts) === null || _props_texts13 === void 0 ? void 0 : _props_texts13.passwordRequiredText
6328
+ }).min(5, {
6329
+ message: "Password must be at least 5 characters long"
6330
+ }).nonempty({
6331
+ message: (_props_texts14 = props.texts) === null || _props_texts14 === void 0 ? void 0 : _props_texts14.passwordRequiredText
6332
+ })
6333
+ });
6334
+ } else if (props.loginType === "phone") {
6335
+ formSchema2 = z.object({
6336
+ phone: z.string().nonempty({
6337
+ message: "Phone number is required"
6338
+ })
6339
+ });
6340
+ } else {
6341
+ formSchema2 = z.object({});
6342
+ }
6323
6343
  var _ref = (0, import_react_hook_form2.useForm)({
6324
6344
  resolver: (0, import_zod.zodResolver)(formSchema2)
6325
6345
  }), handleSubmit = _ref.handleSubmit, control = _ref.control, formState = _ref.formState;
@@ -6338,7 +6358,7 @@ var LoginForm = function(props) {
6338
6358
  onSubmit: handleSubmit(function(e) {
6339
6359
  if (props.handleLogin) {
6340
6360
  console.log("attempting to login");
6341
- props.handleLogin(e);
6361
+ return props.handleLogin(e);
6342
6362
  } else {
6343
6363
  console.log("Form is submitted but handleLogin prop is missing");
6344
6364
  }
@@ -6411,16 +6431,16 @@ var LoginForm = function(props) {
6411
6431
  }), !props.withoutResetPassword && /* @__PURE__ */ import_react33.default.createElement("div", {
6412
6432
  onClick: props.handleForgotPassword,
6413
6433
  className: "hawa-mb-3 hawa-mt-2 hawa-w-fit hawa-cursor-pointer hawa-text-xs dark:hawa-text-gray-300"
6414
- }, ((_props_texts6 = props.texts) === null || _props_texts6 === void 0 ? void 0 : _props_texts6.forgotPasswordText) || "Forgot Password?")), /* @__PURE__ */ import_react33.default.createElement(Button, {
6434
+ }, ((_props_texts = props.texts) === null || _props_texts === void 0 ? void 0 : _props_texts.forgotPasswordText) || "Forgot Password?")), /* @__PURE__ */ import_react33.default.createElement(Button, {
6415
6435
  className: "hawa-mt-0 hawa-w-full",
6416
6436
  type: "submit",
6417
6437
  isLoading: props.isLoading
6418
- }, ((_props_texts7 = props.texts) === null || _props_texts7 === void 0 ? void 0 : _props_texts7.loginText) || "Login"), !props.withoutSignUp && /* @__PURE__ */ import_react33.default.createElement("div", {
6438
+ }, ((_props_texts1 = props.texts) === null || _props_texts1 === void 0 ? void 0 : _props_texts1.loginText) || "Login"), !props.withoutSignUp && /* @__PURE__ */ import_react33.default.createElement("div", {
6419
6439
  className: "hawa-p-3 hawa-text-center hawa-text-sm hawa-font-normal dark:hawa-text-gray-300"
6420
- }, ((_props_texts8 = props.texts) === null || _props_texts8 === void 0 ? void 0 : _props_texts8.newUserText) || "New user?", " ", /* @__PURE__ */ import_react33.default.createElement("span", {
6440
+ }, ((_props_texts2 = props.texts) === null || _props_texts2 === void 0 ? void 0 : _props_texts2.newUserText) || "New user?", " ", /* @__PURE__ */ import_react33.default.createElement("span", {
6421
6441
  onClick: props.handleRouteToSignUp,
6422
6442
  className: "clickable-link"
6423
- }, ((_props_texts9 = props.texts) === null || _props_texts9 === void 0 ? void 0 : _props_texts9.createAccount) || "Create Account")))), props.viaGithub || props.viaGoogle || props.viaTwitter ? /* @__PURE__ */ import_react33.default.createElement(CardFooter, {
6443
+ }, ((_props_texts3 = props.texts) === null || _props_texts3 === void 0 ? void 0 : _props_texts3.createAccount) || "Create Account")))), props.viaGithub || props.viaGoogle || props.viaTwitter ? /* @__PURE__ */ import_react33.default.createElement(CardFooter, {
6424
6444
  className: cn(props.logosOnly ? "hawa-flex hawa-flex-row hawa-justify-center hawa-gap-2" : "hawa-grid hawa-grid-cols-1 hawa-gap-2")
6425
6445
  }, props.viaGoogle && /* @__PURE__ */ import_react33.default.createElement(Button, {
6426
6446
  className: "hawa-flex hawa-flex-row hawa-items-center hawa-gap-2",
@@ -6430,7 +6450,7 @@ var LoginForm = function(props) {
6430
6450
  size: "button"
6431
6451
  }) : /* @__PURE__ */ import_react33.default.createElement(Logos.google, {
6432
6452
  className: "hawa-h-4 hawa-w-4"
6433
- }), !props.logosOnly && ((_props_texts10 = props.texts) === null || _props_texts10 === void 0 ? void 0 : _props_texts10.loginViaGoogleLabel)), props.viaGithub && /* @__PURE__ */ import_react33.default.createElement(Button, {
6453
+ }), !props.logosOnly && ((_props_texts4 = props.texts) === null || _props_texts4 === void 0 ? void 0 : _props_texts4.loginViaGoogleLabel)), props.viaGithub && /* @__PURE__ */ import_react33.default.createElement(Button, {
6434
6454
  className: "hawa-flex hawa-flex-row hawa-items-center hawa-gap-2",
6435
6455
  variant: "outline",
6436
6456
  onClick: props.handleGithubLogin
@@ -6438,7 +6458,7 @@ var LoginForm = function(props) {
6438
6458
  size: "button"
6439
6459
  }) : /* @__PURE__ */ import_react33.default.createElement(Logos.gitHub, {
6440
6460
  className: "hawa-h-4 hawa-w-4"
6441
- }), !props.logosOnly && ((_props_texts11 = props.texts) === null || _props_texts11 === void 0 ? void 0 : _props_texts11.loginViaGithubLabel)), props.viaTwitter && /* @__PURE__ */ import_react33.default.createElement(Button, {
6461
+ }), !props.logosOnly && ((_props_texts5 = props.texts) === null || _props_texts5 === void 0 ? void 0 : _props_texts5.loginViaGithubLabel)), props.viaTwitter && /* @__PURE__ */ import_react33.default.createElement(Button, {
6442
6462
  className: "hawa-flex hawa-flex-row hawa-items-center hawa-gap-2",
6443
6463
  variant: "outline",
6444
6464
  onClick: props.handleTwitterLogin
@@ -6446,7 +6466,7 @@ var LoginForm = function(props) {
6446
6466
  size: "button"
6447
6467
  }) : /* @__PURE__ */ import_react33.default.createElement(Logos.twitter, {
6448
6468
  className: "hawa-h-4 hawa-w-4"
6449
- }), " ", !props.logosOnly && ((_props_texts12 = props.texts) === null || _props_texts12 === void 0 ? void 0 : _props_texts12.loginViaTwitterLabel))) : null), props.handleColorMode && props.handleLanguage && /* @__PURE__ */ import_react33.default.createElement(InterfaceSettings, {
6469
+ }), " ", !props.logosOnly && ((_props_texts6 = props.texts) === null || _props_texts6 === void 0 ? void 0 : _props_texts6.loginViaTwitterLabel))) : null), props.handleColorMode && props.handleLanguage && /* @__PURE__ */ import_react33.default.createElement(InterfaceSettings, {
6450
6470
  currentColorMode: props.currentColorMode,
6451
6471
  currentLanguage: props.currentLanguage,
6452
6472
  handleColorMode: props.handleColorMode,
@@ -6460,23 +6480,34 @@ var import_zod2 = require("@hookform/resolvers/zod");
6460
6480
  var z2 = __toESM(require("zod"));
6461
6481
  var RegisterForm = function(props) {
6462
6482
  var methods = (0, import_react_hook_form3.useForm)();
6463
- var _props_texts = props.texts, userReferenceLabel = _props_texts.userReferenceLabel, usernameLabel = _props_texts.usernameLabel, usernamePlaceholder = _props_texts.usernamePlaceholder, usernameRequired = _props_texts.usernameRequired, newUserText = _props_texts.newUserText, existingUserText = _props_texts.existingUserText, emailInvalidText = _props_texts.emailInvalidText, emailLabel = _props_texts.emailLabel, emailPlaceholder = _props_texts.emailPlaceholder, emailRequiredText = _props_texts.emailRequiredText, passwordLabel = _props_texts.passwordLabel, passwordPlaceholder = _props_texts.passwordPlaceholder, passwordRequiredText = _props_texts.passwordRequiredText, passwordTooShortText = _props_texts.passwordTooShortText, forgotPasswordText = _props_texts.forgotPasswordText, confirmPasswordLabel = _props_texts.confirmPasswordLabel, confirmPasswordPlaceholder = _props_texts.confirmPasswordPlaceholder, termsRequiredText = _props_texts.termsRequiredText, fullNameRequiredText = _props_texts.fullNameRequiredText;
6464
- var formSchema2 = z2.object({
6465
- fullName: z2.string().optional(),
6466
- email: z2.string({
6467
- required_error: emailRequiredText
6468
- }).email({
6469
- message: emailInvalidText
6470
- }).nonempty({
6471
- message: usernameRequired
6472
- }),
6473
- username: z2.string({
6474
- required_error: usernameRequired
6475
- }).refine(function(value) {
6476
- return value !== "";
6477
- }, {
6478
- message: usernameRequired
6479
- }),
6483
+ var _props_texts = props.texts, userReferenceLabel = _props_texts.userReferenceLabel, usernameLabel = _props_texts.usernameLabel, usernamePlaceholder = _props_texts.usernamePlaceholder, usernameRequired = _props_texts.usernameRequired, newUserText = _props_texts.newUserText, existingUserText = _props_texts.existingUserText, emailInvalidText = _props_texts.emailInvalidText, emailLabel = _props_texts.emailLabel, emailPlaceholder = _props_texts.emailPlaceholder, emailRequiredText = _props_texts.emailRequiredText, passwordLabel = _props_texts.passwordLabel, passwordPlaceholder = _props_texts.passwordPlaceholder, passwordRequiredText = _props_texts.passwordRequiredText, passwordTooShortText = _props_texts.passwordTooShortText, confirmPasswordRequired = _props_texts.confirmPasswordRequired, forgotPasswordText = _props_texts.forgotPasswordText, confirmPasswordLabel = _props_texts.confirmPasswordLabel, confirmPasswordPlaceholder = _props_texts.confirmPasswordPlaceholder, termsRequiredText = _props_texts.termsRequiredText, fullNameRequiredText = _props_texts.fullNameRequiredText;
6484
+ var fieldSchemas = {};
6485
+ props.registerFields.forEach(function(field) {
6486
+ switch(field){
6487
+ case "fullname":
6488
+ fieldSchemas["fullName"] = z2.string().optional();
6489
+ break;
6490
+ case "email":
6491
+ fieldSchemas["email"] = z2.string({
6492
+ required_error: emailRequiredText
6493
+ }).email({
6494
+ message: emailInvalidText
6495
+ }).nonempty({
6496
+ message: usernameRequired
6497
+ });
6498
+ break;
6499
+ case "username":
6500
+ fieldSchemas["username"] = z2.string({
6501
+ required_error: usernameRequired
6502
+ }).refine(function(value) {
6503
+ return value !== "";
6504
+ }, {
6505
+ message: usernameRequired
6506
+ });
6507
+ break;
6508
+ }
6509
+ });
6510
+ var formSchema2 = z2.object(_object_spread_props(_object_spread({}, fieldSchemas), {
6480
6511
  password: z2.string({
6481
6512
  required_error: passwordRequiredText
6482
6513
  }).min(5, {
@@ -6486,7 +6517,9 @@ var RegisterForm = function(props) {
6486
6517
  }, {
6487
6518
  message: passwordRequiredText
6488
6519
  }),
6489
- confirm_password: z2.string().refine(function(value) {
6520
+ confirm_password: z2.string({
6521
+ required_error: confirmPasswordRequired
6522
+ }).refine(function(value) {
6490
6523
  return value !== "";
6491
6524
  }, {
6492
6525
  message: passwordRequiredText
@@ -6501,7 +6534,7 @@ var RegisterForm = function(props) {
6501
6534
  message: termsRequiredText
6502
6535
  }),
6503
6536
  newsletter_accepted: z2.boolean().optional()
6504
- }).refine(function(data) {
6537
+ })).refine(function(data) {
6505
6538
  return data.password === data.confirm_password;
6506
6539
  }, {
6507
6540
  message: "Passwords don't match",
@@ -6523,9 +6556,7 @@ var RegisterForm = function(props) {
6523
6556
  text: props.errorText,
6524
6557
  severity: "error"
6525
6558
  }), /* @__PURE__ */ import_react34.default.createElement(import_react_hook_form3.FormProvider, _object_spread({}, methods), /* @__PURE__ */ import_react34.default.createElement("form", {
6526
- onSubmit: handleSubmit(function(e) {
6527
- return props.handleRegister(e);
6528
- }),
6559
+ onSubmit: handleSubmit(props.handleRegister),
6529
6560
  className: "hawa-flex hawa-flex-col hawa-gap-4"
6530
6561
  }, /* @__PURE__ */ import_react34.default.createElement("div", {
6531
6562
  className: "hawa-flex hawa-flex-col hawa-gap-4"
package/dist/index.mjs CHANGED
@@ -6093,16 +6093,30 @@ import { Controller as Controller2, useForm } from "react-hook-form";
6093
6093
  import { zodResolver } from "@hookform/resolvers/zod";
6094
6094
  import * as z from "zod";
6095
6095
  var LoginForm = (props) => {
6096
- const formSchema2 = z.object({
6097
- email: z.string({
6098
- required_error: props.texts?.emailRequiredText
6099
- }).nonempty({ message: props.texts?.emailRequiredText }).email({ message: props.texts?.emailInvalidText }),
6100
- password: z.string({
6101
- required_error: props.texts?.passwordRequiredText
6102
- }).min(5, { message: "Password must be at least 5 characters long" }).nonempty({ message: props.texts?.passwordRequiredText }),
6103
- username: z.string().min(2, { message: "Username must be at least 2 characters" }).nonempty({ message: props.texts?.usernameRequired }),
6104
- phone: z.string().nonempty({ message: "Phone number is required" })
6105
- });
6096
+ let formSchema2;
6097
+ if (props.loginType === "email") {
6098
+ formSchema2 = z.object({
6099
+ email: z.string({
6100
+ required_error: props.texts?.emailRequiredText
6101
+ }).nonempty({ message: props.texts?.emailRequiredText }).email({ message: props.texts?.emailInvalidText }),
6102
+ password: z.string({
6103
+ required_error: props.texts?.passwordRequiredText
6104
+ }).min(5, { message: "Password must be at least 5 characters long" }).nonempty({ message: props.texts?.passwordRequiredText })
6105
+ });
6106
+ } else if (props.loginType === "username") {
6107
+ formSchema2 = z.object({
6108
+ username: z.string().min(2, { message: "Username must be at least 2 characters" }).nonempty({ message: props.texts?.usernameRequired }),
6109
+ password: z.string({
6110
+ required_error: props.texts?.passwordRequiredText
6111
+ }).min(5, { message: "Password must be at least 5 characters long" }).nonempty({ message: props.texts?.passwordRequiredText })
6112
+ });
6113
+ } else if (props.loginType === "phone") {
6114
+ formSchema2 = z.object({
6115
+ phone: z.string().nonempty({ message: "Phone number is required" })
6116
+ });
6117
+ } else {
6118
+ formSchema2 = z.object({});
6119
+ }
6106
6120
  const { handleSubmit, control, formState } = useForm({
6107
6121
  resolver: zodResolver(formSchema2)
6108
6122
  });
@@ -6120,7 +6134,7 @@ var LoginForm = (props) => {
6120
6134
  onSubmit: handleSubmit((e) => {
6121
6135
  if (props.handleLogin) {
6122
6136
  console.log("attempting to login");
6123
- props.handleLogin(e);
6137
+ return props.handleLogin(e);
6124
6138
  } else {
6125
6139
  console.log(
6126
6140
  "Form is submitted but handleLogin prop is missing"
@@ -6297,18 +6311,31 @@ var RegisterForm = (props) => {
6297
6311
  passwordPlaceholder,
6298
6312
  passwordRequiredText,
6299
6313
  passwordTooShortText,
6314
+ confirmPasswordRequired,
6300
6315
  forgotPasswordText,
6301
6316
  confirmPasswordLabel,
6302
6317
  confirmPasswordPlaceholder,
6303
6318
  termsRequiredText,
6304
6319
  fullNameRequiredText
6305
6320
  } = props.texts;
6321
+ let fieldSchemas = {};
6322
+ props.registerFields.forEach((field) => {
6323
+ switch (field) {
6324
+ case "fullname":
6325
+ fieldSchemas["fullName"] = z2.string().optional();
6326
+ break;
6327
+ case "email":
6328
+ fieldSchemas["email"] = z2.string({ required_error: emailRequiredText }).email({ message: emailInvalidText }).nonempty({ message: usernameRequired });
6329
+ break;
6330
+ case "username":
6331
+ fieldSchemas["username"] = z2.string({ required_error: usernameRequired }).refine((value) => value !== "", { message: usernameRequired });
6332
+ break;
6333
+ }
6334
+ });
6306
6335
  const formSchema2 = z2.object({
6307
- fullName: z2.string().optional(),
6308
- email: z2.string({ required_error: emailRequiredText }).email({ message: emailInvalidText }).nonempty({ message: usernameRequired }),
6309
- username: z2.string({ required_error: usernameRequired }).refine((value) => value !== "", { message: usernameRequired }),
6336
+ ...fieldSchemas,
6310
6337
  password: z2.string({ required_error: passwordRequiredText }).min(5, { message: passwordTooShortText }).refine((value) => value !== "", { message: passwordRequiredText }),
6311
- confirm_password: z2.string().refine((value) => value !== "", { message: passwordRequiredText }),
6338
+ confirm_password: z2.string({ required_error: confirmPasswordRequired }).refine((value) => value !== "", { message: passwordRequiredText }),
6312
6339
  refCode: z2.string().optional(),
6313
6340
  reference: z2.string().optional(),
6314
6341
  terms_accepted: z2.boolean({ required_error: termsRequiredText }).refine((value) => value, { message: termsRequiredText }),
@@ -6330,7 +6357,7 @@ var RegisterForm = (props) => {
6330
6357
  ), /* @__PURE__ */ React53.createElement(FormProvider2, { ...methods }, /* @__PURE__ */ React53.createElement(
6331
6358
  "form",
6332
6359
  {
6333
- onSubmit: handleSubmit((e) => props.handleRegister(e)),
6360
+ onSubmit: handleSubmit(props.handleRegister),
6334
6361
  className: "hawa-flex hawa-flex-col hawa-gap-4"
6335
6362
  },
6336
6363
  /* @__PURE__ */ React53.createElement("div", { className: "hawa-flex hawa-flex-col hawa-gap-4" }, props.registerFields.map((fld, i) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sikka/hawa",
3
- "version": "0.5.2-next",
3
+ "version": "0.5.3-next",
4
4
  "main": "./dist/index.js",
5
5
  "types": "./dist/index.d.ts",
6
6
  "exports": {