@vitnode/core 1.2.0-canary.59 → 1.2.0-canary.61

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 (283) hide show
  1. package/dist/scripts/get-config.js +15 -0
  2. package/dist/scripts/plugin.js +188 -0
  3. package/dist/scripts/prepare-database.js +177 -0
  4. package/dist/scripts/prepare-plugins-files.js +134 -0
  5. package/dist/scripts/run-interactive-shell-command.js +21 -0
  6. package/dist/scripts/scripts.js +39 -13
  7. package/dist/scripts/shared/file-utils.js +203 -0
  8. package/dist/src/api/adapters/sso/discord.js +1 -77
  9. package/dist/src/api/adapters/sso/facebook.js +1 -76
  10. package/dist/src/api/adapters/sso/google.js +1 -87
  11. package/dist/src/api/config.js +1 -67
  12. package/dist/src/api/lib/check-plugin-id.js +1 -43
  13. package/dist/src/api/lib/cron.js +1 -22
  14. package/dist/src/api/lib/logger-middleware.js +1 -35
  15. package/dist/src/api/lib/module.js +1 -22
  16. package/dist/src/api/lib/plugin.js +1 -22
  17. package/dist/src/api/lib/route.js +1 -27
  18. package/dist/src/api/lib/with-pagination.js +1 -83
  19. package/dist/src/api/middlewares/captcha.middleware.js +1 -63
  20. package/dist/src/api/middlewares/cron-auth.middleware.js +1 -19
  21. package/dist/src/api/middlewares/global.middleware.d.ts.map +1 -1
  22. package/dist/src/api/middlewares/global.middleware.js +1 -104
  23. package/dist/src/api/middlewares/rate-limiter.middleware.js +1 -32
  24. package/dist/src/api/models/device.js +1 -61
  25. package/dist/src/api/models/email.d.ts.map +1 -1
  26. package/dist/src/api/models/email.js +1 -77
  27. package/dist/src/api/models/password.js +1 -36
  28. package/dist/src/api/models/session-admin.d.ts.map +1 -1
  29. package/dist/src/api/models/session-admin.js +1 -97
  30. package/dist/src/api/models/session.d.ts.map +1 -1
  31. package/dist/src/api/models/session.js +1 -76
  32. package/dist/src/api/models/sso.js +1 -120
  33. package/dist/src/api/models/user/get-user-by-id.js +1 -19
  34. package/dist/src/api/models/user/sign-in-with-passwords.js +1 -22
  35. package/dist/src/api/models/user/sign-up.js +1 -73
  36. package/dist/src/api/models/user.js +1 -8
  37. package/dist/src/api/modules/admin/admin.module.js +1 -19
  38. package/dist/src/api/modules/admin/advanced/advanced.admin.module.js +1 -11
  39. package/dist/src/api/modules/admin/advanced/cron/cron.admin.module.js +1 -12
  40. package/dist/src/api/modules/admin/advanced/cron/routes/get.route.js +1 -66
  41. package/dist/src/api/modules/admin/advanced/cron/routes/run.route.js +1 -95
  42. package/dist/src/api/modules/admin/debug/debug.admin.module.js +1 -10
  43. package/dist/src/api/modules/admin/debug/routes/logs.route.js +1 -94
  44. package/dist/src/api/modules/admin/routes/session.route.js +1 -47
  45. package/dist/src/api/modules/admin/users/routes/list.route.js +1 -79
  46. package/dist/src/api/modules/admin/users/routes/users.route.js +1 -84
  47. package/dist/src/api/modules/admin/users/users.admin.module.js +1 -10
  48. package/dist/src/api/modules/cron/cron/clean.cron.js +1 -24
  49. package/dist/src/api/modules/cron/cron.module.js +1 -14
  50. package/dist/src/api/modules/cron/helpers/process-cron-jobs.d.ts.map +1 -1
  51. package/dist/src/api/modules/cron/helpers/process-cron-jobs.js +1 -72
  52. package/dist/src/api/modules/cron/routes/cron.route.d.ts.map +1 -1
  53. package/dist/src/api/modules/cron/routes/cron.route.js +1 -95
  54. package/dist/src/api/modules/middleware/middleware.module.js +1 -10
  55. package/dist/src/api/modules/middleware/route.js +1 -49
  56. package/dist/src/api/modules/users/avatar-color.js +1 -43
  57. package/dist/src/api/modules/users/routes/change-password.route.js +1 -58
  58. package/dist/src/api/modules/users/routes/reset-passowrd.route.js +1 -91
  59. package/dist/src/api/modules/users/routes/session.route.js +1 -46
  60. package/dist/src/api/modules/users/routes/sign-in.route.js +1 -71
  61. package/dist/src/api/modules/users/routes/sign-out.route.js +1 -43
  62. package/dist/src/api/modules/users/routes/sign-up.route.js +1 -77
  63. package/dist/src/api/modules/users/routes/test.route.js +1 -33
  64. package/dist/src/api/modules/users/sso/routes/callback.route.js +1 -52
  65. package/dist/src/api/modules/users/sso/routes/create-url.route.js +1 -36
  66. package/dist/src/api/modules/users/sso/sso.module.js +1 -12
  67. package/dist/src/api/modules/users/users.module.js +1 -26
  68. package/dist/src/api/plugin.js +1 -15
  69. package/dist/src/app/login/page.js +1 -16
  70. package/dist/src/app/login/reset-password/page.js +1 -18
  71. package/dist/src/app/login/sso/[providerId]/page.js +1 -10
  72. package/dist/src/app/register/page.js +1 -16
  73. package/dist/src/app_admin/core/advanced/cron/page.js +1 -42
  74. package/dist/src/app_admin/core/debug/page.js +1 -45
  75. package/dist/src/app_admin/core/page.js +1 -5
  76. package/dist/src/app_admin/core/test/page.js +1 -5
  77. package/dist/src/app_admin/core/users/page.js +1 -38
  78. package/dist/src/components/avatar.js +1 -14
  79. package/dist/src/components/confirm-action/confirm-action-alert-dialog.js +1 -42
  80. package/dist/src/components/confirm-action/content.js +1 -31
  81. package/dist/src/components/date-format.js +1 -41
  82. package/dist/src/components/form/auto-form.js +1 -103
  83. package/dist/src/components/form/common/desc.js +1 -9
  84. package/dist/src/components/form/common/label.js +1 -18
  85. package/dist/src/components/form/fields/checkbox.js +1 -37
  86. package/dist/src/components/form/fields/combobox-async.js +1 -123
  87. package/dist/src/components/form/fields/combobox.js +1 -87
  88. package/dist/src/components/form/fields/input.js +1 -39
  89. package/dist/src/components/form/fields/radio-group.js +1 -50
  90. package/dist/src/components/form/fields/select.js +1 -58
  91. package/dist/src/components/form/fields/switch.js +1 -36
  92. package/dist/src/components/form/fields/textarea.js +1 -36
  93. package/dist/src/components/i18n-provider.js +1 -43
  94. package/dist/src/components/logo-vitnode.js +1 -119
  95. package/dist/src/components/switchers/langs/language-switcher.js +1 -47
  96. package/dist/src/components/switchers/themes/theme-switcher.js +1 -28
  97. package/dist/src/components/table/content.js +1 -81
  98. package/dist/src/components/table/data-table.js +1 -68
  99. package/dist/src/components/table/order-table-head.js +1 -50
  100. package/dist/src/components/table/pagination.js +1 -122
  101. package/dist/src/components/tiptap/extension.js +1 -33
  102. package/dist/src/components/tiptap/toolbar/actions/alignment-action.js +1 -91
  103. package/dist/src/components/tiptap/toolbar/actions/bold-action.js +1 -39
  104. package/dist/src/components/tiptap/toolbar/actions/headings-action.js +1 -93
  105. package/dist/src/components/tiptap/toolbar/actions/italic-action.js +1 -38
  106. package/dist/src/components/tiptap/toolbar/actions/list-action.js +1 -61
  107. package/dist/src/components/tiptap/toolbar/actions/text-format-more/text-format-more.js +1 -59
  108. package/dist/src/components/tiptap/toolbar/actions/underline-action.js +1 -38
  109. package/dist/src/components/tiptap/toolbar/actions/undo-redo-actions.js +1 -63
  110. package/dist/src/components/tiptap/toolbar/actions/utils/tooltip-shortcut.js +1 -11
  111. package/dist/src/components/tiptap/toolbar/tiptap-toolbar.js +1 -55
  112. package/dist/src/components/tiptap/toolbar/use-toolbar-editor.js +1 -5
  113. package/dist/src/components/ui/accordion.js +1 -46
  114. package/dist/src/components/ui/alert-dialog.js +1 -123
  115. package/dist/src/components/ui/alert.js +1 -39
  116. package/dist/src/components/ui/badge.js +1 -28
  117. package/dist/src/components/ui/button-client.js +1 -57
  118. package/dist/src/components/ui/button.js +1 -32
  119. package/dist/src/components/ui/card.js +1 -52
  120. package/dist/src/components/ui/checkbox.js +1 -20
  121. package/dist/src/components/ui/collapsible.js +1 -22
  122. package/dist/src/components/ui/command.js +1 -98
  123. package/dist/src/components/ui/context-menu.js +1 -140
  124. package/dist/src/components/ui/dialog.js +1 -189
  125. package/dist/src/components/ui/drawer.js +1 -83
  126. package/dist/src/components/ui/dropdown-menu.js +1 -141
  127. package/dist/src/components/ui/editor-content.js +1 -10
  128. package/dist/src/components/ui/editor.js +1 -35
  129. package/dist/src/components/ui/form.js +1 -148
  130. package/dist/src/components/ui/header-content.js +1 -30
  131. package/dist/src/components/ui/hover-card.js +1 -29
  132. package/dist/src/components/ui/input-otp.js +1 -48
  133. package/dist/src/components/ui/input.js +1 -11
  134. package/dist/src/components/ui/label.js +1 -12
  135. package/dist/src/components/ui/loader.js +1 -16
  136. package/dist/src/components/ui/menubar.js +1 -151
  137. package/dist/src/components/ui/navigation-menu.js +1 -82
  138. package/dist/src/components/ui/popover.js +1 -35
  139. package/dist/src/components/ui/progress.js +1 -19
  140. package/dist/src/components/ui/radio-group.js +1 -27
  141. package/dist/src/components/ui/scroll-area.js +1 -33
  142. package/dist/src/components/ui/select.js +1 -113
  143. package/dist/src/components/ui/separator.js +1 -14
  144. package/dist/src/components/ui/sheet.js +1 -92
  145. package/dist/src/components/ui/sidebar.js +1 -433
  146. package/dist/src/components/ui/skeleton.js +1 -10
  147. package/dist/src/components/ui/slider.js +1 -50
  148. package/dist/src/components/ui/sonner.js +1 -26
  149. package/dist/src/components/ui/switch.js +1 -16
  150. package/dist/src/components/ui/table.js +1 -63
  151. package/dist/src/components/ui/tabs.js +1 -33
  152. package/dist/src/components/ui/textarea.js +1 -10
  153. package/dist/src/components/ui/toggle-group.js +1 -45
  154. package/dist/src/components/ui/toggle.js +1 -34
  155. package/dist/src/components/ui/tooltip.js +1 -57
  156. package/dist/src/config.js +1 -4
  157. package/dist/src/database/admins.js +1 -74
  158. package/dist/src/database/cron.js +1 -22
  159. package/dist/src/database/languages.js +1 -52
  160. package/dist/src/database/logs.js +1 -34
  161. package/dist/src/database/moderators.js +1 -37
  162. package/dist/src/database/roles.js +1 -13
  163. package/dist/src/database/sessions.js +1 -60
  164. package/dist/src/database/users.js +1 -145
  165. package/dist/src/drizzle.config.js +1 -67
  166. package/dist/src/emails/default-template.js +1 -99
  167. package/dist/src/emails/reset-password.js +1 -132
  168. package/dist/src/emails/ui/button.js +1 -36
  169. package/dist/src/emails/ui/card.js +1 -39
  170. package/dist/src/hooks/use-before-unload.js +1 -30
  171. package/dist/src/hooks/use-captcha.js +1 -122
  172. package/dist/src/hooks/use-mobile.js +1 -16
  173. package/dist/src/lib/api/get-middleware-api.js +1 -13
  174. package/dist/src/lib/api/get-next-cron-run-date.js +1 -14
  175. package/dist/src/lib/api/get-next-cron-run-date.test.js +1 -55
  176. package/dist/src/lib/api/get-session-admin-api.js +1 -19
  177. package/dist/src/lib/api/get-session-api.js +1 -14
  178. package/dist/src/lib/api/should-cron-job-run.js +1 -16
  179. package/dist/src/lib/api/should-cron-job-run.test.js +1 -213
  180. package/dist/src/lib/api/validate-cron-schedule.d.ts +2 -0
  181. package/dist/src/lib/api/validate-cron-schedule.d.ts.map +1 -0
  182. package/dist/src/lib/api/validate-cron-schedule.js +1 -0
  183. package/dist/src/lib/api/validate-cron-schedule.test.d.ts +2 -0
  184. package/dist/src/lib/api/validate-cron-schedule.test.d.ts.map +1 -0
  185. package/dist/src/lib/api/validate-cron-schedule.test.js +1 -0
  186. package/dist/src/lib/colors.js +1 -140
  187. package/dist/src/lib/colors.test.js +1 -173
  188. package/dist/src/lib/config.js +1 -14
  189. package/dist/src/lib/ctrl-or-command-character.js +1 -5
  190. package/dist/src/lib/fetcher/cookie-from-string-to-object.js +1 -12
  191. package/dist/src/lib/fetcher/cookie-from-string-to-object.test.js +1 -78
  192. package/dist/src/lib/fetcher/core.js +3 -48
  193. package/dist/src/lib/fetcher/helpers-server.js +1 -18
  194. package/dist/src/lib/fetcher/helpers.js +1 -16
  195. package/dist/src/lib/fetcher/helpers.test.js +1 -37
  196. package/dist/src/lib/fetcher/types.js +1 -1
  197. package/dist/src/lib/fetcher-client.js +1 -17
  198. package/dist/src/lib/fetcher.js +1 -33
  199. package/dist/src/lib/helpers/auto-form.js +1 -98
  200. package/dist/src/lib/helpers/auto-form.test.js +1 -336
  201. package/dist/src/lib/navigation.d.ts +15 -13
  202. package/dist/src/lib/navigation.d.ts.map +1 -1
  203. package/dist/src/lib/navigation.js +1 -11
  204. package/dist/src/lib/plugin.js +1 -3
  205. package/dist/src/lib/special-characters.js +1 -4
  206. package/dist/src/lib/special-characters.test.js +1 -56
  207. package/dist/src/lib/utils.js +1 -5
  208. package/dist/src/locales/en.json +308 -0
  209. package/dist/src/tests/setup.js +1 -6
  210. package/dist/src/views/admin/layouts/admin-layout.js +1 -73
  211. package/dist/src/views/admin/layouts/sidebar/nav/item.js +1 -98
  212. package/dist/src/views/admin/layouts/sidebar/nav/nav.js +1 -60
  213. package/dist/src/views/admin/layouts/sidebar/sidebar.js +1 -28
  214. package/dist/src/views/admin/layouts/sidebar/sign-out.js +1 -14
  215. package/dist/src/views/admin/layouts/user-bar/client.js +1 -69
  216. package/dist/src/views/admin/layouts/user-bar/user-bar.js +1 -32
  217. package/dist/src/views/admin/sign-in/sign-in-admin-view.js +1 -27
  218. package/dist/src/views/admin/views/core/advanced/cron/cron-table-view.js +1 -97
  219. package/dist/src/views/admin/views/core/advanced/cron/run-action/mutation-api.js +1 -23
  220. package/dist/src/views/admin/views/core/advanced/cron/run-action/run-action.js +1 -38
  221. package/dist/src/views/admin/views/core/dashboard/dashboard-admin-view.js +1 -44
  222. package/dist/src/views/admin/views/core/debug/actions/clear-cache/clear-cache.js +1 -35
  223. package/dist/src/views/admin/views/core/debug/actions/clear-cache/mutation-api.js +1 -5
  224. package/dist/src/views/admin/views/core/debug/system-logs/actions/more/content.js +1 -281
  225. package/dist/src/views/admin/views/core/debug/system-logs/actions/more/more.js +1 -67
  226. package/dist/src/views/admin/views/core/debug/system-logs/badges/badge-status.js +1 -14
  227. package/dist/src/views/admin/views/core/debug/system-logs/badges/badge-type-log.js +1 -30
  228. package/dist/src/views/admin/views/core/debug/system-logs/system-logs-view.js +1 -96
  229. package/dist/src/views/admin/views/core/test.js +1 -161
  230. package/dist/src/views/admin/views/core/users/users-admin-view.js +1 -89
  231. package/dist/src/views/auth/password-reset/change-password-form/form.js +1 -48
  232. package/dist/src/views/auth/password-reset/change-password-form/mutation-api.js +1 -22
  233. package/dist/src/views/auth/password-reset/change-password-form/use-form.js +1 -36
  234. package/dist/src/views/auth/password-reset/form/form.js +1 -104
  235. package/dist/src/views/auth/password-reset/form/mutation-api.js +1 -21
  236. package/dist/src/views/auth/password-reset/form/use-form.js +1 -33
  237. package/dist/src/views/auth/password-reset/password-reset-view.js +1 -37
  238. package/dist/src/views/auth/sign-in/form/form.js +1 -64
  239. package/dist/src/views/auth/sign-in/form/mutation-api.js +1 -33
  240. package/dist/src/views/auth/sign-in/form/use-form.d.ts.map +1 -1
  241. package/dist/src/views/auth/sign-in/form/use-form.js +1 -38
  242. package/dist/src/views/auth/sign-in/sign-in-view.js +1 -61
  243. package/dist/src/views/auth/sign-up/components/password-input.js +1 -96
  244. package/dist/src/views/auth/sign-up/email-confirmation-view.js +1 -55
  245. package/dist/src/views/auth/sign-up/form/form.js +1 -89
  246. package/dist/src/views/auth/sign-up/form/mutation-api.js +1 -30
  247. package/dist/src/views/auth/sign-up/form/use-form.js +1 -70
  248. package/dist/src/views/auth/sign-up/sign-up-view.js +1 -65
  249. package/dist/src/views/auth/sign-up/wrapper.js +1 -22
  250. package/dist/src/views/auth/sso/buttons/client.js +1 -22
  251. package/dist/src/views/auth/sso/buttons/mutation-api.js +1 -24
  252. package/dist/src/views/auth/sso/buttons/sso-buttons.js +1 -56
  253. package/dist/src/views/auth/sso/callback/callback-sso-view.js +1 -32
  254. package/dist/src/views/auth/sso/callback/client/client.js +1 -68
  255. package/dist/src/views/auth/sso/callback/client/mutation-api.js +1 -32
  256. package/dist/src/views/error/back-button.js +1 -14
  257. package/dist/src/views/error/error-view.js +1 -58
  258. package/dist/src/views/error/global-error-view.js +1 -50
  259. package/dist/src/views/layouts/provider.js +1 -44
  260. package/dist/src/views/layouts/root-layout.js +1 -25
  261. package/dist/src/views/layouts/theme/header/header.js +1 -38
  262. package/dist/src/views/layouts/theme/header/user/auth/auth.js +1 -33
  263. package/dist/src/views/layouts/theme/header/user/auth/client.js +1 -47
  264. package/dist/src/views/layouts/theme/header/user/auth/log-out-mutation-api.js +1 -27
  265. package/dist/src/views/layouts/theme/header/user/user.js +1 -32
  266. package/dist/src/views/layouts/theme/layout.js +1 -16
  267. package/dist/src/vitnode.config.d.ts.map +1 -1
  268. package/dist/src/vitnode.config.js +1 -42
  269. package/dist/tsconfig.tsbuildinfo +1 -1
  270. package/dist/tsup.config.js +18 -0
  271. package/dist/vitest.config.d.ts.map +1 -1
  272. package/dist/vitest.config.js +49 -0
  273. package/eslint.config.mjs +2 -0
  274. package/package.json +40 -44
  275. package/dist/src/api/adapters/cron/node-cron.adapter.d.ts +0 -3
  276. package/dist/src/api/adapters/cron/node-cron.adapter.d.ts.map +0 -1
  277. package/dist/src/api/adapters/cron/node-cron.adapter.js +0 -11
  278. package/dist/src/api/adapters/email/nodemailer.d.ts +0 -10
  279. package/dist/src/api/adapters/email/nodemailer.d.ts.map +0 -1
  280. package/dist/src/api/adapters/email/nodemailer.js +0 -30
  281. package/dist/src/api/adapters/email/resend.d.ts +0 -6
  282. package/dist/src/api/adapters/email/resend.d.ts.map +0 -1
  283. package/dist/src/api/adapters/email/resend.js +0 -21
