@greatapps/common 1.1.166 → 1.1.168

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 (159) hide show
  1. package/dist/components/account/ConfirmDeleteAccountModal.mjs.map +1 -1
  2. package/dist/components/account/DeleteAccountModal.mjs.map +1 -1
  3. package/dist/components/account/IsntPossibleDeleteAccountModal.mjs.map +1 -1
  4. package/dist/components/account/hooks/useTwoFactorAuthForm.mjs.map +1 -1
  5. package/dist/components/layouts/AppMobileNavBar.mjs.map +1 -1
  6. package/dist/components/layouts/AppNavBar.mjs.map +1 -1
  7. package/dist/components/layouts/NavBar.mjs +29 -1
  8. package/dist/components/layouts/NavBar.mjs.map +1 -1
  9. package/dist/components/navigation/CancelledSubscriptionBanner.mjs.map +1 -1
  10. package/dist/components/navigation/NavItemsContext.mjs.map +1 -1
  11. package/dist/components/navigation/shells/TabsMobileShell.mjs.map +1 -1
  12. package/dist/components/pages/notifications/Notifications.mjs.map +1 -1
  13. package/dist/components/ui/buttons/Button.mjs.map +1 -1
  14. package/dist/components/ui/buttons/CancelButton.mjs.map +1 -1
  15. package/dist/components/ui/buttons/CopyButton.mjs.map +1 -1
  16. package/dist/components/ui/data-display/Accordion.mjs.map +1 -1
  17. package/dist/components/ui/data-display/Badge.mjs.map +1 -1
  18. package/dist/components/ui/data-display/Card.mjs.map +1 -1
  19. package/dist/components/ui/data-display/Pagination.mjs.map +1 -1
  20. package/dist/components/ui/data-display/ScrollArea.mjs.map +1 -1
  21. package/dist/components/ui/data-display/Separator.mjs.map +1 -1
  22. package/dist/components/ui/data-display/Table.mjs.map +1 -1
  23. package/dist/components/ui/data-display/Tabs.mjs.map +1 -1
  24. package/dist/components/ui/feedback/CircularProgress.mjs.map +1 -1
  25. package/dist/components/ui/feedback/DefaultCircularProgress.mjs.map +1 -1
  26. package/dist/components/ui/feedback/LoadingOverlay.mjs.map +1 -1
  27. package/dist/components/ui/feedback/Progress.mjs.map +1 -1
  28. package/dist/components/ui/feedback/Toast.mjs.map +1 -1
  29. package/dist/components/ui/form/Calendar.mjs.map +1 -1
  30. package/dist/components/ui/form/Checkbox.mjs.map +1 -1
  31. package/dist/components/ui/form/DatePicker.mjs.map +1 -1
  32. package/dist/components/ui/form/DateRangePicker.mjs.map +1 -1
  33. package/dist/components/ui/form/Input.mjs.map +1 -1
  34. package/dist/components/ui/form/InputOtp.mjs.map +1 -1
  35. package/dist/components/ui/form/RadioGroup.mjs.map +1 -1
  36. package/dist/components/ui/form/Select.mjs +1 -1
  37. package/dist/components/ui/form/Select.mjs.map +1 -1
  38. package/dist/components/ui/form/Switch.mjs.map +1 -1
  39. package/dist/components/ui/form/Textarea.mjs.map +1 -1
  40. package/dist/components/ui/overlay/Command.mjs.map +1 -1
  41. package/dist/components/ui/overlay/Dialog.mjs.map +1 -1
  42. package/dist/components/ui/overlay/Popover.mjs.map +1 -1
  43. package/dist/components/ui/overlay/Sheet.mjs.map +1 -1
  44. package/dist/components/ui/overlay/Tooltip.mjs.map +1 -1
  45. package/dist/hooks/copy-to-clipboard.hook.mjs.map +1 -1
  46. package/dist/index.mjs.map +1 -1
  47. package/dist/middleware.mjs.map +1 -1
  48. package/dist/modules/accounts/actions/account-management.action.mjs.map +1 -1
  49. package/dist/modules/accounts/actions/find-current-account.action.mjs.map +1 -1
  50. package/dist/modules/accounts/actions/list-currencies.action.mjs.map +1 -1
  51. package/dist/modules/accounts/actions/list-timezones.action.mjs.map +1 -1
  52. package/dist/modules/accounts/hooks/current-account.hook.mjs.map +1 -1
  53. package/dist/modules/accounts/hooks/useAccountManagement.mjs.map +1 -1
  54. package/dist/modules/accounts/hooks/useCurrencies.mjs.map +1 -1
  55. package/dist/modules/accounts/hooks/useTimezones.mjs.map +1 -1
  56. package/dist/modules/auth/hooks/login.hook.mjs.map +1 -1
  57. package/dist/modules/auth/hooks/logout.hook.mjs.map +1 -1
  58. package/dist/modules/auth/hooks/register.hook.mjs.map +1 -1
  59. package/dist/modules/ia-credits/actions/list-ia-credits.action.mjs.map +1 -1
  60. package/dist/modules/projects/actions/add-project-user.action.mjs.map +1 -1
  61. package/dist/modules/projects/actions/list-available-users.action.mjs.map +1 -1
  62. package/dist/modules/projects/actions/list-project-users.action.mjs.map +1 -1
  63. package/dist/modules/projects/actions/remove-project-user.action.mjs.map +1 -1
  64. package/dist/modules/projects/hooks/list-available-users.hook.mjs.map +1 -1
  65. package/dist/modules/projects/hooks/list-project-users.hook.mjs.map +1 -1
  66. package/dist/modules/subscriptions/actions/list-subscriptions.action.mjs.map +1 -1
  67. package/dist/modules/subscriptions/hooks/find-active-subscription.hook.mjs.map +1 -1
  68. package/dist/modules/subscriptions/hooks/list-subscriptions.hook.mjs.map +1 -1
  69. package/dist/modules/users/action/find-user-by-id.action.mjs.map +1 -1
  70. package/dist/modules/users/action/list-messages.action.mjs.map +1 -1
  71. package/dist/modules/users/action/mark-all-messages-as-read.action.mjs.map +1 -1
  72. package/dist/modules/users/action/mark-message-as-read.action.mjs.map +1 -1
  73. package/dist/modules/users/hooks/messages.hook.mjs.map +1 -1
  74. package/dist/modules/whitelabel/actions/find-whitelabel-styles.action.mjs.map +1 -1
  75. package/dist/modules/whitelabel/actions/find-whitelabel.action.mjs.map +1 -1
  76. package/dist/modules/whitelabel/services/whitelabel-styles.service.mjs.map +1 -1
  77. package/dist/providers/whitelabel.provider.mjs.map +1 -1
  78. package/dist/utils/safeServerAction.mjs.map +1 -1
  79. package/dist/utils/withAction.mjs.map +1 -1
  80. package/package.json +90 -90
  81. package/src/components/account/ConfirmDeleteAccountModal.tsx +55 -55
  82. package/src/components/account/DeleteAccountModal.tsx +130 -130
  83. package/src/components/account/IsntPossibleDeleteAccountModal.tsx +49 -49
  84. package/src/components/account/hooks/useTwoFactorAuthForm.tsx +101 -101
  85. package/src/components/layouts/AppMobileNavBar.tsx +125 -125
  86. package/src/components/layouts/AppNavBar.tsx +57 -57
  87. package/src/components/layouts/NavBar.tsx +139 -112
  88. package/src/components/navigation/CancelledSubscriptionBanner.tsx +69 -69
  89. package/src/components/navigation/NavItemsContext.ts +20 -20
  90. package/src/components/navigation/shells/TabsMobileShell.tsx +72 -72
  91. package/src/components/pages/notifications/Notifications.tsx +160 -160
  92. package/src/components/ui/buttons/Button.tsx +57 -57
  93. package/src/components/ui/buttons/CancelButton.tsx +14 -14
  94. package/src/components/ui/buttons/CopyButton.tsx +54 -54
  95. package/src/components/ui/data-display/Accordion.tsx +81 -81
  96. package/src/components/ui/data-display/Badge.tsx +47 -47
  97. package/src/components/ui/data-display/Card.tsx +93 -93
  98. package/src/components/ui/data-display/Pagination.tsx +126 -126
  99. package/src/components/ui/data-display/ScrollArea.tsx +59 -59
  100. package/src/components/ui/data-display/Separator.tsx +29 -29
  101. package/src/components/ui/data-display/Table.tsx +117 -117
  102. package/src/components/ui/data-display/Tabs.tsx +67 -67
  103. package/src/components/ui/feedback/CircularProgress.tsx +75 -75
  104. package/src/components/ui/feedback/DefaultCircularProgress.tsx +53 -53
  105. package/src/components/ui/feedback/LoadingOverlay.tsx +31 -31
  106. package/src/components/ui/feedback/Progress.tsx +40 -40
  107. package/src/components/ui/feedback/Toast.tsx +101 -101
  108. package/src/components/ui/form/Calendar.tsx +228 -228
  109. package/src/components/ui/form/Checkbox.tsx +31 -31
  110. package/src/components/ui/form/DatePicker.tsx +97 -97
  111. package/src/components/ui/form/DateRangePicker.tsx +108 -108
  112. package/src/components/ui/form/Input.tsx +20 -20
  113. package/src/components/ui/form/InputOtp.tsx +80 -80
  114. package/src/components/ui/form/RadioGroup.tsx +45 -45
  115. package/src/components/ui/form/Select.tsx +200 -200
  116. package/src/components/ui/form/Switch.tsx +32 -32
  117. package/src/components/ui/form/Textarea.tsx +19 -19
  118. package/src/components/ui/overlay/Command.tsx +185 -185
  119. package/src/components/ui/overlay/Dialog.tsx +151 -151
  120. package/src/components/ui/overlay/Popover.tsx +49 -49
  121. package/src/components/ui/overlay/Sheet.tsx +159 -159
  122. package/src/components/ui/overlay/Tooltip.tsx +62 -62
  123. package/src/hooks/copy-to-clipboard.hook.tsx +67 -67
  124. package/src/index.ts +348 -348
  125. package/src/middleware.ts +4 -4
  126. package/src/modules/accounts/actions/account-management.action.ts +90 -90
  127. package/src/modules/accounts/actions/find-current-account.action.ts +9 -9
  128. package/src/modules/accounts/actions/list-currencies.action.ts +8 -8
  129. package/src/modules/accounts/actions/list-timezones.action.ts +8 -8
  130. package/src/modules/accounts/hooks/current-account.hook.tsx +22 -22
  131. package/src/modules/accounts/hooks/useAccountManagement.ts +85 -85
  132. package/src/modules/accounts/hooks/useCurrencies.ts +15 -15
  133. package/src/modules/accounts/hooks/useTimezones.ts +15 -15
  134. package/src/modules/accounts/types.ts +214 -214
  135. package/src/modules/auth/hooks/login.hook.tsx +13 -13
  136. package/src/modules/auth/hooks/logout.hook.tsx +11 -11
  137. package/src/modules/auth/hooks/register.hook.tsx +11 -11
  138. package/src/modules/ia-credits/actions/list-ia-credits.action.ts +8 -8
  139. package/src/modules/projects/actions/add-project-user.action.ts +9 -9
  140. package/src/modules/projects/actions/list-available-users.action.ts +9 -9
  141. package/src/modules/projects/actions/list-project-users.action.ts +9 -9
  142. package/src/modules/projects/actions/remove-project-user.action.ts +9 -9
  143. package/src/modules/projects/hooks/list-available-users.hook.ts +33 -33
  144. package/src/modules/projects/hooks/list-project-users.hook.ts +33 -33
  145. package/src/modules/subscriptions/actions/list-subscriptions.action.ts +9 -9
  146. package/src/modules/subscriptions/hooks/find-active-subscription.hook.ts +19 -19
  147. package/src/modules/subscriptions/hooks/list-subscriptions.hook.ts +17 -17
  148. package/src/modules/users/action/find-user-by-id.action.ts +8 -8
  149. package/src/modules/users/action/list-messages.action.ts +12 -12
  150. package/src/modules/users/action/mark-all-messages-as-read.action.ts +8 -8
  151. package/src/modules/users/action/mark-message-as-read.action.ts +8 -8
  152. package/src/modules/users/hooks/messages.hook.ts +60 -60
  153. package/src/modules/whitelabel/actions/find-whitelabel-styles.action.ts +14 -14
  154. package/src/modules/whitelabel/actions/find-whitelabel.action.ts +23 -23
  155. package/src/modules/whitelabel/services/whitelabel-styles.service.ts +98 -98
  156. package/src/modules/whitelabel/styles-schema.ts +37 -37
  157. package/src/providers/whitelabel.provider.tsx +46 -46
  158. package/src/utils/safeServerAction.ts +21 -21
  159. package/src/utils/withAction.ts +13 -13
