@m5kdev/web-ui 0.9.1 → 0.9.2

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 (214) hide show
  1. package/dist/packages/backend/dist/src/modules/auth/auth.dto.d.mts +2 -2
  2. package/dist/packages/backend/dist/src/modules/auth/auth.dto.d.ts +2 -2
  3. package/dist/packages/backend/dist/src/types.d.mts +7 -7
  4. package/dist/packages/backend/dist/src/types.d.ts +7 -7
  5. package/dist/src/components/AvatarUpload.js +1 -1
  6. package/dist/src/components/AvatarUpload.mjs +2 -2
  7. package/dist/src/components/AvatarUpload.mjs.map +1 -1
  8. package/dist/src/components/Calendar.d.mts +1 -1
  9. package/dist/src/components/CardsSelect.js +1 -1
  10. package/dist/src/components/CardsSelect.mjs +1 -1
  11. package/dist/src/components/CollapsibleSidebarMenuItem.d.mts +1 -1
  12. package/dist/src/components/ColorPicker.d.mts +1 -1
  13. package/dist/src/components/ColorPicker.js +1 -1
  14. package/dist/src/components/ColorPicker.mjs +1 -1
  15. package/dist/src/components/CopyButton.d.mts +1 -1
  16. package/dist/src/components/CopyButton.js +1 -1
  17. package/dist/src/components/CopyButton.mjs +2 -2
  18. package/dist/src/components/CopyButton.mjs.map +1 -1
  19. package/dist/src/components/CropDialog.js +1 -1
  20. package/dist/src/components/CropDialog.mjs +1 -1
  21. package/dist/src/components/DialogProvider.d.mts +1 -1
  22. package/dist/src/components/DialogProvider.js +1 -1
  23. package/dist/src/components/DialogProvider.mjs +2 -2
  24. package/dist/src/components/DialogProvider.mjs.map +1 -1
  25. package/dist/src/components/FileDropzone.js +1 -1
  26. package/dist/src/components/FileDropzone.mjs +3 -3
  27. package/dist/src/components/FileDropzone.mjs.map +1 -1
  28. package/dist/src/components/MultiSelectDropdown.js +1 -1
  29. package/dist/src/components/MultiSelectDropdown.mjs +7 -7
  30. package/dist/src/components/MultiSelectDropdown.mjs.map +1 -1
  31. package/dist/src/components/Orb.js +1 -1
  32. package/dist/src/components/Orb.mjs +1 -1
  33. package/dist/src/components/PageAlert.d.mts +1 -1
  34. package/dist/src/components/PageAlert.d.ts +1 -1
  35. package/dist/src/components/PageAlert.js +1 -1
  36. package/dist/src/components/PageAlert.mjs +1 -1
  37. package/dist/src/components/SelectChips.d.mts +1 -1
  38. package/dist/src/components/SelectChips.js +1 -1
  39. package/dist/src/components/SelectChips.mjs +1 -1
  40. package/dist/src/components/SidebarItem.d.mts +1 -1
  41. package/dist/src/components/TablerIconPicker.d.mts +1 -1
  42. package/dist/src/components/TablerIconPicker.js +1 -1
  43. package/dist/src/components/TablerIconPicker.mjs +1 -1
  44. package/dist/src/components/app-header.js +1 -1
  45. package/dist/src/components/app-header.mjs +2 -2
  46. package/dist/src/components/app-header.mjs.map +1 -1
  47. package/dist/src/components/blur-card.d.mts +1 -1
  48. package/dist/src/components/blur-card.js +1 -1
  49. package/dist/src/components/blur-card.mjs +1 -1
  50. package/dist/src/components/features-section-demo-1.js +1 -1
  51. package/dist/src/components/features-section-demo-1.mjs +1 -1
  52. package/dist/src/components/features-section-demo-3.js +1 -1
  53. package/dist/src/components/features-section-demo-3.mjs +1 -1
  54. package/dist/src/components/shared/ButtonCopy.js +1 -1
  55. package/dist/src/components/shared/ButtonCopy.mjs +2 -2
  56. package/dist/src/components/shared/ButtonCopy.mjs.map +1 -1
  57. package/dist/src/components/team-switcher.d.mts +1 -1
  58. package/dist/src/components/team-switcher.js +1 -1
  59. package/dist/src/components/team-switcher.mjs +1 -1
  60. package/dist/src/components/theme-provider.js +1 -1
  61. package/dist/src/components/theme-provider.mjs +1 -1
  62. package/dist/src/components/typewriter.js +1 -1
  63. package/dist/src/components/typewriter.mjs +1 -1
  64. package/dist/src/components/ui/alert-dialog.d.mts +1 -1
  65. package/dist/src/components/ui/alert.d.mts +1 -1
  66. package/dist/src/components/ui/avatar.js +1 -1
  67. package/dist/src/components/ui/avatar.mjs +1 -1
  68. package/dist/src/components/ui/badge.d.mts +1 -1
  69. package/dist/src/components/ui/bento-grid2.d.mts +1 -1
  70. package/dist/src/components/ui/breadcrumb.d.mts +1 -1
  71. package/dist/src/components/ui/breadcrumb.js +1 -1
  72. package/dist/src/components/ui/breadcrumb.mjs +1 -1
  73. package/dist/src/components/ui/button.js +1 -1
  74. package/dist/src/components/ui/button.mjs +1 -1
  75. package/dist/src/components/ui/card.js +1 -1
  76. package/dist/src/components/ui/card.mjs +1 -1
  77. package/dist/src/components/ui/checkbox.js +1 -1
  78. package/dist/src/components/ui/checkbox.mjs +1 -1
  79. package/dist/src/components/ui/dialog.d.mts +1 -1
  80. package/dist/src/components/ui/dropdown-menu.d.mts +1 -1
  81. package/dist/src/components/ui/dropdown-menu.js +1 -1
  82. package/dist/src/components/ui/dropdown-menu.mjs +1 -1
  83. package/dist/src/components/ui/floating-navbar.d.mts +1 -1
  84. package/dist/src/components/ui/floating-navbar.js +1 -1
  85. package/dist/src/components/ui/floating-navbar.mjs +1 -1
  86. package/dist/src/components/ui/form.d.mts +1 -1
  87. package/dist/src/components/ui/form.js +1 -1
  88. package/dist/src/components/ui/form.mjs +1 -1
  89. package/dist/src/components/ui/image.js +1 -1
  90. package/dist/src/components/ui/image.mjs +1 -1
  91. package/dist/src/components/ui/input.js +1 -1
  92. package/dist/src/components/ui/input.mjs +1 -1
  93. package/dist/src/components/ui/label.js +1 -1
  94. package/dist/src/components/ui/label.mjs +1 -1
  95. package/dist/src/components/ui/pagination.d.mts +1 -1
  96. package/dist/src/components/ui/progress.js +1 -1
  97. package/dist/src/components/ui/progress.mjs +1 -1
  98. package/dist/src/components/ui/resizable-navbar.d.mts +1 -1
  99. package/dist/src/components/ui/resizable-navbar.js +1 -1
  100. package/dist/src/components/ui/resizable-navbar.mjs +1 -1
  101. package/dist/src/components/ui/segment-control.js +1 -1
  102. package/dist/src/components/ui/segment-control.mjs +3 -3
  103. package/dist/src/components/ui/segment-control.mjs.map +1 -1
  104. package/dist/src/components/ui/select.js +1 -1
  105. package/dist/src/components/ui/select.mjs +1 -1
  106. package/dist/src/components/ui/separator.js +1 -1
  107. package/dist/src/components/ui/separator.mjs +1 -1
  108. package/dist/src/components/ui/sheet.d.mts +1 -1
  109. package/dist/src/components/ui/sheet.js +1 -1
  110. package/dist/src/components/ui/sheet.mjs +1 -1
  111. package/dist/src/components/ui/sidebar.js +1 -1
  112. package/dist/src/components/ui/sidebar.mjs +1 -1
  113. package/dist/src/components/ui/slider.js +1 -1
  114. package/dist/src/components/ui/slider.mjs +1 -1
  115. package/dist/src/components/ui/spinner.d.mts +1 -1
  116. package/dist/src/components/ui/switch.js +1 -1
  117. package/dist/src/components/ui/switch.mjs +1 -1
  118. package/dist/src/components/ui/table.d.mts +1 -1
  119. package/dist/src/components/ui/tabs.d.mts +1 -1
  120. package/dist/src/components/ui/textarea.d.mts +1 -1
  121. package/dist/src/components/ui/timeline.d.mts +1 -1
  122. package/dist/src/components/ui/timeline.js +1 -1
  123. package/dist/src/components/ui/timeline.mjs +1 -1
  124. package/dist/src/components/ui/toast.js +1 -1
  125. package/dist/src/components/ui/toast.mjs +1 -1
  126. package/dist/src/components/ui/tooltip.d.mts +1 -1
  127. package/dist/src/components/ui/typewriter-effect.js +1 -1
  128. package/dist/src/components/ui/typewriter-effect.mjs +1 -1
  129. package/dist/src/icons/GoogleIcon.d.mts +1 -1
  130. package/dist/src/icons/LinkedInIcon.d.mts +1 -1
  131. package/dist/src/icons/MicrosoftIcon.d.mts +1 -1
  132. package/dist/src/modules/app/components/AppLoader.d.mts +1 -1
  133. package/dist/src/modules/app/components/AppLoader.js +1 -1
  134. package/dist/src/modules/app/components/AppLoader.mjs +1 -1
  135. package/dist/src/modules/app/components/AppShell.d.mts +1 -1
  136. package/dist/src/modules/app/components/AppSidebar.d.mts +1 -1
  137. package/dist/src/modules/app/components/AppSidebarHeader.js +1 -1
  138. package/dist/src/modules/app/components/AppSidebarHeader.mjs +1 -1
  139. package/dist/src/modules/app/components/AppSidebarInvites.js +1 -1
  140. package/dist/src/modules/app/components/AppSidebarInvites.mjs +1 -1
  141. package/dist/src/modules/auth/components/AdminUserManagement.js +1 -1
  142. package/dist/src/modules/auth/components/AdminUserManagement.mjs +5 -5
  143. package/dist/src/modules/auth/components/AdminUserManagement.mjs.map +1 -1
  144. package/dist/src/modules/auth/components/AdminWaitlist.js +1 -1
  145. package/dist/src/modules/auth/components/AdminWaitlist.mjs +3 -3
  146. package/dist/src/modules/auth/components/AdminWaitlist.mjs.map +1 -1
  147. package/dist/src/modules/auth/components/AuthLayout.d.mts +1 -1
  148. package/dist/src/modules/auth/components/AuthProviders.js +1 -1
  149. package/dist/src/modules/auth/components/AuthProviders.mjs +1 -1
  150. package/dist/src/modules/auth/components/AuthRouter.d.mts +1 -1
  151. package/dist/src/modules/auth/components/ClaimAccountRoute.js +1 -1
  152. package/dist/src/modules/auth/components/ClaimAccountRoute.mjs +1 -1
  153. package/dist/src/modules/auth/components/ErrorAuthRoute.js +1 -1
  154. package/dist/src/modules/auth/components/ErrorAuthRoute.mjs +1 -1
  155. package/dist/src/modules/auth/components/ForgotPasswordForm.js +1 -1
  156. package/dist/src/modules/auth/components/ForgotPasswordForm.mjs +1 -1
  157. package/dist/src/modules/auth/components/ForgotPasswordRoute.js +1 -1
  158. package/dist/src/modules/auth/components/ForgotPasswordRoute.mjs +1 -1
  159. package/dist/src/modules/auth/components/InviteFriends.js +1 -1
  160. package/dist/src/modules/auth/components/InviteFriends.mjs +1 -1
  161. package/dist/src/modules/auth/components/LastUsedBadge.d.mts +1 -1
  162. package/dist/src/modules/auth/components/LastUsedBadge.js +1 -1
  163. package/dist/src/modules/auth/components/LastUsedBadge.mjs +1 -1
  164. package/dist/src/modules/auth/components/LoginForm.js +1 -1
  165. package/dist/src/modules/auth/components/LoginForm.mjs +1 -1
  166. package/dist/src/modules/auth/components/LoginRoute.js +1 -1
  167. package/dist/src/modules/auth/components/LoginRoute.mjs +1 -1
  168. package/dist/src/modules/auth/components/LogoutRoute.js +1 -1
  169. package/dist/src/modules/auth/components/LogoutRoute.mjs +1 -1
  170. package/dist/src/modules/auth/components/OrganizationAcceptInvitationRoute.js +1 -1
  171. package/dist/src/modules/auth/components/OrganizationAcceptInvitationRoute.mjs +1 -1
  172. package/dist/src/modules/auth/components/OrganizationMembersRoute.js +1 -1
  173. package/dist/src/modules/auth/components/OrganizationMembersRoute.mjs +1 -1
  174. package/dist/src/modules/auth/components/OrganizationPreferences.js +1 -1
  175. package/dist/src/modules/auth/components/OrganizationPreferences.mjs +1 -1
  176. package/dist/src/modules/auth/components/OrganizationSettingsRoute.js +1 -1
  177. package/dist/src/modules/auth/components/OrganizationSettingsRoute.mjs +1 -1
  178. package/dist/src/modules/auth/components/OrganizationSwitcher.js +1 -1
  179. package/dist/src/modules/auth/components/OrganizationSwitcher.mjs +1 -1
  180. package/dist/src/modules/auth/components/PreferencesEditor.js +1 -1
  181. package/dist/src/modules/auth/components/PreferencesEditor.mjs +1 -1
  182. package/dist/src/modules/auth/components/ProfileRoute.js +1 -1
  183. package/dist/src/modules/auth/components/ProfileRoute.mjs +1 -1
  184. package/dist/src/modules/auth/components/RangeNuqsDatePicker.js +1 -1
  185. package/dist/src/modules/auth/components/RangeNuqsDatePicker.mjs +1 -1
  186. package/dist/src/modules/auth/components/ResetPasswordForm.js +1 -1
  187. package/dist/src/modules/auth/components/ResetPasswordForm.mjs +1 -1
  188. package/dist/src/modules/auth/components/ResetPasswordRoute.js +1 -1
  189. package/dist/src/modules/auth/components/ResetPasswordRoute.mjs +1 -1
  190. package/dist/src/modules/auth/components/SignupFormRoute.js +1 -1
  191. package/dist/src/modules/auth/components/SignupFormRoute.mjs +1 -1
  192. package/dist/src/modules/auth/components/SignupRoute.js +1 -1
  193. package/dist/src/modules/auth/components/SignupRoute.mjs +1 -1
  194. package/dist/src/modules/auth/components/WaitlistCard.js +1 -1
  195. package/dist/src/modules/auth/components/WaitlistCard.mjs +1 -1
  196. package/dist/src/modules/auth/components/WaitlistCodeValidation.js +1 -1
  197. package/dist/src/modules/auth/components/WaitlistCodeValidation.mjs +1 -1
  198. package/dist/src/modules/billing/components/BillingBetaPage.d.mts +1 -1
  199. package/dist/src/modules/billing/components/BillingInvoicePage.js +1 -1
  200. package/dist/src/modules/billing/components/BillingInvoicePage.mjs +1 -1
  201. package/dist/src/modules/billing/components/BillingSinglePlanSelect.js +1 -1
  202. package/dist/src/modules/billing/components/BillingSinglePlanSelect.mjs +1 -1
  203. package/dist/src/modules/table/components/ColumnOrderAndVisibility.js +1 -1
  204. package/dist/src/modules/table/components/ColumnOrderAndVisibility.mjs +1 -1
  205. package/dist/src/modules/table/components/NuqsTable.js +1 -1
  206. package/dist/src/modules/table/components/NuqsTable.mjs +3 -3
  207. package/dist/src/modules/table/components/NuqsTable.mjs.map +1 -1
  208. package/dist/src/modules/table/components/TableFiltering.js +1 -1
  209. package/dist/src/modules/table/components/TableFiltering.mjs +1 -1
  210. package/dist/src/modules/table/components/TableGroupBy.js +1 -1
  211. package/dist/src/modules/table/components/TableGroupBy.mjs +1 -1
  212. package/dist/src/modules/table/components/TablePagination.js +1 -1
  213. package/dist/src/modules/table/components/TablePagination.mjs +1 -1
  214. package/package.json +5 -5