@@ -1,19 +1 @@
1
- "use client";
2
- import { jsx as _jsx } from "react/jsx-runtime";
3
- import { Progress as ProgressPrimitive } from "radix-ui";
4
- import { cn } from "../../lib/utils.js";
5
- function Progress({ className, value, ...props }) {
6
- return /*#__PURE__*/ _jsx(ProgressPrimitive.Root, {
7
- className: cn("bg-primary/20 relative h-2 w-full overflow-hidden rounded-full", className),
8
- "data-slot": "progress",
9
- ...props,
10
- children: /*#__PURE__*/ _jsx(ProgressPrimitive.Indicator, {
11
- className: "bg-primary h-full w-full flex-1 transition-all",
12
- "data-slot": "progress-indicator",
13
- style: {
14
- transform: `translateX(-${100 - (value ?? 0)}%)`
15
- }
16
- })
17
- });
18
- }
19
- export { Progress };
1
+ "use client";import{jsx as _jsx}from"react/jsx-runtime";import{Progress as ProgressPrimitive}from"radix-ui";import{cn}from"../../lib/utils.js";function Progress({className,value,...props}){return _jsx(ProgressPrimitive.Root,{className:cn("bg-primary/20 relative h-2 w-full overflow-hidden rounded-full",className),"data-slot":"progress",...props,children:_jsx(ProgressPrimitive.Indicator,{className:"bg-primary h-full w-full flex-1 transition-all","data-slot":"progress-indicator",style:{transform:`translateX(-${100-(value??0)}%)`}})})}export{Progress};
@@ -1,27 +1 @@
1
- "use client";
2
- import { jsx as _jsx } from "react/jsx-runtime";
3
- import { CircleIcon } from "lucide-react";
4
- import { RadioGroup as RadioGroupPrimitive } from "radix-ui";
5
- import { cn } from "../../lib/utils.js";
6
- function RadioGroup({ className, ...props }) {
7
- return /*#__PURE__*/ _jsx(RadioGroupPrimitive.Root, {
8
- className: cn("grid gap-3", className),
9
- "data-slot": "radio-group",
10
- ...props
11
- });
12
- }
13
- function RadioGroupItem({ className, ...props }) {
14
- return /*#__PURE__*/ _jsx(RadioGroupPrimitive.Item, {
15
- className: cn("border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 shadow-xs aspect-square size-4 shrink-0 rounded-full border outline-none transition-[color,box-shadow] focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50", className),
16
- "data-slot": "radio-group-item",
17
- ...props,
18
- children: /*#__PURE__*/ _jsx(RadioGroupPrimitive.Indicator, {
19
- className: "relative flex items-center justify-center",
20
- "data-slot": "radio-group-indicator",
21
- children: /*#__PURE__*/ _jsx(CircleIcon, {
22
- className: "fill-primary absolute left-1/2 top-1/2 size-2 -translate-x-1/2 -translate-y-1/2"
23
- })
24
- })
25
- });
26
- }
27
- export { RadioGroup, RadioGroupItem };
1
+ "use client";import{jsx as _jsx}from"react/jsx-runtime";import{CircleIcon}from"lucide-react";import{RadioGroup as RadioGroupPrimitive}from"radix-ui";import{cn}from"../../lib/utils.js";function RadioGroup({className,...props}){return _jsx(RadioGroupPrimitive.Root,{className:cn("grid gap-3",className),"data-slot":"radio-group",...props})}function RadioGroupItem({className,...props}){return _jsx(RadioGroupPrimitive.Item,{className:cn("border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",className),"data-slot":"radio-group-item",...props,children:_jsx(RadioGroupPrimitive.Indicator,{className:"relative flex items-center justify-center","data-slot":"radio-group-indicator",children:_jsx(CircleIcon,{className:"fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2"})})})}export{RadioGroup,RadioGroupItem};
@@ -1,33 +1 @@
1
- "use client";
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { ScrollArea as ScrollAreaPrimitive } from "radix-ui";
4
- import { cn } from "../../lib/utils.js";
5
- function ScrollArea({ className, children, ...props }) {
6
- return /*#__PURE__*/ _jsxs(ScrollAreaPrimitive.Root, {
7
- className: cn("relative", className),
8
- "data-slot": "scroll-area",
9
- ...props,
10
- children: [
11
- /*#__PURE__*/ _jsx(ScrollAreaPrimitive.Viewport, {
12
- className: "focus-visible:ring-ring/50 size-full rounded-[inherit] outline-none transition-[color,box-shadow] focus-visible:outline-1 focus-visible:ring-[3px]",
13
- "data-slot": "scroll-area-viewport",
14
- children: children
15
- }),
16
- /*#__PURE__*/ _jsx(ScrollBar, {}),
17
- /*#__PURE__*/ _jsx(ScrollAreaPrimitive.Corner, {})
18
- ]
19
- });
20
- }
21
- function ScrollBar({ className, orientation = "vertical", ...props }) {
22
- return /*#__PURE__*/ _jsx(ScrollAreaPrimitive.ScrollAreaScrollbar, {
23
- className: cn("flex touch-none select-none p-px transition-colors", orientation === "vertical" && "h-full w-2.5 border-l border-l-transparent", orientation === "horizontal" && "h-2.5 flex-col border-t border-t-transparent", className),
24
- "data-slot": "scroll-area-scrollbar",
25
- orientation: orientation,
26
- ...props,
27
- children: /*#__PURE__*/ _jsx(ScrollAreaPrimitive.ScrollAreaThumb, {
28
- className: "bg-border relative flex-1 rounded-full",
29
- "data-slot": "scroll-area-thumb"
30
- })
31
- });
32
- }
33
- export { ScrollArea, ScrollBar };
1
+ "use client";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{ScrollArea as ScrollAreaPrimitive}from"radix-ui";import{cn}from"../../lib/utils.js";function ScrollArea({className,children,...props}){return _jsxs(ScrollAreaPrimitive.Root,{className:cn("relative",className),"data-slot":"scroll-area",...props,children:[_jsx(ScrollAreaPrimitive.Viewport,{className:"focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1","data-slot":"scroll-area-viewport",children:children}),_jsx(ScrollBar,{}),_jsx(ScrollAreaPrimitive.Corner,{})]})}function ScrollBar({className,orientation="vertical",...props}){return _jsx(ScrollAreaPrimitive.ScrollAreaScrollbar,{className:cn("flex touch-none p-px transition-colors select-none",orientation==="vertical"&&"h-full w-2.5 border-l border-l-transparent",orientation==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent",className),"data-slot":"scroll-area-scrollbar",orientation:orientation,...props,children:_jsx(ScrollAreaPrimitive.ScrollAreaThumb,{className:"bg-border relative flex-1 rounded-full","data-slot":"scroll-area-thumb"})})}export{ScrollArea,ScrollBar};
@@ -1,113 +1 @@
1
- "use client";
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from "lucide-react";
4
- import { Select as SelectPrimitive } from "radix-ui";
5
- import { cn } from "../../lib/utils.js";
6
- function Select({ ...props }) {
7
- return /*#__PURE__*/ _jsx(SelectPrimitive.Root, {
8
- "data-slot": "select",
9
- ...props
10
- });
11
- }
12
- function SelectGroup({ ...props }) {
13
- return /*#__PURE__*/ _jsx(SelectPrimitive.Group, {
14
- "data-slot": "select-group",
15
- ...props
16
- });
17
- }
18
- function SelectValue({ ...props }) {
19
- return /*#__PURE__*/ _jsx(SelectPrimitive.Value, {
20
- "data-slot": "select-value",
21
- ...props
22
- });
23
- }
24
- function SelectTrigger({ className, size = "default", children, ...props }) {
25
- return /*#__PURE__*/ _jsxs(SelectPrimitive.Trigger, {
26
- className: cn("border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 shadow-xs flex w-fit items-center justify-between gap-2 whitespace-nowrap rounded-md border bg-transparent px-3 py-2 text-sm outline-none transition-[color,box-shadow] focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", className),
27
- "data-size": size,
28
- "data-slot": "select-trigger",
29
- ...props,
30
- children: [
31
- children,
32
- /*#__PURE__*/ _jsx(SelectPrimitive.Icon, {
33
- asChild: true,
34
- children: /*#__PURE__*/ _jsx(ChevronDownIcon, {
35
- className: "size-4 opacity-50"
36
- })
37
- })
38
- ]
39
- });
40
- }
41
- function SelectContent({ className, children, position = "popper", ...props }) {
42
- return /*#__PURE__*/ _jsx(SelectPrimitive.Portal, {
43
- children: /*#__PURE__*/ _jsxs(SelectPrimitive.Content, {
44
- className: cn("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 max-h-(--radix-select-content-available-height) origin-(--radix-select-content-transform-origin) relative z-50 min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border shadow-md", position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1", className),
45
- "data-slot": "select-content",
46
- position: position,
47
- ...props,
48
- children: [
49
- /*#__PURE__*/ _jsx(SelectScrollUpButton, {}),
50
- /*#__PURE__*/ _jsx(SelectPrimitive.Viewport, {
51
- className: cn("p-1", position === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),
52
- children: children
53
- }),
54
- /*#__PURE__*/ _jsx(SelectScrollDownButton, {})
55
- ]
56
- })
57
- });
58
- }
59
- function SelectLabel({ className, ...props }) {
60
- return /*#__PURE__*/ _jsx(SelectPrimitive.Label, {
61
- className: cn("text-muted-foreground px-2 py-1.5 text-xs", className),
62
- "data-slot": "select-label",
63
- ...props
64
- });
65
- }
66
- function SelectItem({ className, children, ...props }) {
67
- return /*#__PURE__*/ _jsxs(SelectPrimitive.Item, {
68
- className: cn("focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground outline-hidden *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2 relative flex w-full cursor-default select-none items-center gap-2 rounded-sm py-1.5 pl-2 pr-8 text-sm data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", className),
69
- "data-slot": "select-item",
70
- ...props,
71
- children: [
72
- /*#__PURE__*/ _jsx("span", {
73
- className: "absolute right-2 flex size-3.5 items-center justify-center",
74
- children: /*#__PURE__*/ _jsx(SelectPrimitive.ItemIndicator, {
75
- children: /*#__PURE__*/ _jsx(CheckIcon, {
76
- className: "size-4"
77
- })
78
- })
79
- }),
80
- /*#__PURE__*/ _jsx(SelectPrimitive.ItemText, {
81
- children: children
82
- })
83
- ]
84
- });
85
- }
86
- function SelectSeparator({ className, ...props }) {
87
- return /*#__PURE__*/ _jsx(SelectPrimitive.Separator, {
88
- className: cn("bg-border pointer-events-none -mx-1 my-1 h-px", className),
89
- "data-slot": "select-separator",
90
- ...props
91
- });
92
- }
93
- function SelectScrollUpButton({ className, ...props }) {
94
- return /*#__PURE__*/ _jsx(SelectPrimitive.ScrollUpButton, {
95
- className: cn("flex cursor-default items-center justify-center py-1", className),
96
- "data-slot": "select-scroll-up-button",
97
- ...props,
98
- children: /*#__PURE__*/ _jsx(ChevronUpIcon, {
99
- className: "size-4"
100
- })
101
- });
102
- }
103
- function SelectScrollDownButton({ className, ...props }) {
104
- return /*#__PURE__*/ _jsx(SelectPrimitive.ScrollDownButton, {
105
- className: cn("flex cursor-default items-center justify-center py-1", className),
106
- "data-slot": "select-scroll-down-button",
107
- ...props,
108
- children: /*#__PURE__*/ _jsx(ChevronDownIcon, {
109
- className: "size-4"
110
- })
111
- });
112
- }
113
- export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue };
1
+ "use client";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{CheckIcon,ChevronDownIcon,ChevronUpIcon}from"lucide-react";import{Select as SelectPrimitive}from"radix-ui";import{cn}from"../../lib/utils.js";function Select({...props}){return _jsx(SelectPrimitive.Root,{"data-slot":"select",...props})}function SelectGroup({...props}){return _jsx(SelectPrimitive.Group,{"data-slot":"select-group",...props})}function SelectValue({...props}){return _jsx(SelectPrimitive.Value,{"data-slot":"select-value",...props})}function SelectTrigger({className,size="default",children,...props}){return _jsxs(SelectPrimitive.Trigger,{className:cn("border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",className),"data-size":size,"data-slot":"select-trigger",...props,children:[children,_jsx(SelectPrimitive.Icon,{asChild:true,children:_jsx(ChevronDownIcon,{className:"size-4 opacity-50"})})]})}function SelectContent({className,children,position="popper",...props}){return _jsx(SelectPrimitive.Portal,{children:_jsxs(SelectPrimitive.Content,{className:cn("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 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md",position==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",className),"data-slot":"select-content",position:position,...props,children:[_jsx(SelectScrollUpButton,{}),_jsx(SelectPrimitive.Viewport,{className:cn("p-1",position==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),children:children}),_jsx(SelectScrollDownButton,{})]})})}function SelectLabel({className,...props}){return _jsx(SelectPrimitive.Label,{className:cn("text-muted-foreground px-2 py-1.5 text-xs",className),"data-slot":"select-label",...props})}function SelectItem({className,children,...props}){return _jsxs(SelectPrimitive.Item,{className:cn("focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",className),"data-slot":"select-item",...props,children:[_jsx("span",{className:"absolute right-2 flex size-3.5 items-center justify-center",children:_jsx(SelectPrimitive.ItemIndicator,{children:_jsx(CheckIcon,{className:"size-4"})})}),_jsx(SelectPrimitive.ItemText,{children:children})]})}function SelectSeparator({className,...props}){return _jsx(SelectPrimitive.Separator,{className:cn("bg-border pointer-events-none -mx-1 my-1 h-px",className),"data-slot":"select-separator",...props})}function SelectScrollUpButton({className,...props}){return _jsx(SelectPrimitive.ScrollUpButton,{className:cn("flex cursor-default items-center justify-center py-1",className),"data-slot":"select-scroll-up-button",...props,children:_jsx(ChevronUpIcon,{className:"size-4"})})}function SelectScrollDownButton({className,...props}){return _jsx(SelectPrimitive.ScrollDownButton,{className:cn("flex cursor-default items-center justify-center py-1",className),"data-slot":"select-scroll-down-button",...props,children:_jsx(ChevronDownIcon,{className:"size-4"})})}export{Select,SelectContent,SelectGroup,SelectItem,SelectLabel,SelectScrollDownButton,SelectScrollUpButton,SelectSeparator,SelectTrigger,SelectValue};
@@ -1,14 +1 @@
1
- "use client";
2
- import { jsx as _jsx } from "react/jsx-runtime";
3
- import { Separator as SeparatorPrimitive } from "radix-ui";
4
- import { cn } from "../../lib/utils.js";
5
- function Separator({ className, orientation = "horizontal", decorative = true, ...props }) {
6
- return /*#__PURE__*/ _jsx(SeparatorPrimitive.Root, {
7
- className: cn("bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=vertical]:h-full data-[orientation=horizontal]:w-full data-[orientation=vertical]:w-px", className),
8
- "data-slot": "separator",
9
- decorative: decorative,
10
- orientation: orientation,
11
- ...props
12
- });
13
- }
14
- export { Separator };
1
+ "use client";import{jsx as _jsx}from"react/jsx-runtime";import{Separator as SeparatorPrimitive}from"radix-ui";import{cn}from"../../lib/utils.js";function Separator({className,orientation="horizontal",decorative=true,...props}){return _jsx(SeparatorPrimitive.Root,{className:cn("bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",className),"data-slot":"separator",decorative:decorative,orientation:orientation,...props})}export{Separator};
@@ -1,92 +1 @@
1
- "use client";
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { XIcon } from "lucide-react";
4
- import { Dialog as SheetPrimitive } from "radix-ui";
5
- import { cn } from "../../lib/utils.js";
6
- function Sheet({ ...props }) {
7
- return /*#__PURE__*/ _jsx(SheetPrimitive.Root, {
8
- "data-slot": "sheet",
9
- ...props
10
- });
11
- }
12
- function SheetTrigger({ ...props }) {
13
- return /*#__PURE__*/ _jsx(SheetPrimitive.Trigger, {
14
- "data-slot": "sheet-trigger",
15
- ...props
16
- });
17
- }
18
- function SheetClose({ ...props }) {
19
- return /*#__PURE__*/ _jsx(SheetPrimitive.Close, {
20
- "data-slot": "sheet-close",
21
- ...props
22
- });
23
- }
24
- function SheetPortal({ ...props }) {
25
- return /*#__PURE__*/ _jsx(SheetPrimitive.Portal, {
26
- "data-slot": "sheet-portal",
27
- ...props
28
- });
29
- }
30
- function SheetOverlay({ className, ...props }) {
31
- return /*#__PURE__*/ _jsx(SheetPrimitive.Overlay, {
32
- className: cn("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-50 bg-black/50", className),
33
- "data-slot": "sheet-overlay",
34
- ...props
35
- });
36
- }
37
- function SheetContent({ className, children, side = "right", ...props }) {
38
- return /*#__PURE__*/ _jsxs(SheetPortal, {
39
- children: [
40
- /*#__PURE__*/ _jsx(SheetOverlay, {}),
41
- /*#__PURE__*/ _jsxs(SheetPrimitive.Content, {
42
- className: cn("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500", side === "right" && "data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm", side === "left" && "data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm", side === "top" && "data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b", side === "bottom" && "data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t", className),
43
- "data-slot": "sheet-content",
44
- ...props,
45
- children: [
46
- children,
47
- /*#__PURE__*/ _jsxs(SheetPrimitive.Close, {
48
- className: "ring-offset-background focus:ring-ring data-[state=open]:bg-secondary rounded-xs focus:outline-hidden absolute right-4 top-4 opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 disabled:pointer-events-none",
49
- children: [
50
- /*#__PURE__*/ _jsx(XIcon, {
51
- className: "size-4"
52
- }),
53
- /*#__PURE__*/ _jsx("span", {
54
- className: "sr-only",
55
- children: "Close"
56
- })
57
- ]
58
- })
59
- ]
60
- })
61
- ]
62
- });
63
- }
64
- function SheetHeader({ className, ...props }) {
65
- return /*#__PURE__*/ _jsx("div", {
66
- className: cn("flex flex-col gap-1.5 p-4", className),
67
- "data-slot": "sheet-header",
68
- ...props
69
- });
70
- }
71
- function SheetFooter({ className, ...props }) {
72
- return /*#__PURE__*/ _jsx("div", {
73
- className: cn("mt-auto flex flex-col gap-2 p-4", className),
74
- "data-slot": "sheet-footer",
75
- ...props
76
- });
77
- }
78
- function SheetTitle({ className, ...props }) {
79
- return /*#__PURE__*/ _jsx(SheetPrimitive.Title, {
80
- className: cn("text-foreground font-semibold", className),
81
- "data-slot": "sheet-title",
82
- ...props
83
- });
84
- }
85
- function SheetDescription({ className, ...props }) {
86
- return /*#__PURE__*/ _jsx(SheetPrimitive.Description, {
87
- className: cn("text-muted-foreground text-sm", className),
88
- "data-slot": "sheet-description",
89
- ...props
90
- });
91
- }
92
- export { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger };
1
+ "use client";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{XIcon}from"lucide-react";import{Dialog as SheetPrimitive}from"radix-ui";import{cn}from"../../lib/utils.js";function Sheet({...props}){return _jsx(SheetPrimitive.Root,{"data-slot":"sheet",...props})}function SheetTrigger({...props}){return _jsx(SheetPrimitive.Trigger,{"data-slot":"sheet-trigger",...props})}function SheetClose({...props}){return _jsx(SheetPrimitive.Close,{"data-slot":"sheet-close",...props})}function SheetPortal({...props}){return _jsx(SheetPrimitive.Portal,{"data-slot":"sheet-portal",...props})}function SheetOverlay({className,...props}){return _jsx(SheetPrimitive.Overlay,{className:cn("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-50 bg-black/50",className),"data-slot":"sheet-overlay",...props})}function SheetContent({className,children,side="right",...props}){return _jsxs(SheetPortal,{children:[_jsx(SheetOverlay,{}),_jsxs(SheetPrimitive.Content,{className:cn("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500",side==="right"&&"data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm",side==="left"&&"data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm",side==="top"&&"data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b",side==="bottom"&&"data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t",className),"data-slot":"sheet-content",...props,children:[children,_jsxs(SheetPrimitive.Close,{className:"ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none",children:[_jsx(XIcon,{className:"size-4"}),_jsx("span",{className:"sr-only",children:"Close"})]})]})]})}function SheetHeader({className,...props}){return _jsx("div",{className:cn("flex flex-col gap-1.5 p-4",className),"data-slot":"sheet-header",...props})}function SheetFooter({className,...props}){return _jsx("div",{className:cn("mt-auto flex flex-col gap-2 p-4",className),"data-slot":"sheet-footer",...props})}function SheetTitle({className,...props}){return _jsx(SheetPrimitive.Title,{className:cn("text-foreground font-semibold",className),"data-slot":"sheet-title",...props})}function SheetDescription({className,...props}){return _jsx(SheetPrimitive.Description,{className:cn("text-muted-foreground text-sm",className),"data-slot":"sheet-description",...props})}export{Sheet,SheetClose,SheetContent,SheetDescription,SheetFooter,SheetHeader,SheetTitle,SheetTrigger};