@greatapps/common 1.1.379 → 1.1.381

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 (347) 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.map +1 -1
  22. package/dist/components/layouts/AppNavBar.mjs.map +1 -1
  23. package/dist/components/layouts/CollapsibleSidebar.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/SideBarNavigation.mjs.map +1 -1
  29. package/dist/components/layouts/UsersSelectorPopover.mjs.map +1 -1
  30. package/dist/components/layouts/WhitelabelCodes.mjs.map +1 -1
  31. package/dist/components/modals/BuyCreditsModal.mjs.map +1 -1
  32. package/dist/components/modals/ModalManager.mjs.map +1 -1
  33. package/dist/components/modals/Modals.mjs.map +1 -1
  34. package/dist/components/modals/cards/AddCardModal.mjs.map +1 -1
  35. package/dist/components/modals/cards/CardFormFields.mjs.map +1 -1
  36. package/dist/components/navigation/CancelledSubscriptionBanner.mjs.map +1 -1
  37. package/dist/components/navigation/NavItemsContext.mjs.map +1 -1
  38. package/dist/components/navigation/ProjectSelectorPopover.mjs +69 -40
  39. package/dist/components/navigation/ProjectSelectorPopover.mjs.map +1 -1
  40. package/dist/components/navigation/shells/TabsMobileShell.mjs.map +1 -1
  41. package/dist/components/navigation/subcomponents/ProjectSelector.mjs +59 -32
  42. package/dist/components/navigation/subcomponents/ProjectSelector.mjs.map +1 -1
  43. package/dist/components/pages/NotFoundPage.mjs.map +1 -1
  44. package/dist/components/pages/notifications/Notifications.mjs.map +1 -1
  45. package/dist/components/ui/buttons/Button.mjs.map +1 -1
  46. package/dist/components/ui/buttons/CancelButton.mjs.map +1 -1
  47. package/dist/components/ui/buttons/CopyButton.mjs.map +1 -1
  48. package/dist/components/ui/data-display/Accordion.mjs.map +1 -1
  49. package/dist/components/ui/data-display/Badge.mjs.map +1 -1
  50. package/dist/components/ui/data-display/Card.mjs.map +1 -1
  51. package/dist/components/ui/data-display/CardBrandIcons.mjs.map +1 -1
  52. package/dist/components/ui/data-display/CardItem.mjs.map +1 -1
  53. package/dist/components/ui/data-display/Pagination.mjs.map +1 -1
  54. package/dist/components/ui/data-display/PaymentInfoCard.mjs.map +1 -1
  55. package/dist/components/ui/data-display/ScrollArea.mjs.map +1 -1
  56. package/dist/components/ui/data-display/Separator.mjs.map +1 -1
  57. package/dist/components/ui/data-display/Table.mjs.map +1 -1
  58. package/dist/components/ui/data-display/Tabs.mjs.map +1 -1
  59. package/dist/components/ui/feedback/CircularProgress.mjs.map +1 -1
  60. package/dist/components/ui/feedback/DefaultCircularProgress.mjs.map +1 -1
  61. package/dist/components/ui/feedback/LoadingOverlay.mjs.map +1 -1
  62. package/dist/components/ui/feedback/Progress.mjs.map +1 -1
  63. package/dist/components/ui/feedback/Skeleton.mjs.map +1 -1
  64. package/dist/components/ui/feedback/Toast.mjs.map +1 -1
  65. package/dist/components/ui/form/Calendar.mjs.map +1 -1
  66. package/dist/components/ui/form/Checkbox.mjs.map +1 -1
  67. package/dist/components/ui/form/ComboboxField.mjs.map +1 -1
  68. package/dist/components/ui/form/DatePicker.mjs.map +1 -1
  69. package/dist/components/ui/form/DateRangePicker.mjs.map +1 -1
  70. package/dist/components/ui/form/FormField.mjs.map +1 -1
  71. package/dist/components/ui/form/Input.mjs.map +1 -1
  72. package/dist/components/ui/form/InputOtp.mjs.map +1 -1
  73. package/dist/components/ui/form/PhoneInput.mjs.map +1 -1
  74. package/dist/components/ui/form/RadioGroup.mjs.map +1 -1
  75. package/dist/components/ui/form/Select.mjs +1 -1
  76. package/dist/components/ui/form/Select.mjs.map +1 -1
  77. package/dist/components/ui/form/Switch.mjs.map +1 -1
  78. package/dist/components/ui/form/Textarea.mjs.map +1 -1
  79. package/dist/components/ui/overlay/Command.mjs.map +1 -1
  80. package/dist/components/ui/overlay/Dialog.mjs.map +1 -1
  81. package/dist/components/ui/overlay/Popover.mjs.map +1 -1
  82. package/dist/components/ui/overlay/Sheet.mjs.map +1 -1
  83. package/dist/components/ui/overlay/Tooltip.mjs.map +1 -1
  84. package/dist/components/widgets/notifications/NotificationCard.mjs.map +1 -1
  85. package/dist/hooks/copy-to-clipboard.hook.mjs.map +1 -1
  86. package/dist/hooks/useDebounce.mjs.map +1 -1
  87. package/dist/hooks/useDebounceState.mjs.map +1 -1
  88. package/dist/hooks/useDebouncedEffect.mjs.map +1 -1
  89. package/dist/index.mjs.map +1 -1
  90. package/dist/infra/utils/clsx.mjs.map +1 -1
  91. package/dist/infra/utils/date.mjs.map +1 -1
  92. package/dist/infra/utils/parser.mjs.map +1 -1
  93. package/dist/infra/utils/percentage.mjs.map +1 -1
  94. package/dist/middleware.mjs.map +1 -1
  95. package/dist/modules/accounts/actions/account-management.action.mjs.map +1 -1
  96. package/dist/modules/accounts/actions/find-current-account.action.mjs.map +1 -1
  97. package/dist/modules/accounts/actions/list-currencies.action.mjs.map +1 -1
  98. package/dist/modules/accounts/actions/list-timezones.action.mjs.map +1 -1
  99. package/dist/modules/accounts/hooks/current-account.hook.mjs.map +1 -1
  100. package/dist/modules/accounts/hooks/useAccountManagement.mjs.map +1 -1
  101. package/dist/modules/accounts/hooks/useCurrencies.mjs.map +1 -1
  102. package/dist/modules/accounts/hooks/useTimezones.mjs.map +1 -1
  103. package/dist/modules/accounts/hooks/useViaCep.mjs.map +1 -1
  104. package/dist/modules/accounts/services/account.service.mjs.map +1 -1
  105. package/dist/modules/accounts/services/two-factor.service.mjs +3 -2
  106. package/dist/modules/accounts/services/two-factor.service.mjs.map +1 -1
  107. package/dist/modules/auth/actions/validate-session.action.mjs.map +1 -1
  108. package/dist/modules/auth/actions/verify-two-factor.action.mjs +2 -2
  109. package/dist/modules/auth/actions/verify-two-factor.action.mjs.map +1 -1
  110. package/dist/modules/auth/hooks/login.hook.mjs.map +1 -1
  111. package/dist/modules/auth/hooks/logout.hook.mjs.map +1 -1
  112. package/dist/modules/auth/hooks/register.hook.mjs.map +1 -1
  113. package/dist/modules/auth/hooks/useManagementPermissions.mjs.map +1 -1
  114. package/dist/modules/auth/hooks/useUserQuery.mjs +2 -2
  115. package/dist/modules/auth/hooks/useUserQuery.mjs.map +1 -1
  116. package/dist/modules/auth/services/auth.service.mjs +3 -2
  117. package/dist/modules/auth/services/auth.service.mjs.map +1 -1
  118. package/dist/modules/auth/utils/assert-management-permission.mjs.map +1 -1
  119. package/dist/modules/auth/utils/assert-management-subscription.mjs.map +1 -1
  120. package/dist/modules/auth/utils/build-wl-override.mjs.map +1 -1
  121. package/dist/modules/cards/actions/create-card.action.mjs.map +1 -1
  122. package/dist/modules/cards/actions/list-cards.action.mjs.map +1 -1
  123. package/dist/modules/cards/hooks/cards.hook.mjs.map +1 -1
  124. package/dist/modules/cards/hooks/create-card.hook.mjs.map +1 -1
  125. package/dist/modules/cards/services/cards.service.mjs.map +1 -1
  126. package/dist/modules/cards/types.mjs.map +1 -1
  127. package/dist/modules/ia-credits/actions/list-ia-credits.action.mjs.map +1 -1
  128. package/dist/modules/plans/actions/find-plan-by-id.action.mjs.map +1 -1
  129. package/dist/modules/plans/hooks/use-has-plan-addon.hook.mjs.map +1 -1
  130. package/dist/modules/plans/hooks/use-plan-by-id.hook.mjs.map +1 -1
  131. package/dist/modules/plans/services/plans.service.mjs.map +1 -1
  132. package/dist/modules/plans/types/plan.type.mjs.map +1 -1
  133. package/dist/modules/projects/actions/add-project-user.action.mjs.map +1 -1
  134. package/dist/modules/projects/actions/list-all-account-users.action.mjs.map +1 -1
  135. package/dist/modules/projects/actions/list-available-users.action.mjs.map +1 -1
  136. package/dist/modules/projects/actions/list-project-users.action.mjs.map +1 -1
  137. package/dist/modules/projects/actions/remove-project-user.action.mjs.map +1 -1
  138. package/dist/modules/projects/hooks/add-project-user.hook.mjs.map +1 -1
  139. package/dist/modules/projects/hooks/list-all-account-users.hook.mjs.map +1 -1
  140. package/dist/modules/projects/hooks/list-available-users.hook.mjs.map +1 -1
  141. package/dist/modules/projects/hooks/list-project-users.hook.mjs.map +1 -1
  142. package/dist/modules/projects/hooks/remove-project-user.hook.mjs.map +1 -1
  143. package/dist/modules/subscriptions/actions/calculate-subscription.action.mjs.map +1 -1
  144. package/dist/modules/subscriptions/actions/list-subscriptions.action.mjs.map +1 -1
  145. package/dist/modules/subscriptions/actions/update-subscription-plan.action.mjs.map +1 -1
  146. package/dist/modules/subscriptions/constants/query-keys.constants.mjs.map +1 -1
  147. package/dist/modules/subscriptions/hooks/calculate-subscription.hook.mjs.map +1 -1
  148. package/dist/modules/subscriptions/hooks/find-active-subscription.hook.mjs.map +1 -1
  149. package/dist/modules/subscriptions/hooks/list-subscriptions.hook.mjs.map +1 -1
  150. package/dist/modules/subscriptions/hooks/update-subscription-plan.hook.mjs.map +1 -1
  151. package/dist/modules/subscriptions/hooks/use-cancelled-subscription-guard.mjs.map +1 -1
  152. package/dist/modules/subscriptions/types/calculate-subscription.type.mjs.map +1 -1
  153. package/dist/modules/subscriptions/utils/build-plan-extras.mjs.map +1 -1
  154. package/dist/modules/subscriptions/utils/has-subscription-expired.mjs.map +1 -1
  155. package/dist/modules/subscriptions/utils/periodicity.mjs.map +1 -1
  156. package/dist/modules/subscriptions/utils/resolve-plan-extras-prices.mjs.map +1 -1
  157. package/dist/modules/users/action/find-user-by-id.action.mjs.map +1 -1
  158. package/dist/modules/users/action/list-messages.action.mjs.map +1 -1
  159. package/dist/modules/users/action/mark-all-messages-as-read.action.mjs.map +1 -1
  160. package/dist/modules/users/action/mark-message-as-read.action.mjs.map +1 -1
  161. package/dist/modules/users/hooks/messages.hook.mjs.map +1 -1
  162. package/dist/modules/users/services/messages.service.mjs.map +1 -1
  163. package/dist/modules/whitelabel/actions/find-whitelabel.action.mjs.map +1 -1
  164. package/dist/modules/whitelabel/actions/revalidate-whitelabel.action.mjs.map +1 -1
  165. package/dist/modules/whitelabel/utils/normalize-hostname.mjs.map +1 -1
  166. package/dist/providers/whitelabel.provider.mjs.map +1 -1
  167. package/dist/store/useAccountModals.mjs.map +1 -1
  168. package/dist/store/useBuyCreditsModal.mjs.map +1 -1
  169. package/dist/store/useDesktopSidebarStore.mjs.map +1 -1
  170. package/dist/store/useMdSidebarStore.mjs.map +1 -1
  171. package/dist/store/useModalManager.mjs.map +1 -1
  172. package/dist/utils/constants/br-states.mjs.map +1 -1
  173. package/dist/utils/countries.mjs.map +1 -1
  174. package/dist/utils/safeServerAction.mjs.map +1 -1
  175. package/dist/utils/withAction.mjs.map +1 -1
  176. package/package.json +89 -89
  177. package/src/components/account/AccountModals.tsx +17 -17
  178. package/src/components/account/ConfigurationsMyAccountModal.tsx +146 -146
  179. package/src/components/account/ConfirmDeleteAccountModal.tsx +55 -55
  180. package/src/components/account/ConfirmGlobalPreferencesModal.tsx +66 -66
  181. package/src/components/account/DeleteAccountModal.tsx +130 -130
  182. package/src/components/account/DisableTwoFactorAuthModal.tsx +86 -86
  183. package/src/components/account/IsntPossibleDeleteAccountModal.tsx +49 -49
  184. package/src/components/account/TwoFactorAuthModal.tsx +215 -215
  185. package/src/components/account/hooks/useChangePhoneForm.tsx +107 -107
  186. package/src/components/account/hooks/useTwoFactorAuthForm.tsx +101 -101
  187. package/src/components/account/sections/ChangeEmailModal.tsx +225 -225
  188. package/src/components/account/sections/ChangePasswordSection.tsx +64 -64
  189. package/src/components/account/sections/ChangePhoneModal.tsx +245 -245
  190. package/src/components/account/sections/MyProfileSection.tsx +327 -327
  191. package/src/components/account/sections/PreferencesSection.tsx +248 -248
  192. package/src/components/account/sections/SecuritySection.tsx +46 -46
  193. package/src/components/embeds/CrispEmbed.tsx +101 -101
  194. package/src/components/embeds/FrillEmbed.tsx +119 -119
  195. package/src/components/handlers/SearchParamsHandler.tsx +61 -61
  196. package/src/components/layouts/AppMobileNavBar.tsx +118 -118
  197. package/src/components/layouts/AppNavBar.tsx +46 -46
  198. package/src/components/layouts/CollapsibleSidebar.tsx +67 -67
  199. package/src/components/layouts/MdSideBarNavigation.tsx +56 -56
  200. package/src/components/layouts/NavBar.tsx +172 -172
  201. package/src/components/layouts/NotificationsPopover.tsx +115 -115
  202. package/src/components/layouts/ProfilePopover.tsx +174 -174
  203. package/src/components/layouts/SideBarNavigation.tsx +62 -62
  204. package/src/components/layouts/UsersSelectorPopover.tsx +234 -234
  205. package/src/components/layouts/WhitelabelCodes.tsx +59 -59
  206. package/src/components/modals/BuyCreditsModal.tsx +314 -314
  207. package/src/components/modals/ModalManager.tsx +29 -29
  208. package/src/components/modals/Modals.tsx +26 -26
  209. package/src/components/modals/cards/AddCardModal.tsx +260 -260
  210. package/src/components/modals/cards/CardFormFields.tsx +294 -294
  211. package/src/components/navigation/CancelledSubscriptionBanner.tsx +60 -60
  212. package/src/components/navigation/NavItemsContext.ts +20 -20
  213. package/src/components/navigation/ProjectSelectorPopover.tsx +194 -160
  214. package/src/components/navigation/shells/TabsMobileShell.tsx +72 -72
  215. package/src/components/navigation/subcomponents/ProjectSelector.tsx +190 -160
  216. package/src/components/pages/NotFoundPage.tsx +67 -67
  217. package/src/components/pages/notifications/Notifications.tsx +160 -160
  218. package/src/components/ui/buttons/Button.tsx +57 -57
  219. package/src/components/ui/buttons/CancelButton.tsx +14 -14
  220. package/src/components/ui/buttons/CopyButton.tsx +54 -54
  221. package/src/components/ui/data-display/Accordion.tsx +81 -81
  222. package/src/components/ui/data-display/Badge.tsx +47 -47
  223. package/src/components/ui/data-display/Card.tsx +93 -93
  224. package/src/components/ui/data-display/CardBrandIcons.tsx +336 -336
  225. package/src/components/ui/data-display/CardItem.tsx +75 -75
  226. package/src/components/ui/data-display/Pagination.tsx +126 -126
  227. package/src/components/ui/data-display/PaymentInfoCard.tsx +186 -186
  228. package/src/components/ui/data-display/ScrollArea.tsx +59 -59
  229. package/src/components/ui/data-display/Separator.tsx +29 -29
  230. package/src/components/ui/data-display/Table.tsx +117 -117
  231. package/src/components/ui/data-display/Tabs.tsx +67 -67
  232. package/src/components/ui/feedback/CircularProgress.tsx +75 -75
  233. package/src/components/ui/feedback/DefaultCircularProgress.tsx +61 -61
  234. package/src/components/ui/feedback/LoadingOverlay.tsx +31 -31
  235. package/src/components/ui/feedback/Progress.tsx +40 -40
  236. package/src/components/ui/feedback/Skeleton.tsx +5 -5
  237. package/src/components/ui/feedback/Toast.tsx +101 -101
  238. package/src/components/ui/form/Calendar.tsx +228 -228
  239. package/src/components/ui/form/Checkbox.tsx +31 -31
  240. package/src/components/ui/form/ComboboxField.tsx +154 -154
  241. package/src/components/ui/form/DatePicker.tsx +97 -97
  242. package/src/components/ui/form/DateRangePicker.tsx +108 -108
  243. package/src/components/ui/form/FormField.tsx +131 -131
  244. package/src/components/ui/form/Input.tsx +20 -20
  245. package/src/components/ui/form/InputOtp.tsx +80 -80
  246. package/src/components/ui/form/PhoneInput.tsx +208 -208
  247. package/src/components/ui/form/RadioGroup.tsx +45 -45
  248. package/src/components/ui/form/Select.tsx +200 -200
  249. package/src/components/ui/form/Switch.tsx +32 -32
  250. package/src/components/ui/form/Textarea.tsx +19 -19
  251. package/src/components/ui/overlay/Command.tsx +185 -185
  252. package/src/components/ui/overlay/Dialog.tsx +151 -151
  253. package/src/components/ui/overlay/Popover.tsx +49 -49
  254. package/src/components/ui/overlay/Sheet.tsx +166 -166
  255. package/src/components/ui/overlay/Tooltip.tsx +62 -62
  256. package/src/components/widgets/notifications/NotificationCard.tsx +68 -68
  257. package/src/hooks/copy-to-clipboard.hook.tsx +67 -67
  258. package/src/hooks/useDebounce.ts +26 -26
  259. package/src/hooks/useDebounceState.ts +11 -11
  260. package/src/hooks/useDebouncedEffect.ts +69 -69
  261. package/src/index.ts +391 -391
  262. package/src/infra/utils/clsx.ts +6 -6
  263. package/src/infra/utils/date.ts +7 -7
  264. package/src/infra/utils/parser.ts +52 -52
  265. package/src/infra/utils/percentage.ts +42 -42
  266. package/src/middleware.ts +4 -4
  267. package/src/modules/accounts/actions/account-management.action.ts +107 -107
  268. package/src/modules/accounts/actions/find-current-account.action.ts +9 -9
  269. package/src/modules/accounts/actions/list-currencies.action.ts +8 -8
  270. package/src/modules/accounts/actions/list-timezones.action.ts +8 -8
  271. package/src/modules/accounts/hooks/current-account.hook.tsx +22 -22
  272. package/src/modules/accounts/hooks/useAccountManagement.ts +85 -85
  273. package/src/modules/accounts/hooks/useCurrencies.ts +15 -15
  274. package/src/modules/accounts/hooks/useTimezones.ts +15 -15
  275. package/src/modules/accounts/hooks/useViaCep.ts +25 -25
  276. package/src/modules/accounts/services/account.service.ts +239 -239
  277. package/src/modules/accounts/services/two-factor.service.ts +3 -2
  278. package/src/modules/accounts/types.ts +225 -225
  279. package/src/modules/auth/actions/validate-session.action.ts +56 -56
  280. package/src/modules/auth/actions/verify-two-factor.action.ts +2 -2
  281. package/src/modules/auth/hooks/login.hook.tsx +13 -13
  282. package/src/modules/auth/hooks/logout.hook.tsx +11 -11
  283. package/src/modules/auth/hooks/register.hook.tsx +11 -11
  284. package/src/modules/auth/hooks/useManagementPermissions.ts +45 -45
  285. package/src/modules/auth/hooks/useUserQuery.ts +2 -2
  286. package/src/modules/auth/services/auth.service.ts +3 -1
  287. package/src/modules/auth/types/management-permission.type.ts +7 -7
  288. package/src/modules/auth/utils/assert-management-permission.ts +46 -46
  289. package/src/modules/auth/utils/assert-management-subscription.ts +27 -27
  290. package/src/modules/auth/utils/build-wl-override.ts +43 -43
  291. package/src/modules/cards/actions/create-card.action.ts +9 -9
  292. package/src/modules/cards/actions/list-cards.action.ts +8 -8
  293. package/src/modules/cards/hooks/cards.hook.ts +14 -14
  294. package/src/modules/cards/hooks/create-card.hook.ts +18 -18
  295. package/src/modules/cards/services/cards.service.ts +51 -51
  296. package/src/modules/cards/types.ts +32 -32
  297. package/src/modules/ia-credits/actions/list-ia-credits.action.ts +8 -8
  298. package/src/modules/plans/actions/find-plan-by-id.action.ts +8 -8
  299. package/src/modules/plans/hooks/use-has-plan-addon.hook.ts +17 -17
  300. package/src/modules/plans/hooks/use-plan-by-id.hook.ts +13 -13
  301. package/src/modules/plans/services/plans.service.ts +36 -36
  302. package/src/modules/plans/types/plan.type.ts +21 -21
  303. package/src/modules/projects/actions/add-project-user.action.ts +9 -9
  304. package/src/modules/projects/actions/list-all-account-users.action.ts +9 -9
  305. package/src/modules/projects/actions/list-available-users.action.ts +9 -9
  306. package/src/modules/projects/actions/list-project-users.action.ts +9 -9
  307. package/src/modules/projects/actions/remove-project-user.action.ts +9 -9
  308. package/src/modules/projects/hooks/add-project-user.hook.ts +69 -69
  309. package/src/modules/projects/hooks/list-all-account-users.hook.ts +34 -34
  310. package/src/modules/projects/hooks/list-available-users.hook.ts +33 -33
  311. package/src/modules/projects/hooks/list-project-users.hook.ts +33 -33
  312. package/src/modules/projects/hooks/remove-project-user.hook.ts +69 -69
  313. package/src/modules/subscriptions/actions/calculate-subscription.action.ts +9 -9
  314. package/src/modules/subscriptions/actions/list-subscriptions.action.ts +9 -9
  315. package/src/modules/subscriptions/actions/update-subscription-plan.action.ts +14 -14
  316. package/src/modules/subscriptions/constants/query-keys.constants.ts +1 -1
  317. package/src/modules/subscriptions/hooks/calculate-subscription.hook.ts +13 -13
  318. package/src/modules/subscriptions/hooks/find-active-subscription.hook.ts +19 -19
  319. package/src/modules/subscriptions/hooks/list-subscriptions.hook.ts +16 -16
  320. package/src/modules/subscriptions/hooks/update-subscription-plan.hook.ts +25 -25
  321. package/src/modules/subscriptions/hooks/use-cancelled-subscription-guard.ts +39 -39
  322. package/src/modules/subscriptions/types/billing-period.type.ts +1 -1
  323. package/src/modules/subscriptions/types/calculate-subscription.type.ts +75 -75
  324. package/src/modules/subscriptions/utils/build-plan-extras.ts +56 -56
  325. package/src/modules/subscriptions/utils/has-subscription-expired.ts +8 -8
  326. package/src/modules/subscriptions/utils/periodicity.ts +52 -52
  327. package/src/modules/subscriptions/utils/resolve-plan-extras-prices.ts +23 -23
  328. package/src/modules/users/action/find-user-by-id.action.ts +8 -8
  329. package/src/modules/users/action/list-messages.action.ts +12 -12
  330. package/src/modules/users/action/mark-all-messages-as-read.action.ts +8 -8
  331. package/src/modules/users/action/mark-message-as-read.action.ts +8 -8
  332. package/src/modules/users/hooks/messages.hook.ts +60 -60
  333. package/src/modules/users/services/messages.service.ts +48 -48
  334. package/src/modules/whitelabel/actions/find-whitelabel.action.ts +23 -23
  335. package/src/modules/whitelabel/actions/revalidate-whitelabel.action.ts +19 -19
  336. package/src/modules/whitelabel/schema.ts +84 -84
  337. package/src/modules/whitelabel/utils/normalize-hostname.ts +26 -26
  338. package/src/providers/whitelabel.provider.tsx +54 -54
  339. package/src/store/useAccountModals.ts +55 -55
  340. package/src/store/useBuyCreditsModal.ts +21 -21
  341. package/src/store/useDesktopSidebarStore.ts +47 -47
  342. package/src/store/useMdSidebarStore.ts +34 -34
  343. package/src/store/useModalManager.ts +104 -104
  344. package/src/utils/constants/br-states.ts +29 -29
  345. package/src/utils/countries.ts +224 -224
  346. package/src/utils/safeServerAction.ts +21 -21
  347. package/src/utils/withAction.ts +13 -13
