@greatapps/common 1.1.133 → 1.1.135

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 (395) hide show
  1. package/dist/MMQ4R4NB-B36VHW65.mjs +61 -0
  2. package/dist/MMQ4R4NB-B36VHW65.mjs.map +1 -0
  3. package/dist/V4HPSUGU-6BOE4IPH.mjs +51 -0
  4. package/dist/V4HPSUGU-6BOE4IPH.mjs.map +1 -0
  5. package/dist/account-management.action-7QQCACDJ.mjs +40 -0
  6. package/dist/account.service-XTZDEIPS.mjs +9 -0
  7. package/dist/{modules/auth/services/auth.service.mjs → chunk-7MBVHKTC.mjs} +46 -13
  8. package/dist/chunk-7MBVHKTC.mjs.map +1 -0
  9. package/dist/{modules/users/services/user.service.mjs → chunk-B2W2HK7C.mjs} +13 -8
  10. package/dist/chunk-B2W2HK7C.mjs.map +1 -0
  11. package/dist/{modules/auth/actions/validate-session.action.mjs → chunk-EC3T7NF6.mjs} +8 -4
  12. package/dist/chunk-EC3T7NF6.mjs.map +1 -0
  13. package/dist/chunk-EKZZ2RWJ.mjs +12701 -0
  14. package/dist/chunk-EKZZ2RWJ.mjs.map +1 -0
  15. package/dist/chunk-ICUZDG2N.mjs +283 -0
  16. package/dist/chunk-ICUZDG2N.mjs.map +1 -0
  17. package/dist/{utils/safeServerAction.mjs → chunk-JW4XRHLX.mjs} +7 -2
  18. package/dist/chunk-JW4XRHLX.mjs.map +1 -0
  19. package/dist/chunk-QEFMNBSY.mjs +165 -0
  20. package/dist/chunk-QEFMNBSY.mjs.map +1 -0
  21. package/dist/{infra/api/client.mjs → chunk-RV7ECGIH.mjs} +12 -7
  22. package/dist/chunk-RV7ECGIH.mjs.map +1 -0
  23. package/dist/chunk-S53NE5H4.mjs +2928 -0
  24. package/dist/chunk-S53NE5H4.mjs.map +1 -0
  25. package/dist/{modules/whitelabel/services/whitelabel.service.mjs → chunk-UEWT6VFS.mjs} +57 -9
  26. package/dist/chunk-UEWT6VFS.mjs.map +1 -0
  27. package/dist/chunk-XY4LNPBR.mjs +16 -0
  28. package/dist/chunk-XY4LNPBR.mjs.map +1 -0
  29. package/dist/{modules/accounts/services/account.service.mjs → chunk-Z3Q2LLBS.mjs} +64 -9
  30. package/dist/chunk-Z3Q2LLBS.mjs.map +1 -0
  31. package/dist/find-user-by-id.action-BUFTU3ZY.mjs +11 -0
  32. package/dist/index.mjs +9584 -258
  33. package/dist/index.mjs.map +1 -1
  34. package/dist/modern-4YXF5ES3.mjs +426 -0
  35. package/dist/modern-4YXF5ES3.mjs.map +1 -0
  36. package/dist/server.mjs +140 -36
  37. package/dist/server.mjs.map +1 -1
  38. package/dist/user.service-VDR4JKHO.mjs +8 -0
  39. package/dist/validate-session.action-K7RWN2GE.mjs +11 -0
  40. package/dist/{modules/auth/actions/verify-two-factor.action.mjs → verify-two-factor.action-V6JQATK2.mjs} +12 -4
  41. package/dist/verify-two-factor.action-V6JQATK2.mjs.map +1 -0
  42. package/package.json +1 -1
  43. package/src/index.ts +0 -1
  44. package/dist/components/account/AccountModals.mjs +0 -18
  45. package/dist/components/account/AccountModals.mjs.map +0 -1
  46. package/dist/components/account/ConfigurationsMyAccountModal.mjs +0 -132
  47. package/dist/components/account/ConfigurationsMyAccountModal.mjs.map +0 -1
  48. package/dist/components/account/ConfirmDeleteAccountModal.mjs +0 -45
  49. package/dist/components/account/ConfirmDeleteAccountModal.mjs.map +0 -1
  50. package/dist/components/account/ConfirmGlobalPreferencesModal.mjs +0 -45
  51. package/dist/components/account/ConfirmGlobalPreferencesModal.mjs.map +0 -1
  52. package/dist/components/account/DeleteAccountModal.mjs +0 -123
  53. package/dist/components/account/DeleteAccountModal.mjs.map +0 -1
  54. package/dist/components/account/DisableTwoFactorAuthModal.mjs +0 -67
  55. package/dist/components/account/DisableTwoFactorAuthModal.mjs.map +0 -1
  56. package/dist/components/account/IsntPossibleDeleteAccountModal.mjs +0 -42
  57. package/dist/components/account/IsntPossibleDeleteAccountModal.mjs.map +0 -1
  58. package/dist/components/account/TwoFactorAuthModal.mjs +0 -190
  59. package/dist/components/account/TwoFactorAuthModal.mjs.map +0 -1
  60. package/dist/components/account/constants.mjs +0 -29
  61. package/dist/components/account/constants.mjs.map +0 -1
  62. package/dist/components/account/hooks/useChangeEmailForm.mjs +0 -53
  63. package/dist/components/account/hooks/useChangeEmailForm.mjs.map +0 -1
  64. package/dist/components/account/hooks/useChangePasswordForm.mjs +0 -47
  65. package/dist/components/account/hooks/useChangePasswordForm.mjs.map +0 -1
  66. package/dist/components/account/hooks/useChangePhoneForm.mjs +0 -64
  67. package/dist/components/account/hooks/useChangePhoneForm.mjs.map +0 -1
  68. package/dist/components/account/hooks/useConfigurationsModal.mjs +0 -33
  69. package/dist/components/account/hooks/useConfigurationsModal.mjs.map +0 -1
  70. package/dist/components/account/hooks/useDisableTwoFactorAuthForm.mjs +0 -54
  71. package/dist/components/account/hooks/useDisableTwoFactorAuthForm.mjs.map +0 -1
  72. package/dist/components/account/hooks/useOtpVerification.mjs +0 -94
  73. package/dist/components/account/hooks/useOtpVerification.mjs.map +0 -1
  74. package/dist/components/account/hooks/useTwoFactorAuthForm.mjs +0 -80
  75. package/dist/components/account/hooks/useTwoFactorAuthForm.mjs.map +0 -1
  76. package/dist/components/account/sections/ChangeEmailModal.mjs +0 -180
  77. package/dist/components/account/sections/ChangeEmailModal.mjs.map +0 -1
  78. package/dist/components/account/sections/ChangePasswordSection.mjs +0 -64
  79. package/dist/components/account/sections/ChangePasswordSection.mjs.map +0 -1
  80. package/dist/components/account/sections/ChangePhoneModal.mjs +0 -182
  81. package/dist/components/account/sections/ChangePhoneModal.mjs.map +0 -1
  82. package/dist/components/account/sections/MyProfileSection.mjs +0 -303
  83. package/dist/components/account/sections/MyProfileSection.mjs.map +0 -1
  84. package/dist/components/account/sections/PreferencesSection.mjs +0 -250
  85. package/dist/components/account/sections/PreferencesSection.mjs.map +0 -1
  86. package/dist/components/account/sections/SecuritySection.mjs +0 -147
  87. package/dist/components/account/sections/SecuritySection.mjs.map +0 -1
  88. package/dist/components/handlers/SearchParamsHandler.mjs +0 -24
  89. package/dist/components/handlers/SearchParamsHandler.mjs.map +0 -1
  90. package/dist/components/layouts/AppMobileNavBar.mjs +0 -115
  91. package/dist/components/layouts/AppMobileNavBar.mjs.map +0 -1
  92. package/dist/components/layouts/AppNavBar.mjs +0 -49
  93. package/dist/components/layouts/AppNavBar.mjs.map +0 -1
  94. package/dist/components/layouts/MainLayout.mjs +0 -60
  95. package/dist/components/layouts/MainLayout.mjs.map +0 -1
  96. package/dist/components/layouts/MdSideBarNavigation.mjs +0 -54
  97. package/dist/components/layouts/MdSideBarNavigation.mjs.map +0 -1
  98. package/dist/components/layouts/NavBar.mjs +0 -132
  99. package/dist/components/layouts/NavBar.mjs.map +0 -1
  100. package/dist/components/layouts/NavBarItem.mjs +0 -23
  101. package/dist/components/layouts/NavBarItem.mjs.map +0 -1
  102. package/dist/components/layouts/NotificationsPopover.mjs +0 -97
  103. package/dist/components/layouts/NotificationsPopover.mjs.map +0 -1
  104. package/dist/components/layouts/ProfilePopover.mjs +0 -150
  105. package/dist/components/layouts/ProfilePopover.mjs.map +0 -1
  106. package/dist/components/layouts/SideBarNavigation.mjs +0 -22
  107. package/dist/components/layouts/SideBarNavigation.mjs.map +0 -1
  108. package/dist/components/layouts/UsersSelectorPopover.mjs +0 -236
  109. package/dist/components/layouts/UsersSelectorPopover.mjs.map +0 -1
  110. package/dist/components/modals/ModalManager.mjs +0 -19
  111. package/dist/components/modals/ModalManager.mjs.map +0 -1
  112. package/dist/components/modals/Modals.mjs +0 -20
  113. package/dist/components/modals/Modals.mjs.map +0 -1
  114. package/dist/components/navigation/AppNavigation.mjs +0 -30
  115. package/dist/components/navigation/AppNavigation.mjs.map +0 -1
  116. package/dist/components/navigation/AppNavigationContext.mjs +0 -13
  117. package/dist/components/navigation/AppNavigationContext.mjs.map +0 -1
  118. package/dist/components/navigation/NavItem.mjs +0 -35
  119. package/dist/components/navigation/NavItem.mjs.map +0 -1
  120. package/dist/components/navigation/NavItemsContext.mjs +0 -16
  121. package/dist/components/navigation/NavItemsContext.mjs.map +0 -1
  122. package/dist/components/navigation/ProjectSelectorPopover.mjs +0 -128
  123. package/dist/components/navigation/ProjectSelectorPopover.mjs.map +0 -1
  124. package/dist/components/navigation/shells/DesktopShell.mjs +0 -11
  125. package/dist/components/navigation/shells/DesktopShell.mjs.map +0 -1
  126. package/dist/components/navigation/shells/MdShell.mjs +0 -11
  127. package/dist/components/navigation/shells/MdShell.mjs.map +0 -1
  128. package/dist/components/navigation/shells/MobileShell.mjs +0 -27
  129. package/dist/components/navigation/shells/MobileShell.mjs.map +0 -1
  130. package/dist/components/navigation/shells/TabsMobileShell.mjs +0 -59
  131. package/dist/components/navigation/shells/TabsMobileShell.mjs.map +0 -1
  132. package/dist/components/navigation/subcomponents/CreditsCard.mjs +0 -30
  133. package/dist/components/navigation/subcomponents/CreditsCard.mjs.map +0 -1
  134. package/dist/components/navigation/subcomponents/NavItems.mjs +0 -25
  135. package/dist/components/navigation/subcomponents/NavItems.mjs.map +0 -1
  136. package/dist/components/navigation/subcomponents/PlanCard.mjs +0 -25
  137. package/dist/components/navigation/subcomponents/PlanCard.mjs.map +0 -1
  138. package/dist/components/navigation/subcomponents/ProjectSelector.mjs +0 -130
  139. package/dist/components/navigation/subcomponents/ProjectSelector.mjs.map +0 -1
  140. package/dist/components/navigation/types.mjs +0 -1
  141. package/dist/components/pages/notifications/Notifications.mjs +0 -156
  142. package/dist/components/pages/notifications/Notifications.mjs.map +0 -1
  143. package/dist/components/ui/buttons/Button.mjs +0 -52
  144. package/dist/components/ui/buttons/Button.mjs.map +0 -1
  145. package/dist/components/ui/buttons/CancelButton.mjs +0 -17
  146. package/dist/components/ui/buttons/CancelButton.mjs.map +0 -1
  147. package/dist/components/ui/buttons/CopyButton.mjs +0 -42
  148. package/dist/components/ui/buttons/CopyButton.mjs.map +0 -1
  149. package/dist/components/ui/data-display/Accordion.mjs +0 -76
  150. package/dist/components/ui/data-display/Accordion.mjs.map +0 -1
  151. package/dist/components/ui/data-display/Badge.mjs +0 -42
  152. package/dist/components/ui/data-display/Badge.mjs.map +0 -1
  153. package/dist/components/ui/data-display/Card.mjs +0 -92
  154. package/dist/components/ui/data-display/Card.mjs.map +0 -1
  155. package/dist/components/ui/data-display/Pagination.mjs +0 -118
  156. package/dist/components/ui/data-display/Pagination.mjs.map +0 -1
  157. package/dist/components/ui/data-display/ScrollArea.mjs +0 -62
  158. package/dist/components/ui/data-display/ScrollArea.mjs.map +0 -1
  159. package/dist/components/ui/data-display/Separator.mjs +0 -28
  160. package/dist/components/ui/data-display/Separator.mjs.map +0 -1
  161. package/dist/components/ui/data-display/Table.mjs +0 -116
  162. package/dist/components/ui/data-display/Table.mjs.map +0 -1
  163. package/dist/components/ui/data-display/Tabs.mjs +0 -69
  164. package/dist/components/ui/data-display/Tabs.mjs.map +0 -1
  165. package/dist/components/ui/data-display/UserAvatar.mjs +0 -49
  166. package/dist/components/ui/data-display/UserAvatar.mjs.map +0 -1
  167. package/dist/components/ui/feedback/CircularProgress.mjs +0 -71
  168. package/dist/components/ui/feedback/CircularProgress.mjs.map +0 -1
  169. package/dist/components/ui/feedback/DefaultCircularProgress.mjs +0 -50
  170. package/dist/components/ui/feedback/DefaultCircularProgress.mjs.map +0 -1
  171. package/dist/components/ui/feedback/LoadingOverlay.mjs +0 -19
  172. package/dist/components/ui/feedback/LoadingOverlay.mjs.map +0 -1
  173. package/dist/components/ui/feedback/Progress.mjs +0 -37
  174. package/dist/components/ui/feedback/Progress.mjs.map +0 -1
  175. package/dist/components/ui/feedback/Toast.mjs +0 -77
  176. package/dist/components/ui/feedback/Toast.mjs.map +0 -1
  177. package/dist/components/ui/form/Calendar.mjs +0 -204
  178. package/dist/components/ui/form/Calendar.mjs.map +0 -1
  179. package/dist/components/ui/form/Checkbox.mjs +0 -33
  180. package/dist/components/ui/form/Checkbox.mjs.map +0 -1
  181. package/dist/components/ui/form/ComboboxField.mjs +0 -130
  182. package/dist/components/ui/form/ComboboxField.mjs.map +0 -1
  183. package/dist/components/ui/form/DatePicker.mjs +0 -82
  184. package/dist/components/ui/form/DatePicker.mjs.map +0 -1
  185. package/dist/components/ui/form/DateRangePicker.mjs +0 -92
  186. package/dist/components/ui/form/DateRangePicker.mjs.map +0 -1
  187. package/dist/components/ui/form/FormField.mjs +0 -103
  188. package/dist/components/ui/form/FormField.mjs.map +0 -1
  189. package/dist/components/ui/form/Input.mjs +0 -21
  190. package/dist/components/ui/form/Input.mjs.map +0 -1
  191. package/dist/components/ui/form/InputOtp.mjs +0 -70
  192. package/dist/components/ui/form/InputOtp.mjs.map +0 -1
  193. package/dist/components/ui/form/PhoneInput.mjs +0 -78
  194. package/dist/components/ui/form/PhoneInput.mjs.map +0 -1
  195. package/dist/components/ui/form/RadioGroup.mjs +0 -37
  196. package/dist/components/ui/form/RadioGroup.mjs.map +0 -1
  197. package/dist/components/ui/form/Select.mjs +0 -179
  198. package/dist/components/ui/form/Select.mjs.map +0 -1
  199. package/dist/components/ui/form/SelectField.mjs +0 -80
  200. package/dist/components/ui/form/SelectField.mjs.map +0 -1
  201. package/dist/components/ui/form/Switch.mjs +0 -33
  202. package/dist/components/ui/form/Switch.mjs.map +0 -1
  203. package/dist/components/ui/form/SwitchOptionFieldWithIcon.mjs +0 -40
  204. package/dist/components/ui/form/SwitchOptionFieldWithIcon.mjs.map +0 -1
  205. package/dist/components/ui/form/TextAreaField.mjs +0 -56
  206. package/dist/components/ui/form/TextAreaField.mjs.map +0 -1
  207. package/dist/components/ui/form/Textarea.mjs +0 -20
  208. package/dist/components/ui/form/Textarea.mjs.map +0 -1
  209. package/dist/components/ui/overlay/Command.mjs +0 -178
  210. package/dist/components/ui/overlay/Command.mjs.map +0 -1
  211. package/dist/components/ui/overlay/Dialog.mjs +0 -142
  212. package/dist/components/ui/overlay/Dialog.mjs.map +0 -1
  213. package/dist/components/ui/overlay/Popover.mjs +0 -46
  214. package/dist/components/ui/overlay/Popover.mjs.map +0 -1
  215. package/dist/components/ui/overlay/Sheet.mjs +0 -142
  216. package/dist/components/ui/overlay/Sheet.mjs.map +0 -1
  217. package/dist/components/ui/overlay/Tooltip.mjs +0 -57
  218. package/dist/components/ui/overlay/Tooltip.mjs.map +0 -1
  219. package/dist/components/widgets/notifications/NotificationCard.mjs +0 -54
  220. package/dist/components/widgets/notifications/NotificationCard.mjs.map +0 -1
  221. package/dist/enums/AccountSectionType.mjs +0 -11
  222. package/dist/enums/AccountSectionType.mjs.map +0 -1
  223. package/dist/hooks/copy-to-clipboard.hook.mjs +0 -52
  224. package/dist/hooks/copy-to-clipboard.hook.mjs.map +0 -1
  225. package/dist/hooks/useCountdownTimer.mjs +0 -29
  226. package/dist/hooks/useCountdownTimer.mjs.map +0 -1
  227. package/dist/hooks/useDebounce.mjs +0 -19
  228. package/dist/hooks/useDebounce.mjs.map +0 -1
  229. package/dist/hooks/useDebounceState.mjs +0 -12
  230. package/dist/hooks/useDebounceState.mjs.map +0 -1
  231. package/dist/hooks/useDebouncedEffect.mjs +0 -44
  232. package/dist/hooks/useDebouncedEffect.mjs.map +0 -1
  233. package/dist/hooks/useIsMobile.mjs +0 -18
  234. package/dist/hooks/useIsMobile.mjs.map +0 -1
  235. package/dist/hooks/usePasswordVisibility.mjs +0 -13
  236. package/dist/hooks/usePasswordVisibility.mjs.map +0 -1
  237. package/dist/infra/api/client.mjs.map +0 -1
  238. package/dist/infra/api/types.mjs +0 -31
  239. package/dist/infra/api/types.mjs.map +0 -1
  240. package/dist/infra/utils/client-info.mjs +0 -27
  241. package/dist/infra/utils/client-info.mjs.map +0 -1
  242. package/dist/infra/utils/clsx.mjs +0 -9
  243. package/dist/infra/utils/clsx.mjs.map +0 -1
  244. package/dist/infra/utils/params.mjs +0 -21
  245. package/dist/infra/utils/params.mjs.map +0 -1
  246. package/dist/infra/utils/parser.mjs +0 -24
  247. package/dist/infra/utils/parser.mjs.map +0 -1
  248. package/dist/infra/utils/percentage.mjs +0 -20
  249. package/dist/infra/utils/percentage.mjs.map +0 -1
  250. package/dist/middlewares/chain.mjs +0 -37
  251. package/dist/middlewares/chain.mjs.map +0 -1
  252. package/dist/middlewares/create-auth-middleware.mjs +0 -28
  253. package/dist/middlewares/create-auth-middleware.mjs.map +0 -1
  254. package/dist/middlewares/types.mjs +0 -11
  255. package/dist/middlewares/types.mjs.map +0 -1
  256. package/dist/modules/accounts/actions/account-management.action.mjs +0 -82
  257. package/dist/modules/accounts/actions/account-management.action.mjs.map +0 -1
  258. package/dist/modules/accounts/actions/find-current-account.action.mjs +0 -10
  259. package/dist/modules/accounts/actions/find-current-account.action.mjs.map +0 -1
  260. package/dist/modules/accounts/actions/list-currencies.action.mjs +0 -10
  261. package/dist/modules/accounts/actions/list-currencies.action.mjs.map +0 -1
  262. package/dist/modules/accounts/actions/list-timezones.action.mjs +0 -10
  263. package/dist/modules/accounts/actions/list-timezones.action.mjs.map +0 -1
  264. package/dist/modules/accounts/hooks/current-account.hook.mjs +0 -24
  265. package/dist/modules/accounts/hooks/current-account.hook.mjs.map +0 -1
  266. package/dist/modules/accounts/hooks/useAccountManagement.mjs +0 -71
  267. package/dist/modules/accounts/hooks/useAccountManagement.mjs.map +0 -1
  268. package/dist/modules/accounts/hooks/useCurrencies.mjs +0 -17
  269. package/dist/modules/accounts/hooks/useCurrencies.mjs.map +0 -1
  270. package/dist/modules/accounts/hooks/useTimezones.mjs +0 -17
  271. package/dist/modules/accounts/hooks/useTimezones.mjs.map +0 -1
  272. package/dist/modules/accounts/services/account.service.mjs.map +0 -1
  273. package/dist/modules/accounts/services/currency.service.mjs +0 -24
  274. package/dist/modules/accounts/services/currency.service.mjs.map +0 -1
  275. package/dist/modules/accounts/services/timezone.service.mjs +0 -65
  276. package/dist/modules/accounts/services/timezone.service.mjs.map +0 -1
  277. package/dist/modules/accounts/services/two-factor.service.mjs +0 -77
  278. package/dist/modules/accounts/services/two-factor.service.mjs.map +0 -1
  279. package/dist/modules/accounts/types.mjs +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.map +0 -1
  287. package/dist/modules/auth/actions/verify-two-factor.action.mjs.map +0 -1
  288. package/dist/modules/auth/hooks/login.hook.mjs +0 -18
  289. package/dist/modules/auth/hooks/login.hook.mjs.map +0 -1
  290. package/dist/modules/auth/hooks/logout.hook.mjs +0 -13
  291. package/dist/modules/auth/hooks/logout.hook.mjs.map +0 -1
  292. package/dist/modules/auth/hooks/register.hook.mjs +0 -13
  293. package/dist/modules/auth/hooks/register.hook.mjs.map +0 -1
  294. package/dist/modules/auth/hooks/useUserQuery.mjs +0 -63
  295. package/dist/modules/auth/hooks/useUserQuery.mjs.map +0 -1
  296. package/dist/modules/auth/schema.mjs +0 -1
  297. package/dist/modules/auth/services/auth.service.mjs.map +0 -1
  298. package/dist/modules/auth/utils/get-user-context.mjs +0 -24
  299. package/dist/modules/auth/utils/get-user-context.mjs.map +0 -1
  300. package/dist/modules/ia-credits/actions/list-ia-credits.action.mjs +0 -10
  301. package/dist/modules/ia-credits/actions/list-ia-credits.action.mjs.map +0 -1
  302. package/dist/modules/ia-credits/hooks/ia-credits.hook.mjs +0 -76
  303. package/dist/modules/ia-credits/hooks/ia-credits.hook.mjs.map +0 -1
  304. package/dist/modules/ia-credits/services/ia-credits.service.mjs +0 -31
  305. package/dist/modules/ia-credits/services/ia-credits.service.mjs.map +0 -1
  306. package/dist/modules/ia-credits/types.mjs +0 -25
  307. package/dist/modules/ia-credits/types.mjs.map +0 -1
  308. package/dist/modules/projects/actions/add-project-user.action.mjs +0 -10
  309. package/dist/modules/projects/actions/add-project-user.action.mjs.map +0 -1
  310. package/dist/modules/projects/actions/list-available-users.action.mjs +0 -10
  311. package/dist/modules/projects/actions/list-available-users.action.mjs.map +0 -1
  312. package/dist/modules/projects/actions/list-project-users.action.mjs +0 -10
  313. package/dist/modules/projects/actions/list-project-users.action.mjs.map +0 -1
  314. package/dist/modules/projects/actions/remove-project-user.action.mjs +0 -10
  315. package/dist/modules/projects/actions/remove-project-user.action.mjs.map +0 -1
  316. package/dist/modules/projects/hooks/list-available-users.hook.mjs +0 -34
  317. package/dist/modules/projects/hooks/list-available-users.hook.mjs.map +0 -1
  318. package/dist/modules/projects/hooks/list-project-users.hook.mjs +0 -34
  319. package/dist/modules/projects/hooks/list-project-users.hook.mjs.map +0 -1
  320. package/dist/modules/projects/services/project-users.service.mjs +0 -78
  321. package/dist/modules/projects/services/project-users.service.mjs.map +0 -1
  322. package/dist/modules/projects/types.mjs +0 -22
  323. package/dist/modules/projects/types.mjs.map +0 -1
  324. package/dist/modules/subscriptions/actions/list-subscriptions.action.mjs +0 -10
  325. package/dist/modules/subscriptions/actions/list-subscriptions.action.mjs.map +0 -1
  326. package/dist/modules/subscriptions/constants/addons.constants.mjs +0 -12
  327. package/dist/modules/subscriptions/constants/addons.constants.mjs.map +0 -1
  328. package/dist/modules/subscriptions/hooks/find-active-subscription.hook.mjs +0 -20
  329. package/dist/modules/subscriptions/hooks/find-active-subscription.hook.mjs.map +0 -1
  330. package/dist/modules/subscriptions/hooks/list-subscriptions.hook.mjs +0 -18
  331. package/dist/modules/subscriptions/hooks/list-subscriptions.hook.mjs.map +0 -1
  332. package/dist/modules/subscriptions/services/subscriptions.service.mjs +0 -32
  333. package/dist/modules/subscriptions/services/subscriptions.service.mjs.map +0 -1
  334. package/dist/modules/subscriptions/types.mjs +0 -57
  335. package/dist/modules/subscriptions/types.mjs.map +0 -1
  336. package/dist/modules/users/action/find-user-by-id.action.mjs +0 -10
  337. package/dist/modules/users/action/find-user-by-id.action.mjs.map +0 -1
  338. package/dist/modules/users/action/list-messages.action.mjs +0 -13
  339. package/dist/modules/users/action/list-messages.action.mjs.map +0 -1
  340. package/dist/modules/users/action/mark-all-messages-as-read.action.mjs +0 -10
  341. package/dist/modules/users/action/mark-all-messages-as-read.action.mjs.map +0 -1
  342. package/dist/modules/users/action/mark-message-as-read.action.mjs +0 -10
  343. package/dist/modules/users/action/mark-message-as-read.action.mjs.map +0 -1
  344. package/dist/modules/users/hooks/messages.hook.mjs +0 -57
  345. package/dist/modules/users/hooks/messages.hook.mjs.map +0 -1
  346. package/dist/modules/users/schema/messages.schema.mjs +0 -21
  347. package/dist/modules/users/schema/messages.schema.mjs.map +0 -1
  348. package/dist/modules/users/schema.mjs +0 -11
  349. package/dist/modules/users/schema.mjs.map +0 -1
  350. package/dist/modules/users/services/messages.service.mjs +0 -35
  351. package/dist/modules/users/services/messages.service.mjs.map +0 -1
  352. package/dist/modules/users/services/user.service.mjs.map +0 -1
  353. package/dist/modules/whitelabel/actions/find-whitelabel-styles.action.mjs +0 -15
  354. package/dist/modules/whitelabel/actions/find-whitelabel-styles.action.mjs.map +0 -1
  355. package/dist/modules/whitelabel/actions/find-whitelabel.action.mjs +0 -21
  356. package/dist/modules/whitelabel/actions/find-whitelabel.action.mjs.map +0 -1
  357. package/dist/modules/whitelabel/schema.mjs +0 -1
  358. package/dist/modules/whitelabel/services/whitelabel-styles.service.mjs +0 -76
  359. package/dist/modules/whitelabel/services/whitelabel-styles.service.mjs.map +0 -1
  360. package/dist/modules/whitelabel/services/whitelabel.service.mjs.map +0 -1
  361. package/dist/modules/whitelabel/styles-schema.mjs +0 -1
  362. package/dist/providers/auth.provider.mjs +0 -94
  363. package/dist/providers/auth.provider.mjs.map +0 -1
  364. package/dist/providers/query.provider.mjs +0 -99
  365. package/dist/providers/query.provider.mjs.map +0 -1
  366. package/dist/providers/whitelabel.provider.mjs +0 -31
  367. package/dist/providers/whitelabel.provider.mjs.map +0 -1
  368. package/dist/store/useAccountModals.mjs +0 -18
  369. package/dist/store/useAccountModals.mjs.map +0 -1
  370. package/dist/store/useMdSidebarStore.mjs +0 -11
  371. package/dist/store/useMdSidebarStore.mjs.map +0 -1
  372. package/dist/store/useMobileNavbarSheet.mjs +0 -14
  373. package/dist/store/useMobileNavbarSheet.mjs.map +0 -1
  374. package/dist/store/useModalManager.mjs +0 -75
  375. package/dist/store/useModalManager.mjs.map +0 -1
  376. package/dist/utils/browser/clipboard.mjs +0 -36
  377. package/dist/utils/browser/clipboard.mjs.map +0 -1
  378. package/dist/utils/file/index.mjs +0 -9
  379. package/dist/utils/file/index.mjs.map +0 -1
  380. package/dist/utils/format/masks.mjs +0 -56
  381. package/dist/utils/format/masks.mjs.map +0 -1
  382. package/dist/utils/intl/locales.mjs +0 -12
  383. package/dist/utils/intl/locales.mjs.map +0 -1
  384. package/dist/utils/safeServerAction.mjs.map +0 -1
  385. package/dist/utils/validators/account.mjs +0 -26
  386. package/dist/utils/validators/account.mjs.map +0 -1
  387. package/dist/utils/validators/common.mjs +0 -47
  388. package/dist/utils/validators/common.mjs.map +0 -1
  389. package/dist/utils/withAction.mjs +0 -13
  390. package/dist/utils/withAction.mjs.map +0 -1
  391. /package/dist/{components/navigation/types.mjs.map → account-management.action-7QQCACDJ.mjs.map} +0 -0
  392. /package/dist/{modules/accounts/types.mjs.map → account.service-XTZDEIPS.mjs.map} +0 -0
  393. /package/dist/{modules/auth/schema.mjs.map → find-user-by-id.action-BUFTU3ZY.mjs.map} +0 -0
  394. /package/dist/{modules/whitelabel/schema.mjs.map → user.service-VDR4JKHO.mjs.map} +0 -0
  395. /package/dist/{modules/whitelabel/styles-schema.mjs.map → validate-session.action-K7RWN2GE.mjs.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/navigation/ProjectSelectorPopover.tsx"],"sourcesContent":["'use client';\r\n\r\nimport { Dispatch, RefObject, SetStateAction } from 'react';\r\nimport Image from 'next/image';\r\nimport {\r\n Button,\r\n Command,\r\n CommandEmpty,\r\n CommandInput,\r\n CommandItem,\r\n CommandList,\r\n Popover,\r\n PopoverContent,\r\n PopoverTrigger,\r\n Tooltip,\r\n TooltipContent,\r\n TooltipTrigger,\r\n} from '../../index';\r\nimport { CheckIcon, ChevronDown, FolderOpen, Plus, Settings } from 'lucide-react';\r\nimport type { NavigationProject } from './types';\r\n\r\ninterface ProjectSelectorPopoverProps {\r\n open: boolean;\r\n setOpen: Dispatch<SetStateAction<boolean>>;\r\n titleRef?: RefObject<HTMLSpanElement | null>;\r\n projects: NavigationProject[];\r\n selectedProject: NavigationProject | null;\r\n onSelectProject: (project: NavigationProject) => void;\r\n onAddProject: () => void;\r\n onManageProjects: () => void;\r\n}\r\n\r\nfunction ProjectItemSkeleton() {\r\n return (\r\n <div className=\"flex items-center justify-between px-2 py-1.5 gap-2\">\r\n <div className=\"flex items-center gap-2 flex-1\">\r\n <div className=\"skeleton size-8 rounded-lg shrink-0\" />\r\n <div className=\"skeleton h-3.5 w-32 rounded\" />\r\n </div>\r\n <div className=\"skeleton size-4 rounded-full shrink-0\" />\r\n </div>\r\n );\r\n}\r\n\r\nexport function ProjectSelectorPopover({\r\n open,\r\n setOpen,\r\n titleRef,\r\n projects,\r\n selectedProject,\r\n onSelectProject,\r\n onAddProject,\r\n onManageProjects,\r\n}: ProjectSelectorPopoverProps) {\r\n return (\r\n <Popover open={open} onOpenChange={setOpen}>\r\n <PopoverTrigger className=\"cursor-pointer\">\r\n <ChevronDown\r\n size={20}\r\n className={`transition-transform duration-200 ${open ? 'rotate-180 text-gray-950' : 'text-gray-400'}`}\r\n />\r\n </PopoverTrigger>\r\n <PopoverContent\r\n className=\"absolute right-[-158px] top-2.5 w-[296px] p-0 bg-white rounded-2xl shadow-md border border-gray-200\"\r\n sideOffset={8}\r\n onOpenAutoFocus={(e: Event) => e.preventDefault()}\r\n onInteractOutside={(event: Event) => {\r\n if (titleRef?.current?.contains(event.target as Node)) {\r\n event.preventDefault();\r\n }\r\n }}\r\n >\r\n <div className=\"flex flex-col p-3 gap-2\">\r\n <div className=\"flex items-center justify-between\">\r\n <span className=\"paragraph-small-semibold\">Projetos</span>\r\n <div className=\"flex items-center gap-1.5\">\r\n <Button\r\n variant=\"secondary\"\r\n className=\"h-8! paragraph-small-semibold text-gray-950\"\r\n onClick={onAddProject}\r\n >\r\n <Plus size={16} />\r\n Adicionar\r\n </Button>\r\n <Tooltip>\r\n <TooltipTrigger asChild>\r\n <Button variant=\"secondary\" className=\"p-0 size-8\" onClick={onManageProjects}>\r\n <Settings size={18} />\r\n </Button>\r\n </TooltipTrigger>\r\n <TooltipContent>Visualizar todos projetos</TooltipContent>\r\n </Tooltip>\r\n </div>\r\n </div>\r\n <Command className=\"gap-2\">\r\n <CommandInput placeholder=\"Busque aqui\" />\r\n <CommandList className=\"custom-scrollbar paragraph-small-medium text-gray-600 h-[162px]\">\r\n {projects.length === 0 ? (\r\n <div className=\"flex flex-col items-center justify-center gap-2 h-full text-gray-400 py-4\">\r\n <FolderOpen size={28} className=\"text-gray-300\" />\r\n <span className=\"paragraph-small-medium text-center text-gray-500\">\r\n Nenhum projeto encontrado.\r\n <br />\r\n Crie um projeto para começar.\r\n </span>\r\n </div>\r\n ) : (\r\n <>\r\n <CommandEmpty>Nenhum resultado encontrado.</CommandEmpty>\r\n {projects.map((project) => {\r\n const isSelected = selectedProject?.id === project.id;\r\n return (\r\n <CommandItem\r\n key={project.id}\r\n value={project.title}\r\n className={isSelected ? 'bg-gray-50' : ''}\r\n onSelect={() => onSelectProject(project)}\r\n >\r\n <div className=\"flex items-center justify-between w-full cursor-pointer\">\r\n <div className=\"flex items-center gap-2 w-full\">\r\n <Image\r\n alt=\"Icon Project\"\r\n src={\r\n project.photo\r\n ? `${process.env.NEXT_PUBLIC_STORAGE_URL}/${project.photo}`\r\n : '/images/Logomark.png'\r\n }\r\n width={32}\r\n height={32}\r\n className=\"rounded-lg\"\r\n />\r\n {project.title}\r\n </div>\r\n {isSelected && (\r\n <CheckIcon className=\"size-4 text-gray-950\" />\r\n )}\r\n </div>\r\n </CommandItem>\r\n );\r\n })}\r\n </>\r\n )}\r\n </CommandList>\r\n </Command>\r\n </div>\r\n </PopoverContent>\r\n </Popover>\r\n );\r\n}\r\n"],"mappings":"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","names":[]}
@@ -1,11 +0,0 @@
1
- "use client";
2
- import { jsx } from "react/jsx-runtime";
3
- import { SideBarNavigation } from "../../layouts/SideBarNavigation";
4
- import { AppNavigationContext } from "../AppNavigationContext";
5
- function DesktopShell({ children }) {
6
- return /* @__PURE__ */ jsx(AppNavigationContext.Provider, { value: { breakpoint: "desktop" }, children: /* @__PURE__ */ jsx(SideBarNavigation, { className: "justify-between gap-5", children }) });
7
- }
8
- export {
9
- DesktopShell
10
- };
11
- //# sourceMappingURL=DesktopShell.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/components/navigation/shells/DesktopShell.tsx"],"sourcesContent":["'use client';\r\n\r\nimport { ReactNode } from 'react';\r\nimport { SideBarNavigation } from '../../layouts/SideBarNavigation';\r\nimport { AppNavigationContext } from '../AppNavigationContext';\r\n\r\nexport function DesktopShell({ children }: { children: ReactNode }) {\r\n return (\r\n <AppNavigationContext.Provider value={{ breakpoint: 'desktop' }}>\r\n <SideBarNavigation className=\"justify-between gap-5\">\r\n {children}\r\n </SideBarNavigation>\r\n </AppNavigationContext.Provider>\r\n );\r\n}\r\n"],"mappings":";AASM;AANN,SAAS,yBAAyB;AAClC,SAAS,4BAA4B;AAE9B,SAAS,aAAa,EAAE,SAAS,GAA4B;AAClE,SACE,oBAAC,qBAAqB,UAArB,EAA8B,OAAO,EAAE,YAAY,UAAU,GAC5D,8BAAC,qBAAkB,WAAU,yBAC1B,UACH,GACF;AAEJ;","names":[]}
@@ -1,11 +0,0 @@
1
- "use client";
2
- import { jsx } from "react/jsx-runtime";
3
- import { MdSideBarNavigation } from "../../layouts/MdSideBarNavigation";
4
- import { AppNavigationContext } from "../AppNavigationContext";
5
- function MdShell({ children }) {
6
- return /* @__PURE__ */ jsx(AppNavigationContext.Provider, { value: { breakpoint: "md" }, children: /* @__PURE__ */ jsx(MdSideBarNavigation, { className: "justify-between gap-5", children }) });
7
- }
8
- export {
9
- MdShell
10
- };
11
- //# sourceMappingURL=MdShell.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/components/navigation/shells/MdShell.tsx"],"sourcesContent":["'use client';\r\n\r\nimport { ReactNode } from 'react';\r\nimport { MdSideBarNavigation } from '../../layouts/MdSideBarNavigation';\r\nimport { AppNavigationContext } from '../AppNavigationContext';\r\n\r\nexport function MdShell({ children }: { children: ReactNode }) {\r\n return (\r\n <AppNavigationContext.Provider value={{ breakpoint: 'md' }}>\r\n <MdSideBarNavigation className=\"justify-between gap-5\">\r\n {children}\r\n </MdSideBarNavigation>\r\n </AppNavigationContext.Provider>\r\n );\r\n}\r\n"],"mappings":";AASM;AANN,SAAS,2BAA2B;AACpC,SAAS,4BAA4B;AAE9B,SAAS,QAAQ,EAAE,SAAS,GAA4B;AAC7D,SACE,oBAAC,qBAAqB,UAArB,EAA8B,OAAO,EAAE,YAAY,KAAK,GACvD,8BAAC,uBAAoB,WAAU,yBAC5B,UACH,GACF;AAEJ;","names":[]}
@@ -1,27 +0,0 @@
1
- "use client";
2
- import { jsx, jsxs } from "react/jsx-runtime";
3
- import { useMobileNavbarSheet } from "../../../store/useMobileNavbarSheet";
4
- import { AppNavigationContext } from "../AppNavigationContext";
5
- function MobileShell({ children }) {
6
- const { isOpen, close } = useMobileNavbarSheet();
7
- return /* @__PURE__ */ jsxs(AppNavigationContext.Provider, { value: { breakpoint: "mobile" }, children: [
8
- /* @__PURE__ */ jsx(
9
- "div",
10
- {
11
- className: `md:hidden fixed inset-0 top-[72px] bg-black/50 z-30 transition-opacity duration-300 ${isOpen ? "opacity-100" : "opacity-0 pointer-events-none"}`,
12
- onClick: close
13
- }
14
- ),
15
- /* @__PURE__ */ jsx(
16
- "div",
17
- {
18
- className: `md:hidden fixed top-[72px] left-0 right-0 z-40 bg-white rounded-b-xl shadow-[0px_6px_12px_0px_rgba(26,26,26,0.12)] border-b border-gray-200 p-4 flex flex-col gap-5 transition-all duration-300 overflow-y-auto max-h-[calc(100dvh-72px)] ${isOpen ? "translate-y-0 opacity-100" : "-translate-y-full opacity-0 pointer-events-none"}`,
19
- children
20
- }
21
- )
22
- ] });
23
- }
24
- export {
25
- MobileShell
26
- };
27
- //# sourceMappingURL=MobileShell.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/components/navigation/shells/MobileShell.tsx"],"sourcesContent":["'use client';\r\n\r\nimport { ReactNode } from 'react';\r\nimport { useMobileNavbarSheet } from '../../../store/useMobileNavbarSheet';\r\nimport { AppNavigationContext } from '../AppNavigationContext';\r\n\r\nexport function MobileShell({ children }: { children: ReactNode }) {\r\n const { isOpen, close } = useMobileNavbarSheet();\r\n\r\n return (\r\n <AppNavigationContext.Provider value={{ breakpoint: 'mobile' }}>\r\n {/* Backdrop overlay */}\r\n <div\r\n className={`md:hidden fixed inset-0 top-[72px] bg-black/50 z-30 transition-opacity duration-300 ${\r\n isOpen ? 'opacity-100' : 'opacity-0 pointer-events-none'\r\n }`}\r\n onClick={close}\r\n />\r\n {/* Menu panel */}\r\n <div\r\n className={`md:hidden fixed top-[72px] left-0 right-0 z-40 bg-white rounded-b-xl shadow-[0px_6px_12px_0px_rgba(26,26,26,0.12)] border-b border-gray-200 p-4 flex flex-col gap-5 transition-all duration-300 overflow-y-auto max-h-[calc(100dvh-72px)] ${\r\n isOpen ? 'translate-y-0 opacity-100' : '-translate-y-full opacity-0 pointer-events-none'\r\n }`}\r\n >\r\n {children}\r\n </div>\r\n </AppNavigationContext.Provider>\r\n );\r\n}\r\n"],"mappings":";AAUI,SAEE,KAFF;AAPJ,SAAS,4BAA4B;AACrC,SAAS,4BAA4B;AAE9B,SAAS,YAAY,EAAE,SAAS,GAA4B;AACjE,QAAM,EAAE,QAAQ,MAAM,IAAI,qBAAqB;AAE/C,SACE,qBAAC,qBAAqB,UAArB,EAA8B,OAAO,EAAE,YAAY,SAAS,GAE3D;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAW,uFACT,SAAS,gBAAgB,+BAC3B;AAAA,QACA,SAAS;AAAA;AAAA,IACX;AAAA,IAEA;AAAA,MAAC;AAAA;AAAA,QACC,WAAW,6OACT,SAAS,8BAA8B,iDACzC;AAAA,QAEC;AAAA;AAAA,IACH;AAAA,KACF;AAEJ;","names":[]}
@@ -1,59 +0,0 @@
1
- "use client";
2
- import { jsx, jsxs } from "react/jsx-runtime";
3
- import { useRef, useEffect } from "react";
4
- import { AppNavigationContext } from "../AppNavigationContext";
5
- import { useNavItemsContext } from "../NavItemsContext";
6
- function InternalTabsBar({ topOffset = "72px" }) {
7
- const { navItems } = useNavItemsContext();
8
- const tabsListRef = useRef(null);
9
- const activeTabRef = useRef(null);
10
- const activeLabel = navItems.find((i) => i.isActive)?.label;
11
- useEffect(() => {
12
- if (activeTabRef.current && tabsListRef.current) {
13
- const tabsList = tabsListRef.current;
14
- const activeTabElement = activeTabRef.current;
15
- const tabsListRect = tabsList.getBoundingClientRect();
16
- const activeTabRect = activeTabElement.getBoundingClientRect();
17
- const scrollLeft = activeTabElement.offsetLeft - tabsListRect.width / 2 + activeTabRect.width / 2;
18
- tabsList.scrollTo({ left: Math.max(0, scrollLeft), behavior: "smooth" });
19
- }
20
- }, [activeLabel]);
21
- if (!navItems.length) return null;
22
- return /* @__PURE__ */ jsx(
23
- "div",
24
- {
25
- ref: tabsListRef,
26
- className: "md:hidden fixed left-0 right-0 z-40 bg-white border-b border-gray-200 flex overflow-x-auto scrollbar-hide",
27
- style: { top: topOffset },
28
- children: navItems.map((item) => /* @__PURE__ */ jsxs(
29
- "button",
30
- {
31
- ref: item.isActive ? activeTabRef : void 0,
32
- onClick: item.onClick,
33
- className: `flex items-center gap-2 px-4 py-3 shrink-0 border-b-2 transition-colors ${item.isActive ? "border-gray-950 text-gray-950" : "border-transparent text-gray-500 hover:text-gray-900"}`,
34
- children: [
35
- item.icon && /* @__PURE__ */ jsx(item.icon, { size: 16, className: "shrink-0" }),
36
- /* @__PURE__ */ jsx(
37
- "span",
38
- {
39
- className: item.isActive ? "paragraph-small-semibold" : "paragraph-small-medium",
40
- children: item.label
41
- }
42
- )
43
- ]
44
- },
45
- item.label
46
- ))
47
- }
48
- );
49
- }
50
- function TabsMobileShell({ children, topOffset }) {
51
- return /* @__PURE__ */ jsxs(AppNavigationContext.Provider, { value: { breakpoint: "mobile" }, children: [
52
- /* @__PURE__ */ jsx("div", { className: "hidden", children }),
53
- /* @__PURE__ */ jsx(InternalTabsBar, { topOffset })
54
- ] });
55
- }
56
- export {
57
- TabsMobileShell
58
- };
59
- //# sourceMappingURL=TabsMobileShell.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/components/navigation/shells/TabsMobileShell.tsx"],"sourcesContent":["'use client';\n\nimport { ReactNode, useRef, useEffect } from 'react';\nimport { AppNavigationContext } from '../AppNavigationContext';\nimport { useNavItemsContext } from '../NavItemsContext';\n\nfunction InternalTabsBar({ topOffset = '72px' }: { topOffset?: string }) {\n const { navItems } = useNavItemsContext();\n const tabsListRef = useRef<HTMLDivElement>(null);\n const activeTabRef = useRef<HTMLButtonElement>(null);\n\n const activeLabel = navItems.find((i) => i.isActive)?.label;\n\n // Scroll active tab into center when active item changes\n useEffect(() => {\n if (activeTabRef.current && tabsListRef.current) {\n const tabsList = tabsListRef.current;\n const activeTabElement = activeTabRef.current;\n const tabsListRect = tabsList.getBoundingClientRect();\n const activeTabRect = activeTabElement.getBoundingClientRect();\n const scrollLeft =\n activeTabElement.offsetLeft - tabsListRect.width / 2 + activeTabRect.width / 2;\n tabsList.scrollTo({ left: Math.max(0, scrollLeft), behavior: 'smooth' });\n }\n }, [activeLabel]);\n\n if (!navItems.length) return null;\n\n return (\n <div\n ref={tabsListRef}\n className=\"md:hidden fixed left-0 right-0 z-40 bg-white border-b border-gray-200 flex overflow-x-auto scrollbar-hide\"\n style={{ top: topOffset }}\n >\n {navItems.map((item) => (\n <button\n key={item.label}\n ref={item.isActive ? activeTabRef : undefined}\n onClick={item.onClick}\n className={`flex items-center gap-2 px-4 py-3 shrink-0 border-b-2 transition-colors ${\n item.isActive\n ? 'border-gray-950 text-gray-950'\n : 'border-transparent text-gray-500 hover:text-gray-900'\n }`}\n >\n {item.icon && <item.icon size={16} className=\"shrink-0\" />}\n <span\n className={\n item.isActive ? 'paragraph-small-semibold' : 'paragraph-small-medium'\n }\n >\n {item.label}\n </span>\n </button>\n ))}\n </div>\n );\n}\n\nexport function TabsMobileShell({ children, topOffset }: { children: ReactNode; topOffset?: string }) {\n return (\n <AppNavigationContext.Provider value={{ breakpoint: 'mobile' }}>\n {/*\n Children are hidden visually, but NavItems' useEffect still fires inside\n display:none — React effects are tied to commit phase, not layout visibility.\n This registers navItems in NavItemsContext so InternalTabsBar can read them.\n */}\n <div className=\"hidden\">{children}</div>\n <InternalTabsBar topOffset={topOffset} />\n </AppNavigationContext.Provider>\n );\n}\n"],"mappings":";AAmCQ,SAUgB,KAVhB;AAjCR,SAAoB,QAAQ,iBAAiB;AAC7C,SAAS,4BAA4B;AACrC,SAAS,0BAA0B;AAEnC,SAAS,gBAAgB,EAAE,YAAY,OAAO,GAA2B;AACvE,QAAM,EAAE,SAAS,IAAI,mBAAmB;AACxC,QAAM,cAAc,OAAuB,IAAI;AAC/C,QAAM,eAAe,OAA0B,IAAI;AAEnD,QAAM,cAAc,SAAS,KAAK,CAAC,MAAM,EAAE,QAAQ,GAAG;AAGtD,YAAU,MAAM;AACd,QAAI,aAAa,WAAW,YAAY,SAAS;AAC/C,YAAM,WAAW,YAAY;AAC7B,YAAM,mBAAmB,aAAa;AACtC,YAAM,eAAe,SAAS,sBAAsB;AACpD,YAAM,gBAAgB,iBAAiB,sBAAsB;AAC7D,YAAM,aACJ,iBAAiB,aAAa,aAAa,QAAQ,IAAI,cAAc,QAAQ;AAC/E,eAAS,SAAS,EAAE,MAAM,KAAK,IAAI,GAAG,UAAU,GAAG,UAAU,SAAS,CAAC;AAAA,IACzE;AAAA,EACF,GAAG,CAAC,WAAW,CAAC;AAEhB,MAAI,CAAC,SAAS,OAAQ,QAAO;AAE7B,SACE;AAAA,IAAC;AAAA;AAAA,MACC,KAAK;AAAA,MACL,WAAU;AAAA,MACV,OAAO,EAAE,KAAK,UAAU;AAAA,MAEvB,mBAAS,IAAI,CAAC,SACb;AAAA,QAAC;AAAA;AAAA,UAEC,KAAK,KAAK,WAAW,eAAe;AAAA,UACpC,SAAS,KAAK;AAAA,UACd,WAAW,2EACT,KAAK,WACD,kCACA,sDACN;AAAA,UAEC;AAAA,iBAAK,QAAQ,oBAAC,KAAK,MAAL,EAAU,MAAM,IAAI,WAAU,YAAW;AAAA,YACxD;AAAA,cAAC;AAAA;AAAA,gBACC,WACE,KAAK,WAAW,6BAA6B;AAAA,gBAG9C,eAAK;AAAA;AAAA,YACR;AAAA;AAAA;AAAA,QAhBK,KAAK;AAAA,MAiBZ,CACD;AAAA;AAAA,EACH;AAEJ;AAEO,SAAS,gBAAgB,EAAE,UAAU,UAAU,GAAgD;AACpG,SACE,qBAAC,qBAAqB,UAArB,EAA8B,OAAO,EAAE,YAAY,SAAS,GAM3D;AAAA,wBAAC,SAAI,WAAU,UAAU,UAAS;AAAA,IAClC,oBAAC,mBAAgB,WAAsB;AAAA,KACzC;AAEJ;","names":[]}
@@ -1,30 +0,0 @@
1
- "use client";
2
- import { jsx, jsxs } from "react/jsx-runtime";
3
- import { useAppNavigationContext } from "../AppNavigationContext";
4
- import { Progress } from "../../../index";
5
- function CreditsCard({ used, total, onClick }) {
6
- const { breakpoint } = useAppNavigationContext();
7
- if (breakpoint !== "mobile") return null;
8
- return /* @__PURE__ */ jsxs(
9
- "div",
10
- {
11
- className: `flex flex-col bg-gray-950 rounded-lg gap-4 w-full px-4 pt-4 pb-[18px] ${onClick ? "cursor-pointer" : ""}`,
12
- onClick,
13
- children: [
14
- /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
15
- /* @__PURE__ */ jsx("span", { className: "paragraph-xsmall-semibold text-white", children: "Cr\xE9ditos usados" }),
16
- /* @__PURE__ */ jsxs("span", { className: "paragraph-xsmall-medium text-white/50", children: [
17
- used,
18
- " / ",
19
- total
20
- ] })
21
- ] }),
22
- /* @__PURE__ */ jsx(Progress, { className: "bg-white/10 h-[6px]", indicatorColor: "bg-white", value: Math.round(used / total * 100) })
23
- ]
24
- }
25
- );
26
- }
27
- export {
28
- CreditsCard
29
- };
30
- //# sourceMappingURL=CreditsCard.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/components/navigation/subcomponents/CreditsCard.tsx"],"sourcesContent":["'use client';\r\n\r\nimport { useAppNavigationContext } from '../AppNavigationContext';\r\nimport { Progress } from '../../../index';\r\n\r\nexport interface CreditsCardProps {\r\n used: number;\r\n total: number;\r\n onClick?: () => void;\r\n}\r\n\r\nexport function CreditsCard({ used, total, onClick }: CreditsCardProps) {\r\n const { breakpoint } = useAppNavigationContext();\r\n\r\n // Only renders in mobile overlay\r\n if (breakpoint !== 'mobile') return null;\r\n\r\n return (\r\n <div\r\n className={`flex flex-col bg-gray-950 rounded-lg gap-4 w-full px-4 pt-4 pb-[18px] ${onClick ? 'cursor-pointer' : ''}`}\r\n onClick={onClick}\r\n >\r\n <div className=\"flex items-center justify-between\">\r\n <span className=\"paragraph-xsmall-semibold text-white\">Créditos usados</span>\r\n <span className=\"paragraph-xsmall-medium text-white/50\">{used} / {total}</span>\r\n </div>\r\n <Progress className=\"bg-white/10 h-[6px]\" indicatorColor=\"bg-white\" value={Math.round((used / total) * 100)} />\r\n </div>\r\n );\r\n}\r\n"],"mappings":";AAuBQ,cACA,YADA;AArBR,SAAS,+BAA+B;AACxC,SAAS,gBAAgB;AAQlB,SAAS,YAAY,EAAE,MAAM,OAAO,QAAQ,GAAqB;AACtE,QAAM,EAAE,WAAW,IAAI,wBAAwB;AAG/C,MAAI,eAAe,SAAU,QAAO;AAEpC,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,yEAAyE,UAAU,mBAAmB,EAAE;AAAA,MACnH;AAAA,MAEA;AAAA,6BAAC,SAAI,WAAU,qCACb;AAAA,8BAAC,UAAK,WAAU,wCAAuC,gCAAe;AAAA,UACtE,qBAAC,UAAK,WAAU,yCAAyC;AAAA;AAAA,YAAK;AAAA,YAAI;AAAA,aAAM;AAAA,WAC1E;AAAA,QACA,oBAAC,YAAS,WAAU,uBAAsB,gBAAe,YAAW,OAAO,KAAK,MAAO,OAAO,QAAS,GAAG,GAAG;AAAA;AAAA;AAAA,EAC/G;AAEJ;","names":[]}
@@ -1,25 +0,0 @@
1
- "use client";
2
- import { jsx } from "react/jsx-runtime";
3
- import { useEffect } from "react";
4
- import { NavItem } from "../NavItem";
5
- import { useNavItemsContext } from "../NavItemsContext";
6
- function NavItems({ items }) {
7
- const { setNavItems } = useNavItemsContext();
8
- useEffect(() => {
9
- setNavItems(items);
10
- }, [items, setNavItems]);
11
- return /* @__PURE__ */ jsx("div", { className: "flex flex-col", children: items.map((item) => /* @__PURE__ */ jsx(
12
- NavItem,
13
- {
14
- label: item.label,
15
- icon: item.icon,
16
- isActive: item.isActive,
17
- onClick: item.onClick
18
- },
19
- item.label
20
- )) });
21
- }
22
- export {
23
- NavItems
24
- };
25
- //# sourceMappingURL=NavItems.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/components/navigation/subcomponents/NavItems.tsx"],"sourcesContent":["'use client';\r\n\r\nimport { ElementType, useEffect } from 'react';\r\nimport { NavItem } from '../NavItem';\r\nimport { useNavItemsContext } from '../NavItemsContext';\r\n\r\nexport interface NavItemConfig {\r\n label: string;\r\n isActive: boolean;\r\n icon: ElementType;\r\n onClick: () => void;\r\n}\r\n\r\ninterface NavItemsProps {\r\n items: NavItemConfig[];\r\n}\r\n\r\nexport function NavItems({ items }: NavItemsProps) {\r\n const { setNavItems } = useNavItemsContext();\r\n\r\n useEffect(() => {\r\n setNavItems(items);\r\n }, [items, setNavItems]);\r\n\r\n return (\r\n <div className=\"flex flex-col\">\r\n {items.map((item) => (\r\n <NavItem\r\n key={item.label}\r\n label={item.label}\r\n icon={item.icon}\r\n isActive={item.isActive}\r\n onClick={item.onClick}\r\n />\r\n ))}\r\n </div>\r\n );\r\n}\r\n"],"mappings":";AA2BQ;AAzBR,SAAsB,iBAAiB;AACvC,SAAS,eAAe;AACxB,SAAS,0BAA0B;AAa5B,SAAS,SAAS,EAAE,MAAM,GAAkB;AACjD,QAAM,EAAE,YAAY,IAAI,mBAAmB;AAE3C,YAAU,MAAM;AACd,gBAAY,KAAK;AAAA,EACnB,GAAG,CAAC,OAAO,WAAW,CAAC;AAEvB,SACE,oBAAC,SAAI,WAAU,iBACZ,gBAAM,IAAI,CAAC,SACV;AAAA,IAAC;AAAA;AAAA,MAEC,OAAO,KAAK;AAAA,MACZ,MAAM,KAAK;AAAA,MACX,UAAU,KAAK;AAAA,MACf,SAAS,KAAK;AAAA;AAAA,IAJT,KAAK;AAAA,EAKZ,CACD,GACH;AAEJ;","names":[]}
@@ -1,25 +0,0 @@
1
- "use client";
2
- import { jsx, jsxs } from "react/jsx-runtime";
3
- import { Button, Progress } from "../../../index";
4
- function PlanCard({ planName, trialLabel, progressValue, onKnowPlans }) {
5
- return /* @__PURE__ */ jsxs("div", { className: "flex flex-col rounded-md p-4 gap-4 bg-gray-50", children: [
6
- /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1", children: [
7
- /* @__PURE__ */ jsx("span", { className: "paragraph-small-semibold text-gray-950", children: planName }),
8
- /* @__PURE__ */ jsx("span", { className: "paragraph-xsmall-medium text-gray-600", children: trialLabel })
9
- ] }),
10
- /* @__PURE__ */ jsx(Progress, { value: progressValue, className: "bg-(--color-progress-track)" }),
11
- /* @__PURE__ */ jsx(
12
- Button,
13
- {
14
- variant: "secondary",
15
- className: "paragraph-small-semibold text-gray-950",
16
- onClick: onKnowPlans,
17
- children: "Conhe\xE7a os planos"
18
- }
19
- )
20
- ] });
21
- }
22
- export {
23
- PlanCard
24
- };
25
- //# sourceMappingURL=PlanCard.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/components/navigation/subcomponents/PlanCard.tsx"],"sourcesContent":["'use client';\r\n\r\nimport { Button, Progress } from '../../../index';\r\n\r\nexport interface PlanCardProps {\r\n planName: string;\r\n trialLabel: string;\r\n progressValue: number;\r\n onKnowPlans: () => void;\r\n}\r\n\r\nexport function PlanCard({ planName, trialLabel, progressValue, onKnowPlans }: PlanCardProps) {\r\n return (\r\n <div className=\"flex flex-col rounded-md p-4 gap-4 bg-gray-50\">\r\n <div className=\"flex flex-col gap-1\">\r\n <span className=\"paragraph-small-semibold text-gray-950\">{planName}</span>\r\n <span className=\"paragraph-xsmall-medium text-gray-600\">{trialLabel}</span>\r\n </div>\r\n <Progress value={progressValue} className=\"bg-(--color-progress-track)\" />\r\n <Button\r\n variant=\"secondary\"\r\n className=\"paragraph-small-semibold text-gray-950\"\r\n onClick={onKnowPlans}\r\n >\r\n Conheça os planos\r\n </Button>\r\n </div>\r\n );\r\n}\r\n"],"mappings":";AAcM,SACE,KADF;AAZN,SAAS,QAAQ,gBAAgB;AAS1B,SAAS,SAAS,EAAE,UAAU,YAAY,eAAe,YAAY,GAAkB;AAC5F,SACE,qBAAC,SAAI,WAAU,iDACb;AAAA,yBAAC,SAAI,WAAU,uBACb;AAAA,0BAAC,UAAK,WAAU,0CAA0C,oBAAS;AAAA,MACnE,oBAAC,UAAK,WAAU,yCAAyC,sBAAW;AAAA,OACtE;AAAA,IACA,oBAAC,YAAS,OAAO,eAAe,WAAU,+BAA8B;AAAA,IACxE;AAAA,MAAC;AAAA;AAAA,QACC,SAAQ;AAAA,QACR,WAAU;AAAA,QACV,SAAS;AAAA,QACV;AAAA;AAAA,IAED;AAAA,KACF;AAEJ;","names":[]}
@@ -1,130 +0,0 @@
1
- "use client";
2
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
- import { useState, useRef, useEffect } from "react";
4
- import { useMobileNavbarSheet } from "../../../store/useMobileNavbarSheet";
5
- import Image from "next/image";
6
- import { useAppNavigationContext } from "../AppNavigationContext";
7
- import { ProjectSelectorPopover } from "../ProjectSelectorPopover";
8
- import { UsersSelectorPopover } from "../../layouts/UsersSelectorPopover";
9
- import { Button, Command, CommandEmpty, CommandInput, CommandItem, CommandList } from "../../../index";
10
- import { ChevronDown, Plus, Settings } from "lucide-react";
11
- function ProjectItemSkeleton() {
12
- return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 p-2", children: [
13
- /* @__PURE__ */ jsx("div", { className: "skeleton size-8 rounded-lg shrink-0" }),
14
- /* @__PURE__ */ jsx("div", { className: "skeleton h-3.5 w-32 rounded" })
15
- ] });
16
- }
17
- function ProjectSelector({
18
- projects,
19
- selectedProject,
20
- isLoading,
21
- onSelectProject,
22
- onAddProject,
23
- onManageProjects
24
- }) {
25
- const { breakpoint } = useAppNavigationContext();
26
- const [isPopoverOpen, setIsPopoverOpen] = useState(false);
27
- const [activeSection, setActiveSection] = useState(null);
28
- const titleRef = useRef(null);
29
- const { openProjectList, clearProjectList } = useMobileNavbarSheet();
30
- useEffect(() => {
31
- if (openProjectList && breakpoint === "mobile") {
32
- setActiveSection("projects");
33
- clearProjectList();
34
- }
35
- }, [openProjectList, breakpoint, clearProjectList]);
36
- if (breakpoint === "desktop" || breakpoint === "md") {
37
- return /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
38
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 truncate select-none", ref: titleRef, children: [
39
- isLoading ? /* @__PURE__ */ jsx("div", { className: "skeleton h-4 w-32 rounded" }) : /* @__PURE__ */ jsx(
40
- "span",
41
- {
42
- className: "cursor-pointer paragraph-medium-semibold text-gray-600 truncate max-w-[140px] inline-block",
43
- onClick: () => setIsPopoverOpen((v) => !v),
44
- children: selectedProject?.title
45
- }
46
- ),
47
- /* @__PURE__ */ jsx(
48
- ProjectSelectorPopover,
49
- {
50
- open: isPopoverOpen,
51
- setOpen: setIsPopoverOpen,
52
- titleRef,
53
- projects,
54
- selectedProject,
55
- onSelectProject,
56
- onAddProject,
57
- onManageProjects
58
- }
59
- )
60
- ] }),
61
- /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2", children: /* @__PURE__ */ jsx(UsersSelectorPopover, { projectId: selectedProject?.id }) })
62
- ] });
63
- }
64
- return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2.5", children: [
65
- /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
66
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1", children: [
67
- /* @__PURE__ */ jsx("span", { className: "paragraph-medium-semibold text-gray-600", children: selectedProject?.title }),
68
- /* @__PURE__ */ jsx(
69
- ChevronDown,
70
- {
71
- size: 20,
72
- onClick: () => setActiveSection(activeSection === "projects" ? null : "projects"),
73
- className: `transition-transform duration-200 cursor-pointer ${activeSection === "projects" ? "rotate-180 text-gray-950" : "text-gray-400"}`
74
- }
75
- )
76
- ] }),
77
- /* @__PURE__ */ jsx(UsersSelectorPopover, { projectId: selectedProject?.id })
78
- ] }),
79
- activeSection === "projects" && /* @__PURE__ */ jsxs("div", { className: "flex flex-col p-3 gap-2 border border-gray-200 rounded-lg animate-in fade-in duration-400", children: [
80
- /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
81
- /* @__PURE__ */ jsx("span", { className: "paragraph-small-semibold", children: "Projetos" }),
82
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5", children: [
83
- /* @__PURE__ */ jsxs(Button, { variant: "secondary", className: "h-8! paragraph-small-semibold text-gray-950", onClick: onAddProject, children: [
84
- /* @__PURE__ */ jsx(Plus, { size: 16 }),
85
- "Adicionar"
86
- ] }),
87
- /* @__PURE__ */ jsx(Button, { variant: "secondary", className: "p-0 size-8", onClick: onManageProjects, children: /* @__PURE__ */ jsx(Settings, { size: 18 }) })
88
- ] })
89
- ] }),
90
- /* @__PURE__ */ jsxs(Command, { className: "gap-2", children: [
91
- /* @__PURE__ */ jsx(CommandInput, { placeholder: "Busque aqui" }),
92
- /* @__PURE__ */ jsxs(CommandList, { className: "custom-scrollbar paragraph-small-medium text-gray-600 h-[162px]", children: [
93
- /* @__PURE__ */ jsx(CommandEmpty, { children: "Nenhum resultado encontrado." }),
94
- isLoading ? /* @__PURE__ */ jsxs(Fragment, { children: [
95
- /* @__PURE__ */ jsx(ProjectItemSkeleton, {}),
96
- /* @__PURE__ */ jsx(ProjectItemSkeleton, {})
97
- ] }) : projects.map((project) => /* @__PURE__ */ jsxs(
98
- CommandItem,
99
- {
100
- value: project.title,
101
- className: selectedProject?.id === project.id ? "bg-gray-50" : "",
102
- onSelect: () => {
103
- onSelectProject(project);
104
- setActiveSection(null);
105
- },
106
- children: [
107
- /* @__PURE__ */ jsx(
108
- Image,
109
- {
110
- alt: "Icon Project",
111
- src: project.photo ? `${process.env.NEXT_PUBLIC_STORAGE_URL}/${project.photo}` : "/images/Logomark.png",
112
- width: 32,
113
- height: 32,
114
- className: "rounded-lg"
115
- }
116
- ),
117
- project.title
118
- ]
119
- },
120
- project.id
121
- ))
122
- ] })
123
- ] })
124
- ] })
125
- ] });
126
- }
127
- export {
128
- ProjectSelector
129
- };
130
- //# sourceMappingURL=ProjectSelector.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/components/navigation/subcomponents/ProjectSelector.tsx"],"sourcesContent":["'use client';\r\n\r\nimport { useState, useRef, useEffect, RefObject } from 'react';\r\nimport { useMobileNavbarSheet } from '../../../store/useMobileNavbarSheet';\r\nimport Image from 'next/image';\r\nimport { useAppNavigationContext } from '../AppNavigationContext';\r\nimport { ProjectSelectorPopover } from '../ProjectSelectorPopover';\r\nimport { UsersSelectorPopover } from '../../layouts/UsersSelectorPopover';\r\nimport { Button, Command, CommandEmpty, CommandInput, CommandItem, CommandList } from '../../../index';\r\nimport { ChevronDown, Plus, Settings } from 'lucide-react';\r\nimport type { NavigationProject } from '../types';\r\n\r\nexport interface ProjectSelectorProps {\r\n projects: NavigationProject[];\r\n selectedProject: NavigationProject | null;\r\n isLoading?: boolean;\r\n onSelectProject: (project: NavigationProject) => void;\r\n onAddProject: () => void;\r\n onManageProjects: () => void;\r\n}\r\n\r\nfunction ProjectItemSkeleton() {\r\n return (\r\n <div className=\"flex items-center gap-2 p-2\">\r\n <div className=\"skeleton size-8 rounded-lg shrink-0\" />\r\n <div className=\"skeleton h-3.5 w-32 rounded\" />\r\n </div>\r\n );\r\n}\r\n\r\nexport function ProjectSelector({\r\n projects,\r\n selectedProject,\r\n isLoading,\r\n onSelectProject,\r\n onAddProject,\r\n onManageProjects,\r\n}: ProjectSelectorProps) {\r\n const { breakpoint } = useAppNavigationContext();\r\n const [isPopoverOpen, setIsPopoverOpen] = useState(false);\r\n const [activeSection, setActiveSection] = useState<'projects' | null>(null);\r\n const titleRef = useRef<HTMLDivElement>(null);\r\n const { openProjectList, clearProjectList } = useMobileNavbarSheet();\r\n\r\n useEffect(() => {\r\n if (openProjectList && breakpoint === 'mobile') {\r\n setActiveSection('projects');\r\n clearProjectList();\r\n }\r\n }, [openProjectList, breakpoint, clearProjectList]);\r\n\r\n // Desktop and md: title + popover + users selector (same visual as current gpages sidebars)\r\n if (breakpoint === 'desktop' || breakpoint === 'md') {\r\n return (\r\n <div className=\"flex items-center justify-between\">\r\n <div className=\"flex items-center gap-2 truncate select-none\" ref={titleRef}>\r\n {isLoading ? (\r\n <div className=\"skeleton h-4 w-32 rounded\" />\r\n ) : (\r\n <span\r\n className=\"cursor-pointer paragraph-medium-semibold text-gray-600 truncate max-w-[140px] inline-block\"\r\n onClick={() => setIsPopoverOpen((v) => !v)}\r\n >\r\n {selectedProject?.title}\r\n </span>\r\n )}\r\n <ProjectSelectorPopover\r\n open={isPopoverOpen}\r\n setOpen={setIsPopoverOpen}\r\n titleRef={titleRef as unknown as RefObject<HTMLSpanElement | null>}\r\n projects={projects}\r\n selectedProject={selectedProject}\r\n onSelectProject={onSelectProject}\r\n onAddProject={onAddProject}\r\n onManageProjects={onManageProjects}\r\n />\r\n </div>\r\n <div className=\"flex items-center gap-2\">\r\n <UsersSelectorPopover projectId={selectedProject?.id} />\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n // Mobile: inline collapsible accordion\r\n return (\r\n <div className=\"flex flex-col gap-2.5\">\r\n <div className=\"flex items-center justify-between\">\r\n <div className=\"flex items-center gap-1\">\r\n <span className=\"paragraph-medium-semibold text-gray-600\">{selectedProject?.title}</span>\r\n <ChevronDown\r\n size={20}\r\n onClick={() => setActiveSection(activeSection === 'projects' ? null : 'projects')}\r\n className={`transition-transform duration-200 cursor-pointer ${\r\n activeSection === 'projects' ? 'rotate-180 text-gray-950' : 'text-gray-400'\r\n }`}\r\n />\r\n </div>\r\n <UsersSelectorPopover projectId={selectedProject?.id} />\r\n </div>\r\n {activeSection === 'projects' && (\r\n <div className=\"flex flex-col p-3 gap-2 border border-gray-200 rounded-lg animate-in fade-in duration-400\">\r\n <div className=\"flex items-center justify-between\">\r\n <span className=\"paragraph-small-semibold\">Projetos</span>\r\n <div className=\"flex items-center gap-1.5\">\r\n <Button variant=\"secondary\" className=\"h-8! paragraph-small-semibold text-gray-950\" onClick={onAddProject}>\r\n <Plus size={16} />\r\n Adicionar\r\n </Button>\r\n <Button variant=\"secondary\" className=\"p-0 size-8\" onClick={onManageProjects}>\r\n <Settings size={18} />\r\n </Button>\r\n </div>\r\n </div>\r\n <Command className=\"gap-2\">\r\n <CommandInput placeholder=\"Busque aqui\" />\r\n <CommandList className=\"custom-scrollbar paragraph-small-medium text-gray-600 h-[162px]\">\r\n <CommandEmpty>Nenhum resultado encontrado.</CommandEmpty>\r\n {isLoading ? (\r\n <>\r\n <ProjectItemSkeleton />\r\n <ProjectItemSkeleton />\r\n </>\r\n ) : (\r\n projects.map((project) => (\r\n <CommandItem\r\n key={project.id}\r\n value={project.title}\r\n className={selectedProject?.id === project.id ? 'bg-gray-50' : ''}\r\n onSelect={() => { onSelectProject(project); setActiveSection(null); }}\r\n >\r\n <Image\r\n alt=\"Icon Project\"\r\n src={\r\n project.photo\r\n ? `${process.env.NEXT_PUBLIC_STORAGE_URL}/${project.photo}`\r\n : '/images/Logomark.png'\r\n }\r\n width={32}\r\n height={32}\r\n className=\"rounded-lg\"\r\n />\r\n {project.title}\r\n </CommandItem>\r\n ))\r\n )}\r\n </CommandList>\r\n </Command>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n}\r\n"],"mappings":";AAuBI,SAgGY,UA/FV,KADF;AArBJ,SAAS,UAAU,QAAQ,iBAA4B;AACvD,SAAS,4BAA4B;AACrC,OAAO,WAAW;AAClB,SAAS,+BAA+B;AACxC,SAAS,8BAA8B;AACvC,SAAS,4BAA4B;AACrC,SAAS,QAAQ,SAAS,cAAc,cAAc,aAAa,mBAAmB;AACtF,SAAS,aAAa,MAAM,gBAAgB;AAY5C,SAAS,sBAAsB;AAC7B,SACE,qBAAC,SAAI,WAAU,+BACb;AAAA,wBAAC,SAAI,WAAU,uCAAsC;AAAA,IACrD,oBAAC,SAAI,WAAU,+BAA8B;AAAA,KAC/C;AAEJ;AAEO,SAAS,gBAAgB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAyB;AACvB,QAAM,EAAE,WAAW,IAAI,wBAAwB;AAC/C,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAAS,KAAK;AACxD,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAA4B,IAAI;AAC1E,QAAM,WAAW,OAAuB,IAAI;AAC5C,QAAM,EAAE,iBAAiB,iBAAiB,IAAI,qBAAqB;AAEnE,YAAU,MAAM;AACd,QAAI,mBAAmB,eAAe,UAAU;AAC9C,uBAAiB,UAAU;AAC3B,uBAAiB;AAAA,IACnB;AAAA,EACF,GAAG,CAAC,iBAAiB,YAAY,gBAAgB,CAAC;AAGlD,MAAI,eAAe,aAAa,eAAe,MAAM;AACnD,WACE,qBAAC,SAAI,WAAU,qCACb;AAAA,2BAAC,SAAI,WAAU,gDAA+C,KAAK,UAChE;AAAA,oBACC,oBAAC,SAAI,WAAU,6BAA4B,IAE3C;AAAA,UAAC;AAAA;AAAA,YACC,WAAU;AAAA,YACV,SAAS,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAAA,YAExC,2BAAiB;AAAA;AAAA,QACpB;AAAA,QAEF;AAAA,UAAC;AAAA;AAAA,YACC,MAAM;AAAA,YACN,SAAS;AAAA,YACT;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA;AAAA,QACF;AAAA,SACF;AAAA,MACA,oBAAC,SAAI,WAAU,2BACb,8BAAC,wBAAqB,WAAW,iBAAiB,IAAI,GACxD;AAAA,OACF;AAAA,EAEJ;AAGA,SACE,qBAAC,SAAI,WAAU,yBACb;AAAA,yBAAC,SAAI,WAAU,qCACb;AAAA,2BAAC,SAAI,WAAU,2BACb;AAAA,4BAAC,UAAK,WAAU,2CAA2C,2BAAiB,OAAM;AAAA,QAClF;AAAA,UAAC;AAAA;AAAA,YACC,MAAM;AAAA,YACN,SAAS,MAAM,iBAAiB,kBAAkB,aAAa,OAAO,UAAU;AAAA,YAChF,WAAW,oDACT,kBAAkB,aAAa,6BAA6B,eAC9D;AAAA;AAAA,QACF;AAAA,SACF;AAAA,MACA,oBAAC,wBAAqB,WAAW,iBAAiB,IAAI;AAAA,OACxD;AAAA,IACC,kBAAkB,cACjB,qBAAC,SAAI,WAAU,6FACb;AAAA,2BAAC,SAAI,WAAU,qCACb;AAAA,4BAAC,UAAK,WAAU,4BAA2B,sBAAQ;AAAA,QACnD,qBAAC,SAAI,WAAU,6BACb;AAAA,+BAAC,UAAO,SAAQ,aAAY,WAAU,+CAA8C,SAAS,cAC3F;AAAA,gCAAC,QAAK,MAAM,IAAI;AAAA,YAAE;AAAA,aAEpB;AAAA,UACA,oBAAC,UAAO,SAAQ,aAAY,WAAU,cAAa,SAAS,kBAC1D,8BAAC,YAAS,MAAM,IAAI,GACtB;AAAA,WACF;AAAA,SACF;AAAA,MACA,qBAAC,WAAQ,WAAU,SACjB;AAAA,4BAAC,gBAAa,aAAY,eAAc;AAAA,QACxC,qBAAC,eAAY,WAAU,mEACrB;AAAA,8BAAC,gBAAa,0CAA4B;AAAA,UACzC,YACC,iCACE;AAAA,gCAAC,uBAAoB;AAAA,YACrB,oBAAC,uBAAoB;AAAA,aACvB,IAEA,SAAS,IAAI,CAAC,YACZ;AAAA,YAAC;AAAA;AAAA,cAEC,OAAO,QAAQ;AAAA,cACf,WAAW,iBAAiB,OAAO,QAAQ,KAAK,eAAe;AAAA,cAC/D,UAAU,MAAM;AAAE,gCAAgB,OAAO;AAAG,iCAAiB,IAAI;AAAA,cAAG;AAAA,cAEpE;AAAA;AAAA,kBAAC;AAAA;AAAA,oBACC,KAAI;AAAA,oBACJ,KACE,QAAQ,QACJ,GAAG,QAAQ,IAAI,uBAAuB,IAAI,QAAQ,KAAK,KACvD;AAAA,oBAEN,OAAO;AAAA,oBACP,QAAQ;AAAA,oBACR,WAAU;AAAA;AAAA,gBACZ;AAAA,gBACC,QAAQ;AAAA;AAAA;AAAA,YAhBJ,QAAQ;AAAA,UAiBf,CACD;AAAA,WAEL;AAAA,SACF;AAAA,OACF;AAAA,KAEJ;AAEJ;","names":[]}
@@ -1 +0,0 @@
1
- //# sourceMappingURL=types.mjs.map
@@ -1,156 +0,0 @@
1
- "use client";
2
- import { jsx, jsxs } from "react/jsx-runtime";
3
- import { Bell, Check, Loader2 } from "lucide-react";
4
- import { Button } from "../../ui/buttons/Button";
5
- import {
6
- Tabs,
7
- TabsContent,
8
- TabsList,
9
- TabsTrigger
10
- } from "../../ui/data-display/Tabs";
11
- import { useInfiniteMessages, useMarkAllMessagesAsRead } from "../../../modules/users/hooks/messages.hook";
12
- import NotificationCard from "../../widgets/notifications/NotificationCard";
13
- import { Toast } from "../../ui/feedback/Toast";
14
- import { formatDistanceToNow } from "date-fns";
15
- import { ptBR } from "date-fns/locale";
16
- import { toast } from "sonner";
17
- function NotificationsList({
18
- pages,
19
- isFetchingNextPage,
20
- hasNextPage,
21
- fetchNextPage
22
- }) {
23
- const notifications = pages?.pages.flatMap((p) => p.data) ?? [];
24
- const handleScroll = (e) => {
25
- const target = e.currentTarget;
26
- const nearBottom = target.scrollTop + target.clientHeight >= target.scrollHeight - 50;
27
- if (!nearBottom) return;
28
- if (hasNextPage && !isFetchingNextPage) {
29
- fetchNextPage();
30
- }
31
- };
32
- return /* @__PURE__ */ jsxs(
33
- "div",
34
- {
35
- className: "flex flex-col border border-gray-200 rounded-lg w-full bg-white max-h-[70vh] overflow-y-auto custom-scrollbar",
36
- onScroll: handleScroll,
37
- children: [
38
- notifications.map((notification, index) => /* @__PURE__ */ jsx(
39
- NotificationCard,
40
- {
41
- icon: /* @__PURE__ */ jsx(Bell, { size: 20, className: "text-pages-600" }),
42
- iconBgColor: "bg-pages-100",
43
- title: notification.subject,
44
- description: notification.message,
45
- gapPx: 16,
46
- time: formatDistanceToNow(new Date(notification.datetime_add), {
47
- addSuffix: true,
48
- locale: ptBR
49
- }),
50
- isUnread: notification.status === 1,
51
- showBorder: index < notifications.length - 1
52
- },
53
- notification.id
54
- )),
55
- isFetchingNextPage && /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center py-4", children: /* @__PURE__ */ jsx(Loader2, { size: 20, className: "animate-spin text-gray-400" }) })
56
- ]
57
- }
58
- );
59
- }
60
- function NotificationPageContent() {
61
- const unreadNotifications = useInfiniteMessages({
62
- readed: false,
63
- type: "notification",
64
- order: "desc"
65
- });
66
- const allNotifications = useInfiniteMessages({
67
- type: "notification",
68
- order: "desc"
69
- });
70
- const totalAll = allNotifications.data?.pages[0]?.total ?? 0;
71
- const totalUnread = unreadNotifications.data?.pages[0]?.total ?? 0;
72
- const { mutate: markAllAsRead, isPending: isMarkingAll } = useMarkAllMessagesAsRead();
73
- const handleMarkAllAsRead = () => {
74
- markAllAsRead(void 0, {
75
- onSuccess: () => {
76
- toast.custom((t) => /* @__PURE__ */ jsx(Toast, { variant: "success", message: "Todas as notifica\xE7\xF5es foram marcadas como lidas", toastId: t }));
77
- },
78
- onError: () => {
79
- toast.custom((t) => /* @__PURE__ */ jsx(Toast, { variant: "error", message: "Erro ao marcar notifica\xE7\xF5es como lidas", toastId: t }));
80
- }
81
- });
82
- };
83
- return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-6 lg:gap-10 px-4 py-6 lg:px-20 lg:py-14", children: [
84
- /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-4", children: [
85
- /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
86
- /* @__PURE__ */ jsx("h1", { className: "paragraph-xlarge-semibold lg:title-large-semibold text-gray-950", children: "Notifica\xE7\xF5es" }),
87
- /* @__PURE__ */ jsx("p", { className: "paragraph-medium-regular text-gray-600 hidden lg:block", children: "Tenha controle total sobre p\xE1ginas, experi\xEAncias e convers\xF5es." })
88
- ] }),
89
- /* @__PURE__ */ jsxs(
90
- Button,
91
- {
92
- variant: "secondary",
93
- className: "h-10! lg:h-12! shrink-0",
94
- onClick: handleMarkAllAsRead,
95
- disabled: isMarkingAll || totalUnread === 0,
96
- children: [
97
- isMarkingAll ? /* @__PURE__ */ jsx(Loader2, { size: 20, className: "animate-spin" }) : /* @__PURE__ */ jsx(Check, { size: 20 }),
98
- /* @__PURE__ */ jsx("span", { className: "lg:block hidden", children: "Marcar todos como lidos" }),
99
- /* @__PURE__ */ jsx("span", { className: "lg:hidden", children: "Marcar como lidos" })
100
- ]
101
- }
102
- )
103
- ] }),
104
- /* @__PURE__ */ jsxs(
105
- Tabs,
106
- {
107
- defaultValue: "all",
108
- className: "flex flex-col w-full bg-transparent gap-6 lg:gap-8",
109
- children: [
110
- /* @__PURE__ */ jsxs(TabsList, { className: "h-auto pb-0 bg-transparent", children: [
111
- /* @__PURE__ */ jsxs(TabsTrigger, { className: "gap-2", value: "all", children: [
112
- "Todas as notifica\xE7\xF5es",
113
- " ",
114
- /* @__PURE__ */ jsxs("span", { className: "text-gray-500", children: [
115
- "(",
116
- totalAll,
117
- ")"
118
- ] })
119
- ] }),
120
- /* @__PURE__ */ jsxs(TabsTrigger, { className: "gap-2", value: "unreads", disabled: totalUnread === 0, children: [
121
- "N\xE3o lidas",
122
- " ",
123
- /* @__PURE__ */ jsxs("span", { className: "text-gray-500", children: [
124
- "(",
125
- totalUnread,
126
- ")"
127
- ] })
128
- ] })
129
- ] }),
130
- /* @__PURE__ */ jsx(TabsContent, { value: "all", children: /* @__PURE__ */ jsx(
131
- NotificationsList,
132
- {
133
- pages: allNotifications.data,
134
- isFetchingNextPage: allNotifications.isFetchingNextPage,
135
- hasNextPage: allNotifications.hasNextPage,
136
- fetchNextPage: allNotifications.fetchNextPage
137
- }
138
- ) }),
139
- /* @__PURE__ */ jsx(TabsContent, { value: "unreads", children: /* @__PURE__ */ jsx(
140
- NotificationsList,
141
- {
142
- pages: unreadNotifications.data,
143
- isFetchingNextPage: unreadNotifications.isFetchingNextPage,
144
- hasNextPage: unreadNotifications.hasNextPage,
145
- fetchNextPage: unreadNotifications.fetchNextPage
146
- }
147
- ) })
148
- ]
149
- }
150
- )
151
- ] });
152
- }
153
- export {
154
- NotificationPageContent
155
- };
156
- //# sourceMappingURL=Notifications.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/components/pages/notifications/Notifications.tsx"],"sourcesContent":["'use client';\n\nimport { Bell, Check, Loader2 } from \"lucide-react\";\nimport { Button } from \"../../ui/buttons/Button\";\nimport {\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n} from \"../../ui/data-display/Tabs\";\nimport { useInfiniteMessages, useMarkAllMessagesAsRead } from \"../../../modules/users/hooks/messages.hook\";\nimport NotificationCard from \"../../widgets/notifications/NotificationCard\";\nimport { Toast } from \"../../ui/feedback/Toast\";\nimport { formatDistanceToNow } from \"date-fns\";\nimport { ptBR } from \"date-fns/locale\";\nimport { toast } from \"sonner\";\nimport React from \"react\";\n\nfunction NotificationsList({\n pages,\n isFetchingNextPage,\n hasNextPage,\n fetchNextPage,\n}: {\n pages: ReturnType<typeof useInfiniteMessages>[\"data\"];\n isFetchingNextPage: boolean;\n hasNextPage: boolean;\n fetchNextPage: () => void;\n}) {\n const notifications = pages?.pages.flatMap((p) => p.data) ?? [];\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 (hasNextPage && !isFetchingNextPage) {\n fetchNextPage();\n }\n };\n\n return (\n <div\n className=\"flex flex-col border border-gray-200 rounded-lg w-full bg-white max-h-[70vh] overflow-y-auto custom-scrollbar\"\n onScroll={handleScroll}\n >\n {notifications.map((notification, index) => (\n <NotificationCard\n key={notification.id}\n icon={<Bell size={20} className=\"text-pages-600\" />}\n iconBgColor=\"bg-pages-100\"\n title={notification.subject}\n description={notification.message}\n gapPx={16}\n time={formatDistanceToNow(new Date(notification.datetime_add), {\n addSuffix: true,\n locale: ptBR,\n })}\n isUnread={notification.status === 1}\n showBorder={index < notifications.length - 1}\n />\n ))}\n {isFetchingNextPage && (\n <div className=\"flex items-center justify-center py-4\">\n <Loader2 size={20} className=\"animate-spin text-gray-400\" />\n </div>\n )}\n </div>\n );\n}\n\nexport function NotificationPageContent() {\n const unreadNotifications = useInfiniteMessages({\n readed: false,\n type: \"notification\",\n order: \"desc\",\n });\n const allNotifications = useInfiniteMessages({\n type: \"notification\",\n order: \"desc\",\n });\n\n const totalAll = allNotifications.data?.pages[0]?.total ?? 0;\n const totalUnread = unreadNotifications.data?.pages[0]?.total ?? 0;\n\n const { mutate: markAllAsRead, isPending: isMarkingAll } = useMarkAllMessagesAsRead();\n\n const handleMarkAllAsRead = () => {\n markAllAsRead(undefined, {\n onSuccess: () => {\n toast.custom((t) => (\n <Toast variant=\"success\" message=\"Todas as notificações foram marcadas como lidas\" toastId={t} />\n ));\n },\n onError: () => {\n toast.custom((t) => (\n <Toast variant=\"error\" message=\"Erro ao marcar notificações como lidas\" toastId={t} />\n ));\n },\n });\n };\n\n return (\n <div className=\"flex flex-col gap-6 lg:gap-10 px-4 py-6 lg:px-20 lg:py-14\">\n <div className=\"flex items-center justify-between gap-4\">\n <div className=\"flex flex-col gap-2\">\n <h1 className=\"paragraph-xlarge-semibold lg:title-large-semibold text-gray-950\">\n Notificações\n </h1>\n <p className=\"paragraph-medium-regular text-gray-600 hidden lg:block\">\n Tenha controle total sobre páginas, experiências e conversões.\n </p>\n </div>\n <Button\n variant={\"secondary\"}\n className=\"h-10! lg:h-12! shrink-0\"\n onClick={handleMarkAllAsRead}\n disabled={isMarkingAll || totalUnread === 0}\n >\n {isMarkingAll ? <Loader2 size={20} className=\"animate-spin\" /> : <Check size={20} />}\n <span className=\"lg:block hidden\">Marcar todos como lidos</span>\n <span className=\"lg:hidden\">Marcar como lidos</span>\n </Button>\n </div>\n <Tabs\n defaultValue=\"all\"\n className=\"flex flex-col w-full bg-transparent gap-6 lg:gap-8\"\n >\n <TabsList className=\"h-auto pb-0 bg-transparent\">\n <TabsTrigger className=\"gap-2\" value=\"all\">\n Todas as notificações{\" \"}\n <span className=\"text-gray-500\">({totalAll})</span>\n </TabsTrigger>\n <TabsTrigger className=\"gap-2\" value=\"unreads\" disabled={totalUnread === 0}>\n Não lidas{\" \"}\n <span className=\"text-gray-500\">({totalUnread})</span>\n </TabsTrigger>\n </TabsList>\n\n <TabsContent value=\"all\">\n <NotificationsList\n pages={allNotifications.data}\n isFetchingNextPage={allNotifications.isFetchingNextPage}\n hasNextPage={allNotifications.hasNextPage}\n fetchNextPage={allNotifications.fetchNextPage}\n />\n </TabsContent>\n\n <TabsContent value=\"unreads\">\n <NotificationsList\n pages={unreadNotifications.data}\n isFetchingNextPage={unreadNotifications.isFetchingNextPage}\n hasNextPage={unreadNotifications.hasNextPage}\n fetchNextPage={unreadNotifications.fetchNextPage}\n />\n </TabsContent>\n </Tabs>\n </div>\n );\n}\n"],"mappings":"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","names":[]}