@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,15 +1,13 @@
1
- "use client";
2
1
  import { cn } from "../lib/utils.mjs";
3
- import { buttonVariants } from "../variants/button.mjs";
4
2
  import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from "lucide-react";
3
+ import { Select as Select$1 } from "radix-ui";
5
4
  import { jsx, jsxs } from "react/jsx-runtime";
6
- import * as SelectPrimitive from "@radix-ui/react-select";
7
5
  //#region src/components/select.tsx
8
6
  /**
9
7
  * @since 0.3.16-canary.0
10
8
  */
11
9
  function Select({ ...props }) {
12
- return /* @__PURE__ */ jsx(SelectPrimitive.Root, {
10
+ return /* @__PURE__ */ jsx(Select$1.Root, {
13
11
  "data-slot": "select",
14
12
  ...props
15
13
  });
@@ -17,8 +15,9 @@ function Select({ ...props }) {
17
15
  /**
18
16
  * @since 0.3.16-canary.0
19
17
  */
20
- function SelectGroup({ ...props }) {
21
- return /* @__PURE__ */ jsx(SelectPrimitive.Group, {
18
+ function SelectGroup({ className, ...props }) {
19
+ return /* @__PURE__ */ jsx(Select$1.Group, {
20
+ className: cn("scroll-my-1 p-1", className),
22
21
  "data-slot": "select-group",
23
22
  ...props
24
23
  });
@@ -27,7 +26,7 @@ function SelectGroup({ ...props }) {
27
26
  * @since 0.3.16-canary.0
28
27
  */
29
28
  function SelectValue({ ...props }) {
30
- return /* @__PURE__ */ jsx(SelectPrimitive.Value, {
29
+ return /* @__PURE__ */ jsx(Select$1.Value, {
31
30
  "data-slot": "select-value",
32
31
  ...props
33
32
  });
@@ -35,20 +34,15 @@ function SelectValue({ ...props }) {
35
34
  /**
36
35
  * @since 0.3.16-canary.0
37
36
  */
38
- function SelectTrigger({ children, className, size, ...props }) {
39
- return /* @__PURE__ */ jsxs(SelectPrimitive.Trigger, {
40
- className: buttonVariants({
41
- className: ["[&_svg:not([class*='text-'])]:text-muted-foreground focus:ring-ring/50 focus:border-ring w-fit justify-between px-3 font-normal focus:ring-3 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 *:data-[slot=select-value]:truncate", className],
42
- size,
43
- variant: "outline"
44
- }),
37
+ function SelectTrigger({ children, className, size = "default", ...props }) {
38
+ return /* @__PURE__ */ jsxs(Select$1.Trigger, {
39
+ className: cn("flex w-fit items-center justify-between gap-1.5 rounded-md border border-input bg-transparent py-2 ps-2.5 pe-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none 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 data-placeholder:text-muted-foreground 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-1.5 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
45
40
  "data-size": size,
46
41
  "data-slot": "select-trigger",
47
42
  ...props,
48
- children: [children, /* @__PURE__ */ jsx(SelectPrimitive.Icon, {
43
+ children: [children, /* @__PURE__ */ jsx(Select$1.Icon, {
49
44
  asChild: true,
50
- className: cn("size-4 shrink-0", "opacity-50"),
51
- children: /* @__PURE__ */ jsx(ChevronDownIcon, {})
45
+ children: /* @__PURE__ */ jsx(ChevronDownIcon, { className: "pointer-events-none size-4 text-muted-foreground" })
52
46
  })]
53
47
  });
54
48
  }
@@ -56,49 +50,55 @@ function SelectTrigger({ children, className, size, ...props }) {
56
50
  * @since 0.3.16-canary.0
57
51
  */
58
52
  function SelectScrollUpButton({ className, ...props }) {
59
- return /* @__PURE__ */ jsx(SelectPrimitive.ScrollUpButton, {
60
- className: cn("flex items-center justify-center", "py-1", "text-muted-foreground", className),
53
+ return /* @__PURE__ */ jsx(Select$1.ScrollUpButton, {
54
+ className: cn("z-10 flex cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4", className),
61
55
  "data-slot": "select-scroll-up-button",
62
56
  ...props,
63
- children: /* @__PURE__ */ jsx(ChevronUpIcon, { size: 16 })
57
+ children: /* @__PURE__ */ jsx(ChevronUpIcon, {})
64
58
  });
65
59
  }
66
60
  /**
67
61
  * @since 0.3.16-canary.0
68
62
  */
69
63
  function SelectScrollDownButton({ className, ...props }) {
70
- return /* @__PURE__ */ jsx(SelectPrimitive.ScrollDownButton, {
71
- className: cn("flex items-center justify-center", "py-1", "text-muted-foreground", className),
64
+ return /* @__PURE__ */ jsx(Select$1.ScrollDownButton, {
65
+ className: cn("z-10 flex cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4", className),
72
66
  "data-slot": "select-scroll-down-button",
73
67
  ...props,
74
- children: /* @__PURE__ */ jsx(ChevronDownIcon, { size: 16 })
68
+ children: /* @__PURE__ */ jsx(ChevronDownIcon, {})
75
69
  });
76
70
  }
77
71
  /**
78
72
  * @since 0.3.16-canary.0
79
73
  */
80
- function SelectContent({ children, className, position = "item-aligned", ...props }) {
81
- return /* @__PURE__ */ jsx(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs(SelectPrimitive.Content, {
82
- className: cn("relative z-50", "max-h-(--radix-select-content-available-height) min-w-32 overflow-hidden", "rounded-lg border", "bg-popover text-popover-foreground shadow-lg", "ease-ui data-open:animate-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: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-select-content-transform-origin)", position === "popper" && "data-side-top:-translate-y-1 data-side-right:translate-x-1 data-side-bottom:translate-y-1 data-side-left:-translate-x-1", className),
83
- "data-slot": "select-content",
84
- position,
85
- ...props,
86
- children: [
87
- /* @__PURE__ */ jsx(SelectScrollUpButton, {}),
88
- /* @__PURE__ */ jsx(SelectPrimitive.Viewport, {
89
- className: cn("p-1", position === "popper" && "h-(--radix-select-trigger-height) w-full min-w-(--radix-select-trigger-width) scroll-my-1"),
90
- children
91
- }),
92
- /* @__PURE__ */ jsx(SelectScrollDownButton, {})
93
- ]
94
- }) });
74
+ function SelectContent({ align = "center", children, className, position = "item-aligned", ...props }) {
75
+ return /* @__PURE__ */ jsx(Select$1.Portal, {
76
+ "data-slot": "select-portal",
77
+ children: /* @__PURE__ */ jsxs(Select$1.Content, {
78
+ align,
79
+ className: cn("relative z-50 max-h-(--radix-select-content-available-height) min-w-36 origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 ease-snappy data-[align-trigger=true]:animate-none 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", position === "popper" && "data-side-top:-translate-y-1 data-side-right:translate-x-1 rtl:data-side-right:-translate-x-1 data-side-bottom:translate-y-1 data-side-left:-translate-x-1 rtl:data-side-left:translate-x-1", className),
80
+ "data-align-trigger": position === "item-aligned",
81
+ "data-slot": "select-content",
82
+ position,
83
+ ...props,
84
+ children: [
85
+ /* @__PURE__ */ jsx(SelectScrollUpButton, {}),
86
+ /* @__PURE__ */ jsx(Select$1.Viewport, {
87
+ className: cn("data-[position=popper]:h-(--radix-select-trigger-height) data-[position=popper]:w-full data-[position=popper]:min-w-(--radix-select-trigger-width)", position === "popper" && ""),
88
+ "data-position": position,
89
+ children
90
+ }),
91
+ /* @__PURE__ */ jsx(SelectScrollDownButton, {})
92
+ ]
93
+ })
94
+ });
95
95
  }
96
96
  /**
97
97
  * @since 0.3.16-canary.0
98
98
  */
99
99
  function SelectLabel({ className, ...props }) {
100
- return /* @__PURE__ */ jsx(SelectPrimitive.Label, {
101
- className: cn("flex items-center gap-x-2", "px-2 py-1.5", "text-sm font-semibold", className),
100
+ return /* @__PURE__ */ jsx(Select$1.Label, {
101
+ className: cn("px-2 py-1.5 text-xs text-muted-foreground", className),
102
102
  "data-slot": "select-label",
103
103
  ...props
104
104
  });
@@ -107,22 +107,22 @@ function SelectLabel({ className, ...props }) {
107
107
  * @since 0.3.16-canary.0
108
108
  */
109
109
  function SelectItem({ children, className, ...props }) {
110
- return /* @__PURE__ */ jsxs(SelectPrimitive.Item, {
111
- className: cn("relative flex w-full items-center py-1.5 pr-8 pl-2", "rounded-sm outline-hidden", "text-sm", "cursor-default select-none", "focus:bg-accent focus:text-accent-foreground", "aria-disabled:opacity-50", "data-[variant=destructive]:[&_svg:not([class*='text-'])]:text-destructive/80", "*:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2", "[&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", "[&_svg:not([class*='text-'])]:text-muted-foreground", className),
110
+ return /* @__PURE__ */ jsxs(Select$1.Item, {
111
+ className: cn("relative flex w-full 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 not-data-[variant=destructive]:focus:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2", className),
112
112
  "data-slot": "select-item",
113
113
  ...props,
114
114
  children: [/* @__PURE__ */ jsx("span", {
115
- className: cn("absolute flex items-center justify-center", "right-2"),
116
- children: /* @__PURE__ */ jsx(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, { className: "size-4" }) })
117
- }), /* @__PURE__ */ jsx(SelectPrimitive.ItemText, { children })]
115
+ className: "pointer-events-none absolute end-2 flex size-4 items-center justify-center",
116
+ children: /* @__PURE__ */ jsx(Select$1.ItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, { className: "pointer-events-none" }) })
117
+ }), /* @__PURE__ */ jsx(Select$1.ItemText, { children })]
118
118
  });
119
119
  }
120
120
  /**
121
121
  * @since 0.3.16-canary.0
122
122
  */
123
123
  function SelectSeparator({ className, ...props }) {
124
- return /* @__PURE__ */ jsx(SelectPrimitive.Separator, {
125
- className: cn("mx-2 my-1 h-px", "bg-border", className),
124
+ return /* @__PURE__ */ jsx(Select$1.Separator, {
125
+ className: cn("pointer-events-none -mx-1 my-1 h-px bg-border", className),
126
126
  "data-slot": "select-separator",
127
127
  ...props
128
128
  });
@@ -1,12 +1,12 @@
1
1
  import { SeparatorVariants } from "../variants/separator.mjs";
2
- import * as SeparatorPrimitive from "@radix-ui/react-separator";
2
+ import { Separator as Separator$1 } from "radix-ui";
3
3
  import { ComponentProps, JSX } from "react";
4
4
 
5
5
  //#region src/components/separator.d.ts
6
6
  /**
7
7
  * @since 0.3.16-canary.0
8
8
  */
9
- interface SeparatorProps extends ComponentProps<typeof SeparatorPrimitive.Root>, Omit<SeparatorVariants, "orientation"> {}
9
+ interface SeparatorProps extends ComponentProps<typeof Separator$1.Root>, Omit<SeparatorVariants, "orientation"> {}
10
10
  /**
11
11
  * @since 0.3.16-canary.0
12
12
  */
@@ -1,14 +1,13 @@
1
- "use client";
2
1
  import { cn } from "../lib/utils.mjs";
3
2
  import { separatorVariants } from "../variants/separator.mjs";
3
+ import { Separator as Separator$1 } from "radix-ui";
4
4
  import { jsx } from "react/jsx-runtime";
5
- import * as SeparatorPrimitive from "@radix-ui/react-separator";
6
5
  //#region src/components/separator.tsx
7
6
  /**
8
7
  * @since 0.3.16-canary.0
9
8
  */
10
9
  function Separator({ align, className, decorative = true, orientation, ...props }) {
11
- return /* @__PURE__ */ jsx(SeparatorPrimitive.Root, {
10
+ return /* @__PURE__ */ jsx(Separator$1.Root, {
12
11
  className: separatorVariants({
13
12
  align,
14
13
  className,
@@ -25,7 +24,7 @@ function Separator({ align, className, decorative = true, orientation, ...props
25
24
  */
26
25
  function SeparatorItem({ className, ...props }) {
27
26
  return /* @__PURE__ */ jsx("div", {
28
- className: cn("absolute", "mx-2 px-2", "bg-background text-sm text-muted-foreground", className),
27
+ className: cn("absolute mx-2 bg-background px-2 text-sm text-muted-foreground", className),
29
28
  "data-slot": "separator-item",
30
29
  ...props
31
30
  });
@@ -1,24 +1,23 @@
1
1
  import { ButtonVariants } from "../variants/button.mjs";
2
2
  import { SheetContentVariants } from "../variants/sheet.mjs";
3
+ import { Dialog } from "radix-ui";
3
4
  import { ComponentProps, JSX } from "react";
4
- import * as SheetPrimitive from "@radix-ui/react-dialog";
5
5
 
6
6
  //#region src/components/sheet.d.ts
7
7
  /**
8
8
  * @since 0.3.16-canary.0
9
9
  */
10
- type SheetProps = ComponentProps<typeof SheetPrimitive.Root>;
10
+ type SheetProps = ComponentProps<typeof Dialog.Root>;
11
11
  /**
12
12
  * @since 0.3.16-canary.0
13
13
  */
14
14
  declare function Sheet({
15
- children,
16
15
  ...props
17
16
  }: SheetProps): JSX.Element;
18
17
  /**
19
18
  * @since 0.3.16-canary.0
20
19
  */
21
- type SheetTriggerProps = ComponentProps<typeof SheetPrimitive.Trigger>;
20
+ type SheetTriggerProps = ComponentProps<typeof Dialog.Trigger>;
22
21
  /**
23
22
  * @since 0.3.16-canary.0
24
23
  */
@@ -28,12 +27,8 @@ declare function SheetTrigger({
28
27
  /**
29
28
  * @since 0.3.16-canary.0
30
29
  */
31
- interface SheetContentProps extends ComponentProps<typeof SheetPrimitive.Content>, SheetContentVariants {
32
- classNames?: {
33
- close?: string;
34
- content?: string;
35
- overlay?: string;
36
- };
30
+ interface SheetContentProps extends ComponentProps<typeof Dialog.Content>, SheetContentVariants {
31
+ showCloseButton?: boolean;
37
32
  }
38
33
  /**
39
34
  * @since 0.3.16-canary.0
@@ -41,7 +36,7 @@ interface SheetContentProps extends ComponentProps<typeof SheetPrimitive.Content
41
36
  declare function SheetContent({
42
37
  children,
43
38
  className,
44
- classNames,
39
+ showCloseButton,
45
40
  side,
46
41
  ...props
47
42
  }: SheetContentProps): JSX.Element;
@@ -57,6 +52,10 @@ declare function SheetHeader({
57
52
  ...props
58
53
  }: SheetHeaderProps): JSX.Element;
59
54
  /**
55
+ * Optional scrollable region for long content. When used, the Header and Footer
56
+ * stay pinned (shrink-0) and only this body scrolls. A codefast enhancement over
57
+ * radix-vega.
58
+ *
60
59
  * @since 0.3.16-canary.0
61
60
  */
62
61
  type SheetBodyProps = ComponentProps<"div">;
@@ -81,7 +80,7 @@ declare function SheetFooter({
81
80
  /**
82
81
  * @since 0.3.16-canary.0
83
82
  */
84
- type SheetTitleProps = ComponentProps<typeof SheetPrimitive.Title>;
83
+ type SheetTitleProps = ComponentProps<typeof Dialog.Title>;
85
84
  /**
86
85
  * @since 0.3.16-canary.0
87
86
  */
@@ -92,7 +91,7 @@ declare function SheetTitle({
92
91
  /**
93
92
  * @since 0.3.16-canary.0
94
93
  */
95
- type SheetDescriptionProps = ComponentProps<typeof SheetPrimitive.Description>;
94
+ type SheetDescriptionProps = ComponentProps<typeof Dialog.Description>;
96
95
  /**
97
96
  * @since 0.3.16-canary.0
98
97
  */
@@ -103,7 +102,7 @@ declare function SheetDescription({
103
102
  /**
104
103
  * @since 0.3.16-canary.0
105
104
  */
106
- interface SheetCloseProps extends ComponentProps<typeof SheetPrimitive.Close> {
105
+ interface SheetCloseProps extends ComponentProps<typeof Dialog.Close> {
107
106
  size?: ButtonVariants["size"];
108
107
  variant?: ButtonVariants["variant"];
109
108
  }
@@ -1,26 +1,24 @@
1
- "use client";
2
1
  import { cn } from "../lib/utils.mjs";
3
2
  import { buttonVariants } from "../variants/button.mjs";
4
3
  import { sheetContentVariants } from "../variants/sheet.mjs";
5
4
  import { XIcon } from "lucide-react";
5
+ import { Dialog } from "radix-ui";
6
6
  import { jsx, jsxs } from "react/jsx-runtime";
7
- import * as SheetPrimitive from "@radix-ui/react-dialog";
8
7
  //#region src/components/sheet.tsx
9
8
  /**
10
9
  * @since 0.3.16-canary.0
11
10
  */
12
- function Sheet({ children, ...props }) {
13
- return /* @__PURE__ */ jsx(SheetPrimitive.Root, {
11
+ function Sheet({ ...props }) {
12
+ return /* @__PURE__ */ jsx(Dialog.Root, {
14
13
  "data-slot": "sheet",
15
- ...props,
16
- children
14
+ ...props
17
15
  });
18
16
  }
19
17
  /**
20
18
  * @since 0.3.16-canary.0
21
19
  */
22
20
  function SheetTrigger({ ...props }) {
23
- return /* @__PURE__ */ jsx(SheetPrimitive.Trigger, {
21
+ return /* @__PURE__ */ jsx(Dialog.Trigger, {
24
22
  "data-slot": "sheet-trigger",
25
23
  ...props
26
24
  });
@@ -28,37 +26,41 @@ function SheetTrigger({ ...props }) {
28
26
  /**
29
27
  * @since 0.3.16-canary.0
30
28
  */
31
- function SheetContent({ children, className, classNames, side = "right", ...props }) {
32
- return /* @__PURE__ */ jsxs(SheetPrimitive.Portal, { children: [/* @__PURE__ */ jsx(SheetPrimitive.Overlay, {
33
- className: cn("fixed inset-0 z-50", "bg-black/40 backdrop-blur-sm", "ease-gentle data-open:animate-in data-open:animation-duration-380 data-open:fade-in-0", "data-closed:animate-out data-closed:animation-duration-280 data-closed:fade-out-0", "motion-reduce:animate-none motion-reduce:transition-none motion-reduce:duration-0", classNames?.overlay),
34
- "data-slot": "sheet-overlay"
35
- }), /* @__PURE__ */ jsxs(SheetPrimitive.Content, {
36
- className: sheetContentVariants({
37
- className: [classNames?.content, className],
38
- side
39
- }),
40
- "data-slot": "sheet-content",
41
- ...props,
42
- children: [children, /* @__PURE__ */ jsxs(SheetPrimitive.Close, {
43
- className: buttonVariants({
44
- className: ["absolute top-4 right-4 size-7", classNames?.close],
45
- size: "icon",
46
- variant: "ghost"
29
+ function SheetContent({ children, className, showCloseButton = true, side = "right", ...props }) {
30
+ return /* @__PURE__ */ jsxs(Dialog.Portal, {
31
+ "data-slot": "sheet-portal",
32
+ children: [/* @__PURE__ */ jsx(Dialog.Overlay, {
33
+ className: "fixed inset-0 z-50 bg-black/10 ease-gentle supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:animation-duration-panel-in data-open:fade-in-0 data-closed:animate-out data-closed:ease-exit data-closed:animation-duration-panel-out data-closed:fade-out-0",
34
+ "data-slot": "sheet-overlay"
35
+ }), /* @__PURE__ */ jsxs(Dialog.Content, {
36
+ className: sheetContentVariants({
37
+ className,
38
+ side
47
39
  }),
48
- "data-slot": "sheet-close",
49
- children: [/* @__PURE__ */ jsx(XIcon, { className: "size-4" }), /* @__PURE__ */ jsx("span", {
50
- className: "sr-only",
51
- children: "Close"
52
- })]
40
+ "data-side": side,
41
+ "data-slot": "sheet-content",
42
+ ...props,
43
+ children: [children, showCloseButton ? /* @__PURE__ */ jsxs(Dialog.Close, {
44
+ className: buttonVariants({
45
+ className: "absolute top-4 end-4",
46
+ size: "icon-sm",
47
+ variant: "ghost"
48
+ }),
49
+ "data-slot": "sheet-close",
50
+ children: [/* @__PURE__ */ jsx(XIcon, {}), /* @__PURE__ */ jsx("span", {
51
+ className: "sr-only",
52
+ children: "Close"
53
+ })]
54
+ }) : null]
53
55
  })]
54
- })] });
56
+ });
55
57
  }
56
58
  /**
57
59
  * @since 0.3.16-canary.0
58
60
  */
59
61
  function SheetHeader({ className, ...props }) {
60
- return /* @__PURE__ */ jsx("header", {
61
- className: cn("flex shrink-0 flex-col gap-1.5 px-6 pt-6 pb-4 text-center", "sm:text-left", className),
62
+ return /* @__PURE__ */ jsx("div", {
63
+ className: cn("flex shrink-0 flex-col gap-1.5 p-4", className),
62
64
  "data-slot": "sheet-header",
63
65
  ...props
64
66
  });
@@ -67,8 +69,8 @@ function SheetHeader({ className, ...props }) {
67
69
  * @since 0.3.16-canary.0
68
70
  */
69
71
  function SheetBody({ className, ...props }) {
70
- return /* @__PURE__ */ jsx("main", {
71
- className: cn("overflow-auto", "px-6 py-2", className),
72
+ return /* @__PURE__ */ jsx("div", {
73
+ className: cn("min-h-0 flex-1 overflow-y-auto px-4", className),
72
74
  "data-slot": "sheet-body",
73
75
  ...props
74
76
  });
@@ -77,8 +79,8 @@ function SheetBody({ className, ...props }) {
77
79
  * @since 0.3.16-canary.0
78
80
  */
79
81
  function SheetFooter({ className, ...props }) {
80
- return /* @__PURE__ */ jsx("footer", {
81
- className: cn("flex shrink-0 flex-col-reverse gap-2 px-6 pt-4 pb-6", "sm:flex-row sm:justify-end", className),
82
+ return /* @__PURE__ */ jsx("div", {
83
+ className: cn("mt-auto flex shrink-0 flex-col gap-2 p-4", className),
82
84
  "data-slot": "sheet-footer",
83
85
  ...props
84
86
  });
@@ -87,8 +89,8 @@ function SheetFooter({ className, ...props }) {
87
89
  * @since 0.3.16-canary.0
88
90
  */
89
91
  function SheetTitle({ className, ...props }) {
90
- return /* @__PURE__ */ jsx(SheetPrimitive.Title, {
91
- className: cn("text-lg font-semibold text-foreground", className),
92
+ return /* @__PURE__ */ jsx(Dialog.Title, {
93
+ className: cn("font-heading font-medium text-foreground", className),
92
94
  "data-slot": "sheet-title",
93
95
  ...props
94
96
  });
@@ -97,7 +99,7 @@ function SheetTitle({ className, ...props }) {
97
99
  * @since 0.3.16-canary.0
98
100
  */
99
101
  function SheetDescription({ className, ...props }) {
100
- return /* @__PURE__ */ jsx(SheetPrimitive.Description, {
102
+ return /* @__PURE__ */ jsx(Dialog.Description, {
101
103
  className: cn("text-sm text-muted-foreground", className),
102
104
  "data-slot": "sheet-description",
103
105
  ...props
@@ -107,7 +109,7 @@ function SheetDescription({ className, ...props }) {
107
109
  * @since 0.3.16-canary.0
108
110
  */
109
111
  function SheetClose({ className, size, variant, ...props }) {
110
- return /* @__PURE__ */ jsx(SheetPrimitive.Close, {
112
+ return /* @__PURE__ */ jsx(Dialog.Close, {
111
113
  className: buttonVariants({
112
114
  className,
113
115
  size,
@@ -1,8 +1,8 @@
1
- import { Separator } from "./separator.mjs";
2
1
  import { Button } from "./button.mjs";
2
+ import { Separator } from "./separator.mjs";
3
3
  import { Input } from "./input.mjs";
4
- import { SidebarMenuButtonVariants } from "../variants/sidebar.mjs";
5
4
  import { TooltipContent } from "./tooltip.mjs";
5
+ import { SidebarMenuButtonVariants } from "../variants/sidebar.mjs";
6
6
  import { ComponentProps, Dispatch, JSX, SetStateAction } from "react";
7
7
 
8
8
  //#region src/components/sidebar.d.ts
@@ -63,7 +63,6 @@ type SidebarTriggerProps = ComponentProps<typeof Button>;
63
63
  * @since 0.3.16-canary.0
64
64
  */
65
65
  declare function SidebarTrigger({
66
- className,
67
66
  onClick,
68
67
  ...props
69
68
  }: SidebarTriggerProps): JSX.Element;