@greatapps/common 1.1.169 → 1.1.173

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 (372) hide show
  1. package/package.json +1 -1
  2. package/src/components/layouts/ProfilePopover.tsx +9 -12
  3. package/src/modules/auth/schema.ts +1 -0
  4. package/src/modules/auth/services/auth.service.ts +1 -0
  5. package/dist/components/account/AccountModals.mjs +0 -18
  6. package/dist/components/account/AccountModals.mjs.map +0 -1
  7. package/dist/components/account/ConfigurationsMyAccountModal.mjs +0 -132
  8. package/dist/components/account/ConfigurationsMyAccountModal.mjs.map +0 -1
  9. package/dist/components/account/ConfirmDeleteAccountModal.mjs +0 -45
  10. package/dist/components/account/ConfirmDeleteAccountModal.mjs.map +0 -1
  11. package/dist/components/account/ConfirmGlobalPreferencesModal.mjs +0 -45
  12. package/dist/components/account/ConfirmGlobalPreferencesModal.mjs.map +0 -1
  13. package/dist/components/account/DeleteAccountModal.mjs +0 -123
  14. package/dist/components/account/DeleteAccountModal.mjs.map +0 -1
  15. package/dist/components/account/DisableTwoFactorAuthModal.mjs +0 -67
  16. package/dist/components/account/DisableTwoFactorAuthModal.mjs.map +0 -1
  17. package/dist/components/account/IsntPossibleDeleteAccountModal.mjs +0 -42
  18. package/dist/components/account/IsntPossibleDeleteAccountModal.mjs.map +0 -1
  19. package/dist/components/account/TwoFactorAuthModal.mjs +0 -190
  20. package/dist/components/account/TwoFactorAuthModal.mjs.map +0 -1
  21. package/dist/components/account/constants.mjs +0 -29
  22. package/dist/components/account/constants.mjs.map +0 -1
  23. package/dist/components/account/hooks/useChangeEmailForm.mjs +0 -53
  24. package/dist/components/account/hooks/useChangeEmailForm.mjs.map +0 -1
  25. package/dist/components/account/hooks/useChangePasswordForm.mjs +0 -47
  26. package/dist/components/account/hooks/useChangePasswordForm.mjs.map +0 -1
  27. package/dist/components/account/hooks/useChangePhoneForm.mjs +0 -64
  28. package/dist/components/account/hooks/useChangePhoneForm.mjs.map +0 -1
  29. package/dist/components/account/hooks/useConfigurationsModal.mjs +0 -33
  30. package/dist/components/account/hooks/useConfigurationsModal.mjs.map +0 -1
  31. package/dist/components/account/hooks/useDisableTwoFactorAuthForm.mjs +0 -54
  32. package/dist/components/account/hooks/useDisableTwoFactorAuthForm.mjs.map +0 -1
  33. package/dist/components/account/hooks/useOtpVerification.mjs +0 -94
  34. package/dist/components/account/hooks/useOtpVerification.mjs.map +0 -1
  35. package/dist/components/account/hooks/useTwoFactorAuthForm.mjs +0 -80
  36. package/dist/components/account/hooks/useTwoFactorAuthForm.mjs.map +0 -1
  37. package/dist/components/account/sections/ChangeEmailModal.mjs +0 -180
  38. package/dist/components/account/sections/ChangeEmailModal.mjs.map +0 -1
  39. package/dist/components/account/sections/ChangePasswordSection.mjs +0 -64
  40. package/dist/components/account/sections/ChangePasswordSection.mjs.map +0 -1
  41. package/dist/components/account/sections/ChangePhoneModal.mjs +0 -182
  42. package/dist/components/account/sections/ChangePhoneModal.mjs.map +0 -1
  43. package/dist/components/account/sections/MyProfileSection.mjs +0 -303
  44. package/dist/components/account/sections/MyProfileSection.mjs.map +0 -1
  45. package/dist/components/account/sections/PreferencesSection.mjs +0 -250
  46. package/dist/components/account/sections/PreferencesSection.mjs.map +0 -1
  47. package/dist/components/account/sections/SecuritySection.mjs +0 -147
  48. package/dist/components/account/sections/SecuritySection.mjs.map +0 -1
  49. package/dist/components/handlers/SearchParamsHandler.mjs +0 -24
  50. package/dist/components/handlers/SearchParamsHandler.mjs.map +0 -1
  51. package/dist/components/layouts/AppMobileNavBar.mjs +0 -115
  52. package/dist/components/layouts/AppMobileNavBar.mjs.map +0 -1
  53. package/dist/components/layouts/AppNavBar.mjs +0 -49
  54. package/dist/components/layouts/AppNavBar.mjs.map +0 -1
  55. package/dist/components/layouts/MainLayout.mjs +0 -60
  56. package/dist/components/layouts/MainLayout.mjs.map +0 -1
  57. package/dist/components/layouts/MdSideBarNavigation.mjs +0 -54
  58. package/dist/components/layouts/MdSideBarNavigation.mjs.map +0 -1
  59. package/dist/components/layouts/NavBar.mjs +0 -132
  60. package/dist/components/layouts/NavBar.mjs.map +0 -1
  61. package/dist/components/layouts/NavBarItem.mjs +0 -23
  62. package/dist/components/layouts/NavBarItem.mjs.map +0 -1
  63. package/dist/components/layouts/NotificationsPopover.mjs +0 -97
  64. package/dist/components/layouts/NotificationsPopover.mjs.map +0 -1
  65. package/dist/components/layouts/ProfilePopover.mjs +0 -150
  66. package/dist/components/layouts/ProfilePopover.mjs.map +0 -1
  67. package/dist/components/layouts/SideBarNavigation.mjs +0 -22
  68. package/dist/components/layouts/SideBarNavigation.mjs.map +0 -1
  69. package/dist/components/layouts/UsersSelectorPopover.mjs +0 -230
  70. package/dist/components/layouts/UsersSelectorPopover.mjs.map +0 -1
  71. package/dist/components/modals/ModalManager.mjs +0 -19
  72. package/dist/components/modals/ModalManager.mjs.map +0 -1
  73. package/dist/components/modals/Modals.mjs +0 -20
  74. package/dist/components/modals/Modals.mjs.map +0 -1
  75. package/dist/components/navigation/AppNavigation.mjs +0 -30
  76. package/dist/components/navigation/AppNavigation.mjs.map +0 -1
  77. package/dist/components/navigation/AppNavigationContext.mjs +0 -13
  78. package/dist/components/navigation/AppNavigationContext.mjs.map +0 -1
  79. package/dist/components/navigation/CancelledSubscriptionBanner.mjs +0 -59
  80. package/dist/components/navigation/CancelledSubscriptionBanner.mjs.map +0 -1
  81. package/dist/components/navigation/NavItem.mjs +0 -35
  82. package/dist/components/navigation/NavItem.mjs.map +0 -1
  83. package/dist/components/navigation/NavItemsContext.mjs +0 -16
  84. package/dist/components/navigation/NavItemsContext.mjs.map +0 -1
  85. package/dist/components/navigation/ProjectSelectorPopover.mjs +0 -128
  86. package/dist/components/navigation/ProjectSelectorPopover.mjs.map +0 -1
  87. package/dist/components/navigation/shells/DesktopShell.mjs +0 -11
  88. package/dist/components/navigation/shells/DesktopShell.mjs.map +0 -1
  89. package/dist/components/navigation/shells/MdShell.mjs +0 -11
  90. package/dist/components/navigation/shells/MdShell.mjs.map +0 -1
  91. package/dist/components/navigation/shells/MobileShell.mjs +0 -27
  92. package/dist/components/navigation/shells/MobileShell.mjs.map +0 -1
  93. package/dist/components/navigation/shells/TabsMobileShell.mjs +0 -59
  94. package/dist/components/navigation/shells/TabsMobileShell.mjs.map +0 -1
  95. package/dist/components/navigation/subcomponents/CreditsCard.mjs +0 -30
  96. package/dist/components/navigation/subcomponents/CreditsCard.mjs.map +0 -1
  97. package/dist/components/navigation/subcomponents/NavItems.mjs +0 -25
  98. package/dist/components/navigation/subcomponents/NavItems.mjs.map +0 -1
  99. package/dist/components/navigation/subcomponents/PlanCard.mjs +0 -25
  100. package/dist/components/navigation/subcomponents/PlanCard.mjs.map +0 -1
  101. package/dist/components/navigation/subcomponents/ProjectSelector.mjs +0 -130
  102. package/dist/components/navigation/subcomponents/ProjectSelector.mjs.map +0 -1
  103. package/dist/components/navigation/types.mjs +0 -1
  104. package/dist/components/navigation/types.mjs.map +0 -1
  105. package/dist/components/pages/notifications/Notifications.mjs +0 -156
  106. package/dist/components/pages/notifications/Notifications.mjs.map +0 -1
  107. package/dist/components/ui/buttons/Button.mjs +0 -52
  108. package/dist/components/ui/buttons/Button.mjs.map +0 -1
  109. package/dist/components/ui/buttons/CancelButton.mjs +0 -17
  110. package/dist/components/ui/buttons/CancelButton.mjs.map +0 -1
  111. package/dist/components/ui/buttons/CopyButton.mjs +0 -42
  112. package/dist/components/ui/buttons/CopyButton.mjs.map +0 -1
  113. package/dist/components/ui/data-display/Accordion.mjs +0 -76
  114. package/dist/components/ui/data-display/Accordion.mjs.map +0 -1
  115. package/dist/components/ui/data-display/Badge.mjs +0 -42
  116. package/dist/components/ui/data-display/Badge.mjs.map +0 -1
  117. package/dist/components/ui/data-display/Card.mjs +0 -92
  118. package/dist/components/ui/data-display/Card.mjs.map +0 -1
  119. package/dist/components/ui/data-display/Pagination.mjs +0 -118
  120. package/dist/components/ui/data-display/Pagination.mjs.map +0 -1
  121. package/dist/components/ui/data-display/ScrollArea.mjs +0 -62
  122. package/dist/components/ui/data-display/ScrollArea.mjs.map +0 -1
  123. package/dist/components/ui/data-display/Separator.mjs +0 -28
  124. package/dist/components/ui/data-display/Separator.mjs.map +0 -1
  125. package/dist/components/ui/data-display/Table.mjs +0 -116
  126. package/dist/components/ui/data-display/Table.mjs.map +0 -1
  127. package/dist/components/ui/data-display/Tabs.mjs +0 -69
  128. package/dist/components/ui/data-display/Tabs.mjs.map +0 -1
  129. package/dist/components/ui/data-display/UserAvatar.mjs +0 -49
  130. package/dist/components/ui/data-display/UserAvatar.mjs.map +0 -1
  131. package/dist/components/ui/feedback/CircularProgress.mjs +0 -71
  132. package/dist/components/ui/feedback/CircularProgress.mjs.map +0 -1
  133. package/dist/components/ui/feedback/DefaultCircularProgress.mjs +0 -50
  134. package/dist/components/ui/feedback/DefaultCircularProgress.mjs.map +0 -1
  135. package/dist/components/ui/feedback/LoadingOverlay.mjs +0 -19
  136. package/dist/components/ui/feedback/LoadingOverlay.mjs.map +0 -1
  137. package/dist/components/ui/feedback/Progress.mjs +0 -37
  138. package/dist/components/ui/feedback/Progress.mjs.map +0 -1
  139. package/dist/components/ui/feedback/Toast.mjs +0 -77
  140. package/dist/components/ui/feedback/Toast.mjs.map +0 -1
  141. package/dist/components/ui/form/Calendar.mjs +0 -204
  142. package/dist/components/ui/form/Calendar.mjs.map +0 -1
  143. package/dist/components/ui/form/Checkbox.mjs +0 -33
  144. package/dist/components/ui/form/Checkbox.mjs.map +0 -1
  145. package/dist/components/ui/form/ComboboxField.mjs +0 -130
  146. package/dist/components/ui/form/ComboboxField.mjs.map +0 -1
  147. package/dist/components/ui/form/DatePicker.mjs +0 -82
  148. package/dist/components/ui/form/DatePicker.mjs.map +0 -1
  149. package/dist/components/ui/form/DateRangePicker.mjs +0 -92
  150. package/dist/components/ui/form/DateRangePicker.mjs.map +0 -1
  151. package/dist/components/ui/form/FormField.mjs +0 -103
  152. package/dist/components/ui/form/FormField.mjs.map +0 -1
  153. package/dist/components/ui/form/Input.mjs +0 -21
  154. package/dist/components/ui/form/Input.mjs.map +0 -1
  155. package/dist/components/ui/form/InputOtp.mjs +0 -70
  156. package/dist/components/ui/form/InputOtp.mjs.map +0 -1
  157. package/dist/components/ui/form/PhoneInput.mjs +0 -78
  158. package/dist/components/ui/form/PhoneInput.mjs.map +0 -1
  159. package/dist/components/ui/form/RadioGroup.mjs +0 -37
  160. package/dist/components/ui/form/RadioGroup.mjs.map +0 -1
  161. package/dist/components/ui/form/Select.mjs +0 -179
  162. package/dist/components/ui/form/Select.mjs.map +0 -1
  163. package/dist/components/ui/form/SelectField.mjs +0 -80
  164. package/dist/components/ui/form/SelectField.mjs.map +0 -1
  165. package/dist/components/ui/form/Switch.mjs +0 -33
  166. package/dist/components/ui/form/Switch.mjs.map +0 -1
  167. package/dist/components/ui/form/SwitchOptionFieldWithIcon.mjs +0 -40
  168. package/dist/components/ui/form/SwitchOptionFieldWithIcon.mjs.map +0 -1
  169. package/dist/components/ui/form/TextAreaField.mjs +0 -56
  170. package/dist/components/ui/form/TextAreaField.mjs.map +0 -1
  171. package/dist/components/ui/form/Textarea.mjs +0 -20
  172. package/dist/components/ui/form/Textarea.mjs.map +0 -1
  173. package/dist/components/ui/overlay/Command.mjs +0 -178
  174. package/dist/components/ui/overlay/Command.mjs.map +0 -1
  175. package/dist/components/ui/overlay/Dialog.mjs +0 -142
  176. package/dist/components/ui/overlay/Dialog.mjs.map +0 -1
  177. package/dist/components/ui/overlay/Popover.mjs +0 -46
  178. package/dist/components/ui/overlay/Popover.mjs.map +0 -1
  179. package/dist/components/ui/overlay/Sheet.mjs +0 -142
  180. package/dist/components/ui/overlay/Sheet.mjs.map +0 -1
  181. package/dist/components/ui/overlay/Tooltip.mjs +0 -57
  182. package/dist/components/ui/overlay/Tooltip.mjs.map +0 -1
  183. package/dist/components/widgets/notifications/NotificationCard.mjs +0 -54
  184. package/dist/components/widgets/notifications/NotificationCard.mjs.map +0 -1
  185. package/dist/enums/AccountSectionType.mjs +0 -11
  186. package/dist/enums/AccountSectionType.mjs.map +0 -1
  187. package/dist/hooks/copy-to-clipboard.hook.mjs +0 -52
  188. package/dist/hooks/copy-to-clipboard.hook.mjs.map +0 -1
  189. package/dist/hooks/useCountdownTimer.mjs +0 -29
  190. package/dist/hooks/useCountdownTimer.mjs.map +0 -1
  191. package/dist/hooks/useDebounce.mjs +0 -19
  192. package/dist/hooks/useDebounce.mjs.map +0 -1
  193. package/dist/hooks/useDebounceState.mjs +0 -12
  194. package/dist/hooks/useDebounceState.mjs.map +0 -1
  195. package/dist/hooks/useDebouncedEffect.mjs +0 -44
  196. package/dist/hooks/useDebouncedEffect.mjs.map +0 -1
  197. package/dist/hooks/useIsMobile.mjs +0 -18
  198. package/dist/hooks/useIsMobile.mjs.map +0 -1
  199. package/dist/hooks/usePasswordVisibility.mjs +0 -13
  200. package/dist/hooks/usePasswordVisibility.mjs.map +0 -1
  201. package/dist/index.mjs +0 -457
  202. package/dist/index.mjs.map +0 -1
  203. package/dist/infra/api/client.mjs +0 -136
  204. package/dist/infra/api/client.mjs.map +0 -1
  205. package/dist/infra/api/types.mjs +0 -31
  206. package/dist/infra/api/types.mjs.map +0 -1
  207. package/dist/infra/utils/client-info.mjs +0 -27
  208. package/dist/infra/utils/client-info.mjs.map +0 -1
  209. package/dist/infra/utils/clsx.mjs +0 -9
  210. package/dist/infra/utils/clsx.mjs.map +0 -1
  211. package/dist/infra/utils/params.mjs +0 -21
  212. package/dist/infra/utils/params.mjs.map +0 -1
  213. package/dist/infra/utils/parser.mjs +0 -24
  214. package/dist/infra/utils/parser.mjs.map +0 -1
  215. package/dist/infra/utils/percentage.mjs +0 -20
  216. package/dist/infra/utils/percentage.mjs.map +0 -1
  217. package/dist/middleware.mjs +0 -10
  218. package/dist/middleware.mjs.map +0 -1
  219. package/dist/middlewares/chain.mjs +0 -37
  220. package/dist/middlewares/chain.mjs.map +0 -1
  221. package/dist/middlewares/create-auth-middleware.mjs +0 -28
  222. package/dist/middlewares/create-auth-middleware.mjs.map +0 -1
  223. package/dist/middlewares/types.mjs +0 -11
  224. package/dist/middlewares/types.mjs.map +0 -1
  225. package/dist/modules/accounts/actions/account-management.action.mjs +0 -82
  226. package/dist/modules/accounts/actions/account-management.action.mjs.map +0 -1
  227. package/dist/modules/accounts/actions/find-current-account.action.mjs +0 -10
  228. package/dist/modules/accounts/actions/find-current-account.action.mjs.map +0 -1
  229. package/dist/modules/accounts/actions/list-currencies.action.mjs +0 -10
  230. package/dist/modules/accounts/actions/list-currencies.action.mjs.map +0 -1
  231. package/dist/modules/accounts/actions/list-timezones.action.mjs +0 -10
  232. package/dist/modules/accounts/actions/list-timezones.action.mjs.map +0 -1
  233. package/dist/modules/accounts/hooks/current-account.hook.mjs +0 -24
  234. package/dist/modules/accounts/hooks/current-account.hook.mjs.map +0 -1
  235. package/dist/modules/accounts/hooks/useAccountManagement.mjs +0 -71
  236. package/dist/modules/accounts/hooks/useAccountManagement.mjs.map +0 -1
  237. package/dist/modules/accounts/hooks/useCurrencies.mjs +0 -17
  238. package/dist/modules/accounts/hooks/useCurrencies.mjs.map +0 -1
  239. package/dist/modules/accounts/hooks/useTimezones.mjs +0 -17
  240. package/dist/modules/accounts/hooks/useTimezones.mjs.map +0 -1
  241. package/dist/modules/accounts/services/account.service.mjs +0 -180
  242. package/dist/modules/accounts/services/account.service.mjs.map +0 -1
  243. package/dist/modules/accounts/services/currency.service.mjs +0 -24
  244. package/dist/modules/accounts/services/currency.service.mjs.map +0 -1
  245. package/dist/modules/accounts/services/timezone.service.mjs +0 -65
  246. package/dist/modules/accounts/services/timezone.service.mjs.map +0 -1
  247. package/dist/modules/accounts/services/two-factor.service.mjs +0 -77
  248. package/dist/modules/accounts/services/two-factor.service.mjs.map +0 -1
  249. package/dist/modules/accounts/types.mjs +0 -1
  250. package/dist/modules/accounts/types.mjs.map +0 -1
  251. package/dist/modules/auth/actions/login.action.mjs +0 -14
  252. package/dist/modules/auth/actions/login.action.mjs.map +0 -1
  253. package/dist/modules/auth/actions/logout.action.mjs +0 -14
  254. package/dist/modules/auth/actions/logout.action.mjs.map +0 -1
  255. package/dist/modules/auth/actions/register.action.mjs +0 -14
  256. package/dist/modules/auth/actions/register.action.mjs.map +0 -1
  257. package/dist/modules/auth/actions/validate-session.action.mjs +0 -60
  258. package/dist/modules/auth/actions/validate-session.action.mjs.map +0 -1
  259. package/dist/modules/auth/actions/verify-two-factor.action.mjs +0 -17
  260. package/dist/modules/auth/actions/verify-two-factor.action.mjs.map +0 -1
  261. package/dist/modules/auth/hooks/login.hook.mjs +0 -13
  262. package/dist/modules/auth/hooks/login.hook.mjs.map +0 -1
  263. package/dist/modules/auth/hooks/logout.hook.mjs +0 -13
  264. package/dist/modules/auth/hooks/logout.hook.mjs.map +0 -1
  265. package/dist/modules/auth/hooks/register.hook.mjs +0 -13
  266. package/dist/modules/auth/hooks/register.hook.mjs.map +0 -1
  267. package/dist/modules/auth/hooks/useUserQuery.mjs +0 -63
  268. package/dist/modules/auth/hooks/useUserQuery.mjs.map +0 -1
  269. package/dist/modules/auth/schema.mjs +0 -1
  270. package/dist/modules/auth/schema.mjs.map +0 -1
  271. package/dist/modules/auth/services/auth.service.mjs +0 -293
  272. package/dist/modules/auth/services/auth.service.mjs.map +0 -1
  273. package/dist/modules/auth/utils/get-user-context.mjs +0 -24
  274. package/dist/modules/auth/utils/get-user-context.mjs.map +0 -1
  275. package/dist/modules/ia-credits/actions/list-ia-credits.action.mjs +0 -10
  276. package/dist/modules/ia-credits/actions/list-ia-credits.action.mjs.map +0 -1
  277. package/dist/modules/ia-credits/hooks/ia-credits.hook.mjs +0 -76
  278. package/dist/modules/ia-credits/hooks/ia-credits.hook.mjs.map +0 -1
  279. package/dist/modules/ia-credits/services/ia-credits.service.mjs +0 -31
  280. package/dist/modules/ia-credits/services/ia-credits.service.mjs.map +0 -1
  281. package/dist/modules/ia-credits/types.mjs +0 -25
  282. package/dist/modules/ia-credits/types.mjs.map +0 -1
  283. package/dist/modules/projects/actions/add-project-user.action.mjs +0 -10
  284. package/dist/modules/projects/actions/add-project-user.action.mjs.map +0 -1
  285. package/dist/modules/projects/actions/list-available-users.action.mjs +0 -10
  286. package/dist/modules/projects/actions/list-available-users.action.mjs.map +0 -1
  287. package/dist/modules/projects/actions/list-project-users.action.mjs +0 -10
  288. package/dist/modules/projects/actions/list-project-users.action.mjs.map +0 -1
  289. package/dist/modules/projects/actions/remove-project-user.action.mjs +0 -10
  290. package/dist/modules/projects/actions/remove-project-user.action.mjs.map +0 -1
  291. package/dist/modules/projects/hooks/list-available-users.hook.mjs +0 -34
  292. package/dist/modules/projects/hooks/list-available-users.hook.mjs.map +0 -1
  293. package/dist/modules/projects/hooks/list-project-users.hook.mjs +0 -34
  294. package/dist/modules/projects/hooks/list-project-users.hook.mjs.map +0 -1
  295. package/dist/modules/projects/services/project-users.service.mjs +0 -78
  296. package/dist/modules/projects/services/project-users.service.mjs.map +0 -1
  297. package/dist/modules/projects/types.mjs +0 -22
  298. package/dist/modules/projects/types.mjs.map +0 -1
  299. package/dist/modules/subscriptions/actions/list-subscriptions.action.mjs +0 -10
  300. package/dist/modules/subscriptions/actions/list-subscriptions.action.mjs.map +0 -1
  301. package/dist/modules/subscriptions/constants/addons.constants.mjs +0 -12
  302. package/dist/modules/subscriptions/constants/addons.constants.mjs.map +0 -1
  303. package/dist/modules/subscriptions/hooks/find-active-subscription.hook.mjs +0 -20
  304. package/dist/modules/subscriptions/hooks/find-active-subscription.hook.mjs.map +0 -1
  305. package/dist/modules/subscriptions/hooks/list-subscriptions.hook.mjs +0 -18
  306. package/dist/modules/subscriptions/hooks/list-subscriptions.hook.mjs.map +0 -1
  307. package/dist/modules/subscriptions/services/subscriptions.service.mjs +0 -32
  308. package/dist/modules/subscriptions/services/subscriptions.service.mjs.map +0 -1
  309. package/dist/modules/subscriptions/types.mjs +0 -57
  310. package/dist/modules/subscriptions/types.mjs.map +0 -1
  311. package/dist/modules/users/action/find-user-by-id.action.mjs +0 -10
  312. package/dist/modules/users/action/find-user-by-id.action.mjs.map +0 -1
  313. package/dist/modules/users/action/list-messages.action.mjs +0 -13
  314. package/dist/modules/users/action/list-messages.action.mjs.map +0 -1
  315. package/dist/modules/users/action/mark-all-messages-as-read.action.mjs +0 -10
  316. package/dist/modules/users/action/mark-all-messages-as-read.action.mjs.map +0 -1
  317. package/dist/modules/users/action/mark-message-as-read.action.mjs +0 -10
  318. package/dist/modules/users/action/mark-message-as-read.action.mjs.map +0 -1
  319. package/dist/modules/users/hooks/messages.hook.mjs +0 -57
  320. package/dist/modules/users/hooks/messages.hook.mjs.map +0 -1
  321. package/dist/modules/users/schema/messages.schema.mjs +0 -21
  322. package/dist/modules/users/schema/messages.schema.mjs.map +0 -1
  323. package/dist/modules/users/schema.mjs +0 -11
  324. package/dist/modules/users/schema.mjs.map +0 -1
  325. package/dist/modules/users/services/messages.service.mjs +0 -35
  326. package/dist/modules/users/services/messages.service.mjs.map +0 -1
  327. package/dist/modules/users/services/user.service.mjs +0 -50
  328. package/dist/modules/users/services/user.service.mjs.map +0 -1
  329. package/dist/modules/whitelabel/actions/find-whitelabel-styles.action.mjs +0 -15
  330. package/dist/modules/whitelabel/actions/find-whitelabel-styles.action.mjs.map +0 -1
  331. package/dist/modules/whitelabel/actions/find-whitelabel.action.mjs +0 -21
  332. package/dist/modules/whitelabel/actions/find-whitelabel.action.mjs.map +0 -1
  333. package/dist/modules/whitelabel/schema.mjs +0 -1
  334. package/dist/modules/whitelabel/schema.mjs.map +0 -1
  335. package/dist/modules/whitelabel/services/whitelabel-styles.service.mjs +0 -81
  336. package/dist/modules/whitelabel/services/whitelabel-styles.service.mjs.map +0 -1
  337. package/dist/modules/whitelabel/services/whitelabel.service.mjs +0 -61
  338. package/dist/modules/whitelabel/services/whitelabel.service.mjs.map +0 -1
  339. package/dist/modules/whitelabel/styles-schema.mjs +0 -1
  340. package/dist/modules/whitelabel/styles-schema.mjs.map +0 -1
  341. package/dist/providers/auth.provider.mjs +0 -100
  342. package/dist/providers/auth.provider.mjs.map +0 -1
  343. package/dist/providers/query.provider.mjs +0 -99
  344. package/dist/providers/query.provider.mjs.map +0 -1
  345. package/dist/providers/whitelabel.provider.mjs +0 -31
  346. package/dist/providers/whitelabel.provider.mjs.map +0 -1
  347. package/dist/server.mjs +0 -84
  348. package/dist/server.mjs.map +0 -1
  349. package/dist/store/useAccountModals.mjs +0 -18
  350. package/dist/store/useAccountModals.mjs.map +0 -1
  351. package/dist/store/useMdSidebarStore.mjs +0 -11
  352. package/dist/store/useMdSidebarStore.mjs.map +0 -1
  353. package/dist/store/useMobileNavbarSheet.mjs +0 -14
  354. package/dist/store/useMobileNavbarSheet.mjs.map +0 -1
  355. package/dist/store/useModalManager.mjs +0 -75
  356. package/dist/store/useModalManager.mjs.map +0 -1
  357. package/dist/utils/browser/clipboard.mjs +0 -36
  358. package/dist/utils/browser/clipboard.mjs.map +0 -1
  359. package/dist/utils/file/index.mjs +0 -9
  360. package/dist/utils/file/index.mjs.map +0 -1
  361. package/dist/utils/format/masks.mjs +0 -56
  362. package/dist/utils/format/masks.mjs.map +0 -1
  363. package/dist/utils/intl/locales.mjs +0 -12
  364. package/dist/utils/intl/locales.mjs.map +0 -1
  365. package/dist/utils/safeServerAction.mjs +0 -16
  366. package/dist/utils/safeServerAction.mjs.map +0 -1
  367. package/dist/utils/validators/account.mjs +0 -26
  368. package/dist/utils/validators/account.mjs.map +0 -1
  369. package/dist/utils/validators/common.mjs +0 -47
  370. package/dist/utils/validators/common.mjs.map +0 -1
  371. package/dist/utils/withAction.mjs +0 -13
  372. package/dist/utils/withAction.mjs.map +0 -1
