@greatapps/common 1.1.260 → 1.1.262

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 (275) hide show
  1. package/dist/components/account/ConfigurationsMyAccountModal.mjs +1 -1
  2. package/dist/components/account/ConfigurationsMyAccountModal.mjs.map +1 -1
  3. package/dist/components/account/ConfirmDeleteAccountModal.mjs.map +1 -1
  4. package/dist/components/account/ConfirmGlobalPreferencesModal.mjs.map +1 -1
  5. package/dist/components/account/DeleteAccountModal.mjs.map +1 -1
  6. package/dist/components/account/DisableTwoFactorAuthModal.mjs.map +1 -1
  7. package/dist/components/account/IsntPossibleDeleteAccountModal.mjs.map +1 -1
  8. package/dist/components/account/TwoFactorAuthModal.mjs.map +1 -1
  9. package/dist/components/account/hooks/useChangePhoneForm.mjs.map +1 -1
  10. package/dist/components/account/hooks/useConfigurationsModal.mjs +3 -2
  11. package/dist/components/account/hooks/useConfigurationsModal.mjs.map +1 -1
  12. package/dist/components/account/hooks/useTwoFactorAuthForm.mjs.map +1 -1
  13. package/dist/components/account/sections/ChangeEmailModal.mjs.map +1 -1
  14. package/dist/components/account/sections/ChangePasswordSection.mjs.map +1 -1
  15. package/dist/components/account/sections/ChangePhoneModal.mjs.map +1 -1
  16. package/dist/components/account/sections/MyProfileSection.mjs.map +1 -1
  17. package/dist/components/account/sections/PreferencesSection.mjs.map +1 -1
  18. package/dist/components/account/sections/SecuritySection.mjs.map +1 -1
  19. package/dist/components/embeds/CrispEmbed.mjs.map +1 -1
  20. package/dist/components/embeds/FrillEmbed.mjs.map +1 -1
  21. package/dist/components/layouts/AppMobileNavBar.mjs +1 -1
  22. package/dist/components/layouts/AppMobileNavBar.mjs.map +1 -1
  23. package/dist/components/layouts/AppNavBar.mjs.map +1 -1
  24. package/dist/components/layouts/MdSideBarNavigation.mjs.map +1 -1
  25. package/dist/components/layouts/NavBar.mjs.map +1 -1
  26. package/dist/components/layouts/NotificationsPopover.mjs.map +1 -1
  27. package/dist/components/layouts/ProfilePopover.mjs.map +1 -1
  28. package/dist/components/layouts/UsersSelectorPopover.mjs.map +1 -1
  29. package/dist/components/modals/BuyCreditsModal.mjs.map +1 -1
  30. package/dist/components/navigation/CancelledSubscriptionBanner.mjs.map +1 -1
  31. package/dist/components/navigation/NavItemsContext.mjs.map +1 -1
  32. package/dist/components/navigation/ProjectSelectorPopover.mjs.map +1 -1
  33. package/dist/components/navigation/shells/TabsMobileShell.mjs.map +1 -1
  34. package/dist/components/navigation/subcomponents/ProjectSelector.mjs.map +1 -1
  35. package/dist/components/pages/notifications/Notifications.mjs.map +1 -1
  36. package/dist/components/ui/buttons/Button.mjs.map +1 -1
  37. package/dist/components/ui/buttons/CancelButton.mjs.map +1 -1
  38. package/dist/components/ui/buttons/CopyButton.mjs.map +1 -1
  39. package/dist/components/ui/data-display/Accordion.mjs.map +1 -1
  40. package/dist/components/ui/data-display/Badge.mjs.map +1 -1
  41. package/dist/components/ui/data-display/Card.mjs.map +1 -1
  42. package/dist/components/ui/data-display/CardBrandIcons.mjs.map +1 -1
  43. package/dist/components/ui/data-display/CardItem.mjs.map +1 -1
  44. package/dist/components/ui/data-display/Pagination.mjs.map +1 -1
  45. package/dist/components/ui/data-display/PaymentInfoCard.mjs.map +1 -1
  46. package/dist/components/ui/data-display/ScrollArea.mjs.map +1 -1
  47. package/dist/components/ui/data-display/Separator.mjs.map +1 -1
  48. package/dist/components/ui/data-display/Table.mjs.map +1 -1
  49. package/dist/components/ui/data-display/Tabs.mjs.map +1 -1
  50. package/dist/components/ui/feedback/CircularProgress.mjs.map +1 -1
  51. package/dist/components/ui/feedback/DefaultCircularProgress.mjs.map +1 -1
  52. package/dist/components/ui/feedback/LoadingOverlay.mjs.map +1 -1
  53. package/dist/components/ui/feedback/Progress.mjs.map +1 -1
  54. package/dist/components/ui/feedback/Skeleton.mjs.map +1 -1
  55. package/dist/components/ui/feedback/Toast.mjs.map +1 -1
  56. package/dist/components/ui/form/Calendar.mjs.map +1 -1
  57. package/dist/components/ui/form/Checkbox.mjs.map +1 -1
  58. package/dist/components/ui/form/ComboboxField.mjs.map +1 -1
  59. package/dist/components/ui/form/DatePicker.mjs.map +1 -1
  60. package/dist/components/ui/form/DateRangePicker.mjs.map +1 -1
  61. package/dist/components/ui/form/FormField.mjs.map +1 -1
  62. package/dist/components/ui/form/Input.mjs.map +1 -1
  63. package/dist/components/ui/form/InputOtp.mjs.map +1 -1
  64. package/dist/components/ui/form/PhoneInput.mjs.map +1 -1
  65. package/dist/components/ui/form/RadioGroup.mjs.map +1 -1
  66. package/dist/components/ui/form/Select.mjs +1 -1
  67. package/dist/components/ui/form/Select.mjs.map +1 -1
  68. package/dist/components/ui/form/Switch.mjs.map +1 -1
  69. package/dist/components/ui/form/Textarea.mjs.map +1 -1
  70. package/dist/components/ui/overlay/Command.mjs.map +1 -1
  71. package/dist/components/ui/overlay/Dialog.mjs.map +1 -1
  72. package/dist/components/ui/overlay/Popover.mjs.map +1 -1
  73. package/dist/components/ui/overlay/Sheet.mjs.map +1 -1
  74. package/dist/components/ui/overlay/Tooltip.mjs.map +1 -1
  75. package/dist/hooks/copy-to-clipboard.hook.mjs.map +1 -1
  76. package/dist/index.mjs.map +1 -1
  77. package/dist/middleware.mjs.map +1 -1
  78. package/dist/modules/accounts/actions/account-management.action.mjs.map +1 -1
  79. package/dist/modules/accounts/actions/find-current-account.action.mjs.map +1 -1
  80. package/dist/modules/accounts/actions/list-currencies.action.mjs.map +1 -1
  81. package/dist/modules/accounts/actions/list-timezones.action.mjs.map +1 -1
  82. package/dist/modules/accounts/hooks/current-account.hook.mjs.map +1 -1
  83. package/dist/modules/accounts/hooks/useAccountManagement.mjs.map +1 -1
  84. package/dist/modules/accounts/hooks/useCurrencies.mjs.map +1 -1
  85. package/dist/modules/accounts/hooks/useTimezones.mjs.map +1 -1
  86. package/dist/modules/accounts/services/account.service.mjs.map +1 -1
  87. package/dist/modules/auth/actions/validate-session.action.mjs.map +1 -1
  88. package/dist/modules/auth/hooks/login.hook.mjs.map +1 -1
  89. package/dist/modules/auth/hooks/logout.hook.mjs.map +1 -1
  90. package/dist/modules/auth/hooks/register.hook.mjs.map +1 -1
  91. package/dist/modules/cards/actions/list-cards.action.mjs.map +1 -1
  92. package/dist/modules/cards/hooks/cards.hook.mjs.map +1 -1
  93. package/dist/modules/cards/services/cards.service.mjs.map +1 -1
  94. package/dist/modules/cards/types.mjs.map +1 -1
  95. package/dist/modules/ia-credits/actions/list-ia-credits.action.mjs.map +1 -1
  96. package/dist/modules/plans/actions/find-plan-by-id.action.mjs.map +1 -1
  97. package/dist/modules/plans/hooks/use-has-plan-addon.hook.mjs.map +1 -1
  98. package/dist/modules/plans/hooks/use-plan-by-id.hook.mjs.map +1 -1
  99. package/dist/modules/plans/services/plans.service.mjs.map +1 -1
  100. package/dist/modules/plans/types/plan.type.mjs.map +1 -1
  101. package/dist/modules/projects/actions/add-project-user.action.mjs.map +1 -1
  102. package/dist/modules/projects/actions/list-all-account-users.action.mjs.map +1 -1
  103. package/dist/modules/projects/actions/list-available-users.action.mjs.map +1 -1
  104. package/dist/modules/projects/actions/list-project-users.action.mjs.map +1 -1
  105. package/dist/modules/projects/actions/remove-project-user.action.mjs.map +1 -1
  106. package/dist/modules/projects/hooks/add-project-user.hook.mjs.map +1 -1
  107. package/dist/modules/projects/hooks/list-all-account-users.hook.mjs.map +1 -1
  108. package/dist/modules/projects/hooks/list-available-users.hook.mjs.map +1 -1
  109. package/dist/modules/projects/hooks/list-project-users.hook.mjs.map +1 -1
  110. package/dist/modules/projects/hooks/remove-project-user.hook.mjs.map +1 -1
  111. package/dist/modules/subscriptions/actions/calculate-subscription.action.mjs.map +1 -1
  112. package/dist/modules/subscriptions/actions/list-subscriptions.action.mjs.map +1 -1
  113. package/dist/modules/subscriptions/actions/update-subscription-plan.action.mjs.map +1 -1
  114. package/dist/modules/subscriptions/constants/query-keys.constants.mjs.map +1 -1
  115. package/dist/modules/subscriptions/hooks/calculate-subscription.hook.mjs.map +1 -1
  116. package/dist/modules/subscriptions/hooks/find-active-subscription.hook.mjs.map +1 -1
  117. package/dist/modules/subscriptions/hooks/list-subscriptions.hook.mjs.map +1 -1
  118. package/dist/modules/subscriptions/hooks/update-subscription-plan.hook.mjs.map +1 -1
  119. package/dist/modules/subscriptions/types/calculate-subscription.type.mjs.map +1 -1
  120. package/dist/modules/subscriptions/utils/build-plan-extras.mjs.map +1 -1
  121. package/dist/modules/subscriptions/utils/periodicity.mjs.map +1 -1
  122. package/dist/modules/subscriptions/utils/resolve-plan-extras-prices.mjs.map +1 -1
  123. package/dist/modules/users/action/find-user-by-id.action.mjs.map +1 -1
  124. package/dist/modules/users/action/list-messages.action.mjs.map +1 -1
  125. package/dist/modules/users/action/mark-all-messages-as-read.action.mjs.map +1 -1
  126. package/dist/modules/users/action/mark-message-as-read.action.mjs.map +1 -1
  127. package/dist/modules/users/hooks/messages.hook.mjs.map +1 -1
  128. package/dist/modules/whitelabel/actions/find-whitelabel-styles.action.mjs.map +1 -1
  129. package/dist/modules/whitelabel/actions/find-whitelabel.action.mjs.map +1 -1
  130. package/dist/modules/whitelabel/actions/revalidate-whitelabel-styles.action.mjs.map +1 -1
  131. package/dist/modules/whitelabel/actions/revalidate-whitelabel.action.mjs.map +1 -1
  132. package/dist/modules/whitelabel/services/whitelabel-styles.service.mjs.map +1 -1
  133. package/dist/providers/whitelabel.provider.mjs.map +1 -1
  134. package/dist/store/useBuyCreditsModal.mjs.map +1 -1
  135. package/dist/utils/countries.mjs.map +1 -1
  136. package/dist/utils/safeServerAction.mjs.map +1 -1
  137. package/dist/utils/withAction.mjs.map +1 -1
  138. package/package.json +89 -89
  139. package/src/components/account/ConfigurationsMyAccountModal.tsx +150 -150
  140. package/src/components/account/ConfirmDeleteAccountModal.tsx +55 -55
  141. package/src/components/account/ConfirmGlobalPreferencesModal.tsx +66 -66
  142. package/src/components/account/DeleteAccountModal.tsx +130 -130
  143. package/src/components/account/DisableTwoFactorAuthModal.tsx +86 -86
  144. package/src/components/account/IsntPossibleDeleteAccountModal.tsx +49 -49
  145. package/src/components/account/TwoFactorAuthModal.tsx +223 -223
  146. package/src/components/account/hooks/useChangePhoneForm.tsx +81 -81
  147. package/src/components/account/hooks/useConfigurationsModal.ts +11 -6
  148. package/src/components/account/hooks/useTwoFactorAuthForm.tsx +101 -101
  149. package/src/components/account/sections/ChangeEmailModal.tsx +225 -225
  150. package/src/components/account/sections/ChangePasswordSection.tsx +64 -64
  151. package/src/components/account/sections/ChangePhoneModal.tsx +231 -231
  152. package/src/components/account/sections/MyProfileSection.tsx +327 -327
  153. package/src/components/account/sections/PreferencesSection.tsx +273 -273
  154. package/src/components/account/sections/SecuritySection.tsx +160 -160
  155. package/src/components/embeds/CrispEmbed.tsx +101 -101
  156. package/src/components/embeds/FrillEmbed.tsx +119 -119
  157. package/src/components/layouts/AppMobileNavBar.tsx +118 -118
  158. package/src/components/layouts/AppNavBar.tsx +51 -51
  159. package/src/components/layouts/MdSideBarNavigation.tsx +56 -56
  160. package/src/components/layouts/NavBar.tsx +120 -120
  161. package/src/components/layouts/NotificationsPopover.tsx +115 -115
  162. package/src/components/layouts/ProfilePopover.tsx +164 -164
  163. package/src/components/layouts/UsersSelectorPopover.tsx +238 -238
  164. package/src/components/modals/BuyCreditsModal.tsx +301 -301
  165. package/src/components/navigation/CancelledSubscriptionBanner.tsx +69 -69
  166. package/src/components/navigation/NavItemsContext.ts +20 -20
  167. package/src/components/navigation/ProjectSelectorPopover.tsx +157 -157
  168. package/src/components/navigation/shells/TabsMobileShell.tsx +72 -72
  169. package/src/components/navigation/subcomponents/ProjectSelector.tsx +156 -156
  170. package/src/components/pages/notifications/Notifications.tsx +160 -160
  171. package/src/components/ui/buttons/Button.tsx +57 -57
  172. package/src/components/ui/buttons/CancelButton.tsx +14 -14
  173. package/src/components/ui/buttons/CopyButton.tsx +54 -54
  174. package/src/components/ui/data-display/Accordion.tsx +81 -81
  175. package/src/components/ui/data-display/Badge.tsx +47 -47
  176. package/src/components/ui/data-display/Card.tsx +93 -93
  177. package/src/components/ui/data-display/CardBrandIcons.tsx +336 -336
  178. package/src/components/ui/data-display/CardItem.tsx +75 -75
  179. package/src/components/ui/data-display/Pagination.tsx +126 -126
  180. package/src/components/ui/data-display/PaymentInfoCard.tsx +186 -186
  181. package/src/components/ui/data-display/ScrollArea.tsx +59 -59
  182. package/src/components/ui/data-display/Separator.tsx +29 -29
  183. package/src/components/ui/data-display/Table.tsx +117 -117
  184. package/src/components/ui/data-display/Tabs.tsx +67 -67
  185. package/src/components/ui/feedback/CircularProgress.tsx +75 -75
  186. package/src/components/ui/feedback/DefaultCircularProgress.tsx +61 -61
  187. package/src/components/ui/feedback/LoadingOverlay.tsx +31 -31
  188. package/src/components/ui/feedback/Progress.tsx +40 -40
  189. package/src/components/ui/feedback/Skeleton.tsx +5 -5
  190. package/src/components/ui/feedback/Toast.tsx +101 -101
  191. package/src/components/ui/form/Calendar.tsx +228 -228
  192. package/src/components/ui/form/Checkbox.tsx +31 -31
  193. package/src/components/ui/form/ComboboxField.tsx +154 -154
  194. package/src/components/ui/form/DatePicker.tsx +97 -97
  195. package/src/components/ui/form/DateRangePicker.tsx +108 -108
  196. package/src/components/ui/form/FormField.tsx +131 -131
  197. package/src/components/ui/form/Input.tsx +20 -20
  198. package/src/components/ui/form/InputOtp.tsx +80 -80
  199. package/src/components/ui/form/PhoneInput.tsx +205 -205
  200. package/src/components/ui/form/RadioGroup.tsx +45 -45
  201. package/src/components/ui/form/Select.tsx +200 -200
  202. package/src/components/ui/form/Switch.tsx +32 -32
  203. package/src/components/ui/form/Textarea.tsx +19 -19
  204. package/src/components/ui/overlay/Command.tsx +185 -185
  205. package/src/components/ui/overlay/Dialog.tsx +151 -151
  206. package/src/components/ui/overlay/Popover.tsx +49 -49
  207. package/src/components/ui/overlay/Sheet.tsx +166 -166
  208. package/src/components/ui/overlay/Tooltip.tsx +62 -62
  209. package/src/hooks/copy-to-clipboard.hook.tsx +67 -67
  210. package/src/index.ts +376 -376
  211. package/src/middleware.ts +4 -4
  212. package/src/modules/accounts/actions/account-management.action.ts +91 -91
  213. package/src/modules/accounts/actions/find-current-account.action.ts +9 -9
  214. package/src/modules/accounts/actions/list-currencies.action.ts +8 -8
  215. package/src/modules/accounts/actions/list-timezones.action.ts +8 -8
  216. package/src/modules/accounts/hooks/current-account.hook.tsx +22 -22
  217. package/src/modules/accounts/hooks/useAccountManagement.ts +85 -85
  218. package/src/modules/accounts/hooks/useCurrencies.ts +15 -15
  219. package/src/modules/accounts/hooks/useTimezones.ts +15 -15
  220. package/src/modules/accounts/services/account.service.ts +236 -236
  221. package/src/modules/accounts/types.ts +214 -214
  222. package/src/modules/auth/actions/validate-session.action.ts +56 -56
  223. package/src/modules/auth/hooks/login.hook.tsx +13 -13
  224. package/src/modules/auth/hooks/logout.hook.tsx +11 -11
  225. package/src/modules/auth/hooks/register.hook.tsx +11 -11
  226. package/src/modules/cards/actions/list-cards.action.ts +8 -8
  227. package/src/modules/cards/hooks/cards.hook.ts +14 -14
  228. package/src/modules/cards/services/cards.service.ts +32 -32
  229. package/src/modules/cards/types.ts +32 -32
  230. package/src/modules/ia-credits/actions/list-ia-credits.action.ts +8 -8
  231. package/src/modules/plans/actions/find-plan-by-id.action.ts +8 -8
  232. package/src/modules/plans/hooks/use-has-plan-addon.hook.ts +17 -17
  233. package/src/modules/plans/hooks/use-plan-by-id.hook.ts +13 -13
  234. package/src/modules/plans/services/plans.service.ts +36 -36
  235. package/src/modules/plans/types/plan.type.ts +21 -21
  236. package/src/modules/projects/actions/add-project-user.action.ts +9 -9
  237. package/src/modules/projects/actions/list-all-account-users.action.ts +9 -9
  238. package/src/modules/projects/actions/list-available-users.action.ts +9 -9
  239. package/src/modules/projects/actions/list-project-users.action.ts +9 -9
  240. package/src/modules/projects/actions/remove-project-user.action.ts +9 -9
  241. package/src/modules/projects/hooks/add-project-user.hook.ts +69 -69
  242. package/src/modules/projects/hooks/list-all-account-users.hook.ts +34 -34
  243. package/src/modules/projects/hooks/list-available-users.hook.ts +33 -33
  244. package/src/modules/projects/hooks/list-project-users.hook.ts +33 -33
  245. package/src/modules/projects/hooks/remove-project-user.hook.ts +69 -69
  246. package/src/modules/subscriptions/actions/calculate-subscription.action.ts +9 -9
  247. package/src/modules/subscriptions/actions/list-subscriptions.action.ts +9 -9
  248. package/src/modules/subscriptions/actions/update-subscription-plan.action.ts +26 -26
  249. package/src/modules/subscriptions/constants/query-keys.constants.ts +1 -1
  250. package/src/modules/subscriptions/hooks/calculate-subscription.hook.ts +13 -13
  251. package/src/modules/subscriptions/hooks/find-active-subscription.hook.ts +19 -19
  252. package/src/modules/subscriptions/hooks/list-subscriptions.hook.ts +16 -16
  253. package/src/modules/subscriptions/hooks/update-subscription-plan.hook.ts +25 -25
  254. package/src/modules/subscriptions/types/billing-period.type.ts +1 -1
  255. package/src/modules/subscriptions/types/calculate-subscription.type.ts +75 -75
  256. package/src/modules/subscriptions/utils/build-plan-extras.ts +56 -56
  257. package/src/modules/subscriptions/utils/periodicity.ts +52 -52
  258. package/src/modules/subscriptions/utils/resolve-plan-extras-prices.ts +23 -23
  259. package/src/modules/users/action/find-user-by-id.action.ts +8 -8
  260. package/src/modules/users/action/list-messages.action.ts +12 -12
  261. package/src/modules/users/action/mark-all-messages-as-read.action.ts +8 -8
  262. package/src/modules/users/action/mark-message-as-read.action.ts +8 -8
  263. package/src/modules/users/hooks/messages.hook.ts +60 -60
  264. package/src/modules/whitelabel/actions/find-whitelabel-styles.action.ts +14 -14
  265. package/src/modules/whitelabel/actions/find-whitelabel.action.ts +23 -23
  266. package/src/modules/whitelabel/actions/revalidate-whitelabel-styles.action.ts +10 -10
  267. package/src/modules/whitelabel/actions/revalidate-whitelabel.action.ts +19 -19
  268. package/src/modules/whitelabel/schema.ts +83 -83
  269. package/src/modules/whitelabel/services/whitelabel-styles.service.ts +129 -129
  270. package/src/modules/whitelabel/styles-schema.ts +37 -37
  271. package/src/providers/whitelabel.provider.tsx +54 -54
  272. package/src/store/useBuyCreditsModal.ts +25 -25
  273. package/src/utils/countries.ts +224 -224
  274. package/src/utils/safeServerAction.ts +21 -21
  275. package/src/utils/withAction.ts +13 -13
