@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,49 +1,49 @@
1
- 'use client';
2
-
3
- "use client"
4
-
5
- import * as React from "react"
6
- import * as PopoverPrimitive from "@radix-ui/react-popover"
7
- import { cn } from "../../../infra/utils/clsx"
8
-
9
- function Popover({
10
- ...props
11
- }: React.ComponentProps<typeof PopoverPrimitive.Root>) {
12
- return <PopoverPrimitive.Root data-slot="popover" {...props} />
13
- }
14
-
15
- function PopoverTrigger({
16
- ...props
17
- }: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {
18
- return <PopoverPrimitive.Trigger data-slot="popover-trigger" {...props} />
19
- }
20
-
21
- function PopoverContent({
22
- className,
23
- align = "center",
24
- sideOffset = 4,
25
- ...props
26
- }: React.ComponentProps<typeof PopoverPrimitive.Content>) {
27
- return (
28
- <PopoverPrimitive.Portal>
29
- <PopoverPrimitive.Content
30
- data-slot="popover-content"
31
- align={align}
32
- sideOffset={sideOffset}
33
- className={cn(
34
- "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-[1001] w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",
35
- className
36
- )}
37
- {...props}
38
- />
39
- </PopoverPrimitive.Portal>
40
- )
41
- }
42
-
43
- function PopoverAnchor({
44
- ...props
45
- }: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {
46
- return <PopoverPrimitive.Anchor data-slot="popover-anchor" {...props} />
47
- }
48
-
49
- export { Popover, PopoverTrigger, PopoverContent, PopoverAnchor }
1
+ 'use client';
2
+
3
+ "use client"
4
+
5
+ import * as React from "react"
6
+ import * as PopoverPrimitive from "@radix-ui/react-popover"
7
+ import { cn } from "../../../infra/utils/clsx"
8
+
9
+ function Popover({
10
+ ...props
11
+ }: React.ComponentProps<typeof PopoverPrimitive.Root>) {
12
+ return <PopoverPrimitive.Root data-slot="popover" {...props} />
13
+ }
14
+
15
+ function PopoverTrigger({
16
+ ...props
17
+ }: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {
18
+ return <PopoverPrimitive.Trigger data-slot="popover-trigger" {...props} />
19
+ }
20
+
21
+ function PopoverContent({
22
+ className,
23
+ align = "center",
24
+ sideOffset = 4,
25
+ ...props
26
+ }: React.ComponentProps<typeof PopoverPrimitive.Content>) {
27
+ return (
28
+ <PopoverPrimitive.Portal>
29
+ <PopoverPrimitive.Content
30
+ data-slot="popover-content"
31
+ align={align}
32
+ sideOffset={sideOffset}
33
+ className={cn(
34
+ "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-[1001] w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",
35
+ className
36
+ )}
37
+ {...props}
38
+ />
39
+ </PopoverPrimitive.Portal>
40
+ )
41
+ }
42
+
43
+ function PopoverAnchor({
44
+ ...props
45
+ }: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {
46
+ return <PopoverPrimitive.Anchor data-slot="popover-anchor" {...props} />
47
+ }
48
+
49
+ export { Popover, PopoverTrigger, PopoverContent, PopoverAnchor }
@@ -1,166 +1,166 @@
1
- "use client";
2
-
3
- import * as React from "react";
4
- import * as SheetPrimitive from "@radix-ui/react-dialog";
5
- import { IconX } from '@tabler/icons-react';
6
- import { cn } from "../../../infra/utils/clsx";
7
- import { hideCrisp, showCrisp } from "../../embeds/CrispEmbed";
8
-
9
- function Sheet({ onOpenChange, ...props }: React.ComponentProps<typeof SheetPrimitive.Root>) {
10
- const handleOpenChange = React.useCallback((open: boolean) => {
11
- if (open) hideCrisp();
12
- else showCrisp();
13
- onOpenChange?.(open);
14
- }, [onOpenChange]);
15
-
16
- return <SheetPrimitive.Root data-slot="sheet" onOpenChange={handleOpenChange} {...props} />;
17
- }
18
-
19
- function SheetTrigger({
20
- ...props
21
- }: React.ComponentProps<typeof SheetPrimitive.Trigger>) {
22
- return <SheetPrimitive.Trigger data-slot="sheet-trigger" {...props} />;
23
- }
24
-
25
- function SheetClose({
26
- ...props
27
- }: React.ComponentProps<typeof SheetPrimitive.Close>) {
28
- return <SheetPrimitive.Close data-slot="sheet-close" {...props} />;
29
- }
30
-
31
- function SheetPortal({
32
- ...props
33
- }: React.ComponentProps<typeof SheetPrimitive.Portal>) {
34
- return <SheetPrimitive.Portal data-slot="sheet-portal" {...props} />;
35
- }
36
-
37
- function SheetOverlay({
38
- className,
39
- ...props
40
- }: React.ComponentProps<typeof SheetPrimitive.Overlay>) {
41
- return (
42
- <SheetPrimitive.Overlay
43
- data-slot="sheet-overlay"
44
- className={cn(
45
- "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-[1000] bg-black/50",
46
- className,
47
- )}
48
- {...props}
49
- />
50
- );
51
- }
52
-
53
- function SheetContent({
54
- className,
55
- children,
56
- side = "right",
57
- showCloseButton = true,
58
- noAnimation = false,
59
- ...props
60
- }: React.ComponentProps<typeof SheetPrimitive.Content> & {
61
- side?: "top" | "right" | "bottom" | "left";
62
- showCloseButton?: boolean;
63
- noAnimation?: boolean;
64
- }) {
65
- return (
66
- <SheetPortal>
67
- <SheetOverlay className={noAnimation ? "!animate-none" : undefined} />
68
- <SheetPrimitive.Content
69
- data-slot="sheet-content"
70
- className={cn(
71
- "bg-background fixed z-[1001] flex flex-col gap-4 shadow-lg",
72
- !noAnimation &&
73
- "data-[state=open]:animate-in data-[state=closed]:animate-out transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500",
74
- !noAnimation &&
75
- side === "right" &&
76
- "data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right",
77
- !noAnimation &&
78
- side === "left" &&
79
- "data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left",
80
- !noAnimation &&
81
- side === "top" &&
82
- "data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",
83
- !noAnimation &&
84
- side === "bottom" &&
85
- "data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",
86
- side === "right" &&
87
- "inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm",
88
- side === "left" &&
89
- "inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm",
90
- side === "top" && "inset-x-0 top-0 h-auto border-b",
91
- side === "bottom" && "inset-x-0 bottom-0 h-auto border-t",
92
- className,
93
- )}
94
- {...props}
95
- >
96
- {children}
97
- {showCloseButton && (
98
- <SheetPrimitive.Close
99
- data-slot="sheet-close"
100
- className="absolute top-3 right-3 hover:cursor-pointer flex size-8 items-center justify-center rounded-lg p-2 text-gray-500 transition-colors hover:bg-gray-100 hover:text-gray-950 focus:outline-none"
101
- >
102
- <IconX className="size-[18px]" />
103
- <span className="sr-only">Close</span>
104
- </SheetPrimitive.Close>
105
- )}
106
- </SheetPrimitive.Content>
107
- </SheetPortal>
108
- );
109
- }
110
-
111
- function SheetHeader({ className, ...props }: React.ComponentProps<"div">) {
112
- return (
113
- <div
114
- data-slot="sheet-header"
115
- className={cn("flex flex-col gap-1.5 p-4", className)}
116
- {...props}
117
- />
118
- );
119
- }
120
-
121
- function SheetFooter({ className, ...props }: React.ComponentProps<"div">) {
122
- return (
123
- <div
124
- data-slot="sheet-footer"
125
- className={cn("mt-auto flex flex-col gap-2 p-4", className)}
126
- {...props}
127
- />
128
- );
129
- }
130
-
131
- function SheetTitle({
132
- className,
133
- ...props
134
- }: React.ComponentProps<typeof SheetPrimitive.Title>) {
135
- return (
136
- <SheetPrimitive.Title
137
- data-slot="sheet-title"
138
- className={cn("text-foreground font-semibold", className)}
139
- {...props}
140
- />
141
- );
142
- }
143
-
144
- function SheetDescription({
145
- className,
146
- ...props
147
- }: React.ComponentProps<typeof SheetPrimitive.Description>) {
148
- return (
149
- <SheetPrimitive.Description
150
- data-slot="sheet-description"
151
- className={cn("text-muted-foreground text-sm", className)}
152
- {...props}
153
- />
154
- );
155
- }
156
-
157
- export {
158
- Sheet,
159
- SheetTrigger,
160
- SheetClose,
161
- SheetContent,
162
- SheetHeader,
163
- SheetFooter,
164
- SheetTitle,
165
- SheetDescription,
166
- };
1
+ "use client";
2
+
3
+ import * as React from "react";
4
+ import * as SheetPrimitive from "@radix-ui/react-dialog";
5
+ import { IconX } from '@tabler/icons-react';
6
+ import { cn } from "../../../infra/utils/clsx";
7
+ import { hideCrisp, showCrisp } from "../../embeds/CrispEmbed";
8
+
9
+ function Sheet({ onOpenChange, ...props }: React.ComponentProps<typeof SheetPrimitive.Root>) {
10
+ const handleOpenChange = React.useCallback((open: boolean) => {
11
+ if (open) hideCrisp();
12
+ else showCrisp();
13
+ onOpenChange?.(open);
14
+ }, [onOpenChange]);
15
+
16
+ return <SheetPrimitive.Root data-slot="sheet" onOpenChange={handleOpenChange} {...props} />;
17
+ }
18
+
19
+ function SheetTrigger({
20
+ ...props
21
+ }: React.ComponentProps<typeof SheetPrimitive.Trigger>) {
22
+ return <SheetPrimitive.Trigger data-slot="sheet-trigger" {...props} />;
23
+ }
24
+
25
+ function SheetClose({
26
+ ...props
27
+ }: React.ComponentProps<typeof SheetPrimitive.Close>) {
28
+ return <SheetPrimitive.Close data-slot="sheet-close" {...props} />;
29
+ }
30
+
31
+ function SheetPortal({
32
+ ...props
33
+ }: React.ComponentProps<typeof SheetPrimitive.Portal>) {
34
+ return <SheetPrimitive.Portal data-slot="sheet-portal" {...props} />;
35
+ }
36
+
37
+ function SheetOverlay({
38
+ className,
39
+ ...props
40
+ }: React.ComponentProps<typeof SheetPrimitive.Overlay>) {
41
+ return (
42
+ <SheetPrimitive.Overlay
43
+ data-slot="sheet-overlay"
44
+ className={cn(
45
+ "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-[1000] bg-black/50",
46
+ className,
47
+ )}
48
+ {...props}
49
+ />
50
+ );
51
+ }
52
+
53
+ function SheetContent({
54
+ className,
55
+ children,
56
+ side = "right",
57
+ showCloseButton = true,
58
+ noAnimation = false,
59
+ ...props
60
+ }: React.ComponentProps<typeof SheetPrimitive.Content> & {
61
+ side?: "top" | "right" | "bottom" | "left";
62
+ showCloseButton?: boolean;
63
+ noAnimation?: boolean;
64
+ }) {
65
+ return (
66
+ <SheetPortal>
67
+ <SheetOverlay className={noAnimation ? "!animate-none" : undefined} />
68
+ <SheetPrimitive.Content
69
+ data-slot="sheet-content"
70
+ className={cn(
71
+ "bg-background fixed z-[1001] flex flex-col gap-4 shadow-lg",
72
+ !noAnimation &&
73
+ "data-[state=open]:animate-in data-[state=closed]:animate-out transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500",
74
+ !noAnimation &&
75
+ side === "right" &&
76
+ "data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right",
77
+ !noAnimation &&
78
+ side === "left" &&
79
+ "data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left",
80
+ !noAnimation &&
81
+ side === "top" &&
82
+ "data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",
83
+ !noAnimation &&
84
+ side === "bottom" &&
85
+ "data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",
86
+ side === "right" &&
87
+ "inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm",
88
+ side === "left" &&
89
+ "inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm",
90
+ side === "top" && "inset-x-0 top-0 h-auto border-b",
91
+ side === "bottom" && "inset-x-0 bottom-0 h-auto border-t",
92
+ className,
93
+ )}
94
+ {...props}
95
+ >
96
+ {children}
97
+ {showCloseButton && (
98
+ <SheetPrimitive.Close
99
+ data-slot="sheet-close"
100
+ className="absolute top-3 right-3 hover:cursor-pointer flex size-8 items-center justify-center rounded-lg p-2 text-gray-500 transition-colors hover:bg-gray-100 hover:text-gray-950 focus:outline-none"
101
+ >
102
+ <IconX className="size-[18px]" />
103
+ <span className="sr-only">Close</span>
104
+ </SheetPrimitive.Close>
105
+ )}
106
+ </SheetPrimitive.Content>
107
+ </SheetPortal>
108
+ );
109
+ }
110
+
111
+ function SheetHeader({ className, ...props }: React.ComponentProps<"div">) {
112
+ return (
113
+ <div
114
+ data-slot="sheet-header"
115
+ className={cn("flex flex-col gap-1.5 p-4", className)}
116
+ {...props}
117
+ />
118
+ );
119
+ }
120
+
121
+ function SheetFooter({ className, ...props }: React.ComponentProps<"div">) {
122
+ return (
123
+ <div
124
+ data-slot="sheet-footer"
125
+ className={cn("mt-auto flex flex-col gap-2 p-4", className)}
126
+ {...props}
127
+ />
128
+ );
129
+ }
130
+
131
+ function SheetTitle({
132
+ className,
133
+ ...props
134
+ }: React.ComponentProps<typeof SheetPrimitive.Title>) {
135
+ return (
136
+ <SheetPrimitive.Title
137
+ data-slot="sheet-title"
138
+ className={cn("text-foreground font-semibold", className)}
139
+ {...props}
140
+ />
141
+ );
142
+ }
143
+
144
+ function SheetDescription({
145
+ className,
146
+ ...props
147
+ }: React.ComponentProps<typeof SheetPrimitive.Description>) {
148
+ return (
149
+ <SheetPrimitive.Description
150
+ data-slot="sheet-description"
151
+ className={cn("text-muted-foreground text-sm", className)}
152
+ {...props}
153
+ />
154
+ );
155
+ }
156
+
157
+ export {
158
+ Sheet,
159
+ SheetTrigger,
160
+ SheetClose,
161
+ SheetContent,
162
+ SheetHeader,
163
+ SheetFooter,
164
+ SheetTitle,
165
+ SheetDescription,
166
+ };
@@ -1,62 +1,62 @@
1
- 'use client';
2
-
3
- "use client"
4
-
5
- import * as React from "react"
6
- import * as TooltipPrimitive from "@radix-ui/react-tooltip"
7
- import { cn } from "../../../infra/utils/clsx"
8
-
9
- function TooltipProvider({
10
- delayDuration = 0,
11
- ...props
12
- }: React.ComponentProps<typeof TooltipPrimitive.Provider>) {
13
- return (
14
- <TooltipPrimitive.Provider
15
- data-slot="tooltip-provider"
16
- delayDuration={delayDuration}
17
- {...props}
18
- />
19
- )
20
- }
21
-
22
- function Tooltip({
23
- ...props
24
- }: React.ComponentProps<typeof TooltipPrimitive.Root>) {
25
- return (
26
- <TooltipProvider>
27
- <TooltipPrimitive.Root data-slot="tooltip" {...props} />
28
- </TooltipProvider>
29
- )
30
- }
31
-
32
- function TooltipTrigger({
33
- ...props
34
- }: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {
35
- return <TooltipPrimitive.Trigger data-slot="tooltip-trigger" {...props} />
36
- }
37
-
38
- function TooltipContent({
39
- className,
40
- sideOffset = 0,
41
- children,
42
- ...props
43
- }: React.ComponentProps<typeof TooltipPrimitive.Content>) {
44
- return (
45
- <TooltipPrimitive.Portal>
46
- <TooltipPrimitive.Content
47
- data-slot="tooltip-content"
48
- sideOffset={sideOffset}
49
- className={cn(
50
- "bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance",
51
- className
52
- )}
53
- {...props}
54
- >
55
- {children}
56
- <TooltipPrimitive.Arrow className="bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%-2px)] rotate-45 rounded-[2px]" />
57
- </TooltipPrimitive.Content>
58
- </TooltipPrimitive.Portal>
59
- )
60
- }
61
-
62
- export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }
1
+ 'use client';
2
+
3
+ "use client"
4
+
5
+ import * as React from "react"
6
+ import * as TooltipPrimitive from "@radix-ui/react-tooltip"
7
+ import { cn } from "../../../infra/utils/clsx"
8
+
9
+ function TooltipProvider({
10
+ delayDuration = 0,
11
+ ...props
12
+ }: React.ComponentProps<typeof TooltipPrimitive.Provider>) {
13
+ return (
14
+ <TooltipPrimitive.Provider
15
+ data-slot="tooltip-provider"
16
+ delayDuration={delayDuration}
17
+ {...props}
18
+ />
19
+ )
20
+ }
21
+
22
+ function Tooltip({
23
+ ...props
24
+ }: React.ComponentProps<typeof TooltipPrimitive.Root>) {
25
+ return (
26
+ <TooltipProvider>
27
+ <TooltipPrimitive.Root data-slot="tooltip" {...props} />
28
+ </TooltipProvider>
29
+ )
30
+ }
31
+
32
+ function TooltipTrigger({
33
+ ...props
34
+ }: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {
35
+ return <TooltipPrimitive.Trigger data-slot="tooltip-trigger" {...props} />
36
+ }
37
+
38
+ function TooltipContent({
39
+ className,
40
+ sideOffset = 0,
41
+ children,
42
+ ...props
43
+ }: React.ComponentProps<typeof TooltipPrimitive.Content>) {
44
+ return (
45
+ <TooltipPrimitive.Portal>
46
+ <TooltipPrimitive.Content
47
+ data-slot="tooltip-content"
48
+ sideOffset={sideOffset}
49
+ className={cn(
50
+ "bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance",
51
+ className
52
+ )}
53
+ {...props}
54
+ >
55
+ {children}
56
+ <TooltipPrimitive.Arrow className="bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%-2px)] rotate-45 rounded-[2px]" />
57
+ </TooltipPrimitive.Content>
58
+ </TooltipPrimitive.Portal>
59
+ )
60
+ }
61
+
62
+ export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }