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

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 +60 -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 +24 -11
  26. package/dist/components/chart.d.mts +8 -3
  27. package/dist/components/chart.mjs +21 -15
  28. package/dist/components/checkbox-cards.mjs +4 -4
  29. package/dist/components/checkbox-group.mjs +3 -4
  30. package/dist/components/checkbox.d.mts +2 -2
  31. package/dist/components/checkbox.mjs +6 -7
  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 +38 -56
  174. package/src/components/chart.tsx +41 -92
  175. package/src/components/checkbox-cards.tsx +10 -30
  176. package/src/components/checkbox-group.tsx +5 -28
  177. package/src/components/checkbox.tsx +5 -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 +36 -59
  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 +50 -0
  226. package/src/css/foundation/motion.css +36 -0
  227. package/src/css/foundation/source.css +3 -0
  228. package/src/css/foundation/tokens.css +71 -0
  229. package/src/css/foundation/variants.css +113 -0
  230. package/src/css/preset.css +5 -214
  231. package/src/css/style.css +1 -1
  232. package/src/hooks/use-animated-value.ts +1 -7
  233. package/src/hooks/use-copy-to-clipboard.ts +1 -6
  234. package/src/hooks/use-is-mobile.ts +0 -2
  235. package/src/hooks/use-media-query.ts +0 -2
  236. package/src/hooks/use-mutation-observer.ts +0 -3
  237. package/src/hooks/use-pagination.ts +0 -2
  238. package/src/index.ts +39 -80
  239. package/src/primitives/checkbox-group.tsx +25 -39
  240. package/src/primitives/input-number.tsx +17 -63
  241. package/src/primitives/input.tsx +8 -24
  242. package/src/primitives/progress-circle.tsx +13 -43
  243. package/src/variants/alert.ts +3 -14
  244. package/src/variants/badge.ts +8 -35
  245. package/src/variants/button-group.ts +5 -18
  246. package/src/variants/button.ts +21 -58
  247. package/src/variants/empty.ts +2 -11
  248. package/src/variants/field.ts +6 -19
  249. package/src/variants/input-group.ts +12 -64
  250. package/src/variants/input-number.ts +65 -0
  251. package/src/variants/item.ts +10 -32
  252. package/src/variants/navigation-menu.ts +1 -8
  253. package/src/variants/progress-circle.ts +1 -2
  254. package/src/variants/scroll-area.ts +3 -9
  255. package/src/variants/separator.ts +6 -7
  256. package/src/variants/sheet.ts +6 -39
  257. package/src/variants/sidebar.ts +7 -27
  258. package/src/variants/tabs.ts +34 -0
  259. package/src/variants/toggle.ts +9 -28
  260. /package/src/css/{amber.css → themes/amber.css} +0 -0
  261. /package/src/css/{blue.css → themes/blue.css} +0 -0
  262. /package/src/css/{cyan.css → themes/cyan.css} +0 -0
  263. /package/src/css/{emerald.css → themes/emerald.css} +0 -0
  264. /package/src/css/{fuchsia.css → themes/fuchsia.css} +0 -0
  265. /package/src/css/{gray.css → themes/gray.css} +0 -0
  266. /package/src/css/{green.css → themes/green.css} +0 -0
  267. /package/src/css/{indigo.css → themes/indigo.css} +0 -0
  268. /package/src/css/{lime.css → themes/lime.css} +0 -0
  269. /package/src/css/{neutral.css → themes/neutral.css} +0 -0
  270. /package/src/css/{orange.css → themes/orange.css} +0 -0
  271. /package/src/css/{pink.css → themes/pink.css} +0 -0
  272. /package/src/css/{purple.css → themes/purple.css} +0 -0
  273. /package/src/css/{red.css → themes/red.css} +0 -0
  274. /package/src/css/{rose.css → themes/rose.css} +0 -0
  275. /package/src/css/{sky.css → themes/sky.css} +0 -0
  276. /package/src/css/{slate.css → themes/slate.css} +0 -0
  277. /package/src/css/{stone.css → themes/stone.css} +0 -0
  278. /package/src/css/{teal.css → themes/teal.css} +0 -0
  279. /package/src/css/{violet.css → themes/violet.css} +0 -0
  280. /package/src/css/{yellow.css → themes/yellow.css} +0 -0
  281. /package/src/css/{zinc.css → themes/zinc.css} +0 -0
