@codefast/ui 0.3.16-canary.3 → 0.4.0-canary.5

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 (281) hide show
  1. package/CHANGELOG.md +112 -0
  2. package/README.md +27 -16
  3. package/dist/components/accordion.d.mts +7 -22
  4. package/dist/components/accordion.mjs +26 -29
  5. package/dist/components/alert-dialog.d.mts +27 -26
  6. package/dist/components/alert-dialog.mjs +53 -45
  7. package/dist/components/alert.d.mts +12 -2
  8. package/dist/components/alert.mjs +15 -6
  9. package/dist/components/aspect-ratio.d.mts +2 -2
  10. package/dist/components/aspect-ratio.mjs +2 -3
  11. package/dist/components/avatar.d.mts +41 -5
  12. package/dist/components/avatar.mjs +40 -10
  13. package/dist/components/badge.mjs +4 -4
  14. package/dist/components/breadcrumb.d.mts +1 -0
  15. package/dist/components/breadcrumb.mjs +11 -10
  16. package/dist/components/button-group.d.mts +1 -1
  17. package/dist/components/button-group.mjs +6 -7
  18. package/dist/components/button.d.mts +0 -1
  19. package/dist/components/button.mjs +7 -7
  20. package/dist/components/calendar.d.mts +6 -2
  21. package/dist/components/calendar.mjs +39 -43
  22. package/dist/components/card.d.mts +4 -2
  23. package/dist/components/card.mjs +9 -9
  24. package/dist/components/carousel.d.mts +16 -4
  25. package/dist/components/carousel.mjs +25 -12
  26. package/dist/components/chart.d.mts +8 -3
  27. package/dist/components/chart.mjs +21 -15
  28. package/dist/components/checkbox-cards.mjs +6 -6
  29. package/dist/components/checkbox-group.mjs +6 -7
  30. package/dist/components/checkbox.d.mts +2 -2
  31. package/dist/components/checkbox.mjs +8 -9
  32. package/dist/components/collapsible.d.mts +4 -4
  33. package/dist/components/collapsible.mjs +4 -5
  34. package/dist/components/command.d.mts +11 -1
  35. package/dist/components/command.mjs +35 -32
  36. package/dist/components/context-menu.d.mts +22 -15
  37. package/dist/components/context-menu.mjs +44 -39
  38. package/dist/components/dialog.d.mts +19 -23
  39. package/dist/components/dialog.mjs +48 -47
  40. package/dist/components/direction.d.mts +24 -0
  41. package/dist/components/direction.mjs +18 -0
  42. package/dist/components/drawer.d.mts +2 -20
  43. package/dist/components/drawer.mjs +17 -25
  44. package/dist/components/dropdown-menu.d.mts +22 -15
  45. package/dist/components/dropdown-menu.mjs +41 -37
  46. package/dist/components/empty.mjs +5 -5
  47. package/dist/components/field.d.mts +1 -1
  48. package/dist/components/field.mjs +11 -12
  49. package/dist/components/form.d.mts +6 -7
  50. package/dist/components/form.mjs +6 -7
  51. package/dist/components/hover-card.d.mts +5 -5
  52. package/dist/components/hover-card.mjs +14 -12
  53. package/dist/components/input-group.d.mts +1 -1
  54. package/dist/components/input-group.mjs +12 -7
  55. package/dist/components/input-number.d.mts +3 -1
  56. package/dist/components/input-number.mjs +49 -27
  57. package/dist/components/input-otp.mjs +9 -7
  58. package/dist/components/input-password.mjs +1 -4
  59. package/dist/components/input-search.mjs +3 -5
  60. package/dist/components/input.mjs +1 -2
  61. package/dist/components/item.mjs +9 -9
  62. package/dist/components/kbd.mjs +1 -1
  63. package/dist/components/label.d.mts +2 -2
  64. package/dist/components/label.mjs +3 -4
  65. package/dist/components/menubar.d.mts +22 -16
  66. package/dist/components/menubar.mjs +54 -47
  67. package/dist/components/native-select.d.mts +5 -1
  68. package/dist/components/native-select.mjs +9 -6
  69. package/dist/components/navigation-menu.d.mts +30 -8
  70. package/dist/components/navigation-menu.mjs +33 -23
  71. package/dist/components/pagination.d.mts +6 -0
  72. package/dist/components/pagination.mjs +26 -11
  73. package/dist/components/popover.d.mts +40 -7
  74. package/dist/components/popover.mjs +46 -14
  75. package/dist/components/progress-circle.d.mts +1 -1
  76. package/dist/components/progress-circle.mjs +1 -2
  77. package/dist/components/progress.d.mts +2 -2
  78. package/dist/components/progress.mjs +5 -6
  79. package/dist/components/radio-cards.d.mts +3 -3
  80. package/dist/components/radio-cards.mjs +11 -11
  81. package/dist/components/radio-group.d.mts +3 -3
  82. package/dist/components/radio-group.mjs +9 -9
  83. package/dist/components/radio.mjs +2 -3
  84. package/dist/components/resizable.mjs +3 -8
  85. package/dist/components/scroll-area.d.mts +5 -5
  86. package/dist/components/scroll-area.mjs +13 -10
  87. package/dist/components/select.d.mts +14 -14
  88. package/dist/components/select.mjs +47 -47
  89. package/dist/components/separator.d.mts +2 -2
  90. package/dist/components/separator.mjs +3 -4
  91. package/dist/components/sheet.d.mts +13 -14
  92. package/dist/components/sheet.mjs +41 -39
  93. package/dist/components/sidebar.d.mts +2 -3
  94. package/dist/components/sidebar.mjs +46 -46
  95. package/dist/components/skeleton.mjs +1 -1
  96. package/dist/components/slider.d.mts +2 -2
  97. package/dist/components/slider.mjs +9 -11
  98. package/dist/components/sonner.mjs +11 -3
  99. package/dist/components/spinner.mjs +6 -7
  100. package/dist/components/switch.d.mts +5 -2
  101. package/dist/components/switch.mjs +7 -7
  102. package/dist/components/table.mjs +10 -10
  103. package/dist/components/tabs.d.mts +8 -5
  104. package/dist/components/tabs.mjs +18 -12
  105. package/dist/components/textarea.mjs +1 -1
  106. package/dist/components/toggle-group.d.mts +9 -6
  107. package/dist/components/toggle-group.mjs +19 -20
  108. package/dist/components/toggle.d.mts +2 -3
  109. package/dist/components/toggle.mjs +4 -6
  110. package/dist/components/tooltip.d.mts +7 -6
  111. package/dist/components/tooltip.mjs +19 -17
  112. package/dist/hooks/use-animated-value.mjs +0 -1
  113. package/dist/hooks/use-copy-to-clipboard.mjs +0 -1
  114. package/dist/hooks/use-is-mobile.mjs +0 -1
  115. package/dist/hooks/use-media-query.mjs +0 -1
  116. package/dist/hooks/use-mutation-observer.mjs +0 -1
  117. package/dist/hooks/use-pagination.mjs +0 -1
  118. package/dist/index.d.mts +15 -13
  119. package/dist/index.mjs +18 -16
  120. package/dist/primitives/checkbox-group.d.mts +9 -10
  121. package/dist/primitives/checkbox-group.mjs +14 -19
  122. package/dist/primitives/input-number.d.mts +3 -3
  123. package/dist/primitives/input-number.mjs +3 -5
  124. package/dist/primitives/input.d.mts +4 -4
  125. package/dist/primitives/input.mjs +2 -3
  126. package/dist/primitives/progress-circle.d.mts +3 -3
  127. package/dist/primitives/progress-circle.mjs +2 -3
  128. package/dist/variants/alert.d.mts +1 -1
  129. package/dist/variants/alert.mjs +3 -13
  130. package/dist/variants/badge.d.mts +6 -4
  131. package/dist/variants/badge.mjs +7 -34
  132. package/dist/variants/button-group.d.mts +2 -2
  133. package/dist/variants/button-group.mjs +3 -14
  134. package/dist/variants/button.d.mts +12 -10
  135. package/dist/variants/button.mjs +15 -57
  136. package/dist/variants/empty.d.mts +1 -1
  137. package/dist/variants/empty.mjs +2 -7
  138. package/dist/variants/field.d.mts +3 -3
  139. package/dist/variants/field.mjs +4 -22
  140. package/dist/variants/input-group.d.mts +9 -9
  141. package/dist/variants/input-group.mjs +11 -70
  142. package/dist/variants/input-number.d.mts +45 -0
  143. package/dist/variants/input-number.mjs +40 -0
  144. package/dist/variants/item.d.mts +5 -4
  145. package/dist/variants/item.mjs +9 -31
  146. package/dist/variants/navigation-menu.d.mts +1 -1
  147. package/dist/variants/navigation-menu.mjs +1 -5
  148. package/dist/variants/progress-circle.d.mts +1 -1
  149. package/dist/variants/progress-circle.mjs +1 -5
  150. package/dist/variants/scroll-area.d.mts +2 -2
  151. package/dist/variants/scroll-area.mjs +3 -8
  152. package/dist/variants/separator.mjs +6 -6
  153. package/dist/variants/sheet.d.mts +4 -4
  154. package/dist/variants/sheet.mjs +5 -38
  155. package/dist/variants/sidebar.d.mts +4 -4
  156. package/dist/variants/sidebar.mjs +6 -23
  157. package/dist/variants/tabs.d.mts +18 -0
  158. package/dist/variants/tabs.mjs +15 -0
  159. package/dist/variants/toggle.d.mts +4 -4
  160. package/dist/variants/toggle.mjs +9 -27
  161. package/package.json +27 -44
  162. package/src/components/accordion.tsx +26 -68
  163. package/src/components/alert-dialog.tsx +70 -86
  164. package/src/components/alert.tsx +27 -19
  165. package/src/components/aspect-ratio.tsx +1 -4
  166. package/src/components/avatar.tsx +99 -12
  167. package/src/components/badge.tsx +5 -8
  168. package/src/components/breadcrumb.tsx +18 -24
  169. package/src/components/button-group.tsx +10 -20
  170. package/src/components/button.tsx +8 -19
  171. package/src/components/calendar.tsx +77 -132
  172. package/src/components/card.tsx +16 -22
  173. package/src/components/carousel.tsx +40 -58
  174. package/src/components/chart.tsx +41 -92
  175. package/src/components/checkbox-cards.tsx +11 -30
  176. package/src/components/checkbox-group.tsx +6 -28
  177. package/src/components/checkbox.tsx +6 -26
  178. package/src/components/collapsible.tsx +1 -4
  179. package/src/components/command.tsx +52 -65
  180. package/src/components/context-menu.tsx +46 -125
  181. package/src/components/dialog.tsx +49 -101
  182. package/src/components/direction.tsx +32 -0
  183. package/src/components/drawer.tsx +17 -79
  184. package/src/components/dropdown-menu.tsx +39 -118
  185. package/src/components/empty.tsx +6 -20
  186. package/src/components/field.tsx +19 -52
  187. package/src/components/form.tsx +19 -61
  188. package/src/components/hover-card.tsx +4 -27
  189. package/src/components/input-group.tsx +13 -52
  190. package/src/components/input-number.tsx +55 -75
  191. package/src/components/input-otp.tsx +19 -38
  192. package/src/components/input-password.tsx +5 -29
  193. package/src/components/input-search.tsx +6 -23
  194. package/src/components/input.tsx +1 -17
  195. package/src/components/item.tsx +17 -31
  196. package/src/components/kbd.tsx +2 -14
  197. package/src/components/label.tsx +2 -10
  198. package/src/components/menubar.tsx +34 -125
  199. package/src/components/native-select.tsx +21 -30
  200. package/src/components/navigation-menu.tsx +34 -94
  201. package/src/components/pagination.tsx +28 -34
  202. package/src/components/popover.tsx +66 -35
  203. package/src/components/progress-circle.tsx +7 -25
  204. package/src/components/progress.tsx +3 -16
  205. package/src/components/radio-cards.tsx +8 -27
  206. package/src/components/radio-group.tsx +7 -27
  207. package/src/components/radio.tsx +3 -24
  208. package/src/components/resizable.tsx +5 -26
  209. package/src/components/scroll-area.tsx +12 -32
  210. package/src/components/select.tsx +37 -60
  211. package/src/components/separator.tsx +4 -18
  212. package/src/components/sheet.tsx +37 -74
  213. package/src/components/sidebar.tsx +47 -177
  214. package/src/components/skeleton.tsx +1 -3
  215. package/src/components/slider.tsx +7 -36
  216. package/src/components/sonner.tsx +16 -6
  217. package/src/components/spinner.tsx +6 -15
  218. package/src/components/switch.tsx +8 -30
  219. package/src/components/table.tsx +18 -35
  220. package/src/components/tabs.tsx +16 -34
  221. package/src/components/textarea.tsx +1 -15
  222. package/src/components/toggle-group.tsx +34 -38
  223. package/src/components/toggle.tsx +4 -13
  224. package/src/components/tooltip.tsx +11 -37
  225. package/src/css/foundation/base.css +74 -0
  226. package/src/css/foundation/motion.css +69 -0
  227. package/src/css/foundation/source.css +10 -0
  228. package/src/css/foundation/tokens.css +107 -0
  229. package/src/css/foundation/variants.css +121 -0
  230. package/src/css/preset.css +13 -214
  231. package/src/css/style.css +9 -1
  232. package/src/css/{amber.css → themes/amber.css} +29 -0
  233. package/src/css/{blue.css → themes/blue.css} +29 -0
  234. package/src/css/{cyan.css → themes/cyan.css} +29 -0
  235. package/src/css/{emerald.css → themes/emerald.css} +29 -0
  236. package/src/css/{fuchsia.css → themes/fuchsia.css} +29 -0
  237. package/src/css/{gray.css → themes/gray.css} +29 -0
  238. package/src/css/{green.css → themes/green.css} +29 -0
  239. package/src/css/{indigo.css → themes/indigo.css} +29 -0
  240. package/src/css/{lime.css → themes/lime.css} +29 -0
  241. package/src/css/{neutral.css → themes/neutral.css} +29 -0
  242. package/src/css/{orange.css → themes/orange.css} +29 -0
  243. package/src/css/{pink.css → themes/pink.css} +29 -0
  244. package/src/css/{purple.css → themes/purple.css} +29 -0
  245. package/src/css/{red.css → themes/red.css} +29 -0
  246. package/src/css/{rose.css → themes/rose.css} +29 -0
  247. package/src/css/{sky.css → themes/sky.css} +29 -0
  248. package/src/css/{slate.css → themes/slate.css} +29 -0
  249. package/src/css/{stone.css → themes/stone.css} +29 -0
  250. package/src/css/{teal.css → themes/teal.css} +29 -0
  251. package/src/css/{violet.css → themes/violet.css} +29 -0
  252. package/src/css/{yellow.css → themes/yellow.css} +29 -0
  253. package/src/css/{zinc.css → themes/zinc.css} +29 -0
  254. package/src/hooks/use-animated-value.ts +1 -7
  255. package/src/hooks/use-copy-to-clipboard.ts +1 -6
  256. package/src/hooks/use-is-mobile.ts +0 -2
  257. package/src/hooks/use-media-query.ts +0 -2
  258. package/src/hooks/use-mutation-observer.ts +0 -3
  259. package/src/hooks/use-pagination.ts +0 -2
  260. package/src/index.ts +39 -80
  261. package/src/primitives/checkbox-group.tsx +25 -39
  262. package/src/primitives/input-number.tsx +17 -63
  263. package/src/primitives/input.tsx +8 -24
  264. package/src/primitives/progress-circle.tsx +13 -43
  265. package/src/variants/alert.ts +3 -14
  266. package/src/variants/badge.ts +8 -35
  267. package/src/variants/button-group.ts +5 -18
  268. package/src/variants/button.ts +21 -58
  269. package/src/variants/empty.ts +2 -11
  270. package/src/variants/field.ts +6 -19
  271. package/src/variants/input-group.ts +12 -64
  272. package/src/variants/input-number.ts +65 -0
  273. package/src/variants/item.ts +10 -32
  274. package/src/variants/navigation-menu.ts +1 -8
  275. package/src/variants/progress-circle.ts +1 -2
  276. package/src/variants/scroll-area.ts +3 -9
  277. package/src/variants/separator.ts +6 -7
  278. package/src/variants/sheet.ts +6 -39
  279. package/src/variants/sidebar.ts +7 -27
  280. package/src/variants/tabs.ts +34 -0
  281. package/src/variants/toggle.ts +9 -28
