@greatapps/common 1.1.428 → 1.1.429

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 (477) hide show
  1. package/package.json +1 -1
  2. package/dist/components/account/AccountModals.mjs +0 -18
  3. package/dist/components/account/AccountModals.mjs.map +0 -1
  4. package/dist/components/account/ConfigurationsMyAccountModal.mjs +0 -129
  5. package/dist/components/account/ConfigurationsMyAccountModal.mjs.map +0 -1
  6. package/dist/components/account/ConfirmDeleteAccountModal.mjs +0 -45
  7. package/dist/components/account/ConfirmDeleteAccountModal.mjs.map +0 -1
  8. package/dist/components/account/ConfirmGlobalPreferencesModal.mjs +0 -45
  9. package/dist/components/account/ConfirmGlobalPreferencesModal.mjs.map +0 -1
  10. package/dist/components/account/DeleteAccountModal.mjs +0 -123
  11. package/dist/components/account/DeleteAccountModal.mjs.map +0 -1
  12. package/dist/components/account/DisableTwoFactorAuthModal.mjs +0 -67
  13. package/dist/components/account/DisableTwoFactorAuthModal.mjs.map +0 -1
  14. package/dist/components/account/IsntPossibleDeleteAccountModal.mjs +0 -42
  15. package/dist/components/account/IsntPossibleDeleteAccountModal.mjs.map +0 -1
  16. package/dist/components/account/TwoFactorAuthModal.mjs +0 -182
  17. package/dist/components/account/TwoFactorAuthModal.mjs.map +0 -1
  18. package/dist/components/account/constants.mjs +0 -29
  19. package/dist/components/account/constants.mjs.map +0 -1
  20. package/dist/components/account/hooks/useChangeEmailForm.mjs +0 -53
  21. package/dist/components/account/hooks/useChangeEmailForm.mjs.map +0 -1
  22. package/dist/components/account/hooks/useChangePasswordForm.mjs +0 -47
  23. package/dist/components/account/hooks/useChangePasswordForm.mjs.map +0 -1
  24. package/dist/components/account/hooks/useChangePhoneForm.mjs +0 -91
  25. package/dist/components/account/hooks/useChangePhoneForm.mjs.map +0 -1
  26. package/dist/components/account/hooks/useConfigurationsModal.mjs +0 -34
  27. package/dist/components/account/hooks/useConfigurationsModal.mjs.map +0 -1
  28. package/dist/components/account/hooks/useDisableTwoFactorAuthForm.mjs +0 -54
  29. package/dist/components/account/hooks/useDisableTwoFactorAuthForm.mjs.map +0 -1
  30. package/dist/components/account/hooks/useOtpVerification.mjs +0 -94
  31. package/dist/components/account/hooks/useOtpVerification.mjs.map +0 -1
  32. package/dist/components/account/hooks/useTwoFactorAuthForm.mjs +0 -80
  33. package/dist/components/account/hooks/useTwoFactorAuthForm.mjs.map +0 -1
  34. package/dist/components/account/sections/ChangeEmailModal.mjs +0 -181
  35. package/dist/components/account/sections/ChangeEmailModal.mjs.map +0 -1
  36. package/dist/components/account/sections/ChangePasswordSection.mjs +0 -64
  37. package/dist/components/account/sections/ChangePasswordSection.mjs.map +0 -1
  38. package/dist/components/account/sections/ChangePhoneModal.mjs +0 -192
  39. package/dist/components/account/sections/ChangePhoneModal.mjs.map +0 -1
  40. package/dist/components/account/sections/MyProfileSection.mjs +0 -317
  41. package/dist/components/account/sections/MyProfileSection.mjs.map +0 -1
  42. package/dist/components/account/sections/PreferencesSection.mjs +0 -227
  43. package/dist/components/account/sections/PreferencesSection.mjs.map +0 -1
  44. package/dist/components/account/sections/SecuritySection.mjs +0 -31
  45. package/dist/components/account/sections/SecuritySection.mjs.map +0 -1
  46. package/dist/components/embeds/CrispEmbed.mjs +0 -89
  47. package/dist/components/embeds/CrispEmbed.mjs.map +0 -1
  48. package/dist/components/embeds/FrillEmbed.mjs +0 -107
  49. package/dist/components/embeds/FrillEmbed.mjs.map +0 -1
  50. package/dist/components/handlers/SearchParamsHandler.mjs +0 -24
  51. package/dist/components/handlers/SearchParamsHandler.mjs.map +0 -1
  52. package/dist/components/layouts/AppMobileNavBar.mjs +0 -60
  53. package/dist/components/layouts/AppMobileNavBar.mjs.map +0 -1
  54. package/dist/components/layouts/AppNavBar.mjs +0 -37
  55. package/dist/components/layouts/AppNavBar.mjs.map +0 -1
  56. package/dist/components/layouts/CollapsibleSidebar.mjs +0 -65
  57. package/dist/components/layouts/CollapsibleSidebar.mjs.map +0 -1
  58. package/dist/components/layouts/MainLayout.mjs +0 -60
  59. package/dist/components/layouts/MainLayout.mjs.map +0 -1
  60. package/dist/components/layouts/MdSideBarNavigation.mjs +0 -54
  61. package/dist/components/layouts/MdSideBarNavigation.mjs.map +0 -1
  62. package/dist/components/layouts/NavBar.mjs +0 -152
  63. package/dist/components/layouts/NavBar.mjs.map +0 -1
  64. package/dist/components/layouts/NavBarItem.mjs +0 -23
  65. package/dist/components/layouts/NavBarItem.mjs.map +0 -1
  66. package/dist/components/layouts/NotificationsPopover.mjs +0 -97
  67. package/dist/components/layouts/NotificationsPopover.mjs.map +0 -1
  68. package/dist/components/layouts/ProfilePopover.mjs +0 -152
  69. package/dist/components/layouts/ProfilePopover.mjs.map +0 -1
  70. package/dist/components/layouts/SideBarNavigation.mjs +0 -63
  71. package/dist/components/layouts/SideBarNavigation.mjs.map +0 -1
  72. package/dist/components/layouts/UsersSelectorPopover.mjs +0 -210
  73. package/dist/components/layouts/UsersSelectorPopover.mjs.map +0 -1
  74. package/dist/components/layouts/WhitelabelCodes.mjs +0 -50
  75. package/dist/components/layouts/WhitelabelCodes.mjs.map +0 -1
  76. package/dist/components/modals/BuyCreditsModal.mjs +0 -281
  77. package/dist/components/modals/BuyCreditsModal.mjs.map +0 -1
  78. package/dist/components/modals/ModalManager.mjs +0 -19
  79. package/dist/components/modals/ModalManager.mjs.map +0 -1
  80. package/dist/components/modals/Modals.mjs +0 -20
  81. package/dist/components/modals/Modals.mjs.map +0 -1
  82. package/dist/components/modals/PaidPlanRequiredModal.mjs +0 -46
  83. package/dist/components/modals/PaidPlanRequiredModal.mjs.map +0 -1
  84. package/dist/components/modals/cards/AddCardModal.mjs +0 -215
  85. package/dist/components/modals/cards/AddCardModal.mjs.map +0 -1
  86. package/dist/components/modals/cards/CardFormFields.mjs +0 -268
  87. package/dist/components/modals/cards/CardFormFields.mjs.map +0 -1
  88. package/dist/components/navigation/AppNavigation.mjs +0 -33
  89. package/dist/components/navigation/AppNavigation.mjs.map +0 -1
  90. package/dist/components/navigation/AppNavigationContext.mjs +0 -13
  91. package/dist/components/navigation/AppNavigationContext.mjs.map +0 -1
  92. package/dist/components/navigation/CancelledSubscriptionBanner.mjs +0 -52
  93. package/dist/components/navigation/CancelledSubscriptionBanner.mjs.map +0 -1
  94. package/dist/components/navigation/NavItem.mjs +0 -41
  95. package/dist/components/navigation/NavItem.mjs.map +0 -1
  96. package/dist/components/navigation/NavItemsContext.mjs +0 -16
  97. package/dist/components/navigation/NavItemsContext.mjs.map +0 -1
  98. package/dist/components/navigation/ProjectSelectorPopover.mjs +0 -147
  99. package/dist/components/navigation/ProjectSelectorPopover.mjs.map +0 -1
  100. package/dist/components/navigation/shells/DesktopShell.mjs +0 -11
  101. package/dist/components/navigation/shells/DesktopShell.mjs.map +0 -1
  102. package/dist/components/navigation/shells/MdShell.mjs +0 -11
  103. package/dist/components/navigation/shells/MdShell.mjs.map +0 -1
  104. package/dist/components/navigation/shells/MobileShell.mjs +0 -27
  105. package/dist/components/navigation/shells/MobileShell.mjs.map +0 -1
  106. package/dist/components/navigation/shells/TabsMobileShell.mjs +0 -61
  107. package/dist/components/navigation/shells/TabsMobileShell.mjs.map +0 -1
  108. package/dist/components/navigation/subcomponents/BottomLinks.mjs +0 -35
  109. package/dist/components/navigation/subcomponents/BottomLinks.mjs.map +0 -1
  110. package/dist/components/navigation/subcomponents/CreditsCard.mjs +0 -33
  111. package/dist/components/navigation/subcomponents/CreditsCard.mjs.map +0 -1
  112. package/dist/components/navigation/subcomponents/NavItems.mjs +0 -25
  113. package/dist/components/navigation/subcomponents/NavItems.mjs.map +0 -1
  114. package/dist/components/navigation/subcomponents/PlanCard.mjs +0 -25
  115. package/dist/components/navigation/subcomponents/PlanCard.mjs.map +0 -1
  116. package/dist/components/navigation/subcomponents/ProjectSelector.mjs +0 -145
  117. package/dist/components/navigation/subcomponents/ProjectSelector.mjs.map +0 -1
  118. package/dist/components/navigation/types.mjs +0 -1
  119. package/dist/components/navigation/types.mjs.map +0 -1
  120. package/dist/components/pages/NotFoundPage.mjs +0 -47
  121. package/dist/components/pages/NotFoundPage.mjs.map +0 -1
  122. package/dist/components/pages/notifications/Notifications.mjs +0 -156
  123. package/dist/components/pages/notifications/Notifications.mjs.map +0 -1
  124. package/dist/components/ui/buttons/Button.mjs +0 -52
  125. package/dist/components/ui/buttons/Button.mjs.map +0 -1
  126. package/dist/components/ui/buttons/CancelButton.mjs +0 -17
  127. package/dist/components/ui/buttons/CancelButton.mjs.map +0 -1
  128. package/dist/components/ui/buttons/CopyButton.mjs +0 -42
  129. package/dist/components/ui/buttons/CopyButton.mjs.map +0 -1
  130. package/dist/components/ui/data-display/Accordion.mjs +0 -76
  131. package/dist/components/ui/data-display/Accordion.mjs.map +0 -1
  132. package/dist/components/ui/data-display/Badge.mjs +0 -42
  133. package/dist/components/ui/data-display/Badge.mjs.map +0 -1
  134. package/dist/components/ui/data-display/Card.mjs +0 -92
  135. package/dist/components/ui/data-display/Card.mjs.map +0 -1
  136. package/dist/components/ui/data-display/CardBrandIcons.mjs +0 -484
  137. package/dist/components/ui/data-display/CardBrandIcons.mjs.map +0 -1
  138. package/dist/components/ui/data-display/CardItem.mjs +0 -67
  139. package/dist/components/ui/data-display/CardItem.mjs.map +0 -1
  140. package/dist/components/ui/data-display/Pagination.mjs +0 -118
  141. package/dist/components/ui/data-display/Pagination.mjs.map +0 -1
  142. package/dist/components/ui/data-display/PaymentInfoCard.mjs +0 -161
  143. package/dist/components/ui/data-display/PaymentInfoCard.mjs.map +0 -1
  144. package/dist/components/ui/data-display/ScrollArea.mjs +0 -62
  145. package/dist/components/ui/data-display/ScrollArea.mjs.map +0 -1
  146. package/dist/components/ui/data-display/Separator.mjs +0 -28
  147. package/dist/components/ui/data-display/Separator.mjs.map +0 -1
  148. package/dist/components/ui/data-display/Table.mjs +0 -116
  149. package/dist/components/ui/data-display/Table.mjs.map +0 -1
  150. package/dist/components/ui/data-display/Tabs.mjs +0 -69
  151. package/dist/components/ui/data-display/Tabs.mjs.map +0 -1
  152. package/dist/components/ui/data-display/UserAvatar.mjs +0 -49
  153. package/dist/components/ui/data-display/UserAvatar.mjs.map +0 -1
  154. package/dist/components/ui/feedback/CircularProgress.mjs +0 -71
  155. package/dist/components/ui/feedback/CircularProgress.mjs.map +0 -1
  156. package/dist/components/ui/feedback/DefaultCircularProgress.mjs +0 -63
  157. package/dist/components/ui/feedback/DefaultCircularProgress.mjs.map +0 -1
  158. package/dist/components/ui/feedback/LoadingOverlay.mjs +0 -19
  159. package/dist/components/ui/feedback/LoadingOverlay.mjs.map +0 -1
  160. package/dist/components/ui/feedback/Progress.mjs +0 -37
  161. package/dist/components/ui/feedback/Progress.mjs.map +0 -1
  162. package/dist/components/ui/feedback/Skeleton.mjs +0 -9
  163. package/dist/components/ui/feedback/Skeleton.mjs.map +0 -1
  164. package/dist/components/ui/feedback/Toast.mjs +0 -77
  165. package/dist/components/ui/feedback/Toast.mjs.map +0 -1
  166. package/dist/components/ui/form/Calendar.mjs +0 -204
  167. package/dist/components/ui/form/Calendar.mjs.map +0 -1
  168. package/dist/components/ui/form/Checkbox.mjs +0 -33
  169. package/dist/components/ui/form/Checkbox.mjs.map +0 -1
  170. package/dist/components/ui/form/ComboboxField.mjs +0 -130
  171. package/dist/components/ui/form/ComboboxField.mjs.map +0 -1
  172. package/dist/components/ui/form/DatePicker.mjs +0 -82
  173. package/dist/components/ui/form/DatePicker.mjs.map +0 -1
  174. package/dist/components/ui/form/DateRangePicker.mjs +0 -92
  175. package/dist/components/ui/form/DateRangePicker.mjs.map +0 -1
  176. package/dist/components/ui/form/FormField.mjs +0 -103
  177. package/dist/components/ui/form/FormField.mjs.map +0 -1
  178. package/dist/components/ui/form/Input.mjs +0 -21
  179. package/dist/components/ui/form/Input.mjs.map +0 -1
  180. package/dist/components/ui/form/InputOtp.mjs +0 -70
  181. package/dist/components/ui/form/InputOtp.mjs.map +0 -1
  182. package/dist/components/ui/form/PhoneInput.mjs +0 -176
  183. package/dist/components/ui/form/PhoneInput.mjs.map +0 -1
  184. package/dist/components/ui/form/RadioGroup.mjs +0 -37
  185. package/dist/components/ui/form/RadioGroup.mjs.map +0 -1
  186. package/dist/components/ui/form/Select.mjs +0 -179
  187. package/dist/components/ui/form/Select.mjs.map +0 -1
  188. package/dist/components/ui/form/SelectField.mjs +0 -80
  189. package/dist/components/ui/form/SelectField.mjs.map +0 -1
  190. package/dist/components/ui/form/Switch.mjs +0 -33
  191. package/dist/components/ui/form/Switch.mjs.map +0 -1
  192. package/dist/components/ui/form/SwitchOptionFieldWithIcon.mjs +0 -40
  193. package/dist/components/ui/form/SwitchOptionFieldWithIcon.mjs.map +0 -1
  194. package/dist/components/ui/form/TextAreaField.mjs +0 -56
  195. package/dist/components/ui/form/TextAreaField.mjs.map +0 -1
  196. package/dist/components/ui/form/Textarea.mjs +0 -20
  197. package/dist/components/ui/form/Textarea.mjs.map +0 -1
  198. package/dist/components/ui/overlay/Command.mjs +0 -178
  199. package/dist/components/ui/overlay/Command.mjs.map +0 -1
  200. package/dist/components/ui/overlay/Dialog.mjs +0 -142
  201. package/dist/components/ui/overlay/Dialog.mjs.map +0 -1
  202. package/dist/components/ui/overlay/Popover.mjs +0 -46
  203. package/dist/components/ui/overlay/Popover.mjs.map +0 -1
  204. package/dist/components/ui/overlay/Sheet.mjs +0 -149
  205. package/dist/components/ui/overlay/Sheet.mjs.map +0 -1
  206. package/dist/components/ui/overlay/Tooltip.mjs +0 -57
  207. package/dist/components/ui/overlay/Tooltip.mjs.map +0 -1
  208. package/dist/components/widgets/notifications/NotificationCard.mjs +0 -54
  209. package/dist/components/widgets/notifications/NotificationCard.mjs.map +0 -1
  210. package/dist/enums/AccountSectionType.mjs +0 -11
  211. package/dist/enums/AccountSectionType.mjs.map +0 -1
  212. package/dist/hooks/copy-to-clipboard.hook.mjs +0 -52
  213. package/dist/hooks/copy-to-clipboard.hook.mjs.map +0 -1
  214. package/dist/hooks/useCountdownTimer.mjs +0 -29
  215. package/dist/hooks/useCountdownTimer.mjs.map +0 -1
  216. package/dist/hooks/useDebounce.mjs +0 -19
  217. package/dist/hooks/useDebounce.mjs.map +0 -1
  218. package/dist/hooks/useDebounceState.mjs +0 -12
  219. package/dist/hooks/useDebounceState.mjs.map +0 -1
  220. package/dist/hooks/useDebouncedEffect.mjs +0 -44
  221. package/dist/hooks/useDebouncedEffect.mjs.map +0 -1
  222. package/dist/hooks/useIsMobile.mjs +0 -18
  223. package/dist/hooks/useIsMobile.mjs.map +0 -1
  224. package/dist/hooks/usePasswordVisibility.mjs +0 -13
  225. package/dist/hooks/usePasswordVisibility.mjs.map +0 -1
  226. package/dist/index.mjs +0 -528
  227. package/dist/index.mjs.map +0 -1
  228. package/dist/infra/api/client.mjs +0 -162
  229. package/dist/infra/api/client.mjs.map +0 -1
  230. package/dist/infra/api/types.mjs +0 -31
  231. package/dist/infra/api/types.mjs.map +0 -1
  232. package/dist/infra/utils/client-info.mjs +0 -27
  233. package/dist/infra/utils/client-info.mjs.map +0 -1
  234. package/dist/infra/utils/clsx.mjs +0 -9
  235. package/dist/infra/utils/clsx.mjs.map +0 -1
  236. package/dist/infra/utils/date.mjs +0 -11
  237. package/dist/infra/utils/date.mjs.map +0 -1
  238. package/dist/infra/utils/params.mjs +0 -21
  239. package/dist/infra/utils/params.mjs.map +0 -1
  240. package/dist/infra/utils/parser.mjs +0 -24
  241. package/dist/infra/utils/parser.mjs.map +0 -1
  242. package/dist/infra/utils/percentage.mjs +0 -20
  243. package/dist/infra/utils/percentage.mjs.map +0 -1
  244. package/dist/middleware.mjs +0 -10
  245. package/dist/middleware.mjs.map +0 -1
  246. package/dist/middlewares/chain.mjs +0 -37
  247. package/dist/middlewares/chain.mjs.map +0 -1
  248. package/dist/middlewares/create-auth-middleware.mjs +0 -32
  249. package/dist/middlewares/create-auth-middleware.mjs.map +0 -1
  250. package/dist/middlewares/types.mjs +0 -11
  251. package/dist/middlewares/types.mjs.map +0 -1
  252. package/dist/modules/accounts/actions/account-management.action.mjs +0 -98
  253. package/dist/modules/accounts/actions/account-management.action.mjs.map +0 -1
  254. package/dist/modules/accounts/actions/find-current-account.action.mjs +0 -10
  255. package/dist/modules/accounts/actions/find-current-account.action.mjs.map +0 -1
  256. package/dist/modules/accounts/actions/list-currencies.action.mjs +0 -10
  257. package/dist/modules/accounts/actions/list-currencies.action.mjs.map +0 -1
  258. package/dist/modules/accounts/actions/list-timezones.action.mjs +0 -10
  259. package/dist/modules/accounts/actions/list-timezones.action.mjs.map +0 -1
  260. package/dist/modules/accounts/hooks/current-account.hook.mjs +0 -24
  261. package/dist/modules/accounts/hooks/current-account.hook.mjs.map +0 -1
  262. package/dist/modules/accounts/hooks/useAccountManagement.mjs +0 -71
  263. package/dist/modules/accounts/hooks/useAccountManagement.mjs.map +0 -1
  264. package/dist/modules/accounts/hooks/useCurrencies.mjs +0 -17
  265. package/dist/modules/accounts/hooks/useCurrencies.mjs.map +0 -1
  266. package/dist/modules/accounts/hooks/useTimezones.mjs +0 -17
  267. package/dist/modules/accounts/hooks/useTimezones.mjs.map +0 -1
  268. package/dist/modules/accounts/hooks/useViaCep.mjs +0 -19
  269. package/dist/modules/accounts/hooks/useViaCep.mjs.map +0 -1
  270. package/dist/modules/accounts/services/account.service.mjs +0 -182
  271. package/dist/modules/accounts/services/account.service.mjs.map +0 -1
  272. package/dist/modules/accounts/services/currency.service.mjs +0 -24
  273. package/dist/modules/accounts/services/currency.service.mjs.map +0 -1
  274. package/dist/modules/accounts/services/timezone.service.mjs +0 -65
  275. package/dist/modules/accounts/services/timezone.service.mjs.map +0 -1
  276. package/dist/modules/accounts/services/two-factor.service.mjs +0 -78
  277. package/dist/modules/accounts/services/two-factor.service.mjs.map +0 -1
  278. package/dist/modules/accounts/types.mjs +0 -1
  279. package/dist/modules/accounts/types.mjs.map +0 -1
  280. package/dist/modules/auth/actions/login.action.mjs +0 -14
  281. package/dist/modules/auth/actions/login.action.mjs.map +0 -1
  282. package/dist/modules/auth/actions/logout.action.mjs +0 -14
  283. package/dist/modules/auth/actions/logout.action.mjs.map +0 -1
  284. package/dist/modules/auth/actions/register.action.mjs +0 -14
  285. package/dist/modules/auth/actions/register.action.mjs.map +0 -1
  286. package/dist/modules/auth/actions/validate-session.action.mjs +0 -48
  287. package/dist/modules/auth/actions/validate-session.action.mjs.map +0 -1
  288. package/dist/modules/auth/actions/verify-two-factor.action.mjs +0 -17
  289. package/dist/modules/auth/actions/verify-two-factor.action.mjs.map +0 -1
  290. package/dist/modules/auth/hooks/login.hook.mjs +0 -13
  291. package/dist/modules/auth/hooks/login.hook.mjs.map +0 -1
  292. package/dist/modules/auth/hooks/logout.hook.mjs +0 -13
  293. package/dist/modules/auth/hooks/logout.hook.mjs.map +0 -1
  294. package/dist/modules/auth/hooks/register.hook.mjs +0 -13
  295. package/dist/modules/auth/hooks/register.hook.mjs.map +0 -1
  296. package/dist/modules/auth/hooks/useManagementPermissions.mjs +0 -41
  297. package/dist/modules/auth/hooks/useManagementPermissions.mjs.map +0 -1
  298. package/dist/modules/auth/hooks/useUserQuery.mjs +0 -63
  299. package/dist/modules/auth/hooks/useUserQuery.mjs.map +0 -1
  300. package/dist/modules/auth/schema.mjs +0 -1
  301. package/dist/modules/auth/schema.mjs.map +0 -1
  302. package/dist/modules/auth/services/auth.service.mjs +0 -342
  303. package/dist/modules/auth/services/auth.service.mjs.map +0 -1
  304. package/dist/modules/auth/types/management-permission.type.mjs +0 -1
  305. package/dist/modules/auth/types/management-permission.type.mjs.map +0 -1
  306. package/dist/modules/auth/utils/assert-management-permission.mjs +0 -42
  307. package/dist/modules/auth/utils/assert-management-permission.mjs.map +0 -1
  308. package/dist/modules/auth/utils/assert-management-subscription.mjs +0 -33
  309. package/dist/modules/auth/utils/assert-management-subscription.mjs.map +0 -1
  310. package/dist/modules/auth/utils/assert-paid-subscription.mjs +0 -40
  311. package/dist/modules/auth/utils/assert-paid-subscription.mjs.map +0 -1
  312. package/dist/modules/auth/utils/assert-subscription-addon.mjs +0 -35
  313. package/dist/modules/auth/utils/assert-subscription-addon.mjs.map +0 -1
  314. package/dist/modules/auth/utils/build-wl-override.mjs +0 -27
  315. package/dist/modules/auth/utils/build-wl-override.mjs.map +0 -1
  316. package/dist/modules/auth/utils/get-user-context.mjs +0 -25
  317. package/dist/modules/auth/utils/get-user-context.mjs.map +0 -1
  318. package/dist/modules/cards/actions/create-card.action.mjs +0 -10
  319. package/dist/modules/cards/actions/create-card.action.mjs.map +0 -1
  320. package/dist/modules/cards/actions/list-cards.action.mjs +0 -10
  321. package/dist/modules/cards/actions/list-cards.action.mjs.map +0 -1
  322. package/dist/modules/cards/hooks/cards.hook.mjs +0 -16
  323. package/dist/modules/cards/hooks/cards.hook.mjs.map +0 -1
  324. package/dist/modules/cards/hooks/create-card.hook.mjs +0 -18
  325. package/dist/modules/cards/hooks/create-card.hook.mjs.map +0 -1
  326. package/dist/modules/cards/services/cards.service.mjs +0 -44
  327. package/dist/modules/cards/services/cards.service.mjs.map +0 -1
  328. package/dist/modules/cards/types.mjs +0 -27
  329. package/dist/modules/cards/types.mjs.map +0 -1
  330. package/dist/modules/ia-credits/actions/list-ia-credits.action.mjs +0 -10
  331. package/dist/modules/ia-credits/actions/list-ia-credits.action.mjs.map +0 -1
  332. package/dist/modules/ia-credits/hooks/ia-credits.hook.mjs +0 -76
  333. package/dist/modules/ia-credits/hooks/ia-credits.hook.mjs.map +0 -1
  334. package/dist/modules/ia-credits/services/ia-credits.service.mjs +0 -31
  335. package/dist/modules/ia-credits/services/ia-credits.service.mjs.map +0 -1
  336. package/dist/modules/ia-credits/types.mjs +0 -25
  337. package/dist/modules/ia-credits/types.mjs.map +0 -1
  338. package/dist/modules/plans/actions/find-plan-by-id.action.mjs +0 -10
  339. package/dist/modules/plans/actions/find-plan-by-id.action.mjs.map +0 -1
  340. package/dist/modules/plans/hooks/use-has-plan-addon.hook.mjs +0 -13
  341. package/dist/modules/plans/hooks/use-has-plan-addon.hook.mjs.map +0 -1
  342. package/dist/modules/plans/hooks/use-plan-by-id.hook.mjs +0 -15
  343. package/dist/modules/plans/hooks/use-plan-by-id.hook.mjs.map +0 -1
  344. package/dist/modules/plans/services/plans.service.mjs +0 -34
  345. package/dist/modules/plans/services/plans.service.mjs.map +0 -1
  346. package/dist/modules/plans/types/plan.type.mjs +0 -20
  347. package/dist/modules/plans/types/plan.type.mjs.map +0 -1
  348. package/dist/modules/projects/actions/add-project-user.action.mjs +0 -10
  349. package/dist/modules/projects/actions/add-project-user.action.mjs.map +0 -1
  350. package/dist/modules/projects/actions/list-all-account-users.action.mjs +0 -10
  351. package/dist/modules/projects/actions/list-all-account-users.action.mjs.map +0 -1
  352. package/dist/modules/projects/actions/list-available-users.action.mjs +0 -10
  353. package/dist/modules/projects/actions/list-available-users.action.mjs.map +0 -1
  354. package/dist/modules/projects/actions/list-project-users.action.mjs +0 -10
  355. package/dist/modules/projects/actions/list-project-users.action.mjs.map +0 -1
  356. package/dist/modules/projects/actions/remove-project-user.action.mjs +0 -10
  357. package/dist/modules/projects/actions/remove-project-user.action.mjs.map +0 -1
  358. package/dist/modules/projects/hooks/add-project-user.hook.mjs +0 -61
  359. package/dist/modules/projects/hooks/add-project-user.hook.mjs.map +0 -1
  360. package/dist/modules/projects/hooks/list-all-account-users.hook.mjs +0 -35
  361. package/dist/modules/projects/hooks/list-all-account-users.hook.mjs.map +0 -1
  362. package/dist/modules/projects/hooks/list-available-users.hook.mjs +0 -34
  363. package/dist/modules/projects/hooks/list-available-users.hook.mjs.map +0 -1
  364. package/dist/modules/projects/hooks/list-project-users.hook.mjs +0 -34
  365. package/dist/modules/projects/hooks/list-project-users.hook.mjs.map +0 -1
  366. package/dist/modules/projects/hooks/remove-project-user.hook.mjs +0 -61
  367. package/dist/modules/projects/hooks/remove-project-user.hook.mjs.map +0 -1
  368. package/dist/modules/projects/services/project-users.service.mjs +0 -96
  369. package/dist/modules/projects/services/project-users.service.mjs.map +0 -1
  370. package/dist/modules/projects/types.mjs +0 -23
  371. package/dist/modules/projects/types.mjs.map +0 -1
  372. package/dist/modules/subscriptions/actions/calculate-subscription.action.mjs +0 -10
  373. package/dist/modules/subscriptions/actions/calculate-subscription.action.mjs.map +0 -1
  374. package/dist/modules/subscriptions/actions/list-subscriptions.action.mjs +0 -10
  375. package/dist/modules/subscriptions/actions/list-subscriptions.action.mjs.map +0 -1
  376. package/dist/modules/subscriptions/actions/update-subscription-plan.action.mjs +0 -12
  377. package/dist/modules/subscriptions/actions/update-subscription-plan.action.mjs.map +0 -1
  378. package/dist/modules/subscriptions/constants/addons.constants.mjs +0 -24
  379. package/dist/modules/subscriptions/constants/addons.constants.mjs.map +0 -1
  380. package/dist/modules/subscriptions/constants/query-keys.constants.mjs +0 -5
  381. package/dist/modules/subscriptions/constants/query-keys.constants.mjs.map +0 -1
  382. package/dist/modules/subscriptions/hooks/calculate-subscription.hook.mjs +0 -13
  383. package/dist/modules/subscriptions/hooks/calculate-subscription.hook.mjs.map +0 -1
  384. package/dist/modules/subscriptions/hooks/find-active-subscription.hook.mjs +0 -17
  385. package/dist/modules/subscriptions/hooks/find-active-subscription.hook.mjs.map +0 -1
  386. package/dist/modules/subscriptions/hooks/list-subscriptions.hook.mjs +0 -17
  387. package/dist/modules/subscriptions/hooks/list-subscriptions.hook.mjs.map +0 -1
  388. package/dist/modules/subscriptions/hooks/update-subscription-plan.hook.mjs +0 -22
  389. package/dist/modules/subscriptions/hooks/update-subscription-plan.hook.mjs.map +0 -1
  390. package/dist/modules/subscriptions/hooks/use-cancelled-subscription-guard.mjs +0 -37
  391. package/dist/modules/subscriptions/hooks/use-cancelled-subscription-guard.mjs.map +0 -1
  392. package/dist/modules/subscriptions/services/subscriptions.service.mjs +0 -75
  393. package/dist/modules/subscriptions/services/subscriptions.service.mjs.map +0 -1
  394. package/dist/modules/subscriptions/types/billing-period.type.mjs +0 -1
  395. package/dist/modules/subscriptions/types/billing-period.type.mjs.map +0 -1
  396. package/dist/modules/subscriptions/types/calculate-subscription.type.mjs +0 -72
  397. package/dist/modules/subscriptions/types/calculate-subscription.type.mjs.map +0 -1
  398. package/dist/modules/subscriptions/types/subscription.type.mjs +0 -57
  399. package/dist/modules/subscriptions/types/subscription.type.mjs.map +0 -1
  400. package/dist/modules/subscriptions/utils/build-plan-extras.mjs +0 -37
  401. package/dist/modules/subscriptions/utils/build-plan-extras.mjs.map +0 -1
  402. package/dist/modules/subscriptions/utils/has-subscription-expired.mjs +0 -10
  403. package/dist/modules/subscriptions/utils/has-subscription-expired.mjs.map +0 -1
  404. package/dist/modules/subscriptions/utils/periodicity.mjs +0 -48
  405. package/dist/modules/subscriptions/utils/periodicity.mjs.map +0 -1
  406. package/dist/modules/subscriptions/utils/resolve-plan-extras-prices.mjs +0 -14
  407. package/dist/modules/subscriptions/utils/resolve-plan-extras-prices.mjs.map +0 -1
  408. package/dist/modules/users/action/find-user-by-id.action.mjs +0 -10
  409. package/dist/modules/users/action/find-user-by-id.action.mjs.map +0 -1
  410. package/dist/modules/users/action/list-messages.action.mjs +0 -13
  411. package/dist/modules/users/action/list-messages.action.mjs.map +0 -1
  412. package/dist/modules/users/action/mark-all-messages-as-read.action.mjs +0 -10
  413. package/dist/modules/users/action/mark-all-messages-as-read.action.mjs.map +0 -1
  414. package/dist/modules/users/action/mark-message-as-read.action.mjs +0 -10
  415. package/dist/modules/users/action/mark-message-as-read.action.mjs.map +0 -1
  416. package/dist/modules/users/hooks/messages.hook.mjs +0 -57
  417. package/dist/modules/users/hooks/messages.hook.mjs.map +0 -1
  418. package/dist/modules/users/schema/messages.schema.mjs +0 -21
  419. package/dist/modules/users/schema/messages.schema.mjs.map +0 -1
  420. package/dist/modules/users/schema.mjs +0 -11
  421. package/dist/modules/users/schema.mjs.map +0 -1
  422. package/dist/modules/users/services/messages.service.mjs +0 -35
  423. package/dist/modules/users/services/messages.service.mjs.map +0 -1
  424. package/dist/modules/users/services/user.service.mjs +0 -52
  425. package/dist/modules/users/services/user.service.mjs.map +0 -1
  426. package/dist/modules/whitelabel/actions/find-whitelabel.action.mjs +0 -21
  427. package/dist/modules/whitelabel/actions/find-whitelabel.action.mjs.map +0 -1
  428. package/dist/modules/whitelabel/actions/revalidate-whitelabel.action.mjs +0 -19
  429. package/dist/modules/whitelabel/actions/revalidate-whitelabel.action.mjs.map +0 -1
  430. package/dist/modules/whitelabel/schema.mjs +0 -1
  431. package/dist/modules/whitelabel/schema.mjs.map +0 -1
  432. package/dist/modules/whitelabel/services/whitelabel.service.mjs +0 -146
  433. package/dist/modules/whitelabel/services/whitelabel.service.mjs.map +0 -1
  434. package/dist/modules/whitelabel/utils/normalize-hostname.mjs +0 -35
  435. package/dist/modules/whitelabel/utils/normalize-hostname.mjs.map +0 -1
  436. package/dist/providers/auth.provider.mjs +0 -114
  437. package/dist/providers/auth.provider.mjs.map +0 -1
  438. package/dist/providers/query.provider.mjs +0 -99
  439. package/dist/providers/query.provider.mjs.map +0 -1
  440. package/dist/providers/whitelabel.provider.mjs +0 -42
  441. package/dist/providers/whitelabel.provider.mjs.map +0 -1
  442. package/dist/server.mjs +0 -111
  443. package/dist/server.mjs.map +0 -1
  444. package/dist/store/useAccountModals.mjs +0 -18
  445. package/dist/store/useAccountModals.mjs.map +0 -1
  446. package/dist/store/useBuyCreditsModal.mjs +0 -16
  447. package/dist/store/useBuyCreditsModal.mjs.map +0 -1
  448. package/dist/store/useDesktopSidebarStore.mjs +0 -39
  449. package/dist/store/useDesktopSidebarStore.mjs.map +0 -1
  450. package/dist/store/useMdSidebarStore.mjs +0 -28
  451. package/dist/store/useMdSidebarStore.mjs.map +0 -1
  452. package/dist/store/useMobileNavbarSheet.mjs +0 -14
  453. package/dist/store/useMobileNavbarSheet.mjs.map +0 -1
  454. package/dist/store/useModalManager.mjs +0 -75
  455. package/dist/store/useModalManager.mjs.map +0 -1
  456. package/dist/store/usePaidPlanRequiredModal.mjs +0 -14
  457. package/dist/store/usePaidPlanRequiredModal.mjs.map +0 -1
  458. package/dist/utils/browser/clipboard.mjs +0 -36
  459. package/dist/utils/browser/clipboard.mjs.map +0 -1
  460. package/dist/utils/constants/br-states.mjs +0 -33
  461. package/dist/utils/constants/br-states.mjs.map +0 -1
  462. package/dist/utils/countries.mjs +0 -219
  463. package/dist/utils/countries.mjs.map +0 -1
  464. package/dist/utils/file/index.mjs +0 -9
  465. package/dist/utils/file/index.mjs.map +0 -1
  466. package/dist/utils/format/masks.mjs +0 -67
  467. package/dist/utils/format/masks.mjs.map +0 -1
  468. package/dist/utils/intl/locales.mjs +0 -12
  469. package/dist/utils/intl/locales.mjs.map +0 -1
  470. package/dist/utils/safeServerAction.mjs +0 -16
  471. package/dist/utils/safeServerAction.mjs.map +0 -1
  472. package/dist/utils/validators/account.mjs +0 -27
  473. package/dist/utils/validators/account.mjs.map +0 -1
  474. package/dist/utils/validators/common.mjs +0 -47
  475. package/dist/utils/validators/common.mjs.map +0 -1
  476. package/dist/utils/withAction.mjs +0 -13
  477. package/dist/utils/withAction.mjs.map +0 -1
