@greatapps/common 1.1.255 → 1.1.257

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 (303) hide show
  1. package/dist/components/account/AccountModals.mjs.map +1 -1
  2. package/dist/components/account/ConfigurationsMyAccountModal.mjs +1 -1
  3. package/dist/components/account/ConfigurationsMyAccountModal.mjs.map +1 -1
  4. package/dist/components/account/ConfirmDeleteAccountModal.mjs.map +1 -1
  5. package/dist/components/account/ConfirmGlobalPreferencesModal.mjs.map +1 -1
  6. package/dist/components/account/DeleteAccountModal.mjs.map +1 -1
  7. package/dist/components/account/DisableTwoFactorAuthModal.mjs.map +1 -1
  8. package/dist/components/account/IsntPossibleDeleteAccountModal.mjs.map +1 -1
  9. package/dist/components/account/TwoFactorAuthModal.mjs.map +1 -1
  10. package/dist/components/account/hooks/useChangePhoneForm.mjs.map +1 -1
  11. package/dist/components/account/hooks/useTwoFactorAuthForm.mjs.map +1 -1
  12. package/dist/components/account/sections/ChangeEmailModal.mjs.map +1 -1
  13. package/dist/components/account/sections/ChangePasswordSection.mjs.map +1 -1
  14. package/dist/components/account/sections/ChangePhoneModal.mjs.map +1 -1
  15. package/dist/components/account/sections/MyProfileSection.mjs.map +1 -1
  16. package/dist/components/account/sections/PreferencesSection.mjs.map +1 -1
  17. package/dist/components/account/sections/SecuritySection.mjs.map +1 -1
  18. package/dist/components/embeds/CrispEmbed.mjs.map +1 -1
  19. package/dist/components/embeds/FrillEmbed.mjs.map +1 -1
  20. package/dist/components/handlers/SearchParamsHandler.mjs.map +1 -1
  21. package/dist/components/layouts/AppMobileNavBar.mjs +3 -2
  22. package/dist/components/layouts/AppMobileNavBar.mjs.map +1 -1
  23. package/dist/components/layouts/AppNavBar.mjs.map +1 -1
  24. package/dist/components/layouts/MdSideBarNavigation.mjs.map +1 -1
  25. package/dist/components/layouts/NavBar.mjs.map +1 -1
  26. package/dist/components/layouts/NotificationsPopover.mjs.map +1 -1
  27. package/dist/components/layouts/ProfilePopover.mjs.map +1 -1
  28. package/dist/components/layouts/UsersSelectorPopover.mjs.map +1 -1
  29. package/dist/components/modals/BuyCreditsModal.mjs.map +1 -1
  30. package/dist/components/modals/ModalManager.mjs.map +1 -1
  31. package/dist/components/modals/Modals.mjs.map +1 -1
  32. package/dist/components/navigation/AppNavigation.mjs +2 -1
  33. package/dist/components/navigation/AppNavigation.mjs.map +1 -1
  34. package/dist/components/navigation/CancelledSubscriptionBanner.mjs.map +1 -1
  35. package/dist/components/navigation/NavItemsContext.mjs.map +1 -1
  36. package/dist/components/navigation/ProjectSelectorPopover.mjs.map +1 -1
  37. package/dist/components/navigation/shells/TabsMobileShell.mjs.map +1 -1
  38. package/dist/components/navigation/subcomponents/ProjectSelector.mjs.map +1 -1
  39. package/dist/components/pages/notifications/Notifications.mjs.map +1 -1
  40. package/dist/components/ui/buttons/Button.mjs.map +1 -1
  41. package/dist/components/ui/buttons/CancelButton.mjs.map +1 -1
  42. package/dist/components/ui/buttons/CopyButton.mjs.map +1 -1
  43. package/dist/components/ui/data-display/Accordion.mjs.map +1 -1
  44. package/dist/components/ui/data-display/Badge.mjs.map +1 -1
  45. package/dist/components/ui/data-display/Card.mjs.map +1 -1
  46. package/dist/components/ui/data-display/CardBrandIcons.mjs.map +1 -1
  47. package/dist/components/ui/data-display/CardItem.mjs.map +1 -1
  48. package/dist/components/ui/data-display/Pagination.mjs.map +1 -1
  49. package/dist/components/ui/data-display/PaymentInfoCard.mjs.map +1 -1
  50. package/dist/components/ui/data-display/ScrollArea.mjs.map +1 -1
  51. package/dist/components/ui/data-display/Separator.mjs.map +1 -1
  52. package/dist/components/ui/data-display/Table.mjs.map +1 -1
  53. package/dist/components/ui/data-display/Tabs.mjs.map +1 -1
  54. package/dist/components/ui/feedback/CircularProgress.mjs.map +1 -1
  55. package/dist/components/ui/feedback/DefaultCircularProgress.mjs.map +1 -1
  56. package/dist/components/ui/feedback/LoadingOverlay.mjs.map +1 -1
  57. package/dist/components/ui/feedback/Progress.mjs.map +1 -1
  58. package/dist/components/ui/feedback/Skeleton.mjs.map +1 -1
  59. package/dist/components/ui/feedback/Toast.mjs.map +1 -1
  60. package/dist/components/ui/form/Calendar.mjs.map +1 -1
  61. package/dist/components/ui/form/Checkbox.mjs.map +1 -1
  62. package/dist/components/ui/form/ComboboxField.mjs.map +1 -1
  63. package/dist/components/ui/form/DatePicker.mjs.map +1 -1
  64. package/dist/components/ui/form/DateRangePicker.mjs.map +1 -1
  65. package/dist/components/ui/form/FormField.mjs.map +1 -1
  66. package/dist/components/ui/form/Input.mjs.map +1 -1
  67. package/dist/components/ui/form/InputOtp.mjs.map +1 -1
  68. package/dist/components/ui/form/PhoneInput.mjs.map +1 -1
  69. package/dist/components/ui/form/RadioGroup.mjs.map +1 -1
  70. package/dist/components/ui/form/Select.mjs +1 -1
  71. package/dist/components/ui/form/Select.mjs.map +1 -1
  72. package/dist/components/ui/form/Switch.mjs.map +1 -1
  73. package/dist/components/ui/form/Textarea.mjs.map +1 -1
  74. package/dist/components/ui/overlay/Command.mjs.map +1 -1
  75. package/dist/components/ui/overlay/Dialog.mjs.map +1 -1
  76. package/dist/components/ui/overlay/Popover.mjs.map +1 -1
  77. package/dist/components/ui/overlay/Sheet.mjs.map +1 -1
  78. package/dist/components/ui/overlay/Tooltip.mjs.map +1 -1
  79. package/dist/components/widgets/notifications/NotificationCard.mjs.map +1 -1
  80. package/dist/hooks/copy-to-clipboard.hook.mjs.map +1 -1
  81. package/dist/hooks/useDebounce.mjs.map +1 -1
  82. package/dist/hooks/useDebounceState.mjs.map +1 -1
  83. package/dist/hooks/useDebouncedEffect.mjs.map +1 -1
  84. package/dist/index.mjs.map +1 -1
  85. package/dist/infra/utils/clsx.mjs.map +1 -1
  86. package/dist/infra/utils/parser.mjs.map +1 -1
  87. package/dist/infra/utils/percentage.mjs.map +1 -1
  88. package/dist/middleware.mjs.map +1 -1
  89. package/dist/modules/accounts/actions/account-management.action.mjs.map +1 -1
  90. package/dist/modules/accounts/actions/find-current-account.action.mjs.map +1 -1
  91. package/dist/modules/accounts/actions/list-currencies.action.mjs.map +1 -1
  92. package/dist/modules/accounts/actions/list-timezones.action.mjs.map +1 -1
  93. package/dist/modules/accounts/hooks/current-account.hook.mjs.map +1 -1
  94. package/dist/modules/accounts/hooks/useAccountManagement.mjs.map +1 -1
  95. package/dist/modules/accounts/hooks/useCurrencies.mjs.map +1 -1
  96. package/dist/modules/accounts/hooks/useTimezones.mjs.map +1 -1
  97. package/dist/modules/accounts/services/account.service.mjs.map +1 -1
  98. package/dist/modules/auth/actions/validate-session.action.mjs.map +1 -1
  99. package/dist/modules/auth/hooks/login.hook.mjs.map +1 -1
  100. package/dist/modules/auth/hooks/logout.hook.mjs.map +1 -1
  101. package/dist/modules/auth/hooks/register.hook.mjs.map +1 -1
  102. package/dist/modules/cards/actions/list-cards.action.mjs.map +1 -1
  103. package/dist/modules/cards/hooks/cards.hook.mjs.map +1 -1
  104. package/dist/modules/cards/services/cards.service.mjs.map +1 -1
  105. package/dist/modules/cards/types.mjs.map +1 -1
  106. package/dist/modules/ia-credits/actions/list-ia-credits.action.mjs.map +1 -1
  107. package/dist/modules/plans/actions/find-plan-by-id.action.mjs.map +1 -1
  108. package/dist/modules/plans/hooks/use-has-plan-addon.hook.mjs.map +1 -1
  109. package/dist/modules/plans/hooks/use-plan-by-id.hook.mjs.map +1 -1
  110. package/dist/modules/plans/services/plans.service.mjs.map +1 -1
  111. package/dist/modules/plans/types/plan.type.mjs.map +1 -1
  112. package/dist/modules/projects/actions/add-project-user.action.mjs.map +1 -1
  113. package/dist/modules/projects/actions/list-all-account-users.action.mjs.map +1 -1
  114. package/dist/modules/projects/actions/list-available-users.action.mjs.map +1 -1
  115. package/dist/modules/projects/actions/list-project-users.action.mjs.map +1 -1
  116. package/dist/modules/projects/actions/remove-project-user.action.mjs.map +1 -1
  117. package/dist/modules/projects/hooks/add-project-user.hook.mjs.map +1 -1
  118. package/dist/modules/projects/hooks/list-all-account-users.hook.mjs.map +1 -1
  119. package/dist/modules/projects/hooks/list-available-users.hook.mjs.map +1 -1
  120. package/dist/modules/projects/hooks/list-project-users.hook.mjs.map +1 -1
  121. package/dist/modules/projects/hooks/remove-project-user.hook.mjs.map +1 -1
  122. package/dist/modules/subscriptions/actions/calculate-subscription.action.mjs.map +1 -1
  123. package/dist/modules/subscriptions/actions/list-subscriptions.action.mjs.map +1 -1
  124. package/dist/modules/subscriptions/actions/update-subscription-plan.action.mjs.map +1 -1
  125. package/dist/modules/subscriptions/constants/query-keys.constants.mjs.map +1 -1
  126. package/dist/modules/subscriptions/hooks/calculate-subscription.hook.mjs.map +1 -1
  127. package/dist/modules/subscriptions/hooks/find-active-subscription.hook.mjs.map +1 -1
  128. package/dist/modules/subscriptions/hooks/list-subscriptions.hook.mjs.map +1 -1
  129. package/dist/modules/subscriptions/hooks/update-subscription-plan.hook.mjs.map +1 -1
  130. package/dist/modules/subscriptions/types/calculate-subscription.type.mjs.map +1 -1
  131. package/dist/modules/subscriptions/utils/build-plan-extras.mjs.map +1 -1
  132. package/dist/modules/subscriptions/utils/periodicity.mjs.map +1 -1
  133. package/dist/modules/subscriptions/utils/resolve-plan-extras-prices.mjs.map +1 -1
  134. package/dist/modules/users/action/find-user-by-id.action.mjs.map +1 -1
  135. package/dist/modules/users/action/list-messages.action.mjs.map +1 -1
  136. package/dist/modules/users/action/mark-all-messages-as-read.action.mjs.map +1 -1
  137. package/dist/modules/users/action/mark-message-as-read.action.mjs.map +1 -1
  138. package/dist/modules/users/hooks/messages.hook.mjs.map +1 -1
  139. package/dist/modules/users/services/messages.service.mjs.map +1 -1
  140. package/dist/modules/whitelabel/actions/find-whitelabel-styles.action.mjs.map +1 -1
  141. package/dist/modules/whitelabel/actions/find-whitelabel.action.mjs.map +1 -1
  142. package/dist/modules/whitelabel/actions/revalidate-whitelabel-styles.action.mjs.map +1 -1
  143. package/dist/modules/whitelabel/actions/revalidate-whitelabel.action.mjs.map +1 -1
  144. package/dist/modules/whitelabel/services/whitelabel-styles.service.mjs.map +1 -1
  145. package/dist/providers/whitelabel.provider.mjs.map +1 -1
  146. package/dist/store/useAccountModals.mjs.map +1 -1
  147. package/dist/store/useBuyCreditsModal.mjs.map +1 -1
  148. package/dist/store/useModalManager.mjs.map +1 -1
  149. package/dist/utils/countries.mjs.map +1 -1
  150. package/dist/utils/safeServerAction.mjs.map +1 -1
  151. package/dist/utils/withAction.mjs.map +1 -1
  152. package/package.json +89 -89
  153. package/src/components/account/AccountModals.tsx +17 -17
  154. package/src/components/account/ConfigurationsMyAccountModal.tsx +150 -150
  155. package/src/components/account/ConfirmDeleteAccountModal.tsx +55 -55
  156. package/src/components/account/ConfirmGlobalPreferencesModal.tsx +66 -66
  157. package/src/components/account/DeleteAccountModal.tsx +130 -130
  158. package/src/components/account/DisableTwoFactorAuthModal.tsx +86 -86
  159. package/src/components/account/IsntPossibleDeleteAccountModal.tsx +49 -49
  160. package/src/components/account/TwoFactorAuthModal.tsx +223 -223
  161. package/src/components/account/hooks/useChangePhoneForm.tsx +81 -81
  162. package/src/components/account/hooks/useTwoFactorAuthForm.tsx +101 -101
  163. package/src/components/account/sections/ChangeEmailModal.tsx +225 -225
  164. package/src/components/account/sections/ChangePasswordSection.tsx +64 -64
  165. package/src/components/account/sections/ChangePhoneModal.tsx +231 -231
  166. package/src/components/account/sections/MyProfileSection.tsx +327 -327
  167. package/src/components/account/sections/PreferencesSection.tsx +273 -273
  168. package/src/components/account/sections/SecuritySection.tsx +160 -160
  169. package/src/components/embeds/CrispEmbed.tsx +101 -101
  170. package/src/components/embeds/FrillEmbed.tsx +119 -119
  171. package/src/components/handlers/SearchParamsHandler.tsx +61 -61
  172. package/src/components/layouts/AppMobileNavBar.tsx +118 -114
  173. package/src/components/layouts/AppNavBar.tsx +51 -51
  174. package/src/components/layouts/MdSideBarNavigation.tsx +56 -56
  175. package/src/components/layouts/NavBar.tsx +120 -120
  176. package/src/components/layouts/NotificationsPopover.tsx +115 -115
  177. package/src/components/layouts/ProfilePopover.tsx +164 -164
  178. package/src/components/layouts/UsersSelectorPopover.tsx +238 -238
  179. package/src/components/modals/BuyCreditsModal.tsx +301 -301
  180. package/src/components/modals/ModalManager.tsx +29 -29
  181. package/src/components/modals/Modals.tsx +26 -26
  182. package/src/components/navigation/AppNavigation.tsx +2 -3
  183. package/src/components/navigation/CancelledSubscriptionBanner.tsx +69 -69
  184. package/src/components/navigation/NavItemsContext.ts +20 -20
  185. package/src/components/navigation/ProjectSelectorPopover.tsx +157 -157
  186. package/src/components/navigation/shells/TabsMobileShell.tsx +72 -72
  187. package/src/components/navigation/subcomponents/ProjectSelector.tsx +156 -156
  188. package/src/components/pages/notifications/Notifications.tsx +160 -160
  189. package/src/components/ui/buttons/Button.tsx +57 -57
  190. package/src/components/ui/buttons/CancelButton.tsx +14 -14
  191. package/src/components/ui/buttons/CopyButton.tsx +54 -54
  192. package/src/components/ui/data-display/Accordion.tsx +81 -81
  193. package/src/components/ui/data-display/Badge.tsx +47 -47
  194. package/src/components/ui/data-display/Card.tsx +93 -93
  195. package/src/components/ui/data-display/CardBrandIcons.tsx +336 -336
  196. package/src/components/ui/data-display/CardItem.tsx +75 -75
  197. package/src/components/ui/data-display/Pagination.tsx +126 -126
  198. package/src/components/ui/data-display/PaymentInfoCard.tsx +186 -186
  199. package/src/components/ui/data-display/ScrollArea.tsx +59 -59
  200. package/src/components/ui/data-display/Separator.tsx +29 -29
  201. package/src/components/ui/data-display/Table.tsx +117 -117
  202. package/src/components/ui/data-display/Tabs.tsx +67 -67
  203. package/src/components/ui/feedback/CircularProgress.tsx +75 -75
  204. package/src/components/ui/feedback/DefaultCircularProgress.tsx +61 -61
  205. package/src/components/ui/feedback/LoadingOverlay.tsx +31 -31
  206. package/src/components/ui/feedback/Progress.tsx +40 -40
  207. package/src/components/ui/feedback/Skeleton.tsx +5 -5
  208. package/src/components/ui/feedback/Toast.tsx +101 -101
  209. package/src/components/ui/form/Calendar.tsx +228 -228
  210. package/src/components/ui/form/Checkbox.tsx +31 -31
  211. package/src/components/ui/form/ComboboxField.tsx +154 -154
  212. package/src/components/ui/form/DatePicker.tsx +97 -97
  213. package/src/components/ui/form/DateRangePicker.tsx +108 -108
  214. package/src/components/ui/form/FormField.tsx +131 -131
  215. package/src/components/ui/form/Input.tsx +20 -20
  216. package/src/components/ui/form/InputOtp.tsx +80 -80
  217. package/src/components/ui/form/PhoneInput.tsx +205 -205
  218. package/src/components/ui/form/RadioGroup.tsx +45 -45
  219. package/src/components/ui/form/Select.tsx +200 -200
  220. package/src/components/ui/form/Switch.tsx +32 -32
  221. package/src/components/ui/form/Textarea.tsx +19 -19
  222. package/src/components/ui/overlay/Command.tsx +185 -185
  223. package/src/components/ui/overlay/Dialog.tsx +151 -151
  224. package/src/components/ui/overlay/Popover.tsx +49 -49
  225. package/src/components/ui/overlay/Sheet.tsx +166 -166
  226. package/src/components/ui/overlay/Tooltip.tsx +62 -62
  227. package/src/components/widgets/notifications/NotificationCard.tsx +68 -68
  228. package/src/hooks/copy-to-clipboard.hook.tsx +67 -67
  229. package/src/hooks/useDebounce.ts +26 -26
  230. package/src/hooks/useDebounceState.ts +11 -11
  231. package/src/hooks/useDebouncedEffect.ts +69 -69
  232. package/src/index.ts +376 -376
  233. package/src/infra/utils/clsx.ts +6 -6
  234. package/src/infra/utils/parser.ts +52 -52
  235. package/src/infra/utils/percentage.ts +42 -42
  236. package/src/middleware.ts +4 -4
  237. package/src/modules/accounts/actions/account-management.action.ts +91 -91
  238. package/src/modules/accounts/actions/find-current-account.action.ts +9 -9
  239. package/src/modules/accounts/actions/list-currencies.action.ts +8 -8
  240. package/src/modules/accounts/actions/list-timezones.action.ts +8 -8
  241. package/src/modules/accounts/hooks/current-account.hook.tsx +22 -22
  242. package/src/modules/accounts/hooks/useAccountManagement.ts +85 -85
  243. package/src/modules/accounts/hooks/useCurrencies.ts +15 -15
  244. package/src/modules/accounts/hooks/useTimezones.ts +15 -15
  245. package/src/modules/accounts/services/account.service.ts +236 -236
  246. package/src/modules/accounts/types.ts +214 -214
  247. package/src/modules/auth/actions/validate-session.action.ts +56 -56
  248. package/src/modules/auth/hooks/login.hook.tsx +13 -13
  249. package/src/modules/auth/hooks/logout.hook.tsx +11 -11
  250. package/src/modules/auth/hooks/register.hook.tsx +11 -11
  251. package/src/modules/cards/actions/list-cards.action.ts +8 -8
  252. package/src/modules/cards/hooks/cards.hook.ts +14 -14
  253. package/src/modules/cards/services/cards.service.ts +32 -32
  254. package/src/modules/cards/types.ts +32 -32
  255. package/src/modules/ia-credits/actions/list-ia-credits.action.ts +8 -8
  256. package/src/modules/plans/actions/find-plan-by-id.action.ts +8 -8
  257. package/src/modules/plans/hooks/use-has-plan-addon.hook.ts +17 -17
  258. package/src/modules/plans/hooks/use-plan-by-id.hook.ts +13 -13
  259. package/src/modules/plans/services/plans.service.ts +36 -36
  260. package/src/modules/plans/types/plan.type.ts +21 -21
  261. package/src/modules/projects/actions/add-project-user.action.ts +9 -9
  262. package/src/modules/projects/actions/list-all-account-users.action.ts +9 -9
  263. package/src/modules/projects/actions/list-available-users.action.ts +9 -9
  264. package/src/modules/projects/actions/list-project-users.action.ts +9 -9
  265. package/src/modules/projects/actions/remove-project-user.action.ts +9 -9
  266. package/src/modules/projects/hooks/add-project-user.hook.ts +69 -69
  267. package/src/modules/projects/hooks/list-all-account-users.hook.ts +34 -34
  268. package/src/modules/projects/hooks/list-available-users.hook.ts +33 -33
  269. package/src/modules/projects/hooks/list-project-users.hook.ts +33 -33
  270. package/src/modules/projects/hooks/remove-project-user.hook.ts +69 -69
  271. package/src/modules/subscriptions/actions/calculate-subscription.action.ts +9 -9
  272. package/src/modules/subscriptions/actions/list-subscriptions.action.ts +9 -9
  273. package/src/modules/subscriptions/actions/update-subscription-plan.action.ts +26 -26
  274. package/src/modules/subscriptions/constants/query-keys.constants.ts +1 -1
  275. package/src/modules/subscriptions/hooks/calculate-subscription.hook.ts +13 -13
  276. package/src/modules/subscriptions/hooks/find-active-subscription.hook.ts +19 -19
  277. package/src/modules/subscriptions/hooks/list-subscriptions.hook.ts +16 -16
  278. package/src/modules/subscriptions/hooks/update-subscription-plan.hook.ts +25 -25
  279. package/src/modules/subscriptions/types/billing-period.type.ts +1 -1
  280. package/src/modules/subscriptions/types/calculate-subscription.type.ts +75 -75
  281. package/src/modules/subscriptions/utils/build-plan-extras.ts +56 -56
  282. package/src/modules/subscriptions/utils/periodicity.ts +52 -52
  283. package/src/modules/subscriptions/utils/resolve-plan-extras-prices.ts +23 -23
  284. package/src/modules/users/action/find-user-by-id.action.ts +8 -8
  285. package/src/modules/users/action/list-messages.action.ts +12 -12
  286. package/src/modules/users/action/mark-all-messages-as-read.action.ts +8 -8
  287. package/src/modules/users/action/mark-message-as-read.action.ts +8 -8
  288. package/src/modules/users/hooks/messages.hook.ts +60 -60
  289. package/src/modules/users/services/messages.service.ts +48 -48
  290. package/src/modules/whitelabel/actions/find-whitelabel-styles.action.ts +14 -14
  291. package/src/modules/whitelabel/actions/find-whitelabel.action.ts +23 -23
  292. package/src/modules/whitelabel/actions/revalidate-whitelabel-styles.action.ts +10 -10
  293. package/src/modules/whitelabel/actions/revalidate-whitelabel.action.ts +19 -19
  294. package/src/modules/whitelabel/schema.ts +83 -81
  295. package/src/modules/whitelabel/services/whitelabel-styles.service.ts +129 -129
  296. package/src/modules/whitelabel/styles-schema.ts +37 -37
  297. package/src/providers/whitelabel.provider.tsx +54 -54
  298. package/src/store/useAccountModals.ts +55 -55
  299. package/src/store/useBuyCreditsModal.ts +25 -25
  300. package/src/store/useModalManager.ts +104 -104
  301. package/src/utils/countries.ts +224 -224
  302. package/src/utils/safeServerAction.ts +21 -21
  303. package/src/utils/withAction.ts +13 -13