@@ -1,21 +1,20 @@
1
- "use client";
2
1
  import { cn } from "../lib/utils.mjs";
3
- import { CheckIcon } from "lucide-react";
4
- import { jsx } from "react/jsx-runtime";
5
- import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
2
+ import { CheckIcon, MinusIcon } from "lucide-react";
3
+ import { Checkbox as Checkbox$1 } from "radix-ui";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
6
5
  //#region src/components/checkbox.tsx
7
6
  /**
8
7
  * @since 0.3.16-canary.0
9
8
  */
10
9
  function Checkbox({ className, ...props }) {
11
- return /* @__PURE__ */ jsx(CheckboxPrimitive.Root, {
12
- className: cn("peer flex size-4 shrink-0 items-center justify-center", "rounded-sm border border-input shadow-xs outline-hidden", "text-primary-foreground", "transition-[border-color,background-color,box-shadow] duration-150 ease-spring", "motion-reduce:transition-none motion-reduce:duration-0", "hover:not-disabled:not-aria-checked:border-ring/60", "focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50", "disabled:opacity-50", "aria-checked:border-primary aria-checked:bg-primary", "aria-checked:focus-visible:ring-primary/20", "aria-invalid:border-destructive aria-invalid:ring-destructive/20", "hover:not-disabled:not-aria-checked:aria-invalid:border-destructive/60", "aria-checked:aria-invalid:bg-destructive", "dark:bg-input/30", "dark:aria-checked:focus-visible:ring-primary/40", "dark:aria-invalid:ring-destructive/40", className),
10
+ return /* @__PURE__ */ jsx(Checkbox$1.Root, {
11
+ className: cn("peer relative flex size-4 shrink-0 items-center justify-center rounded-sm border border-input shadow-xs transition-shadow duration-control ease-snappy outline-none group-has-disabled/field:opacity-50 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary data-indeterminate:border-primary data-indeterminate:bg-primary data-indeterminate:text-primary-foreground dark:data-indeterminate:bg-primary", className),
13
12
  "data-slot": "checkbox",
14
13
  ...props,
15
- children: /* @__PURE__ */ jsx(CheckboxPrimitive.Indicator, {
16
- className: cn("flex items-center justify-center text-current", "animate-in duration-150 ease-spring zoom-in-50", "motion-reduce:animate-none motion-reduce:transition-none motion-reduce:duration-0"),
14
+ children: /* @__PURE__ */ jsxs(Checkbox$1.Indicator, {
15
+ className: "group/checkbox-indicator grid animate-in place-content-center text-current duration-control-indicator ease-spring zoom-in-50 [&>svg]:size-3.5",
17
16
  "data-slot": "checkbox-indicator",
18
- children: /* @__PURE__ */ jsx(CheckIcon, { className: "size-3.5" })
17
+ children: [/* @__PURE__ */ jsx(CheckIcon, { className: "group-data-indeterminate/checkbox-indicator:hidden" }), /* @__PURE__ */ jsx(MinusIcon, { className: "hidden group-data-indeterminate/checkbox-indicator:block" })]
19
18
  })
20
19
  });
21
20
  }
@@ -1,11 +1,11 @@
1
+ import { Collapsible as Collapsible$1 } from "radix-ui";
1
2
  import { ComponentProps, JSX } from "react";
2
- import * as CollapsiblePrimitive from "@radix-ui/react-collapsible";
3
3
 
4
4
  //#region src/components/collapsible.d.ts
5
5
  /**
6
6
  * @since 0.3.16-canary.0
7
7
  */
8
- type CollapsibleProps = ComponentProps<typeof CollapsiblePrimitive.Root>;
8
+ type CollapsibleProps = ComponentProps<typeof Collapsible$1.Root>;
9
9
  /**
10
10
  * @since 0.3.16-canary.0
11
11
  */
@@ -15,7 +15,7 @@ declare function Collapsible({
15
15
  /**
16
16
  * @since 0.3.16-canary.0
17
17
  */
18
- type CollapsibleTriggerProps = ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>;
18
+ type CollapsibleTriggerProps = ComponentProps<typeof Collapsible$1.CollapsibleTrigger>;
19
19
  /**
20
20
  * @since 0.3.16-canary.0
21
21
  */
@@ -25,7 +25,7 @@ declare function CollapsibleTrigger({
25
25
  /**
26
26
  * @since 0.3.16-canary.0
27
27
  */
28
- type CollapsibleContentProps = ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>;
28
+ type CollapsibleContentProps = ComponentProps<typeof Collapsible$1.CollapsibleContent>;
29
29
  /**
30
30
  * @since 0.3.16-canary.0
31
31
  */
@@ -1,12 +1,11 @@
1
- "use client";
1
+ import { Collapsible as Collapsible$1 } from "radix-ui";
2
2
  import { jsx } from "react/jsx-runtime";
3
- import * as CollapsiblePrimitive from "@radix-ui/react-collapsible";
4
3
  //#region src/components/collapsible.tsx
5
4
  /**
6
5
  * @since 0.3.16-canary.0
7
6
  */
8
7
  function Collapsible({ ...props }) {
9
- return /* @__PURE__ */ jsx(CollapsiblePrimitive.Root, {
8
+ return /* @__PURE__ */ jsx(Collapsible$1.Root, {
10
9
  "data-slot": "collapsible",
11
10
  ...props
12
11
  });
@@ -15,7 +14,7 @@ function Collapsible({ ...props }) {
15
14
  * @since 0.3.16-canary.0
16
15
  */
17
16
  function CollapsibleTrigger({ ...props }) {
18
- return /* @__PURE__ */ jsx(CollapsiblePrimitive.CollapsibleTrigger, {
17
+ return /* @__PURE__ */ jsx(Collapsible$1.CollapsibleTrigger, {
19
18
  "data-slot": "collapsible-trigger",
20
19
  ...props
21
20
  });
@@ -24,7 +23,7 @@ function CollapsibleTrigger({ ...props }) {
24
23
  * @since 0.3.16-canary.0
25
24
  */
26
25
  function CollapsibleContent({ ...props }) {
27
- return /* @__PURE__ */ jsx(CollapsiblePrimitive.CollapsibleContent, {
26
+ return /* @__PURE__ */ jsx(Collapsible$1.CollapsibleContent, {
28
27
  "data-slot": "collapsible-content",
29
28
  ...props
30
29
  });
@@ -17,12 +17,21 @@ declare function Command({
17
17
  /**
18
18
  * @since 0.3.16-canary.0
19
19
  */
20
- type CommandDialogProps = ComponentProps<typeof Dialog>;
20
+ interface CommandDialogProps extends ComponentProps<typeof Dialog> {
21
+ className?: string;
22
+ description?: string;
23
+ showCloseButton?: boolean;
24
+ title?: string;
25
+ }
21
26
  /**
22
27
  * @since 0.3.16-canary.0
23
28
  */
24
29
  declare function CommandDialog({
25
30
  children,
31
+ className,
32
+ description,
33
+ showCloseButton,
34
+ title,
26
35
  ...props
27
36
  }: CommandDialogProps): JSX.Element;
28
37
  /**
@@ -88,6 +97,7 @@ type CommandItemProps = ComponentProps<typeof Command$1.Item>;
88
97
  * @since 0.3.16-canary.0
89
98
  */
90
99
  declare function CommandItem({
100
+ children,
91
101
  className,
92
102
  ...props
93
103
  }: CommandItemProps): JSX.Element;
@@ -1,9 +1,8 @@
1
- "use client";
2
1
  import { cn } from "../lib/utils.mjs";
3
- import { Dialog, DialogContent, DialogDescription, DialogTitle } from "./dialog.mjs";
4
- import { SearchIcon } from "lucide-react";
2
+ import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from "./dialog.mjs";
3
+ import { InputGroup, InputGroupAddon } from "./input-group.mjs";
4
+ import { CheckIcon, SearchIcon } from "lucide-react";
5
5
  import { jsx, jsxs } from "react/jsx-runtime";
6
- import { VisuallyHidden } from "@radix-ui/react-visually-hidden";
7
6
  import { Command as Command$1 } from "cmdk";
8
7
  //#region src/components/command.tsx
9
8
  /**
@@ -11,7 +10,7 @@ import { Command as Command$1 } from "cmdk";
11
10
  */
12
11
  function Command({ className, ...props }) {
13
12
  return /* @__PURE__ */ jsx(Command$1, {
14
- className: cn("flex flex-col overflow-hidden", "rounded-[inherit]", "bg-popover text-popover-foreground outline-hidden", className),
13
+ className: cn("flex size-full flex-col overflow-hidden rounded-xl! bg-popover p-1 text-popover-foreground", className),
15
14
  "data-slot": "command",
16
15
  ...props
17
16
  });
@@ -19,33 +18,36 @@ function Command({ className, ...props }) {
19
18
  /**
20
19
  * @since 0.3.16-canary.0
21
20
  */
22
- function CommandDialog({ children, ...props }) {
23
- return /* @__PURE__ */ jsx(Dialog, {
21
+ function CommandDialog({ children, className, description = "Search for a command to run...", showCloseButton = false, title = "Command Palette", ...props }) {
22
+ return /* @__PURE__ */ jsxs(Dialog, {
24
23
  "data-slot": "command-dialog",
25
24
  ...props,
26
- children: /* @__PURE__ */ jsxs(DialogContent, {
27
- className: cn("rounded-t-lg", "sm:rounded-lg"),
25
+ children: [/* @__PURE__ */ jsxs(DialogHeader, {
26
+ className: "sr-only",
27
+ children: [/* @__PURE__ */ jsx(DialogTitle, { children: title }), /* @__PURE__ */ jsx(DialogDescription, { children: description })]
28
+ }), /* @__PURE__ */ jsx(DialogContent, {
29
+ className: cn("top-1/3 translate-y-0 overflow-hidden rounded-xl p-0", className),
28
30
  "data-slot": "command-dialog-content",
29
- children: [/* @__PURE__ */ jsxs(VisuallyHidden, { children: [/* @__PURE__ */ jsx(DialogTitle, { children: "Search command" }), /* @__PURE__ */ jsx(DialogDescription, { children: "Use the search bar to find and select the desired command." })] }), /* @__PURE__ */ jsx(Command, {
30
- className: cn("[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground", "[&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0", "[&_[cmdk-input]]:h-12"),
31
- children
32
- })]
33
- })
31
+ showCloseButton,
32
+ children
33
+ })]
34
34
  });
35
35
  }
36
36
  /**
37
37
  * @since 0.3.16-canary.0
38
38
  */
39
39
  function CommandInput({ className, ...props }) {
40
- return /* @__PURE__ */ jsxs("div", {
41
- "cmdk-input-wrapper": true,
42
- className: cn("flex items-center gap-2", "px-3", "border-b"),
40
+ return /* @__PURE__ */ jsx("div", {
41
+ className: "p-1 pb-0",
43
42
  "data-slot": "command-input-wrapper",
44
- children: [/* @__PURE__ */ jsx(SearchIcon, { className: cn("size-4 shrink-0", "opacity-50") }), /* @__PURE__ */ jsx(Command$1.Input, {
45
- className: cn("flex h-10 w-full", "text-base", "outline-hidden", "placeholder:text-muted-foreground", "disabled:opacity-50", "md:text-sm", className),
46
- "data-slot": "command-input",
47
- ...props
48
- })]
43
+ children: /* @__PURE__ */ jsxs(InputGroup, {
44
+ className: "h-8! rounded-lg! border-input/30 bg-input/30 shadow-none! *:data-[slot=input-group-addon]:ps-2!",
45
+ children: [/* @__PURE__ */ jsx(Command$1.Input, {
46
+ className: cn("w-full text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50", className),
47
+ "data-slot": "command-input",
48
+ ...props
49
+ }), /* @__PURE__ */ jsx(InputGroupAddon, { children: /* @__PURE__ */ jsx(SearchIcon, { className: "size-4 shrink-0 opacity-50" }) })]
50
+ })
49
51
  });
50
52
  }
51
53
  /**
@@ -53,7 +55,7 @@ function CommandInput({ className, ...props }) {
53
55
  */
54
56
  function CommandList({ className, ...props }) {
55
57
  return /* @__PURE__ */ jsx(Command$1.List, {
56
- className: cn("max-h-75 overflow-x-hidden overflow-y-auto", className),
58
+ className: cn("max-h-72 scroll-py-1 scrollbar-none overflow-x-hidden overflow-y-auto outline-none", className),
57
59
  "data-slot": "command-list",
58
60
  ...props
59
61
  });
@@ -63,7 +65,7 @@ function CommandList({ className, ...props }) {
63
65
  */
64
66
  function CommandEmpty({ className, ...props }) {
65
67
  return /* @__PURE__ */ jsx(Command$1.Empty, {
66
- className: cn("py-6", "text-center text-sm", className),
68
+ className: cn("py-6 text-center text-sm", className),
67
69
  "data-slot": "command-empty",
68
70
  ...props
69
71
  });
@@ -73,7 +75,7 @@ function CommandEmpty({ className, ...props }) {
73
75
  */
74
76
  function CommandGroup({ className, ...props }) {
75
77
  return /* @__PURE__ */ jsx(Command$1.Group, {
76
- className: cn("overflow-hidden p-1 text-foreground", "[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground", className),
78
+ className: cn("overflow-hidden p-1 text-foreground **:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:py-1.5 **:[[cmdk-group-heading]]:text-xs **:[[cmdk-group-heading]]:font-medium **:[[cmdk-group-heading]]:text-muted-foreground", className),
77
79
  "data-slot": "command-group",
78
80
  ...props
79
81
  });
@@ -83,7 +85,7 @@ function CommandGroup({ className, ...props }) {
83
85
  */
84
86
  function CommandSeparator({ className, ...props }) {
85
87
  return /* @__PURE__ */ jsx(Command$1.Separator, {
86
- className: cn("-mx-1 h-px", "bg-border", className),
88
+ className: cn("-mx-1 h-px w-auto bg-border", className),
87
89
  "data-slot": "command-separator",
88
90
  ...props
89
91
  });
@@ -91,11 +93,12 @@ function CommandSeparator({ className, ...props }) {
91
93
  /**
92
94
  * @since 0.3.16-canary.0
93
95
  */
94
- function CommandItem({ className, ...props }) {
95
- return /* @__PURE__ */ jsx(Command$1.Item, {
96
- className: cn("group/command-item relative flex items-center gap-x-2", "px-2 py-1.5", "rounded-sm outline-hidden", "text-sm", "cursor-default select-none", "aria-disabled:opacity-50", "aria-selected:bg-accent aria-selected:text-accent-foreground", "[&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", "[&_svg:not([class*='text-'])]:text-muted-foreground", className),
96
+ function CommandItem({ children, className, ...props }) {
97
+ return /* @__PURE__ */ jsxs(Command$1.Item, {
98
+ className: cn("group/command-item relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none in-data-[slot=dialog-content]:rounded-lg! data-selected:bg-muted data-selected:text-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-selected:**:[svg]:text-foreground", className),
97
99
  "data-slot": "command-item",
98
- ...props
100
+ ...props,
101
+ children: [children, /* @__PURE__ */ jsx(CheckIcon, { className: "ms-auto opacity-0 group-has-data-[slot=command-shortcut]/command-item:hidden group-data-checked/command-item:opacity-100" })]
99
102
  });
100
103
  }
101
104
  /**
@@ -103,7 +106,7 @@ function CommandItem({ className, ...props }) {
103
106
  */
104
107
  function CommandLoading({ className, ...props }) {
105
108
  return /* @__PURE__ */ jsx(Command$1.Loading, {
106
- className: cn("flex justify-center", "p-2", className),
109
+ className: cn("flex justify-center p-2", className),
107
110
  "data-slot": "command-loading",
108
111
  ...props
109
112
  });
@@ -113,7 +116,7 @@ function CommandLoading({ className, ...props }) {
113
116
  */
114
117
  function CommandShortcut({ className, ...props }) {
115
118
  return /* @__PURE__ */ jsx("span", {
116
- className: cn("ml-auto", "text-xs tracking-widest text-muted-foreground", className),
119
+ className: cn("ms-auto text-xs tracking-widest text-muted-foreground group-data-selected/command-item:text-foreground", className),
117
120
  "data-slot": "command-shortcut",
118
121
  ...props
119
122
  });
@@ -1,11 +1,11 @@
1
+ import { ContextMenu as ContextMenu$1 } from "radix-ui";
1
2
  import { ComponentProps, JSX } from "react";
2
- import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
3
3
 
4
4
  //#region src/components/context-menu.d.ts
5
5
  /**
6
6
  * @since 0.3.16-canary.0
7
7
  */
8
- type ContextMenuProps = ComponentProps<typeof ContextMenuPrimitive.Root>;
8
+ type ContextMenuProps = ComponentProps<typeof ContextMenu$1.Root>;
9
9
  /**
10
10
  * @since 0.3.16-canary.0
11
11
  */
@@ -15,17 +15,18 @@ declare function ContextMenu({
15
15
  /**
16
16
  * @since 0.3.16-canary.0
17
17
  */
18
- type ContextMenuTriggerProps = ComponentProps<typeof ContextMenuPrimitive.Trigger>;
18
+ type ContextMenuTriggerProps = ComponentProps<typeof ContextMenu$1.Trigger>;
19
19
  /**
20
20
  * @since 0.3.16-canary.0
21
21
  */
22
22
  declare function ContextMenuTrigger({
23
+ className,
23
24
  ...props
24
25
  }: ContextMenuTriggerProps): JSX.Element;
25
26
  /**
26
27
  * @since 0.3.16-canary.0
27
28
  */
28
- type ContextMenuGroupProps = ComponentProps<typeof ContextMenuPrimitive.Group>;
29
+ type ContextMenuGroupProps = ComponentProps<typeof ContextMenu$1.Group>;
29
30
  /**
30
31
  * @since 0.3.16-canary.0
31
32
  */
@@ -35,7 +36,7 @@ declare function ContextMenuGroup({
35
36
  /**
36
37
  * @since 0.3.16-canary.0
37
38
  */
38
- type ContextMenuSubProps = ComponentProps<typeof ContextMenuPrimitive.Sub>;
39
+ type ContextMenuSubProps = ComponentProps<typeof ContextMenu$1.Sub>;
39
40
  /**
40
41
  * @since 0.3.16-canary.0
41
42
  */
@@ -45,7 +46,7 @@ declare function ContextMenuSub({
45
46
  /**
46
47
  * @since 0.3.16-canary.0
47
48
  */
48
- type ContextMenuRadioGroupProps = ComponentProps<typeof ContextMenuPrimitive.RadioGroup>;
49
+ type ContextMenuRadioGroupProps = ComponentProps<typeof ContextMenu$1.RadioGroup>;
49
50
  /**
50
51
  * @since 0.3.16-canary.0
51
52
  */
@@ -55,7 +56,7 @@ declare function ContextMenuRadioGroup({
55
56
  /**
56
57
  * @since 0.3.16-canary.0
57
58
  */
58
- interface ContextMenuSubTriggerProps extends ComponentProps<typeof ContextMenuPrimitive.SubTrigger> {
59
+ interface ContextMenuSubTriggerProps extends ComponentProps<typeof ContextMenu$1.SubTrigger> {
59
60
  inset?: boolean;
60
61
  }
61
62
  /**
@@ -70,7 +71,7 @@ declare function ContextMenuSubTrigger({
70
71
  /**
71
72
  * @since 0.3.16-canary.0
72
73
  */
73
- type ContextMenuSubContentProps = ComponentProps<typeof ContextMenuPrimitive.SubContent>;
74
+ type ContextMenuSubContentProps = ComponentProps<typeof ContextMenu$1.SubContent>;
74
75
  /**
75
76
  * @since 0.3.16-canary.0
76
77
  */
@@ -81,7 +82,7 @@ declare function ContextMenuSubContent({
81
82
  /**
82
83
  * @since 0.3.16-canary.0
83
84
  */
84
- type ContextMenuContentProps = ComponentProps<typeof ContextMenuPrimitive.Content>;
85
+ type ContextMenuContentProps = ComponentProps<typeof ContextMenu$1.Content>;
85
86
  /**
86
87
  * @since 0.3.16-canary.0
87
88
  */
@@ -92,7 +93,7 @@ declare function ContextMenuContent({
92
93
  /**
93
94
  * @since 0.3.16-canary.0
94
95
  */
95
- interface ContextMenuItemProps extends ComponentProps<typeof ContextMenuPrimitive.Item> {
96
+ interface ContextMenuItemProps extends ComponentProps<typeof ContextMenu$1.Item> {
96
97
  inset?: boolean;
97
98
  variant?: "default" | "destructive";
98
99
  }
@@ -108,7 +109,9 @@ declare function ContextMenuItem({
108
109
  /**
109
110
  * @since 0.3.16-canary.0
110
111
  */
111
- type ContextMenuCheckboxItemProps = ComponentProps<typeof ContextMenuPrimitive.CheckboxItem>;
112
+ interface ContextMenuCheckboxItemProps extends ComponentProps<typeof ContextMenu$1.CheckboxItem> {
113
+ inset?: boolean;
114
+ }
112
115
  /**
113
116
  * @since 0.3.16-canary.0
114
117
  */
@@ -116,24 +119,28 @@ declare function ContextMenuCheckboxItem({
116
119
  checked,
117
120
  children,
118
121
  className,
122
+ inset,
119
123
  ...props
120
124
  }: ContextMenuCheckboxItemProps): JSX.Element;
121
125
  /**
122
126
  * @since 0.3.16-canary.0
123
127
  */
124
- type ContextMenuRadioItemProps = ComponentProps<typeof ContextMenuPrimitive.RadioItem>;
128
+ interface ContextMenuRadioItemProps extends ComponentProps<typeof ContextMenu$1.RadioItem> {
129
+ inset?: boolean;
130
+ }
125
131
  /**
126
132
  * @since 0.3.16-canary.0
127
133
  */
128
134
  declare function ContextMenuRadioItem({
129
135
  children,
130
136
  className,
137
+ inset,
131
138
  ...props
132
139
  }: ContextMenuRadioItemProps): JSX.Element;
133
140
  /**
134
141
  * @since 0.3.16-canary.0
135
142
  */
136
- interface ContextMenuLabelProps extends ComponentProps<typeof ContextMenuPrimitive.Label> {
143
+ interface ContextMenuLabelProps extends ComponentProps<typeof ContextMenu$1.Label> {
137
144
  inset?: boolean;
138
145
  }
139
146
  /**
@@ -147,7 +154,7 @@ declare function ContextMenuLabel({
147
154
  /**
148
155
  * @since 0.3.16-canary.0
149
156
  */
150
- type ContextMenuSeparatorProps = ComponentProps<typeof ContextMenuPrimitive.Separator>;
157
+ type ContextMenuSeparatorProps = ComponentProps<typeof ContextMenu$1.Separator>;
151
158
  /**
152
159
  * @since 0.3.16-canary.0
153
160
  */
@@ -169,7 +176,7 @@ declare function ContextMenuShortcut({
169
176
  /**
170
177
  * @since 0.3.16-canary.0
171
178
  */
172
- type ContextMenuArrowProps = ComponentProps<typeof ContextMenuPrimitive.Arrow>;
179
+ type ContextMenuArrowProps = ComponentProps<typeof ContextMenu$1.Arrow>;
173
180
  /**
174
181
  * @since 0.3.16-canary.0
175
182
  */
@@ -1,14 +1,13 @@
1
- "use client";
2
1
  import { cn } from "../lib/utils.mjs";
3
- import { CheckIcon, ChevronRightIcon, DotIcon } from "lucide-react";
2
+ import { CheckIcon, ChevronRightIcon } from "lucide-react";
3
+ import { ContextMenu as ContextMenu$1 } from "radix-ui";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
- import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
6
5
  //#region src/components/context-menu.tsx
7
6
  /**
8
7
  * @since 0.3.16-canary.0
9
8
  */
10
9
  function ContextMenu({ ...props }) {
11
- return /* @__PURE__ */ jsx(ContextMenuPrimitive.Root, {
10
+ return /* @__PURE__ */ jsx(ContextMenu$1.Root, {
12
11
  "data-slot": "context-menu",
13
12
  ...props
14
13
  });
@@ -16,8 +15,9 @@ function ContextMenu({ ...props }) {
16
15
  /**
17
16
  * @since 0.3.16-canary.0
18
17
  */
19
- function ContextMenuTrigger({ ...props }) {
20
- return /* @__PURE__ */ jsx(ContextMenuPrimitive.Trigger, {
18
+ function ContextMenuTrigger({ className, ...props }) {
19
+ return /* @__PURE__ */ jsx(ContextMenu$1.Trigger, {
20
+ className: cn("select-none", className),
21
21
  "data-slot": "context-menu-trigger",
22
22
  ...props
23
23
  });
@@ -26,7 +26,7 @@ function ContextMenuTrigger({ ...props }) {
26
26
  * @since 0.3.16-canary.0
27
27
  */
28
28
  function ContextMenuGroup({ ...props }) {
29
- return /* @__PURE__ */ jsx(ContextMenuPrimitive.Group, {
29
+ return /* @__PURE__ */ jsx(ContextMenu$1.Group, {
30
30
  "data-slot": "context-menu-group",
31
31
  ...props
32
32
  });
@@ -35,7 +35,7 @@ function ContextMenuGroup({ ...props }) {
35
35
  * @since 0.3.16-canary.0
36
36
  */
37
37
  function ContextMenuSub({ ...props }) {
38
- return /* @__PURE__ */ jsx(ContextMenuPrimitive.Sub, {
38
+ return /* @__PURE__ */ jsx(ContextMenu$1.Sub, {
39
39
  "data-slot": "context-menu-sub",
40
40
  ...props
41
41
  });
@@ -44,7 +44,7 @@ function ContextMenuSub({ ...props }) {
44
44
  * @since 0.3.16-canary.0
45
45
  */
46
46
  function ContextMenuRadioGroup({ ...props }) {
47
- return /* @__PURE__ */ jsx(ContextMenuPrimitive.RadioGroup, {
47
+ return /* @__PURE__ */ jsx(ContextMenu$1.RadioGroup, {
48
48
  "data-slot": "context-menu-radio-group",
49
49
  ...props
50
50
  });
@@ -53,40 +53,43 @@ function ContextMenuRadioGroup({ ...props }) {
53
53
  * @since 0.3.16-canary.0
54
54
  */
55
55
  function ContextMenuSubTrigger({ children, className, inset, ...props }) {
56
- return /* @__PURE__ */ jsxs(ContextMenuPrimitive.SubTrigger, {
57
- className: cn("flex items-center gap-x-2", "px-2 py-1.5", "rounded-sm outline-hidden", "text-sm", "cursor-default select-none", "focus:bg-accent focus:text-accent-foreground", "data-inset:pl-8", "data-open:bg-accent data-open:text-accent-foreground", "[&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
56
+ return /* @__PURE__ */ jsxs(ContextMenu$1.SubTrigger, {
57
+ className: cn("flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:ps-8 data-open:bg-accent data-open:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
58
58
  "data-inset": inset,
59
59
  "data-slot": "context-menu-sub-trigger",
60
60
  ...props,
61
- children: [children, /* @__PURE__ */ jsx(ChevronRightIcon, { className: cn("size-4", "ml-auto") })]
61
+ children: [children, /* @__PURE__ */ jsx(ChevronRightIcon, { className: "ms-auto rtl:rotate-180" })]
62
62
  });
63
63
  }
64
64
  /**
65
65
  * @since 0.3.16-canary.0
66
66
  */
67
67
  function ContextMenuSubContent({ className, ...props }) {
68
- return /* @__PURE__ */ jsx(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(ContextMenuPrimitive.SubContent, {
69
- className: cn("z-50", "min-w-32 overflow-hidden p-1", "rounded-lg border", "bg-popover text-popover-foreground shadow-lg", "ease-snappy data-open:animate-in data-open:duration-200 data-open:fade-in-0 data-open:zoom-in-95", "data-open:data-side-top:slide-in-from-bottom-2", "data-open:data-side-right:slide-in-from-left-2", "data-open:data-side-bottom:slide-in-from-top-2", "data-open:data-side-left:slide-in-from-right-2", "data-closed:animate-out data-closed:duration-150 data-closed:fade-out-0 data-closed:zoom-out-95", "data-closed:data-side-top:slide-out-to-bottom-2", "data-closed:data-side-right:slide-out-to-left-2", "data-closed:data-side-bottom:slide-out-to-top-2", "data-closed:data-side-left:slide-out-to-right-2", "motion-reduce:animate-none motion-reduce:transition-none motion-reduce:duration-0", "origin-(--radix-context-menu-content-transform-origin)", className),
68
+ return /* @__PURE__ */ jsx(ContextMenu$1.SubContent, {
69
+ className: cn("z-50 min-w-32 origin-(--radix-context-menu-content-transform-origin) overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg ease-snappy data-open:animate-in data-open:animation-duration-menu-in data-open:fade-in-0 data-open:zoom-in-95 data-open:data-side-top:slide-in-from-bottom-2 data-open:data-side-right:slide-in-from-left-2 data-open:data-side-bottom:slide-in-from-top-2 data-open:data-side-left:slide-in-from-right-2 data-closed:animate-out data-closed:ease-exit data-closed:animation-duration-menu-out data-closed:fade-out-0 data-closed:zoom-out-95 data-closed:data-side-top:slide-out-to-bottom-2 data-closed:data-side-right:slide-out-to-left-2 data-closed:data-side-bottom:slide-out-to-top-2 data-closed:data-side-left:slide-out-to-right-2", className),
70
70
  "data-slot": "context-menu-sub-content",
71
71
  ...props
72
- }) });
72
+ });
73
73
  }
74
74
  /**
75
75
  * @since 0.3.16-canary.0
76
76
  */
77
77
  function ContextMenuContent({ className, ...props }) {
78
- return /* @__PURE__ */ jsx(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(ContextMenuPrimitive.Content, {
79
- className: cn("z-50", "max-h-(--radix-context-menu-content-available-height) min-w-32 overflow-x-hidden overflow-y-auto p-1", "rounded-lg border", "bg-popover text-popover-foreground shadow-lg", "ease-snappy data-open:animate-in data-open:duration-200 data-open:fade-in-0 data-open:zoom-in-95", "data-open:data-side-top:slide-in-from-bottom-2", "data-open:data-side-right:slide-in-from-left-2", "data-open:data-side-bottom:slide-in-from-top-2", "data-open:data-side-left:slide-in-from-right-2", "motion-reduce:animate-none motion-reduce:transition-none motion-reduce:duration-0", "origin-(--radix-context-menu-content-transform-origin)", className),
80
- "data-slot": "context-menu-content",
81
- ...props
82
- }) });
78
+ return /* @__PURE__ */ jsx(ContextMenu$1.Portal, {
79
+ "data-slot": "context-menu-portal",
80
+ children: /* @__PURE__ */ jsx(ContextMenu$1.Content, {
81
+ className: cn("z-50 max-h-(--radix-context-menu-content-available-height) min-w-36 origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 ease-snappy data-open:animate-in data-open:animation-duration-menu-in data-open:fade-in-0 data-open:zoom-in-95 data-open:data-side-top:slide-in-from-bottom-2 data-open:data-side-right:slide-in-from-left-2 data-open:data-side-bottom:slide-in-from-top-2 data-open:data-side-left:slide-in-from-right-2 data-closed:ease-exit", className),
82
+ "data-slot": "context-menu-content",
83
+ ...props
84
+ })
85
+ });
83
86
  }
84
87
  /**
85
88
  * @since 0.3.16-canary.0
86
89
  */
87
- function ContextMenuItem({ className, inset, variant, ...props }) {
88
- return /* @__PURE__ */ jsx(ContextMenuPrimitive.Item, {
89
- className: cn("group/context-menu-item relative flex items-center gap-x-2", "px-2 py-1.5", "rounded-sm outline-hidden", "text-sm", "cursor-default select-none", "focus:bg-accent focus:text-accent-foreground", "aria-disabled:opacity-50", "data-inset:pl-8", "data-[variant=destructive]:text-destructive", "data-[variant=destructive]:focus:bg-destructive/10", "dark:data-[variant=destructive]:focus:bg-destructive/20", "data-[variant=destructive]:[&_svg:not([class*='text-'])]:text-destructive/80", "[&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", "[&_svg:not([class*='text-'])]:text-muted-foreground", className),
90
+ function ContextMenuItem({ className, inset, variant = "default", ...props }) {
91
+ return /* @__PURE__ */ jsx(ContextMenu$1.Item, {
92
+ className: cn("group/context-menu-item relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:ps-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 focus:*:[svg]:text-accent-foreground data-[variant=destructive]:*:[svg]:text-destructive", className),
90
93
  "data-inset": inset,
91
94
  "data-slot": "context-menu-item",
92
95
  "data-variant": variant,
@@ -96,29 +99,31 @@ function ContextMenuItem({ className, inset, variant, ...props }) {
96
99
  /**
97
100
  * @since 0.3.16-canary.0
98
101
  */
99
- function ContextMenuCheckboxItem({ checked, children, className, ...props }) {
100
- return /* @__PURE__ */ jsxs(ContextMenuPrimitive.CheckboxItem, {
102
+ function ContextMenuCheckboxItem({ checked, children, className, inset, ...props }) {
103
+ return /* @__PURE__ */ jsxs(ContextMenu$1.CheckboxItem, {
101
104
  checked,
102
- className: cn("group/context-menu-item relative flex items-center gap-x-2", "py-1.5 pr-2 pl-8", "rounded-sm outline-hidden", "text-sm", "cursor-default select-none", "focus:bg-accent focus:text-accent-foreground", "aria-disabled:opacity-50", "[&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
105
+ className: cn("relative flex cursor-default items-center gap-2 rounded-sm py-1.5 ps-2 pe-8 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:ps-8 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
106
+ "data-inset": inset,
103
107
  "data-slot": "context-menu-checkbox-item",
104
108
  ...props,
105
109
  children: [/* @__PURE__ */ jsx("span", {
106
- className: cn("absolute flex items-center justify-center", "left-2"),
107
- children: /* @__PURE__ */ jsx(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, { className: "size-4" }) })
110
+ className: "pointer-events-none absolute end-2",
111
+ children: /* @__PURE__ */ jsx(ContextMenu$1.ItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, {}) })
108
112
  }), children]
109
113
  });
110
114
  }
111
115
  /**
112
116
  * @since 0.3.16-canary.0
113
117
  */
114
- function ContextMenuRadioItem({ children, className, ...props }) {
115
- return /* @__PURE__ */ jsxs(ContextMenuPrimitive.RadioItem, {
116
- className: cn("group/context-menu-item relative flex items-center gap-x-2", "py-1.5 pr-2 pl-8", "rounded-sm outline-hidden", "text-sm", "cursor-default select-none", "focus:bg-accent focus:text-accent-foreground", "aria-disabled:opacity-50", "[&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
118
+ function ContextMenuRadioItem({ children, className, inset, ...props }) {
119
+ return /* @__PURE__ */ jsxs(ContextMenu$1.RadioItem, {
120
+ className: cn("relative flex cursor-default items-center gap-2 rounded-sm py-1.5 ps-2 pe-8 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:ps-8 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
121
+ "data-inset": inset,
117
122
  "data-slot": "context-menu-radio-item",
118
123
  ...props,
119
124
  children: [/* @__PURE__ */ jsx("span", {
120
- className: cn("absolute flex items-center justify-center", "left-2"),
121
- children: /* @__PURE__ */ jsx(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(DotIcon, { className: cn("size-4", "fill-current") }) })
125
+ className: "pointer-events-none absolute end-2",
126
+ children: /* @__PURE__ */ jsx(ContextMenu$1.ItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, {}) })
122
127
  }), children]
123
128
  });
124
129
  }
@@ -126,8 +131,8 @@ function ContextMenuRadioItem({ children, className, ...props }) {
126
131
  * @since 0.3.16-canary.0
127
132
  */
128
133
  function ContextMenuLabel({ className, inset, ...props }) {
129
- return /* @__PURE__ */ jsx(ContextMenuPrimitive.Label, {
130
- className: cn("flex items-center gap-x-2", "px-2 py-1.5", "text-sm font-semibold", "data-inset:pl-8", className),
134
+ return /* @__PURE__ */ jsx(ContextMenu$1.Label, {
135
+ className: cn("px-2 py-1.5 text-xs font-medium text-muted-foreground data-inset:ps-8", className),
131
136
  "data-inset": inset,
132
137
  "data-slot": "context-menu-label",
133
138
  ...props
@@ -137,8 +142,8 @@ function ContextMenuLabel({ className, inset, ...props }) {
137
142
  * @since 0.3.16-canary.0
138
143
  */
139
144
  function ContextMenuSeparator({ className, ...props }) {
140
- return /* @__PURE__ */ jsx(ContextMenuPrimitive.Separator, {
141
- className: cn("mx-2 my-1 h-px", "bg-border", className),
145
+ return /* @__PURE__ */ jsx(ContextMenu$1.Separator, {
146
+ className: cn("-mx-1 my-1 h-px bg-border", className),
142
147
  "data-slot": "context-menu-separator",
143
148
  ...props
144
149
  });
@@ -148,7 +153,7 @@ function ContextMenuSeparator({ className, ...props }) {
148
153
  */
149
154
  function ContextMenuShortcut({ className, ...props }) {
150
155
  return /* @__PURE__ */ jsx("span", {
151
- className: cn("ml-auto", "text-xs tracking-widest text-muted-foreground", "group-data-[variant=destructive]/context-menu-item:text-destructive/80", className),
156
+ className: cn("ms-auto text-xs tracking-widest text-muted-foreground group-focus/context-menu-item:text-accent-foreground", className),
152
157
  "data-slot": "context-menu-shortcut",
153
158
  ...props
154
159
  });
@@ -157,7 +162,7 @@ function ContextMenuShortcut({ className, ...props }) {
157
162
  * @since 0.3.16-canary.0
158
163
  */
159
164
  function ContextMenuArrow({ className, ...props }) {
160
- return /* @__PURE__ */ jsx(ContextMenuPrimitive.Arrow, {
165
+ return /* @__PURE__ */ jsx(ContextMenu$1.Arrow, {
161
166
  className: cn("fill-popover", className),
162
167
  "data-slot": "context-menu-arrow",
163
168
  ...props