@@ -13,8 +13,8 @@ declare const waitlistSchema: z.ZodObject<{
13
13
  expiresAt: z.ZodNullable<z.ZodDate>;
14
14
  }, z.core.$strip>;
15
15
  declare const waitlistOutputSchema: z.ZodObject<{
16
- name: z.ZodNullable<z.ZodString>;
17
16
  id: z.ZodString;
17
+ name: z.ZodNullable<z.ZodString>;
18
18
  email: z.ZodNullable<z.ZodString>;
19
19
  createdAt: z.ZodDate;
20
20
  updatedAt: z.ZodNullable<z.ZodDate>;
@@ -59,8 +59,8 @@ declare const accountClaimMagicLinkOutputSchema: z.ZodObject<{
59
59
  id: z.ZodString;
60
60
  email: z.ZodString;
61
61
  createdAt: z.ZodDate;
62
- expiresAt: z.ZodNullable<z.ZodDate>;
63
62
  userId: z.ZodString;
63
+ expiresAt: z.ZodNullable<z.ZodDate>;
64
64
  claimId: z.ZodString;
65
65
  url: z.ZodString;
66
66
  }, z.core.$strip>;
@@ -13,8 +13,8 @@ declare const waitlistSchema: z.ZodObject<{
13
13
  expiresAt: z.ZodNullable<z.ZodDate>;
14
14
  }, z.core.$strip>;
15
15
  declare const waitlistOutputSchema: z.ZodObject<{
16
- name: z.ZodNullable<z.ZodString>;
17
16
  id: z.ZodString;
17
+ name: z.ZodNullable<z.ZodString>;
18
18
  email: z.ZodNullable<z.ZodString>;
19
19
  createdAt: z.ZodDate;
20
20
  updatedAt: z.ZodNullable<z.ZodDate>;
@@ -59,8 +59,8 @@ declare const accountClaimMagicLinkOutputSchema: z.ZodObject<{
59
59
  id: z.ZodString;
60
60
  email: z.ZodString;
61
61
  createdAt: z.ZodDate;
62
- expiresAt: z.ZodNullable<z.ZodDate>;
63
62
  userId: z.ZodString;
63
+ expiresAt: z.ZodNullable<z.ZodDate>;
64
64
  claimId: z.ZodString;
65
65
  url: z.ZodString;
66
66
  }, z.core.$strip>;
@@ -79,8 +79,8 @@ declare const createAuthTRPCRouter: (trpcMethods: TRPCMethods, authService: Auth
79
79
  id: string;
80
80
  email: string;
81
81
  createdAt: Date;
82
- expiresAt: Date | null;
83
82
  userId: string;
83
+ expiresAt: Date | null;
84
84
  claimId: string;
85
85
  url: string;
86
86
  };
@@ -94,8 +94,8 @@ declare const createAuthTRPCRouter: (trpcMethods: TRPCMethods, authService: Auth
94
94
  id: string;
95
95
  email: string;
96
96
  createdAt: Date;
97
- expiresAt: Date | null;
98
97
  userId: string;
98
+ expiresAt: Date | null;
99
99
  claimId: string;
100
100
  url: string;
101
101
  }[];
@@ -149,8 +149,8 @@ declare const createAuthTRPCRouter: (trpcMethods: TRPCMethods, authService: Auth
149
149
  listAdminWaitlist: QueryProcedure<{
150
150
  input: void;
151
151
  output: {
152
- name: string | null;
153
152
  id: string;
153
+ name: string | null;
154
154
  email: string | null;
155
155
  createdAt: Date;
156
156
  updatedAt: Date | null;
@@ -163,8 +163,8 @@ declare const createAuthTRPCRouter: (trpcMethods: TRPCMethods, authService: Auth
163
163
  email: string;
164
164
  };
165
165
  output: {
166
- name: string | null;
167
166
  id: string;
167
+ name: string | null;
168
168
  email: string | null;
169
169
  createdAt: Date;
170
170
  updatedAt: Date | null;
@@ -194,8 +194,8 @@ declare const createAuthTRPCRouter: (trpcMethods: TRPCMethods, authService: Auth
194
194
  id: string;
195
195
  };
196
196
  output: {
197
- name: string | null;
198
197
  id: string;
198
+ name: string | null;
199
199
  email: string | null;
200
200
  createdAt: Date;
201
201
  updatedAt: Date | null;
@@ -208,8 +208,8 @@ declare const createAuthTRPCRouter: (trpcMethods: TRPCMethods, authService: Auth
208
208
  id: string;
209
209
  };
210
210
  output: {
211
- name: string | null;
212
211
  id: string;
212
+ name: string | null;
213
213
  email: string | null;
214
214
  createdAt: Date;
215
215
  updatedAt: Date | null;
@@ -222,8 +222,8 @@ declare const createAuthTRPCRouter: (trpcMethods: TRPCMethods, authService: Auth
222
222
  email: string;
223
223
  };
224
224
  output: {
225
- name: string | null;
226
225
  id: string;
226
+ name: string | null;
227
227
  email: string | null;
228
228
  createdAt: Date;
229
229
  updatedAt: Date | null;
@@ -79,8 +79,8 @@ declare const createAuthTRPCRouter: (trpcMethods: TRPCMethods, authService: Auth
79
79
  id: string;
80
80
  email: string;
81
81
  createdAt: Date;
82
- expiresAt: Date | null;
83
82
  userId: string;
83
+ expiresAt: Date | null;
84
84
  claimId: string;
85
85
  url: string;
86
86
  };
@@ -94,8 +94,8 @@ declare const createAuthTRPCRouter: (trpcMethods: TRPCMethods, authService: Auth
94
94
  id: string;
95
95
  email: string;
96
96
  createdAt: Date;
97
- expiresAt: Date | null;
98
97
  userId: string;
98
+ expiresAt: Date | null;
99
99
  claimId: string;
100
100
  url: string;
101
101
  }[];
@@ -149,8 +149,8 @@ declare const createAuthTRPCRouter: (trpcMethods: TRPCMethods, authService: Auth
149
149
  listAdminWaitlist: QueryProcedure<{
150
150
  input: void;
151
151
  output: {
152
- name: string | null;
153
152
  id: string;
153
+ name: string | null;
154
154
  email: string | null;
155
155
  createdAt: Date;
156
156
  updatedAt: Date | null;
@@ -163,8 +163,8 @@ declare const createAuthTRPCRouter: (trpcMethods: TRPCMethods, authService: Auth
163
163
  email: string;
164
164
  };
165
165
  output: {
166
- name: string | null;
167
166
  id: string;
167
+ name: string | null;
168
168
  email: string | null;
169
169
  createdAt: Date;
170
170
  updatedAt: Date | null;
@@ -194,8 +194,8 @@ declare const createAuthTRPCRouter: (trpcMethods: TRPCMethods, authService: Auth
194
194
  id: string;
195
195
  };
196
196
  output: {
197
- name: string | null;
198
197
  id: string;
198
+ name: string | null;
199
199
  email: string | null;
200
200
  createdAt: Date;
201
201
  updatedAt: Date | null;
@@ -208,8 +208,8 @@ declare const createAuthTRPCRouter: (trpcMethods: TRPCMethods, authService: Auth
208
208
  id: string;
209
209
  };
210
210
  output: {
211
- name: string | null;
212
211
  id: string;
212
+ name: string | null;
213
213
  email: string | null;
214
214
  createdAt: Date;
215
215
  updatedAt: Date | null;
@@ -222,8 +222,8 @@ declare const createAuthTRPCRouter: (trpcMethods: TRPCMethods, authService: Auth
222
222
  email: string;
223
223
  };
224
224
  output: {
225
- name: string | null;
226
225
  id: string;
226
+ name: string | null;
227
227
  email: string | null;
228
228
  createdAt: Date;
229
229
  updatedAt: Date | null;
@@ -4,8 +4,8 @@ const require_src_lib_utils = require("../lib/utils.js");
4
4
  const require_src_components_CropDialog = require("./CropDialog.js");
5
5
  const require_src_components_ui_avatar = require("./ui/avatar.js");
6
6
  const require_src_components_ui_progress = require("./ui/progress.js");
7
- let react_jsx_runtime = require("react/jsx-runtime");
8
7
  let react = require("react");
8
+ let react_jsx_runtime = require("react/jsx-runtime");
9
9
  let _m5kdev_frontend_modules_file_hooks_useUpload = require("@m5kdev/frontend/modules/file/hooks/useUpload");
10
10
  let lucide_react = require("lucide-react");
11
11
  let react_i18next = require("react-i18next");
@@ -2,8 +2,8 @@ import { cn } from "../lib/utils.mjs";
2
2
  import { CropDialog } from "./CropDialog.mjs";
3
3
  import { Avatar, AvatarFallback, AvatarImage } from "./ui/avatar.mjs";
4
4
  import { Progress } from "./ui/progress.mjs";
5
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
6
5
  import { useRef, useState } from "react";
6
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
7
7
  import { useFileUpload } from "@m5kdev/frontend/modules/file/hooks/useUpload";
8
8
  import { Edit2, User } from "lucide-react";
9
9
  import { useTranslation } from "react-i18next";
@@ -58,7 +58,7 @@ function AvatarUpload({ currentAvatarUrl, onUploadComplete, className }) {
58
58
  reset();
59
59
  if (fileInputRef.current) fileInputRef.current.value = "";
60
60
  };
61
- return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs("div", {
61
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsxs("div", {
62
62
  role: "dialog",
63
63
  className: cn("relative inline-block", className),
64
64
  onMouseEnter: () => setIsHovered(true),
@@ -1 +1 @@
1
- {"version":3,"file":"AvatarUpload.mjs","names":[],"sources":["../../../src/components/AvatarUpload.tsx"],"sourcesContent":["import { useFileUpload } from \"@m5kdev/frontend/modules/file/hooks/useUpload\";\r\nimport { Edit2, User } from \"lucide-react\";\r\nimport { type ChangeEvent, useRef, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { CropDialog } from \"./CropDialog\";\r\nimport { Avatar, AvatarFallback, AvatarImage } from \"./ui/avatar\";\r\nimport { Progress } from \"./ui/progress\";\r\nimport { cn } from \"../lib/utils\";\r\n\r\ninterface AvatarUploadProps {\r\n currentAvatarUrl?: string | null;\r\n onUploadComplete?: (avatarUrl: string) => void;\r\n className?: string;\r\n}\r\n\r\nexport function AvatarUpload({ currentAvatarUrl, onUploadComplete, className }: AvatarUploadProps) {\r\n const { t } = useTranslation();\r\n const [isHovered, setIsHovered] = useState(false);\r\n const [selectedFile, setSelectedFile] = useState<File | null>(null);\r\n const [previewUrl, setPreviewUrl] = useState<string | null>(currentAvatarUrl || null);\r\n const [showCropDialog, setShowCropDialog] = useState(false);\r\n\r\n const fileInputRef = useRef<HTMLInputElement>(null);\r\n const { upload, status, progress, errorMessage, reset } = useFileUpload();\r\n\r\n const handleFileSelect = (event: ChangeEvent<HTMLInputElement>) => {\r\n const file = event.target.files?.[0];\r\n if (file) {\r\n // Validate file type\r\n if (![\"image/jpeg\", \"image/png\", \"image/webp\", \"image/jpg\"].includes(file.type)) {\r\n alert(t(\"web-ui:upload.errors.invalidType\"));\r\n return;\r\n }\r\n // Validate file size (5MB)\r\n if (file.size > 5 * 1024 * 1024) {\r\n alert(t(\"web-ui:upload.errors.tooLarge\"));\r\n return;\r\n }\r\n setSelectedFile(file);\r\n const objectUrl = URL.createObjectURL(file);\r\n setPreviewUrl(objectUrl);\r\n setShowCropDialog(true);\r\n }\r\n };\r\n\r\n const handleCropComplete = async (croppedBlob: Blob) => {\r\n const croppedFile = new File([croppedBlob], selectedFile?.name || \"cropped-image.jpg\", {\r\n type: \"image/jpeg\",\r\n });\r\n\r\n setSelectedFile(croppedFile);\r\n const croppedObjectUrl = URL.createObjectURL(croppedFile);\r\n setPreviewUrl(croppedObjectUrl);\r\n setShowCropDialog(false);\r\n\r\n try {\r\n const res = await upload<{\r\n url: string;\r\n minetype: string;\r\n size: number;\r\n }>(\"image\", croppedFile);\r\n console.log({ res });\r\n onUploadComplete?.(res.url);\r\n } catch (error) {\r\n console.error(\"Error uploading image:\", error);\r\n }\r\n };\r\n\r\n const removeFile = () => {\r\n if (previewUrl && previewUrl !== currentAvatarUrl) {\r\n URL.revokeObjectURL(previewUrl);\r\n }\r\n setSelectedFile(null);\r\n setPreviewUrl(currentAvatarUrl || null);\r\n setShowCropDialog(false);\r\n reset();\r\n if (fileInputRef.current) {\r\n fileInputRef.current.value = \"\";\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n <div\r\n role=\"dialog\"\r\n className={cn(\"relative inline-block\", className)}\r\n onMouseEnter={() => setIsHovered(true)}\r\n onMouseLeave={() => setIsHovered(false)}\r\n >\r\n <Avatar className=\"h-24 w-24 cursor-pointer\" onClick={() => fileInputRef.current?.click()}>\r\n {previewUrl ? (\r\n <AvatarImage src={previewUrl} alt={t(\"web-ui:avatar.preview.alt\")} />\r\n ) : (\r\n <AvatarFallback>\r\n <User className=\"h-12 w-12\" />\r\n </AvatarFallback>\r\n )}\r\n {isHovered && (\r\n <div className=\"absolute inset-0 flex items-center justify-center bg-black/50 rounded-full\">\r\n <Edit2 className=\"h-6 w-6 text-white\" />\r\n </div>\r\n )}\r\n </Avatar>\r\n\r\n <input\r\n ref={fileInputRef}\r\n type=\"file\"\r\n className=\"hidden\"\r\n accept=\"image/jpeg,image/png,image/webp\"\r\n onChange={handleFileSelect}\r\n />\r\n\r\n {status === \"uploading\" && (\r\n <div className=\"mt-2 w-full\">\r\n <Progress value={progress} className=\"h-2\" />\r\n </div>\r\n )}\r\n {status === \"error\" && <p className=\"mt-2 text-sm text-red-500\">{errorMessage}</p>}\r\n </div>\r\n\r\n {previewUrl && (\r\n <CropDialog\r\n open={showCropDialog}\r\n onOpenChange={setShowCropDialog}\r\n imageUrl={previewUrl}\r\n onCropComplete={handleCropComplete}\r\n onCancel={removeFile}\r\n isLoading={status === \"uploading\"}\r\n />\r\n )}\r\n </>\r\n );\r\n}\r\n"],"mappings":";;;;;;;;;;AAeA,SAAgB,aAAa,EAAE,kBAAkB,kBAAkB,aAAgC;CACjG,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,CAAC,WAAW,gBAAgB,SAAS,MAAM;CACjD,MAAM,CAAC,cAAc,mBAAmB,SAAsB,KAAK;CACnE,MAAM,CAAC,YAAY,iBAAiB,SAAwB,oBAAoB,KAAK;CACrF,MAAM,CAAC,gBAAgB,qBAAqB,SAAS,MAAM;CAE3D,MAAM,eAAe,OAAyB,KAAK;CACnD,MAAM,EAAE,QAAQ,QAAQ,UAAU,cAAc,UAAU,eAAe;CAEzE,MAAM,oBAAoB,UAAyC;EACjE,MAAM,OAAO,MAAM,OAAO,QAAQ;AAClC,MAAI,MAAM;AAER,OAAI,CAAC;IAAC;IAAc;IAAa;IAAc;IAAY,CAAC,SAAS,KAAK,KAAK,EAAE;AAC/E,UAAM,EAAE,mCAAmC,CAAC;AAC5C;;AAGF,OAAI,KAAK,OAAO,IAAI,OAAO,MAAM;AAC/B,UAAM,EAAE,gCAAgC,CAAC;AACzC;;AAEF,mBAAgB,KAAK;AAErB,iBADkB,IAAI,gBAAgB,KAAK,CACnB;AACxB,qBAAkB,KAAK;;;CAI3B,MAAM,qBAAqB,OAAO,gBAAsB;EACtD,MAAM,cAAc,IAAI,KAAK,CAAC,YAAY,EAAE,cAAc,QAAQ,qBAAqB,EACrF,MAAM,cACP,CAAC;AAEF,kBAAgB,YAAY;AAE5B,gBADyB,IAAI,gBAAgB,YAAY,CAC1B;AAC/B,oBAAkB,MAAM;AAExB,MAAI;GACF,MAAM,MAAM,MAAM,OAIf,SAAS,YAAY;AACxB,WAAQ,IAAI,EAAE,KAAK,CAAC;AACpB,sBAAmB,IAAI,IAAI;WACpB,OAAO;AACd,WAAQ,MAAM,0BAA0B,MAAM;;;CAIlD,MAAM,mBAAmB;AACvB,MAAI,cAAc,eAAe,iBAC/B,KAAI,gBAAgB,WAAW;AAEjC,kBAAgB,KAAK;AACrB,gBAAc,oBAAoB,KAAK;AACvC,oBAAkB,MAAM;AACxB,SAAO;AACP,MAAI,aAAa,QACf,cAAa,QAAQ,QAAQ;;AAIjC,QACE,qBAAA,UAAA,EAAA,UAAA,CACE,qBAAC,OAAD;EACE,MAAK;EACL,WAAW,GAAG,yBAAyB,UAAU;EACjD,oBAAoB,aAAa,KAAK;EACtC,oBAAoB,aAAa,MAAM;YAJzC;GAME,qBAAC,QAAD;IAAQ,WAAU;IAA2B,eAAe,aAAa,SAAS,OAAO;cAAzF,CACG,aACC,oBAAC,aAAD;KAAa,KAAK;KAAY,KAAK,EAAE,4BAA4B;KAAI,CAAA,GAErE,oBAAC,gBAAD,EAAA,UACE,oBAAC,MAAD,EAAM,WAAU,aAAc,CAAA,EACf,CAAA,EAElB,aACC,oBAAC,OAAD;KAAK,WAAU;eACb,oBAAC,OAAD,EAAO,WAAU,sBAAuB,CAAA;KACpC,CAAA,CAED;;GAET,oBAAC,SAAD;IACE,KAAK;IACL,MAAK;IACL,WAAU;IACV,QAAO;IACP,UAAU;IACV,CAAA;GAED,WAAW,eACV,oBAAC,OAAD;IAAK,WAAU;cACb,oBAAC,UAAD;KAAU,OAAO;KAAU,WAAU;KAAQ,CAAA;IACzC,CAAA;GAEP,WAAW,WAAW,oBAAC,KAAD;IAAG,WAAU;cAA6B;IAAiB,CAAA;GAC9E;KAEL,cACC,oBAAC,YAAD;EACE,MAAM;EACN,cAAc;EACd,UAAU;EACV,gBAAgB;EAChB,UAAU;EACV,WAAW,WAAW;EACtB,CAAA,CAEH,EAAA,CAAA"}
1
+ {"version":3,"file":"AvatarUpload.mjs","names":[],"sources":["../../../src/components/AvatarUpload.tsx"],"sourcesContent":["import { useFileUpload } from \"@m5kdev/frontend/modules/file/hooks/useUpload\";\r\nimport { Edit2, User } from \"lucide-react\";\r\nimport { type ChangeEvent, useRef, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { CropDialog } from \"./CropDialog\";\r\nimport { Avatar, AvatarFallback, AvatarImage } from \"./ui/avatar\";\r\nimport { Progress } from \"./ui/progress\";\r\nimport { cn } from \"../lib/utils\";\r\n\r\ninterface AvatarUploadProps {\r\n currentAvatarUrl?: string | null;\r\n onUploadComplete?: (avatarUrl: string) => void;\r\n className?: string;\r\n}\r\n\r\nexport function AvatarUpload({ currentAvatarUrl, onUploadComplete, className }: AvatarUploadProps) {\r\n const { t } = useTranslation();\r\n const [isHovered, setIsHovered] = useState(false);\r\n const [selectedFile, setSelectedFile] = useState<File | null>(null);\r\n const [previewUrl, setPreviewUrl] = useState<string | null>(currentAvatarUrl || null);\r\n const [showCropDialog, setShowCropDialog] = useState(false);\r\n\r\n const fileInputRef = useRef<HTMLInputElement>(null);\r\n const { upload, status, progress, errorMessage, reset } = useFileUpload();\r\n\r\n const handleFileSelect = (event: ChangeEvent<HTMLInputElement>) => {\r\n const file = event.target.files?.[0];\r\n if (file) {\r\n // Validate file type\r\n if (![\"image/jpeg\", \"image/png\", \"image/webp\", \"image/jpg\"].includes(file.type)) {\r\n alert(t(\"web-ui:upload.errors.invalidType\"));\r\n return;\r\n }\r\n // Validate file size (5MB)\r\n if (file.size > 5 * 1024 * 1024) {\r\n alert(t(\"web-ui:upload.errors.tooLarge\"));\r\n return;\r\n }\r\n setSelectedFile(file);\r\n const objectUrl = URL.createObjectURL(file);\r\n setPreviewUrl(objectUrl);\r\n setShowCropDialog(true);\r\n }\r\n };\r\n\r\n const handleCropComplete = async (croppedBlob: Blob) => {\r\n const croppedFile = new File([croppedBlob], selectedFile?.name || \"cropped-image.jpg\", {\r\n type: \"image/jpeg\",\r\n });\r\n\r\n setSelectedFile(croppedFile);\r\n const croppedObjectUrl = URL.createObjectURL(croppedFile);\r\n setPreviewUrl(croppedObjectUrl);\r\n setShowCropDialog(false);\r\n\r\n try {\r\n const res = await upload<{\r\n url: string;\r\n minetype: string;\r\n size: number;\r\n }>(\"image\", croppedFile);\r\n console.log({ res });\r\n onUploadComplete?.(res.url);\r\n } catch (error) {\r\n console.error(\"Error uploading image:\", error);\r\n }\r\n };\r\n\r\n const removeFile = () => {\r\n if (previewUrl && previewUrl !== currentAvatarUrl) {\r\n URL.revokeObjectURL(previewUrl);\r\n }\r\n setSelectedFile(null);\r\n setPreviewUrl(currentAvatarUrl || null);\r\n setShowCropDialog(false);\r\n reset();\r\n if (fileInputRef.current) {\r\n fileInputRef.current.value = \"\";\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n <div\r\n role=\"dialog\"\r\n className={cn(\"relative inline-block\", className)}\r\n onMouseEnter={() => setIsHovered(true)}\r\n onMouseLeave={() => setIsHovered(false)}\r\n >\r\n <Avatar className=\"h-24 w-24 cursor-pointer\" onClick={() => fileInputRef.current?.click()}>\r\n {previewUrl ? (\r\n <AvatarImage src={previewUrl} alt={t(\"web-ui:avatar.preview.alt\")} />\r\n ) : (\r\n <AvatarFallback>\r\n <User className=\"h-12 w-12\" />\r\n </AvatarFallback>\r\n )}\r\n {isHovered && (\r\n <div className=\"absolute inset-0 flex items-center justify-center bg-black/50 rounded-full\">\r\n <Edit2 className=\"h-6 w-6 text-white\" />\r\n </div>\r\n )}\r\n </Avatar>\r\n\r\n <input\r\n ref={fileInputRef}\r\n type=\"file\"\r\n className=\"hidden\"\r\n accept=\"image/jpeg,image/png,image/webp\"\r\n onChange={handleFileSelect}\r\n />\r\n\r\n {status === \"uploading\" && (\r\n <div className=\"mt-2 w-full\">\r\n <Progress value={progress} className=\"h-2\" />\r\n </div>\r\n )}\r\n {status === \"error\" && <p className=\"mt-2 text-sm text-red-500\">{errorMessage}</p>}\r\n </div>\r\n\r\n {previewUrl && (\r\n <CropDialog\r\n open={showCropDialog}\r\n onOpenChange={setShowCropDialog}\r\n imageUrl={previewUrl}\r\n onCropComplete={handleCropComplete}\r\n onCancel={removeFile}\r\n isLoading={status === \"uploading\"}\r\n />\r\n )}\r\n </>\r\n );\r\n}\r\n"],"mappings":";;;;;;;;;;AAeA,SAAgB,aAAa,EAAE,kBAAkB,kBAAkB,aAAgC;CACjG,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,CAAC,WAAW,gBAAgB,SAAS,MAAM;CACjD,MAAM,CAAC,cAAc,mBAAmB,SAAsB,KAAK;CACnE,MAAM,CAAC,YAAY,iBAAiB,SAAwB,oBAAoB,KAAK;CACrF,MAAM,CAAC,gBAAgB,qBAAqB,SAAS,MAAM;CAE3D,MAAM,eAAe,OAAyB,KAAK;CACnD,MAAM,EAAE,QAAQ,QAAQ,UAAU,cAAc,UAAU,eAAe;CAEzE,MAAM,oBAAoB,UAAyC;EACjE,MAAM,OAAO,MAAM,OAAO,QAAQ;AAClC,MAAI,MAAM;AAER,OAAI,CAAC;IAAC;IAAc;IAAa;IAAc;IAAY,CAAC,SAAS,KAAK,KAAK,EAAE;AAC/E,UAAM,EAAE,mCAAmC,CAAC;AAC5C;;AAGF,OAAI,KAAK,OAAO,IAAI,OAAO,MAAM;AAC/B,UAAM,EAAE,gCAAgC,CAAC;AACzC;;AAEF,mBAAgB,KAAK;AAErB,iBADkB,IAAI,gBAAgB,KAAK,CACnB;AACxB,qBAAkB,KAAK;;;CAI3B,MAAM,qBAAqB,OAAO,gBAAsB;EACtD,MAAM,cAAc,IAAI,KAAK,CAAC,YAAY,EAAE,cAAc,QAAQ,qBAAqB,EACrF,MAAM,cACP,CAAC;AAEF,kBAAgB,YAAY;AAE5B,gBADyB,IAAI,gBAAgB,YAAY,CAC1B;AAC/B,oBAAkB,MAAM;AAExB,MAAI;GACF,MAAM,MAAM,MAAM,OAIf,SAAS,YAAY;AACxB,WAAQ,IAAI,EAAE,KAAK,CAAC;AACpB,sBAAmB,IAAI,IAAI;WACpB,OAAO;AACd,WAAQ,MAAM,0BAA0B,MAAM;;;CAIlD,MAAM,mBAAmB;AACvB,MAAI,cAAc,eAAe,iBAC/B,KAAI,gBAAgB,WAAW;AAEjC,kBAAgB,KAAK;AACrB,gBAAc,oBAAoB,KAAK;AACvC,oBAAkB,MAAM;AACxB,SAAO;AACP,MAAI,aAAa,QACf,cAAa,QAAQ,QAAQ;;AAIjC,QACE,qBAAA,YAAA,EAAA,UAAA,CACE,qBAAC,OAAD;EACE,MAAK;EACL,WAAW,GAAG,yBAAyB,UAAU;EACjD,oBAAoB,aAAa,KAAK;EACtC,oBAAoB,aAAa,MAAM;YAJzC;GAME,qBAAC,QAAD;IAAQ,WAAU;IAA2B,eAAe,aAAa,SAAS,OAAO;cAAzF,CACG,aACC,oBAAC,aAAD;KAAa,KAAK;KAAY,KAAK,EAAE,4BAA4B;KAAI,CAAA,GAErE,oBAAC,gBAAD,EAAA,UACE,oBAAC,MAAD,EAAM,WAAU,aAAc,CAAA,EACf,CAAA,EAElB,aACC,oBAAC,OAAD;KAAK,WAAU;eACb,oBAAC,OAAD,EAAO,WAAU,sBAAuB,CAAA;KACpC,CAAA,CAED;;GAET,oBAAC,SAAD;IACE,KAAK;IACL,MAAK;IACL,WAAU;IACV,QAAO;IACP,UAAU;IACV,CAAA;GAED,WAAW,eACV,oBAAC,OAAD;IAAK,WAAU;cACb,oBAAC,UAAD;KAAU,OAAO;KAAU,WAAU;KAAQ,CAAA;IACzC,CAAA;GAEP,WAAW,WAAW,oBAAC,KAAD;IAAG,WAAU;cAA6B;IAAiB,CAAA;GAC9E;KAEL,cACC,oBAAC,YAAD;EACE,MAAM;EACN,cAAc;EACd,UAAU;EACV,gBAAgB;EAChB,UAAU;EACV,WAAW,WAAW;EACtB,CAAA,CAEH,EAAA,CAAA"}
@@ -1,5 +1,5 @@
1
- import * as _$react_jsx_runtime0 from "react/jsx-runtime";
2
1
  import React from "react";
2
+ import * as _$react_jsx_runtime0 from "react/jsx-runtime";
3
3
  import { CalendarProps } from "react-big-calendar";
4
4
  //#region src/components/Calendar.d.ts
5
5
  type CalendarComponents = NonNullable<CalendarProps["components"]>;
@@ -2,9 +2,9 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_runtime = require("../../_virtual/_rolldown/runtime.js");
3
3
  const require_src_lib_utils = require("../lib/utils.js");
4
4
  const require_src_components_ui_card = require("./ui/card.js");
5
- let react_jsx_runtime = require("react/jsx-runtime");
6
5
  let react = require("react");
7
6
  react = require_runtime.__toESM(react);
7
+ let react_jsx_runtime = require("react/jsx-runtime");
8
8
  let lucide_react = require("lucide-react");
9
9
  //#region src/components/CardsSelect.tsx
10
10
  const CardsSelect = react.forwardRef(({ items, selectedIds, onSelectionChange, maxSelections, className, cardClassName, showCheckbox = true, disabled = false, reversed = false, ...props }, ref) => {
@@ -1,7 +1,7 @@
1
1
  import { cn } from "../lib/utils.mjs";
2
2
  import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "./ui/card.mjs";
3
- import { jsx, jsxs } from "react/jsx-runtime";
4
3
  import * as React$1 from "react";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
5
  import { Check, Edit } from "lucide-react";
6
6
  //#region src/components/CardsSelect.tsx
7
7
  const CardsSelect = React$1.forwardRef(({ items, selectedIds, onSelectionChange, maxSelections, className, cardClassName, showCheckbox = true, disabled = false, reversed = false, ...props }, ref) => {
@@ -1,5 +1,5 @@
1
- import * as _$react_jsx_runtime0 from "react/jsx-runtime";
2
1
  import { ReactNode } from "react";
2
+ import * as _$react_jsx_runtime0 from "react/jsx-runtime";
3
3
  import { CollapsibleProps } from "@radix-ui/react-collapsible";
4
4
 
5
5
  //#region src/components/CollapsibleSidebarMenuItem.d.ts
@@ -1,5 +1,5 @@
1
- import * as _$react_jsx_runtime0 from "react/jsx-runtime";
2
1
  import { InputProps } from "@heroui/react";
2
+ import * as _$react_jsx_runtime0 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/ColorPicker.d.ts
5
5
  declare function ColorPicker({
@@ -1,8 +1,8 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_runtime = require("../../_virtual/_rolldown/runtime.js");
3
- let react_jsx_runtime = require("react/jsx-runtime");
4
3
  let react = require("react");
5
4
  let _heroui_react = require("@heroui/react");
5
+ let react_jsx_runtime = require("react/jsx-runtime");
6
6
  let lucide_react = require("lucide-react");
7
7
  let _uiw_color_convert = require("@uiw/color-convert");
8
8
  let _uiw_react_color_colorful = require("@uiw/react-color-colorful");
@@ -1,6 +1,6 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
1
  import { useState } from "react";
3
2
  import { Button, Input, Popover, PopoverContent, PopoverTrigger } from "@heroui/react";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
4
  import { PipetteIcon } from "lucide-react";
5
5
  import { hexToHsva } from "@uiw/color-convert";
6
6
  import Colorful from "@uiw/react-color-colorful";
@@ -1,5 +1,5 @@
1
- import * as _$react_jsx_runtime0 from "react/jsx-runtime";
2
1
  import { ButtonProps } from "@heroui/react";
2
+ import * as _$react_jsx_runtime0 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/CopyButton.d.ts
5
5
  declare function CopyButton({
@@ -1,8 +1,8 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  require("../../_virtual/_rolldown/runtime.js");
3
- let react_jsx_runtime = require("react/jsx-runtime");
4
3
  let react = require("react");
5
4
  let _heroui_react = require("@heroui/react");
5
+ let react_jsx_runtime = require("react/jsx-runtime");
6
6
  let lucide_react = require("lucide-react");
7
7
  let react_i18next = require("react-i18next");
8
8
  let sonner = require("sonner");
@@ -1,6 +1,6 @@
1
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
1
  import { useState } from "react";
3
2
  import { Button } from "@heroui/react";
3
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
4
4
  import { CheckCircle, Copy } from "lucide-react";
5
5
  import { useTranslation } from "react-i18next";
6
6
  import { toast } from "sonner";
@@ -24,7 +24,7 @@ function CopyButton({ text, notificationTimeout = 1e3, isIconOnly, onCopy, ...pr
24
24
  isIconOnly,
25
25
  onPress: () => handleCopy(text),
26
26
  ...props,
27
- children: isCopied ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(CheckCircle, { className: "h-4 w-4" }), !isIconOnly && t("web-ui:common.copied")] }) : /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Copy, { className: "h-4 w-4" }), !isIconOnly && t("web-ui:common.copy")] })
27
+ children: isCopied ? /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(CheckCircle, { className: "h-4 w-4" }), !isIconOnly && t("web-ui:common.copied")] }) : /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(Copy, { className: "h-4 w-4" }), !isIconOnly && t("web-ui:common.copy")] })
28
28
  });
29
29
  }
30
30
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"CopyButton.mjs","names":[],"sources":["../../../src/components/CopyButton.tsx"],"sourcesContent":["import { Button, type ButtonProps } from \"@heroui/react\";\r\nimport { CheckCircle, Copy } from \"lucide-react\";\r\nimport { useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { toast } from \"sonner\";\r\n\r\nexport function CopyButton({\r\n text,\r\n notificationTimeout = 1000,\r\n isIconOnly,\r\n onCopy,\r\n ...props\r\n}: ButtonProps & { text: string; notificationTimeout?: number; onCopy?: () => void }) {\r\n const { t } = useTranslation();\r\n const [isCopied, setIsCopied] = useState(false);\r\n\r\n const handleCopy = async (text: string) => {\r\n try {\r\n await window.navigator.clipboard.writeText(text);\r\n setIsCopied(true);\r\n onCopy?.();\r\n toast.success(t(\"web-ui:common.copySuccess\"));\r\n setTimeout(() => setIsCopied(false), notificationTimeout);\r\n } catch (error) {\r\n toast.error(t(\"web-ui:common.copyError\"));\r\n console.error(error);\r\n }\r\n };\r\n\r\n return (\r\n <Button isIconOnly={isIconOnly} onPress={() => handleCopy(text)} {...props}>\r\n {isCopied ? (\r\n <>\r\n <CheckCircle className=\"h-4 w-4\" />\r\n {!isIconOnly && t(\"web-ui:common.copied\")}\r\n </>\r\n ) : (\r\n <>\r\n <Copy className=\"h-4 w-4\" />\r\n {!isIconOnly && t(\"web-ui:common.copy\")}\r\n </>\r\n )}\r\n </Button>\r\n );\r\n}\r\n"],"mappings":";;;;;;;AAMA,SAAgB,WAAW,EACzB,MACA,sBAAsB,KACtB,YACA,QACA,GAAG,SACiF;CACpF,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,CAAC,UAAU,eAAe,SAAS,MAAM;CAE/C,MAAM,aAAa,OAAO,SAAiB;AACzC,MAAI;AACF,SAAM,OAAO,UAAU,UAAU,UAAU,KAAK;AAChD,eAAY,KAAK;AACjB,aAAU;AACV,SAAM,QAAQ,EAAE,4BAA4B,CAAC;AAC7C,oBAAiB,YAAY,MAAM,EAAE,oBAAoB;WAClD,OAAO;AACd,SAAM,MAAM,EAAE,0BAA0B,CAAC;AACzC,WAAQ,MAAM,MAAM;;;AAIxB,QACE,oBAAC,QAAD;EAAoB;EAAY,eAAe,WAAW,KAAK;EAAE,GAAI;YAClE,WACC,qBAAA,UAAA,EAAA,UAAA,CACE,oBAAC,aAAD,EAAa,WAAU,WAAY,CAAA,EAClC,CAAC,cAAc,EAAE,uBAAuB,CACxC,EAAA,CAAA,GAEH,qBAAA,UAAA,EAAA,UAAA,CACE,oBAAC,MAAD,EAAM,WAAU,WAAY,CAAA,EAC3B,CAAC,cAAc,EAAE,qBAAqB,CACtC,EAAA,CAAA;EAEE,CAAA"}
1
+ {"version":3,"file":"CopyButton.mjs","names":[],"sources":["../../../src/components/CopyButton.tsx"],"sourcesContent":["import { Button, type ButtonProps } from \"@heroui/react\";\r\nimport { CheckCircle, Copy } from \"lucide-react\";\r\nimport { useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { toast } from \"sonner\";\r\n\r\nexport function CopyButton({\r\n text,\r\n notificationTimeout = 1000,\r\n isIconOnly,\r\n onCopy,\r\n ...props\r\n}: ButtonProps & { text: string; notificationTimeout?: number; onCopy?: () => void }) {\r\n const { t } = useTranslation();\r\n const [isCopied, setIsCopied] = useState(false);\r\n\r\n const handleCopy = async (text: string) => {\r\n try {\r\n await window.navigator.clipboard.writeText(text);\r\n setIsCopied(true);\r\n onCopy?.();\r\n toast.success(t(\"web-ui:common.copySuccess\"));\r\n setTimeout(() => setIsCopied(false), notificationTimeout);\r\n } catch (error) {\r\n toast.error(t(\"web-ui:common.copyError\"));\r\n console.error(error);\r\n }\r\n };\r\n\r\n return (\r\n <Button isIconOnly={isIconOnly} onPress={() => handleCopy(text)} {...props}>\r\n {isCopied ? (\r\n <>\r\n <CheckCircle className=\"h-4 w-4\" />\r\n {!isIconOnly && t(\"web-ui:common.copied\")}\r\n </>\r\n ) : (\r\n <>\r\n <Copy className=\"h-4 w-4\" />\r\n {!isIconOnly && t(\"web-ui:common.copy\")}\r\n </>\r\n )}\r\n </Button>\r\n );\r\n}\r\n"],"mappings":";;;;;;;AAMA,SAAgB,WAAW,EACzB,MACA,sBAAsB,KACtB,YACA,QACA,GAAG,SACiF;CACpF,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,CAAC,UAAU,eAAe,SAAS,MAAM;CAE/C,MAAM,aAAa,OAAO,SAAiB;AACzC,MAAI;AACF,SAAM,OAAO,UAAU,UAAU,UAAU,KAAK;AAChD,eAAY,KAAK;AACjB,aAAU;AACV,SAAM,QAAQ,EAAE,4BAA4B,CAAC;AAC7C,oBAAiB,YAAY,MAAM,EAAE,oBAAoB;WAClD,OAAO;AACd,SAAM,MAAM,EAAE,0BAA0B,CAAC;AACzC,WAAQ,MAAM,MAAM;;;AAIxB,QACE,oBAAC,QAAD;EAAoB;EAAY,eAAe,WAAW,KAAK;EAAE,GAAI;YAClE,WACC,qBAAA,YAAA,EAAA,UAAA,CACE,oBAAC,aAAD,EAAa,WAAU,WAAY,CAAA,EAClC,CAAC,cAAc,EAAE,uBAAuB,CACxC,EAAA,CAAA,GAEH,qBAAA,YAAA,EAAA,UAAA,CACE,oBAAC,MAAD,EAAM,WAAU,WAAY,CAAA,EAC3B,CAAC,cAAc,EAAE,qBAAqB,CACtC,EAAA,CAAA;EAEE,CAAA"}
@@ -3,8 +3,8 @@ const require_runtime = require("../../_virtual/_rolldown/runtime.js");
3
3
  const require_src_components_ui_button = require("./ui/button.js");
4
4
  const require_src_components_ui_dialog = require("./ui/dialog.js");
5
5
  const require_src_components_ui_slider = require("./ui/slider.js");
6
- let react_jsx_runtime = require("react/jsx-runtime");
7
6
  let react = require("react");
7
+ let react_jsx_runtime = require("react/jsx-runtime");
8
8
  let lucide_react = require("lucide-react");
9
9
  let react_i18next = require("react-i18next");
10
10
  let react_easy_crop = require("react-easy-crop");
@@ -1,8 +1,8 @@
1
1
  import { Button } from "./ui/button.mjs";
2
2
  import { Dialog, DialogContent, DialogHeader, DialogTitle } from "./ui/dialog.mjs";
3
3
  import { Slider } from "./ui/slider.mjs";
4
- import { jsx, jsxs } from "react/jsx-runtime";
5
4
  import { useState } from "react";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
6
  import { ZoomIn, ZoomOut } from "lucide-react";
7
7
  import { useTranslation } from "react-i18next";
8
8
  import Cropper from "react-easy-crop";
@@ -1,5 +1,5 @@
1
- import * as _$react_jsx_runtime0 from "react/jsx-runtime";
2
1
  import { ButtonProps } from "@heroui/react";
2
+ import * as _$react_jsx_runtime0 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/DialogProvider.d.ts
5
5
  type DialogProps = {
@@ -1,9 +1,9 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  require("../../_virtual/_rolldown/runtime.js");
3
- let react_jsx_runtime = require("react/jsx-runtime");
4
3
  let react = require("react");
5
4
  let _heroui_react = require("@heroui/react");
6
5
  let _heroui_theme = require("@heroui/theme");
6
+ let react_jsx_runtime = require("react/jsx-runtime");
7
7
  //#region src/components/DialogProvider.tsx
8
8
  const DialogContext = (0, react.createContext)(() => {
9
9
  console.warn("DialogProvider is not initialized");
@@ -1,7 +1,7 @@
1
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
1
  import { createContext, useContext, useRef, useState } from "react";
3
2
  import { Button, Modal, ModalBody, ModalContent, ModalFooter, ModalHeader } from "@heroui/react";
4
3
  import { semanticColors } from "@heroui/theme";
4
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
5
5
  //#region src/components/DialogProvider.tsx
6
6
  const DialogContext = createContext(() => {
7
7
  console.warn("DialogProvider is not initialized");
@@ -43,7 +43,7 @@ function DialogProvider({ children }) {
43
43
  };
44
44
  return /* @__PURE__ */ jsx(DialogContext.Provider, {
45
45
  value: handleSetDialog,
46
- children: /* @__PURE__ */ jsxs(Fragment, { children: [children, dialog && /* @__PURE__ */ jsx(Modal, {
46
+ children: /* @__PURE__ */ jsxs(Fragment$1, { children: [children, dialog && /* @__PURE__ */ jsx(Modal, {
47
47
  isOpen,
48
48
  onOpenChange: handleUnsetDialog,
49
49
  style: { borderColor: semanticColors.light[dialog.color || "danger"][600] },
@@ -1 +1 @@
1
- {"version":3,"file":"DialogProvider.mjs","names":[],"sources":["../../../src/components/DialogProvider.tsx"],"sourcesContent":["import {\r\n Button,\r\n type ButtonProps,\r\n Modal,\r\n ModalBody,\r\n ModalContent,\r\n ModalFooter,\r\n ModalHeader,\r\n} from \"@heroui/react\";\r\nimport { semanticColors } from \"@heroui/theme\";\r\nimport { createContext, useContext, useRef, useState } from \"react\";\r\n\r\nexport type DialogProps = {\r\n title: React.ReactNode;\r\n description: React.ReactNode;\r\n color?: ButtonProps[\"color\"];\r\n cancelable?: boolean;\r\n onCancel?: () => void;\r\n onConfirm?: () => void;\r\n cancelLabel?: string;\r\n confirmLabel?: string;\r\n};\r\n\r\nconst DialogContext = createContext<(dialog: DialogProps) => void>(() => {\r\n console.warn(\"DialogProvider is not initialized\");\r\n});\r\n\r\nexport function useDialog() {\r\n const context = useContext(DialogContext);\r\n if (!context) {\r\n throw new Error(\"useDialog must be used within a DialogProvider\");\r\n }\r\n return context;\r\n}\r\n\r\nexport function DialogProvider({ children }: { children: React.ReactNode }) {\r\n const [isOpen, setIsOpen] = useState(false);\r\n const [dialog, setDialog] = useState<DialogProps | null>(null);\r\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\r\n\r\n const handleSetDialog = (dialog: DialogProps) => {\r\n if (timeoutRef.current) {\r\n clearTimeout(timeoutRef.current);\r\n timeoutRef.current = null;\r\n }\r\n setDialog(dialog);\r\n setIsOpen(true);\r\n };\r\n\r\n const handleUnsetDialog = () => {\r\n setIsOpen(false);\r\n if (timeoutRef.current) {\r\n clearTimeout(timeoutRef.current);\r\n timeoutRef.current = null;\r\n }\r\n timeoutRef.current = setTimeout(() => {\r\n setDialog(null);\r\n }, 500);\r\n };\r\n\r\n const handleCancel = () => {\r\n dialog?.onCancel?.();\r\n handleUnsetDialog();\r\n };\r\n\r\n const handleConfirm = () => {\r\n dialog?.onConfirm?.();\r\n handleUnsetDialog();\r\n };\r\n\r\n return (\r\n <DialogContext.Provider value={handleSetDialog}>\r\n <>\r\n {children}\r\n {dialog && (\r\n <Modal\r\n isOpen={isOpen}\r\n onOpenChange={handleUnsetDialog}\r\n style={{\r\n borderColor: semanticColors.light[dialog.color || \"danger\"][600],\r\n }}\r\n classNames={{\r\n base: \"border-1\",\r\n }}\r\n >\r\n <ModalContent>\r\n <ModalHeader>{dialog.title}</ModalHeader>\r\n <ModalBody>{dialog.description}</ModalBody>\r\n <ModalFooter>\r\n <div className=\"flex flex-row gap-2\">\r\n {(dialog.cancelable || dialog.onCancel) && (\r\n <Button onPress={handleCancel}>{dialog.cancelLabel ?? \"Cancel\"}</Button>\r\n )}\r\n <Button color={dialog.color} onPress={handleConfirm}>\r\n {dialog.confirmLabel ?? \"Confirm\"}\r\n </Button>\r\n </div>\r\n </ModalFooter>\r\n </ModalContent>\r\n </Modal>\r\n )}\r\n </>\r\n </DialogContext.Provider>\r\n );\r\n}\r\n"],"mappings":";;;;;AAuBA,MAAM,gBAAgB,oBAAmD;AACvE,SAAQ,KAAK,oCAAoC;EACjD;AAEF,SAAgB,YAAY;CAC1B,MAAM,UAAU,WAAW,cAAc;AACzC,KAAI,CAAC,QACH,OAAM,IAAI,MAAM,iDAAiD;AAEnE,QAAO;;AAGT,SAAgB,eAAe,EAAE,YAA2C;CAC1E,MAAM,CAAC,QAAQ,aAAa,SAAS,MAAM;CAC3C,MAAM,CAAC,QAAQ,aAAa,SAA6B,KAAK;CAC9D,MAAM,aAAa,OAA6C,KAAK;CAErE,MAAM,mBAAmB,WAAwB;AAC/C,MAAI,WAAW,SAAS;AACtB,gBAAa,WAAW,QAAQ;AAChC,cAAW,UAAU;;AAEvB,YAAU,OAAO;AACjB,YAAU,KAAK;;CAGjB,MAAM,0BAA0B;AAC9B,YAAU,MAAM;AAChB,MAAI,WAAW,SAAS;AACtB,gBAAa,WAAW,QAAQ;AAChC,cAAW,UAAU;;AAEvB,aAAW,UAAU,iBAAiB;AACpC,aAAU,KAAK;KACd,IAAI;;CAGT,MAAM,qBAAqB;AACzB,UAAQ,YAAY;AACpB,qBAAmB;;CAGrB,MAAM,sBAAsB;AAC1B,UAAQ,aAAa;AACrB,qBAAmB;;AAGrB,QACE,oBAAC,cAAc,UAAf;EAAwB,OAAO;YAC7B,qBAAA,UAAA,EAAA,UAAA,CACG,UACA,UACC,oBAAC,OAAD;GACU;GACR,cAAc;GACd,OAAO,EACL,aAAa,eAAe,MAAM,OAAO,SAAS,UAAU,MAC7D;GACD,YAAY,EACV,MAAM,YACP;aAED,qBAAC,cAAD,EAAA,UAAA;IACE,oBAAC,aAAD,EAAA,UAAc,OAAO,OAAoB,CAAA;IACzC,oBAAC,WAAD,EAAA,UAAY,OAAO,aAAwB,CAAA;IAC3C,oBAAC,aAAD,EAAA,UACE,qBAAC,OAAD;KAAK,WAAU;eAAf,EACI,OAAO,cAAc,OAAO,aAC5B,oBAAC,QAAD;MAAQ,SAAS;gBAAe,OAAO,eAAe;MAAkB,CAAA,EAE1E,oBAAC,QAAD;MAAQ,OAAO,OAAO;MAAO,SAAS;gBACnC,OAAO,gBAAgB;MACjB,CAAA,CACL;QACM,CAAA;IACD,EAAA,CAAA;GACT,CAAA,CAET,EAAA,CAAA;EACoB,CAAA"}
1
+ {"version":3,"file":"DialogProvider.mjs","names":[],"sources":["../../../src/components/DialogProvider.tsx"],"sourcesContent":["import {\r\n Button,\r\n type ButtonProps,\r\n Modal,\r\n ModalBody,\r\n ModalContent,\r\n ModalFooter,\r\n ModalHeader,\r\n} from \"@heroui/react\";\r\nimport { semanticColors } from \"@heroui/theme\";\r\nimport { createContext, useContext, useRef, useState } from \"react\";\r\n\r\nexport type DialogProps = {\r\n title: React.ReactNode;\r\n description: React.ReactNode;\r\n color?: ButtonProps[\"color\"];\r\n cancelable?: boolean;\r\n onCancel?: () => void;\r\n onConfirm?: () => void;\r\n cancelLabel?: string;\r\n confirmLabel?: string;\r\n};\r\n\r\nconst DialogContext = createContext<(dialog: DialogProps) => void>(() => {\r\n console.warn(\"DialogProvider is not initialized\");\r\n});\r\n\r\nexport function useDialog() {\r\n const context = useContext(DialogContext);\r\n if (!context) {\r\n throw new Error(\"useDialog must be used within a DialogProvider\");\r\n }\r\n return context;\r\n}\r\n\r\nexport function DialogProvider({ children }: { children: React.ReactNode }) {\r\n const [isOpen, setIsOpen] = useState(false);\r\n const [dialog, setDialog] = useState<DialogProps | null>(null);\r\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\r\n\r\n const handleSetDialog = (dialog: DialogProps) => {\r\n if (timeoutRef.current) {\r\n clearTimeout(timeoutRef.current);\r\n timeoutRef.current = null;\r\n }\r\n setDialog(dialog);\r\n setIsOpen(true);\r\n };\r\n\r\n const handleUnsetDialog = () => {\r\n setIsOpen(false);\r\n if (timeoutRef.current) {\r\n clearTimeout(timeoutRef.current);\r\n timeoutRef.current = null;\r\n }\r\n timeoutRef.current = setTimeout(() => {\r\n setDialog(null);\r\n }, 500);\r\n };\r\n\r\n const handleCancel = () => {\r\n dialog?.onCancel?.();\r\n handleUnsetDialog();\r\n };\r\n\r\n const handleConfirm = () => {\r\n dialog?.onConfirm?.();\r\n handleUnsetDialog();\r\n };\r\n\r\n return (\r\n <DialogContext.Provider value={handleSetDialog}>\r\n <>\r\n {children}\r\n {dialog && (\r\n <Modal\r\n isOpen={isOpen}\r\n onOpenChange={handleUnsetDialog}\r\n style={{\r\n borderColor: semanticColors.light[dialog.color || \"danger\"][600],\r\n }}\r\n classNames={{\r\n base: \"border-1\",\r\n }}\r\n >\r\n <ModalContent>\r\n <ModalHeader>{dialog.title}</ModalHeader>\r\n <ModalBody>{dialog.description}</ModalBody>\r\n <ModalFooter>\r\n <div className=\"flex flex-row gap-2\">\r\n {(dialog.cancelable || dialog.onCancel) && (\r\n <Button onPress={handleCancel}>{dialog.cancelLabel ?? \"Cancel\"}</Button>\r\n )}\r\n <Button color={dialog.color} onPress={handleConfirm}>\r\n {dialog.confirmLabel ?? \"Confirm\"}\r\n </Button>\r\n </div>\r\n </ModalFooter>\r\n </ModalContent>\r\n </Modal>\r\n )}\r\n </>\r\n </DialogContext.Provider>\r\n );\r\n}\r\n"],"mappings":";;;;;AAuBA,MAAM,gBAAgB,oBAAmD;AACvE,SAAQ,KAAK,oCAAoC;EACjD;AAEF,SAAgB,YAAY;CAC1B,MAAM,UAAU,WAAW,cAAc;AACzC,KAAI,CAAC,QACH,OAAM,IAAI,MAAM,iDAAiD;AAEnE,QAAO;;AAGT,SAAgB,eAAe,EAAE,YAA2C;CAC1E,MAAM,CAAC,QAAQ,aAAa,SAAS,MAAM;CAC3C,MAAM,CAAC,QAAQ,aAAa,SAA6B,KAAK;CAC9D,MAAM,aAAa,OAA6C,KAAK;CAErE,MAAM,mBAAmB,WAAwB;AAC/C,MAAI,WAAW,SAAS;AACtB,gBAAa,WAAW,QAAQ;AAChC,cAAW,UAAU;;AAEvB,YAAU,OAAO;AACjB,YAAU,KAAK;;CAGjB,MAAM,0BAA0B;AAC9B,YAAU,MAAM;AAChB,MAAI,WAAW,SAAS;AACtB,gBAAa,WAAW,QAAQ;AAChC,cAAW,UAAU;;AAEvB,aAAW,UAAU,iBAAiB;AACpC,aAAU,KAAK;KACd,IAAI;;CAGT,MAAM,qBAAqB;AACzB,UAAQ,YAAY;AACpB,qBAAmB;;CAGrB,MAAM,sBAAsB;AAC1B,UAAQ,aAAa;AACrB,qBAAmB;;AAGrB,QACE,oBAAC,cAAc,UAAf;EAAwB,OAAO;YAC7B,qBAAA,YAAA,EAAA,UAAA,CACG,UACA,UACC,oBAAC,OAAD;GACU;GACR,cAAc;GACd,OAAO,EACL,aAAa,eAAe,MAAM,OAAO,SAAS,UAAU,MAC7D;GACD,YAAY,EACV,MAAM,YACP;aAED,qBAAC,cAAD,EAAA,UAAA;IACE,oBAAC,aAAD,EAAA,UAAc,OAAO,OAAoB,CAAA;IACzC,oBAAC,WAAD,EAAA,UAAY,OAAO,aAAwB,CAAA;IAC3C,oBAAC,aAAD,EAAA,UACE,qBAAC,OAAD;KAAK,WAAU;eAAf,EACI,OAAO,cAAc,OAAO,aAC5B,oBAAC,QAAD;MAAQ,SAAS;gBAAe,OAAO,eAAe;MAAkB,CAAA,EAE1E,oBAAC,QAAD;MAAQ,OAAO,OAAO;MAAO,SAAS;gBACnC,OAAO,gBAAgB;MACjB,CAAA,CACL;QACM,CAAA;IACD,EAAA,CAAA;GACT,CAAA,CAET,EAAA,CAAA;EACoB,CAAA"}
@@ -3,8 +3,8 @@ require("../../_virtual/_rolldown/runtime.js");
3
3
  const require_src_lib_utils = require("../lib/utils.js");
4
4
  const require_src_components_ui_button = require("./ui/button.js");
5
5
  const require_src_components_ui_progress = require("./ui/progress.js");
6
- let react_jsx_runtime = require("react/jsx-runtime");
7
6
  let react = require("react");
7
+ let react_jsx_runtime = require("react/jsx-runtime");
8
8
  let lucide_react = require("lucide-react");
9
9
  let react_dropzone = require("react-dropzone");
10
10
  //#region src/components/FileDropzone.tsx
@@ -1,8 +1,8 @@
1
1
  import { cn } from "../lib/utils.mjs";
2
2
  import { Button } from "./ui/button.mjs";
3
3
  import { Progress } from "./ui/progress.mjs";
4
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
5
4
  import { useCallback, useState } from "react";
5
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
6
6
  import { File, Upload, X } from "lucide-react";
7
7
  import { useDropzone } from "react-dropzone";
8
8
  //#region src/components/FileDropzone.tsx
@@ -55,7 +55,7 @@ function FileDropzone({ onUploadComplete, className }) {
55
55
  className: cn("border-2 border-dashed rounded-lg p-6 cursor-pointer transition-colors", isDragActive ? "border-primary bg-primary/5" : "border-gray-300 hover:border-primary", selectedFile && "border-primary"),
56
56
  children: [/* @__PURE__ */ jsx("input", { ...getInputProps() }), /* @__PURE__ */ jsx("div", {
57
57
  className: "flex flex-col items-center justify-center space-y-2 text-center",
58
- children: selectedFile ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(File, { className: "h-8 w-8 text-primary" }), /* @__PURE__ */ jsxs("div", {
58
+ children: selectedFile ? /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(File, { className: "h-8 w-8 text-primary" }), /* @__PURE__ */ jsxs("div", {
59
59
  className: "flex items-center gap-2",
60
60
  children: [/* @__PURE__ */ jsx("span", {
61
61
  className: "text-sm text-gray-600",
@@ -69,7 +69,7 @@ function FileDropzone({ onUploadComplete, className }) {
69
69
  className: "p-1 hover:bg-gray-100 rounded-full",
70
70
  children: /* @__PURE__ */ jsx(X, { className: "h-4 w-4 text-gray-500" })
71
71
  })]
72
- })] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
72
+ })] }) : /* @__PURE__ */ jsxs(Fragment$1, { children: [
73
73
  /* @__PURE__ */ jsx(Upload, { className: "h-8 w-8 text-gray-400" }),
74
74
  /* @__PURE__ */ jsx("p", {
75
75
  className: "text-sm text-gray-600",
@@ -1 +1 @@
1
- {"version":3,"file":"FileDropzone.mjs","names":[],"sources":["../../../src/components/FileDropzone.tsx"],"sourcesContent":["import { File, Upload, X } from \"lucide-react\";\r\nimport { useCallback, useState } from \"react\";\r\nimport { useDropzone } from \"react-dropzone\";\r\nimport { Button } from \"./ui/button\";\r\nimport { Progress } from \"./ui/progress\";\r\nimport { cn } from \"../lib/utils\";\r\n\r\ninterface FileDropzoneProps {\r\n onUploadComplete?: (filePath: string) => void;\r\n className?: string;\r\n}\r\n\r\nexport function FileDropzone({ onUploadComplete, className }: FileDropzoneProps) {\r\n const [uploadProgress, setUploadProgress] = useState(0);\r\n const [selectedFile, setSelectedFile] = useState<File | null>(null);\r\n const [isUploading, setIsUploading] = useState(false);\r\n\r\n const onDrop = useCallback((acceptedFiles: File[]) => {\r\n if (acceptedFiles.length > 0) {\r\n setSelectedFile(acceptedFiles[0]);\r\n }\r\n }, []);\r\n\r\n const { getRootProps, getInputProps, isDragActive } = useDropzone({\r\n onDrop,\r\n accept: {\r\n \"image/jpeg\": [],\r\n \"image/png\": [],\r\n \"image/webp\": [],\r\n \"image/jpg\": [],\r\n },\r\n maxFiles: 1,\r\n });\r\n\r\n const uploadFile = async () => {\r\n if (!selectedFile) return;\r\n\r\n setIsUploading(true);\r\n setUploadProgress(0);\r\n\r\n const formData = new FormData();\r\n formData.append(\"file\", selectedFile);\r\n\r\n try {\r\n const response = await fetch(\"/api/upload/image\", {\r\n method: \"POST\",\r\n body: formData,\r\n // Note: Content-Type is automatically set for FormData\r\n });\r\n\r\n if (!response.ok) {\r\n throw new Error(`HTTP error! status: ${response.status}`);\r\n }\r\n\r\n const data = await response.json();\r\n onUploadComplete?.(data.filePath);\r\n setSelectedFile(null);\r\n setUploadProgress(0);\r\n } catch (error) {\r\n console.error(\"Upload error:\", error);\r\n } finally {\r\n setIsUploading(false);\r\n }\r\n };\r\n\r\n const removeFile = () => {\r\n setSelectedFile(null);\r\n setUploadProgress(0);\r\n };\r\n\r\n return (\r\n <div className={cn(\"w-full max-w-xl\", className)}>\r\n <div\r\n {...getRootProps()}\r\n className={cn(\r\n \"border-2 border-dashed rounded-lg p-6 cursor-pointer transition-colors\",\r\n isDragActive ? \"border-primary bg-primary/5\" : \"border-gray-300 hover:border-primary\",\r\n selectedFile && \"border-primary\"\r\n )}\r\n >\r\n <input {...getInputProps()} />\r\n <div className=\"flex flex-col items-center justify-center space-y-2 text-center\">\r\n {selectedFile ? (\r\n <>\r\n <File className=\"h-8 w-8 text-primary\" />\r\n <div className=\"flex items-center gap-2\">\r\n <span className=\"text-sm text-gray-600\">{selectedFile.name}</span>\r\n <button\r\n type=\"button\"\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n removeFile();\r\n }}\r\n className=\"p-1 hover:bg-gray-100 rounded-full\"\r\n >\r\n <X className=\"h-4 w-4 text-gray-500\" />\r\n </button>\r\n </div>\r\n </>\r\n ) : (\r\n <>\r\n <Upload className=\"h-8 w-8 text-gray-400\" />\r\n <p className=\"text-sm text-gray-600\">Drag & drop an image here, or click to select</p>\r\n <p className=\"text-xs text-gray-500\">Supports JPG, PNG, and WebP</p>\r\n </>\r\n )}\r\n </div>\r\n </div>\r\n\r\n {selectedFile && (\r\n <div className=\"mt-4 space-y-4\">\r\n {isUploading && <Progress value={uploadProgress} className=\"h-2 w-full\" />}\r\n <Button onClick={uploadFile} disabled={isUploading} className=\"w-full\">\r\n {isUploading ? \"Uploading...\" : \"Upload File\"}\r\n </Button>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n}\r\n"],"mappings":";;;;;;;;AAYA,SAAgB,aAAa,EAAE,kBAAkB,aAAgC;CAC/E,MAAM,CAAC,gBAAgB,qBAAqB,SAAS,EAAE;CACvD,MAAM,CAAC,cAAc,mBAAmB,SAAsB,KAAK;CACnE,MAAM,CAAC,aAAa,kBAAkB,SAAS,MAAM;CAQrD,MAAM,EAAE,cAAc,eAAe,iBAAiB,YAAY;EAChE,QAPa,aAAa,kBAA0B;AACpD,OAAI,cAAc,SAAS,EACzB,iBAAgB,cAAc,GAAG;KAElC,EAAE,CAAC;EAIJ,QAAQ;GACN,cAAc,EAAE;GAChB,aAAa,EAAE;GACf,cAAc,EAAE;GAChB,aAAa,EAAE;GAChB;EACD,UAAU;EACX,CAAC;CAEF,MAAM,aAAa,YAAY;AAC7B,MAAI,CAAC,aAAc;AAEnB,iBAAe,KAAK;AACpB,oBAAkB,EAAE;EAEpB,MAAM,WAAW,IAAI,UAAU;AAC/B,WAAS,OAAO,QAAQ,aAAa;AAErC,MAAI;GACF,MAAM,WAAW,MAAM,MAAM,qBAAqB;IAChD,QAAQ;IACR,MAAM;IAEP,CAAC;AAEF,OAAI,CAAC,SAAS,GACZ,OAAM,IAAI,MAAM,uBAAuB,SAAS,SAAS;GAG3D,MAAM,OAAO,MAAM,SAAS,MAAM;AAClC,sBAAmB,KAAK,SAAS;AACjC,mBAAgB,KAAK;AACrB,qBAAkB,EAAE;WACb,OAAO;AACd,WAAQ,MAAM,iBAAiB,MAAM;YAC7B;AACR,kBAAe,MAAM;;;CAIzB,MAAM,mBAAmB;AACvB,kBAAgB,KAAK;AACrB,oBAAkB,EAAE;;AAGtB,QACE,qBAAC,OAAD;EAAK,WAAW,GAAG,mBAAmB,UAAU;YAAhD,CACE,qBAAC,OAAD;GACE,GAAI,cAAc;GAClB,WAAW,GACT,0EACA,eAAe,gCAAgC,wCAC/C,gBAAgB,iBACjB;aANH,CAQE,oBAAC,SAAD,EAAO,GAAI,eAAe,EAAI,CAAA,EAC9B,oBAAC,OAAD;IAAK,WAAU;cACZ,eACC,qBAAA,UAAA,EAAA,UAAA,CACE,oBAAC,MAAD,EAAM,WAAU,wBAAyB,CAAA,EACzC,qBAAC,OAAD;KAAK,WAAU;eAAf,CACE,oBAAC,QAAD;MAAM,WAAU;gBAAyB,aAAa;MAAY,CAAA,EAClE,oBAAC,UAAD;MACE,MAAK;MACL,UAAU,MAAM;AACd,SAAE,iBAAiB;AACnB,mBAAY;;MAEd,WAAU;gBAEV,oBAAC,GAAD,EAAG,WAAU,yBAA0B,CAAA;MAChC,CAAA,CACL;OACL,EAAA,CAAA,GAEH,qBAAA,UAAA,EAAA,UAAA;KACE,oBAAC,QAAD,EAAQ,WAAU,yBAA0B,CAAA;KAC5C,oBAAC,KAAD;MAAG,WAAU;gBAAwB;MAAiD,CAAA;KACtF,oBAAC,KAAD;MAAG,WAAU;gBAAwB;MAA+B,CAAA;KACnE,EAAA,CAAA;IAED,CAAA,CACF;MAEL,gBACC,qBAAC,OAAD;GAAK,WAAU;aAAf,CACG,eAAe,oBAAC,UAAD;IAAU,OAAO;IAAgB,WAAU;IAAe,CAAA,EAC1E,oBAAC,QAAD;IAAQ,SAAS;IAAY,UAAU;IAAa,WAAU;cAC3D,cAAc,iBAAiB;IACzB,CAAA,CACL;KAEJ"}
1
+ {"version":3,"file":"FileDropzone.mjs","names":[],"sources":["../../../src/components/FileDropzone.tsx"],"sourcesContent":["import { File, Upload, X } from \"lucide-react\";\r\nimport { useCallback, useState } from \"react\";\r\nimport { useDropzone } from \"react-dropzone\";\r\nimport { Button } from \"./ui/button\";\r\nimport { Progress } from \"./ui/progress\";\r\nimport { cn } from \"../lib/utils\";\r\n\r\ninterface FileDropzoneProps {\r\n onUploadComplete?: (filePath: string) => void;\r\n className?: string;\r\n}\r\n\r\nexport function FileDropzone({ onUploadComplete, className }: FileDropzoneProps) {\r\n const [uploadProgress, setUploadProgress] = useState(0);\r\n const [selectedFile, setSelectedFile] = useState<File | null>(null);\r\n const [isUploading, setIsUploading] = useState(false);\r\n\r\n const onDrop = useCallback((acceptedFiles: File[]) => {\r\n if (acceptedFiles.length > 0) {\r\n setSelectedFile(acceptedFiles[0]);\r\n }\r\n }, []);\r\n\r\n const { getRootProps, getInputProps, isDragActive } = useDropzone({\r\n onDrop,\r\n accept: {\r\n \"image/jpeg\": [],\r\n \"image/png\": [],\r\n \"image/webp\": [],\r\n \"image/jpg\": [],\r\n },\r\n maxFiles: 1,\r\n });\r\n\r\n const uploadFile = async () => {\r\n if (!selectedFile) return;\r\n\r\n setIsUploading(true);\r\n setUploadProgress(0);\r\n\r\n const formData = new FormData();\r\n formData.append(\"file\", selectedFile);\r\n\r\n try {\r\n const response = await fetch(\"/api/upload/image\", {\r\n method: \"POST\",\r\n body: formData,\r\n // Note: Content-Type is automatically set for FormData\r\n });\r\n\r\n if (!response.ok) {\r\n throw new Error(`HTTP error! status: ${response.status}`);\r\n }\r\n\r\n const data = await response.json();\r\n onUploadComplete?.(data.filePath);\r\n setSelectedFile(null);\r\n setUploadProgress(0);\r\n } catch (error) {\r\n console.error(\"Upload error:\", error);\r\n } finally {\r\n setIsUploading(false);\r\n }\r\n };\r\n\r\n const removeFile = () => {\r\n setSelectedFile(null);\r\n setUploadProgress(0);\r\n };\r\n\r\n return (\r\n <div className={cn(\"w-full max-w-xl\", className)}>\r\n <div\r\n {...getRootProps()}\r\n className={cn(\r\n \"border-2 border-dashed rounded-lg p-6 cursor-pointer transition-colors\",\r\n isDragActive ? \"border-primary bg-primary/5\" : \"border-gray-300 hover:border-primary\",\r\n selectedFile && \"border-primary\"\r\n )}\r\n >\r\n <input {...getInputProps()} />\r\n <div className=\"flex flex-col items-center justify-center space-y-2 text-center\">\r\n {selectedFile ? (\r\n <>\r\n <File className=\"h-8 w-8 text-primary\" />\r\n <div className=\"flex items-center gap-2\">\r\n <span className=\"text-sm text-gray-600\">{selectedFile.name}</span>\r\n <button\r\n type=\"button\"\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n removeFile();\r\n }}\r\n className=\"p-1 hover:bg-gray-100 rounded-full\"\r\n >\r\n <X className=\"h-4 w-4 text-gray-500\" />\r\n </button>\r\n </div>\r\n </>\r\n ) : (\r\n <>\r\n <Upload className=\"h-8 w-8 text-gray-400\" />\r\n <p className=\"text-sm text-gray-600\">Drag & drop an image here, or click to select</p>\r\n <p className=\"text-xs text-gray-500\">Supports JPG, PNG, and WebP</p>\r\n </>\r\n )}\r\n </div>\r\n </div>\r\n\r\n {selectedFile && (\r\n <div className=\"mt-4 space-y-4\">\r\n {isUploading && <Progress value={uploadProgress} className=\"h-2 w-full\" />}\r\n <Button onClick={uploadFile} disabled={isUploading} className=\"w-full\">\r\n {isUploading ? \"Uploading...\" : \"Upload File\"}\r\n </Button>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n}\r\n"],"mappings":";;;;;;;;AAYA,SAAgB,aAAa,EAAE,kBAAkB,aAAgC;CAC/E,MAAM,CAAC,gBAAgB,qBAAqB,SAAS,EAAE;CACvD,MAAM,CAAC,cAAc,mBAAmB,SAAsB,KAAK;CACnE,MAAM,CAAC,aAAa,kBAAkB,SAAS,MAAM;CAQrD,MAAM,EAAE,cAAc,eAAe,iBAAiB,YAAY;EAChE,QAPa,aAAa,kBAA0B;AACpD,OAAI,cAAc,SAAS,EACzB,iBAAgB,cAAc,GAAG;KAElC,EAAE,CAAC;EAIJ,QAAQ;GACN,cAAc,EAAE;GAChB,aAAa,EAAE;GACf,cAAc,EAAE;GAChB,aAAa,EAAE;GAChB;EACD,UAAU;EACX,CAAC;CAEF,MAAM,aAAa,YAAY;AAC7B,MAAI,CAAC,aAAc;AAEnB,iBAAe,KAAK;AACpB,oBAAkB,EAAE;EAEpB,MAAM,WAAW,IAAI,UAAU;AAC/B,WAAS,OAAO,QAAQ,aAAa;AAErC,MAAI;GACF,MAAM,WAAW,MAAM,MAAM,qBAAqB;IAChD,QAAQ;IACR,MAAM;IAEP,CAAC;AAEF,OAAI,CAAC,SAAS,GACZ,OAAM,IAAI,MAAM,uBAAuB,SAAS,SAAS;GAG3D,MAAM,OAAO,MAAM,SAAS,MAAM;AAClC,sBAAmB,KAAK,SAAS;AACjC,mBAAgB,KAAK;AACrB,qBAAkB,EAAE;WACb,OAAO;AACd,WAAQ,MAAM,iBAAiB,MAAM;YAC7B;AACR,kBAAe,MAAM;;;CAIzB,MAAM,mBAAmB;AACvB,kBAAgB,KAAK;AACrB,oBAAkB,EAAE;;AAGtB,QACE,qBAAC,OAAD;EAAK,WAAW,GAAG,mBAAmB,UAAU;YAAhD,CACE,qBAAC,OAAD;GACE,GAAI,cAAc;GAClB,WAAW,GACT,0EACA,eAAe,gCAAgC,wCAC/C,gBAAgB,iBACjB;aANH,CAQE,oBAAC,SAAD,EAAO,GAAI,eAAe,EAAI,CAAA,EAC9B,oBAAC,OAAD;IAAK,WAAU;cACZ,eACC,qBAAA,YAAA,EAAA,UAAA,CACE,oBAAC,MAAD,EAAM,WAAU,wBAAyB,CAAA,EACzC,qBAAC,OAAD;KAAK,WAAU;eAAf,CACE,oBAAC,QAAD;MAAM,WAAU;gBAAyB,aAAa;MAAY,CAAA,EAClE,oBAAC,UAAD;MACE,MAAK;MACL,UAAU,MAAM;AACd,SAAE,iBAAiB;AACnB,mBAAY;;MAEd,WAAU;gBAEV,oBAAC,GAAD,EAAG,WAAU,yBAA0B,CAAA;MAChC,CAAA,CACL;OACL,EAAA,CAAA,GAEH,qBAAA,YAAA,EAAA,UAAA;KACE,oBAAC,QAAD,EAAQ,WAAU,yBAA0B,CAAA;KAC5C,oBAAC,KAAD;MAAG,WAAU;gBAAwB;MAAiD,CAAA;KACtF,oBAAC,KAAD;MAAG,WAAU;gBAAwB;MAA+B,CAAA;KACnE,EAAA,CAAA;IAED,CAAA,CACF;MAEL,gBACC,qBAAC,OAAD;GAAK,WAAU;aAAf,CACG,eAAe,oBAAC,UAAD;IAAU,OAAO;IAAgB,WAAU;IAAe,CAAA,EAC1E,oBAAC,QAAD;IAAQ,SAAS;IAAY,UAAU;IAAa,WAAU;cAC3D,cAAc,iBAAiB;IACzB,CAAA,CACL;KAEJ"}
@@ -3,9 +3,9 @@ const require_runtime = require("../../_virtual/_rolldown/runtime.js");
3
3
  const require_src_lib_utils = require("../lib/utils.js");
4
4
  const require_src_components_ui_button = require("./ui/button.js");
5
5
  const require_src_components_ui_dropdown_menu = require("./ui/dropdown-menu.js");
6
- let react_jsx_runtime = require("react/jsx-runtime");
7
6
  let react = require("react");
8
7
  react = require_runtime.__toESM(react);
8
+ let react_jsx_runtime = require("react/jsx-runtime");
9
9
  let lucide_react = require("lucide-react");
10
10
  //#region src/components/MultiSelectDropdown.tsx
11
11
  const MultiSelectDropdown = react.forwardRef(({ options, selectedValues, onValueChange, placeholder = "Select items...", label, className, triggerClassName, trigger, multiSelectLabel, disabled = false, maxDisplayCount = 3, resetButton = "bottom", resetLabel = "Reset", separateGroups = false, ...props }, ref) => {
@@ -1,8 +1,8 @@
1
1
  import { cn } from "../lib/utils.mjs";
2
2
  import { Button } from "./ui/button.mjs";
3
3
  import { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger } from "./ui/dropdown-menu.mjs";
4
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
5
4
  import * as React$1 from "react";
5
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
6
6
  import { ChevronDown, RotateCcw } from "lucide-react";
7
7
  //#region src/components/MultiSelectDropdown.tsx
8
8
  const MultiSelectDropdown = React$1.forwardRef(({ options, selectedValues, onValueChange, placeholder = "Select items...", label, className, triggerClassName, trigger, multiSelectLabel, disabled = false, maxDisplayCount = 3, resetButton = "bottom", resetLabel = "Reset", separateGroups = false, ...props }, ref) => {
@@ -44,7 +44,7 @@ const MultiSelectDropdown = React$1.forwardRef(({ options, selectedValues, onVal
44
44
  className: cn("w-full justify-between text-left font-normal", selectedValues.length === 0 && "text-muted-foreground", triggerClassName),
45
45
  disabled,
46
46
  ...props,
47
- children: trigger || /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("span", {
47
+ children: trigger || /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("span", {
48
48
  className: "truncate",
49
49
  children: getDisplayText()
50
50
  }), /* @__PURE__ */ jsx(ChevronDown, { className: "ml-2 h-4 w-4 shrink-0 opacity-50" })] })
@@ -53,14 +53,14 @@ const MultiSelectDropdown = React$1.forwardRef(({ options, selectedValues, onVal
53
53
  className: "w-full min-w-[var(--radix-dropdown-menu-trigger-width)]",
54
54
  align: "start",
55
55
  children: [
56
- resetButton && resetButton === "top" && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(DropdownMenuItem, {
56
+ resetButton && resetButton === "top" && /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(DropdownMenuItem, {
57
57
  onClick: handleReset,
58
58
  disabled: selectedValues.length === 0,
59
59
  onSelect: (event) => event.preventDefault(),
60
60
  className: "cursor-pointer text-muted-foreground hover:text-foreground",
61
- children: resetLabel || /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(RotateCcw, { className: "mr-2 h-4 w-4" }), "Reset"] })
61
+ children: resetLabel || /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(RotateCcw, { className: "mr-2 h-4 w-4" }), "Reset"] })
62
62
  }), /* @__PURE__ */ jsx(DropdownMenuSeparator, {})] }),
63
- label && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(DropdownMenuLabel, { children: label }), /* @__PURE__ */ jsx(DropdownMenuSeparator, {})] }),
63
+ label && /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(DropdownMenuLabel, { children: label }), /* @__PURE__ */ jsx(DropdownMenuSeparator, {})] }),
64
64
  Object.entries(groupedOptions.groups).map(([groupName, groupOptions], groupIndex) => /* @__PURE__ */ jsxs(DropdownMenuGroup, { children: [
65
65
  groupIndex > 0 && separateGroups && /* @__PURE__ */ jsx(DropdownMenuSeparator, {}),
66
66
  /* @__PURE__ */ jsx(DropdownMenuLabel, {
@@ -85,12 +85,12 @@ const MultiSelectDropdown = React$1.forwardRef(({ options, selectedValues, onVal
85
85
  className: "cursor-pointer",
86
86
  children: option.label
87
87
  }, option.value))] }),
88
- resetButton && resetButton === "bottom" && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(DropdownMenuSeparator, {}), /* @__PURE__ */ jsx(DropdownMenuItem, {
88
+ resetButton && resetButton === "bottom" && /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(DropdownMenuSeparator, {}), /* @__PURE__ */ jsx(DropdownMenuItem, {
89
89
  onClick: handleReset,
90
90
  disabled: selectedValues.length === 0,
91
91
  onSelect: (event) => event.preventDefault(),
92
92
  className: "cursor-pointer text-muted-foreground hover:text-foreground",
93
- children: resetLabel || /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(RotateCcw, { className: "mr-2 h-4 w-4" }), "Reset"] })
93
+ children: resetLabel || /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(RotateCcw, { className: "mr-2 h-4 w-4" }), "Reset"] })
94
94
  })] })
95
95
  ]
96
96
  })] })