@@ -1,128 +0,0 @@
1
- "use client";
2
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
- import Image from "next/image";
4
- import {
5
- Button,
6
- Command,
7
- CommandEmpty,
8
- CommandInput,
9
- CommandItem,
10
- CommandList,
11
- Popover,
12
- PopoverContent,
13
- PopoverTrigger,
14
- Tooltip,
15
- TooltipContent,
16
- TooltipTrigger
17
- } from "../../index";
18
- import { CheckIcon, ChevronDown, FolderOpen, Plus, Settings } from "lucide-react";
19
- function ProjectItemSkeleton() {
20
- return /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between px-2 py-1.5 gap-2", children: [
21
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 flex-1", children: [
22
- /* @__PURE__ */ jsx("div", { className: "skeleton size-8 rounded-lg shrink-0" }),
23
- /* @__PURE__ */ jsx("div", { className: "skeleton h-3.5 w-32 rounded" })
24
- ] }),
25
- /* @__PURE__ */ jsx("div", { className: "skeleton size-4 rounded-full shrink-0" })
26
- ] });
27
- }
28
- function ProjectSelectorPopover({
29
- open,
30
- setOpen,
31
- titleRef,
32
- projects,
33
- selectedProject,
34
- onSelectProject,
35
- onAddProject,
36
- onManageProjects
37
- }) {
38
- return /* @__PURE__ */ jsxs(Popover, { open, onOpenChange: setOpen, children: [
39
- /* @__PURE__ */ jsx(PopoverTrigger, { className: "cursor-pointer", children: /* @__PURE__ */ jsx(
40
- ChevronDown,
41
- {
42
- size: 20,
43
- className: `transition-transform duration-200 ${open ? "rotate-180 text-gray-950" : "text-gray-400"}`
44
- }
45
- ) }),
46
- /* @__PURE__ */ jsx(
47
- PopoverContent,
48
- {
49
- className: "absolute right-[-158px] top-2.5 w-[296px] p-0 bg-white rounded-2xl shadow-md border border-gray-200",
50
- sideOffset: 8,
51
- onOpenAutoFocus: (e) => e.preventDefault(),
52
- onInteractOutside: (event) => {
53
- if (titleRef?.current?.contains(event.target)) {
54
- event.preventDefault();
55
- }
56
- },
57
- children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col p-3 gap-2", children: [
58
- /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
59
- /* @__PURE__ */ jsx("span", { className: "paragraph-small-semibold", children: "Projetos" }),
60
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5", children: [
61
- /* @__PURE__ */ jsxs(
62
- Button,
63
- {
64
- variant: "secondary",
65
- className: "h-8! paragraph-small-semibold text-gray-950",
66
- onClick: onAddProject,
67
- children: [
68
- /* @__PURE__ */ jsx(Plus, { size: 16 }),
69
- "Adicionar"
70
- ]
71
- }
72
- ),
73
- /* @__PURE__ */ jsxs(Tooltip, { children: [
74
- /* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx(Button, { variant: "secondary", className: "p-0 size-8", onClick: onManageProjects, children: /* @__PURE__ */ jsx(Settings, { size: 18 }) }) }),
75
- /* @__PURE__ */ jsx(TooltipContent, { children: "Visualizar todos projetos" })
76
- ] })
77
- ] })
78
- ] }),
79
- /* @__PURE__ */ jsxs(Command, { className: "gap-2", children: [
80
- /* @__PURE__ */ jsx(CommandInput, { placeholder: "Busque aqui" }),
81
- /* @__PURE__ */ jsx(CommandList, { className: "custom-scrollbar paragraph-small-medium text-gray-600 h-[162px]", children: projects.length === 0 ? /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center justify-center gap-2 h-full text-gray-400 py-4", children: [
82
- /* @__PURE__ */ jsx(FolderOpen, { size: 28, className: "text-gray-300" }),
83
- /* @__PURE__ */ jsxs("span", { className: "paragraph-small-medium text-center text-gray-500", children: [
84
- "Nenhum projeto encontrado.",
85
- /* @__PURE__ */ jsx("br", {}),
86
- "Crie um projeto para come\xE7ar."
87
- ] })
88
- ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
89
- /* @__PURE__ */ jsx(CommandEmpty, { children: "Nenhum resultado encontrado." }),
90
- projects.map((project) => {
91
- const isSelected = selectedProject?.id === project.id;
92
- return /* @__PURE__ */ jsx(
93
- CommandItem,
94
- {
95
- value: project.title,
96
- className: isSelected ? "bg-gray-50" : "",
97
- onSelect: () => onSelectProject(project),
98
- children: /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between w-full cursor-pointer", children: [
99
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 w-full", children: [
100
- /* @__PURE__ */ jsx(
101
- Image,
102
- {
103
- alt: "Icon Project",
104
- src: project.photo ? `${process.env.NEXT_PUBLIC_STORAGE_URL}/${project.photo}` : "/images/Logomark.png",
105
- width: 32,
106
- height: 32,
107
- className: "rounded-lg"
108
- }
109
- ),
110
- project.title
111
- ] }),
112
- isSelected && /* @__PURE__ */ jsx(CheckIcon, { className: "size-4 text-gray-950" })
113
- ] })
114
- },
115
- project.id
116
- );
117
- })
118
- ] }) })
119
- ] })
120
- ] })
121
- }
122
- )
123
- ] });
124
- }
125
- export {
126
- ProjectSelectorPopover
127
- };
128
- //# sourceMappingURL=ProjectSelectorPopover.mjs.map
@@ -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 Image from 'next/image';\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":";AAUM;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 w-[120px] 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 w-[120px] 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":"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","names":[]}
@@ -1 +0,0 @@
1
- //# sourceMappingURL=types.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}