@@ -1,68 +1,68 @@
1
- import { IconClock } from '@tabler/icons-react';
2
- import { ReactNode } from 'react';
3
- import { cn } from '../../../infra/utils/clsx';
4
-
5
- type NotificationCardProps = {
6
- icon: ReactNode;
7
- iconBgColor?: string;
8
- title: string;
9
- description?: string;
10
- time: string;
11
- actions?: ReactNode;
12
- isUnread?: boolean;
13
- showBorder?: boolean;
14
- className?: string;
15
- gapPx: number;
16
- };
17
-
18
- export default function NotificationCard({
19
- icon,
20
- iconBgColor,
21
- title,
22
- description,
23
- time,
24
- actions,
25
- isUnread = false,
26
- showBorder = true,
27
- className,
28
- gapPx = 16
29
- }: NotificationCardProps) {
30
- return (
31
- <div
32
- className={cn(
33
- 'flex flex-col lg:flex-row items-start p-4 lg:p-5 gap-3 lg:gap-4 relative',
34
- showBorder && 'border-b border-gray-200',
35
- className
36
- )}
37
- >
38
- <div
39
- className={cn(
40
- 'flex items-center justify-center size-10 rounded-full shrink-0',
41
- iconBgColor
42
- )}
43
- >
44
- {icon}
45
- </div>
46
-
47
- <div className="flex flex-col flex-1" style={{ gap: `${gapPx}px` }}>
48
- <div className="flex flex-col gap-1">
49
- <span className="paragraph-small-semibold text-gray-950">{title}</span>
50
- {description && (
51
- <span className="paragraph-small-regular text-gray-600">{description}</span>
52
- )}
53
- </div>
54
-
55
- <div className="flex items-center gap-1.5">
56
- <IconClock size={14} className="text-gray-400" />
57
- <span className="paragraph-xsmall-medium text-gray-600">{time}</span>
58
- </div>
59
-
60
- {actions && <div className="flex items-center gap-2">{actions}</div>}
61
- </div>
62
-
63
- {isUnread && <div className="size-2 bg-cyan-400 rounded-full shrink-0 mt-1" />}
64
- </div>
65
- );
66
- }
67
-
68
- export type { NotificationCardProps };
1
+ import { IconClock } from '@tabler/icons-react';
2
+ import { ReactNode } from 'react';
3
+ import { cn } from '../../../infra/utils/clsx';
4
+
5
+ type NotificationCardProps = {
6
+ icon: ReactNode;
7
+ iconBgColor?: string;
8
+ title: string;
9
+ description?: string;
10
+ time: string;
11
+ actions?: ReactNode;
12
+ isUnread?: boolean;
13
+ showBorder?: boolean;
14
+ className?: string;
15
+ gapPx: number;
16
+ };
17
+
18
+ export default function NotificationCard({
19
+ icon,
20
+ iconBgColor,
21
+ title,
22
+ description,
23
+ time,
24
+ actions,
25
+ isUnread = false,
26
+ showBorder = true,
27
+ className,
28
+ gapPx = 16
29
+ }: NotificationCardProps) {
30
+ return (
31
+ <div
32
+ className={cn(
33
+ 'flex flex-col lg:flex-row items-start p-4 lg:p-5 gap-3 lg:gap-4 relative',
34
+ showBorder && 'border-b border-gray-200',
35
+ className
36
+ )}
37
+ >
38
+ <div
39
+ className={cn(
40
+ 'flex items-center justify-center size-10 rounded-full shrink-0',
41
+ iconBgColor
42
+ )}
43
+ >
44
+ {icon}
45
+ </div>
46
+
47
+ <div className="flex flex-col flex-1" style={{ gap: `${gapPx}px` }}>
48
+ <div className="flex flex-col gap-1">
49
+ <span className="paragraph-small-semibold text-gray-950">{title}</span>
50
+ {description && (
51
+ <span className="paragraph-small-regular text-gray-600">{description}</span>
52
+ )}
53
+ </div>
54
+
55
+ <div className="flex items-center gap-1.5">
56
+ <IconClock size={14} className="text-gray-400" />
57
+ <span className="paragraph-xsmall-medium text-gray-600">{time}</span>
58
+ </div>
59
+
60
+ {actions && <div className="flex items-center gap-2">{actions}</div>}
61
+ </div>
62
+
63
+ {isUnread && <div className="size-2 bg-cyan-400 rounded-full shrink-0 mt-1" />}
64
+ </div>
65
+ );
66
+ }
67
+
68
+ export type { NotificationCardProps };
@@ -1,67 +1,67 @@
1
- 'use client';
2
-
3
- import { useState, useCallback, useRef, useEffect } from "react";
4
-
5
- interface UseCopyToClipboardOptions {
6
- feedbackDuration?: number;
7
- onSuccess?: () => void;
8
- onError?: (error: Error) => void;
9
- }
10
-
11
- interface UseCopyToClipboardReturn {
12
- isCopied: boolean;
13
- copy: (text: string) => Promise<void>;
14
- }
15
-
16
- export default function useCopyToClipboard({
17
- feedbackDuration = 2000,
18
- onSuccess,
19
- onError,
20
- }: UseCopyToClipboardOptions = {}): UseCopyToClipboardReturn {
21
- const [isCopied, setIsCopied] = useState(false);
22
- const timeoutRef = useRef<NodeJS.Timeout | null>(null);
23
-
24
- useEffect(() => {
25
- return () => {
26
- if (timeoutRef.current) {
27
- clearTimeout(timeoutRef.current);
28
- }
29
- };
30
- }, []);
31
-
32
- const copy = useCallback(
33
- async (text: string) => {
34
- if (timeoutRef.current) {
35
- clearTimeout(timeoutRef.current);
36
- }
37
-
38
- try {
39
- if (navigator.clipboard?.writeText) {
40
- await navigator.clipboard.writeText(text);
41
- } else {
42
- const textarea = document.createElement("textarea");
43
- textarea.value = text;
44
- textarea.style.cssText = "position:fixed;top:-9999px;left:-9999px;opacity:0";
45
- document.body.appendChild(textarea);
46
- textarea.focus();
47
- textarea.select();
48
- const success = document.execCommand("copy");
49
- document.body.removeChild(textarea);
50
- if (!success) throw new Error("execCommand copy failed");
51
- }
52
-
53
- setIsCopied(true);
54
- onSuccess?.();
55
-
56
- timeoutRef.current = setTimeout(() => {
57
- setIsCopied(false);
58
- }, feedbackDuration);
59
- } catch (error) {
60
- onError?.(error instanceof Error ? error : new Error("Failed to copy"));
61
- }
62
- },
63
- [feedbackDuration, onSuccess, onError],
64
- );
65
-
66
- return { isCopied, copy };
67
- }
1
+ 'use client';
2
+
3
+ import { useState, useCallback, useRef, useEffect } from "react";
4
+
5
+ interface UseCopyToClipboardOptions {
6
+ feedbackDuration?: number;
7
+ onSuccess?: () => void;
8
+ onError?: (error: Error) => void;
9
+ }
10
+
11
+ interface UseCopyToClipboardReturn {
12
+ isCopied: boolean;
13
+ copy: (text: string) => Promise<void>;
14
+ }
15
+
16
+ export default function useCopyToClipboard({
17
+ feedbackDuration = 2000,
18
+ onSuccess,
19
+ onError,
20
+ }: UseCopyToClipboardOptions = {}): UseCopyToClipboardReturn {
21
+ const [isCopied, setIsCopied] = useState(false);
22
+ const timeoutRef = useRef<NodeJS.Timeout | null>(null);
23
+
24
+ useEffect(() => {
25
+ return () => {
26
+ if (timeoutRef.current) {
27
+ clearTimeout(timeoutRef.current);
28
+ }
29
+ };
30
+ }, []);
31
+
32
+ const copy = useCallback(
33
+ async (text: string) => {
34
+ if (timeoutRef.current) {
35
+ clearTimeout(timeoutRef.current);
36
+ }
37
+
38
+ try {
39
+ if (navigator.clipboard?.writeText) {
40
+ await navigator.clipboard.writeText(text);
41
+ } else {
42
+ const textarea = document.createElement("textarea");
43
+ textarea.value = text;
44
+ textarea.style.cssText = "position:fixed;top:-9999px;left:-9999px;opacity:0";
45
+ document.body.appendChild(textarea);
46
+ textarea.focus();
47
+ textarea.select();
48
+ const success = document.execCommand("copy");
49
+ document.body.removeChild(textarea);
50
+ if (!success) throw new Error("execCommand copy failed");
51
+ }
52
+
53
+ setIsCopied(true);
54
+ onSuccess?.();
55
+
56
+ timeoutRef.current = setTimeout(() => {
57
+ setIsCopied(false);
58
+ }, feedbackDuration);
59
+ } catch (error) {
60
+ onError?.(error instanceof Error ? error : new Error("Failed to copy"));
61
+ }
62
+ },
63
+ [feedbackDuration, onSuccess, onError],
64
+ );
65
+
66
+ return { isCopied, copy };
67
+ }
@@ -1,26 +1,26 @@
1
- 'use client';
2
-
3
- import { useEffect, useState } from 'react';
4
-
5
- /**
6
- * Hook para aplicar debounce em valores
7
- * @param value - Valor a ser debounced
8
- * @param delay - Delay em milissegundos (padrão: 400ms)
9
- * @returns Valor debounced
10
- */
11
- export function useDebounce<T>(value: T, delay: number = 400, onDebounce?: () => void): T {
12
- const [debouncedValue, setDebouncedValue] = useState<T>(value);
13
-
14
- useEffect(() => {
15
- const handler = setTimeout(() => {
16
- setDebouncedValue(value);
17
- onDebounce?.();
18
- }, delay);
19
-
20
- return () => {
21
- clearTimeout(handler);
22
- };
23
- }, [value, delay, onDebounce]);
24
-
25
- return debouncedValue;
26
- }
1
+ 'use client';
2
+
3
+ import { useEffect, useState } from 'react';
4
+
5
+ /**
6
+ * Hook para aplicar debounce em valores
7
+ * @param value - Valor a ser debounced
8
+ * @param delay - Delay em milissegundos (padrão: 400ms)
9
+ * @returns Valor debounced
10
+ */
11
+ export function useDebounce<T>(value: T, delay: number = 400, onDebounce?: () => void): T {
12
+ const [debouncedValue, setDebouncedValue] = useState<T>(value);
13
+
14
+ useEffect(() => {
15
+ const handler = setTimeout(() => {
16
+ setDebouncedValue(value);
17
+ onDebounce?.();
18
+ }, delay);
19
+
20
+ return () => {
21
+ clearTimeout(handler);
22
+ };
23
+ }, [value, delay, onDebounce]);
24
+
25
+ return debouncedValue;
26
+ }
@@ -1,11 +1,11 @@
1
- 'use client';
2
-
3
- import { useState } from 'react';
4
- import type React from 'react';
5
- import { useDebounce } from './useDebounce';
6
-
7
- export function useDebounceState<T>(initialValue: T, delay: number = 400): [T, React.Dispatch<React.SetStateAction<T>>] {
8
- const [rawValue, setRawValue] = useState<T>(initialValue);
9
- const debouncedValue = useDebounce(rawValue, delay);
10
- return [debouncedValue, setRawValue];
11
- }
1
+ 'use client';
2
+
3
+ import { useState } from 'react';
4
+ import type React from 'react';
5
+ import { useDebounce } from './useDebounce';
6
+
7
+ export function useDebounceState<T>(initialValue: T, delay: number = 400): [T, React.Dispatch<React.SetStateAction<T>>] {
8
+ const [rawValue, setRawValue] = useState<T>(initialValue);
9
+ const debouncedValue = useDebounce(rawValue, delay);
10
+ return [debouncedValue, setRawValue];
11
+ }
@@ -1,69 +1,69 @@
1
- 'use client';
2
-
3
- import { useEffect, useRef, useState, useCallback } from 'react';
4
-
5
- interface UseDebouncedEffectOptions {
6
- effect: () => void;
7
- debouncedDeps: React.DependencyList;
8
- immediateDeps?: React.DependencyList;
9
- delay?: number;
10
- }
11
-
12
- /**
13
- * Executes an effect with two trigger modes:
14
- * - `debouncedDeps`: triggers the effect after a delay (resets on each change)
15
- * - `immediateDeps`: triggers the effect immediately (also cancels any pending debounce)
16
- *
17
- * On mount, the effect fires once immediately via `immediateDeps`.
18
- * The effect callback always uses the latest closure values via a ref.
19
- *
20
- * @returns `{ isDebouncing }` — true while waiting for a debounced trigger to fire
21
- */
22
- export function useDebouncedEffect({
23
- effect,
24
- debouncedDeps,
25
- immediateDeps = [],
26
- delay = 500,
27
- }: UseDebouncedEffectOptions) {
28
- const [isDebouncing, setIsDebouncing] = useState(false);
29
- const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null);
30
- const effectRef = useRef(effect);
31
- effectRef.current = effect;
32
- const hasMounted = useRef(false);
33
-
34
- const clearTimer = useCallback(() => {
35
- if (timerRef.current) {
36
- clearTimeout(timerRef.current);
37
- timerRef.current = null;
38
- }
39
- }, []);
40
-
41
- useEffect(() => {
42
- clearTimer();
43
- setIsDebouncing(false);
44
- effectRef.current();
45
- // eslint-disable-next-line react-hooks/exhaustive-deps
46
- }, immediateDeps);
47
-
48
- useEffect(() => {
49
- if (!hasMounted.current) {
50
- hasMounted.current = true;
51
- return;
52
- }
53
-
54
- clearTimer();
55
- setIsDebouncing(true);
56
-
57
- timerRef.current = setTimeout(() => {
58
- setIsDebouncing(false);
59
- effectRef.current();
60
- }, delay);
61
-
62
- return clearTimer;
63
- // eslint-disable-next-line react-hooks/exhaustive-deps
64
- }, [...debouncedDeps, delay]);
65
-
66
- useEffect(() => clearTimer, [clearTimer]);
67
-
68
- return { isDebouncing };
69
- }
1
+ 'use client';
2
+
3
+ import { useEffect, useRef, useState, useCallback } from 'react';
4
+
5
+ interface UseDebouncedEffectOptions {
6
+ effect: () => void;
7
+ debouncedDeps: React.DependencyList;
8
+ immediateDeps?: React.DependencyList;
9
+ delay?: number;
10
+ }
11
+
12
+ /**
13
+ * Executes an effect with two trigger modes:
14
+ * - `debouncedDeps`: triggers the effect after a delay (resets on each change)
15
+ * - `immediateDeps`: triggers the effect immediately (also cancels any pending debounce)
16
+ *
17
+ * On mount, the effect fires once immediately via `immediateDeps`.
18
+ * The effect callback always uses the latest closure values via a ref.
19
+ *
20
+ * @returns `{ isDebouncing }` — true while waiting for a debounced trigger to fire
21
+ */
22
+ export function useDebouncedEffect({
23
+ effect,
24
+ debouncedDeps,
25
+ immediateDeps = [],
26
+ delay = 500,
27
+ }: UseDebouncedEffectOptions) {
28
+ const [isDebouncing, setIsDebouncing] = useState(false);
29
+ const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null);
30
+ const effectRef = useRef(effect);
31
+ effectRef.current = effect;
32
+ const hasMounted = useRef(false);
33
+
34
+ const clearTimer = useCallback(() => {
35
+ if (timerRef.current) {
36
+ clearTimeout(timerRef.current);
37
+ timerRef.current = null;
38
+ }
39
+ }, []);
40
+
41
+ useEffect(() => {
42
+ clearTimer();
43
+ setIsDebouncing(false);
44
+ effectRef.current();
45
+ // eslint-disable-next-line react-hooks/exhaustive-deps
46
+ }, immediateDeps);
47
+
48
+ useEffect(() => {
49
+ if (!hasMounted.current) {
50
+ hasMounted.current = true;
51
+ return;
52
+ }
53
+
54
+ clearTimer();
55
+ setIsDebouncing(true);
56
+
57
+ timerRef.current = setTimeout(() => {
58
+ setIsDebouncing(false);
59
+ effectRef.current();
60
+ }, delay);
61
+
62
+ return clearTimer;
63
+ // eslint-disable-next-line react-hooks/exhaustive-deps
64
+ }, [...debouncedDeps, delay]);
65
+
66
+ useEffect(() => clearTimer, [clearTimer]);
67
+
68
+ return { isDebouncing };
69
+ }