@@ -1,6 +1,6 @@
1
- import { clsx, type ClassValue } from "clsx"
2
- import { twMerge } from "tailwind-merge"
3
-
4
- export function cn(...inputs: ClassValue[]) {
5
- return twMerge(clsx(inputs))
6
- }
1
+ import { clsx, type ClassValue } from "clsx"
2
+ import { twMerge } from "tailwind-merge"
3
+
4
+ export function cn(...inputs: ClassValue[]) {
5
+ return twMerge(clsx(inputs))
6
+ }
@@ -1,53 +1,53 @@
1
- import z, { ZodTypeAny } from "zod";
2
- import { PaginatedSuccessResult, SuccessResult } from "../api/types";
3
-
4
- /* Overloads */
5
- export function parseSchema<T extends ZodTypeAny>(
6
- schema: T,
7
- data: unknown[]
8
- ): z.infer<T>[];
9
-
10
- export function parseSchema<T extends ZodTypeAny>(
11
- schema: T,
12
- data: unknown
13
- ): z.infer<T>;
14
-
15
- export function parseSchema<T extends ZodTypeAny>(
16
- schema: T,
17
- data: unknown | unknown[]
18
- ) {
19
- if (Array.isArray(data)) {
20
- return data.map(item => schema.parse(item));
21
- }
22
-
23
- return schema.parse(data);
24
- }
25
-
26
- export function parseResult<T extends ZodTypeAny>(
27
- schema: T,
28
- result: PaginatedSuccessResult<unknown>
29
- ): PaginatedSuccessResult<z.infer<T>>;
30
-
31
- export function parseResult<T extends ZodTypeAny>(
32
- schema: T,
33
- result: SuccessResult<unknown>
34
- ): SuccessResult<z.infer<T>>;
35
-
36
- export function parseResult<T extends ZodTypeAny>(
37
- schema: T,
38
- result: SuccessResult<unknown> | PaginatedSuccessResult<unknown>
39
- ) {
40
- if (!result.data) return result;
41
-
42
- if (Array.isArray(result.data)) {
43
- return {
44
- ...result,
45
- data: result.data.map(item => schema.parse(item)),
46
- };
47
- }
48
-
49
- return {
50
- ...result,
51
- data: schema.parse(result.data),
52
- };
1
+ import z, { ZodTypeAny } from "zod";
2
+ import { PaginatedSuccessResult, SuccessResult } from "../api/types";
3
+
4
+ /* Overloads */
5
+ export function parseSchema<T extends ZodTypeAny>(
6
+ schema: T,
7
+ data: unknown[]
8
+ ): z.infer<T>[];
9
+
10
+ export function parseSchema<T extends ZodTypeAny>(
11
+ schema: T,
12
+ data: unknown
13
+ ): z.infer<T>;
14
+
15
+ export function parseSchema<T extends ZodTypeAny>(
16
+ schema: T,
17
+ data: unknown | unknown[]
18
+ ) {
19
+ if (Array.isArray(data)) {
20
+ return data.map(item => schema.parse(item));
21
+ }
22
+
23
+ return schema.parse(data);
24
+ }
25
+
26
+ export function parseResult<T extends ZodTypeAny>(
27
+ schema: T,
28
+ result: PaginatedSuccessResult<unknown>
29
+ ): PaginatedSuccessResult<z.infer<T>>;
30
+
31
+ export function parseResult<T extends ZodTypeAny>(
32
+ schema: T,
33
+ result: SuccessResult<unknown>
34
+ ): SuccessResult<z.infer<T>>;
35
+
36
+ export function parseResult<T extends ZodTypeAny>(
37
+ schema: T,
38
+ result: SuccessResult<unknown> | PaginatedSuccessResult<unknown>
39
+ ) {
40
+ if (!result.data) return result;
41
+
42
+ if (Array.isArray(result.data)) {
43
+ return {
44
+ ...result,
45
+ data: result.data.map(item => schema.parse(item)),
46
+ };
47
+ }
48
+
49
+ return {
50
+ ...result,
51
+ data: schema.parse(result.data),
52
+ };
53
53
  }
@@ -1,42 +1,42 @@
1
- /**
2
- * Calcula percentual de um valor em relação ao total
3
- * @param current - Valor atual
4
- * @param total - Valor total
5
- * @returns Percentual (0-100)
6
- */
7
- export const calculatePercentage = (current: number, total: number): number => {
8
- if (total === 0) return 0;
9
- return (current / total) * 100;
10
- };
11
-
12
- /**
13
- * Calcula a circunferência de um círculo
14
- * @param radius - Raio do círculo
15
- * @returns Circunferência
16
- */
17
- export const calculateCircumference = (radius: number): number => {
18
- return 2 * Math.PI * radius;
19
- };
20
-
21
- /**
22
- * Calcula o offset para circular progress
23
- * @param percentage - Percentual de progresso (0-100)
24
- * @param circumference - Circunferência do círculo
25
- * @returns Valor do offset
26
- */
27
- export const calculateCircularProgressOffset = (
28
- percentage: number,
29
- circumference: number
30
- ): number => {
31
- return circumference - (percentage / 100) * circumference;
32
- };
33
-
34
- /**
35
- * Calcula raio de círculo baseado no tamanho e stroke
36
- * @param size - Tamanho total
37
- * @param strokeWidth - Largura do stroke
38
- * @returns Raio calculado
39
- */
40
- export const calculateRadius = (size: number, strokeWidth: number): number => {
41
- return (size - strokeWidth) / 2;
42
- };
1
+ /**
2
+ * Calcula percentual de um valor em relação ao total
3
+ * @param current - Valor atual
4
+ * @param total - Valor total
5
+ * @returns Percentual (0-100)
6
+ */
7
+ export const calculatePercentage = (current: number, total: number): number => {
8
+ if (total === 0) return 0;
9
+ return (current / total) * 100;
10
+ };
11
+
12
+ /**
13
+ * Calcula a circunferência de um círculo
14
+ * @param radius - Raio do círculo
15
+ * @returns Circunferência
16
+ */
17
+ export const calculateCircumference = (radius: number): number => {
18
+ return 2 * Math.PI * radius;
19
+ };
20
+
21
+ /**
22
+ * Calcula o offset para circular progress
23
+ * @param percentage - Percentual de progresso (0-100)
24
+ * @param circumference - Circunferência do círculo
25
+ * @returns Valor do offset
26
+ */
27
+ export const calculateCircularProgressOffset = (
28
+ percentage: number,
29
+ circumference: number
30
+ ): number => {
31
+ return circumference - (percentage / 100) * circumference;
32
+ };
33
+
34
+ /**
35
+ * Calcula raio de círculo baseado no tamanho e stroke
36
+ * @param size - Tamanho total
37
+ * @param strokeWidth - Largura do stroke
38
+ * @returns Raio calculado
39
+ */
40
+ export const calculateRadius = (size: number, strokeWidth: number): number => {
41
+ return (size - strokeWidth) / 2;
42
+ };
package/src/middleware.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { createAuthMiddleware } from './middlewares/create-auth-middleware';
2
- export { createMiddlewareChain } from './middlewares/chain';
3
- export type { MiddlewareConfig, MiddlewareFunction, MiddlewareResult } from './middlewares/types';
4
- export { continueChain, stopChain } from './middlewares/types';
1
+ export { createAuthMiddleware } from './middlewares/create-auth-middleware';
2
+ export { createMiddlewareChain } from './middlewares/chain';
3
+ export type { MiddlewareConfig, MiddlewareFunction, MiddlewareResult } from './middlewares/types';
4
+ export { continueChain, stopChain } from './middlewares/types';
@@ -1,91 +1,91 @@
1
- 'use server';
2
-
3
- import { safeServerAction } from '../../../utils/safeServerAction';
4
- import { accountService } from '../services/account.service';
5
- import type {
6
- AccountUsersPaginationParams,
7
- ChangePasswordRequest,
8
- CreateAccountUserRequest,
9
- UpdateAccountRequest,
10
- UpdateAccountUserRequest,
11
- } from '../types';
12
- import { twoFactorService } from '../services/two-factor.service';
13
-
14
- export async function listAccountUsersAction(params?: AccountUsersPaginationParams) {
15
- return safeServerAction(async () => {
16
- const { users, total } = await accountService.listAccountUsers(params);
17
- return { data: users, total };
18
- });
19
- }
20
-
21
- export async function updateUserAction(user: UpdateAccountUserRequest) {
22
- return safeServerAction(() => accountService.updateAccountUser(user));
23
- }
24
-
25
- export async function updateAccountUserByIdAction(
26
- userId: number,
27
- user: UpdateAccountUserRequest
28
- ) {
29
- return safeServerAction(() => accountService.updateAccountUserById(userId, user));
30
- }
31
-
32
- export async function updateAccountAction(data: UpdateAccountRequest) {
33
- return safeServerAction(() => accountService.updateAccount(data));
34
- }
35
-
36
- export async function deleteAccountUserAction(userId: number) {
37
- return safeServerAction(() => accountService.deleteAccountUser(userId));
38
- }
39
-
40
- export async function deleteAccountAction() {
41
- return safeServerAction(() => accountService.deleteAccount());
42
- }
43
-
44
- export async function createAccountUserAction(user: CreateAccountUserRequest) {
45
- return safeServerAction(() => accountService.createAccountUser(user));
46
- }
47
-
48
- export async function changePasswordAction(data: ChangePasswordRequest) {
49
- return safeServerAction(() => accountService.changePassword(data));
50
- }
51
-
52
- export async function requestEmailChangeAction(newEmail: string) {
53
- return safeServerAction(() => accountService.requestContactReset('email', newEmail));
54
- }
55
-
56
- export async function confirmEmailChangeAction(token: string, newEmail: string) {
57
- return safeServerAction(() => accountService.confirmContactReset('email', token, newEmail));
58
- }
59
-
60
- export async function requestPhoneChangeAction(newPhone: string, ddi?: string) {
61
- return safeServerAction(() => accountService.requestContactReset('phone', newPhone, ddi));
62
- }
63
-
64
- export async function confirmPhoneChangeAction(token: string, newPhone: string, ddi?: string) {
65
- return safeServerAction(() => accountService.confirmContactReset('phone', token, newPhone, ddi));
66
- }
67
-
68
- export async function generateTwoFactorAction() {
69
- return safeServerAction(async () => {
70
- const result = await twoFactorService.generate();
71
- return {
72
- qrcode: result.data.qrcode,
73
- backupCodes: result.data.backup_codes,
74
- };
75
- });
76
- }
77
-
78
- export async function confirmTwoFactorAction(code: string) {
79
- return safeServerAction(async () => {
80
- await twoFactorService.confirm(code);
81
- await accountService.updateAccountUser({ two_factor_authentication: true });
82
- });
83
- }
84
-
85
- export async function disableTwoFactorAction(code: string) {
86
- return safeServerAction(async () => {
87
- await twoFactorService.verify(code);
88
- await twoFactorService.disable();
89
- await accountService.updateAccountUser({ two_factor_authentication: false });
90
- });
91
- }
1
+ 'use server';
2
+
3
+ import { safeServerAction } from '../../../utils/safeServerAction';
4
+ import { accountService } from '../services/account.service';
5
+ import type {
6
+ AccountUsersPaginationParams,
7
+ ChangePasswordRequest,
8
+ CreateAccountUserRequest,
9
+ UpdateAccountRequest,
10
+ UpdateAccountUserRequest,
11
+ } from '../types';
12
+ import { twoFactorService } from '../services/two-factor.service';
13
+
14
+ export async function listAccountUsersAction(params?: AccountUsersPaginationParams) {
15
+ return safeServerAction(async () => {
16
+ const { users, total } = await accountService.listAccountUsers(params);
17
+ return { data: users, total };
18
+ });
19
+ }
20
+
21
+ export async function updateUserAction(user: UpdateAccountUserRequest) {
22
+ return safeServerAction(() => accountService.updateAccountUser(user));
23
+ }
24
+
25
+ export async function updateAccountUserByIdAction(
26
+ userId: number,
27
+ user: UpdateAccountUserRequest
28
+ ) {
29
+ return safeServerAction(() => accountService.updateAccountUserById(userId, user));
30
+ }
31
+
32
+ export async function updateAccountAction(data: UpdateAccountRequest) {
33
+ return safeServerAction(() => accountService.updateAccount(data));
34
+ }
35
+
36
+ export async function deleteAccountUserAction(userId: number) {
37
+ return safeServerAction(() => accountService.deleteAccountUser(userId));
38
+ }
39
+
40
+ export async function deleteAccountAction() {
41
+ return safeServerAction(() => accountService.deleteAccount());
42
+ }
43
+
44
+ export async function createAccountUserAction(user: CreateAccountUserRequest) {
45
+ return safeServerAction(() => accountService.createAccountUser(user));
46
+ }
47
+
48
+ export async function changePasswordAction(data: ChangePasswordRequest) {
49
+ return safeServerAction(() => accountService.changePassword(data));
50
+ }
51
+
52
+ export async function requestEmailChangeAction(newEmail: string) {
53
+ return safeServerAction(() => accountService.requestContactReset('email', newEmail));
54
+ }
55
+
56
+ export async function confirmEmailChangeAction(token: string, newEmail: string) {
57
+ return safeServerAction(() => accountService.confirmContactReset('email', token, newEmail));
58
+ }
59
+
60
+ export async function requestPhoneChangeAction(newPhone: string, ddi?: string) {
61
+ return safeServerAction(() => accountService.requestContactReset('phone', newPhone, ddi));
62
+ }
63
+
64
+ export async function confirmPhoneChangeAction(token: string, newPhone: string, ddi?: string) {
65
+ return safeServerAction(() => accountService.confirmContactReset('phone', token, newPhone, ddi));
66
+ }
67
+
68
+ export async function generateTwoFactorAction() {
69
+ return safeServerAction(async () => {
70
+ const result = await twoFactorService.generate();
71
+ return {
72
+ qrcode: result.data.qrcode,
73
+ backupCodes: result.data.backup_codes,
74
+ };
75
+ });
76
+ }
77
+
78
+ export async function confirmTwoFactorAction(code: string) {
79
+ return safeServerAction(async () => {
80
+ await twoFactorService.confirm(code);
81
+ await accountService.updateAccountUser({ two_factor_authentication: true });
82
+ });
83
+ }
84
+
85
+ export async function disableTwoFactorAction(code: string) {
86
+ return safeServerAction(async () => {
87
+ await twoFactorService.verify(code);
88
+ await twoFactorService.disable();
89
+ await accountService.updateAccountUser({ two_factor_authentication: false });
90
+ });
91
+ }
@@ -1,9 +1,9 @@
1
- 'use server';
2
-
3
- import { safeServerAction } from '../../../utils/safeServerAction';
4
- import { accountService } from '../services/account.service';
5
- import type { Account } from '../types';
6
-
7
- export async function findCurrentAccount() {
8
- return safeServerAction<Account>(() => accountService.findCurrentAccount());
9
- }
1
+ 'use server';
2
+
3
+ import { safeServerAction } from '../../../utils/safeServerAction';
4
+ import { accountService } from '../services/account.service';
5
+ import type { Account } from '../types';
6
+
7
+ export async function findCurrentAccount() {
8
+ return safeServerAction<Account>(() => accountService.findCurrentAccount());
9
+ }
@@ -1,8 +1,8 @@
1
- 'use server';
2
-
3
- import { safeServerAction } from '../../../utils/safeServerAction';
4
- import { currencyService } from '../services/currency.service';
5
-
6
- export async function listCurrenciesAction() {
7
- return safeServerAction(() => currencyService.fetchOptions());
8
- }
1
+ 'use server';
2
+
3
+ import { safeServerAction } from '../../../utils/safeServerAction';
4
+ import { currencyService } from '../services/currency.service';
5
+
6
+ export async function listCurrenciesAction() {
7
+ return safeServerAction(() => currencyService.fetchOptions());
8
+ }
@@ -1,8 +1,8 @@
1
- 'use server';
2
-
3
- import { safeServerAction } from '../../../utils/safeServerAction';
4
- import { timezoneService } from '../services/timezone.service';
5
-
6
- export async function listTimezonesAction() {
7
- return safeServerAction(() => timezoneService.fetchOptions());
8
- }
1
+ 'use server';
2
+
3
+ import { safeServerAction } from '../../../utils/safeServerAction';
4
+ import { timezoneService } from '../services/timezone.service';
5
+
6
+ export async function listTimezonesAction() {
7
+ return safeServerAction(() => timezoneService.fetchOptions());
8
+ }
@@ -1,22 +1,22 @@
1
- 'use client';
2
-
3
- import { useQuery, useQueryClient } from '@tanstack/react-query';
4
- import { findCurrentAccount } from '../actions/find-current-account.action';
5
- import { withAction } from '../../../utils/withAction';
6
-
7
- export const ACCOUNT_QUERY_KEY = ['account'];
8
-
9
- export function useCurrentAccount() {
10
- return useQuery({
11
- queryKey: ACCOUNT_QUERY_KEY,
12
- queryFn: withAction(findCurrentAccount),
13
- staleTime: 0,
14
- gcTime: 10 * 60 * 1000,
15
- retry: false,
16
- });
17
- }
18
-
19
- export function useInvalidateAccount() {
20
- const queryClient = useQueryClient();
21
- return () => queryClient.invalidateQueries({ queryKey: ACCOUNT_QUERY_KEY });
22
- }
1
+ 'use client';
2
+
3
+ import { useQuery, useQueryClient } from '@tanstack/react-query';
4
+ import { findCurrentAccount } from '../actions/find-current-account.action';
5
+ import { withAction } from '../../../utils/withAction';
6
+
7
+ export const ACCOUNT_QUERY_KEY = ['account'];
8
+
9
+ export function useCurrentAccount() {
10
+ return useQuery({
11
+ queryKey: ACCOUNT_QUERY_KEY,
12
+ queryFn: withAction(findCurrentAccount),
13
+ staleTime: 0,
14
+ gcTime: 10 * 60 * 1000,
15
+ retry: false,
16
+ });
17
+ }
18
+
19
+ export function useInvalidateAccount() {
20
+ const queryClient = useQueryClient();
21
+ return () => queryClient.invalidateQueries({ queryKey: ACCOUNT_QUERY_KEY });
22
+ }
@@ -1,85 +1,85 @@
1
- 'use client';
2
-
3
- import { useMutation, useQueryClient } from '@tanstack/react-query';
4
- import { USER_QUERY_KEY } from '../../auth/hooks/useUserQuery';
5
- import { ACCOUNT_QUERY_KEY } from './current-account.hook';
6
- import type {
7
- UpdateAccountRequest,
8
- UpdateAccountUserRequest,
9
- DeleteAccountUserResponse,
10
- DeleteAccountResponse,
11
- } from '../types';
12
- import {
13
- updateUserAction,
14
- updateAccountAction,
15
- updateAccountUserByIdAction,
16
- deleteAccountUserAction,
17
- deleteAccountAction,
18
- } from '../actions/account-management.action';
19
- import { withAction } from '../../../utils/withAction';
20
- import type { UseMutationOptions } from '@tanstack/react-query';
21
-
22
- const ACCOUNT_USERS_QUERY_KEY = ['account-users'];
23
-
24
- export function useUpdateAccount() {
25
- const queryClient = useQueryClient();
26
-
27
- return useMutation({
28
- mutationFn: withAction(updateAccountAction),
29
- onSuccess: () => {
30
- queryClient.invalidateQueries({ queryKey: ACCOUNT_USERS_QUERY_KEY });
31
- queryClient.invalidateQueries({ queryKey: ACCOUNT_QUERY_KEY });
32
- queryClient.invalidateQueries({ queryKey: USER_QUERY_KEY });
33
- },
34
- });
35
- }
36
-
37
- export function useUpdateAccountUser() {
38
- const queryClient = useQueryClient();
39
-
40
- return useMutation({
41
- mutationFn: withAction(updateUserAction),
42
- onSuccess: () => {
43
- queryClient.invalidateQueries({ queryKey: ACCOUNT_USERS_QUERY_KEY });
44
- queryClient.invalidateQueries({ queryKey: ACCOUNT_QUERY_KEY });
45
- queryClient.invalidateQueries({ queryKey: USER_QUERY_KEY });
46
- },
47
- });
48
- }
49
-
50
- export function useUpdateAccountUserById() {
51
- const queryClient = useQueryClient();
52
-
53
- return useMutation({
54
- mutationFn: withAction(({ userId, ...user }: UpdateAccountUserRequest & { userId: number }) =>
55
- updateAccountUserByIdAction(userId, user)
56
- ),
57
- onSuccess: () => {
58
- queryClient.invalidateQueries({ queryKey: ACCOUNT_USERS_QUERY_KEY });
59
- },
60
- });
61
- }
62
-
63
- export function useDeleteAccountUser(
64
- options?: UseMutationOptions<DeleteAccountUserResponse, Error, number>
65
- ) {
66
- const queryClient = useQueryClient();
67
-
68
- return useMutation({
69
- mutationFn: withAction(deleteAccountUserAction),
70
- ...options,
71
- onSuccess: (...params) => {
72
- options?.onSuccess?.(...params);
73
- queryClient.invalidateQueries({ queryKey: ACCOUNT_USERS_QUERY_KEY });
74
- },
75
- });
76
- }
77
-
78
- export function useDeleteAccount(
79
- options?: UseMutationOptions<DeleteAccountResponse, Error, void>
80
- ) {
81
- return useMutation({
82
- mutationFn: withAction(deleteAccountAction),
83
- ...options,
84
- });
85
- }
1
+ 'use client';
2
+
3
+ import { useMutation, useQueryClient } from '@tanstack/react-query';
4
+ import { USER_QUERY_KEY } from '../../auth/hooks/useUserQuery';
5
+ import { ACCOUNT_QUERY_KEY } from './current-account.hook';
6
+ import type {
7
+ UpdateAccountRequest,
8
+ UpdateAccountUserRequest,
9
+ DeleteAccountUserResponse,
10
+ DeleteAccountResponse,
11
+ } from '../types';
12
+ import {
13
+ updateUserAction,
14
+ updateAccountAction,
15
+ updateAccountUserByIdAction,
16
+ deleteAccountUserAction,
17
+ deleteAccountAction,
18
+ } from '../actions/account-management.action';
19
+ import { withAction } from '../../../utils/withAction';
20
+ import type { UseMutationOptions } from '@tanstack/react-query';
21
+
22
+ const ACCOUNT_USERS_QUERY_KEY = ['account-users'];
23
+
24
+ export function useUpdateAccount() {
25
+ const queryClient = useQueryClient();
26
+
27
+ return useMutation({
28
+ mutationFn: withAction(updateAccountAction),
29
+ onSuccess: () => {
30
+ queryClient.invalidateQueries({ queryKey: ACCOUNT_USERS_QUERY_KEY });
31
+ queryClient.invalidateQueries({ queryKey: ACCOUNT_QUERY_KEY });
32
+ queryClient.invalidateQueries({ queryKey: USER_QUERY_KEY });
33
+ },
34
+ });
35
+ }
36
+
37
+ export function useUpdateAccountUser() {
38
+ const queryClient = useQueryClient();
39
+
40
+ return useMutation({
41
+ mutationFn: withAction(updateUserAction),
42
+ onSuccess: () => {
43
+ queryClient.invalidateQueries({ queryKey: ACCOUNT_USERS_QUERY_KEY });
44
+ queryClient.invalidateQueries({ queryKey: ACCOUNT_QUERY_KEY });
45
+ queryClient.invalidateQueries({ queryKey: USER_QUERY_KEY });
46
+ },
47
+ });
48
+ }
49
+
50
+ export function useUpdateAccountUserById() {
51
+ const queryClient = useQueryClient();
52
+
53
+ return useMutation({
54
+ mutationFn: withAction(({ userId, ...user }: UpdateAccountUserRequest & { userId: number }) =>
55
+ updateAccountUserByIdAction(userId, user)
56
+ ),
57
+ onSuccess: () => {
58
+ queryClient.invalidateQueries({ queryKey: ACCOUNT_USERS_QUERY_KEY });
59
+ },
60
+ });
61
+ }
62
+
63
+ export function useDeleteAccountUser(
64
+ options?: UseMutationOptions<DeleteAccountUserResponse, Error, number>
65
+ ) {
66
+ const queryClient = useQueryClient();
67
+
68
+ return useMutation({
69
+ mutationFn: withAction(deleteAccountUserAction),
70
+ ...options,
71
+ onSuccess: (...params) => {
72
+ options?.onSuccess?.(...params);
73
+ queryClient.invalidateQueries({ queryKey: ACCOUNT_USERS_QUERY_KEY });
74
+ },
75
+ });
76
+ }
77
+
78
+ export function useDeleteAccount(
79
+ options?: UseMutationOptions<DeleteAccountResponse, Error, void>
80
+ ) {
81
+ return useMutation({
82
+ mutationFn: withAction(deleteAccountAction),
83
+ ...options,
84
+ });
85
+ }