@greatapps/common 1.1.428 → 1.1.429

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (477) hide show
  1. package/package.json +1 -1
  2. package/dist/components/account/AccountModals.mjs +0 -18
  3. package/dist/components/account/AccountModals.mjs.map +0 -1
  4. package/dist/components/account/ConfigurationsMyAccountModal.mjs +0 -129
  5. package/dist/components/account/ConfigurationsMyAccountModal.mjs.map +0 -1
  6. package/dist/components/account/ConfirmDeleteAccountModal.mjs +0 -45
  7. package/dist/components/account/ConfirmDeleteAccountModal.mjs.map +0 -1
  8. package/dist/components/account/ConfirmGlobalPreferencesModal.mjs +0 -45
  9. package/dist/components/account/ConfirmGlobalPreferencesModal.mjs.map +0 -1
  10. package/dist/components/account/DeleteAccountModal.mjs +0 -123
  11. package/dist/components/account/DeleteAccountModal.mjs.map +0 -1
  12. package/dist/components/account/DisableTwoFactorAuthModal.mjs +0 -67
  13. package/dist/components/account/DisableTwoFactorAuthModal.mjs.map +0 -1
  14. package/dist/components/account/IsntPossibleDeleteAccountModal.mjs +0 -42
  15. package/dist/components/account/IsntPossibleDeleteAccountModal.mjs.map +0 -1
  16. package/dist/components/account/TwoFactorAuthModal.mjs +0 -182
  17. package/dist/components/account/TwoFactorAuthModal.mjs.map +0 -1
  18. package/dist/components/account/constants.mjs +0 -29
  19. package/dist/components/account/constants.mjs.map +0 -1
  20. package/dist/components/account/hooks/useChangeEmailForm.mjs +0 -53
  21. package/dist/components/account/hooks/useChangeEmailForm.mjs.map +0 -1
  22. package/dist/components/account/hooks/useChangePasswordForm.mjs +0 -47
  23. package/dist/components/account/hooks/useChangePasswordForm.mjs.map +0 -1
  24. package/dist/components/account/hooks/useChangePhoneForm.mjs +0 -91
  25. package/dist/components/account/hooks/useChangePhoneForm.mjs.map +0 -1
  26. package/dist/components/account/hooks/useConfigurationsModal.mjs +0 -34
  27. package/dist/components/account/hooks/useConfigurationsModal.mjs.map +0 -1
  28. package/dist/components/account/hooks/useDisableTwoFactorAuthForm.mjs +0 -54
  29. package/dist/components/account/hooks/useDisableTwoFactorAuthForm.mjs.map +0 -1
  30. package/dist/components/account/hooks/useOtpVerification.mjs +0 -94
  31. package/dist/components/account/hooks/useOtpVerification.mjs.map +0 -1
  32. package/dist/components/account/hooks/useTwoFactorAuthForm.mjs +0 -80
  33. package/dist/components/account/hooks/useTwoFactorAuthForm.mjs.map +0 -1
  34. package/dist/components/account/sections/ChangeEmailModal.mjs +0 -181
  35. package/dist/components/account/sections/ChangeEmailModal.mjs.map +0 -1
  36. package/dist/components/account/sections/ChangePasswordSection.mjs +0 -64
  37. package/dist/components/account/sections/ChangePasswordSection.mjs.map +0 -1
  38. package/dist/components/account/sections/ChangePhoneModal.mjs +0 -192
  39. package/dist/components/account/sections/ChangePhoneModal.mjs.map +0 -1
  40. package/dist/components/account/sections/MyProfileSection.mjs +0 -317
  41. package/dist/components/account/sections/MyProfileSection.mjs.map +0 -1
  42. package/dist/components/account/sections/PreferencesSection.mjs +0 -227
  43. package/dist/components/account/sections/PreferencesSection.mjs.map +0 -1
  44. package/dist/components/account/sections/SecuritySection.mjs +0 -31
  45. package/dist/components/account/sections/SecuritySection.mjs.map +0 -1
  46. package/dist/components/embeds/CrispEmbed.mjs +0 -89
  47. package/dist/components/embeds/CrispEmbed.mjs.map +0 -1
  48. package/dist/components/embeds/FrillEmbed.mjs +0 -107
  49. package/dist/components/embeds/FrillEmbed.mjs.map +0 -1
  50. package/dist/components/handlers/SearchParamsHandler.mjs +0 -24
  51. package/dist/components/handlers/SearchParamsHandler.mjs.map +0 -1
  52. package/dist/components/layouts/AppMobileNavBar.mjs +0 -60
  53. package/dist/components/layouts/AppMobileNavBar.mjs.map +0 -1
  54. package/dist/components/layouts/AppNavBar.mjs +0 -37
  55. package/dist/components/layouts/AppNavBar.mjs.map +0 -1
  56. package/dist/components/layouts/CollapsibleSidebar.mjs +0 -65
  57. package/dist/components/layouts/CollapsibleSidebar.mjs.map +0 -1
  58. package/dist/components/layouts/MainLayout.mjs +0 -60
  59. package/dist/components/layouts/MainLayout.mjs.map +0 -1
  60. package/dist/components/layouts/MdSideBarNavigation.mjs +0 -54
  61. package/dist/components/layouts/MdSideBarNavigation.mjs.map +0 -1
  62. package/dist/components/layouts/NavBar.mjs +0 -152
  63. package/dist/components/layouts/NavBar.mjs.map +0 -1
  64. package/dist/components/layouts/NavBarItem.mjs +0 -23
  65. package/dist/components/layouts/NavBarItem.mjs.map +0 -1
  66. package/dist/components/layouts/NotificationsPopover.mjs +0 -97
  67. package/dist/components/layouts/NotificationsPopover.mjs.map +0 -1
  68. package/dist/components/layouts/ProfilePopover.mjs +0 -152
  69. package/dist/components/layouts/ProfilePopover.mjs.map +0 -1
  70. package/dist/components/layouts/SideBarNavigation.mjs +0 -63
  71. package/dist/components/layouts/SideBarNavigation.mjs.map +0 -1
  72. package/dist/components/layouts/UsersSelectorPopover.mjs +0 -210
  73. package/dist/components/layouts/UsersSelectorPopover.mjs.map +0 -1
  74. package/dist/components/layouts/WhitelabelCodes.mjs +0 -50
  75. package/dist/components/layouts/WhitelabelCodes.mjs.map +0 -1
  76. package/dist/components/modals/BuyCreditsModal.mjs +0 -281
  77. package/dist/components/modals/BuyCreditsModal.mjs.map +0 -1
  78. package/dist/components/modals/ModalManager.mjs +0 -19
  79. package/dist/components/modals/ModalManager.mjs.map +0 -1
  80. package/dist/components/modals/Modals.mjs +0 -20
  81. package/dist/components/modals/Modals.mjs.map +0 -1
  82. package/dist/components/modals/PaidPlanRequiredModal.mjs +0 -46
  83. package/dist/components/modals/PaidPlanRequiredModal.mjs.map +0 -1
  84. package/dist/components/modals/cards/AddCardModal.mjs +0 -215
  85. package/dist/components/modals/cards/AddCardModal.mjs.map +0 -1
  86. package/dist/components/modals/cards/CardFormFields.mjs +0 -268
  87. package/dist/components/modals/cards/CardFormFields.mjs.map +0 -1
  88. package/dist/components/navigation/AppNavigation.mjs +0 -33
  89. package/dist/components/navigation/AppNavigation.mjs.map +0 -1
  90. package/dist/components/navigation/AppNavigationContext.mjs +0 -13
  91. package/dist/components/navigation/AppNavigationContext.mjs.map +0 -1
  92. package/dist/components/navigation/CancelledSubscriptionBanner.mjs +0 -52
  93. package/dist/components/navigation/CancelledSubscriptionBanner.mjs.map +0 -1
  94. package/dist/components/navigation/NavItem.mjs +0 -41
  95. package/dist/components/navigation/NavItem.mjs.map +0 -1
  96. package/dist/components/navigation/NavItemsContext.mjs +0 -16
  97. package/dist/components/navigation/NavItemsContext.mjs.map +0 -1
  98. package/dist/components/navigation/ProjectSelectorPopover.mjs +0 -147
  99. package/dist/components/navigation/ProjectSelectorPopover.mjs.map +0 -1
  100. package/dist/components/navigation/shells/DesktopShell.mjs +0 -11
  101. package/dist/components/navigation/shells/DesktopShell.mjs.map +0 -1
  102. package/dist/components/navigation/shells/MdShell.mjs +0 -11
  103. package/dist/components/navigation/shells/MdShell.mjs.map +0 -1
  104. package/dist/components/navigation/shells/MobileShell.mjs +0 -27
  105. package/dist/components/navigation/shells/MobileShell.mjs.map +0 -1
  106. package/dist/components/navigation/shells/TabsMobileShell.mjs +0 -61
  107. package/dist/components/navigation/shells/TabsMobileShell.mjs.map +0 -1
  108. package/dist/components/navigation/subcomponents/BottomLinks.mjs +0 -35
  109. package/dist/components/navigation/subcomponents/BottomLinks.mjs.map +0 -1
  110. package/dist/components/navigation/subcomponents/CreditsCard.mjs +0 -33
  111. package/dist/components/navigation/subcomponents/CreditsCard.mjs.map +0 -1
  112. package/dist/components/navigation/subcomponents/NavItems.mjs +0 -25
  113. package/dist/components/navigation/subcomponents/NavItems.mjs.map +0 -1
  114. package/dist/components/navigation/subcomponents/PlanCard.mjs +0 -25
  115. package/dist/components/navigation/subcomponents/PlanCard.mjs.map +0 -1
  116. package/dist/components/navigation/subcomponents/ProjectSelector.mjs +0 -145
  117. package/dist/components/navigation/subcomponents/ProjectSelector.mjs.map +0 -1
  118. package/dist/components/navigation/types.mjs +0 -1
  119. package/dist/components/navigation/types.mjs.map +0 -1
  120. package/dist/components/pages/NotFoundPage.mjs +0 -47
  121. package/dist/components/pages/NotFoundPage.mjs.map +0 -1
  122. package/dist/components/pages/notifications/Notifications.mjs +0 -156
  123. package/dist/components/pages/notifications/Notifications.mjs.map +0 -1
  124. package/dist/components/ui/buttons/Button.mjs +0 -52
  125. package/dist/components/ui/buttons/Button.mjs.map +0 -1
  126. package/dist/components/ui/buttons/CancelButton.mjs +0 -17
  127. package/dist/components/ui/buttons/CancelButton.mjs.map +0 -1
  128. package/dist/components/ui/buttons/CopyButton.mjs +0 -42
  129. package/dist/components/ui/buttons/CopyButton.mjs.map +0 -1
  130. package/dist/components/ui/data-display/Accordion.mjs +0 -76
  131. package/dist/components/ui/data-display/Accordion.mjs.map +0 -1
  132. package/dist/components/ui/data-display/Badge.mjs +0 -42
  133. package/dist/components/ui/data-display/Badge.mjs.map +0 -1
  134. package/dist/components/ui/data-display/Card.mjs +0 -92
  135. package/dist/components/ui/data-display/Card.mjs.map +0 -1
  136. package/dist/components/ui/data-display/CardBrandIcons.mjs +0 -484
  137. package/dist/components/ui/data-display/CardBrandIcons.mjs.map +0 -1
  138. package/dist/components/ui/data-display/CardItem.mjs +0 -67
  139. package/dist/components/ui/data-display/CardItem.mjs.map +0 -1
  140. package/dist/components/ui/data-display/Pagination.mjs +0 -118
  141. package/dist/components/ui/data-display/Pagination.mjs.map +0 -1
  142. package/dist/components/ui/data-display/PaymentInfoCard.mjs +0 -161
  143. package/dist/components/ui/data-display/PaymentInfoCard.mjs.map +0 -1
  144. package/dist/components/ui/data-display/ScrollArea.mjs +0 -62
  145. package/dist/components/ui/data-display/ScrollArea.mjs.map +0 -1
  146. package/dist/components/ui/data-display/Separator.mjs +0 -28
  147. package/dist/components/ui/data-display/Separator.mjs.map +0 -1
  148. package/dist/components/ui/data-display/Table.mjs +0 -116
  149. package/dist/components/ui/data-display/Table.mjs.map +0 -1
  150. package/dist/components/ui/data-display/Tabs.mjs +0 -69
  151. package/dist/components/ui/data-display/Tabs.mjs.map +0 -1
  152. package/dist/components/ui/data-display/UserAvatar.mjs +0 -49
  153. package/dist/components/ui/data-display/UserAvatar.mjs.map +0 -1
  154. package/dist/components/ui/feedback/CircularProgress.mjs +0 -71
  155. package/dist/components/ui/feedback/CircularProgress.mjs.map +0 -1
  156. package/dist/components/ui/feedback/DefaultCircularProgress.mjs +0 -63
  157. package/dist/components/ui/feedback/DefaultCircularProgress.mjs.map +0 -1
  158. package/dist/components/ui/feedback/LoadingOverlay.mjs +0 -19
  159. package/dist/components/ui/feedback/LoadingOverlay.mjs.map +0 -1
  160. package/dist/components/ui/feedback/Progress.mjs +0 -37
  161. package/dist/components/ui/feedback/Progress.mjs.map +0 -1
  162. package/dist/components/ui/feedback/Skeleton.mjs +0 -9
  163. package/dist/components/ui/feedback/Skeleton.mjs.map +0 -1
  164. package/dist/components/ui/feedback/Toast.mjs +0 -77
  165. package/dist/components/ui/feedback/Toast.mjs.map +0 -1
  166. package/dist/components/ui/form/Calendar.mjs +0 -204
  167. package/dist/components/ui/form/Calendar.mjs.map +0 -1
  168. package/dist/components/ui/form/Checkbox.mjs +0 -33
  169. package/dist/components/ui/form/Checkbox.mjs.map +0 -1
  170. package/dist/components/ui/form/ComboboxField.mjs +0 -130
  171. package/dist/components/ui/form/ComboboxField.mjs.map +0 -1
  172. package/dist/components/ui/form/DatePicker.mjs +0 -82
  173. package/dist/components/ui/form/DatePicker.mjs.map +0 -1
  174. package/dist/components/ui/form/DateRangePicker.mjs +0 -92
  175. package/dist/components/ui/form/DateRangePicker.mjs.map +0 -1
  176. package/dist/components/ui/form/FormField.mjs +0 -103
  177. package/dist/components/ui/form/FormField.mjs.map +0 -1
  178. package/dist/components/ui/form/Input.mjs +0 -21
  179. package/dist/components/ui/form/Input.mjs.map +0 -1
  180. package/dist/components/ui/form/InputOtp.mjs +0 -70
  181. package/dist/components/ui/form/InputOtp.mjs.map +0 -1
  182. package/dist/components/ui/form/PhoneInput.mjs +0 -176
  183. package/dist/components/ui/form/PhoneInput.mjs.map +0 -1
  184. package/dist/components/ui/form/RadioGroup.mjs +0 -37
  185. package/dist/components/ui/form/RadioGroup.mjs.map +0 -1
  186. package/dist/components/ui/form/Select.mjs +0 -179
  187. package/dist/components/ui/form/Select.mjs.map +0 -1
  188. package/dist/components/ui/form/SelectField.mjs +0 -80
  189. package/dist/components/ui/form/SelectField.mjs.map +0 -1
  190. package/dist/components/ui/form/Switch.mjs +0 -33
  191. package/dist/components/ui/form/Switch.mjs.map +0 -1
  192. package/dist/components/ui/form/SwitchOptionFieldWithIcon.mjs +0 -40
  193. package/dist/components/ui/form/SwitchOptionFieldWithIcon.mjs.map +0 -1
  194. package/dist/components/ui/form/TextAreaField.mjs +0 -56
  195. package/dist/components/ui/form/TextAreaField.mjs.map +0 -1
  196. package/dist/components/ui/form/Textarea.mjs +0 -20
  197. package/dist/components/ui/form/Textarea.mjs.map +0 -1
  198. package/dist/components/ui/overlay/Command.mjs +0 -178
  199. package/dist/components/ui/overlay/Command.mjs.map +0 -1
  200. package/dist/components/ui/overlay/Dialog.mjs +0 -142
  201. package/dist/components/ui/overlay/Dialog.mjs.map +0 -1
  202. package/dist/components/ui/overlay/Popover.mjs +0 -46
  203. package/dist/components/ui/overlay/Popover.mjs.map +0 -1
  204. package/dist/components/ui/overlay/Sheet.mjs +0 -149
  205. package/dist/components/ui/overlay/Sheet.mjs.map +0 -1
  206. package/dist/components/ui/overlay/Tooltip.mjs +0 -57
  207. package/dist/components/ui/overlay/Tooltip.mjs.map +0 -1
  208. package/dist/components/widgets/notifications/NotificationCard.mjs +0 -54
  209. package/dist/components/widgets/notifications/NotificationCard.mjs.map +0 -1
  210. package/dist/enums/AccountSectionType.mjs +0 -11
  211. package/dist/enums/AccountSectionType.mjs.map +0 -1
  212. package/dist/hooks/copy-to-clipboard.hook.mjs +0 -52
  213. package/dist/hooks/copy-to-clipboard.hook.mjs.map +0 -1
  214. package/dist/hooks/useCountdownTimer.mjs +0 -29
  215. package/dist/hooks/useCountdownTimer.mjs.map +0 -1
  216. package/dist/hooks/useDebounce.mjs +0 -19
  217. package/dist/hooks/useDebounce.mjs.map +0 -1
  218. package/dist/hooks/useDebounceState.mjs +0 -12
  219. package/dist/hooks/useDebounceState.mjs.map +0 -1
  220. package/dist/hooks/useDebouncedEffect.mjs +0 -44
  221. package/dist/hooks/useDebouncedEffect.mjs.map +0 -1
  222. package/dist/hooks/useIsMobile.mjs +0 -18
  223. package/dist/hooks/useIsMobile.mjs.map +0 -1
  224. package/dist/hooks/usePasswordVisibility.mjs +0 -13
  225. package/dist/hooks/usePasswordVisibility.mjs.map +0 -1
  226. package/dist/index.mjs +0 -528
  227. package/dist/index.mjs.map +0 -1
  228. package/dist/infra/api/client.mjs +0 -162
  229. package/dist/infra/api/client.mjs.map +0 -1
  230. package/dist/infra/api/types.mjs +0 -31
  231. package/dist/infra/api/types.mjs.map +0 -1
  232. package/dist/infra/utils/client-info.mjs +0 -27
  233. package/dist/infra/utils/client-info.mjs.map +0 -1
  234. package/dist/infra/utils/clsx.mjs +0 -9
  235. package/dist/infra/utils/clsx.mjs.map +0 -1
  236. package/dist/infra/utils/date.mjs +0 -11
  237. package/dist/infra/utils/date.mjs.map +0 -1
  238. package/dist/infra/utils/params.mjs +0 -21
  239. package/dist/infra/utils/params.mjs.map +0 -1
  240. package/dist/infra/utils/parser.mjs +0 -24
  241. package/dist/infra/utils/parser.mjs.map +0 -1
  242. package/dist/infra/utils/percentage.mjs +0 -20
  243. package/dist/infra/utils/percentage.mjs.map +0 -1
  244. package/dist/middleware.mjs +0 -10
  245. package/dist/middleware.mjs.map +0 -1
  246. package/dist/middlewares/chain.mjs +0 -37
  247. package/dist/middlewares/chain.mjs.map +0 -1
  248. package/dist/middlewares/create-auth-middleware.mjs +0 -32
  249. package/dist/middlewares/create-auth-middleware.mjs.map +0 -1
  250. package/dist/middlewares/types.mjs +0 -11
  251. package/dist/middlewares/types.mjs.map +0 -1
  252. package/dist/modules/accounts/actions/account-management.action.mjs +0 -98
  253. package/dist/modules/accounts/actions/account-management.action.mjs.map +0 -1
  254. package/dist/modules/accounts/actions/find-current-account.action.mjs +0 -10
  255. package/dist/modules/accounts/actions/find-current-account.action.mjs.map +0 -1
  256. package/dist/modules/accounts/actions/list-currencies.action.mjs +0 -10
  257. package/dist/modules/accounts/actions/list-currencies.action.mjs.map +0 -1
  258. package/dist/modules/accounts/actions/list-timezones.action.mjs +0 -10
  259. package/dist/modules/accounts/actions/list-timezones.action.mjs.map +0 -1
  260. package/dist/modules/accounts/hooks/current-account.hook.mjs +0 -24
  261. package/dist/modules/accounts/hooks/current-account.hook.mjs.map +0 -1
  262. package/dist/modules/accounts/hooks/useAccountManagement.mjs +0 -71
  263. package/dist/modules/accounts/hooks/useAccountManagement.mjs.map +0 -1
  264. package/dist/modules/accounts/hooks/useCurrencies.mjs +0 -17
  265. package/dist/modules/accounts/hooks/useCurrencies.mjs.map +0 -1
  266. package/dist/modules/accounts/hooks/useTimezones.mjs +0 -17
  267. package/dist/modules/accounts/hooks/useTimezones.mjs.map +0 -1
  268. package/dist/modules/accounts/hooks/useViaCep.mjs +0 -19
  269. package/dist/modules/accounts/hooks/useViaCep.mjs.map +0 -1
  270. package/dist/modules/accounts/services/account.service.mjs +0 -182
  271. package/dist/modules/accounts/services/account.service.mjs.map +0 -1
  272. package/dist/modules/accounts/services/currency.service.mjs +0 -24
  273. package/dist/modules/accounts/services/currency.service.mjs.map +0 -1
  274. package/dist/modules/accounts/services/timezone.service.mjs +0 -65
  275. package/dist/modules/accounts/services/timezone.service.mjs.map +0 -1
  276. package/dist/modules/accounts/services/two-factor.service.mjs +0 -78
  277. package/dist/modules/accounts/services/two-factor.service.mjs.map +0 -1
  278. package/dist/modules/accounts/types.mjs +0 -1
  279. package/dist/modules/accounts/types.mjs.map +0 -1
  280. package/dist/modules/auth/actions/login.action.mjs +0 -14
  281. package/dist/modules/auth/actions/login.action.mjs.map +0 -1
  282. package/dist/modules/auth/actions/logout.action.mjs +0 -14
  283. package/dist/modules/auth/actions/logout.action.mjs.map +0 -1
  284. package/dist/modules/auth/actions/register.action.mjs +0 -14
  285. package/dist/modules/auth/actions/register.action.mjs.map +0 -1
  286. package/dist/modules/auth/actions/validate-session.action.mjs +0 -48
  287. package/dist/modules/auth/actions/validate-session.action.mjs.map +0 -1
  288. package/dist/modules/auth/actions/verify-two-factor.action.mjs +0 -17
  289. package/dist/modules/auth/actions/verify-two-factor.action.mjs.map +0 -1
  290. package/dist/modules/auth/hooks/login.hook.mjs +0 -13
  291. package/dist/modules/auth/hooks/login.hook.mjs.map +0 -1
  292. package/dist/modules/auth/hooks/logout.hook.mjs +0 -13
  293. package/dist/modules/auth/hooks/logout.hook.mjs.map +0 -1
  294. package/dist/modules/auth/hooks/register.hook.mjs +0 -13
  295. package/dist/modules/auth/hooks/register.hook.mjs.map +0 -1
  296. package/dist/modules/auth/hooks/useManagementPermissions.mjs +0 -41
  297. package/dist/modules/auth/hooks/useManagementPermissions.mjs.map +0 -1
  298. package/dist/modules/auth/hooks/useUserQuery.mjs +0 -63
  299. package/dist/modules/auth/hooks/useUserQuery.mjs.map +0 -1
  300. package/dist/modules/auth/schema.mjs +0 -1
  301. package/dist/modules/auth/schema.mjs.map +0 -1
  302. package/dist/modules/auth/services/auth.service.mjs +0 -342
  303. package/dist/modules/auth/services/auth.service.mjs.map +0 -1
  304. package/dist/modules/auth/types/management-permission.type.mjs +0 -1
  305. package/dist/modules/auth/types/management-permission.type.mjs.map +0 -1
  306. package/dist/modules/auth/utils/assert-management-permission.mjs +0 -42
  307. package/dist/modules/auth/utils/assert-management-permission.mjs.map +0 -1
  308. package/dist/modules/auth/utils/assert-management-subscription.mjs +0 -33
  309. package/dist/modules/auth/utils/assert-management-subscription.mjs.map +0 -1
  310. package/dist/modules/auth/utils/assert-paid-subscription.mjs +0 -40
  311. package/dist/modules/auth/utils/assert-paid-subscription.mjs.map +0 -1
  312. package/dist/modules/auth/utils/assert-subscription-addon.mjs +0 -35
  313. package/dist/modules/auth/utils/assert-subscription-addon.mjs.map +0 -1
  314. package/dist/modules/auth/utils/build-wl-override.mjs +0 -27
  315. package/dist/modules/auth/utils/build-wl-override.mjs.map +0 -1
  316. package/dist/modules/auth/utils/get-user-context.mjs +0 -25
  317. package/dist/modules/auth/utils/get-user-context.mjs.map +0 -1
  318. package/dist/modules/cards/actions/create-card.action.mjs +0 -10
  319. package/dist/modules/cards/actions/create-card.action.mjs.map +0 -1
  320. package/dist/modules/cards/actions/list-cards.action.mjs +0 -10
  321. package/dist/modules/cards/actions/list-cards.action.mjs.map +0 -1
  322. package/dist/modules/cards/hooks/cards.hook.mjs +0 -16
  323. package/dist/modules/cards/hooks/cards.hook.mjs.map +0 -1
  324. package/dist/modules/cards/hooks/create-card.hook.mjs +0 -18
  325. package/dist/modules/cards/hooks/create-card.hook.mjs.map +0 -1
  326. package/dist/modules/cards/services/cards.service.mjs +0 -44
  327. package/dist/modules/cards/services/cards.service.mjs.map +0 -1
  328. package/dist/modules/cards/types.mjs +0 -27
  329. package/dist/modules/cards/types.mjs.map +0 -1
  330. package/dist/modules/ia-credits/actions/list-ia-credits.action.mjs +0 -10
  331. package/dist/modules/ia-credits/actions/list-ia-credits.action.mjs.map +0 -1
  332. package/dist/modules/ia-credits/hooks/ia-credits.hook.mjs +0 -76
  333. package/dist/modules/ia-credits/hooks/ia-credits.hook.mjs.map +0 -1
  334. package/dist/modules/ia-credits/services/ia-credits.service.mjs +0 -31
  335. package/dist/modules/ia-credits/services/ia-credits.service.mjs.map +0 -1
  336. package/dist/modules/ia-credits/types.mjs +0 -25
  337. package/dist/modules/ia-credits/types.mjs.map +0 -1
  338. package/dist/modules/plans/actions/find-plan-by-id.action.mjs +0 -10
  339. package/dist/modules/plans/actions/find-plan-by-id.action.mjs.map +0 -1
  340. package/dist/modules/plans/hooks/use-has-plan-addon.hook.mjs +0 -13
  341. package/dist/modules/plans/hooks/use-has-plan-addon.hook.mjs.map +0 -1
  342. package/dist/modules/plans/hooks/use-plan-by-id.hook.mjs +0 -15
  343. package/dist/modules/plans/hooks/use-plan-by-id.hook.mjs.map +0 -1
  344. package/dist/modules/plans/services/plans.service.mjs +0 -34
  345. package/dist/modules/plans/services/plans.service.mjs.map +0 -1
  346. package/dist/modules/plans/types/plan.type.mjs +0 -20
  347. package/dist/modules/plans/types/plan.type.mjs.map +0 -1
  348. package/dist/modules/projects/actions/add-project-user.action.mjs +0 -10
  349. package/dist/modules/projects/actions/add-project-user.action.mjs.map +0 -1
  350. package/dist/modules/projects/actions/list-all-account-users.action.mjs +0 -10
  351. package/dist/modules/projects/actions/list-all-account-users.action.mjs.map +0 -1
  352. package/dist/modules/projects/actions/list-available-users.action.mjs +0 -10
  353. package/dist/modules/projects/actions/list-available-users.action.mjs.map +0 -1
  354. package/dist/modules/projects/actions/list-project-users.action.mjs +0 -10
  355. package/dist/modules/projects/actions/list-project-users.action.mjs.map +0 -1
  356. package/dist/modules/projects/actions/remove-project-user.action.mjs +0 -10
  357. package/dist/modules/projects/actions/remove-project-user.action.mjs.map +0 -1
  358. package/dist/modules/projects/hooks/add-project-user.hook.mjs +0 -61
  359. package/dist/modules/projects/hooks/add-project-user.hook.mjs.map +0 -1
  360. package/dist/modules/projects/hooks/list-all-account-users.hook.mjs +0 -35
  361. package/dist/modules/projects/hooks/list-all-account-users.hook.mjs.map +0 -1
  362. package/dist/modules/projects/hooks/list-available-users.hook.mjs +0 -34
  363. package/dist/modules/projects/hooks/list-available-users.hook.mjs.map +0 -1
  364. package/dist/modules/projects/hooks/list-project-users.hook.mjs +0 -34
  365. package/dist/modules/projects/hooks/list-project-users.hook.mjs.map +0 -1
  366. package/dist/modules/projects/hooks/remove-project-user.hook.mjs +0 -61
  367. package/dist/modules/projects/hooks/remove-project-user.hook.mjs.map +0 -1
  368. package/dist/modules/projects/services/project-users.service.mjs +0 -96
  369. package/dist/modules/projects/services/project-users.service.mjs.map +0 -1
  370. package/dist/modules/projects/types.mjs +0 -23
  371. package/dist/modules/projects/types.mjs.map +0 -1
  372. package/dist/modules/subscriptions/actions/calculate-subscription.action.mjs +0 -10
  373. package/dist/modules/subscriptions/actions/calculate-subscription.action.mjs.map +0 -1
  374. package/dist/modules/subscriptions/actions/list-subscriptions.action.mjs +0 -10
  375. package/dist/modules/subscriptions/actions/list-subscriptions.action.mjs.map +0 -1
  376. package/dist/modules/subscriptions/actions/update-subscription-plan.action.mjs +0 -12
  377. package/dist/modules/subscriptions/actions/update-subscription-plan.action.mjs.map +0 -1
  378. package/dist/modules/subscriptions/constants/addons.constants.mjs +0 -24
  379. package/dist/modules/subscriptions/constants/addons.constants.mjs.map +0 -1
  380. package/dist/modules/subscriptions/constants/query-keys.constants.mjs +0 -5
  381. package/dist/modules/subscriptions/constants/query-keys.constants.mjs.map +0 -1
  382. package/dist/modules/subscriptions/hooks/calculate-subscription.hook.mjs +0 -13
  383. package/dist/modules/subscriptions/hooks/calculate-subscription.hook.mjs.map +0 -1
  384. package/dist/modules/subscriptions/hooks/find-active-subscription.hook.mjs +0 -17
  385. package/dist/modules/subscriptions/hooks/find-active-subscription.hook.mjs.map +0 -1
  386. package/dist/modules/subscriptions/hooks/list-subscriptions.hook.mjs +0 -17
  387. package/dist/modules/subscriptions/hooks/list-subscriptions.hook.mjs.map +0 -1
  388. package/dist/modules/subscriptions/hooks/update-subscription-plan.hook.mjs +0 -22
  389. package/dist/modules/subscriptions/hooks/update-subscription-plan.hook.mjs.map +0 -1
  390. package/dist/modules/subscriptions/hooks/use-cancelled-subscription-guard.mjs +0 -37
  391. package/dist/modules/subscriptions/hooks/use-cancelled-subscription-guard.mjs.map +0 -1
  392. package/dist/modules/subscriptions/services/subscriptions.service.mjs +0 -75
  393. package/dist/modules/subscriptions/services/subscriptions.service.mjs.map +0 -1
  394. package/dist/modules/subscriptions/types/billing-period.type.mjs +0 -1
  395. package/dist/modules/subscriptions/types/billing-period.type.mjs.map +0 -1
  396. package/dist/modules/subscriptions/types/calculate-subscription.type.mjs +0 -72
  397. package/dist/modules/subscriptions/types/calculate-subscription.type.mjs.map +0 -1
  398. package/dist/modules/subscriptions/types/subscription.type.mjs +0 -57
  399. package/dist/modules/subscriptions/types/subscription.type.mjs.map +0 -1
  400. package/dist/modules/subscriptions/utils/build-plan-extras.mjs +0 -37
  401. package/dist/modules/subscriptions/utils/build-plan-extras.mjs.map +0 -1
  402. package/dist/modules/subscriptions/utils/has-subscription-expired.mjs +0 -10
  403. package/dist/modules/subscriptions/utils/has-subscription-expired.mjs.map +0 -1
  404. package/dist/modules/subscriptions/utils/periodicity.mjs +0 -48
  405. package/dist/modules/subscriptions/utils/periodicity.mjs.map +0 -1
  406. package/dist/modules/subscriptions/utils/resolve-plan-extras-prices.mjs +0 -14
  407. package/dist/modules/subscriptions/utils/resolve-plan-extras-prices.mjs.map +0 -1
  408. package/dist/modules/users/action/find-user-by-id.action.mjs +0 -10
  409. package/dist/modules/users/action/find-user-by-id.action.mjs.map +0 -1
  410. package/dist/modules/users/action/list-messages.action.mjs +0 -13
  411. package/dist/modules/users/action/list-messages.action.mjs.map +0 -1
  412. package/dist/modules/users/action/mark-all-messages-as-read.action.mjs +0 -10
  413. package/dist/modules/users/action/mark-all-messages-as-read.action.mjs.map +0 -1
  414. package/dist/modules/users/action/mark-message-as-read.action.mjs +0 -10
  415. package/dist/modules/users/action/mark-message-as-read.action.mjs.map +0 -1
  416. package/dist/modules/users/hooks/messages.hook.mjs +0 -57
  417. package/dist/modules/users/hooks/messages.hook.mjs.map +0 -1
  418. package/dist/modules/users/schema/messages.schema.mjs +0 -21
  419. package/dist/modules/users/schema/messages.schema.mjs.map +0 -1
  420. package/dist/modules/users/schema.mjs +0 -11
  421. package/dist/modules/users/schema.mjs.map +0 -1
  422. package/dist/modules/users/services/messages.service.mjs +0 -35
  423. package/dist/modules/users/services/messages.service.mjs.map +0 -1
  424. package/dist/modules/users/services/user.service.mjs +0 -52
  425. package/dist/modules/users/services/user.service.mjs.map +0 -1
  426. package/dist/modules/whitelabel/actions/find-whitelabel.action.mjs +0 -21
  427. package/dist/modules/whitelabel/actions/find-whitelabel.action.mjs.map +0 -1
  428. package/dist/modules/whitelabel/actions/revalidate-whitelabel.action.mjs +0 -19
  429. package/dist/modules/whitelabel/actions/revalidate-whitelabel.action.mjs.map +0 -1
  430. package/dist/modules/whitelabel/schema.mjs +0 -1
  431. package/dist/modules/whitelabel/schema.mjs.map +0 -1
  432. package/dist/modules/whitelabel/services/whitelabel.service.mjs +0 -146
  433. package/dist/modules/whitelabel/services/whitelabel.service.mjs.map +0 -1
  434. package/dist/modules/whitelabel/utils/normalize-hostname.mjs +0 -35
  435. package/dist/modules/whitelabel/utils/normalize-hostname.mjs.map +0 -1
  436. package/dist/providers/auth.provider.mjs +0 -114
  437. package/dist/providers/auth.provider.mjs.map +0 -1
  438. package/dist/providers/query.provider.mjs +0 -99
  439. package/dist/providers/query.provider.mjs.map +0 -1
  440. package/dist/providers/whitelabel.provider.mjs +0 -42
  441. package/dist/providers/whitelabel.provider.mjs.map +0 -1
  442. package/dist/server.mjs +0 -111
  443. package/dist/server.mjs.map +0 -1
  444. package/dist/store/useAccountModals.mjs +0 -18
  445. package/dist/store/useAccountModals.mjs.map +0 -1
  446. package/dist/store/useBuyCreditsModal.mjs +0 -16
  447. package/dist/store/useBuyCreditsModal.mjs.map +0 -1
  448. package/dist/store/useDesktopSidebarStore.mjs +0 -39
  449. package/dist/store/useDesktopSidebarStore.mjs.map +0 -1
  450. package/dist/store/useMdSidebarStore.mjs +0 -28
  451. package/dist/store/useMdSidebarStore.mjs.map +0 -1
  452. package/dist/store/useMobileNavbarSheet.mjs +0 -14
  453. package/dist/store/useMobileNavbarSheet.mjs.map +0 -1
  454. package/dist/store/useModalManager.mjs +0 -75
  455. package/dist/store/useModalManager.mjs.map +0 -1
  456. package/dist/store/usePaidPlanRequiredModal.mjs +0 -14
  457. package/dist/store/usePaidPlanRequiredModal.mjs.map +0 -1
  458. package/dist/utils/browser/clipboard.mjs +0 -36
  459. package/dist/utils/browser/clipboard.mjs.map +0 -1
  460. package/dist/utils/constants/br-states.mjs +0 -33
  461. package/dist/utils/constants/br-states.mjs.map +0 -1
  462. package/dist/utils/countries.mjs +0 -219
  463. package/dist/utils/countries.mjs.map +0 -1
  464. package/dist/utils/file/index.mjs +0 -9
  465. package/dist/utils/file/index.mjs.map +0 -1
  466. package/dist/utils/format/masks.mjs +0 -67
  467. package/dist/utils/format/masks.mjs.map +0 -1
  468. package/dist/utils/intl/locales.mjs +0 -12
  469. package/dist/utils/intl/locales.mjs.map +0 -1
  470. package/dist/utils/safeServerAction.mjs +0 -16
  471. package/dist/utils/safeServerAction.mjs.map +0 -1
  472. package/dist/utils/validators/account.mjs +0 -27
  473. package/dist/utils/validators/account.mjs.map +0 -1
  474. package/dist/utils/validators/common.mjs +0 -47
  475. package/dist/utils/validators/common.mjs.map +0 -1
  476. package/dist/utils/withAction.mjs +0 -13
  477. package/dist/utils/withAction.mjs.map +0 -1