@@ -1,192 +0,0 @@
1
- "use client";
2
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
- import { IconChevronLeft, IconX, IconMessage } from "@tabler/icons-react";
4
- import { Button } from "../../ui/buttons/Button";
5
- import { Dialog, DialogContent, DialogHeader, DialogTitle } from "../../ui/overlay/Dialog";
6
- import { Separator } from "../../ui/data-display/Separator";
7
- import { InputOTP, InputOTPGroup, InputOTPSlot } from "../../ui/form/InputOtp";
8
- import PhoneInput from "../../ui/form/PhoneInput";
9
- import { formatTimer, formatPhone } from "../../../utils/format/masks";
10
- import { OTP_CODE_LENGTH } from "../../../utils/validators/account";
11
- import { useAuth } from "../../../providers/auth.provider";
12
- import { useInvalidateUser } from "../../../modules/auth/hooks/useUserQuery";
13
- import { confirmPhoneChangeAction } from "../../../modules/accounts/actions/account-management.action";
14
- import useChangePhoneForm from "../hooks/useChangePhoneForm";
15
- import useOtpVerification from "../hooks/useOtpVerification";
16
- function ChangePhoneModal({ open, onClose }) {
17
- const { user } = useAuth();
18
- const invalidateUser = useInvalidateUser();
19
- const hasExistingPhone = !!user?.phone;
20
- const currentPhoneDisplay = user?.phone ? formatPhone(
21
- user.ddi && user.phone.startsWith(user.ddi) ? user.phone.slice(user.ddi.length) : user.phone
22
- ) : "";
23
- const handleDirectUpdateSuccess = () => {
24
- invalidateUser();
25
- onClose();
26
- };
27
- const {
28
- showVerification,
29
- phoneValue,
30
- phoneError,
31
- isSubmitting,
32
- submittedPhone,
33
- handlePhoneChange,
34
- handleContinue,
35
- handleBack,
36
- resetForm
37
- } = useChangePhoneForm({
38
- hasExistingPhone,
39
- onDirectUpdateSuccess: handleDirectUpdateSuccess
40
- });
41
- const handleSuccess = () => {
42
- invalidateUser();
43
- resetForm();
44
- onClose();
45
- };
46
- const {
47
- code,
48
- isLoading,
49
- hasError,
50
- timer,
51
- canResend,
52
- isValidLength,
53
- handleCodeChange,
54
- handleValidate,
55
- handleResend,
56
- reset: resetOtp
57
- } = useOtpVerification({
58
- onSuccess: handleSuccess,
59
- successMessage: "Telefone alterado",
60
- validateFn: async (token) => {
61
- const result = await confirmPhoneChangeAction(token, submittedPhone.local, submittedPhone.ddi);
62
- return result.success;
63
- },
64
- resendFn: async () => {
65
- const { requestPhoneChangeAction } = await import("../../../modules/accounts/actions/account-management.action");
66
- const result = await requestPhoneChangeAction(submittedPhone.local, submittedPhone.ddi);
67
- if (!result.success) {
68
- throw new Error(result.error);
69
- }
70
- }
71
- });
72
- const handleClose = () => {
73
- resetForm();
74
- resetOtp();
75
- onClose();
76
- };
77
- const handleBackFromVerification = () => {
78
- resetOtp();
79
- handleBack();
80
- };
81
- return /* @__PURE__ */ jsx(Dialog, { open, onOpenChange: handleClose, children: /* @__PURE__ */ jsxs(
82
- DialogContent,
83
- {
84
- showCloseButton: false,
85
- overlayClassName: "z-[1002]",
86
- className: "flex flex-col p-0 gap-0 max-w-full sm:max-w-full border-0 rounded-t-2xl rounded-b-none h-dvh top-0 bottom-0 left-0 right-0 translate-x-0 translate-y-0 lg:max-w-125 lg:h-auto lg:rounded-lg lg:border lg:top-[50%] lg:left-[50%] lg:right-auto lg:bottom-auto lg:translate-x-[-50%] lg:translate-y-[-50%] z-[1003]",
87
- children: [
88
- showVerification ? /* @__PURE__ */ jsxs(DialogHeader, { className: "flex flex-row items-center justify-between px-4 py-3 border-b border-gray-200 lg:border-b-0", children: [
89
- /* @__PURE__ */ jsx(Button, { variant: "ghost", className: "size-8! p-0", onClick: handleBackFromVerification, children: /* @__PURE__ */ jsx(IconChevronLeft, { size: 20, className: "text-gray-950" }) }),
90
- /* @__PURE__ */ jsx(DialogTitle, { className: "paragraph-medium-semibold text-gray-950 text-center flex-1", children: "Alterar telefone" }),
91
- /* @__PURE__ */ jsx(Button, { variant: "ghost", className: "size-8! p-0", onClick: handleClose, children: /* @__PURE__ */ jsx(IconX, { size: 18, className: "text-gray-500" }) })
92
- ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
93
- /* @__PURE__ */ jsx(DialogHeader, { className: "sr-only", children: /* @__PURE__ */ jsx(DialogTitle, { children: hasExistingPhone ? "Alterar telefone" : "Adicionar telefone" }) }),
94
- /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-center px-4 py-3 relative border-b border-gray-200 lg:border-b-0", children: [
95
- /* @__PURE__ */ jsx("span", { className: "paragraph-medium-semibold text-gray-950 text-center", children: hasExistingPhone ? "Alterar telefone" : "Adicionar telefone" }),
96
- /* @__PURE__ */ jsx(
97
- Button,
98
- {
99
- variant: "ghost",
100
- className: "absolute right-2 size-8! p-0",
101
- onClick: handleClose,
102
- children: /* @__PURE__ */ jsx(IconX, { size: 18, className: "text-gray-500" })
103
- }
104
- )
105
- ] })
106
- ] }),
107
- /* @__PURE__ */ jsx("div", { className: `${showVerification || !hasExistingPhone ? "w-full" : "w-1/2"} h-0.75 bg-cyan-300` }),
108
- showVerification ? /* @__PURE__ */ jsxs(
109
- "form",
110
- {
111
- onSubmit: (e) => {
112
- e.preventDefault();
113
- handleValidate();
114
- },
115
- className: "flex flex-col flex-1 lg:flex-none",
116
- children: [
117
- /* @__PURE__ */ jsxs("div", { className: "px-4 lg:px-5 py-5 lg:py-6 flex flex-col gap-4 flex-1 lg:flex-none", children: [
118
- /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center size-12 bg-white rounded-lg shadow-xs border border-gray-200", children: /* @__PURE__ */ jsx(IconMessage, { size: 20, className: "text-gray-950" }) }),
119
- /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1", children: [
120
- /* @__PURE__ */ jsx("h3", { className: "paragraph-medium-semibold text-gray-950", children: "C\xF3digo de valida\xE7\xE3o" }),
121
- /* @__PURE__ */ jsxs("p", { className: "paragraph-small-regular text-gray-600", children: [
122
- "Enviamos um c\xF3digo de valida\xE7\xE3o para o n\xFAmero atual",
123
- " ",
124
- /* @__PURE__ */ jsxs("span", { className: "font-semibold text-gray-950", children: [
125
- currentPhoneDisplay,
126
- "."
127
- ] })
128
- ] })
129
- ] }),
130
- /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
131
- /* @__PURE__ */ jsx(InputOTP, { maxLength: OTP_CODE_LENGTH, value: code, onChange: handleCodeChange, children: /* @__PURE__ */ jsx(InputOTPGroup, { className: "flex flex-row gap-2", children: [...Array(OTP_CODE_LENGTH)].map((_, i) => /* @__PURE__ */ jsx(
132
- InputOTPSlot,
133
- {
134
- index: i,
135
- className: `uppercase text-2xl font-medium w-11 lg:w-12 h-13 lg:h-14 rounded-lg border bg-white shadow-none [&_div.animate-caret-blink]:bg-gray-950 ${hasError ? "border-red-500" : "border-gray-200"}`
136
- },
137
- i
138
- )) }) }),
139
- hasError && /* @__PURE__ */ jsx("p", { className: "paragraph-small-regular text-red-500", children: "C\xF3digo incorreto" })
140
- ] }),
141
- canResend ? /* @__PURE__ */ jsx(
142
- "button",
143
- {
144
- type: "button",
145
- onClick: handleResend,
146
- className: "paragraph-small-medium text-gray-950 underline cursor-pointer hover:text-gray-700 w-fit",
147
- children: "Reenviar c\xF3digo"
148
- }
149
- ) : /* @__PURE__ */ jsxs("p", { className: "paragraph-small-regular text-gray-500", children: [
150
- "Reenviar em",
151
- " ",
152
- /* @__PURE__ */ jsx("span", { className: "paragraph-small-semibold text-gray-950", children: formatTimer(timer) })
153
- ] })
154
- ] }),
155
- /* @__PURE__ */ jsx(Separator, {}),
156
- /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between px-4 lg:px-5 py-4 lg:py-5 mt-auto lg:mt-0", children: [
157
- /* @__PURE__ */ jsx(Button, { variant: "secondary", className: "h-10!", type: "button", onClick: handleClose, children: "Cancelar" }),
158
- /* @__PURE__ */ jsx(Button, { className: "h-10!", type: "submit", disabled: !isValidLength || isLoading, children: isLoading ? "Validando..." : "Alterar telefone" })
159
- ] })
160
- ]
161
- }
162
- ) : /* @__PURE__ */ jsxs("form", { onSubmit: handleContinue, className: "flex flex-col flex-1 lg:flex-none", children: [
163
- /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-5 lg:gap-6 px-4 lg:px-5 py-5 lg:py-6 flex-1 lg:flex-none", children: [
164
- /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1", children: [
165
- /* @__PURE__ */ jsx("span", { className: "paragraph-medium-semibold text-gray-950", children: hasExistingPhone ? "Atualizar telefone de contato" : "Adicionar telefone de contato" }),
166
- /* @__PURE__ */ jsx("span", { className: "paragraph-small-regular text-gray-600", children: hasExistingPhone ? "Informe o novo n\xFAmero para manter seu contato atualizado." : "Informe seu n\xFAmero de telefone para contato." })
167
- ] }),
168
- /* @__PURE__ */ jsx(
169
- PhoneInput,
170
- {
171
- label: hasExistingPhone ? "Novo n\xFAmero" : "N\xFAmero de telefone",
172
- placeholder: "(00) 0 0000-0000",
173
- value: phoneValue,
174
- onChange: handlePhoneChange,
175
- error: !!phoneError,
176
- errorMessage: phoneError
177
- }
178
- )
179
- ] }),
180
- /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between p-4 lg:p-5 border-t border-gray-200 mt-auto lg:mt-0", children: [
181
- /* @__PURE__ */ jsx(Button, { variant: "secondary", className: "h-10!", type: "button", onClick: handleClose, children: "Cancelar" }),
182
- /* @__PURE__ */ jsx(Button, { className: "h-10!", type: "submit", disabled: isSubmitting, children: isSubmitting ? hasExistingPhone ? "Enviando..." : "Salvando..." : hasExistingPhone ? "Continuar" : "Salvar" })
183
- ] })
184
- ] })
185
- ]
186
- }
187
- ) });
188
- }
189
- export {
190
- ChangePhoneModal
191
- };
192
- //# sourceMappingURL=ChangePhoneModal.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/components/account/sections/ChangePhoneModal.tsx"],"sourcesContent":["'use client';\n\nimport { IconChevronLeft, IconX, IconMessage } from '@tabler/icons-react';\nimport { Button } from '../../ui/buttons/Button';\nimport { Dialog, DialogContent, DialogHeader, DialogTitle } from '../../ui/overlay/Dialog';\nimport { Separator } from '../../ui/data-display/Separator';\nimport { InputOTP, InputOTPGroup, InputOTPSlot } from '../../ui/form/InputOtp';\nimport PhoneInput from '../../ui/form/PhoneInput';\nimport { formatTimer, formatPhone } from '../../../utils/format/masks';\nimport { OTP_CODE_LENGTH } from '../../../utils/validators/account';\nimport { useAuth } from '../../../providers/auth.provider';\nimport { useInvalidateUser } from '../../../modules/auth/hooks/useUserQuery';\nimport { confirmPhoneChangeAction } from '../../../modules/accounts/actions/account-management.action';\nimport useChangePhoneForm from '../hooks/useChangePhoneForm';\nimport useOtpVerification from '../hooks/useOtpVerification';\n\ninterface ChangePhoneModalProps {\n open: boolean;\n onClose: () => void;\n}\n\nexport function ChangePhoneModal({ open, onClose }: ChangePhoneModalProps) {\n const { user } = useAuth();\n const invalidateUser = useInvalidateUser();\n\n const hasExistingPhone = !!user?.phone;\n\n const currentPhoneDisplay = user?.phone\n ? formatPhone(\n user.ddi && user.phone.startsWith(user.ddi) ? user.phone.slice(user.ddi.length) : user.phone\n )\n : '';\n\n const handleDirectUpdateSuccess = () => {\n invalidateUser();\n onClose();\n };\n\n const {\n showVerification,\n phoneValue,\n phoneError,\n isSubmitting,\n submittedPhone,\n handlePhoneChange,\n handleContinue,\n handleBack,\n resetForm,\n } = useChangePhoneForm({\n hasExistingPhone,\n onDirectUpdateSuccess: handleDirectUpdateSuccess,\n });\n\n const handleSuccess = () => {\n invalidateUser();\n resetForm();\n onClose();\n };\n\n const {\n code,\n isLoading,\n hasError,\n timer,\n canResend,\n isValidLength,\n handleCodeChange,\n handleValidate,\n handleResend,\n reset: resetOtp,\n } = useOtpVerification({\n onSuccess: handleSuccess,\n successMessage: 'Telefone alterado',\n validateFn: async (token) => {\n const result = await confirmPhoneChangeAction(token, submittedPhone.local, submittedPhone.ddi);\n return result.success;\n },\n resendFn: async () => {\n const { requestPhoneChangeAction } = await import('../../../modules/accounts/actions/account-management.action');\n const result = await requestPhoneChangeAction(submittedPhone.local, submittedPhone.ddi);\n if (!result.success) {\n throw new Error(result.error);\n }\n },\n });\n\n const handleClose = () => {\n resetForm();\n resetOtp();\n onClose();\n };\n\n const handleBackFromVerification = () => {\n resetOtp();\n handleBack();\n };\n\n return (\n <Dialog open={open} onOpenChange={handleClose}>\n <DialogContent\n showCloseButton={false}\n overlayClassName=\"z-[1002]\"\n className=\"flex flex-col p-0 gap-0 max-w-full sm:max-w-full border-0 rounded-t-2xl rounded-b-none h-dvh top-0 bottom-0 left-0 right-0 translate-x-0 translate-y-0 lg:max-w-125 lg:h-auto lg:rounded-lg lg:border lg:top-[50%] lg:left-[50%] lg:right-auto lg:bottom-auto lg:translate-x-[-50%] lg:translate-y-[-50%] z-[1003]\"\n >\n {showVerification ? (\n <DialogHeader className=\"flex flex-row items-center justify-between px-4 py-3 border-b border-gray-200 lg:border-b-0\">\n <Button variant=\"ghost\" className=\"size-8! p-0\" onClick={handleBackFromVerification}>\n <IconChevronLeft size={20} className=\"text-gray-950\" />\n </Button>\n <DialogTitle className=\"paragraph-medium-semibold text-gray-950 text-center flex-1\">\n Alterar telefone\n </DialogTitle>\n <Button variant=\"ghost\" className=\"size-8! p-0\" onClick={handleClose}>\n <IconX size={18} className=\"text-gray-500\" />\n </Button>\n </DialogHeader>\n ) : (\n <>\n <DialogHeader className=\"sr-only\">\n <DialogTitle>{hasExistingPhone ? 'Alterar telefone' : 'Adicionar telefone'}</DialogTitle>\n </DialogHeader>\n <div className=\"flex items-center justify-center px-4 py-3 relative border-b border-gray-200 lg:border-b-0\">\n <span className=\"paragraph-medium-semibold text-gray-950 text-center\">\n {hasExistingPhone ? 'Alterar telefone' : 'Adicionar telefone'}\n </span>\n <Button\n variant=\"ghost\"\n className=\"absolute right-2 size-8! p-0\"\n onClick={handleClose}\n >\n <IconX size={18} className=\"text-gray-500\" />\n </Button>\n </div>\n </>\n )}\n\n <div className={`${showVerification || !hasExistingPhone ? 'w-full' : 'w-1/2'} h-0.75 bg-cyan-300`} />\n\n {showVerification ? (\n <form\n onSubmit={(e) => {\n e.preventDefault();\n handleValidate();\n }}\n className=\"flex flex-col flex-1 lg:flex-none\"\n >\n <div className=\"px-4 lg:px-5 py-5 lg:py-6 flex flex-col gap-4 flex-1 lg:flex-none\">\n <div className=\"flex items-center justify-center size-12 bg-white rounded-lg shadow-xs border border-gray-200\">\n <IconMessage size={20} className=\"text-gray-950\" />\n </div>\n\n <div className=\"flex flex-col gap-1\">\n <h3 className=\"paragraph-medium-semibold text-gray-950\">Código de validação</h3>\n <p className=\"paragraph-small-regular text-gray-600\">\n Enviamos um código de validação para o número atual{' '}\n <span className=\"font-semibold text-gray-950\">{currentPhoneDisplay}.</span>\n </p>\n </div>\n\n <div className=\"flex flex-col gap-2\">\n <InputOTP maxLength={OTP_CODE_LENGTH} value={code} onChange={handleCodeChange}>\n <InputOTPGroup className=\"flex flex-row gap-2\">\n {[...Array(OTP_CODE_LENGTH)].map((_, i) => (\n <InputOTPSlot\n key={i}\n index={i}\n className={`uppercase text-2xl font-medium w-11 lg:w-12 h-13 lg:h-14 rounded-lg border bg-white shadow-none [&_div.animate-caret-blink]:bg-gray-950 ${hasError ? 'border-red-500' : 'border-gray-200'}`}\n />\n ))}\n </InputOTPGroup>\n </InputOTP>\n {hasError && (\n <p className=\"paragraph-small-regular text-red-500\">Código incorreto</p>\n )}\n </div>\n\n {canResend ? (\n <button\n type=\"button\"\n onClick={handleResend}\n className=\"paragraph-small-medium text-gray-950 underline cursor-pointer hover:text-gray-700 w-fit\"\n >\n Reenviar código\n </button>\n ) : (\n <p className=\"paragraph-small-regular text-gray-500\">\n Reenviar em{' '}\n <span className=\"paragraph-small-semibold text-gray-950\">\n {formatTimer(timer)}\n </span>\n </p>\n )}\n </div>\n\n <Separator />\n\n <div className=\"flex items-center justify-between px-4 lg:px-5 py-4 lg:py-5 mt-auto lg:mt-0\">\n <Button variant=\"secondary\" className=\"h-10!\" type=\"button\" onClick={handleClose}>\n Cancelar\n </Button>\n <Button className=\"h-10!\" type=\"submit\" disabled={!isValidLength || isLoading}>\n {isLoading ? 'Validando...' : 'Alterar telefone'}\n </Button>\n </div>\n </form>\n ) : (\n <form onSubmit={handleContinue} className=\"flex flex-col flex-1 lg:flex-none\">\n <div className=\"flex flex-col gap-5 lg:gap-6 px-4 lg:px-5 py-5 lg:py-6 flex-1 lg:flex-none\">\n <div className=\"flex flex-col gap-1\">\n <span className=\"paragraph-medium-semibold text-gray-950\">\n {hasExistingPhone ? 'Atualizar telefone de contato' : 'Adicionar telefone de contato'}\n </span>\n <span className=\"paragraph-small-regular text-gray-600\">\n {hasExistingPhone\n ? 'Informe o novo número para manter seu contato atualizado.'\n : 'Informe seu número de telefone para contato.'}\n </span>\n </div>\n\n <PhoneInput\n label={hasExistingPhone ? 'Novo número' : 'Número de telefone'}\n placeholder=\"(00) 0 0000-0000\"\n value={phoneValue}\n onChange={handlePhoneChange}\n error={!!phoneError}\n errorMessage={phoneError}\n />\n </div>\n\n <div className=\"flex items-center justify-between p-4 lg:p-5 border-t border-gray-200 mt-auto lg:mt-0\">\n <Button variant=\"secondary\" className=\"h-10!\" type=\"button\" onClick={handleClose}>\n Cancelar\n </Button>\n <Button className=\"h-10!\" type=\"submit\" disabled={isSubmitting}>\n {isSubmitting\n ? (hasExistingPhone ? 'Enviando...' : 'Salvando...')\n : (hasExistingPhone ? 'Continuar' : 'Salvar')}\n </Button>\n </div>\n </form>\n )}\n </DialogContent>\n </Dialog>\n );\n}\n"],"mappings":"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","names":[]}
@@ -1,317 +0,0 @@
1
- "use client";
2
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
- import { useState, useRef } from "react";
4
- import Image from "next/image";
5
- import { useForm } from "react-hook-form";
6
- import { zodResolver } from "@hookform/resolvers/zod";
7
- import { toast } from "sonner";
8
- import { IconUpload, IconTrash } from "@tabler/icons-react";
9
- import { Button } from "../../ui/buttons/Button";
10
- import { Separator } from "../../ui/data-display/Separator";
11
- import { Toast } from "../../ui/feedback/Toast";
12
- import { Dialog, DialogContent, DialogHeader, DialogTitle } from "../../ui/overlay/Dialog";
13
- import { FormField } from "../../ui/form/FormField";
14
- import { SelectField } from "../../ui/form/SelectField";
15
- import PhoneInput from "../../ui/form/PhoneInput";
16
- import { useAuth } from "../../../providers/auth.provider";
17
- import { UserProfile } from "../../../modules/users/schema";
18
- import { myProfileSchema } from "../../../utils/validators/account";
19
- import {
20
- useUpdateAccountUser,
21
- useDeleteAccount,
22
- useDeleteAccountUser
23
- } from "../../../modules/accounts/hooks/useAccountManagement";
24
- import { GENDER_OPTIONS } from "../constants";
25
- import { ChangePhoneModal } from "./ChangePhoneModal";
26
- import { ChangeEmailModal } from "./ChangeEmailModal";
27
- function MyProfileSection({ onClose, storageUrl }) {
28
- const { user, logout } = useAuth();
29
- const updateAccountUser = useUpdateAccountUser();
30
- const deleteAccount = useDeleteAccount();
31
- const deleteAccountUser = useDeleteAccountUser();
32
- const fileInputRef = useRef(null);
33
- const [selectedPhoto, setSelectedPhoto] = useState(null);
34
- const [photoRemoved, setPhotoRemoved] = useState(false);
35
- const [changePhoneOpen, setChangePhoneOpen] = useState(false);
36
- const [changeEmailOpen, setChangeEmailOpen] = useState(false);
37
- const [deleteConfirmOpen, setDeleteConfirmOpen] = useState(false);
38
- const isOwner = user?.profile === UserProfile.owner;
39
- const isDeleting = deleteAccount.isPending || deleteAccountUser.isPending;
40
- const form = useForm({
41
- resolver: zodResolver(myProfileSchema),
42
- mode: "onChange",
43
- defaultValues: {
44
- name: user?.name ?? "",
45
- last_name: user?.last_name ?? "",
46
- gender: GENDER_OPTIONS.find((g) => g.apiValue === user?.gender)?.value ?? ""
47
- }
48
- });
49
- const {
50
- register,
51
- handleSubmit,
52
- watch,
53
- setValue,
54
- formState: { errors, isSubmitting }
55
- } = form;
56
- const baseStorageUrl = storageUrl ?? process.env.NEXT_PUBLIC_STORAGE_URL ?? "";
57
- const avatarPreview = selectedPhoto ? URL.createObjectURL(selectedPhoto) : !photoRemoved && user?.photo ? `${baseStorageUrl}/${user.photo}` : null;
58
- const handlePhotoChange = (e) => {
59
- const file = e.target.files?.[0] ?? null;
60
- if (file) {
61
- setSelectedPhoto(file);
62
- setPhotoRemoved(false);
63
- }
64
- };
65
- const handleRemovePhoto = () => {
66
- setSelectedPhoto(null);
67
- setPhotoRemoved(true);
68
- };
69
- const handleDelete = async () => {
70
- try {
71
- if (isOwner) {
72
- await deleteAccount.mutateAsync();
73
- } else {
74
- await deleteAccountUser.mutateAsync(user.id);
75
- }
76
- await logout();
77
- } catch (error) {
78
- toast.custom((t) => /* @__PURE__ */ jsx(
79
- Toast,
80
- {
81
- variant: "error",
82
- message: error instanceof Error ? error.message : "Erro ao excluir. Tente novamente.",
83
- toastId: t
84
- }
85
- ));
86
- setDeleteConfirmOpen(false);
87
- }
88
- };
89
- const onSubmit = async (data) => {
90
- try {
91
- await updateAccountUser.mutateAsync({
92
- name: data.name,
93
- last_name: data.last_name,
94
- gender: GENDER_OPTIONS.find((g) => g.value === data.gender)?.apiValue,
95
- ...selectedPhoto ? { photo: selectedPhoto } : {},
96
- ...photoRemoved ? { photo: "" } : {}
97
- });
98
- form.reset(data);
99
- setSelectedPhoto(null);
100
- setPhotoRemoved(false);
101
- toast.custom((t) => /* @__PURE__ */ jsx(Toast, { variant: "success", message: "Perfil atualizado com sucesso", toastId: t }));
102
- onClose();
103
- } catch (error) {
104
- toast.custom((t) => /* @__PURE__ */ jsx(
105
- Toast,
106
- {
107
- variant: "error",
108
- message: error instanceof Error ? error.message : "Erro ao atualizar perfil",
109
- toastId: t
110
- }
111
- ));
112
- }
113
- };
114
- return /* @__PURE__ */ jsxs(Fragment, { children: [
115
- /* @__PURE__ */ jsxs("form", { onSubmit: handleSubmit(onSubmit), className: "lg:h-full lg:flex lg:flex-col", children: [
116
- /* @__PURE__ */ jsx(
117
- "input",
118
- {
119
- ref: fileInputRef,
120
- type: "file",
121
- accept: "image/*",
122
- className: "hidden",
123
- onChange: handlePhotoChange
124
- }
125
- ),
126
- /* @__PURE__ */ jsxs("div", { className: "absolute inset-0 overflow-y-auto overscroll-contain px-4 pb-20 lg:p-5 lg:static lg:flex-1 lg:min-h-0 lg:overscroll-auto flex flex-col gap-5 lg:gap-6", children: [
127
- /* @__PURE__ */ jsx("span", { className: "paragraph-medium-semibold text-gray-950 hidden lg:block", children: "Meu perfil" }),
128
- /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-5", children: [
129
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4", children: [
130
- avatarPreview ? /* @__PURE__ */ jsx(
131
- Image,
132
- {
133
- src: avatarPreview,
134
- alt: "Foto do usu\xE1rio",
135
- width: 48,
136
- height: 48,
137
- className: "size-12 rounded-full object-cover cursor-pointer",
138
- onClick: () => fileInputRef.current?.click()
139
- }
140
- ) : /* @__PURE__ */ jsx(
141
- "div",
142
- {
143
- className: "size-12 rounded-full bg-gray-50 border border-dashed border-gray-200 flex items-center justify-center cursor-pointer",
144
- onClick: () => fileInputRef.current?.click(),
145
- children: /* @__PURE__ */ jsx(IconUpload, { size: 20, className: "text-gray-400" })
146
- }
147
- ),
148
- avatarPreview ? /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
149
- /* @__PURE__ */ jsx(
150
- Button,
151
- {
152
- variant: "secondary",
153
- className: "w-fit h-8!",
154
- type: "button",
155
- onClick: () => fileInputRef.current?.click(),
156
- children: "Alterar foto"
157
- }
158
- ),
159
- /* @__PURE__ */ jsx(
160
- Button,
161
- {
162
- type: "button",
163
- variant: "ghost",
164
- className: "h-8!",
165
- onClick: handleRemovePhoto,
166
- children: /* @__PURE__ */ jsx(IconTrash, { size: 16, className: "text-gray-500" })
167
- }
168
- )
169
- ] }) : /* @__PURE__ */ jsx(
170
- Button,
171
- {
172
- variant: "secondary",
173
- className: "w-fit h-8!",
174
- type: "button",
175
- onClick: () => fileInputRef.current?.click(),
176
- children: "Alterar foto"
177
- }
178
- )
179
- ] }),
180
- /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-8", children: [
181
- /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4", children: [
182
- /* @__PURE__ */ jsxs("div", { className: "flex gap-4", children: [
183
- /* @__PURE__ */ jsx(
184
- FormField,
185
- {
186
- label: "Nome",
187
- placeholder: "Digite seu nome",
188
- error: !!errors.name,
189
- errorMessage: errors.name?.message,
190
- ...register("name")
191
- }
192
- ),
193
- /* @__PURE__ */ jsx(
194
- FormField,
195
- {
196
- label: "Sobrenome",
197
- placeholder: "Digite seu sobrenome",
198
- error: !!errors.last_name,
199
- errorMessage: errors.last_name?.message,
200
- ...register("last_name")
201
- }
202
- )
203
- ] }),
204
- /* @__PURE__ */ jsx(
205
- SelectField,
206
- {
207
- label: "G\xEAnero",
208
- placeholder: "Selecione seu g\xEAnero",
209
- options: GENDER_OPTIONS,
210
- value: watch("gender"),
211
- className: "h-10!",
212
- onChange: (value) => setValue("gender", value)
213
- }
214
- ),
215
- /* @__PURE__ */ jsxs("div", { className: "relative", children: [
216
- /* @__PURE__ */ jsx(
217
- PhoneInput,
218
- {
219
- label: "Telefone",
220
- value: user?.phone ?? "",
221
- disabled: true,
222
- classnameContainer: "bg-gray-50 border-0!"
223
- }
224
- ),
225
- /* @__PURE__ */ jsx(
226
- "button",
227
- {
228
- type: "button",
229
- className: "absolute right-3 top-5.5 h-10 flex items-center paragraph-xsmall-semibold text-gray-950 underline cursor-pointer",
230
- onClick: () => setChangePhoneOpen(true),
231
- children: "Alterar"
232
- }
233
- )
234
- ] })
235
- ] }),
236
- /* @__PURE__ */ jsx(Separator, {}),
237
- /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4", children: [
238
- /* @__PURE__ */ jsx("span", { className: "paragraph-medium-semibold text-gray-600", children: "Dados de acesso" }),
239
- /* @__PURE__ */ jsxs("div", { className: "relative", children: [
240
- /* @__PURE__ */ jsx("div", { className: "cursor-not-allowed", children: /* @__PURE__ */ jsx(
241
- FormField,
242
- {
243
- label: "E-mail",
244
- value: user?.email ?? "",
245
- disabled: true,
246
- classnameContainer: "bg-gray-50 border-0!"
247
- }
248
- ) }),
249
- /* @__PURE__ */ jsx(
250
- "button",
251
- {
252
- type: "button",
253
- className: "absolute right-3 top-5.5 h-10 flex items-center paragraph-xsmall-semibold text-gray-950 underline cursor-pointer",
254
- onClick: () => setChangeEmailOpen(true),
255
- children: "Alterar"
256
- }
257
- )
258
- ] })
259
- ] })
260
- ] })
261
- ] })
262
- ] }),
263
- /* @__PURE__ */ jsxs("div", { className: "fixed bottom-0 left-0 right-0 lg:static flex items-center h-20 px-4 lg:px-5 border-t border-gray-200 justify-between bg-white z-10", children: [
264
- /* @__PURE__ */ jsx(
265
- Button,
266
- {
267
- variant: "secondary",
268
- className: "h-10!",
269
- type: "button",
270
- disabled: isSubmitting,
271
- onClick: () => {
272
- form.reset();
273
- setSelectedPhoto(null);
274
- setPhotoRemoved(false);
275
- onClose();
276
- },
277
- children: "Cancelar"
278
- }
279
- ),
280
- /* @__PURE__ */ jsx(Button, { className: "h-10! cursor-pointer", type: "submit", disabled: isSubmitting, children: isSubmitting ? "Salvando..." : "Salvar altera\xE7\xF5es" })
281
- ] })
282
- ] }),
283
- /* @__PURE__ */ jsx(ChangePhoneModal, { open: changePhoneOpen, onClose: () => setChangePhoneOpen(false) }),
284
- /* @__PURE__ */ jsx(ChangeEmailModal, { open: changeEmailOpen, onClose: () => setChangeEmailOpen(false) }),
285
- /* @__PURE__ */ jsx(Dialog, { open: deleteConfirmOpen, onOpenChange: setDeleteConfirmOpen, children: /* @__PURE__ */ jsxs(DialogContent, { className: "max-w-sm! gap-5", children: [
286
- /* @__PURE__ */ jsx(DialogHeader, { children: /* @__PURE__ */ jsx(DialogTitle, { className: "paragraph-large-semibold text-gray-950", children: isOwner ? "Excluir conta" : "Excluir usu\xE1rio" }) }),
287
- /* @__PURE__ */ jsx("p", { className: "paragraph-small-regular text-gray-600", children: isOwner ? "Tem certeza que deseja excluir sua conta? Todos os dados ser\xE3o apagados permanentemente e essa a\xE7\xE3o n\xE3o pode ser desfeita." : "Tem certeza que deseja excluir seu usu\xE1rio? Voc\xEA perder\xE1 acesso a esta conta permanentemente." }),
288
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 justify-end", children: [
289
- /* @__PURE__ */ jsx(
290
- Button,
291
- {
292
- type: "button",
293
- variant: "secondary",
294
- className: "h-10!",
295
- disabled: isDeleting,
296
- onClick: () => setDeleteConfirmOpen(false),
297
- children: "Cancelar"
298
- }
299
- ),
300
- /* @__PURE__ */ jsx(
301
- Button,
302
- {
303
- type: "button",
304
- className: "h-10! bg-red-600 hover:bg-red-700 text-white border-0!",
305
- disabled: isDeleting,
306
- onClick: handleDelete,
307
- children: isDeleting ? "Excluindo..." : "Confirmar exclus\xE3o"
308
- }
309
- )
310
- ] })
311
- ] }) })
312
- ] });
313
- }
314
- export {
315
- MyProfileSection
316
- };
317
- //# sourceMappingURL=MyProfileSection.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/components/account/sections/MyProfileSection.tsx"],"sourcesContent":["'use client';\n\nimport { useState, useRef } from 'react';\nimport Image from 'next/image';\nimport { useForm } from 'react-hook-form';\nimport { zodResolver } from '@hookform/resolvers/zod';\nimport { toast } from 'sonner';\nimport { IconUpload, IconTrash } from '@tabler/icons-react';\nimport { Button } from '../../ui/buttons/Button';\nimport { Separator } from '../../ui/data-display/Separator';\nimport { Toast } from '../../ui/feedback/Toast';\nimport { Dialog, DialogContent, DialogHeader, DialogTitle } from '../../ui/overlay/Dialog';\nimport { FormField } from '../../ui/form/FormField';\nimport { SelectField } from '../../ui/form/SelectField';\nimport PhoneInput from '../../ui/form/PhoneInput';\nimport { useAuth } from '../../../providers/auth.provider';\nimport { UserProfile } from '../../../modules/users/schema';\nimport { myProfileSchema, type MyProfileFormData } from '../../../utils/validators/account';\nimport {\n useUpdateAccountUser,\n useDeleteAccount,\n useDeleteAccountUser,\n} from '../../../modules/accounts/hooks/useAccountManagement';\nimport { GENDER_OPTIONS } from '../constants';\nimport { ChangePhoneModal } from './ChangePhoneModal';\nimport { ChangeEmailModal } from './ChangeEmailModal';\n\ninterface MyProfileSectionProps {\n onClose: () => void;\n storageUrl?: string;\n}\n\nexport function MyProfileSection({ onClose, storageUrl }: MyProfileSectionProps) {\n const { user, logout } = useAuth();\n const updateAccountUser = useUpdateAccountUser();\n const deleteAccount = useDeleteAccount();\n const deleteAccountUser = useDeleteAccountUser();\n const fileInputRef = useRef<HTMLInputElement>(null);\n const [selectedPhoto, setSelectedPhoto] = useState<File | null>(null);\n const [photoRemoved, setPhotoRemoved] = useState(false);\n const [changePhoneOpen, setChangePhoneOpen] = useState(false);\n const [changeEmailOpen, setChangeEmailOpen] = useState(false);\n const [deleteConfirmOpen, setDeleteConfirmOpen] = useState(false);\n\n const isOwner = user?.profile === UserProfile.owner;\n const isDeleting = deleteAccount.isPending || deleteAccountUser.isPending;\n\n const form = useForm<MyProfileFormData>({\n resolver: zodResolver(myProfileSchema),\n mode: 'onChange',\n defaultValues: {\n name: user?.name ?? '',\n last_name: user?.last_name ?? '',\n gender: GENDER_OPTIONS.find((g) => g.apiValue === user?.gender)?.value ?? '',\n },\n });\n\n const {\n register,\n handleSubmit,\n watch,\n setValue,\n formState: { errors, isSubmitting },\n } = form;\n\n const baseStorageUrl = storageUrl ?? process.env.NEXT_PUBLIC_STORAGE_URL ?? '';\n\n const avatarPreview = selectedPhoto\n ? URL.createObjectURL(selectedPhoto)\n : !photoRemoved && user?.photo\n ? `${baseStorageUrl}/${user.photo}`\n : null;\n\n const handlePhotoChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const file = e.target.files?.[0] ?? null;\n if (file) {\n setSelectedPhoto(file);\n setPhotoRemoved(false);\n }\n };\n\n const handleRemovePhoto = () => {\n setSelectedPhoto(null);\n setPhotoRemoved(true);\n };\n\n const handleDelete = async () => {\n try {\n if (isOwner) {\n await deleteAccount.mutateAsync();\n } else {\n await deleteAccountUser.mutateAsync(user!.id);\n }\n await logout();\n } catch (error) {\n toast.custom((t) => (\n <Toast\n variant=\"error\"\n message={error instanceof Error ? error.message : 'Erro ao excluir. Tente novamente.'}\n toastId={t}\n />\n ));\n setDeleteConfirmOpen(false);\n }\n };\n\n const onSubmit = async (data: MyProfileFormData) => {\n try {\n await updateAccountUser.mutateAsync({\n name: data.name,\n last_name: data.last_name,\n gender: GENDER_OPTIONS.find((g) => g.value === data.gender)?.apiValue,\n ...(selectedPhoto ? { photo: selectedPhoto } : {}),\n ...(photoRemoved ? { photo: '' } : {}),\n });\n\n form.reset(data);\n setSelectedPhoto(null);\n setPhotoRemoved(false);\n toast.custom((t) => (\n <Toast variant=\"success\" message=\"Perfil atualizado com sucesso\" toastId={t} />\n ));\n onClose();\n } catch (error) {\n toast.custom((t) => (\n <Toast\n variant=\"error\"\n message={error instanceof Error ? error.message : 'Erro ao atualizar perfil'}\n toastId={t}\n />\n ));\n }\n };\n\n return (\n <>\n <form onSubmit={handleSubmit(onSubmit)} className=\"lg:h-full lg:flex lg:flex-col\">\n <input\n ref={fileInputRef}\n type=\"file\"\n accept=\"image/*\"\n className=\"hidden\"\n onChange={handlePhotoChange}\n />\n <div className=\"absolute inset-0 overflow-y-auto overscroll-contain px-4 pb-20 lg:p-5 lg:static lg:flex-1 lg:min-h-0 lg:overscroll-auto flex flex-col gap-5 lg:gap-6\">\n <span className=\"paragraph-medium-semibold text-gray-950 hidden lg:block\">\n Meu perfil\n </span>\n <div className=\"flex flex-col gap-5\">\n <div className=\"flex items-center gap-4\">\n {avatarPreview ? (\n <Image\n src={avatarPreview}\n alt=\"Foto do usuário\"\n width={48}\n height={48}\n className=\"size-12 rounded-full object-cover cursor-pointer\"\n onClick={() => fileInputRef.current?.click()}\n />\n ) : (\n <div\n className=\"size-12 rounded-full bg-gray-50 border border-dashed border-gray-200 flex items-center justify-center cursor-pointer\"\n onClick={() => fileInputRef.current?.click()}\n >\n <IconUpload size={20} className=\"text-gray-400\" />\n </div>\n )}\n {avatarPreview ? (\n <div className=\"flex items-center gap-2\">\n <Button\n variant=\"secondary\"\n className=\"w-fit h-8!\"\n type=\"button\"\n onClick={() => fileInputRef.current?.click()}\n >\n Alterar foto\n </Button>\n <Button\n type=\"button\"\n variant=\"ghost\"\n className=\"h-8!\"\n onClick={handleRemovePhoto}\n >\n <IconTrash size={16} className=\"text-gray-500\" />\n </Button>\n </div>\n ) : (\n <Button\n variant=\"secondary\"\n className=\"w-fit h-8!\"\n type=\"button\"\n onClick={() => fileInputRef.current?.click()}\n >\n Alterar foto\n </Button>\n )}\n </div>\n\n <div className=\"flex flex-col gap-8\">\n <div className=\"flex flex-col gap-4\">\n <div className=\"flex gap-4\">\n <FormField\n label=\"Nome\"\n placeholder=\"Digite seu nome\"\n error={!!errors.name}\n errorMessage={errors.name?.message}\n {...register('name')}\n />\n <FormField\n label=\"Sobrenome\"\n placeholder=\"Digite seu sobrenome\"\n error={!!errors.last_name}\n errorMessage={errors.last_name?.message}\n {...register('last_name')}\n />\n </div>\n <SelectField\n label=\"Gênero\"\n placeholder=\"Selecione seu gênero\"\n options={GENDER_OPTIONS}\n value={watch('gender')}\n className=\"h-10!\"\n onChange={(value) => setValue('gender', value as string)}\n />\n <div className=\"relative\">\n <PhoneInput\n label=\"Telefone\"\n value={user?.phone ?? ''}\n disabled\n classnameContainer=\"bg-gray-50 border-0!\"\n />\n <button\n type=\"button\"\n className=\"absolute right-3 top-5.5 h-10 flex items-center paragraph-xsmall-semibold text-gray-950 underline cursor-pointer\"\n onClick={() => setChangePhoneOpen(true)}\n >\n Alterar\n </button>\n </div>\n </div>\n\n <Separator />\n\n <div className=\"flex flex-col gap-4\">\n <span className=\"paragraph-medium-semibold text-gray-600\">Dados de acesso</span>\n <div className=\"relative\">\n <div className='cursor-not-allowed'>\n <FormField\n label=\"E-mail\"\n value={user?.email ?? ''}\n disabled\n classnameContainer=\"bg-gray-50 border-0!\"\n />\n </div>\n <button\n type=\"button\"\n className=\"absolute right-3 top-5.5 h-10 flex items-center paragraph-xsmall-semibold text-gray-950 underline cursor-pointer\"\n onClick={() => setChangeEmailOpen(true)}\n >\n Alterar\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <div className=\"fixed bottom-0 left-0 right-0 lg:static flex items-center h-20 px-4 lg:px-5 border-t border-gray-200 justify-between bg-white z-10\">\n <Button\n variant=\"secondary\"\n className=\"h-10!\"\n type=\"button\"\n disabled={isSubmitting}\n onClick={() => {\n form.reset();\n setSelectedPhoto(null);\n setPhotoRemoved(false);\n onClose();\n }}\n >\n Cancelar\n </Button>\n <Button className=\"h-10! cursor-pointer\" type=\"submit\" disabled={isSubmitting}>\n {isSubmitting ? 'Salvando...' : 'Salvar alterações'}\n </Button>\n </div>\n </form>\n\n <ChangePhoneModal open={changePhoneOpen} onClose={() => setChangePhoneOpen(false)} />\n <ChangeEmailModal open={changeEmailOpen} onClose={() => setChangeEmailOpen(false)} />\n\n <Dialog open={deleteConfirmOpen} onOpenChange={setDeleteConfirmOpen}>\n <DialogContent className=\"max-w-sm! gap-5\">\n <DialogHeader>\n <DialogTitle className=\"paragraph-large-semibold text-gray-950\">\n {isOwner ? 'Excluir conta' : 'Excluir usuário'}\n </DialogTitle>\n </DialogHeader>\n <p className=\"paragraph-small-regular text-gray-600\">\n {isOwner\n ? 'Tem certeza que deseja excluir sua conta? Todos os dados serão apagados permanentemente e essa ação não pode ser desfeita.'\n : 'Tem certeza que deseja excluir seu usuário? Você perderá acesso a esta conta permanentemente.'}\n </p>\n <div className=\"flex items-center gap-3 justify-end\">\n <Button\n type=\"button\"\n variant=\"secondary\"\n className=\"h-10!\"\n disabled={isDeleting}\n onClick={() => setDeleteConfirmOpen(false)}\n >\n Cancelar\n </Button>\n <Button\n type=\"button\"\n className=\"h-10! bg-red-600 hover:bg-red-700 text-white border-0!\"\n disabled={isDeleting}\n onClick={handleDelete}\n >\n {isDeleting ? 'Excluindo...' : 'Confirmar exclusão'}\n </Button>\n </div>\n </DialogContent>\n </Dialog>\n </>\n );\n}\n"],"mappings":"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","names":[]}