@@ -1,151 +1,151 @@
1
- "use client";
2
-
3
- import * as React from "react";
4
- import * as DialogPrimitive from "@radix-ui/react-dialog";
5
- import { XIcon } from "lucide-react";
6
- import { cn } from "../../../infra/utils/clsx";
7
-
8
- function Dialog({
9
- ...props
10
- }: React.ComponentProps<typeof DialogPrimitive.Root>) {
11
- return <DialogPrimitive.Root data-slot="dialog" {...props} />;
12
- }
13
-
14
- function DialogTrigger({
15
- ...props
16
- }: React.ComponentProps<typeof DialogPrimitive.Trigger>) {
17
- return <DialogPrimitive.Trigger data-slot="dialog-trigger" {...props} />;
18
- }
19
-
20
- function DialogPortal({
21
- ...props
22
- }: React.ComponentProps<typeof DialogPrimitive.Portal>) {
23
- return <DialogPrimitive.Portal data-slot="dialog-portal" {...props} />;
24
- }
25
-
26
- function DialogClose({
27
- ...props
28
- }: React.ComponentProps<typeof DialogPrimitive.Close>) {
29
- return <DialogPrimitive.Close data-slot="dialog-close" {...props} />;
30
- }
31
-
32
- function DialogOverlay({
33
- className,
34
- ...props
35
- }: React.ComponentProps<typeof DialogPrimitive.Overlay>) {
36
- return (
37
- <DialogPrimitive.Overlay
38
- data-slot="dialog-overlay"
39
- className={cn(
40
- "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-[1000] bg-black/50",
41
- className,
42
- )}
43
- {...props}
44
- />
45
- );
46
- }
47
-
48
- function DialogContent({
49
- className,
50
- children,
51
- showCloseButton = true,
52
- overlayClassName,
53
- ...props
54
- }: React.ComponentProps<typeof DialogPrimitive.Content> & {
55
- showCloseButton?: boolean;
56
- overlayClassName?: string;
57
- }) {
58
- return (
59
- <DialogPortal data-slot="dialog-portal">
60
- <DialogOverlay className={overlayClassName} />
61
- <DialogPrimitive.Content
62
- data-slot="dialog-content"
63
- className={cn(
64
- "bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-[1001] grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",
65
- className,
66
- )}
67
- {...props}
68
- >
69
- {children}
70
- {showCloseButton && (
71
- <div className="absolute top-0.5 right-0">
72
- <div className="p-4">
73
- <DialogPrimitive.Close
74
- data-slot="dialog-close"
75
- className="hover:cursor-pointer flex size-8 items-center justify-center rounded-lg p-2 text-gray-500 transition-colors hover:bg-gray-100 hover:text-gray-950 focus:outline-none"
76
- >
77
- <XIcon className="size-[18px]" />
78
- <span className="sr-only">Close</span>
79
- </DialogPrimitive.Close>
80
- </div>
81
- </div>
82
- )}
83
- </DialogPrimitive.Content>
84
- </DialogPortal>
85
- );
86
- }
87
-
88
- function DialogHeader({ className, ...props }: React.ComponentProps<"div">) {
89
- return (
90
- <div
91
- data-slot="dialog-header"
92
- className={cn(
93
- "p-5 flex flex-col gap-2 text-center sm:text-left",
94
- className,
95
- )}
96
- {...props}
97
- />
98
- );
99
- }
100
-
101
- function DialogFooter({ className, ...props }: React.ComponentProps<"div">) {
102
- return (
103
- <div
104
- data-slot="dialog-footer"
105
- className={cn(
106
- "flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",
107
- className,
108
- )}
109
- {...props}
110
- />
111
- );
112
- }
113
-
114
- function DialogTitle({
115
- className,
116
- ...props
117
- }: React.ComponentProps<typeof DialogPrimitive.Title>) {
118
- return (
119
- <DialogPrimitive.Title
120
- data-slot="dialog-title"
121
- className={cn("text-lg leading-none font-semibold", className)}
122
- {...props}
123
- />
124
- );
125
- }
126
-
127
- function DialogDescription({
128
- className,
129
- ...props
130
- }: React.ComponentProps<typeof DialogPrimitive.Description>) {
131
- return (
132
- <DialogPrimitive.Description
133
- data-slot="dialog-description"
134
- className={cn("text-muted-foreground text-sm", className)}
135
- {...props}
136
- />
137
- );
138
- }
139
-
140
- export {
141
- Dialog,
142
- DialogClose,
143
- DialogContent,
144
- DialogDescription,
145
- DialogFooter,
146
- DialogHeader,
147
- DialogOverlay,
148
- DialogPortal,
149
- DialogTitle,
150
- DialogTrigger,
151
- };
1
+ "use client";
2
+
3
+ import * as React from "react";
4
+ import * as DialogPrimitive from "@radix-ui/react-dialog";
5
+ import { XIcon } from "lucide-react";
6
+ import { cn } from "../../../infra/utils/clsx";
7
+
8
+ function Dialog({
9
+ ...props
10
+ }: React.ComponentProps<typeof DialogPrimitive.Root>) {
11
+ return <DialogPrimitive.Root data-slot="dialog" {...props} />;
12
+ }
13
+
14
+ function DialogTrigger({
15
+ ...props
16
+ }: React.ComponentProps<typeof DialogPrimitive.Trigger>) {
17
+ return <DialogPrimitive.Trigger data-slot="dialog-trigger" {...props} />;
18
+ }
19
+
20
+ function DialogPortal({
21
+ ...props
22
+ }: React.ComponentProps<typeof DialogPrimitive.Portal>) {
23
+ return <DialogPrimitive.Portal data-slot="dialog-portal" {...props} />;
24
+ }
25
+
26
+ function DialogClose({
27
+ ...props
28
+ }: React.ComponentProps<typeof DialogPrimitive.Close>) {
29
+ return <DialogPrimitive.Close data-slot="dialog-close" {...props} />;
30
+ }
31
+
32
+ function DialogOverlay({
33
+ className,
34
+ ...props
35
+ }: React.ComponentProps<typeof DialogPrimitive.Overlay>) {
36
+ return (
37
+ <DialogPrimitive.Overlay
38
+ data-slot="dialog-overlay"
39
+ className={cn(
40
+ "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-[1000] bg-black/50",
41
+ className,
42
+ )}
43
+ {...props}
44
+ />
45
+ );
46
+ }
47
+
48
+ function DialogContent({
49
+ className,
50
+ children,
51
+ showCloseButton = true,
52
+ overlayClassName,
53
+ ...props
54
+ }: React.ComponentProps<typeof DialogPrimitive.Content> & {
55
+ showCloseButton?: boolean;
56
+ overlayClassName?: string;
57
+ }) {
58
+ return (
59
+ <DialogPortal data-slot="dialog-portal">
60
+ <DialogOverlay className={overlayClassName} />
61
+ <DialogPrimitive.Content
62
+ data-slot="dialog-content"
63
+ className={cn(
64
+ "bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-[1001] grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",
65
+ className,
66
+ )}
67
+ {...props}
68
+ >
69
+ {children}
70
+ {showCloseButton && (
71
+ <div className="absolute top-0.5 right-0">
72
+ <div className="p-4">
73
+ <DialogPrimitive.Close
74
+ data-slot="dialog-close"
75
+ className="hover:cursor-pointer flex size-8 items-center justify-center rounded-lg p-2 text-gray-500 transition-colors hover:bg-gray-100 hover:text-gray-950 focus:outline-none"
76
+ >
77
+ <XIcon className="size-[18px]" />
78
+ <span className="sr-only">Close</span>
79
+ </DialogPrimitive.Close>
80
+ </div>
81
+ </div>
82
+ )}
83
+ </DialogPrimitive.Content>
84
+ </DialogPortal>
85
+ );
86
+ }
87
+
88
+ function DialogHeader({ className, ...props }: React.ComponentProps<"div">) {
89
+ return (
90
+ <div
91
+ data-slot="dialog-header"
92
+ className={cn(
93
+ "p-5 flex flex-col gap-2 text-center sm:text-left",
94
+ className,
95
+ )}
96
+ {...props}
97
+ />
98
+ );
99
+ }
100
+
101
+ function DialogFooter({ className, ...props }: React.ComponentProps<"div">) {
102
+ return (
103
+ <div
104
+ data-slot="dialog-footer"
105
+ className={cn(
106
+ "flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",
107
+ className,
108
+ )}
109
+ {...props}
110
+ />
111
+ );
112
+ }
113
+
114
+ function DialogTitle({
115
+ className,
116
+ ...props
117
+ }: React.ComponentProps<typeof DialogPrimitive.Title>) {
118
+ return (
119
+ <DialogPrimitive.Title
120
+ data-slot="dialog-title"
121
+ className={cn("text-lg leading-none font-semibold", className)}
122
+ {...props}
123
+ />
124
+ );
125
+ }
126
+
127
+ function DialogDescription({
128
+ className,
129
+ ...props
130
+ }: React.ComponentProps<typeof DialogPrimitive.Description>) {
131
+ return (
132
+ <DialogPrimitive.Description
133
+ data-slot="dialog-description"
134
+ className={cn("text-muted-foreground text-sm", className)}
135
+ {...props}
136
+ />
137
+ );
138
+ }
139
+
140
+ export {
141
+ Dialog,
142
+ DialogClose,
143
+ DialogContent,
144
+ DialogDescription,
145
+ DialogFooter,
146
+ DialogHeader,
147
+ DialogOverlay,
148
+ DialogPortal,
149
+ DialogTitle,
150
+ DialogTrigger,
151
+ };
@@ -1,49 +1,49 @@
1
- 'use client';
2
-
3
- "use client"
4
-
5
- import * as React from "react"
6
- import * as PopoverPrimitive from "@radix-ui/react-popover"
7
- import { cn } from "../../../infra/utils/clsx"
8
-
9
- function Popover({
10
- ...props
11
- }: React.ComponentProps<typeof PopoverPrimitive.Root>) {
12
- return <PopoverPrimitive.Root data-slot="popover" {...props} />
13
- }
14
-
15
- function PopoverTrigger({
16
- ...props
17
- }: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {
18
- return <PopoverPrimitive.Trigger data-slot="popover-trigger" {...props} />
19
- }
20
-
21
- function PopoverContent({
22
- className,
23
- align = "center",
24
- sideOffset = 4,
25
- ...props
26
- }: React.ComponentProps<typeof PopoverPrimitive.Content>) {
27
- return (
28
- <PopoverPrimitive.Portal>
29
- <PopoverPrimitive.Content
30
- data-slot="popover-content"
31
- align={align}
32
- sideOffset={sideOffset}
33
- className={cn(
34
- "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-[1001] w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",
35
- className
36
- )}
37
- {...props}
38
- />
39
- </PopoverPrimitive.Portal>
40
- )
41
- }
42
-
43
- function PopoverAnchor({
44
- ...props
45
- }: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {
46
- return <PopoverPrimitive.Anchor data-slot="popover-anchor" {...props} />
47
- }
48
-
49
- export { Popover, PopoverTrigger, PopoverContent, PopoverAnchor }
1
+ 'use client';
2
+
3
+ "use client"
4
+
5
+ import * as React from "react"
6
+ import * as PopoverPrimitive from "@radix-ui/react-popover"
7
+ import { cn } from "../../../infra/utils/clsx"
8
+
9
+ function Popover({
10
+ ...props
11
+ }: React.ComponentProps<typeof PopoverPrimitive.Root>) {
12
+ return <PopoverPrimitive.Root data-slot="popover" {...props} />
13
+ }
14
+
15
+ function PopoverTrigger({
16
+ ...props
17
+ }: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {
18
+ return <PopoverPrimitive.Trigger data-slot="popover-trigger" {...props} />
19
+ }
20
+
21
+ function PopoverContent({
22
+ className,
23
+ align = "center",
24
+ sideOffset = 4,
25
+ ...props
26
+ }: React.ComponentProps<typeof PopoverPrimitive.Content>) {
27
+ return (
28
+ <PopoverPrimitive.Portal>
29
+ <PopoverPrimitive.Content
30
+ data-slot="popover-content"
31
+ align={align}
32
+ sideOffset={sideOffset}
33
+ className={cn(
34
+ "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-[1001] w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",
35
+ className
36
+ )}
37
+ {...props}
38
+ />
39
+ </PopoverPrimitive.Portal>
40
+ )
41
+ }
42
+
43
+ function PopoverAnchor({
44
+ ...props
45
+ }: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {
46
+ return <PopoverPrimitive.Anchor data-slot="popover-anchor" {...props} />
47
+ }
48
+
49
+ export { Popover, PopoverTrigger, PopoverContent, PopoverAnchor }