@@ -1,152 +0,0 @@
1
- "use client";
2
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
- import { useState } from "react";
4
- import { useRouter } from "next/navigation";
5
- import * as PopoverPrimitive from "@radix-ui/react-popover";
6
- import { Popover } from "../ui/overlay/Popover";
7
- import { Button } from "../ui/buttons/Button";
8
- import { Progress } from "../ui/feedback/Progress";
9
- import { Separator } from "../ui/data-display/Separator";
10
- import { NavBarItem } from "./NavBarItem";
11
- import { UserAvatar } from "../ui/data-display/UserAvatar";
12
- import { LoadingOverlay } from "../ui/feedback/LoadingOverlay";
13
- import { useAuth } from "../../providers/auth.provider";
14
- import { useWhitelabelUrls } from "../../providers/whitelabel.provider";
15
- import { cn } from "../../infra/utils/clsx";
16
- import { useIaCredits } from "../../modules/ia-credits/hooks/ia-credits.hook";
17
- import { useBuyCreditsModal } from "../../store/useBuyCreditsModal";
18
- function ProfilePopover({
19
- side = "top",
20
- align = "start",
21
- contentClassName = "absolute bottom-2 left-[26px]",
22
- menuItems = []
23
- }) {
24
- const { user, logout } = useAuth();
25
- const [isLoggingOut, setIsLoggingOut] = useState(false);
26
- const [popoverOpen, setPopoverOpen] = useState(false);
27
- const { summary, subscription, isSubscriptionLoading, isCreditsLoading } = useIaCredits();
28
- const { openModal: openBuyCreditsModal } = useBuyCreditsModal();
29
- const { accountsUrl } = useWhitelabelUrls();
30
- const router = useRouter();
31
- const handleLogout = async () => {
32
- setPopoverOpen(false);
33
- setIsLoggingOut(true);
34
- await logout();
35
- };
36
- const hasSubscription = !isSubscriptionLoading && subscription !== null;
37
- const shouldShowCredits = hasSubscription && subscription.id_wl === 1;
38
- const creditsPercentage = shouldShowCredits && summary.totalCredits > 0 ? summary.usedCredits / summary.totalCredits * 100 : 0;
39
- return /* @__PURE__ */ jsxs(Fragment, { children: [
40
- /* @__PURE__ */ jsx(
41
- LoadingOverlay,
42
- {
43
- isLoading: isLoggingOut,
44
- message: "Saindo da sua conta..."
45
- }
46
- ),
47
- /* @__PURE__ */ jsxs(Popover, { open: popoverOpen, onOpenChange: setPopoverOpen, children: [
48
- /* @__PURE__ */ jsx(PopoverPrimitive.Trigger, { className: "cursor-pointer", children: user && /* @__PURE__ */ jsx(
49
- UserAvatar,
50
- {
51
- photo: user.photo,
52
- name: user.name,
53
- size: 40
54
- },
55
- user.id
56
- ) }),
57
- /* @__PURE__ */ jsx(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsxs(
58
- PopoverPrimitive.Content,
59
- {
60
- className: cn(
61
- "w-64.75 p-0 bg-white rounded-2xl shadow-md border border-gray-200 z-99",
62
- contentClassName
63
- ),
64
- side,
65
- align,
66
- sideOffset: 8,
67
- children: [
68
- /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-[32px_1fr_auto] items-center gap-3 p-3 w-full", children: [
69
- user && /* @__PURE__ */ jsx(
70
- UserAvatar,
71
- {
72
- photo: user.photo,
73
- name: user.name,
74
- size: 32
75
- },
76
- user.id
77
- ),
78
- /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-0.5 min-w-0", children: [
79
- /* @__PURE__ */ jsx("span", { className: "paragraph-small-semibold text-gray-950 truncate", children: user?.name || "" }),
80
- /* @__PURE__ */ jsx("span", { className: "paragraph-xsmall-medium text-gray-500 truncate", children: user?.email || "" })
81
- ] }),
82
- /* @__PURE__ */ jsx(
83
- Button,
84
- {
85
- variant: "secondary",
86
- className: "h-8! px-3! paragraph-xsmall-semibold",
87
- onClick: () => {
88
- const isSameOrigin = accountsUrl.startsWith(window.location.origin);
89
- if (isSameOrigin) {
90
- setPopoverOpen(false);
91
- router.push(`${window.location.pathname}?openProfile=true`);
92
- } else {
93
- window.location.href = `${accountsUrl}?openProfile=true`;
94
- }
95
- },
96
- children: "Editar"
97
- }
98
- )
99
- ] }),
100
- /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2 border-t border-gray-200 rounded-2xl p-1.5", children: [
101
- shouldShowCredits && /* @__PURE__ */ jsxs(
102
- "div",
103
- {
104
- className: cn(
105
- "flex flex-col bg-gray-950 rounded-lg gap-4 w-full p-4 transition-colors",
106
- "cursor-pointer hover:bg-gray-950/90"
107
- ),
108
- onClick: () => openBuyCreditsModal(),
109
- children: [
110
- /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-2", children: [
111
- /* @__PURE__ */ jsx("span", { className: "paragraph-xsmall-semibold text-white truncate", children: "Cr\xE9ditos usados" }),
112
- /* @__PURE__ */ jsxs("span", { className: "paragraph-xsmall-medium text-white/50", children: [
113
- summary.usedCredits.toLocaleString("pt-BR"),
114
- "/",
115
- summary.totalCredits.toLocaleString("pt-BR")
116
- ] })
117
- ] }),
118
- /* @__PURE__ */ jsx(
119
- Progress,
120
- {
121
- className: "bg-white/10",
122
- indicatorColor: "bg-white",
123
- value: creditsPercentage
124
- }
125
- )
126
- ]
127
- }
128
- ),
129
- /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
130
- /* @__PURE__ */ jsx("div", { className: "flex flex-col", children: menuItems.map((item, index) => /* @__PURE__ */ jsx(
131
- NavBarItem,
132
- {
133
- icon: item.icon,
134
- label: item.label,
135
- onClick: item.onClick
136
- },
137
- index
138
- )) }),
139
- /* @__PURE__ */ jsx(Separator, {}),
140
- /* @__PURE__ */ jsx(NavBarItem, { label: "Sair", onClick: handleLogout })
141
- ] })
142
- ] })
143
- ]
144
- }
145
- ) })
146
- ] })
147
- ] });
148
- }
149
- export {
150
- ProfilePopover
151
- };
152
- //# sourceMappingURL=ProfilePopover.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/layouts/ProfilePopover.tsx"],"sourcesContent":["\"use client\";\n\nimport { useState } from \"react\";\nimport { useRouter } from \"next/navigation\";\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\";\nimport { Popover } from \"../ui/overlay/Popover\";\nimport { Button } from \"../ui/buttons/Button\";\nimport { Progress } from \"../ui/feedback/Progress\";\nimport { Separator } from \"../ui/data-display/Separator\";\nimport { NavBarItem } from \"./NavBarItem\";\nimport { UserAvatar } from \"../ui/data-display/UserAvatar\";\nimport { LoadingOverlay } from \"../ui/feedback/LoadingOverlay\";\nimport { useAuth } from \"../../providers/auth.provider\";\nimport { useWhitelabelUrls } from \"../../providers/whitelabel.provider\";\nimport { cn } from \"../../infra/utils/clsx\";\nimport { useIaCredits } from \"../../modules/ia-credits/hooks/ia-credits.hook\";\nimport { useBuyCreditsModal } from \"../../store/useBuyCreditsModal\";\n\nexport interface ProfileMenuItem {\n icon?: React.ReactNode;\n label: string;\n onClick: () => void;\n}\n\nexport interface ProfilePopoverProps {\n side?: \"top\" | \"bottom\" | \"left\" | \"right\";\n align?: \"start\" | \"center\" | \"end\";\n contentClassName?: string;\n menuItems?: ProfileMenuItem[];\n}\n\nfunction ProfilePopover({\n side = \"top\",\n align = \"start\",\n contentClassName = \"absolute bottom-2 left-[26px]\",\n menuItems = [],\n}: ProfilePopoverProps) {\n const { user, logout } = useAuth();\n const [isLoggingOut, setIsLoggingOut] = useState(false);\n const [popoverOpen, setPopoverOpen] = useState(false);\n\n const { summary, subscription, isSubscriptionLoading, isCreditsLoading } =\n useIaCredits();\n const { openModal: openBuyCreditsModal } = useBuyCreditsModal();\n const { accountsUrl } = useWhitelabelUrls();\n const router = useRouter();\n\n const handleLogout = async () => {\n setPopoverOpen(false);\n setIsLoggingOut(true);\n await logout();\n };\n\n const hasSubscription = !isSubscriptionLoading && subscription !== null;\n\n const shouldShowCredits = hasSubscription && subscription.id_wl === 1;\n const creditsPercentage =\n shouldShowCredits && summary.totalCredits > 0\n ? (summary.usedCredits / summary.totalCredits) * 100\n : 0;\n\n return (\n <>\n <LoadingOverlay\n isLoading={isLoggingOut}\n message=\"Saindo da sua conta...\"\n />\n <Popover open={popoverOpen} onOpenChange={setPopoverOpen}>\n <PopoverPrimitive.Trigger className=\"cursor-pointer\">\n {user && (\n <UserAvatar\n key={user.id}\n photo={user.photo}\n name={user.name}\n size={40}\n />\n )}\n </PopoverPrimitive.Trigger>\n\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n className={cn(\n \"w-64.75 p-0 bg-white rounded-2xl shadow-md border border-gray-200 z-99\",\n contentClassName,\n )}\n side={side}\n align={align}\n sideOffset={8}\n >\n <div className=\"grid grid-cols-[32px_1fr_auto] items-center gap-3 p-3 w-full\">\n {user && (\n <UserAvatar\n key={user.id}\n photo={user.photo}\n name={user.name}\n size={32}\n />\n )}\n\n <div className=\"flex flex-col gap-0.5 min-w-0\">\n <span className=\"paragraph-small-semibold text-gray-950 truncate\">\n {user?.name || \"\"}\n </span>\n <span className=\"paragraph-xsmall-medium text-gray-500 truncate\">\n {user?.email || \"\"}\n </span>\n </div>\n\n <Button\n variant=\"secondary\"\n className=\"h-8! px-3! paragraph-xsmall-semibold\"\n onClick={() => {\n const isSameOrigin = accountsUrl.startsWith(window.location.origin);\n if (isSameOrigin) {\n setPopoverOpen(false);\n router.push(`${window.location.pathname}?openProfile=true`);\n } else {\n window.location.href = `${accountsUrl}?openProfile=true`;\n }\n }}\n >\n Editar\n </Button>\n </div>\n\n <div className=\"flex flex-col gap-2 border-t border-gray-200 rounded-2xl p-1.5\">\n {shouldShowCredits && (\n <div\n className={cn(\n \"flex flex-col bg-gray-950 rounded-lg gap-4 w-full p-4 transition-colors\",\n \"cursor-pointer hover:bg-gray-950/90\",\n )}\n onClick={() => openBuyCreditsModal()}\n >\n <div className=\"flex items-center justify-between gap-2\">\n <span className=\"paragraph-xsmall-semibold text-white truncate\">\n Créditos usados\n </span>\n <span className=\"paragraph-xsmall-medium text-white/50\">\n {summary.usedCredits.toLocaleString(\"pt-BR\")}/\n {summary.totalCredits.toLocaleString(\"pt-BR\")}\n </span>\n </div>\n <Progress\n className=\"bg-white/10\"\n indicatorColor=\"bg-white\"\n value={creditsPercentage}\n />\n </div>\n )}\n\n <div className=\"flex flex-col gap-2\">\n <div className=\"flex flex-col\">\n {menuItems.map((item, index) => (\n <NavBarItem\n key={index}\n icon={item.icon}\n label={item.label}\n onClick={item.onClick}\n />\n ))}\n </div>\n <Separator />\n <NavBarItem label=\"Sair\" onClick={handleLogout} />\n </div>\n </div>\n </PopoverPrimitive.Content>\n </PopoverPrimitive.Portal>\n </Popover>\n </>\n );\n}\n\nexport { ProfilePopover };\n"],"mappings":"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","names":[]}
@@ -1,63 +0,0 @@
1
- "use client";
2
- import { jsx, jsxs } from "react/jsx-runtime";
3
- import * as React from "react";
4
- import { IconChevronLeft } from "@tabler/icons-react";
5
- import { useDesktopSidebarStore } from "../../store/useDesktopSidebarStore";
6
- import { useMdSidebarStore } from "../../store/useMdSidebarStore";
7
- import { cn } from "../../infra/utils/clsx";
8
- import { Tooltip, TooltipContent, TooltipTrigger } from "../ui/overlay/Tooltip";
9
- function SideBarNavigation({
10
- className,
11
- children,
12
- ...props
13
- }) {
14
- const { isExpanded, collapse } = useDesktopSidebarStore();
15
- const collapseMd = useMdSidebarStore((s) => s.collapse);
16
- React.useEffect(() => {
17
- const mql = window.matchMedia("(min-width: 1351px)");
18
- const handler = (e) => {
19
- if (e.matches) collapseMd();
20
- };
21
- if (mql.matches) collapseMd();
22
- mql.addEventListener("change", handler);
23
- return () => mql.removeEventListener("change", handler);
24
- }, [collapseMd]);
25
- return /* @__PURE__ */ jsxs(
26
- "div",
27
- {
28
- "data-slot": "sidebar-navigation",
29
- className: "relative hidden lg:block h-screen overflow-visible z-30",
30
- children: [
31
- /* @__PURE__ */ jsxs(Tooltip, { children: [
32
- /* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
33
- "button",
34
- {
35
- onClick: collapse,
36
- className: cn(
37
- "absolute top-[59px] -right-4 size-8 flex items-center justify-center rounded-full border border-gray-200 bg-white hover:bg-gray-100 cursor-pointer transition-all duration-300 z-[999]",
38
- isExpanded ? "opacity-100 scale-100" : "opacity-0 scale-0 pointer-events-none"
39
- ),
40
- children: /* @__PURE__ */ jsx(IconChevronLeft, { size: 16, className: "text-gray-500" })
41
- }
42
- ) }),
43
- isExpanded && /* @__PURE__ */ jsx(TooltipContent, { side: "right", children: "Recolher menu" })
44
- ] }),
45
- /* @__PURE__ */ jsx(
46
- "div",
47
- {
48
- className: cn(
49
- "h-full transition-[width] duration-300 ease-in-out overflow-hidden",
50
- isExpanded ? "w-[273px] border-r border-gray-200" : "w-0"
51
- ),
52
- ...props,
53
- children: /* @__PURE__ */ jsx("div", { className: cn("flex flex-col h-full min-w-[273px] w-[273px] p-4", className), children })
54
- }
55
- )
56
- ]
57
- }
58
- );
59
- }
60
- export {
61
- SideBarNavigation
62
- };
63
- //# sourceMappingURL=SideBarNavigation.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/layouts/SideBarNavigation.tsx"],"sourcesContent":["'use client';\n\nimport * as React from \"react\"\nimport { IconChevronLeft } from '@tabler/icons-react'\nimport { useDesktopSidebarStore } from \"../../store/useDesktopSidebarStore\"\nimport { useMdSidebarStore } from \"../../store/useMdSidebarStore\"\nimport { cn } from \"../../infra/utils/clsx\"\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"../ui/overlay/Tooltip\"\n\nfunction SideBarNavigation({\n className,\n children,\n ...props\n}: React.ComponentProps<\"div\">) {\n const { isExpanded, collapse } = useDesktopSidebarStore()\n const collapseMd = useMdSidebarStore((s) => s.collapse)\n\n React.useEffect(() => {\n const mql = window.matchMedia('(min-width: 1351px)')\n const handler = (e: MediaQueryListEvent) => {\n if (e.matches) collapseMd()\n }\n if (mql.matches) collapseMd()\n mql.addEventListener('change', handler)\n return () => mql.removeEventListener('change', handler)\n }, [collapseMd])\n\n return (\n <div\n data-slot=\"sidebar-navigation\"\n className=\"relative hidden lg:block h-screen overflow-visible z-30\"\n >\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n onClick={collapse}\n className={cn(\n \"absolute top-[59px] -right-4 size-8 flex items-center justify-center rounded-full border border-gray-200 bg-white hover:bg-gray-100 cursor-pointer transition-all duration-300 z-[999]\",\n isExpanded ? \"opacity-100 scale-100\" : \"opacity-0 scale-0 pointer-events-none\",\n )}\n >\n <IconChevronLeft size={16} className=\"text-gray-500\" />\n </button>\n </TooltipTrigger>\n {isExpanded && <TooltipContent side=\"right\">Recolher menu</TooltipContent>}\n </Tooltip>\n <div\n className={cn(\n \"h-full transition-[width] duration-300 ease-in-out overflow-hidden\",\n isExpanded ? \"w-[273px] border-r border-gray-200\" : \"w-0\",\n )}\n {...props}\n >\n <div className={cn(\"flex flex-col h-full min-w-[273px] w-[273px] p-4\", className)}>\n {children}\n </div>\n </div>\n </div>\n )\n}\n\nexport { SideBarNavigation };\n"],"mappings":";AAgCY,SASY,KATZ;AA9BZ,YAAY,WAAW;AACvB,SAAS,uBAAuB;AAChC,SAAS,8BAA8B;AACvC,SAAS,yBAAyB;AAClC,SAAS,UAAU;AACnB,SAAS,SAAS,gBAAgB,sBAAsB;AAExD,SAAS,kBAAkB;AAAA,EACvB;AAAA,EACA;AAAA,EACA,GAAG;AACP,GAAgC;AAC5B,QAAM,EAAE,YAAY,SAAS,IAAI,uBAAuB;AACxD,QAAM,aAAa,kBAAkB,CAAC,MAAM,EAAE,QAAQ;AAEtD,QAAM,UAAU,MAAM;AAClB,UAAM,MAAM,OAAO,WAAW,qBAAqB;AACnD,UAAM,UAAU,CAAC,MAA2B;AACxC,UAAI,EAAE,QAAS,YAAW;AAAA,IAC9B;AACA,QAAI,IAAI,QAAS,YAAW;AAC5B,QAAI,iBAAiB,UAAU,OAAO;AACtC,WAAO,MAAM,IAAI,oBAAoB,UAAU,OAAO;AAAA,EAC1D,GAAG,CAAC,UAAU,CAAC;AAEf,SACI;AAAA,IAAC;AAAA;AAAA,MACG,aAAU;AAAA,MACV,WAAU;AAAA,MAEV;AAAA,6BAAC,WACG;AAAA,8BAAC,kBAAe,SAAO,MACnB;AAAA,YAAC;AAAA;AAAA,cACG,SAAS;AAAA,cACT,WAAW;AAAA,gBACP;AAAA,gBACA,aAAa,0BAA0B;AAAA,cAC3C;AAAA,cAEA,8BAAC,mBAAgB,MAAM,IAAI,WAAU,iBAAgB;AAAA;AAAA,UACzD,GACJ;AAAA,UACC,cAAc,oBAAC,kBAAe,MAAK,SAAQ,2BAAa;AAAA,WAC7D;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACG,WAAW;AAAA,cACP;AAAA,cACA,aAAa,uCAAuC;AAAA,YACxD;AAAA,YACC,GAAG;AAAA,YAEJ,8BAAC,SAAI,WAAW,GAAG,oDAAoD,SAAS,GAC3E,UACL;AAAA;AAAA,QACJ;AAAA;AAAA;AAAA,EACJ;AAER;","names":[]}
@@ -1,210 +0,0 @@
1
- "use client";
2
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
- import { useEffect, useState } from "react";
4
- import { IconPlus, IconUser, IconUsers } from "@tabler/icons-react";
5
- import { UserAvatar } from "../ui/data-display/UserAvatar";
6
- import { Popover, PopoverContent, PopoverTrigger } from "../ui/overlay/Popover";
7
- import { Button } from "../ui/buttons/Button";
8
- import {
9
- Command,
10
- CommandEmpty,
11
- CommandInput,
12
- CommandItem,
13
- CommandList
14
- } from "../ui/overlay/Command";
15
- import { Checkbox } from "../ui/form/Checkbox";
16
- import { Tooltip, TooltipContent, TooltipTrigger } from "../ui/overlay/Tooltip";
17
- import { cn } from "../../infra/utils/clsx";
18
- import { useListProjectUsers } from "../../modules/projects/hooks/list-project-users.hook";
19
- import { useListAllAccountUsers } from "../../modules/projects/hooks/list-all-account-users.hook";
20
- import { useAddProjectUser } from "../../modules/projects/hooks/add-project-user.hook";
21
- import { useRemoveProjectUser } from "../../modules/projects/hooks/remove-project-user.hook";
22
- import { useWhitelabelUrls } from "../../providers/whitelabel.provider";
23
- function UserItemSkeleton() {
24
- return /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between px-2 py-1.5 gap-2", children: [
25
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 flex-1", children: [
26
- /* @__PURE__ */ jsx("div", { className: "skeleton size-8 rounded-full shrink-0" }),
27
- /* @__PURE__ */ jsx("div", { className: "skeleton h-3.5 w-28 rounded" })
28
- ] }),
29
- /* @__PURE__ */ jsx("div", { className: "skeleton size-4 rounded shrink-0" })
30
- ] });
31
- }
32
- function UsersSelectorPopover({
33
- projectId,
34
- side,
35
- align,
36
- contentClassName
37
- }) {
38
- const { accountsUrl } = useWhitelabelUrls();
39
- const [open, setOpen] = useState(false);
40
- const [hoveredId, setHoveredId] = useState(null);
41
- const [searchInput, setSearchInput] = useState("");
42
- const [search, setSearch] = useState("");
43
- const id = projectId ?? 0;
44
- useEffect(() => {
45
- const timer = setTimeout(() => setSearch(searchInput), 300);
46
- return () => clearTimeout(timer);
47
- }, [searchInput]);
48
- const accountUsers = useListAllAccountUsers(search, id || void 0);
49
- const projectUsers = useListProjectUsers(id, "");
50
- const addMutation = useAddProjectUser(id);
51
- const removeMutation = useRemoveProjectUser(id);
52
- const allUsers = accountUsers.data?.pages.flatMap((p) => p.data) ?? [];
53
- const isLoading = accountUsers.isLoading;
54
- const isFetchingMore = accountUsers.isFetchingNextPage;
55
- const totalInProject = projectUsers.data?.pages[0]?.total ?? 0;
56
- const toggleUser = (userId, inProject, removable) => {
57
- if (inProject) {
58
- if (!removable) return;
59
- removeMutation.mutate(userId);
60
- } else {
61
- addMutation.mutate(userId);
62
- }
63
- };
64
- const handleScroll = (e) => {
65
- const target = e.currentTarget;
66
- const nearBottom = target.scrollTop + target.clientHeight >= target.scrollHeight - 50;
67
- if (!nearBottom) return;
68
- if (accountUsers.hasNextPage && !accountUsers.isFetchingNextPage) {
69
- accountUsers.fetchNextPage();
70
- }
71
- };
72
- return /* @__PURE__ */ jsxs(Popover, { open, onOpenChange: setOpen, children: [
73
- /* @__PURE__ */ jsx(PopoverTrigger, { className: "cursor-pointer", children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-gray-950 px-3 py-2 border border-gray-200 rounded-full hover:border-gray-950", children: [
74
- /* @__PURE__ */ jsx("span", { className: "paragraph-small-semibold", children: totalInProject }),
75
- /* @__PURE__ */ jsx(IconUser, { size: 16 })
76
- ] }) }),
77
- /* @__PURE__ */ jsx(
78
- PopoverContent,
79
- {
80
- className: cn(
81
- "absolute right-0 md:right-[-88px] w-[296px] p-0 bg-white rounded-2xl shadow-md border border-gray-200",
82
- contentClassName
83
- ),
84
- side,
85
- align,
86
- sideOffset: 8,
87
- children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col p-3 gap-2", children: [
88
- /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
89
- /* @__PURE__ */ jsx("span", { className: "paragraph-small-semibold", children: "Usu\xE1rios" }),
90
- /* @__PURE__ */ jsx("div", { className: "flex items-center gap-1.5", children: /* @__PURE__ */ jsxs(
91
- Button,
92
- {
93
- variant: "secondary",
94
- className: "h-8 paragraph-small-semibold text-gray-950",
95
- onClick: () => {
96
- window.location.href = `${accountsUrl}/my-teams?createNew=true`;
97
- },
98
- children: [
99
- /* @__PURE__ */ jsx(IconPlus, { size: 16 }),
100
- "Adicionar"
101
- ]
102
- }
103
- ) })
104
- ] }),
105
- /* @__PURE__ */ jsxs(Command, { shouldFilter: false, className: "gap-2", value: "", children: [
106
- /* @__PURE__ */ jsx(
107
- CommandInput,
108
- {
109
- placeholder: "Busque aqui",
110
- value: searchInput,
111
- onValueChange: setSearchInput
112
- }
113
- ),
114
- /* @__PURE__ */ jsx(
115
- CommandList,
116
- {
117
- className: "custom-scrollbar paragraph-small-medium text-gray-600 h-[162px]",
118
- onScroll: handleScroll,
119
- children: isLoading ? /* @__PURE__ */ jsxs(Fragment, { children: [
120
- /* @__PURE__ */ jsx(UserItemSkeleton, {}),
121
- /* @__PURE__ */ jsx(UserItemSkeleton, {}),
122
- /* @__PURE__ */ jsx(UserItemSkeleton, {})
123
- ] }) : allUsers.length === 0 ? /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center justify-center gap-2 h-full text-gray-400 py-4", children: [
124
- /* @__PURE__ */ jsx(IconUsers, { size: 28, className: "text-gray-300" }),
125
- /* @__PURE__ */ jsx("span", { className: "paragraph-small-medium text-center text-gray-500", children: "Nenhum usu\xE1rio encontrado." })
126
- ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
127
- /* @__PURE__ */ jsx(CommandEmpty, { children: "Nenhum resultado encontrado." }),
128
- allUsers.map((user) => {
129
- const inProject = user.in_project ?? false;
130
- const removable = inProject && user.profile !== "owner" && user.profile !== "admin";
131
- const interactive = !inProject || removable;
132
- return /* @__PURE__ */ jsx(
133
- CommandItem,
134
- {
135
- value: user.name || String(user.id),
136
- autoFocus: false,
137
- onPointerEnter: () => setHoveredId(user.id),
138
- onPointerLeave: () => setHoveredId(null),
139
- onFocus: () => setHoveredId(user.id),
140
- onBlur: () => setHoveredId(null),
141
- onSelect: () => toggleUser(user.id, inProject, removable),
142
- className: interactive ? "cursor-pointer" : "cursor-default",
143
- children: /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between w-full", children: [
144
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 min-w-0", children: [
145
- /* @__PURE__ */ jsx(
146
- UserAvatar,
147
- {
148
- photo: user.photo,
149
- name: user.name ?? void 0,
150
- size: 32
151
- }
152
- ),
153
- /* @__PURE__ */ jsx("span", { className: "truncate", children: user.name })
154
- ] }),
155
- /* @__PURE__ */ jsxs(Tooltip, { open: interactive && hoveredId === user.id, children: [
156
- /* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
157
- "div",
158
- {
159
- onClick: (e) => e.stopPropagation(),
160
- onPointerDown: (e) => e.stopPropagation(),
161
- children: /* @__PURE__ */ jsx(
162
- Checkbox,
163
- {
164
- checked: inProject,
165
- disabled: !interactive,
166
- onCheckedChange: () => toggleUser(user.id, inProject, removable),
167
- className: cn(
168
- interactive && hoveredId === user.id ? "border-gray-950" : "",
169
- "disabled:opacity-10"
170
- )
171
- }
172
- )
173
- }
174
- ) }),
175
- /* @__PURE__ */ jsx(TooltipContent, { className: "z-[1002]", children: inProject ? "Remover do projeto" : "Adicionar ao projeto" })
176
- ] })
177
- ] })
178
- },
179
- user.id
180
- );
181
- }),
182
- isFetchingMore && /* @__PURE__ */ jsxs(Fragment, { children: [
183
- /* @__PURE__ */ jsx(UserItemSkeleton, {}),
184
- /* @__PURE__ */ jsx(UserItemSkeleton, {})
185
- ] })
186
- ] })
187
- }
188
- )
189
- ] }),
190
- /* @__PURE__ */ jsx("div", { className: "border-t border-gray-200" }),
191
- /* @__PURE__ */ jsx(
192
- Button,
193
- {
194
- variant: "ghost",
195
- className: "h-10! paragraph-small-medium text-gray-600 hover:text-gray-950 hover:bg-zinc-50 w-full justify-center",
196
- onClick: () => {
197
- window.location.href = `${accountsUrl}/my-teams`;
198
- },
199
- children: "Gerenciar equipe"
200
- }
201
- )
202
- ] })
203
- }
204
- )
205
- ] });
206
- }
207
- export {
208
- UsersSelectorPopover
209
- };
210
- //# sourceMappingURL=UsersSelectorPopover.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/layouts/UsersSelectorPopover.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useState } from \"react\";\nimport { IconPlus, IconUser, IconUsers } from '@tabler/icons-react';\nimport { UserAvatar } from \"../ui/data-display/UserAvatar\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"../ui/overlay/Popover\";\nimport { Button } from \"../ui/buttons/Button\";\nimport {\n Command,\n CommandEmpty,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"../ui/overlay/Command\";\nimport { Checkbox } from \"../ui/form/Checkbox\";\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"../ui/overlay/Tooltip\";\nimport { cn } from \"../../infra/utils/clsx\";\nimport { useListProjectUsers } from \"../../modules/projects/hooks/list-project-users.hook\";\nimport { useListAllAccountUsers } from \"../../modules/projects/hooks/list-all-account-users.hook\";\nimport { useAddProjectUser } from \"../../modules/projects/hooks/add-project-user.hook\";\nimport { useRemoveProjectUser } from \"../../modules/projects/hooks/remove-project-user.hook\";\nimport { useWhitelabelUrls } from \"../../providers/whitelabel.provider\";\n\nexport interface UsersSelectorPopoverProps {\n projectId?: number;\n side?: \"top\" | \"bottom\" | \"left\" | \"right\";\n align?: \"start\" | \"center\" | \"end\";\n contentClassName?: string;\n}\n\nfunction UserItemSkeleton() {\n return (\n <div className=\"flex items-center justify-between px-2 py-1.5 gap-2\">\n <div className=\"flex items-center gap-2 flex-1\">\n <div className=\"skeleton size-8 rounded-full shrink-0\" />\n <div className=\"skeleton h-3.5 w-28 rounded\" />\n </div>\n <div className=\"skeleton size-4 rounded shrink-0\" />\n </div>\n );\n}\n\nexport function UsersSelectorPopover({\n projectId,\n side,\n align,\n contentClassName,\n}: UsersSelectorPopoverProps) {\n const { accountsUrl } = useWhitelabelUrls();\n const [open, setOpen] = useState(false);\n const [hoveredId, setHoveredId] = useState<number | null>(null);\n const [searchInput, setSearchInput] = useState(\"\");\n const [search, setSearch] = useState(\"\");\n\n const id = projectId ?? 0;\n\n useEffect(() => {\n const timer = setTimeout(() => setSearch(searchInput), 300);\n return () => clearTimeout(timer);\n }, [searchInput]);\n\n const accountUsers = useListAllAccountUsers(search, id || undefined);\n const projectUsers = useListProjectUsers(id, \"\");\n const addMutation = useAddProjectUser(id);\n const removeMutation = useRemoveProjectUser(id);\n\n const allUsers = accountUsers.data?.pages.flatMap((p) => p.data) ?? [];\n const isLoading = accountUsers.isLoading;\n const isFetchingMore = accountUsers.isFetchingNextPage;\n const totalInProject = projectUsers.data?.pages[0]?.total ?? 0;\n\n const toggleUser = (userId: number, inProject: boolean, removable: boolean) => {\n if (inProject) {\n if (!removable) return;\n removeMutation.mutate(userId);\n } else {\n addMutation.mutate(userId);\n }\n };\n\n const handleScroll = (e: React.UIEvent<HTMLDivElement>) => {\n const target = e.currentTarget;\n const nearBottom =\n target.scrollTop + target.clientHeight >= target.scrollHeight - 50;\n if (!nearBottom) return;\n if (accountUsers.hasNextPage && !accountUsers.isFetchingNextPage) {\n accountUsers.fetchNextPage();\n }\n };\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger className=\"cursor-pointer\">\n <div className=\"flex items-center gap-2 text-gray-950 px-3 py-2 border border-gray-200 rounded-full hover:border-gray-950\">\n <span className=\"paragraph-small-semibold\">{totalInProject}</span>\n <IconUser size={16} />\n </div>\n </PopoverTrigger>\n\n <PopoverContent\n className={cn(\n \"absolute right-0 md:right-[-88px] w-[296px] p-0 bg-white rounded-2xl shadow-md border border-gray-200\",\n contentClassName,\n )}\n side={side}\n align={align}\n sideOffset={8}\n >\n <div className=\"flex flex-col p-3 gap-2\">\n <div className=\"flex items-center justify-between\">\n <span className=\"paragraph-small-semibold\">Usuários</span>\n <div className=\"flex items-center gap-1.5\">\n <Button\n variant=\"secondary\"\n className=\"h-8 paragraph-small-semibold text-gray-950\"\n onClick={() => {\n window.location.href = `${accountsUrl}/my-teams?createNew=true`;\n }}\n >\n <IconPlus size={16} />\n Adicionar\n </Button>\n </div>\n </div>\n\n <Command shouldFilter={false} className=\"gap-2\" value=\"\">\n <CommandInput\n placeholder=\"Busque aqui\"\n value={searchInput}\n onValueChange={setSearchInput}\n />\n <CommandList\n className=\"custom-scrollbar paragraph-small-medium text-gray-600 h-[162px]\"\n onScroll={handleScroll}\n >\n {isLoading ? (\n <>\n <UserItemSkeleton />\n <UserItemSkeleton />\n <UserItemSkeleton />\n </>\n ) : allUsers.length === 0 ? (\n <div className=\"flex flex-col items-center justify-center gap-2 h-full text-gray-400 py-4\">\n <IconUsers size={28} className=\"text-gray-300\" />\n <span className=\"paragraph-small-medium text-center text-gray-500\">\n Nenhum usuário encontrado.\n </span>\n </div>\n ) : (\n <>\n <CommandEmpty>Nenhum resultado encontrado.</CommandEmpty>\n {allUsers.map((user) => {\n const inProject = user.in_project ?? false;\n const removable =\n inProject &&\n user.profile !== \"owner\" &&\n user.profile !== \"admin\";\n const interactive = !inProject || removable;\n\n return (\n <CommandItem\n key={user.id}\n value={user.name || String(user.id)}\n autoFocus={false}\n onPointerEnter={() => setHoveredId(user.id)}\n onPointerLeave={() => setHoveredId(null)}\n onFocus={() => setHoveredId(user.id)}\n onBlur={() => setHoveredId(null)}\n onSelect={() => toggleUser(user.id, inProject, removable)}\n className={interactive ? \"cursor-pointer\" : \"cursor-default\"}\n >\n <div className=\"flex items-center justify-between w-full\">\n <div className=\"flex items-center gap-2 min-w-0\">\n <UserAvatar\n photo={user.photo}\n name={user.name ?? undefined}\n size={32}\n />\n <span className=\"truncate\">{user.name}</span>\n </div>\n <Tooltip open={interactive && hoveredId === user.id}>\n <TooltipTrigger asChild>\n <div\n onClick={(e) => e.stopPropagation()}\n onPointerDown={(e) => e.stopPropagation()}\n >\n <Checkbox\n checked={inProject}\n disabled={!interactive}\n onCheckedChange={() =>\n toggleUser(user.id, inProject, removable)\n }\n className={cn(\n interactive && hoveredId === user.id\n ? \"border-gray-950\"\n : \"\",\n \"disabled:opacity-10\",\n )}\n />\n </div>\n </TooltipTrigger>\n <TooltipContent className=\"z-[1002]\">\n {inProject ? \"Remover do projeto\" : \"Adicionar ao projeto\"}\n </TooltipContent>\n </Tooltip>\n </div>\n </CommandItem>\n );\n })}\n {isFetchingMore && (\n <>\n <UserItemSkeleton />\n <UserItemSkeleton />\n </>\n )}\n </>\n )}\n </CommandList>\n </Command>\n <div className=\"border-t border-gray-200\" />\n <Button\n variant=\"ghost\"\n className=\"h-10! paragraph-small-medium text-gray-600 hover:text-gray-950 hover:bg-zinc-50 w-full justify-center\"\n onClick={() => {\n window.location.href = `${accountsUrl}/my-teams`;\n }}\n >\n Gerenciar equipe\n </Button>\n </div>\n </PopoverContent>\n </Popover>\n );\n}\n"],"mappings":";AAiCM,SAuGU,UAtGR,KADF;AA/BN,SAAS,WAAW,gBAAgB;AACpC,SAAS,UAAU,UAAU,iBAAiB;AAC9C,SAAS,kBAAkB;AAC3B,SAAS,SAAS,gBAAgB,sBAAsB;AACxD,SAAS,cAAc;AACvB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,gBAAgB;AACzB,SAAS,SAAS,gBAAgB,sBAAsB;AACxD,SAAS,UAAU;AACnB,SAAS,2BAA2B;AACpC,SAAS,8BAA8B;AACvC,SAAS,yBAAyB;AAClC,SAAS,4BAA4B;AACrC,SAAS,yBAAyB;AASlC,SAAS,mBAAmB;AAC1B,SACE,qBAAC,SAAI,WAAU,uDACb;AAAA,yBAAC,SAAI,WAAU,kCACb;AAAA,0BAAC,SAAI,WAAU,yCAAwC;AAAA,MACvD,oBAAC,SAAI,WAAU,+BAA8B;AAAA,OAC/C;AAAA,IACA,oBAAC,SAAI,WAAU,oCAAmC;AAAA,KACpD;AAEJ;AAEO,SAAS,qBAAqB;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAA8B;AAC5B,QAAM,EAAE,YAAY,IAAI,kBAAkB;AAC1C,QAAM,CAAC,MAAM,OAAO,IAAI,SAAS,KAAK;AACtC,QAAM,CAAC,WAAW,YAAY,IAAI,SAAwB,IAAI;AAC9D,QAAM,CAAC,aAAa,cAAc,IAAI,SAAS,EAAE;AACjD,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAS,EAAE;AAEvC,QAAM,KAAK,aAAa;AAExB,YAAU,MAAM;AACd,UAAM,QAAQ,WAAW,MAAM,UAAU,WAAW,GAAG,GAAG;AAC1D,WAAO,MAAM,aAAa,KAAK;AAAA,EACjC,GAAG,CAAC,WAAW,CAAC;AAEhB,QAAM,eAAe,uBAAuB,QAAQ,MAAM,MAAS;AACnE,QAAM,eAAe,oBAAoB,IAAI,EAAE;AAC/C,QAAM,cAAc,kBAAkB,EAAE;AACxC,QAAM,iBAAiB,qBAAqB,EAAE;AAE9C,QAAM,WAAW,aAAa,MAAM,MAAM,QAAQ,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC;AACrE,QAAM,YAAY,aAAa;AAC/B,QAAM,iBAAiB,aAAa;AACpC,QAAM,iBAAiB,aAAa,MAAM,MAAM,CAAC,GAAG,SAAS;AAE7D,QAAM,aAAa,CAAC,QAAgB,WAAoB,cAAuB;AAC7E,QAAI,WAAW;AACb,UAAI,CAAC,UAAW;AAChB,qBAAe,OAAO,MAAM;AAAA,IAC9B,OAAO;AACL,kBAAY,OAAO,MAAM;AAAA,IAC3B;AAAA,EACF;AAEA,QAAM,eAAe,CAAC,MAAqC;AACzD,UAAM,SAAS,EAAE;AACjB,UAAM,aACJ,OAAO,YAAY,OAAO,gBAAgB,OAAO,eAAe;AAClE,QAAI,CAAC,WAAY;AACjB,QAAI,aAAa,eAAe,CAAC,aAAa,oBAAoB;AAChE,mBAAa,cAAc;AAAA,IAC7B;AAAA,EACF;AAEA,SACE,qBAAC,WAAQ,MAAY,cAAc,SACjC;AAAA,wBAAC,kBAAe,WAAU,kBACxB,+BAAC,SAAI,WAAU,6GACb;AAAA,0BAAC,UAAK,WAAU,4BAA4B,0BAAe;AAAA,MAC3D,oBAAC,YAAS,MAAM,IAAI;AAAA,OACtB,GACF;AAAA,IAEA;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA;AAAA,QACF;AAAA,QACA;AAAA,QACA;AAAA,QACA,YAAY;AAAA,QAEZ,+BAAC,SAAI,WAAU,2BACb;AAAA,+BAAC,SAAI,WAAU,qCACb;AAAA,gCAAC,UAAK,WAAU,4BAA2B,yBAAQ;AAAA,YACnD,oBAAC,SAAI,WAAU,6BACb;AAAA,cAAC;AAAA;AAAA,gBACC,SAAQ;AAAA,gBACR,WAAU;AAAA,gBACV,SAAS,MAAM;AACb,yBAAO,SAAS,OAAO,GAAG,WAAW;AAAA,gBACvC;AAAA,gBAEA;AAAA,sCAAC,YAAS,MAAM,IAAI;AAAA,kBAAE;AAAA;AAAA;AAAA,YAExB,GACF;AAAA,aACF;AAAA,UAEA,qBAAC,WAAQ,cAAc,OAAO,WAAU,SAAQ,OAAM,IACpD;AAAA;AAAA,cAAC;AAAA;AAAA,gBACC,aAAY;AAAA,gBACZ,OAAO;AAAA,gBACP,eAAe;AAAA;AAAA,YACjB;AAAA,YACA;AAAA,cAAC;AAAA;AAAA,gBACC,WAAU;AAAA,gBACV,UAAU;AAAA,gBAET,sBACC,iCACE;AAAA,sCAAC,oBAAiB;AAAA,kBAClB,oBAAC,oBAAiB;AAAA,kBAClB,oBAAC,oBAAiB;AAAA,mBACpB,IACE,SAAS,WAAW,IACtB,qBAAC,SAAI,WAAU,6EACb;AAAA,sCAAC,aAAU,MAAM,IAAI,WAAU,iBAAgB;AAAA,kBAC/C,oBAAC,UAAK,WAAU,oDAAmD,2CAEnE;AAAA,mBACF,IAEA,iCACE;AAAA,sCAAC,gBAAa,0CAA4B;AAAA,kBACzC,SAAS,IAAI,CAAC,SAAS;AACtB,0BAAM,YAAY,KAAK,cAAc;AACrC,0BAAM,YACJ,aACA,KAAK,YAAY,WACjB,KAAK,YAAY;AACnB,0BAAM,cAAc,CAAC,aAAa;AAElC,2BACE;AAAA,sBAAC;AAAA;AAAA,wBAEC,OAAO,KAAK,QAAQ,OAAO,KAAK,EAAE;AAAA,wBAClC,WAAW;AAAA,wBACX,gBAAgB,MAAM,aAAa,KAAK,EAAE;AAAA,wBAC1C,gBAAgB,MAAM,aAAa,IAAI;AAAA,wBACvC,SAAS,MAAM,aAAa,KAAK,EAAE;AAAA,wBACnC,QAAQ,MAAM,aAAa,IAAI;AAAA,wBAC/B,UAAU,MAAM,WAAW,KAAK,IAAI,WAAW,SAAS;AAAA,wBACxD,WAAW,cAAc,mBAAmB;AAAA,wBAE5C,+BAAC,SAAI,WAAU,4CACb;AAAA,+CAAC,SAAI,WAAU,mCACb;AAAA;AAAA,8BAAC;AAAA;AAAA,gCACC,OAAO,KAAK;AAAA,gCACZ,MAAM,KAAK,QAAQ;AAAA,gCACnB,MAAM;AAAA;AAAA,4BACR;AAAA,4BACA,oBAAC,UAAK,WAAU,YAAY,eAAK,MAAK;AAAA,6BACxC;AAAA,0BACA,qBAAC,WAAQ,MAAM,eAAe,cAAc,KAAK,IAC/C;AAAA,gDAAC,kBAAe,SAAO,MACrB;AAAA,8BAAC;AAAA;AAAA,gCACC,SAAS,CAAC,MAAM,EAAE,gBAAgB;AAAA,gCAClC,eAAe,CAAC,MAAM,EAAE,gBAAgB;AAAA,gCAExC;AAAA,kCAAC;AAAA;AAAA,oCACC,SAAS;AAAA,oCACT,UAAU,CAAC;AAAA,oCACX,iBAAiB,MACf,WAAW,KAAK,IAAI,WAAW,SAAS;AAAA,oCAE1C,WAAW;AAAA,sCACT,eAAe,cAAc,KAAK,KAC9B,oBACA;AAAA,sCACJ;AAAA,oCACF;AAAA;AAAA,gCACF;AAAA;AAAA,4BACF,GACF;AAAA,4BACA,oBAAC,kBAAe,WAAU,YACvB,sBAAY,uBAAuB,wBACtC;AAAA,6BACF;AAAA,2BACF;AAAA;AAAA,sBA5CK,KAAK;AAAA,oBA6CZ;AAAA,kBAEJ,CAAC;AAAA,kBACA,kBACC,iCACE;AAAA,wCAAC,oBAAiB;AAAA,oBAClB,oBAAC,oBAAiB;AAAA,qBACpB;AAAA,mBAEJ;AAAA;AAAA,YAEJ;AAAA,aACF;AAAA,UACA,oBAAC,SAAI,WAAU,4BAA2B;AAAA,UAC1C;AAAA,YAAC;AAAA;AAAA,cACC,SAAQ;AAAA,cACR,WAAU;AAAA,cACV,SAAS,MAAM;AACb,uBAAO,SAAS,OAAO,GAAG,WAAW;AAAA,cACvC;AAAA,cACD;AAAA;AAAA,UAED;AAAA,WACF;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;","names":[]}
@@ -1,50 +0,0 @@
1
- "use client";
2
- import { useEffect } from "react";
3
- import { useWhitelabel } from "../../providers/whitelabel.provider";
4
- function copyAttributes(source, target) {
5
- Array.from(source.attributes).forEach((attribute) => {
6
- target.setAttribute(attribute.name, attribute.value);
7
- });
8
- }
9
- function WhitelabelCodes() {
10
- const { whitelabel } = useWhitelabel();
11
- useEffect(() => {
12
- const codes = whitelabel?.codes;
13
- const rawCodes = codes ? codes.trim() : "";
14
- if (!rawCodes) {
15
- return;
16
- }
17
- const template = document.createElement("template");
18
- template.innerHTML = rawCodes;
19
- const appendedNodes = [];
20
- Array.from(template.content.children).forEach((node) => {
21
- const tagName = node.tagName.toLowerCase();
22
- if (tagName !== "style" && tagName !== "script") {
23
- return;
24
- }
25
- if (tagName === "style") {
26
- const style = document.createElement("style");
27
- copyAttributes(node, style);
28
- style.textContent = node.textContent;
29
- style.dataset.whitelabelCodes = "true";
30
- document.head.appendChild(style);
31
- appendedNodes.push(style);
32
- return;
33
- }
34
- const script = document.createElement("script");
35
- copyAttributes(node, script);
36
- script.textContent = node.textContent;
37
- script.dataset.whitelabelCodes = "true";
38
- document.head.appendChild(script);
39
- appendedNodes.push(script);
40
- });
41
- return () => {
42
- appendedNodes.forEach((node) => node.remove());
43
- };
44
- }, [whitelabel?.codes]);
45
- return null;
46
- }
47
- export {
48
- WhitelabelCodes as default
49
- };
50
- //# sourceMappingURL=WhitelabelCodes.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/layouts/WhitelabelCodes.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect } from \"react\";\nimport { useWhitelabel } from \"../../providers/whitelabel.provider\";\n\nfunction copyAttributes(source: Element, target: HTMLElement) {\n Array.from(source.attributes).forEach((attribute) => {\n target.setAttribute(attribute.name, attribute.value);\n });\n}\n\nexport default function WhitelabelCodes() {\n const { whitelabel } = useWhitelabel();\n\n useEffect(() => {\n const codes = whitelabel?.codes;\n const rawCodes = codes ? codes.trim() : \"\";\n\n if (!rawCodes) {\n return;\n }\n\n const template = document.createElement(\"template\");\n template.innerHTML = rawCodes;\n\n const appendedNodes: HTMLElement[] = [];\n\n Array.from(template.content.children).forEach((node) => {\n const tagName = node.tagName.toLowerCase();\n\n if (tagName !== \"style\" && tagName !== \"script\") {\n return;\n }\n\n if (tagName === \"style\") {\n const style = document.createElement(\"style\");\n copyAttributes(node, style);\n style.textContent = node.textContent;\n style.dataset.whitelabelCodes = \"true\";\n document.head.appendChild(style);\n appendedNodes.push(style);\n return;\n }\n\n const script = document.createElement(\"script\");\n copyAttributes(node, script);\n script.textContent = node.textContent;\n script.dataset.whitelabelCodes = \"true\";\n document.head.appendChild(script);\n appendedNodes.push(script);\n });\n\n return () => {\n appendedNodes.forEach((node) => node.remove());\n };\n }, [whitelabel?.codes]);\n\n return null;\n}\n"],"mappings":";AAEA,SAAS,iBAAiB;AAC1B,SAAS,qBAAqB;AAE9B,SAAS,eAAe,QAAiB,QAAqB;AAC5D,QAAM,KAAK,OAAO,UAAU,EAAE,QAAQ,CAAC,cAAc;AACnD,WAAO,aAAa,UAAU,MAAM,UAAU,KAAK;AAAA,EACrD,CAAC;AACH;AAEe,SAAR,kBAAmC;AACxC,QAAM,EAAE,WAAW,IAAI,cAAc;AAErC,YAAU,MAAM;AACd,UAAM,QAAQ,YAAY;AAC1B,UAAM,WAAW,QAAQ,MAAM,KAAK,IAAI;AAExC,QAAI,CAAC,UAAU;AACb;AAAA,IACF;AAEA,UAAM,WAAW,SAAS,cAAc,UAAU;AAClD,aAAS,YAAY;AAErB,UAAM,gBAA+B,CAAC;AAEtC,UAAM,KAAK,SAAS,QAAQ,QAAQ,EAAE,QAAQ,CAAC,SAAS;AACtD,YAAM,UAAU,KAAK,QAAQ,YAAY;AAEzC,UAAI,YAAY,WAAW,YAAY,UAAU;AAC/C;AAAA,MACF;AAEA,UAAI,YAAY,SAAS;AACvB,cAAM,QAAQ,SAAS,cAAc,OAAO;AAC5C,uBAAe,MAAM,KAAK;AAC1B,cAAM,cAAc,KAAK;AACzB,cAAM,QAAQ,kBAAkB;AAChC,iBAAS,KAAK,YAAY,KAAK;AAC/B,sBAAc,KAAK,KAAK;AACxB;AAAA,MACF;AAEA,YAAM,SAAS,SAAS,cAAc,QAAQ;AAC9C,qBAAe,MAAM,MAAM;AAC3B,aAAO,cAAc,KAAK;AAC1B,aAAO,QAAQ,kBAAkB;AACjC,eAAS,KAAK,YAAY,MAAM;AAChC,oBAAc,KAAK,MAAM;AAAA,IAC3B,CAAC;AAED,WAAO,MAAM;AACX,oBAAc,QAAQ,CAAC,SAAS,KAAK,OAAO,CAAC;AAAA,IAC/C;AAAA,EACF,GAAG,CAAC,YAAY,KAAK,CAAC;AAEtB,SAAO;AACT;","names":[]}