@@ -4,12 +4,15 @@ import { ComponentProps, JSX } from "react";
4
4
  /**
5
5
  * @since 0.3.16-canary.0
6
6
  */
7
- type CardProps = ComponentProps<"div">;
7
+ type CardProps = ComponentProps<"div"> & {
8
+ size?: "default" | "sm";
9
+ };
8
10
  /**
9
11
  * @since 0.3.16-canary.0
10
12
  */
11
13
  declare function Card({
12
14
  className,
15
+ size,
13
16
  ...props
14
17
  }: CardProps): JSX.Element;
15
18
  /**
@@ -31,7 +34,6 @@ type CardTitleProps = ComponentProps<"div">;
31
34
  * @since 0.3.16-canary.0
32
35
  */
33
36
  declare function CardTitle({
34
- children,
35
37
  className,
36
38
  ...props
37
39
  }: CardTitleProps): JSX.Element;
@@ -4,9 +4,10 @@ import { jsx } from "react/jsx-runtime";
4
4
  /**
5
5
  * @since 0.3.16-canary.0
6
6
  */
7
- function Card({ className, ...props }) {
7
+ function Card({ className, size = "default", ...props }) {
8
8
  return /* @__PURE__ */ jsx("div", {
9
- className: cn("flex flex-col gap-6 overflow-auto py-6", "rounded-xl border", "bg-card text-card-foreground shadow-sm", className),
9
+ className: cn("group/card flex flex-col gap-(--card-spacing) overflow-hidden rounded-xl bg-card py-(--card-spacing) text-sm text-card-foreground shadow-xs ring-1 ring-foreground/10 [--card-spacing:--spacing(6)] has-[>img:first-child]:pt-0 data-[size=sm]:[--card-spacing:--spacing(4)] *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl", className),
10
+ "data-size": size,
10
11
  "data-slot": "card",
11
12
  ...props
12
13
  });
@@ -16,7 +17,7 @@ function Card({ className, ...props }) {
16
17
  */
17
18
  function CardHeader({ className, ...props }) {
18
19
  return /* @__PURE__ */ jsx("div", {
19
- className: cn("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5", "px-6", "has-[data-slot=card-action]:grid-cols-[1fr_auto]", "[.border-b]:pb-6", className),
20
+ className: cn("group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-(--card-spacing) has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-(--card-spacing)", className),
20
21
  "data-slot": "card-header",
21
22
  ...props
22
23
  });
@@ -24,12 +25,11 @@ function CardHeader({ className, ...props }) {
24
25
  /**
25
26
  * @since 0.3.16-canary.0
26
27
  */
27
- function CardTitle({ children, className, ...props }) {
28
+ function CardTitle({ className, ...props }) {
28
29
  return /* @__PURE__ */ jsx("div", {
29
- className: cn("leading-none font-semibold", className),
30
+ className: cn("font-heading text-base leading-normal font-medium group-data-[size=sm]/card:text-sm", className),
30
31
  "data-slot": "card-title",
31
- ...props,
32
- children
32
+ ...props
33
33
  });
34
34
  }
35
35
  /**
@@ -47,7 +47,7 @@ function CardDescription({ className, ...props }) {
47
47
  */
48
48
  function CardContent({ className, ...props }) {
49
49
  return /* @__PURE__ */ jsx("div", {
50
- className: cn("px-6", className),
50
+ className: cn("px-(--card-spacing)", className),
51
51
  "data-slot": "card-content",
52
52
  ...props
53
53
  });
@@ -57,7 +57,7 @@ function CardContent({ className, ...props }) {
57
57
  */
58
58
  function CardFooter({ className, ...props }) {
59
59
  return /* @__PURE__ */ jsx("div", {
60
- className: cn("flex items-center", "px-6", "[.border-t]:pt-6", className),
60
+ className: cn("flex items-center rounded-b-xl px-(--card-spacing) [.border-t]:pt-(--card-spacing)", className),
61
61
  "data-slot": "card-footer",
62
62
  ...props
63
63
  });
@@ -1,13 +1,13 @@
1
1
  import { Button } from "./button.mjs";
2
2
  import { ComponentProps, JSX } from "react";
3
- import { Scope } from "@radix-ui/react-context";
4
3
  import useEmblaCarousel, { UseEmblaCarouselType } from "embla-carousel-react";
4
+ import { Context } from "radix-ui/internal";
5
5
 
6
6
  //#region src/components/carousel.d.ts
7
7
  type ScopedProps<P> = P & {
8
- __scopeCarousel?: Scope;
8
+ __scopeCarousel?: Context.Scope;
9
9
  };
10
- declare const createCarouselScope: import("@radix-ui/react-context").CreateScope;
10
+ declare const createCarouselScope: Context.CreateScope;
11
11
  /**
12
12
  * @since 0.3.16-canary.0
13
13
  */
@@ -43,11 +43,23 @@ declare function Carousel({
43
43
  */
44
44
  interface CarouselContentProps extends ComponentProps<"div"> {
45
45
  classNames?: {
46
- content?: string;
46
+ /** Class applied to the flex track that holds the slides. */content?: string; /** Class applied to the scroll viewport (the `overflow-hidden` element). */
47
47
  wrapper?: string;
48
48
  };
49
49
  }
50
50
  /**
51
+ * The scroll viewport requires `overflow-hidden` (Embla hides off-screen slides
52
+ * with it), so any ring/shadow on slide content that sits OUTSIDE the slide's
53
+ * border-box is clipped where the slide meets the viewport edge. This is
54
+ * inherent to every Embla-based carousel — the active slide is flush with both
55
+ * scroll-axis edges, so left/right rings (horizontal) cannot show without
56
+ * revealing the neighbouring slide.
57
+ *
58
+ * To give content shadows/rings breathing room on the CROSS axis (top/bottom
59
+ * for horizontal carousels), add a negative-margin + matching padding via
60
+ * `classNames.wrapper`, e.g. `classNames={{ wrapper: "-my-2 py-2" }}`. This
61
+ * shifts no layout but lets the clip happen `n`px further out.
62
+ *
51
63
  * @since 0.3.16-canary.0
52
64
  */
53
65
  declare function CarouselContent({
@@ -1,14 +1,13 @@
1
- "use client";
2
1
  import { cn } from "../lib/utils.mjs";
3
2
  import { Button } from "./button.mjs";
4
- import { ArrowLeftIcon, ArrowRightIcon } from "lucide-react";
3
+ import { ChevronLeftIcon, ChevronRightIcon } from "lucide-react";
5
4
  import { jsx, jsxs } from "react/jsx-runtime";
6
5
  import { useCallback, useEffect, useState } from "react";
7
- import { createContextScope } from "@radix-ui/react-context";
8
6
  import useEmblaCarousel from "embla-carousel-react";
7
+ import { Context } from "radix-ui/internal";
9
8
  //#region src/components/carousel.tsx
10
9
  const CAROUSEL_NAME = "Carousel";
11
- const [createCarouselContext, createCarouselScope] = createContextScope(CAROUSEL_NAME);
10
+ const [createCarouselContext, createCarouselScope] = Context.createContextScope(CAROUSEL_NAME);
12
11
  const [CarouselContextProvider, useCarouselContext] = createCarouselContext(CAROUSEL_NAME);
13
12
  /**
14
13
  * @since 0.3.16-canary.0
@@ -66,8 +65,10 @@ function Carousel({ __scopeCarousel, children, className, opts, orientation, plu
66
65
  scrollNext,
67
66
  scrollPrev: scrollPrevious,
68
67
  children: /* @__PURE__ */ jsx("div", {
68
+ "aria-roledescription": "carousel",
69
69
  className: cn("relative", className),
70
70
  "data-slot": "carousel",
71
+ role: "region",
71
72
  onKeyDownCapture: handleKeyDown,
72
73
  ...props,
73
74
  children
@@ -76,6 +77,18 @@ function Carousel({ __scopeCarousel, children, className, opts, orientation, plu
76
77
  }
77
78
  const CAROUSEL_CONTENT_NAME = "CarouselContent";
78
79
  /**
80
+ * The scroll viewport requires `overflow-hidden` (Embla hides off-screen slides
81
+ * with it), so any ring/shadow on slide content that sits OUTSIDE the slide's
82
+ * border-box is clipped where the slide meets the viewport edge. This is
83
+ * inherent to every Embla-based carousel — the active slide is flush with both
84
+ * scroll-axis edges, so left/right rings (horizontal) cannot show without
85
+ * revealing the neighbouring slide.
86
+ *
87
+ * To give content shadows/rings breathing room on the CROSS axis (top/bottom
88
+ * for horizontal carousels), add a negative-margin + matching padding via
89
+ * `classNames.wrapper`, e.g. `classNames={{ wrapper: "-my-2 py-2" }}`. This
90
+ * shifts no layout but lets the clip happen `n`px further out.
91
+ *
79
92
  * @since 0.3.16-canary.0
80
93
  */
81
94
  function CarouselContent({ __scopeCarousel, className, classNames, ...props }) {
@@ -85,7 +98,7 @@ function CarouselContent({ __scopeCarousel, className, classNames, ...props }) {
85
98
  className: cn("overflow-hidden", classNames?.wrapper),
86
99
  "data-slot": "carousel-content",
87
100
  children: /* @__PURE__ */ jsx("div", {
88
- className: cn("flex", orientation === "horizontal" ? "-ml-4" : "-mt-4 flex-col", classNames?.content, className),
101
+ className: cn("flex", orientation === "horizontal" ? "-ml-4" : "-mt-4 h-full flex-col", classNames?.content, className),
89
102
  ...props
90
103
  })
91
104
  });
@@ -108,18 +121,18 @@ const CAROUSEL_PREVIOUS_NAME = "CarouselPrevious";
108
121
  /**
109
122
  * @since 0.3.16-canary.0
110
123
  */
111
- function CarouselPrevious({ __scopeCarousel, className, size = "icon", variant = "outline", ...props }) {
124
+ function CarouselPrevious({ __scopeCarousel, className, size = "icon-sm", variant = "outline", ...props }) {
112
125
  const { canScrollPrev, orientation, scrollPrev } = useCarouselContext(CAROUSEL_PREVIOUS_NAME, __scopeCarousel);
113
126
  return /* @__PURE__ */ jsxs(Button, {
114
127
  "aria-label": "Previous slide",
115
- className: cn("absolute", "size-8", "shadow-none", orientation === "horizontal" ? "top-1/2 -left-12 -translate-y-1/2" : "-top-12 left-1/2 -translate-x-1/2 rotate-90", className),
128
+ className: cn("absolute touch-manipulation rounded-full", orientation === "horizontal" ? "top-1/2 -left-12 -translate-y-1/2 active:not-aria-[haspopup]:translate-y-[calc(-50%+1px)]" : "-top-12 left-1/2 -translate-x-1/2 rotate-90", className),
116
129
  "data-slot": "carousel-previous",
117
130
  disabled: !canScrollPrev,
118
131
  size,
119
132
  variant,
120
133
  onClick: scrollPrev,
121
134
  ...props,
122
- children: [/* @__PURE__ */ jsx(ArrowLeftIcon, {}), /* @__PURE__ */ jsx("span", {
135
+ children: [/* @__PURE__ */ jsx(ChevronLeftIcon, { className: "rtl:rotate-180" }), /* @__PURE__ */ jsx("span", {
123
136
  className: "sr-only",
124
137
  children: "Previous slide"
125
138
  })]
@@ -129,18 +142,18 @@ const CAROUSEL_NEXT_NAME = "CarouselNext";
129
142
  /**
130
143
  * @since 0.3.16-canary.0
131
144
  */
132
- function CarouselNext({ __scopeCarousel, className, size = "icon", variant = "outline", ...props }) {
145
+ function CarouselNext({ __scopeCarousel, className, size = "icon-sm", variant = "outline", ...props }) {
133
146
  const { canScrollNext, orientation, scrollNext } = useCarouselContext(CAROUSEL_NEXT_NAME, __scopeCarousel);
134
147
  return /* @__PURE__ */ jsxs(Button, {
135
148
  "aria-label": "Next slide",
136
- className: cn("absolute", "size-8", "shadow-none", orientation === "horizontal" ? "top-1/2 -right-12 -translate-y-1/2" : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90", className),
149
+ className: cn("absolute touch-manipulation rounded-full", orientation === "horizontal" ? "top-1/2 -right-12 -translate-y-1/2 active:not-aria-[haspopup]:translate-y-[calc(-50%+1px)]" : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90", className),
137
150
  "data-slot": "carousel-next",
138
151
  disabled: !canScrollNext,
139
152
  size,
140
153
  variant,
141
154
  onClick: scrollNext,
142
155
  ...props,
143
- children: [/* @__PURE__ */ jsx(ArrowRightIcon, {}), /* @__PURE__ */ jsx("span", {
156
+ children: [/* @__PURE__ */ jsx(ChevronRightIcon, { className: "rtl:rotate-180" }), /* @__PURE__ */ jsx("span", {
144
157
  className: "sr-only",
145
158
  children: "Next slide"
146
159
  })]
@@ -1,5 +1,5 @@
1
1
  import { ComponentProps, ComponentType, JSX, ReactNode } from "react";
2
- import { Scope } from "@radix-ui/react-context";
2
+ import { Context } from "radix-ui/internal";
3
3
  import * as RechartsPrimitive from "recharts";
4
4
  import { TooltipContentProps, TooltipProps } from "recharts";
5
5
  import { NameType, Payload, ValueType } from "recharts/types/component/DefaultTooltipContent";
@@ -25,15 +25,19 @@ type ChartConfig = Record<string, {
25
25
  theme?: never;
26
26
  })>;
27
27
  type ScopedProps<P> = P & {
28
- __scopeChart?: Scope;
28
+ __scopeChart?: Context.Scope;
29
29
  };
30
- declare const createChartScope: import("@radix-ui/react-context").CreateScope;
30
+ declare const createChartScope: Context.CreateScope;
31
31
  /**
32
32
  * @since 0.3.16-canary.0
33
33
  */
34
34
  interface ChartContainerProps extends ComponentProps<"div"> {
35
35
  children: ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>["children"];
36
36
  config: ChartConfig;
37
+ initialDimension?: {
38
+ height: number;
39
+ width: number;
40
+ };
37
41
  }
38
42
  /**
39
43
  * @since 0.3.16-canary.0
@@ -44,6 +48,7 @@ declare function ChartContainer({
44
48
  className,
45
49
  config,
46
50
  id,
51
+ initialDimension,
47
52
  ...props
48
53
  }: ScopedProps<ChartContainerProps>): JSX.Element;
49
54
  /**
@@ -1,35 +1,41 @@
1
- "use client";
2
1
  import { cn } from "../lib/utils.mjs";
3
2
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
4
3
  import { useId, useMemo } from "react";
5
- import { createContextScope } from "@radix-ui/react-context";
4
+ import { Context } from "radix-ui/internal";
6
5
  import * as RechartsPrimitive from "recharts";
7
6
  //#region src/components/chart.tsx
8
7
  const THEMES = {
9
8
  dark: ".dark",
10
9
  light: ""
11
10
  };
11
+ const INITIAL_DIMENSION = {
12
+ height: 200,
13
+ width: 320
14
+ };
12
15
  const CHART_PROVIDER_NAME = "ChartProvider";
13
- const [createChartContext, createChartScope] = createContextScope(CHART_PROVIDER_NAME);
16
+ const [createChartContext, createChartScope] = Context.createContextScope(CHART_PROVIDER_NAME);
14
17
  const [ChartContextProvider, useChartContext] = createChartContext(CHART_PROVIDER_NAME);
15
18
  /**
16
19
  * @since 0.3.16-canary.0
17
20
  */
18
- function ChartContainer({ __scopeChart, children, className, config, id, ...props }) {
21
+ function ChartContainer({ __scopeChart, children, className, config, id, initialDimension = INITIAL_DIMENSION, ...props }) {
19
22
  const uniqueId = useId();
20
- const chartId = `chart-${id ?? uniqueId}`;
23
+ const chartId = `chart-${id ?? uniqueId.replace(/:/g, "")}`;
21
24
  return /* @__PURE__ */ jsx(ChartContextProvider, {
22
25
  config,
23
26
  scope: __scopeChart,
24
27
  children: /* @__PURE__ */ jsxs("div", {
25
- className: cn("flex aspect-video justify-center text-xs", "[&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground", "[&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50", "[&_.recharts-curve.recharts-tooltip-cursor]:stroke-border", "[&_.recharts-dot[stroke='#fff']]:stroke-transparent", "[&_.recharts-layer]:outline-hidden", "[&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border", "[&_.recharts-radial-bar-background-sector]:fill-muted", "[&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted", "[&_.recharts-reference-line_[stroke='#ccc']]:stroke-border", "[&_.recharts-sector]:outline-hidden", "[&_.recharts-sector[stroke='#fff']]:stroke-transparent", "[&_.recharts-surface]:outline-hidden", className),
28
+ className: cn("flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden", className),
26
29
  "data-chart": chartId,
27
30
  "data-slot": "chart",
28
31
  ...props,
29
32
  children: [/* @__PURE__ */ jsx(ChartStyle, {
30
33
  config,
31
34
  id: chartId
32
- }), /* @__PURE__ */ jsx(RechartsPrimitive.ResponsiveContainer, { children })]
35
+ }), /* @__PURE__ */ jsx(RechartsPrimitive.ResponsiveContainer, {
36
+ initialDimension,
37
+ children
38
+ })]
33
39
  })
34
40
  });
35
41
  }
@@ -79,7 +85,7 @@ function ChartTooltipContent({ __scopeChart, active, className, color, formatter
79
85
  if (!active || payload.length === 0) return null;
80
86
  const nestLabel = payload.length === 1 && indicator !== "dot";
81
87
  return /* @__PURE__ */ jsxs("div", {
82
- className: cn("grid min-w-[8rem] items-start gap-1.5 px-2.5 py-1.5", "rounded-lg border border-border/50", "bg-background text-xs shadow-xl", className),
88
+ className: cn("grid min-w-32 items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl", className),
83
89
  children: [nestLabel ? null : tooltipLabel, /* @__PURE__ */ jsx("div", {
84
90
  className: "grid gap-1.5",
85
91
  children: payload.map((item, index) => {
@@ -87,12 +93,12 @@ function ChartTooltipContent({ __scopeChart, active, className, color, formatter
87
93
  const itemConfig = getPayloadConfigFromPayload(config, item, key);
88
94
  const indicatorColor = color ?? (isRecord(item.payload) && "fill" in item.payload && typeof item.payload.fill === "string" ? item.payload.fill : void 0) ?? item.color;
89
95
  return /* @__PURE__ */ jsx("div", {
90
- className: cn("flex w-full flex-wrap items-stretch gap-2", "[&>svg]:size-2.5 [&>svg]:text-muted-foreground", indicator === "dot" && "items-center"),
96
+ className: cn("flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground", indicator === "dot" && "items-center"),
91
97
  children: formatter && item.value !== void 0 && item.name ? formatter(item.value, item.name, item, index, [item]) : /* @__PURE__ */ jsxs(Fragment, { children: [itemConfig?.icon ? /* @__PURE__ */ jsx(itemConfig.icon, {}) : !hideIndicator && /* @__PURE__ */ jsx("div", {
92
- className: cn("shrink-0", "rounded-xs border-(--color-border)", "bg-(--color-bg)", {
98
+ className: cn("shrink-0 rounded-xs border-(--color-border) bg-(--color-bg)", {
93
99
  "h-2.5 w-2.5": indicator === "dot",
94
100
  "my-0.5": nestLabel && indicator === "dashed",
95
- "border-1.5 w-0 border-dashed bg-transparent": indicator === "dashed",
101
+ "w-0 border-[1.5px] border-dashed bg-transparent": indicator === "dashed",
96
102
  "w-1": indicator === "line"
97
103
  }),
98
104
  style: {
@@ -100,7 +106,7 @@ function ChartTooltipContent({ __scopeChart, active, className, color, formatter
100
106
  "--color-border": indicatorColor
101
107
  }
102
108
  }), /* @__PURE__ */ jsxs("div", {
103
- className: cn("flex flex-1 justify-between", "leading-none", nestLabel ? "items-end" : "items-center"),
109
+ className: cn("flex flex-1 justify-between leading-none", nestLabel ? "items-end" : "items-center"),
104
110
  children: [/* @__PURE__ */ jsxs("div", {
105
111
  className: "grid gap-1.5",
106
112
  children: [nestLabel ? tooltipLabel : null, /* @__PURE__ */ jsx("span", {
@@ -108,7 +114,7 @@ function ChartTooltipContent({ __scopeChart, active, className, color, formatter
108
114
  children: itemConfig?.label ?? item.name
109
115
  })]
110
116
  }), item.value != null && /* @__PURE__ */ jsx("span", {
111
- className: cn("font-mono font-medium text-foreground", "tabular-nums"),
117
+ className: "font-mono font-medium text-foreground tabular-nums",
112
118
  children: typeof item.value === "number" ? item.value.toLocaleString() : safeToString(item.value)
113
119
  })]
114
120
  })] })
@@ -136,9 +142,9 @@ function ChartLegendContent({ __scopeChart, className, hideIcon = false, nameKey
136
142
  else if (item.dataKey != null) key = safeToString(item.dataKey);
137
143
  const itemConfig = getPayloadConfigFromPayload(config, item, key);
138
144
  return /* @__PURE__ */ jsxs("div", {
139
- className: cn("flex items-center gap-1.5", "[&>svg]:size-3 [&>svg]:text-muted-foreground"),
145
+ className: "flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground",
140
146
  children: [itemConfig?.icon && !hideIcon ? /* @__PURE__ */ jsx(itemConfig.icon, {}) : /* @__PURE__ */ jsx("div", {
141
- className: cn("size-2 shrink-0", "rounded-md"),
147
+ className: "h-2 w-2 shrink-0 rounded-xs",
142
148
  style: { backgroundColor: item.color }
143
149
  }), itemConfig?.label]
144
150
  }, nameKey ? safeToString(itemConfig?.color ?? "") : safeToString(item.value ?? ""));
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { cn } from "../lib/utils.mjs";
3
2
  import { Label } from "./label.mjs";
4
3
  import { CheckboxGroup, CheckboxGroupIndicator, CheckboxGroupItem } from "../primitives/checkbox-group.mjs";
@@ -19,15 +18,16 @@ function CheckboxCards(props) {
19
18
  */
20
19
  function CheckboxCardsItem({ checkboxClassName, children, className, ...props }) {
21
20
  return /* @__PURE__ */ jsxs(Label, {
22
- className: cn("flex items-start gap-3", "p-3", "rounded-lg border border-input", "transition", "hover:not-has-disabled:not-has-aria-checked:bg-secondary", "has-focus-visible:border-ring", "has-disabled:opacity-50", "has-aria-checked:border-primary has-aria-checked:bg-primary/10", className),
21
+ className: cn("flex items-start gap-3 rounded-md border border-input p-3 transition has-focus-visible:border-ring has-disabled:opacity-50 has-data-checked:border-primary/30 has-data-checked:bg-primary/5", className),
23
22
  "data-slot": "checkbox-card",
24
23
  children: [/* @__PURE__ */ jsx(CheckboxGroupItem, {
25
- className: cn("peer flex size-4 shrink-0", "rounded-sm border border-input shadow-xs outline-hidden", "text-primary-foreground", "transition", "focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50", "aria-checked:border-primary aria-checked:bg-primary", "focus-visible:aria-checked:ring-primary/20", "dark:bg-input/30", "dark:focus-visible:aria-checked:ring-primary/40", checkboxClassName),
24
+ className: cn("peer relative flex size-4 shrink-0 items-center justify-center rounded-sm border border-input shadow-xs transition-shadow 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", checkboxClassName),
26
25
  "data-slot": "checkbox-card-item",
27
26
  ...props,
28
27
  children: /* @__PURE__ */ jsx(CheckboxGroupIndicator, {
28
+ className: "grid place-content-center text-current transition-none [&>svg]:size-3.5",
29
29
  "data-slot": "checkbox-card-indicator",
30
- children: /* @__PURE__ */ jsx(CheckIcon, { className: "size-3.5" })
30
+ children: /* @__PURE__ */ jsx(CheckIcon, {})
31
31
  })
32
32
  }), children]
33
33
  });
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { cn } from "../lib/utils.mjs";
3
2
  import { CheckboxGroup as CheckboxGroup$1, CheckboxGroupIndicator, CheckboxGroupItem as CheckboxGroupItem$1 } from "../primitives/checkbox-group.mjs";
4
3
  import { CheckIcon } from "lucide-react";
@@ -19,13 +18,13 @@ function CheckboxGroup({ className, ...props }) {
19
18
  */
20
19
  function CheckboxGroupItem({ className, ...props }) {
21
20
  return /* @__PURE__ */ jsx(CheckboxGroupItem$1, {
22
- 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", "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", "focus-visible:aria-checked: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:focus-visible:aria-checked:ring-primary/40", "dark:aria-invalid:ring-destructive/40", className),
21
+ className: cn("peer relative flex size-4 shrink-0 items-center justify-center rounded-sm border border-input shadow-xs transition-shadow 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", className),
23
22
  "data-slot": "checkbox-group-item",
24
23
  ...props,
25
24
  children: /* @__PURE__ */ jsx(CheckboxGroupIndicator, {
26
- className: cn("flex items-center justify-center text-current", "transition-none"),
25
+ className: "grid place-content-center text-current transition-none [&>svg]:size-3.5",
27
26
  "data-slot": "checkbox-group-indicator",
28
- children: /* @__PURE__ */ jsx(CheckIcon, { className: "size-3.5" })
27
+ children: /* @__PURE__ */ jsx(CheckIcon, {})
29
28
  })
30
29
  });
31
30
  }
@@ -1,11 +1,11 @@
1
+ import { Checkbox as Checkbox$1 } from "radix-ui";
1
2
  import { ComponentProps, JSX } from "react";
2
- import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
3
3
 
4
4
  //#region src/components/checkbox.d.ts
5
5
  /**
6
6
  * @since 0.3.16-canary.0
7
7
  */
8
- type CheckboxProps = ComponentProps<typeof CheckboxPrimitive.Root>;
8
+ type CheckboxProps = ComponentProps<typeof Checkbox$1.Root>;
9
9
  /**
10
10
  * @since 0.3.16-canary.0
11
11
  */
@@ -1,21 +1,20 @@
1
- "use client";
2
1
  import { cn } from "../lib/utils.mjs";
3
2
  import { CheckIcon } from "lucide-react";
3
+ import { Checkbox as Checkbox$1 } from "radix-ui";
4
4
  import { jsx } from "react/jsx-runtime";
5
- import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
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 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", 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__ */ jsx(Checkbox$1.Indicator, {
15
+ className: "grid place-content-center text-current transition-none [&>svg]:size-3.5",
17
16
  "data-slot": "checkbox-indicator",
18
- children: /* @__PURE__ */ jsx(CheckIcon, { className: "size-3.5" })
17
+ children: /* @__PURE__ */ jsx(CheckIcon, {})
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;