@opexa/portal-components 0.0.295 → 0.0.297

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (194) hide show
  1. package/dist/components/DepositWithdrawal/DepositWithdrawalTrigger.js +5 -1
  2. package/dist/components/Disclaimer/ResponsibleGaming.d.ts +10 -0
  3. package/dist/components/Disclaimer/ResponsibleGaming.js +13 -0
  4. package/dist/components/Disclaimer/TermsOfUse.d.ts +11 -0
  5. package/dist/components/Disclaimer/TermsOfUse.js +13 -0
  6. package/dist/components/FeatureFlag/FeatureFlag.d.ts +1 -0
  7. package/dist/components/FeatureFlag/FeatureFlag.js +29 -0
  8. package/dist/components/FeatureFlag/index.d.ts +1 -0
  9. package/dist/components/FeatureFlag/index.js +1 -0
  10. package/dist/components/Jackpots/JackpotsCarousel/JackpotsCarouselItem.module.css +184 -184
  11. package/dist/components/Jackpots/JackpotsList/JackpotsListItem.module.css +184 -184
  12. package/dist/components/KYC/AutoOpen.d.ts +1 -0
  13. package/dist/components/KYC/AutoOpen.js +40 -0
  14. package/dist/components/KYC/CaptureIdDocument.d.ts +1 -0
  15. package/dist/components/KYC/CaptureIdDocument.js +219 -0
  16. package/dist/components/KYC/CaptureSelfie.d.ts +1 -0
  17. package/dist/components/KYC/CaptureSelfie.js +285 -0
  18. package/dist/components/KYC/DisplayImage.d.ts +5 -0
  19. package/dist/components/KYC/DisplayImage.js +8 -0
  20. package/dist/components/KYC/FileUpload.d.ts +10 -0
  21. package/dist/components/KYC/FileUpload.js +72 -0
  22. package/dist/components/KYC/NoCameraError.d.ts +7 -0
  23. package/dist/components/KYC/NoCameraError.js +6 -0
  24. package/dist/components/KYC/PersonOverlayDesktop.d.ts +7 -0
  25. package/dist/components/KYC/PersonOverlayDesktop.js +9 -0
  26. package/dist/components/KYC/backup/Header.d.ts +1 -0
  27. package/dist/components/KYC/backup/Header.js +8 -0
  28. package/dist/components/KYC/backup/Indicator.d.ts +1 -0
  29. package/dist/components/KYC/backup/Indicator.js +9 -0
  30. package/dist/components/KYC/backup/KYC.d.ts +1 -0
  31. package/dist/components/KYC/backup/KYC.js +14 -0
  32. package/dist/components/KYC/backup/KYC.lazy.d.ts +1 -0
  33. package/dist/components/KYC/backup/KYC.lazy.js +26 -0
  34. package/dist/components/KYC/backup/KYCContext.d.ts +6 -0
  35. package/dist/components/KYC/backup/KYCContext.js +2 -0
  36. package/dist/components/KYC/backup/Step1.d.ts +1 -0
  37. package/dist/components/KYC/backup/Step1.js +13 -0
  38. package/dist/components/KYC/backup/Step2.d.ts +1 -0
  39. package/dist/components/KYC/backup/Step2.js +13 -0
  40. package/dist/components/KYC/backup/Step3.d.ts +1 -0
  41. package/dist/components/KYC/backup/Step3.js +13 -0
  42. package/dist/components/KYC/backup/Step4.d.ts +1 -0
  43. package/dist/components/KYC/backup/Step4.js +7 -0
  44. package/dist/components/KYC/backup/useKYC.d.ts +10 -0
  45. package/dist/components/KYC/backup/useKYC.js +8 -0
  46. package/dist/components/KYC/loadModels.d.ts +1 -0
  47. package/dist/components/KYC/loadModels.js +9 -0
  48. package/dist/components/KYC/utils.d.ts +9 -0
  49. package/dist/components/KYC/utils.js +79 -0
  50. package/dist/components/Messages/Message.d.ts +1 -0
  51. package/dist/components/Messages/Message.js +35 -0
  52. package/dist/components/Messages/MessageContext.d.ts +6 -0
  53. package/dist/components/Messages/MessageContext.js +2 -0
  54. package/dist/components/Messages/MessagePopup.d.ts +1 -0
  55. package/dist/components/Messages/MessagePopup.js +20 -0
  56. package/dist/components/Messages/MessageTrigger.d.ts +8 -0
  57. package/dist/components/Messages/MessageTrigger.js +19 -0
  58. package/dist/components/Quests/CountdownTimer.d.ts +15 -0
  59. package/dist/components/Quests/CountdownTimer.js +33 -0
  60. package/dist/components/Quests/DailyCheckInQuest/DailyCheckInQuest.d.ts +4 -0
  61. package/dist/components/Quests/DailyCheckInQuest/DailyCheckInQuest.js +78 -0
  62. package/dist/components/Quests/DailyCheckInQuest/DailyCheckInQuestModal.d.ts +8 -0
  63. package/dist/components/Quests/DailyCheckInQuest/DailyCheckInQuestModal.js +9 -0
  64. package/dist/components/Quests/OnboardingQuest/OnboardingQuest.d.ts +4 -0
  65. package/dist/components/Quests/OnboardingQuest/OnboardingQuest.js +4 -0
  66. package/dist/components/Quests/WageringQuest/WageringQuest.d.ts +4 -0
  67. package/dist/components/Quests/WageringQuest/WageringQuest.js +20 -0
  68. package/dist/components/Quests/WageringQuest/WageringQuestModal.d.ts +9 -0
  69. package/dist/components/Quests/WageringQuest/WageringQuestModal.js +9 -0
  70. package/dist/components/SignUp/SignUp.lazy.d.ts +12 -0
  71. package/dist/components/SignUp/SignUp.lazy.js +18 -0
  72. package/dist/components/SignUp/SignUpContext.d.ts +6 -0
  73. package/dist/components/SignUp/SignUpContext.js +2 -0
  74. package/dist/components/SignUp/SignUpDefault/SignUp.lazy.d.ts +17 -0
  75. package/dist/components/SignUp/SignUpDefault/SignUp.lazy.js +18 -0
  76. package/dist/components/SignUp/SignUpDefault/SignUpContext.d.ts +6 -0
  77. package/dist/components/SignUp/SignUpDefault/SignUpContext.js +2 -0
  78. package/dist/components/SignUp/SignUpDefault/SignUpDefault.lazy.d.ts +1 -1
  79. package/dist/components/SignUp/SignUpDefault/SignUpDefaultForm.js +9 -10
  80. package/dist/components/SignUp/SignUpDefault/SignUpForm.d.ts +1 -0
  81. package/dist/components/SignUp/SignUpDefault/SignUpForm.js +310 -0
  82. package/dist/components/SignUp/SignUpForm.d.ts +1 -0
  83. package/dist/components/SignUp/SignUpForm.js +284 -0
  84. package/dist/components/SignUp/SignUpKYC/CaptureIdDocument.d.ts +1 -0
  85. package/dist/components/SignUp/SignUpKYC/CaptureIdDocument.js +198 -0
  86. package/dist/components/SignUp/SignUpKYC/CaptureSelfie.d.ts +1 -0
  87. package/dist/components/SignUp/SignUpKYC/CaptureSelfie.js +251 -0
  88. package/dist/components/SignUp/SignUpKYC/ImageUploader.d.ts +10 -0
  89. package/dist/components/SignUp/SignUpKYC/ImageUploader.js +42 -0
  90. package/dist/components/SignUp/SignUpKYC/PersonOverlayDesktop.d.ts +7 -0
  91. package/dist/components/SignUp/SignUpKYC/PersonOverlayDesktop.js +9 -0
  92. package/dist/components/SignUp/SignUpKYC/SignUpFormKYC.d.ts +1 -0
  93. package/dist/components/SignUp/SignUpKYC/SignUpFormKYC.js +464 -0
  94. package/dist/components/SignUp/SignUpKYC/SignUpKYC.lazy.d.ts +1 -1
  95. package/dist/components/SignUp/SignUpKYC/SignUpKYCForm.js +8 -11
  96. package/dist/components/SignUp/SignUpKYC/useImageUploader.d.ts +11 -0
  97. package/dist/components/SignUp/SignUpKYC/useImageUploader.js +20 -0
  98. package/dist/components/SignUp/SignUpKYC/utils.d.ts +9 -0
  99. package/dist/components/SignUp/SignUpKYC/utils.js +79 -0
  100. package/dist/components/SignUp/SignUpPagcor/CaptureIdDocument.d.ts +1 -0
  101. package/dist/components/SignUp/SignUpPagcor/CaptureIdDocument.js +198 -0
  102. package/dist/components/SignUp/SignUpPagcor/CaptureSelfie.d.ts +1 -0
  103. package/dist/components/SignUp/SignUpPagcor/CaptureSelfie.js +251 -0
  104. package/dist/components/SignUp/SignUpPagcor/ImageUploader.d.ts +10 -0
  105. package/dist/components/SignUp/SignUpPagcor/ImageUploader.js +41 -0
  106. package/dist/components/SignUp/SignUpPagcor/SignUpFormPagcor.d.ts +1 -0
  107. package/dist/components/SignUp/SignUpPagcor/SignUpFormPagcor.js +429 -0
  108. package/dist/components/SignUp/SignUpPagcor/SignUpPagcor.lazy.d.ts +13 -0
  109. package/dist/components/SignUp/SignUpPagcor/SignUpPagcor.lazy.js +26 -0
  110. package/dist/components/SignUp/SignUpPagcor/SignUpPagcorContext.d.ts +7 -0
  111. package/dist/components/SignUp/SignUpPagcor/SignUpPagcorContext.js +2 -0
  112. package/dist/components/SignUp/SignUpPagcor/useImageUploader.d.ts +11 -0
  113. package/dist/components/SignUp/SignUpPagcor/useImageUploader.js +20 -0
  114. package/dist/components/Tournaments/TournamentsCarousel/TournamentsCarouselItem.module.css +184 -184
  115. package/dist/components/Tournaments/TournamentsList/TournamentItem.module.css +184 -184
  116. package/dist/components/shared/IdDocumentField.client.d.ts +25 -0
  117. package/dist/components/shared/IdDocumentField.client.js +204 -0
  118. package/dist/components/shared/IdDocumentField.d.ts +2 -0
  119. package/dist/components/shared/IdDocumentField.js +11 -0
  120. package/dist/components/shared/SelfieField.client.d.ts +20 -0
  121. package/dist/components/shared/SelfieField.client.js +327 -0
  122. package/dist/components/shared/SelfieField.d.ts +2 -0
  123. package/dist/components/shared/SelfieField.js +11 -0
  124. package/dist/constants/BranchCode.d.ts +4 -0
  125. package/dist/constants/BranchCode.js +42 -0
  126. package/dist/handlers/postTransformIdFrontImage.d.ts +3 -0
  127. package/dist/handlers/postTransformIdFrontImage.js +67 -0
  128. package/dist/handlers/postTransformSelfieImage.d.ts +3 -0
  129. package/dist/handlers/postTransformSelfieImage.js +71 -0
  130. package/dist/handlers.d.ts +43 -0
  131. package/dist/handlers.js +297 -0
  132. package/dist/icons/BellRingIcon.d.ts +2 -0
  133. package/dist/icons/BellRingIcon.js +4 -0
  134. package/dist/services/queries.js +2603 -2603
  135. package/dist/styles/theme.css +704 -704
  136. package/dist/ui/AlertDialog/AlertDialog.d.ts +88 -88
  137. package/dist/ui/AlertDialog/alertDialog.recipe.d.ts +8 -8
  138. package/dist/ui/Badge/Badge.d.ts +12 -12
  139. package/dist/ui/Badge/badge.anatomy.d.ts +1 -1
  140. package/dist/ui/Badge/badge.recipe.d.ts +3 -3
  141. package/dist/ui/Carousel/Carousel.d.ts +45 -45
  142. package/dist/ui/Carousel/carousel.recipe.d.ts +5 -5
  143. package/dist/ui/Checkbox/Checkbox.d.ts +23 -23
  144. package/dist/ui/Checkbox/checkbox.recipe.d.ts +3 -3
  145. package/dist/ui/Clipboard/Clipboard.d.ts +18 -18
  146. package/dist/ui/Clipboard/clipboard.recipe.d.ts +3 -3
  147. package/dist/ui/Collapsible/Collapsible.d.ts +20 -20
  148. package/dist/ui/Collapsible/collapsible.recipe.d.ts +5 -5
  149. package/dist/ui/Combobox/Combobox.d.ts +42 -42
  150. package/dist/ui/Combobox/combobox.recipe.d.ts +3 -3
  151. package/dist/ui/DatePicker/DatePicker.d.ts +72 -72
  152. package/dist/ui/DatePicker/datePicker.recipe.d.ts +3 -3
  153. package/dist/ui/Dialog/Dialog.d.ts +88 -88
  154. package/dist/ui/Dialog/dialog.recipe.d.ts +8 -8
  155. package/dist/ui/Drawer/Drawer.d.ts +33 -33
  156. package/dist/ui/Drawer/drawer.recipe.d.ts +3 -3
  157. package/dist/ui/Field/Field.d.ts +21 -21
  158. package/dist/ui/Field/field.recipe.d.ts +3 -3
  159. package/dist/ui/Menu/Menu.d.ts +252 -252
  160. package/dist/ui/Menu/menu.recipe.d.ts +14 -14
  161. package/dist/ui/NumberInput/NumberInput.d.ts +24 -24
  162. package/dist/ui/NumberInput/numberInput.recipe.d.ts +3 -3
  163. package/dist/ui/PasswordInput/PasswordInput.d.ts +18 -18
  164. package/dist/ui/PasswordInput/passwordInput.recipe.d.ts +3 -3
  165. package/dist/ui/PinInput/PinInput.d.ts +12 -12
  166. package/dist/ui/PinInput/pinInput.recipe.d.ts +3 -3
  167. package/dist/ui/Popover/Popover.d.ts +55 -55
  168. package/dist/ui/Popover/popover.recipe.d.ts +5 -5
  169. package/dist/ui/Progress/Progress.d.ts +27 -27
  170. package/dist/ui/Progress/progress.recipe.d.ts +3 -3
  171. package/dist/ui/QrCode/QrCode.d.ts +25 -25
  172. package/dist/ui/QrCode/qrCode.recipe.d.ts +5 -5
  173. package/dist/ui/SegmentGroup/SegmentGroup.d.ts +18 -18
  174. package/dist/ui/SegmentGroup/segmentGroup.recipe.d.ts +3 -3
  175. package/dist/ui/Select/Select.d.ts +45 -45
  176. package/dist/ui/Select/select.recipe.d.ts +3 -3
  177. package/dist/ui/Table/Table.d.ts +21 -21
  178. package/dist/ui/Table/table.anatomy.d.ts +1 -1
  179. package/dist/ui/Table/table.recipe.d.ts +3 -3
  180. package/dist/ui/Tabs/Tabs.d.ts +15 -15
  181. package/dist/ui/Tabs/tabs.recipe.d.ts +3 -3
  182. package/dist/utils/dataUrlToBlob.d.ts +1 -0
  183. package/dist/utils/dataUrlToBlob.js +11 -0
  184. package/dist/utils/gamesAvailable3pmTo3am.d.ts +1 -0
  185. package/dist/utils/gamesAvailable3pmTo3am.js +1 -0
  186. package/dist/utils/getGameName.d.ts +1 -0
  187. package/dist/utils/getGameName.js +6 -0
  188. package/dist/utils/isBetween3amAnd3pm.d.ts +1 -0
  189. package/dist/utils/isBetween3amAnd3pm.js +5 -0
  190. package/dist/utils/resizeImageSize.d.ts +2 -0
  191. package/dist/utils/resizeImageSize.js +11 -0
  192. package/package.json +164 -164
  193. package/dist/components/Banner/Banner.client.d.ts +0 -12
  194. package/dist/components/Banner/Banner.client.js +0 -49
