@greatapps/common 1.1.257 → 1.1.259

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 (301) hide show
  1. package/dist/components/account/AccountModals.mjs.map +1 -1
  2. package/dist/components/account/ConfigurationsMyAccountModal.mjs +2 -2
  3. package/dist/components/account/ConfigurationsMyAccountModal.mjs.map +1 -1
  4. package/dist/components/account/ConfirmDeleteAccountModal.mjs.map +1 -1
  5. package/dist/components/account/ConfirmGlobalPreferencesModal.mjs.map +1 -1
  6. package/dist/components/account/DeleteAccountModal.mjs.map +1 -1
  7. package/dist/components/account/DisableTwoFactorAuthModal.mjs.map +1 -1
  8. package/dist/components/account/IsntPossibleDeleteAccountModal.mjs.map +1 -1
  9. package/dist/components/account/TwoFactorAuthModal.mjs.map +1 -1
  10. package/dist/components/account/hooks/useChangePhoneForm.mjs.map +1 -1
  11. package/dist/components/account/hooks/useTwoFactorAuthForm.mjs.map +1 -1
  12. package/dist/components/account/sections/ChangeEmailModal.mjs.map +1 -1
  13. package/dist/components/account/sections/ChangePasswordSection.mjs.map +1 -1
  14. package/dist/components/account/sections/ChangePhoneModal.mjs.map +1 -1
  15. package/dist/components/account/sections/MyProfileSection.mjs.map +1 -1
  16. package/dist/components/account/sections/PreferencesSection.mjs.map +1 -1
  17. package/dist/components/account/sections/SecuritySection.mjs.map +1 -1
  18. package/dist/components/embeds/CrispEmbed.mjs.map +1 -1
  19. package/dist/components/embeds/FrillEmbed.mjs.map +1 -1
  20. package/dist/components/handlers/SearchParamsHandler.mjs.map +1 -1
  21. package/dist/components/layouts/AppMobileNavBar.mjs +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 +1 -1
  29. package/dist/components/layouts/UsersSelectorPopover.mjs.map +1 -1
  30. package/dist/components/modals/BuyCreditsModal.mjs.map +1 -1
  31. package/dist/components/modals/ModalManager.mjs.map +1 -1
  32. package/dist/components/modals/Modals.mjs.map +1 -1
  33. package/dist/components/navigation/CancelledSubscriptionBanner.mjs.map +1 -1
  34. package/dist/components/navigation/NavItemsContext.mjs.map +1 -1
  35. package/dist/components/navigation/ProjectSelectorPopover.mjs.map +1 -1
  36. package/dist/components/navigation/shells/TabsMobileShell.mjs.map +1 -1
  37. package/dist/components/navigation/subcomponents/ProjectSelector.mjs.map +1 -1
  38. package/dist/components/pages/notifications/Notifications.mjs.map +1 -1
  39. package/dist/components/ui/buttons/Button.mjs.map +1 -1
  40. package/dist/components/ui/buttons/CancelButton.mjs.map +1 -1
  41. package/dist/components/ui/buttons/CopyButton.mjs.map +1 -1
  42. package/dist/components/ui/data-display/Accordion.mjs.map +1 -1
  43. package/dist/components/ui/data-display/Badge.mjs.map +1 -1
  44. package/dist/components/ui/data-display/Card.mjs.map +1 -1
  45. package/dist/components/ui/data-display/CardBrandIcons.mjs.map +1 -1
  46. package/dist/components/ui/data-display/CardItem.mjs.map +1 -1
  47. package/dist/components/ui/data-display/Pagination.mjs.map +1 -1
  48. package/dist/components/ui/data-display/PaymentInfoCard.mjs.map +1 -1
  49. package/dist/components/ui/data-display/ScrollArea.mjs.map +1 -1
  50. package/dist/components/ui/data-display/Separator.mjs.map +1 -1
  51. package/dist/components/ui/data-display/Table.mjs.map +1 -1
  52. package/dist/components/ui/data-display/Tabs.mjs.map +1 -1
  53. package/dist/components/ui/feedback/CircularProgress.mjs.map +1 -1
  54. package/dist/components/ui/feedback/DefaultCircularProgress.mjs.map +1 -1
  55. package/dist/components/ui/feedback/LoadingOverlay.mjs.map +1 -1
  56. package/dist/components/ui/feedback/Progress.mjs.map +1 -1
  57. package/dist/components/ui/feedback/Skeleton.mjs.map +1 -1
  58. package/dist/components/ui/feedback/Toast.mjs.map +1 -1
  59. package/dist/components/ui/form/Calendar.mjs.map +1 -1
  60. package/dist/components/ui/form/Checkbox.mjs.map +1 -1
  61. package/dist/components/ui/form/ComboboxField.mjs.map +1 -1
  62. package/dist/components/ui/form/DatePicker.mjs.map +1 -1
  63. package/dist/components/ui/form/DateRangePicker.mjs.map +1 -1
  64. package/dist/components/ui/form/FormField.mjs.map +1 -1
  65. package/dist/components/ui/form/Input.mjs.map +1 -1
  66. package/dist/components/ui/form/InputOtp.mjs.map +1 -1
  67. package/dist/components/ui/form/PhoneInput.mjs.map +1 -1
  68. package/dist/components/ui/form/RadioGroup.mjs.map +1 -1
  69. package/dist/components/ui/form/Select.mjs +1 -1
  70. package/dist/components/ui/form/Select.mjs.map +1 -1
  71. package/dist/components/ui/form/Switch.mjs.map +1 -1
  72. package/dist/components/ui/form/Textarea.mjs.map +1 -1
  73. package/dist/components/ui/overlay/Command.mjs.map +1 -1
  74. package/dist/components/ui/overlay/Dialog.mjs.map +1 -1
  75. package/dist/components/ui/overlay/Popover.mjs.map +1 -1
  76. package/dist/components/ui/overlay/Sheet.mjs.map +1 -1
  77. package/dist/components/ui/overlay/Tooltip.mjs.map +1 -1
  78. package/dist/components/widgets/notifications/NotificationCard.mjs.map +1 -1
  79. package/dist/hooks/copy-to-clipboard.hook.mjs.map +1 -1
  80. package/dist/hooks/useDebounce.mjs.map +1 -1
  81. package/dist/hooks/useDebounceState.mjs.map +1 -1
  82. package/dist/hooks/useDebouncedEffect.mjs.map +1 -1
  83. package/dist/index.mjs.map +1 -1
  84. package/dist/infra/utils/clsx.mjs.map +1 -1
  85. package/dist/infra/utils/parser.mjs.map +1 -1
  86. package/dist/infra/utils/percentage.mjs.map +1 -1
  87. package/dist/middleware.mjs.map +1 -1
  88. package/dist/modules/accounts/actions/account-management.action.mjs.map +1 -1
  89. package/dist/modules/accounts/actions/find-current-account.action.mjs.map +1 -1
  90. package/dist/modules/accounts/actions/list-currencies.action.mjs.map +1 -1
  91. package/dist/modules/accounts/actions/list-timezones.action.mjs.map +1 -1
  92. package/dist/modules/accounts/hooks/current-account.hook.mjs.map +1 -1
  93. package/dist/modules/accounts/hooks/useAccountManagement.mjs.map +1 -1
  94. package/dist/modules/accounts/hooks/useCurrencies.mjs.map +1 -1
  95. package/dist/modules/accounts/hooks/useTimezones.mjs.map +1 -1
  96. package/dist/modules/accounts/services/account.service.mjs.map +1 -1
  97. package/dist/modules/auth/actions/validate-session.action.mjs.map +1 -1
  98. package/dist/modules/auth/hooks/login.hook.mjs.map +1 -1
  99. package/dist/modules/auth/hooks/logout.hook.mjs.map +1 -1
  100. package/dist/modules/auth/hooks/register.hook.mjs.map +1 -1
  101. package/dist/modules/cards/actions/list-cards.action.mjs.map +1 -1
  102. package/dist/modules/cards/hooks/cards.hook.mjs.map +1 -1
  103. package/dist/modules/cards/services/cards.service.mjs.map +1 -1
  104. package/dist/modules/cards/types.mjs.map +1 -1
  105. package/dist/modules/ia-credits/actions/list-ia-credits.action.mjs.map +1 -1
  106. package/dist/modules/plans/actions/find-plan-by-id.action.mjs.map +1 -1
  107. package/dist/modules/plans/hooks/use-has-plan-addon.hook.mjs.map +1 -1
  108. package/dist/modules/plans/hooks/use-plan-by-id.hook.mjs.map +1 -1
  109. package/dist/modules/plans/services/plans.service.mjs.map +1 -1
  110. package/dist/modules/plans/types/plan.type.mjs.map +1 -1
  111. package/dist/modules/projects/actions/add-project-user.action.mjs.map +1 -1
  112. package/dist/modules/projects/actions/list-all-account-users.action.mjs.map +1 -1
  113. package/dist/modules/projects/actions/list-available-users.action.mjs.map +1 -1
  114. package/dist/modules/projects/actions/list-project-users.action.mjs.map +1 -1
  115. package/dist/modules/projects/actions/remove-project-user.action.mjs.map +1 -1
  116. package/dist/modules/projects/hooks/add-project-user.hook.mjs.map +1 -1
  117. package/dist/modules/projects/hooks/list-all-account-users.hook.mjs.map +1 -1
  118. package/dist/modules/projects/hooks/list-available-users.hook.mjs.map +1 -1
  119. package/dist/modules/projects/hooks/list-project-users.hook.mjs.map +1 -1
  120. package/dist/modules/projects/hooks/remove-project-user.hook.mjs.map +1 -1
  121. package/dist/modules/subscriptions/actions/calculate-subscription.action.mjs.map +1 -1
  122. package/dist/modules/subscriptions/actions/list-subscriptions.action.mjs.map +1 -1
  123. package/dist/modules/subscriptions/actions/update-subscription-plan.action.mjs.map +1 -1
  124. package/dist/modules/subscriptions/constants/query-keys.constants.mjs.map +1 -1
  125. package/dist/modules/subscriptions/hooks/calculate-subscription.hook.mjs.map +1 -1
  126. package/dist/modules/subscriptions/hooks/find-active-subscription.hook.mjs.map +1 -1
  127. package/dist/modules/subscriptions/hooks/list-subscriptions.hook.mjs.map +1 -1
  128. package/dist/modules/subscriptions/hooks/update-subscription-plan.hook.mjs.map +1 -1
  129. package/dist/modules/subscriptions/types/calculate-subscription.type.mjs.map +1 -1
  130. package/dist/modules/subscriptions/utils/build-plan-extras.mjs.map +1 -1
  131. package/dist/modules/subscriptions/utils/periodicity.mjs.map +1 -1
  132. package/dist/modules/subscriptions/utils/resolve-plan-extras-prices.mjs.map +1 -1
  133. package/dist/modules/users/action/find-user-by-id.action.mjs.map +1 -1
  134. package/dist/modules/users/action/list-messages.action.mjs.map +1 -1
  135. package/dist/modules/users/action/mark-all-messages-as-read.action.mjs.map +1 -1
  136. package/dist/modules/users/action/mark-message-as-read.action.mjs.map +1 -1
  137. package/dist/modules/users/hooks/messages.hook.mjs.map +1 -1
  138. package/dist/modules/users/services/messages.service.mjs.map +1 -1
  139. package/dist/modules/whitelabel/actions/find-whitelabel-styles.action.mjs.map +1 -1
  140. package/dist/modules/whitelabel/actions/find-whitelabel.action.mjs.map +1 -1
  141. package/dist/modules/whitelabel/actions/revalidate-whitelabel-styles.action.mjs.map +1 -1
  142. package/dist/modules/whitelabel/actions/revalidate-whitelabel.action.mjs.map +1 -1
  143. package/dist/modules/whitelabel/services/whitelabel-styles.service.mjs.map +1 -1
  144. package/dist/providers/whitelabel.provider.mjs.map +1 -1
  145. package/dist/store/useAccountModals.mjs.map +1 -1
  146. package/dist/store/useBuyCreditsModal.mjs.map +1 -1
  147. package/dist/store/useModalManager.mjs.map +1 -1
  148. package/dist/utils/countries.mjs.map +1 -1
  149. package/dist/utils/safeServerAction.mjs.map +1 -1
  150. package/dist/utils/withAction.mjs.map +1 -1
  151. package/package.json +89 -89
  152. package/src/components/account/AccountModals.tsx +17 -17
  153. package/src/components/account/ConfigurationsMyAccountModal.tsx +150 -150
  154. package/src/components/account/ConfirmDeleteAccountModal.tsx +55 -55
  155. package/src/components/account/ConfirmGlobalPreferencesModal.tsx +66 -66
  156. package/src/components/account/DeleteAccountModal.tsx +130 -130
  157. package/src/components/account/DisableTwoFactorAuthModal.tsx +86 -86
  158. package/src/components/account/IsntPossibleDeleteAccountModal.tsx +49 -49
  159. package/src/components/account/TwoFactorAuthModal.tsx +223 -223
  160. package/src/components/account/hooks/useChangePhoneForm.tsx +81 -81
  161. package/src/components/account/hooks/useTwoFactorAuthForm.tsx +101 -101
  162. package/src/components/account/sections/ChangeEmailModal.tsx +225 -225
  163. package/src/components/account/sections/ChangePasswordSection.tsx +64 -64
  164. package/src/components/account/sections/ChangePhoneModal.tsx +231 -231
  165. package/src/components/account/sections/MyProfileSection.tsx +327 -327
  166. package/src/components/account/sections/PreferencesSection.tsx +273 -273
  167. package/src/components/account/sections/SecuritySection.tsx +160 -160
  168. package/src/components/embeds/CrispEmbed.tsx +101 -101
  169. package/src/components/embeds/FrillEmbed.tsx +119 -119
  170. package/src/components/handlers/SearchParamsHandler.tsx +61 -61
  171. package/src/components/layouts/AppMobileNavBar.tsx +118 -118
  172. package/src/components/layouts/AppNavBar.tsx +51 -51
  173. package/src/components/layouts/MdSideBarNavigation.tsx +56 -56
  174. package/src/components/layouts/NavBar.tsx +120 -120
  175. package/src/components/layouts/NotificationsPopover.tsx +115 -115
  176. package/src/components/layouts/ProfilePopover.tsx +164 -164
  177. package/src/components/layouts/UsersSelectorPopover.tsx +238 -238
  178. package/src/components/modals/BuyCreditsModal.tsx +301 -301
  179. package/src/components/modals/ModalManager.tsx +29 -29
  180. package/src/components/modals/Modals.tsx +26 -26
  181. package/src/components/navigation/CancelledSubscriptionBanner.tsx +69 -69
  182. package/src/components/navigation/NavItemsContext.ts +20 -20
  183. package/src/components/navigation/ProjectSelectorPopover.tsx +157 -157
  184. package/src/components/navigation/shells/TabsMobileShell.tsx +72 -72
  185. package/src/components/navigation/subcomponents/ProjectSelector.tsx +156 -156
  186. package/src/components/pages/notifications/Notifications.tsx +160 -160
  187. package/src/components/ui/buttons/Button.tsx +57 -57
  188. package/src/components/ui/buttons/CancelButton.tsx +14 -14
  189. package/src/components/ui/buttons/CopyButton.tsx +54 -54
  190. package/src/components/ui/data-display/Accordion.tsx +81 -81
  191. package/src/components/ui/data-display/Badge.tsx +47 -47
  192. package/src/components/ui/data-display/Card.tsx +93 -93
  193. package/src/components/ui/data-display/CardBrandIcons.tsx +336 -336
  194. package/src/components/ui/data-display/CardItem.tsx +75 -75
  195. package/src/components/ui/data-display/Pagination.tsx +126 -126
  196. package/src/components/ui/data-display/PaymentInfoCard.tsx +186 -186
  197. package/src/components/ui/data-display/ScrollArea.tsx +59 -59
  198. package/src/components/ui/data-display/Separator.tsx +29 -29
  199. package/src/components/ui/data-display/Table.tsx +117 -117
  200. package/src/components/ui/data-display/Tabs.tsx +67 -67
  201. package/src/components/ui/feedback/CircularProgress.tsx +75 -75
  202. package/src/components/ui/feedback/DefaultCircularProgress.tsx +61 -61
  203. package/src/components/ui/feedback/LoadingOverlay.tsx +31 -31
  204. package/src/components/ui/feedback/Progress.tsx +40 -40
  205. package/src/components/ui/feedback/Skeleton.tsx +5 -5
  206. package/src/components/ui/feedback/Toast.tsx +101 -101
  207. package/src/components/ui/form/Calendar.tsx +228 -228
  208. package/src/components/ui/form/Checkbox.tsx +31 -31
  209. package/src/components/ui/form/ComboboxField.tsx +154 -154
  210. package/src/components/ui/form/DatePicker.tsx +97 -97
  211. package/src/components/ui/form/DateRangePicker.tsx +108 -108
  212. package/src/components/ui/form/FormField.tsx +131 -131
  213. package/src/components/ui/form/Input.tsx +20 -20
  214. package/src/components/ui/form/InputOtp.tsx +80 -80
  215. package/src/components/ui/form/PhoneInput.tsx +205 -205
  216. package/src/components/ui/form/RadioGroup.tsx +45 -45
  217. package/src/components/ui/form/Select.tsx +200 -200
  218. package/src/components/ui/form/Switch.tsx +32 -32
  219. package/src/components/ui/form/Textarea.tsx +19 -19
  220. package/src/components/ui/overlay/Command.tsx +185 -185
  221. package/src/components/ui/overlay/Dialog.tsx +151 -151
  222. package/src/components/ui/overlay/Popover.tsx +49 -49
  223. package/src/components/ui/overlay/Sheet.tsx +166 -166
  224. package/src/components/ui/overlay/Tooltip.tsx +62 -62
  225. package/src/components/widgets/notifications/NotificationCard.tsx +68 -68
  226. package/src/hooks/copy-to-clipboard.hook.tsx +67 -67
  227. package/src/hooks/useDebounce.ts +26 -26
  228. package/src/hooks/useDebounceState.ts +11 -11
  229. package/src/hooks/useDebouncedEffect.ts +69 -69
  230. package/src/index.ts +376 -376
  231. package/src/infra/utils/clsx.ts +6 -6
  232. package/src/infra/utils/parser.ts +52 -52
  233. package/src/infra/utils/percentage.ts +42 -42
  234. package/src/middleware.ts +4 -4
  235. package/src/modules/accounts/actions/account-management.action.ts +91 -91
  236. package/src/modules/accounts/actions/find-current-account.action.ts +9 -9
  237. package/src/modules/accounts/actions/list-currencies.action.ts +8 -8
  238. package/src/modules/accounts/actions/list-timezones.action.ts +8 -8
  239. package/src/modules/accounts/hooks/current-account.hook.tsx +22 -22
  240. package/src/modules/accounts/hooks/useAccountManagement.ts +85 -85
  241. package/src/modules/accounts/hooks/useCurrencies.ts +15 -15
  242. package/src/modules/accounts/hooks/useTimezones.ts +15 -15
  243. package/src/modules/accounts/services/account.service.ts +236 -236
  244. package/src/modules/accounts/types.ts +214 -214
  245. package/src/modules/auth/actions/validate-session.action.ts +56 -56
  246. package/src/modules/auth/hooks/login.hook.tsx +13 -13
  247. package/src/modules/auth/hooks/logout.hook.tsx +11 -11
  248. package/src/modules/auth/hooks/register.hook.tsx +11 -11
  249. package/src/modules/cards/actions/list-cards.action.ts +8 -8
  250. package/src/modules/cards/hooks/cards.hook.ts +14 -14
  251. package/src/modules/cards/services/cards.service.ts +32 -32
  252. package/src/modules/cards/types.ts +32 -32
  253. package/src/modules/ia-credits/actions/list-ia-credits.action.ts +8 -8
  254. package/src/modules/plans/actions/find-plan-by-id.action.ts +8 -8
  255. package/src/modules/plans/hooks/use-has-plan-addon.hook.ts +17 -17
  256. package/src/modules/plans/hooks/use-plan-by-id.hook.ts +13 -13
  257. package/src/modules/plans/services/plans.service.ts +36 -36
  258. package/src/modules/plans/types/plan.type.ts +21 -21
  259. package/src/modules/projects/actions/add-project-user.action.ts +9 -9
  260. package/src/modules/projects/actions/list-all-account-users.action.ts +9 -9
  261. package/src/modules/projects/actions/list-available-users.action.ts +9 -9
  262. package/src/modules/projects/actions/list-project-users.action.ts +9 -9
  263. package/src/modules/projects/actions/remove-project-user.action.ts +9 -9
  264. package/src/modules/projects/hooks/add-project-user.hook.ts +69 -69
  265. package/src/modules/projects/hooks/list-all-account-users.hook.ts +34 -34
  266. package/src/modules/projects/hooks/list-available-users.hook.ts +33 -33
  267. package/src/modules/projects/hooks/list-project-users.hook.ts +33 -33
  268. package/src/modules/projects/hooks/remove-project-user.hook.ts +69 -69
  269. package/src/modules/subscriptions/actions/calculate-subscription.action.ts +9 -9
  270. package/src/modules/subscriptions/actions/list-subscriptions.action.ts +9 -9
  271. package/src/modules/subscriptions/actions/update-subscription-plan.action.ts +26 -26
  272. package/src/modules/subscriptions/constants/query-keys.constants.ts +1 -1
  273. package/src/modules/subscriptions/hooks/calculate-subscription.hook.ts +13 -13
  274. package/src/modules/subscriptions/hooks/find-active-subscription.hook.ts +19 -19
  275. package/src/modules/subscriptions/hooks/list-subscriptions.hook.ts +16 -16
  276. package/src/modules/subscriptions/hooks/update-subscription-plan.hook.ts +25 -25
  277. package/src/modules/subscriptions/types/billing-period.type.ts +1 -1
  278. package/src/modules/subscriptions/types/calculate-subscription.type.ts +75 -75
  279. package/src/modules/subscriptions/utils/build-plan-extras.ts +56 -56
  280. package/src/modules/subscriptions/utils/periodicity.ts +52 -52
  281. package/src/modules/subscriptions/utils/resolve-plan-extras-prices.ts +23 -23
  282. package/src/modules/users/action/find-user-by-id.action.ts +8 -8
  283. package/src/modules/users/action/list-messages.action.ts +12 -12
  284. package/src/modules/users/action/mark-all-messages-as-read.action.ts +8 -8
  285. package/src/modules/users/action/mark-message-as-read.action.ts +8 -8
  286. package/src/modules/users/hooks/messages.hook.ts +60 -60
  287. package/src/modules/users/services/messages.service.ts +48 -48
  288. package/src/modules/whitelabel/actions/find-whitelabel-styles.action.ts +14 -14
  289. package/src/modules/whitelabel/actions/find-whitelabel.action.ts +23 -23
  290. package/src/modules/whitelabel/actions/revalidate-whitelabel-styles.action.ts +10 -10
  291. package/src/modules/whitelabel/actions/revalidate-whitelabel.action.ts +19 -19
  292. package/src/modules/whitelabel/schema.ts +83 -83
  293. package/src/modules/whitelabel/services/whitelabel-styles.service.ts +129 -129
  294. package/src/modules/whitelabel/styles-schema.ts +37 -37
  295. package/src/providers/whitelabel.provider.tsx +54 -54
  296. package/src/store/useAccountModals.ts +55 -55
  297. package/src/store/useBuyCreditsModal.ts +25 -25
  298. package/src/store/useModalManager.ts +104 -104
  299. package/src/utils/countries.ts +224 -224
  300. package/src/utils/safeServerAction.ts +21 -21
  301. package/src/utils/withAction.ts +13 -13