@@ -1,56 +1,56 @@
1
- 'use client';
2
-
3
- "use client"
4
-
5
- import * as React from "react"
6
- import { IconChevronLeft } from '@tabler/icons-react'
7
- import { useMdSidebarStore } from "../../store/useMdSidebarStore"
8
- import { cn } from "../../infra/utils/clsx"
9
- import { Tooltip, TooltipContent, TooltipTrigger } from "../ui/overlay/Tooltip"
10
-
11
- function MdSideBarNavigation({
12
- className,
13
- children,
14
- ...props
15
- }: React.ComponentProps<"div">) {
16
- const { isExpanded, collapse } = useMdSidebarStore()
17
-
18
- return (
19
- <>
20
- <div
21
- className={`hidden md:block lg:hidden fixed inset-0 bg-black/50 z-20 transition-opacity duration-300 ${
22
- isExpanded ? "opacity-100" : "opacity-0 pointer-events-none"
23
- }`}
24
- onClick={collapse}
25
- />
26
- <div
27
- className={`hidden md:flex lg:hidden fixed top-0 bottom-0 left-[73px] z-30 transition-transform duration-300 ease-in-out overflow-visible ${
28
- isExpanded ? "translate-x-0" : "-translate-x-full"
29
- }`}
30
- >
31
- <div
32
- data-slot="md-sidebar-navigation"
33
- className={cn("relative w-[273px] h-full flex flex-col p-4 bg-white border-r border-gray-200", className)}
34
- {...props}
35
- >
36
- {isExpanded && (
37
- <Tooltip>
38
- <TooltipTrigger asChild>
39
- <button
40
- onClick={collapse}
41
- className="absolute top-[68px] -right-4 size-8 flex items-center justify-center rounded-full border border-gray-200 bg-white hover:bg-gray-100 cursor-pointer transition-colors z-40"
42
- >
43
- <IconChevronLeft size={16} className="text-gray-500" />
44
- </button>
45
- </TooltipTrigger>
46
- <TooltipContent side="right">Recolher menu</TooltipContent>
47
- </Tooltip>
48
- )}
49
- {children}
50
- </div>
51
- </div>
52
- </>
53
- )
54
- }
55
-
56
- export { MdSideBarNavigation };
1
+ 'use client';
2
+
3
+ "use client"
4
+
5
+ import * as React from "react"
6
+ import { IconChevronLeft } from '@tabler/icons-react'
7
+ import { useMdSidebarStore } from "../../store/useMdSidebarStore"
8
+ import { cn } from "../../infra/utils/clsx"
9
+ import { Tooltip, TooltipContent, TooltipTrigger } from "../ui/overlay/Tooltip"
10
+
11
+ function MdSideBarNavigation({
12
+ className,
13
+ children,
14
+ ...props
15
+ }: React.ComponentProps<"div">) {
16
+ const { isExpanded, collapse } = useMdSidebarStore()
17
+
18
+ return (
19
+ <>
20
+ <div
21
+ className={`hidden md:block lg:hidden fixed inset-0 bg-black/50 z-20 transition-opacity duration-300 ${
22
+ isExpanded ? "opacity-100" : "opacity-0 pointer-events-none"
23
+ }`}
24
+ onClick={collapse}
25
+ />
26
+ <div
27
+ className={`hidden md:flex lg:hidden fixed top-0 bottom-0 left-[73px] z-30 transition-transform duration-300 ease-in-out overflow-visible ${
28
+ isExpanded ? "translate-x-0" : "-translate-x-full"
29
+ }`}
30
+ >
31
+ <div
32
+ data-slot="md-sidebar-navigation"
33
+ className={cn("relative w-[273px] h-full flex flex-col p-4 bg-white border-r border-gray-200", className)}
34
+ {...props}
35
+ >
36
+ {isExpanded && (
37
+ <Tooltip>
38
+ <TooltipTrigger asChild>
39
+ <button
40
+ onClick={collapse}
41
+ className="absolute top-[68px] -right-4 size-8 flex items-center justify-center rounded-full border border-gray-200 bg-white hover:bg-gray-100 cursor-pointer transition-colors z-40"
42
+ >
43
+ <IconChevronLeft size={16} className="text-gray-500" />
44
+ </button>
45
+ </TooltipTrigger>
46
+ <TooltipContent side="right">Recolher menu</TooltipContent>
47
+ </Tooltip>
48
+ )}
49
+ {children}
50
+ </div>
51
+ </div>
52
+ </>
53
+ )
54
+ }
55
+
56
+ export { MdSideBarNavigation };
@@ -1,120 +1,120 @@
1
- "use client";
2
-
3
- import * as React from "react";
4
- import Image from "next/image";
5
- import { IconChevronRight } from "@tabler/icons-react";
6
- import { Separator } from "../ui/data-display/Separator";
7
- import { Tooltip, TooltipContent, TooltipTrigger } from "../ui/overlay/Tooltip";
8
- import { cn } from "../../infra/utils/clsx";
9
-
10
- type NavBarProps = {
11
- onLogoClick: () => void;
12
- onAppIconClick?: () => void;
13
- activeApp?: "gapps" | "gpages";
14
- showExpandButton?: boolean;
15
- onExpandClick?: () => void;
16
- children?: React.ReactNode;
17
- className?: string;
18
- };
19
-
20
- function NavBar({
21
- onLogoClick,
22
- onAppIconClick,
23
- activeApp,
24
- showExpandButton = false,
25
- onExpandClick,
26
- children,
27
- className,
28
- }: NavBarProps) {
29
- return (
30
- <div
31
- className={cn(
32
- "hidden md:flex flex-col justify-between h-screen p-4 border-r border-gray-200 overflow-visible z-40 bg-white",
33
- className,
34
- )}
35
- >
36
- <div className="flex flex-col gap-4 items-center mt-[6.5px]">
37
- {/* GreatApps logo */}
38
- <div className="relative">
39
- <Tooltip>
40
- <TooltipTrigger
41
- className="cursor-pointer"
42
- asChild
43
- onClick={onLogoClick}
44
- >
45
- <Image
46
- src="/icons/great-icon.svg"
47
- alt="Great Icon"
48
- width={28}
49
- height={28}
50
- />
51
- </TooltipTrigger>
52
- <TooltipContent side="right">Great</TooltipContent>
53
- </Tooltip>
54
- <div
55
- className={cn(
56
- "absolute -left-[22px] top-1/2 -translate-y-1/2 z-10 w-[3px] h-5 bg-gray-950 rounded-r-xl transition-opacity duration-300",
57
- activeApp === "gapps" ? "opacity-100" : "opacity-0",
58
- )}
59
- />
60
- </div>
61
-
62
- <div className="relative w-full mt-[7.5px]">
63
- <Separator />
64
- {showExpandButton && (
65
- <Tooltip>
66
- <TooltipTrigger asChild>
67
- <button
68
- onClick={onExpandClick}
69
- className="lg:hidden absolute top-1/2 -translate-y-1/2 right-0 translate-x-[calc(50%+1rem)] size-8 flex items-center justify-center rounded-full border border-gray-200 bg-white hover:bg-gray-100 cursor-pointer transition-colors z-10"
70
- >
71
- <IconChevronRight size={16} className="text-gray-500" />
72
- </button>
73
- </TooltipTrigger>
74
- <TooltipContent side="right">Expandir menu</TooltipContent>
75
- </Tooltip>
76
- )}
77
- </div>
78
-
79
- {/* GreatPages icon */}
80
- <div className="relative">
81
- <Tooltip>
82
- <TooltipTrigger asChild onClick={onAppIconClick}>
83
- {activeApp === "gpages" ? (
84
- <div className="size-10 rounded-lg cursor-pointer flex items-center justify-center bg-cyan-100 border-2 border-white ring-2 ring-cyan-300">
85
- <Image
86
- src="/icons/icon-navbar.svg"
87
- alt="GreatPages"
88
- width={24}
89
- height={24}
90
- />
91
- </div>
92
- ) : (
93
- <div className="size-10 flex items-center justify-center rounded-lg cursor-pointer hover:bg-gray-100 transition-colors duration-300 border-2 border-transparent ring-2 ring-transparent">
94
- <Image
95
- src="/icons/icon-navbar.svg"
96
- alt="GreatPages"
97
- width={24}
98
- height={24}
99
- />
100
- </div>
101
- )}
102
- </TooltipTrigger>
103
- <TooltipContent side="right">GreatPages</TooltipContent>
104
- </Tooltip>
105
- <div
106
- className={cn(
107
- "absolute -left-4 top-1/2 -translate-y-1/2 z-10 w-[3px] h-5 bg-cyan-300 rounded-r-xl transition-opacity duration-300",
108
- activeApp === "gpages" ? "opacity-100" : "opacity-0",
109
- )}
110
- />
111
- </div>
112
- </div>
113
-
114
- <div className="flex flex-col items-center gap-2">{children}</div>
115
- </div>
116
- );
117
- }
118
-
119
- export { NavBar };
120
- export type { NavBarProps };
1
+ "use client";
2
+
3
+ import * as React from "react";
4
+ import Image from "next/image";
5
+ import { IconChevronRight } from "@tabler/icons-react";
6
+ import { Separator } from "../ui/data-display/Separator";
7
+ import { Tooltip, TooltipContent, TooltipTrigger } from "../ui/overlay/Tooltip";
8
+ import { cn } from "../../infra/utils/clsx";
9
+
10
+ type NavBarProps = {
11
+ onLogoClick: () => void;
12
+ onAppIconClick?: () => void;
13
+ activeApp?: "gapps" | "gpages";
14
+ showExpandButton?: boolean;
15
+ onExpandClick?: () => void;
16
+ children?: React.ReactNode;
17
+ className?: string;
18
+ };
19
+
20
+ function NavBar({
21
+ onLogoClick,
22
+ onAppIconClick,
23
+ activeApp,
24
+ showExpandButton = false,
25
+ onExpandClick,
26
+ children,
27
+ className,
28
+ }: NavBarProps) {
29
+ return (
30
+ <div
31
+ className={cn(
32
+ "hidden md:flex flex-col justify-between h-screen p-4 border-r border-gray-200 overflow-visible z-40 bg-white",
33
+ className,
34
+ )}
35
+ >
36
+ <div className="flex flex-col gap-4 items-center mt-[6.5px]">
37
+ {/* GreatApps logo */}
38
+ <div className="relative">
39
+ <Tooltip>
40
+ <TooltipTrigger
41
+ className="cursor-pointer"
42
+ asChild
43
+ onClick={onLogoClick}
44
+ >
45
+ <Image
46
+ src="/icons/great-icon.svg"
47
+ alt="Great Icon"
48
+ width={28}
49
+ height={28}
50
+ />
51
+ </TooltipTrigger>
52
+ <TooltipContent side="right">Great</TooltipContent>
53
+ </Tooltip>
54
+ <div
55
+ className={cn(
56
+ "absolute -left-[22px] top-1/2 -translate-y-1/2 z-10 w-[3px] h-5 bg-gray-950 rounded-r-xl transition-opacity duration-300",
57
+ activeApp === "gapps" ? "opacity-100" : "opacity-0",
58
+ )}
59
+ />
60
+ </div>
61
+
62
+ <div className="relative w-full mt-[7.5px]">
63
+ <Separator />
64
+ {showExpandButton && (
65
+ <Tooltip>
66
+ <TooltipTrigger asChild>
67
+ <button
68
+ onClick={onExpandClick}
69
+ className="lg:hidden absolute top-1/2 -translate-y-1/2 right-0 translate-x-[calc(50%+1rem)] size-8 flex items-center justify-center rounded-full border border-gray-200 bg-white hover:bg-gray-100 cursor-pointer transition-colors z-10"
70
+ >
71
+ <IconChevronRight size={16} className="text-gray-500" />
72
+ </button>
73
+ </TooltipTrigger>
74
+ <TooltipContent side="right">Expandir menu</TooltipContent>
75
+ </Tooltip>
76
+ )}
77
+ </div>
78
+
79
+ {/* GreatPages icon */}
80
+ <div className="relative">
81
+ <Tooltip>
82
+ <TooltipTrigger asChild onClick={onAppIconClick}>
83
+ {activeApp === "gpages" ? (
84
+ <div className="size-10 rounded-lg cursor-pointer flex items-center justify-center bg-cyan-100 border-2 border-white ring-2 ring-cyan-300">
85
+ <Image
86
+ src="/icons/icon-navbar.svg"
87
+ alt="GreatPages"
88
+ width={24}
89
+ height={24}
90
+ />
91
+ </div>
92
+ ) : (
93
+ <div className="size-10 flex items-center justify-center rounded-lg cursor-pointer hover:bg-gray-100 transition-colors duration-300 border-2 border-transparent ring-2 ring-transparent">
94
+ <Image
95
+ src="/icons/icon-navbar.svg"
96
+ alt="GreatPages"
97
+ width={24}
98
+ height={24}
99
+ />
100
+ </div>
101
+ )}
102
+ </TooltipTrigger>
103
+ <TooltipContent side="right">GreatPages</TooltipContent>
104
+ </Tooltip>
105
+ <div
106
+ className={cn(
107
+ "absolute -left-4 top-1/2 -translate-y-1/2 z-10 w-[3px] h-5 bg-cyan-300 rounded-r-xl transition-opacity duration-300",
108
+ activeApp === "gpages" ? "opacity-100" : "opacity-0",
109
+ )}
110
+ />
111
+ </div>
112
+ </div>
113
+
114
+ <div className="flex flex-col items-center gap-2">{children}</div>
115
+ </div>
116
+ );
117
+ }
118
+
119
+ export { NavBar };
120
+ export type { NavBarProps };
@@ -1,115 +1,115 @@
1
- "use client";
2
-
3
- import { useState } from "react";
4
- import { IconBell } from '@tabler/icons-react';
5
- import * as PopoverPrimitive from "@radix-ui/react-popover";
6
- import { Popover } from "../ui/overlay/Popover";
7
- import { Button } from "../ui/buttons/Button";
8
- import NotificationCard from "../widgets/notifications/NotificationCard";
9
- import { cn } from "../../infra/utils/clsx";
10
- import { useMessages, useMarkAllMessagesAsRead } from "../../modules/users/hooks/messages.hook";
11
- import { formatDistanceToNow } from "date-fns";
12
- import { ptBR } from "date-fns/locale";
13
-
14
- export interface NotificationsPopoverProps {
15
- onViewAll?: () => void;
16
- side?: "top" | "bottom" | "left" | "right";
17
- align?: "start" | "center" | "end";
18
- contentClassName?: string;
19
- badgeClassName?: string;
20
- }
21
-
22
- function NotificationsPopover({
23
- onViewAll,
24
- side,
25
- align,
26
- contentClassName,
27
- badgeClassName = "bg-pages-400",
28
- }: NotificationsPopoverProps) {
29
- const [open, setOpen] = useState(false);
30
- const { data: messagesData } = useMessages({ type: 'notification', readed: true, limit: 5 });
31
- const { mutate: markAllAsRead } = useMarkAllMessagesAsRead();
32
-
33
- const messages = messagesData?.data ?? [];
34
- const totalUnread = messagesData?.totalUnread ?? 0;
35
-
36
- const handleOpenChange = (isOpen: boolean) => {
37
- setOpen(isOpen);
38
- if (isOpen && totalUnread > 0) {
39
- markAllAsRead();
40
- }
41
- };
42
-
43
- return (
44
- <Popover open={open} onOpenChange={handleOpenChange}>
45
- <PopoverPrimitive.Trigger className="cursor-pointer">
46
- <div
47
- className={`relative rounded-full p-2.5 ${open ? "bg-gray-100" : "hover:bg-gray-100"}`}
48
- >
49
- <IconBell size={20} className="text-gray-500" />
50
- {totalUnread > 0 && (
51
- <span
52
- className={cn(
53
- "absolute top-2 right-2 size-2.5 rounded-full",
54
- badgeClassName,
55
- )}
56
- />
57
- )}
58
- </div>
59
- </PopoverPrimitive.Trigger>
60
- <PopoverPrimitive.Portal>
61
- <PopoverPrimitive.Content
62
- className={cn(
63
- "absolute bottom-2 left-[26px] z-[9999] w-[308px] p-0 pt-4 bg-white rounded-2xl shadow-md border border-gray-200",
64
- contentClassName,
65
- )}
66
- side={side}
67
- align={align}
68
- sideOffset={8}
69
- >
70
- <span className="paragraph-small-semibold text-gray-950 px-4">
71
- Últimas notificações
72
- </span>
73
-
74
- {messages.length > 0 ? (
75
- messages.map((message, index) => (
76
- <NotificationCard
77
- key={message.id}
78
- icon={<IconBell size={16} />}
79
- iconBgColor="bg-gray-100"
80
- title={message.subject}
81
- time={formatDistanceToNow(new Date(message.datetime_add), {
82
- addSuffix: true,
83
- locale: ptBR,
84
- })}
85
- gapPx={6}
86
- showBorder={index < messages.length - 1}
87
- />
88
- ))
89
- ) : (
90
- <div className="flex flex-col items-center gap-4 pt-[41.5px] pb-[33.5px]">
91
- <div className="bg-gray-50 rounded-md p-2.5">
92
- <IconBell size={20} color="var(--color-gray-950)" />
93
- </div>
94
- <span className="paragraph-small-medium text-gray-950">
95
- Sem notificações por enquanto
96
- </span>
97
- </div>
98
- )}
99
-
100
- {onViewAll && (
101
- <Button
102
- variant="secondary"
103
- className="h-8! mt-2 mb-4 mx-4 paragraph-small-semibold"
104
- onClick={onViewAll}
105
- >
106
- Todas as notificações
107
- </Button>
108
- )}
109
- </PopoverPrimitive.Content>
110
- </PopoverPrimitive.Portal>
111
- </Popover>
112
- );
113
- }
114
-
115
- export { NotificationsPopover };
1
+ "use client";
2
+
3
+ import { useState } from "react";
4
+ import { IconBell } from '@tabler/icons-react';
5
+ import * as PopoverPrimitive from "@radix-ui/react-popover";
6
+ import { Popover } from "../ui/overlay/Popover";
7
+ import { Button } from "../ui/buttons/Button";
8
+ import NotificationCard from "../widgets/notifications/NotificationCard";
9
+ import { cn } from "../../infra/utils/clsx";
10
+ import { useMessages, useMarkAllMessagesAsRead } from "../../modules/users/hooks/messages.hook";
11
+ import { formatDistanceToNow } from "date-fns";
12
+ import { ptBR } from "date-fns/locale";
13
+
14
+ export interface NotificationsPopoverProps {
15
+ onViewAll?: () => void;
16
+ side?: "top" | "bottom" | "left" | "right";
17
+ align?: "start" | "center" | "end";
18
+ contentClassName?: string;
19
+ badgeClassName?: string;
20
+ }
21
+
22
+ function NotificationsPopover({
23
+ onViewAll,
24
+ side,
25
+ align,
26
+ contentClassName,
27
+ badgeClassName = "bg-pages-400",
28
+ }: NotificationsPopoverProps) {
29
+ const [open, setOpen] = useState(false);
30
+ const { data: messagesData } = useMessages({ type: 'notification', readed: true, limit: 5 });
31
+ const { mutate: markAllAsRead } = useMarkAllMessagesAsRead();
32
+
33
+ const messages = messagesData?.data ?? [];
34
+ const totalUnread = messagesData?.totalUnread ?? 0;
35
+
36
+ const handleOpenChange = (isOpen: boolean) => {
37
+ setOpen(isOpen);
38
+ if (isOpen && totalUnread > 0) {
39
+ markAllAsRead();
40
+ }
41
+ };
42
+
43
+ return (
44
+ <Popover open={open} onOpenChange={handleOpenChange}>
45
+ <PopoverPrimitive.Trigger className="cursor-pointer">
46
+ <div
47
+ className={`relative rounded-full p-2.5 ${open ? "bg-gray-100" : "hover:bg-gray-100"}`}
48
+ >
49
+ <IconBell size={20} className="text-gray-500" />
50
+ {totalUnread > 0 && (
51
+ <span
52
+ className={cn(
53
+ "absolute top-2 right-2 size-2.5 rounded-full",
54
+ badgeClassName,
55
+ )}
56
+ />
57
+ )}
58
+ </div>
59
+ </PopoverPrimitive.Trigger>
60
+ <PopoverPrimitive.Portal>
61
+ <PopoverPrimitive.Content
62
+ className={cn(
63
+ "absolute bottom-2 left-[26px] z-[9999] w-[308px] p-0 pt-4 bg-white rounded-2xl shadow-md border border-gray-200",
64
+ contentClassName,
65
+ )}
66
+ side={side}
67
+ align={align}
68
+ sideOffset={8}
69
+ >
70
+ <span className="paragraph-small-semibold text-gray-950 px-4">
71
+ Últimas notificações
72
+ </span>
73
+
74
+ {messages.length > 0 ? (
75
+ messages.map((message, index) => (
76
+ <NotificationCard
77
+ key={message.id}
78
+ icon={<IconBell size={16} />}
79
+ iconBgColor="bg-gray-100"
80
+ title={message.subject}
81
+ time={formatDistanceToNow(new Date(message.datetime_add), {
82
+ addSuffix: true,
83
+ locale: ptBR,
84
+ })}
85
+ gapPx={6}
86
+ showBorder={index < messages.length - 1}
87
+ />
88
+ ))
89
+ ) : (
90
+ <div className="flex flex-col items-center gap-4 pt-[41.5px] pb-[33.5px]">
91
+ <div className="bg-gray-50 rounded-md p-2.5">
92
+ <IconBell size={20} color="var(--color-gray-950)" />
93
+ </div>
94
+ <span className="paragraph-small-medium text-gray-950">
95
+ Sem notificações por enquanto
96
+ </span>
97
+ </div>
98
+ )}
99
+
100
+ {onViewAll && (
101
+ <Button
102
+ variant="secondary"
103
+ className="h-8! mt-2 mb-4 mx-4 paragraph-small-semibold"
104
+ onClick={onViewAll}
105
+ >
106
+ Todas as notificações
107
+ </Button>
108
+ )}
109
+ </PopoverPrimitive.Content>
110
+ </PopoverPrimitive.Portal>
111
+ </Popover>
112
+ );
113
+ }
114
+
115
+ export { NotificationsPopover };