@@ -20,7 +20,6 @@ import { useSignInMutation } from '../../../client/hooks/useSignInMutation.js';
20
20
  import { useSignUpMutation } from '../../../client/hooks/useSignUpMutation.js';
21
21
  import { useUpdateAccountMutation } from '../../../client/hooks/useUpdateAccountMutation.js';
22
22
  import { toaster } from '../../../client/utils/toaster.js';
23
- import { BRANCHES } from '../../../constants/index.js';
24
23
  import { ArrowLeftIcon } from '../../../icons/ArrowLeftIcon.js';
25
24
  import { CalendarIcon } from '../../../icons/CalendarIcon.js';
26
25
  import { CheckIcon } from '../../../icons/CheckIcon.js';
@@ -41,7 +40,7 @@ import { useSignUpDefaultPropsContext } from './SignUpDefaultContext.js';
41
40
  export function SignUpDefaultForm() {
42
41
  const signUpProps = useSignUpDefaultPropsContext();
43
42
  const branchCollection = createListCollection({
44
- items: signUpProps.branches ?? BRANCHES,
43
+ items: signUpProps.branches,
45
44
  itemToValue: (item) => item.code,
46
45
  itemToString: (item) => `${item.code} - ${item.name}`,
47
46
  });
@@ -123,7 +122,9 @@ export function SignUpDefaultForm() {
123
122
  defaultValues: {
124
123
  realName: '',
125
124
  mobileNumber: '',
126
- branchCode: signUpProps?.branches?.[0]?.code ?? BRANCHES[0].code,
125
+ branchCode: signUpProps?.branches?.length
126
+ ? signUpProps.branches[0]?.code
127
+ : '',
127
128
  termsAccepted: globalStore.responsibleGaming.accepted &&
128
129
  globalStore.termsAndConditions.accepted
129
130
  ? true
@@ -159,7 +160,7 @@ export function SignUpDefaultForm() {
159
160
  : 'Failed to send verification code',
160
161
  });
161
162
  }
162
- }), children: [_jsxs(Field.Root, { invalid: !!step1Form.formState.errors.mobileNumber, children: [_jsx(Field.Label, { children: "Mobile Number" }), _jsxs("div", { className: "relative", children: [_jsxs("div", { className: "absolute left-3.5 top-1/2 flex shrink-0 -translate-y-1/2 items-center gap-md", children: [_jsx(localeInfo.country.flag, { className: "size-5" }), _jsx("span", { className: "text-text-placeholder", children: localeInfo.mobileNumber.areaCode })] }), _jsx(Field.Input, { style: {
163
+ }), children: [_jsxs(Field.Root, { invalid: !!step1Form.formState.errors.mobileNumber, children: [_jsx(Field.Label, { children: "Mobile Number" }), _jsxs("div", { className: "relative", children: [_jsxs("div", { className: "gap-md absolute left-3.5 top-1/2 flex shrink-0 -translate-y-1/2 items-center", children: [_jsx(localeInfo.country.flag, { className: "size-5" }), _jsx("span", { className: "text-text-placeholder", children: localeInfo.mobileNumber.areaCode })] }), _jsx(Field.Input, { style: {
163
164
  paddingLeft: `calc(2.75rem + ${localeInfo.mobileNumber.areaCode.length}ch)`,
164
165
  }, ...step1Form.register('mobileNumber') })] }), _jsx(Field.ErrorText, { children: step1Form.formState.errors.mobileNumber?.message })] }), _jsxs(Field.Root, { invalid: !!step1Form.formState.errors.realName, className: "mt-xl", children: [_jsx(Field.Label, { children: "Real Name" }), _jsx(Field.Input, { placeholder: "Enter your real name", ...step1Form.register('realName') }), _jsx(Field.ErrorText, { children: step1Form.formState.errors.realName?.message })] }), _jsxs(Field.Root, { invalid: !!step1Form.formState.errors.birthDay, className: "mt-xl", children: [_jsx(DateOfBirthField, { value: birthDay, onChange: (value) => {
165
166
  if (!value)
@@ -172,9 +173,7 @@ export function SignUpDefaultForm() {
172
173
  }, onBlur: () => {
173
174
  step1Form.trigger('birthDay');
174
175
  } }), _jsx(Field.ErrorText, { children: step1Form.formState.errors.birthDay?.message })] }), _jsxs(Field.Root, { invalid: !!step1Form.formState.errors.branchCode, className: "mt-xl", children: [_jsxs(Select.Root, { value: [branchCode], onValueChange: (details) => {
175
- step1Form.setValue('branchCode', details.value.at(0) ??
176
- signUpProps?.branches?.[0]?.code ??
177
- BRANCHES[0].code, {
176
+ step1Form.setValue('branchCode', details.value?.[0], {
178
177
  shouldDirty: true,
179
178
  shouldTouch: true,
180
179
  shouldValidate: true,
@@ -213,7 +212,7 @@ export function SignUpDefaultForm() {
213
212
  globalStore.responsibleGaming.setNext('SIGN_UP');
214
213
  globalStore.signUp.setOpen(false);
215
214
  }
216
- }, children: "Responsible Gaming" }), ' ', "guidelines."] }), _jsx(Checkbox.HiddenInput, {})] }), _jsx(Field.ErrorText, { className: "ml-6 text-xs", children: o.fieldState.error?.message })] })) }), _jsx(Button, { type: "submit", className: "mt-3xl", disabled: step1Form.formState.isSubmitting, children: "Create Account" })] }), _jsxs("div", { className: "mt-6 flex w-full items-center justify-center gap-xs text-sm", children: [_jsx("span", { className: "text-text-tertiary-600", children: "Already have an account?" }), _jsx("button", { type: "submit", className: "text-button-tertiary-fg font-semibold", onClick: () => {
215
+ }, children: "Responsible Gaming" }), ' ', "guidelines."] }), _jsx(Checkbox.HiddenInput, {})] }), _jsx(Field.ErrorText, { className: "ml-6 text-xs", children: o.fieldState.error?.message })] })) }), _jsx(Button, { type: "submit", className: "mt-3xl", disabled: step1Form.formState.isSubmitting, children: "Create Account" })] }), _jsxs("div", { className: "gap-xs mt-6 flex w-full items-center justify-center text-sm", children: [_jsx("span", { className: "text-text-tertiary-600", children: "Already have an account?" }), _jsx("button", { type: "submit", className: "text-button-tertiary-fg font-semibold", onClick: () => {
217
216
  globalStore.signUp.setOpen(false);
218
217
  globalStore.signIn.setOpen(true);
219
218
  }, children: "Log In" })] })] })), step === 2 && (_jsxs(_Fragment, { children: [_jsx("h2", { className: "mt-xl text-center text-lg font-semibold", children: "Check your Phone" }), _jsxs("p", { className: "text-text-secondary-700 mt-xs text-center text-sm", children: ["We\u2019ve sent a verification code to your mobile number", ' ', _jsx("span", { className: "font-semibold", children: mobileNumberParser.format(step1Form.getValues('mobileNumber')) }), ' ', "via text"] }), _jsxs("form", { ref: form2Ref, className: "mt-5", onSubmit: step2Form.handleSubmit(async ({ verificationCode }) => {
@@ -287,7 +286,7 @@ export function SignUpDefaultForm() {
287
286
  o.field.onChange(details.value);
288
287
  }, onValueComplete: () => {
289
288
  form2Ref.current?.requestSubmit();
290
- }, blurOnComplete: true, readOnly: step2Form.formState.isSubmitting, type: "numeric", children: [_jsxs(PinInput.Control, { className: "grid-cols-[1fr_1fr_1fr_auto_1fr_1fr_1fr] items-center gap-md", children: [_jsx(PinInput.Input, { index: 0 }), _jsx(PinInput.Input, { index: 1 }), _jsx(PinInput.Input, { index: 2 }), _jsx("span", { className: "text-text-placeholder-subtle text-2xl font-medium", children: "\u2013" }), _jsx(PinInput.Input, { index: 3 }), _jsx(PinInput.Input, { index: 4 }), _jsx(PinInput.Input, { index: 5 })] }), _jsx(PinInput.HiddenInput, {})] }), _jsx(Field.ErrorText, { children: o.formState.errors.verificationCode?.message })] })) }), _jsx(Button, { type: "submit", className: "mt-4xl", disabled: step2Form.formState.isSubmitting, children: "Verify" }), _jsxs("div", { className: "mt-3 flex w-full items-center justify-center gap-xs text-sm", children: [_jsx("span", { className: "text-text-secondary-700", children: "Didn't recieve the code?" }), _jsx("button", { type: "button", className: "text-button-secondary-fg font-semibold disabled:cursor-not-allowed disabled:opacity-75", disabled: cooldown.cooling, onClick: async () => {
289
+ }, blurOnComplete: true, readOnly: step2Form.formState.isSubmitting, type: "numeric", children: [_jsxs(PinInput.Control, { className: "gap-md grid-cols-[1fr_1fr_1fr_auto_1fr_1fr_1fr] items-center", children: [_jsx(PinInput.Input, { index: 0 }), _jsx(PinInput.Input, { index: 1 }), _jsx(PinInput.Input, { index: 2 }), _jsx("span", { className: "text-text-placeholder-subtle text-2xl font-medium", children: "\u2013" }), _jsx(PinInput.Input, { index: 3 }), _jsx(PinInput.Input, { index: 4 }), _jsx(PinInput.Input, { index: 5 })] }), _jsx(PinInput.HiddenInput, {})] }), _jsx(Field.ErrorText, { children: o.formState.errors.verificationCode?.message })] })) }), _jsx(Button, { type: "submit", className: "mt-4xl", disabled: step2Form.formState.isSubmitting, children: "Verify" }), _jsxs("div", { className: "gap-xs mt-3 flex w-full items-center justify-center text-sm", children: [_jsx("span", { className: "text-text-secondary-700", children: "Didn't recieve the code?" }), _jsx("button", { type: "button", className: "text-button-secondary-fg font-semibold disabled:cursor-not-allowed disabled:opacity-75", disabled: cooldown.cooling, onClick: async () => {
291
290
  await sendVerificationCodeMutation.mutateAsync({
292
291
  channel: 'SMS',
293
292
  recipient: mobileNumberParser.format(step1Form.getValues('mobileNumber')),
@@ -295,7 +294,7 @@ export function SignUpDefaultForm() {
295
294
  cooldown.start();
296
295
  }, children: cooldown.cooling
297
296
  ? `Resend in ${cooldown.countdown}s`
298
- : 'Resend' })] }), _jsxs("button", { type: "button", className: "text-text-tertiary-600 mx-auto mt-3xl flex w-fit items-center gap-1 text-sm font-semibold", onClick: () => {
297
+ : 'Resend' })] }), _jsxs("button", { type: "button", className: "text-text-tertiary-600 mt-3xl mx-auto flex w-fit items-center gap-1 text-sm font-semibold", onClick: () => {
299
298
  setStep(1);
300
299
  step2Form.reset();
301
300
  cooldown.stop();
@@ -0,0 +1 @@
1
+ export declare function SignUpForm(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,310 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { createListCollection, parseDate } from '@ark-ui/react';
4
+ import { zodResolver } from '@hookform/resolvers/zod';
5
+ import { ObjectId } from '@opexa/object-id';
6
+ import { differenceInYears, format } from 'date-fns';
7
+ import { useSearchParams } from 'next/navigation';
8
+ import { useEffect, useRef, useState } from 'react';
9
+ import { Controller, useForm } from 'react-hook-form';
10
+ import { twMerge } from 'tailwind-merge';
11
+ import { z } from 'zod';
12
+ import { useShallow } from 'zustand/shallow';
13
+ import { useControllableState } from '../../../client/hooks/useControllableState.js';
14
+ import { useCooldown } from '../../../client/hooks/useCooldown.js';
15
+ import { useGlobalStore } from '../../../client/hooks/useGlobalStore.js';
16
+ import { useLocaleInfo } from '../../../client/hooks/useLocaleInfo.js';
17
+ import { useMobileNumberParser } from '../../../client/hooks/useMobileNumberParser.js';
18
+ import { useSendVerificationCodeMutation } from '../../../client/hooks/useSendVerificationCodeMutation.js';
19
+ import { useSignInMutation } from '../../../client/hooks/useSignInMutation.js';
20
+ import { useSignUpMutation } from '../../../client/hooks/useSignUpMutation.js';
21
+ import { useUpdateAccountMutation } from '../../../client/hooks/useUpdateAccountMutation.js';
22
+ import { toaster } from '../../../client/utils/toaster.js';
23
+ import { BRANCHES } from '../../../constants/index.js';
24
+ import { ArrowLeftIcon } from '../../../icons/ArrowLeftIcon.js';
25
+ import { CalendarIcon } from '../../../icons/CalendarIcon.js';
26
+ import { CheckIcon } from '../../../icons/CheckIcon.js';
27
+ import { ChevronDownIcon } from '../../../icons/ChevronDownIcon.js';
28
+ import { ChevronLeftIcon } from '../../../icons/ChevronLeftIcon.js';
29
+ import { ChevronRightIcon } from '../../../icons/ChevronRightIcon.js';
30
+ import { HelpCircleIcon } from '../../../icons/HelpCircleIcon.js';
31
+ import { ObjectType } from '../../../services/ObjectType.js';
32
+ import { Button } from '../../../ui/Button/index.js';
33
+ import { Checkbox } from '../../../ui/Checkbox/index.js';
34
+ import { DatePicker } from '../../../ui/DatePicker/index.js';
35
+ import { Field } from '../../../ui/Field/index.js';
36
+ import { PinInput } from '../../../ui/PinInput/index.js';
37
+ import { Select } from '../../../ui/Select/index.js';
38
+ import { Tooltip } from '../../../ui/Tooltip/index.js';
39
+ import { createPoll } from '../../../utils/createPoll.js';
40
+ import { ResponsibleGaming } from '../../Disclaimer/ResponsibleGaming.js';
41
+ import { TermsOfUse } from '../../Disclaimer/TermsOfUse.js';
42
+ import { useSignUpPropsContext } from './SignUpContext.js';
43
+ export function SignUpForm() {
44
+ const signUpProps = useSignUpPropsContext();
45
+ const branchCollection = createListCollection({
46
+ items: signUpProps.branches ?? BRANCHES,
47
+ itemToValue: (item) => item.code,
48
+ itemToString: (item) => `${item.code} - ${item.name}`,
49
+ });
50
+ const [step, setStep] = useState(1);
51
+ const globalStore = useGlobalStore(useShallow((ctx) => ({
52
+ kycReminder: ctx.kycReminder,
53
+ signIn: ctx.signIn,
54
+ signUp: ctx.signUp,
55
+ })));
56
+ const search = useSearchParams();
57
+ const signUpMutation = useSignUpMutation();
58
+ const signInMutation = useSignInMutation();
59
+ const updateAccountMutation = useUpdateAccountMutation();
60
+ const sendVerificationCodeMutation = useSendVerificationCodeMutation();
61
+ const localeInfo = useLocaleInfo();
62
+ const mobileNumberParser = useMobileNumberParser();
63
+ const Step1Definition = z.object({
64
+ mobileNumber: z
65
+ .string()
66
+ .min(1, 'Mobile number is required')
67
+ .superRefine((v, ctx) => {
68
+ if (!mobileNumberParser.validate(v)) {
69
+ ctx.addIssue({
70
+ code: z.ZodIssueCode.custom,
71
+ message: 'Invalid mobile number',
72
+ });
73
+ }
74
+ }),
75
+ termsAccepted: z.boolean().superRefine((v, ctx) => {
76
+ if (!v) {
77
+ ctx.addIssue({
78
+ code: z.ZodIssueCode.custom,
79
+ message: 'You must accept the terms and conditions and the responsible gaming guidelines',
80
+ });
81
+ }
82
+ }),
83
+ realName: z
84
+ .string()
85
+ .min(2, 'Real name must be 2 or more characters')
86
+ .max(50, 'Real name must not be more than 50 characters')
87
+ .trim(),
88
+ birthDay: z
89
+ .date({
90
+ invalid_type_error: 'Date of birth is required',
91
+ required_error: 'Date of birth is required',
92
+ })
93
+ .superRefine((val, ctx) => {
94
+ const now = new Date();
95
+ const age = differenceInYears(now, val);
96
+ if (age < 21) {
97
+ return ctx.addIssue({
98
+ code: z.ZodIssueCode.custom,
99
+ message: 'You must be at least 21 years old',
100
+ });
101
+ }
102
+ }),
103
+ branchCode: z.string().min(1, 'Branch is required').trim(),
104
+ });
105
+ const Step2Definition = z.object({
106
+ verificationCode: z.array(z.string()).superRefine((val, ctx) => {
107
+ if (val.length !== 6 || val.some((v) => v.length !== 1)) {
108
+ ctx.addIssue({
109
+ code: z.ZodIssueCode.custom,
110
+ message: 'Please Enter your 6 digits verification code',
111
+ });
112
+ }
113
+ }),
114
+ });
115
+ const step1Form = useForm({
116
+ mode: 'all',
117
+ resolver: zodResolver(Step1Definition),
118
+ defaultValues: {
119
+ mobileNumber: '',
120
+ termsAccepted: false,
121
+ branchCode: signUpProps?.branches?.[0]?.code ?? BRANCHES[0].code,
122
+ realName: '',
123
+ },
124
+ });
125
+ const step2Form = useForm({
126
+ resolver: zodResolver(Step2Definition),
127
+ defaultValues: {
128
+ verificationCode: Array.from({ length: 6 }).fill(''),
129
+ },
130
+ });
131
+ const cooldown = useCooldown({
132
+ max: 60,
133
+ duration: 1000 * 60,
134
+ });
135
+ const form2Ref = useRef(null);
136
+ const birthDay = step1Form.watch('birthDay');
137
+ const branchCode = step1Form.watch('branchCode', '');
138
+ const [isTermsOfUseOpen, setTermsOfUseOpen] = useState(false);
139
+ const [isResponsibleGamingOpen, setResponsibleGamingOpen] = useState(false);
140
+ const [isTermsOfUseAccepted, setIsTermsOfUseAccepted] = useState(false);
141
+ const [isResponsibleGamingAccepted, setIsResponsibleGamingAccepted] = useState(false);
142
+ useEffect(() => {
143
+ if (isTermsOfUseAccepted && isResponsibleGamingAccepted) {
144
+ step1Form.setValue('termsAccepted', true);
145
+ }
146
+ }, [isResponsibleGamingAccepted, isTermsOfUseAccepted, step1Form]);
147
+ return (_jsxs(_Fragment, { children: [_jsx(TermsOfUse, { termsOfUseContent: signUpProps.termsOfUseContent ?? 'Terms of Use content', siteName: signUpProps.siteName ?? 'Site', logo: signUpProps.logo, open: isTermsOfUseOpen, onCloseAction: () => {
148
+ setIsTermsOfUseAccepted(true);
149
+ setTermsOfUseOpen(false);
150
+ }, responsibleGamingLogo: signUpProps.responsibleGamingLogo }), _jsx(ResponsibleGaming, { responsibleGamingContent: signUpProps.responsibleGamingContent ?? 'Responsible Gaming content', logo: signUpProps.logo, open: isResponsibleGamingOpen, onCloseAction: () => {
151
+ setIsResponsibleGamingAccepted(true);
152
+ setResponsibleGamingOpen(false);
153
+ }, responsibleGamingLogo: signUpProps.responsibleGamingLogo }), step === 1 && (_jsxs(_Fragment, { children: [_jsx("h2", { className: "mt-xl text-center text-lg font-semibold", children: "Create an account" }), _jsx("p", { className: "text-text-secondary-700 mt-xs text-center text-sm", children: "Register instantly and start playing!" }), _jsxs("form", { className: "mt-3xl", autoComplete: "off", onSubmit: step1Form.handleSubmit(async (data) => {
154
+ try {
155
+ await sendVerificationCodeMutation.mutateAsync({
156
+ channel: 'SMS',
157
+ recipient: mobileNumberParser.format(data.mobileNumber),
158
+ });
159
+ setStep(2);
160
+ cooldown.start();
161
+ }
162
+ catch (e) {
163
+ toaster.error({
164
+ description: e instanceof Error
165
+ ? e.message
166
+ : 'Failed to send verification code',
167
+ });
168
+ }
169
+ }), children: [_jsxs(Field.Root, { invalid: !!step1Form.formState.errors.mobileNumber, children: [_jsx(Field.Label, { children: "Mobile Number" }), _jsxs("div", { className: "relative", children: [_jsxs("div", { className: "absolute left-3.5 top-1/2 flex shrink-0 -translate-y-1/2 items-center gap-md", children: [_jsx(localeInfo.country.flag, { className: "size-5" }), _jsx("span", { className: "text-text-placeholder", children: localeInfo.mobileNumber.areaCode })] }), _jsx(Field.Input, { style: {
170
+ paddingLeft: `calc(2.75rem + ${localeInfo.mobileNumber.areaCode.length}ch)`,
171
+ }, ...step1Form.register('mobileNumber') })] }), _jsx(Field.ErrorText, { children: step1Form.formState.errors.mobileNumber?.message })] }), _jsxs(Field.Root, { invalid: !!step1Form.formState.errors.realName, className: "mt-xl", children: [_jsx(Field.Label, { children: "Real Name" }), _jsx(Field.Input, { placeholder: "Enter your real name", ...step1Form.register('realName') }), _jsx(Field.ErrorText, { children: step1Form.formState.errors.realName?.message })] }), _jsxs(Field.Root, { invalid: !!step1Form.formState.errors.birthDay, className: "mt-xl", children: [_jsx(DateOfBirthField, { value: birthDay, onChange: (value) => {
172
+ if (!value)
173
+ return;
174
+ step1Form.setValue('birthDay', value, {
175
+ shouldDirty: true,
176
+ shouldTouch: true,
177
+ shouldValidate: true,
178
+ });
179
+ }, onBlur: () => {
180
+ step1Form.trigger('birthDay');
181
+ } }), _jsx(Field.ErrorText, { children: step1Form.formState.errors.birthDay?.message })] }), _jsxs(Field.Root, { invalid: !!step1Form.formState.errors.branchCode, className: "mt-xl", children: [_jsxs(Select.Root, { value: [branchCode], onValueChange: (details) => {
182
+ step1Form.setValue('branchCode', details.value.at(0) ??
183
+ signUpProps?.branches?.[0]?.code ??
184
+ BRANCHES[0].code, {
185
+ shouldDirty: true,
186
+ shouldTouch: true,
187
+ shouldValidate: true,
188
+ });
189
+ }, collection: branchCollection, positioning: {
190
+ sameWidth: true,
191
+ placement: 'bottom',
192
+ }, lazyMount: true, unmountOnExit: true, children: [_jsxs(Select.Label, { className: "flex items-center gap-1", children: ["Branch", _jsxs(Tooltip.Root, { openDelay: 0, closeDelay: 100, lazyMount: true, unmountOnExit: true, positioning: {
193
+ placement: 'top',
194
+ }, children: [_jsx(Tooltip.Trigger, { children: _jsx(HelpCircleIcon, { className: "text-text-nav-item-button-icon size-4" }) }), _jsx(Tooltip.Positioner, { children: _jsxs(Tooltip.Content, { children: [_jsx(Tooltip.Arrow, { children: _jsx(Tooltip.ArrowTip, {}) }), "Choose branch closest to your residence."] }) })] })] }), _jsxs(Select.Trigger, { children: [_jsx(Select.ValueText, {}), _jsx(Select.Indicator, { asChild: true, children: _jsx(ChevronDownIcon, {}) })] }), _jsx(Select.Positioner, { children: _jsx(Select.Content, { children: branchCollection.items.map((item) => {
195
+ const label = branchCollection.stringifyItem(item) ?? '';
196
+ return (_jsx(Select.Item, { item: item, "aria-disabled": item.disabled, className: twMerge(item.disabled && 'text-border-disabled'), children: _jsx("div", { title: label, className: "line-clamp-1", children: label }) }, item.code));
197
+ }) }) })] }), _jsx(Field.ErrorText, { children: step1Form.formState.errors.branchCode?.message })] }), _jsx(Controller, { control: step1Form.control, name: "termsAccepted", render: (o) => (_jsxs(Field.Root, { className: "mt-2xl", invalid: o.fieldState.invalid, children: [_jsxs(Checkbox.Root, { checked: o.field.value, onCheckedChange: (details) => {
198
+ o.field.onChange(details.checked);
199
+ if (!details.checked) {
200
+ setIsTermsOfUseAccepted(false);
201
+ setIsResponsibleGamingAccepted(false);
202
+ }
203
+ }, children: [_jsx(Checkbox.Control, { children: _jsx(Checkbox.Indicator, { asChild: true, children: _jsx(CheckIcon, {}) }) }), _jsxs(Checkbox.Label, { children: ["I am at least 21 years of age and I have read and accept the", ' ', _jsx("button", { type: "button", className: "text-brand-400 underline underline-offset-2", onClick: () => {
204
+ setTermsOfUseOpen(true);
205
+ }, children: "Terms and Conditions" }), ' ', "and", ' ', _jsx("button", { type: "button", className: "text-brand-400 underline underline-offset-2", onClick: () => {
206
+ setResponsibleGamingOpen(true);
207
+ }, children: "Responsible Gaming" }), ' ', "guidelines."] }), _jsx(Checkbox.HiddenInput, {})] }), _jsx(Field.ErrorText, { className: "ml-6 text-xs", children: o.fieldState.error?.message })] })) }), _jsx(Button, { type: "submit", className: "mt-3xl", disabled: step1Form.formState.isSubmitting, children: "Create Account" })] }), _jsxs("div", { className: "mt-6 flex w-full items-center justify-center gap-xs text-sm", children: [_jsx("span", { className: "text-text-tertiary-600", children: "Already have an account?" }), _jsx("button", { type: "submit", className: "text-button-tertiary-fg font-semibold", onClick: () => {
208
+ globalStore.signUp.setOpen(false);
209
+ globalStore.signIn.setOpen(true);
210
+ }, children: "Log In" })] })] })), step === 2 && (_jsxs(_Fragment, { children: [_jsx("h2", { className: "mt-xl text-center text-lg font-semibold", children: "Check your Phone" }), _jsxs("p", { className: "text-text-secondary-700 mt-xs text-center text-sm", children: ["We\u2019ve sent a verification code to your mobile number", ' ', _jsx("span", { className: "font-semibold", children: mobileNumberParser.format(step1Form.getValues('mobileNumber')) }), ' ', "via text"] }), _jsxs("form", { ref: form2Ref, className: "mt-5", onSubmit: step2Form.handleSubmit(async ({ verificationCode }) => {
211
+ const id = ObjectId.generate(ObjectType.MemberAccount).toString();
212
+ const { mobileNumber } = step1Form.getValues();
213
+ try {
214
+ await signUpMutation.mutateAsync({
215
+ id,
216
+ mobileNumber: mobileNumberParser.format(mobileNumber),
217
+ verificationCode: verificationCode.join(''),
218
+ referralCode: search.get('referralCode') ?? undefined,
219
+ btag: search.get('btag') ?? undefined,
220
+ });
221
+ const name = mobileNumberParser.format(mobileNumber);
222
+ const password = `${name}${id}`;
223
+ const pollLogin = createPoll(async () => {
224
+ try {
225
+ await signInMutation.mutateAsync({
226
+ type: 'NAME_AND_PASSWORD',
227
+ name,
228
+ password,
229
+ });
230
+ return true;
231
+ }
232
+ catch {
233
+ return false;
234
+ }
235
+ }, {
236
+ until: (ok) => ok,
237
+ maxAttempt: 5,
238
+ });
239
+ const ok = await pollLogin();
240
+ if (!ok) {
241
+ globalStore.signIn.setOpen(true);
242
+ return;
243
+ }
244
+ else {
245
+ const pollUpdateAccount = createPoll(async () => {
246
+ try {
247
+ await updateAccountMutation.mutateAsync({
248
+ branchCode: step1Form.getValues('branchCode'),
249
+ realName: step1Form.getValues('realName'),
250
+ birthDay: format(step1Form.getValues('birthDay'), 'yyyy-MM-dd'),
251
+ });
252
+ return true;
253
+ }
254
+ catch {
255
+ return false;
256
+ }
257
+ }, {
258
+ until: (ok) => ok,
259
+ maxAttempt: 5,
260
+ interval: 300,
261
+ });
262
+ await pollUpdateAccount();
263
+ }
264
+ globalStore.signUp.setOpen(false);
265
+ globalStore.kycReminder.setOpen(true);
266
+ step1Form.reset();
267
+ step2Form.reset();
268
+ setStep(1);
269
+ }
270
+ catch (error) {
271
+ toaster.error({
272
+ description: error instanceof Error
273
+ ? error.message
274
+ : 'Invalid Verification Code',
275
+ });
276
+ }
277
+ }), children: [_jsx(Controller, { name: "verificationCode", control: step2Form.control, render: (o) => (_jsxs(Field.Root, { invalid: o.fieldState.invalid, children: [_jsxs(PinInput.Root, { placeholder: "0", value: o.field.value, onValueChange: (details) => {
278
+ o.field.onChange(details.value);
279
+ }, onValueComplete: () => {
280
+ form2Ref.current?.requestSubmit();
281
+ }, blurOnComplete: true, readOnly: step2Form.formState.isSubmitting, type: "numeric", children: [_jsxs(PinInput.Control, { className: "grid-cols-[1fr_1fr_1fr_auto_1fr_1fr_1fr] items-center gap-md", children: [_jsx(PinInput.Input, { index: 0 }), _jsx(PinInput.Input, { index: 1 }), _jsx(PinInput.Input, { index: 2 }), _jsx("span", { className: "text-text-placeholder-subtle text-2xl font-medium", children: "\u2013" }), _jsx(PinInput.Input, { index: 3 }), _jsx(PinInput.Input, { index: 4 }), _jsx(PinInput.Input, { index: 5 })] }), _jsx(PinInput.HiddenInput, {})] }), _jsx(Field.ErrorText, { children: o.formState.errors.verificationCode?.message })] })) }), _jsx(Button, { type: "submit", className: "mt-4xl", disabled: step2Form.formState.isSubmitting, children: "Verify" }), _jsxs("div", { className: "mt-3 flex w-full items-center justify-center gap-xs text-sm", children: [_jsx("span", { className: "text-text-secondary-700", children: "Didn't recieve the code?" }), _jsx("button", { type: "button", className: "text-button-secondary-fg font-semibold disabled:cursor-not-allowed disabled:opacity-75", disabled: cooldown.cooling, onClick: async () => {
282
+ await sendVerificationCodeMutation.mutateAsync({
283
+ channel: 'SMS',
284
+ recipient: mobileNumberParser.format(step1Form.getValues('mobileNumber')),
285
+ });
286
+ cooldown.start();
287
+ }, children: cooldown.cooling
288
+ ? `Resend in ${cooldown.countdown}s`
289
+ : 'Resend' })] }), _jsxs("button", { type: "button", className: "text-text-tertiary-600 mx-auto mt-3xl flex w-fit items-center gap-1 text-sm font-semibold", onClick: () => {
290
+ setStep(1);
291
+ step2Form.reset();
292
+ cooldown.stop();
293
+ }, children: [_jsx(ArrowLeftIcon, { className: "size-5" }), "Back"] })] })] }))] }));
294
+ }
295
+ const DEVICE_TIMEZONE = Intl.DateTimeFormat().resolvedOptions().timeZone;
296
+ function DateOfBirthField(props) {
297
+ const [value, setValue] = useControllableState({
298
+ value: props.value,
299
+ defaultValue: props.defaultValue ?? null,
300
+ onChange: props.onChange,
301
+ });
302
+ return (_jsxs(DatePicker.Root, { size: "md", variant: "outline", placeholder: "MM/DD/YYYY", lazyMount: true, unmountOnExit: true, fixedWeeks: true, selectionMode: "single", value: value ? [parseDate(value)] : [], onValueChange: (details) => {
303
+ const value = details.value.at(0)?.toDate(DEVICE_TIMEZONE);
304
+ setValue(value ?? null);
305
+ }, children: [_jsx(DatePicker.Label, { children: "Date of Birth" }), _jsxs(DatePicker.Control, { children: [_jsx(DatePicker.Input, { onBlur: props.onBlur, onFocus: props.onFocus }), _jsx(DatePicker.Trigger, { children: _jsx(CalendarIcon, {}) })] }), _jsx(DatePicker.Positioner, { children: _jsxs(DatePicker.Content, { children: [_jsx(DatePicker.View, { view: "day", children: _jsx(DatePicker.Context, { children: (api) => (_jsxs(_Fragment, { children: [_jsxs(DatePicker.ViewControl, { children: [_jsx(DatePicker.PrevTrigger, { children: _jsx(ChevronLeftIcon, {}) }), _jsx(DatePicker.ViewTrigger, { children: _jsx(DatePicker.RangeText, {}) }), _jsx(DatePicker.NextTrigger, { children: _jsx(ChevronRightIcon, {}) })] }), _jsxs(DatePicker.Table, { children: [_jsx(DatePicker.TableHead, { children: _jsx(DatePicker.TableRow, { children: api.weekDays.map((weekDay, id) => (_jsx(DatePicker.TableHeader, { children: weekDay.short.substring(0, 2) }, id))) }) }), _jsx(DatePicker.TableBody, { children: api.weeks.map((week, id) => (_jsx(DatePicker.TableRow, { children: week.map((day, id) => (_jsx(DatePicker.TableCell, { value: day, children: _jsx(DatePicker.TableCellTrigger, { children: day.day }) }, id))) }, id))) })] })] })) }) }), _jsx(DatePicker.View, { view: "month", children: _jsx(DatePicker.Context, { children: (datePicker) => (_jsxs(_Fragment, { children: [_jsxs(DatePicker.ViewControl, { children: [_jsx(DatePicker.PrevTrigger, { children: _jsx(ChevronLeftIcon, {}) }), _jsx(DatePicker.ViewTrigger, { children: _jsx(DatePicker.RangeText, {}) }), _jsx(DatePicker.NextTrigger, { children: _jsx(ChevronRightIcon, {}) })] }), _jsx(DatePicker.Table, { children: _jsx(DatePicker.TableBody, { children: datePicker
306
+ .getMonthsGrid({ columns: 4, format: 'short' })
307
+ .map((months, id) => (_jsx(DatePicker.TableRow, { children: months.map((month, id) => (_jsx(DatePicker.TableCell, { value: month.value, children: _jsx(DatePicker.TableCellTrigger, { className: "w-[4.425rem]", children: month.label }) }, id))) }, id))) }) })] })) }) }), _jsx(DatePicker.View, { view: "year", children: _jsx(DatePicker.Context, { children: (datePicker) => (_jsxs(_Fragment, { children: [_jsxs(DatePicker.ViewControl, { children: [_jsx(DatePicker.PrevTrigger, { children: _jsx(ChevronLeftIcon, {}) }), _jsx(DatePicker.ViewTrigger, { children: _jsx(DatePicker.RangeText, {}) }), _jsx(DatePicker.NextTrigger, { children: _jsx(ChevronRightIcon, {}) })] }), _jsx(DatePicker.Table, { children: _jsx(DatePicker.TableBody, { children: datePicker
308
+ .getYearsGrid({ columns: 4 })
309
+ .map((years, id) => (_jsx(DatePicker.TableRow, { children: years.map((year, id) => (_jsx(DatePicker.TableCell, { value: year.value, children: _jsx(DatePicker.TableCellTrigger, { className: "w-[4.425rem]", children: year.label }) }, id))) }, id))) }) })] })) }) })] }) })] }));
310
+ }
@@ -0,0 +1 @@
1
+ export declare function SignUpForm(): import("react/jsx-runtime").JSX.Element;