@@ -1,228 +1,228 @@
1
- 'use client';
2
-
3
- "use client"
4
-
5
- import * as React from "react"
6
- import { ptBR } from "date-fns/locale"
7
- import {
8
- IconChevronDown,
9
- IconChevronLeft,
10
- IconChevronRight,
11
- } from "@tabler/icons-react"
12
- import { DayButton, DayPicker, getDefaultClassNames } from "react-day-picker"
13
- import { Button, buttonVariants } from "../buttons/Button"
14
- import { cn } from "../../../infra/utils/clsx"
15
-
16
- function Calendar({
17
- className,
18
- classNames,
19
- showOutsideDays = true,
20
- captionLayout = "label",
21
- buttonVariant = "ghost",
22
- formatters,
23
- components,
24
- ...props
25
- }: React.ComponentProps<typeof DayPicker> & {
26
- buttonVariant?: React.ComponentProps<typeof Button>["variant"]
27
- }) {
28
- const defaultClassNames = getDefaultClassNames()
29
-
30
- return (
31
- <DayPicker
32
- locale={ptBR}
33
- showOutsideDays={showOutsideDays}
34
- className={cn(
35
- "bg-background group/calendar p-3 [--cell-size:--spacing(8)] in-data-[slot=card-content]:bg-transparent in-data-[slot=popover-content]:bg-transparent",
36
- String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,
37
- String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,
38
- className
39
- )}
40
- captionLayout={captionLayout}
41
- formatters={{
42
- formatWeekdayName: (date) => {
43
- const weekdays = ['D', 'S', 'T', 'Q', 'Q', 'S', 'S'];
44
- return weekdays[date.getDay()];
45
- },
46
- formatCaption: (date) => {
47
- const month = date.toLocaleDateString('pt-BR', { month: 'long' });
48
- const year = date.getFullYear();
49
- return `${month.charAt(0).toUpperCase() + month.slice(1)} / ${year}`;
50
- },
51
- formatMonthDropdown: (date) =>
52
- date.toLocaleString("default", { month: "short" }),
53
- ...formatters,
54
- }}
55
- classNames={{
56
- root: cn("w-fit", defaultClassNames.root),
57
- months: cn(
58
- "flex gap-4 flex-col md:flex-row relative",
59
- defaultClassNames.months
60
- ),
61
- month: cn("flex flex-col w-full gap-4", defaultClassNames.month),
62
- nav: cn(
63
- "flex items-center gap-1 w-auto absolute top-0 right-0",
64
- defaultClassNames.nav
65
- ),
66
- button_previous: cn(
67
- buttonVariants({ variant: buttonVariant }),
68
- "size-(--cell-size) aria-disabled:opacity-50 p-0 select-none",
69
- defaultClassNames.button_previous
70
- ),
71
- button_next: cn(
72
- buttonVariants({ variant: buttonVariant }),
73
- "size-(--cell-size) aria-disabled:opacity-50 p-0 select-none",
74
- defaultClassNames.button_next
75
- ),
76
- month_caption: cn(
77
- "flex items-center justify-start h-(--cell-size) w-full pr-(--cell-size)",
78
- defaultClassNames.month_caption
79
- ),
80
- dropdowns: cn(
81
- "w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5",
82
- defaultClassNames.dropdowns
83
- ),
84
- dropdown_root: cn(
85
- "relative has-focus:border-ring border border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] rounded-md",
86
- defaultClassNames.dropdown_root
87
- ),
88
- dropdown: cn(
89
- "absolute bg-popover inset-0 opacity-0",
90
- defaultClassNames.dropdown
91
- ),
92
- caption_label: cn(
93
- "select-none font-medium",
94
- captionLayout === "label"
95
- ? "text-sm"
96
- : "rounded-md pl-2 pr-1 flex items-center gap-1 text-sm h-8 [&>svg]:text-muted-foreground [&>svg]:size-3.5",
97
- defaultClassNames.caption_label
98
- ),
99
- table: "w-full border-collapse",
100
- weekdays: cn("flex", defaultClassNames.weekdays),
101
- weekday: cn(
102
- "text-gray-500 font-medium text-sm w-10 h-10 flex items-center justify-center uppercase",
103
- defaultClassNames.weekday
104
- ),
105
- week: cn("flex w-full mt-2", defaultClassNames.week),
106
- week_number_header: cn(
107
- "select-none w-(--cell-size)",
108
- defaultClassNames.week_number_header
109
- ),
110
- week_number: cn(
111
- "text-[0.8rem] select-none text-muted-foreground",
112
- defaultClassNames.week_number
113
- ),
114
- day: cn(
115
- "relative w-full h-full p-0 text-center [&:last-child[data-selected=true]_button]:rounded-r-md group/day aspect-square select-none",
116
- props.showWeekNumber
117
- ? "[&:nth-child(2)[data-selected=true]_button]:rounded-l-md"
118
- : "[&:first-child[data-selected=true]_button]:rounded-l-md",
119
- defaultClassNames.day
120
- ),
121
- range_start: cn(
122
- "rounded-l-md bg-accent",
123
- defaultClassNames.range_start
124
- ),
125
- range_middle: cn("rounded-none", defaultClassNames.range_middle),
126
- range_end: cn("rounded-r-md bg-accent", defaultClassNames.range_end),
127
- today: cn(
128
- "bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none",
129
- defaultClassNames.today
130
- ),
131
- outside: cn(
132
- "text-muted-foreground aria-selected:text-muted-foreground",
133
- defaultClassNames.outside
134
- ),
135
- disabled: cn(
136
- "text-muted-foreground opacity-50",
137
- defaultClassNames.disabled
138
- ),
139
- hidden: cn("invisible", defaultClassNames.hidden),
140
- ...classNames,
141
- }}
142
- components={{
143
- Root: ({ className, rootRef, ...props }) => {
144
- return (
145
- <div
146
- data-slot="calendar"
147
- ref={rootRef}
148
- className={cn(className)}
149
- {...props}
150
- />
151
- )
152
- },
153
- Chevron: ({ className, orientation, ...props }) => {
154
- if (orientation === "left") {
155
- return (
156
- <IconChevronLeft className={cn("size-4", className)} {...props} />
157
- )
158
- }
159
-
160
- if (orientation === "right") {
161
- return (
162
- <IconChevronRight
163
- className={cn("size-4", className)}
164
- {...props}
165
- />
166
- )
167
- }
168
-
169
- return (
170
- <IconChevronDown className={cn("size-4", className)} {...props} />
171
- )
172
- },
173
- DayButton: CalendarDayButton,
174
- WeekNumber: ({ children, ...props }) => {
175
- return (
176
- <td {...props}>
177
- <div className="flex size-(--cell-size) items-center justify-center text-center">
178
- {children}
179
- </div>
180
- </td>
181
- )
182
- },
183
- ...components,
184
- }}
185
- {...props}
186
- />
187
- )
188
- }
189
-
190
- function CalendarDayButton({
191
- className,
192
- day,
193
- modifiers,
194
- ...props
195
- }: React.ComponentProps<typeof DayButton>) {
196
- const defaultClassNames = getDefaultClassNames()
197
-
198
- const ref = React.useRef<HTMLButtonElement>(null)
199
- React.useEffect(() => {
200
- if (modifiers.focused) ref.current?.focus()
201
- }, [modifiers.focused])
202
-
203
- return (
204
- <Button
205
- ref={ref}
206
- variant="ghost"
207
- size="icon"
208
- data-day={day.date.toLocaleDateString()}
209
- data-selected-single={
210
- modifiers.selected &&
211
- !modifiers.range_start &&
212
- !modifiers.range_end &&
213
- !modifiers.range_middle
214
- }
215
- data-range-start={modifiers.range_start}
216
- data-range-end={modifiers.range_end}
217
- data-range-middle={modifiers.range_middle}
218
- className={cn(
219
- "data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 dark:hover:text-accent-foreground flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] data-[range-end=true]:rounded-md data-[range-end=true]:rounded-r-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md data-[range-start=true]:rounded-l-md [&>span]:text-xs [&>span]:opacity-70",
220
- defaultClassNames.day,
221
- className
222
- )}
223
- {...props}
224
- />
225
- )
226
- }
227
-
228
- export { Calendar, CalendarDayButton }
1
+ 'use client';
2
+
3
+ "use client"
4
+
5
+ import * as React from "react"
6
+ import { ptBR } from "date-fns/locale"
7
+ import {
8
+ IconChevronDown,
9
+ IconChevronLeft,
10
+ IconChevronRight,
11
+ } from "@tabler/icons-react"
12
+ import { DayButton, DayPicker, getDefaultClassNames } from "react-day-picker"
13
+ import { Button, buttonVariants } from "../buttons/Button"
14
+ import { cn } from "../../../infra/utils/clsx"
15
+
16
+ function Calendar({
17
+ className,
18
+ classNames,
19
+ showOutsideDays = true,
20
+ captionLayout = "label",
21
+ buttonVariant = "ghost",
22
+ formatters,
23
+ components,
24
+ ...props
25
+ }: React.ComponentProps<typeof DayPicker> & {
26
+ buttonVariant?: React.ComponentProps<typeof Button>["variant"]
27
+ }) {
28
+ const defaultClassNames = getDefaultClassNames()
29
+
30
+ return (
31
+ <DayPicker
32
+ locale={ptBR}
33
+ showOutsideDays={showOutsideDays}
34
+ className={cn(
35
+ "bg-background group/calendar p-3 [--cell-size:--spacing(8)] in-data-[slot=card-content]:bg-transparent in-data-[slot=popover-content]:bg-transparent",
36
+ String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,
37
+ String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,
38
+ className
39
+ )}
40
+ captionLayout={captionLayout}
41
+ formatters={{
42
+ formatWeekdayName: (date) => {
43
+ const weekdays = ['D', 'S', 'T', 'Q', 'Q', 'S', 'S'];
44
+ return weekdays[date.getDay()];
45
+ },
46
+ formatCaption: (date) => {
47
+ const month = date.toLocaleDateString('pt-BR', { month: 'long' });
48
+ const year = date.getFullYear();
49
+ return `${month.charAt(0).toUpperCase() + month.slice(1)} / ${year}`;
50
+ },
51
+ formatMonthDropdown: (date) =>
52
+ date.toLocaleString("default", { month: "short" }),
53
+ ...formatters,
54
+ }}
55
+ classNames={{
56
+ root: cn("w-fit", defaultClassNames.root),
57
+ months: cn(
58
+ "flex gap-4 flex-col md:flex-row relative",
59
+ defaultClassNames.months
60
+ ),
61
+ month: cn("flex flex-col w-full gap-4", defaultClassNames.month),
62
+ nav: cn(
63
+ "flex items-center gap-1 w-auto absolute top-0 right-0",
64
+ defaultClassNames.nav
65
+ ),
66
+ button_previous: cn(
67
+ buttonVariants({ variant: buttonVariant }),
68
+ "size-(--cell-size) aria-disabled:opacity-50 p-0 select-none",
69
+ defaultClassNames.button_previous
70
+ ),
71
+ button_next: cn(
72
+ buttonVariants({ variant: buttonVariant }),
73
+ "size-(--cell-size) aria-disabled:opacity-50 p-0 select-none",
74
+ defaultClassNames.button_next
75
+ ),
76
+ month_caption: cn(
77
+ "flex items-center justify-start h-(--cell-size) w-full pr-(--cell-size)",
78
+ defaultClassNames.month_caption
79
+ ),
80
+ dropdowns: cn(
81
+ "w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5",
82
+ defaultClassNames.dropdowns
83
+ ),
84
+ dropdown_root: cn(
85
+ "relative has-focus:border-ring border border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] rounded-md",
86
+ defaultClassNames.dropdown_root
87
+ ),
88
+ dropdown: cn(
89
+ "absolute bg-popover inset-0 opacity-0",
90
+ defaultClassNames.dropdown
91
+ ),
92
+ caption_label: cn(
93
+ "select-none font-medium",
94
+ captionLayout === "label"
95
+ ? "text-sm"
96
+ : "rounded-md pl-2 pr-1 flex items-center gap-1 text-sm h-8 [&>svg]:text-muted-foreground [&>svg]:size-3.5",
97
+ defaultClassNames.caption_label
98
+ ),
99
+ table: "w-full border-collapse",
100
+ weekdays: cn("flex", defaultClassNames.weekdays),
101
+ weekday: cn(
102
+ "text-gray-500 font-medium text-sm w-10 h-10 flex items-center justify-center uppercase",
103
+ defaultClassNames.weekday
104
+ ),
105
+ week: cn("flex w-full mt-2", defaultClassNames.week),
106
+ week_number_header: cn(
107
+ "select-none w-(--cell-size)",
108
+ defaultClassNames.week_number_header
109
+ ),
110
+ week_number: cn(
111
+ "text-[0.8rem] select-none text-muted-foreground",
112
+ defaultClassNames.week_number
113
+ ),
114
+ day: cn(
115
+ "relative w-full h-full p-0 text-center [&:last-child[data-selected=true]_button]:rounded-r-md group/day aspect-square select-none",
116
+ props.showWeekNumber
117
+ ? "[&:nth-child(2)[data-selected=true]_button]:rounded-l-md"
118
+ : "[&:first-child[data-selected=true]_button]:rounded-l-md",
119
+ defaultClassNames.day
120
+ ),
121
+ range_start: cn(
122
+ "rounded-l-md bg-accent",
123
+ defaultClassNames.range_start
124
+ ),
125
+ range_middle: cn("rounded-none", defaultClassNames.range_middle),
126
+ range_end: cn("rounded-r-md bg-accent", defaultClassNames.range_end),
127
+ today: cn(
128
+ "bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none",
129
+ defaultClassNames.today
130
+ ),
131
+ outside: cn(
132
+ "text-muted-foreground aria-selected:text-muted-foreground",
133
+ defaultClassNames.outside
134
+ ),
135
+ disabled: cn(
136
+ "text-muted-foreground opacity-50",
137
+ defaultClassNames.disabled
138
+ ),
139
+ hidden: cn("invisible", defaultClassNames.hidden),
140
+ ...classNames,
141
+ }}
142
+ components={{
143
+ Root: ({ className, rootRef, ...props }) => {
144
+ return (
145
+ <div
146
+ data-slot="calendar"
147
+ ref={rootRef}
148
+ className={cn(className)}
149
+ {...props}
150
+ />
151
+ )
152
+ },
153
+ Chevron: ({ className, orientation, ...props }) => {
154
+ if (orientation === "left") {
155
+ return (
156
+ <IconChevronLeft className={cn("size-4", className)} {...props} />
157
+ )
158
+ }
159
+
160
+ if (orientation === "right") {
161
+ return (
162
+ <IconChevronRight
163
+ className={cn("size-4", className)}
164
+ {...props}
165
+ />
166
+ )
167
+ }
168
+
169
+ return (
170
+ <IconChevronDown className={cn("size-4", className)} {...props} />
171
+ )
172
+ },
173
+ DayButton: CalendarDayButton,
174
+ WeekNumber: ({ children, ...props }) => {
175
+ return (
176
+ <td {...props}>
177
+ <div className="flex size-(--cell-size) items-center justify-center text-center">
178
+ {children}
179
+ </div>
180
+ </td>
181
+ )
182
+ },
183
+ ...components,
184
+ }}
185
+ {...props}
186
+ />
187
+ )
188
+ }
189
+
190
+ function CalendarDayButton({
191
+ className,
192
+ day,
193
+ modifiers,
194
+ ...props
195
+ }: React.ComponentProps<typeof DayButton>) {
196
+ const defaultClassNames = getDefaultClassNames()
197
+
198
+ const ref = React.useRef<HTMLButtonElement>(null)
199
+ React.useEffect(() => {
200
+ if (modifiers.focused) ref.current?.focus()
201
+ }, [modifiers.focused])
202
+
203
+ return (
204
+ <Button
205
+ ref={ref}
206
+ variant="ghost"
207
+ size="icon"
208
+ data-day={day.date.toLocaleDateString()}
209
+ data-selected-single={
210
+ modifiers.selected &&
211
+ !modifiers.range_start &&
212
+ !modifiers.range_end &&
213
+ !modifiers.range_middle
214
+ }
215
+ data-range-start={modifiers.range_start}
216
+ data-range-end={modifiers.range_end}
217
+ data-range-middle={modifiers.range_middle}
218
+ className={cn(
219
+ "data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 dark:hover:text-accent-foreground flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] data-[range-end=true]:rounded-md data-[range-end=true]:rounded-r-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md data-[range-start=true]:rounded-l-md [&>span]:text-xs [&>span]:opacity-70",
220
+ defaultClassNames.day,
221
+ className
222
+ )}
223
+ {...props}
224
+ />
225
+ )
226
+ }
227
+
228
+ export { Calendar, CalendarDayButton }
@@ -1,31 +1,31 @@
1
- "use client";
2
-
3
- import * as React from "react";
4
- import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
5
- import { IconCheck } from '@tabler/icons-react';
6
- import { cn } from "../../../infra/utils/clsx";
7
-
8
- function Checkbox({
9
- className,
10
- ...props
11
- }: React.ComponentProps<typeof CheckboxPrimitive.Root>) {
12
- return (
13
- <CheckboxPrimitive.Root
14
- data-slot="checkbox"
15
- className={cn(
16
- "peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4.5 shrink-0 rounded-[4px] border-[1.6px] shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 hover:border-gray-950 cursor-pointer",
17
- className,
18
- )}
19
- {...props}
20
- >
21
- <CheckboxPrimitive.Indicator
22
- data-slot="checkbox-indicator"
23
- className="grid place-content-center text-current transition-none"
24
- >
25
- <IconCheck className="size-3 text-current" />
26
- </CheckboxPrimitive.Indicator>
27
- </CheckboxPrimitive.Root>
28
- );
29
- }
30
-
31
- export { Checkbox };
1
+ "use client";
2
+
3
+ import * as React from "react";
4
+ import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
5
+ import { IconCheck } from '@tabler/icons-react';
6
+ import { cn } from "../../../infra/utils/clsx";
7
+
8
+ function Checkbox({
9
+ className,
10
+ ...props
11
+ }: React.ComponentProps<typeof CheckboxPrimitive.Root>) {
12
+ return (
13
+ <CheckboxPrimitive.Root
14
+ data-slot="checkbox"
15
+ className={cn(
16
+ "peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4.5 shrink-0 rounded-[4px] border-[1.6px] shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 hover:border-gray-950 cursor-pointer",
17
+ className,
18
+ )}
19
+ {...props}
20
+ >
21
+ <CheckboxPrimitive.Indicator
22
+ data-slot="checkbox-indicator"
23
+ className="grid place-content-center text-current transition-none"
24
+ >
25
+ <IconCheck className="size-3 text-current" />
26
+ </CheckboxPrimitive.Indicator>
27
+ </CheckboxPrimitive.Root>
28
+ );
29
+ }
30
+
31
+ export { Checkbox };