@codefast/ui 0.3.16-canary.2 → 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 (289) hide show
  1. package/CHANGELOG.md +81 -0
  2. package/README.md +28 -17
  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 +14 -14
  8. package/dist/components/alert.mjs +17 -28
  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.d.mts +3 -15
  14. package/dist/components/badge.mjs +6 -48
  15. package/dist/components/breadcrumb.d.mts +1 -0
  16. package/dist/components/breadcrumb.mjs +11 -10
  17. package/dist/components/button-group.d.mts +3 -13
  18. package/dist/components/button-group.mjs +9 -31
  19. package/dist/components/button.d.mts +3 -26
  20. package/dist/components/button.mjs +9 -79
  21. package/dist/components/calendar.d.mts +6 -2
  22. package/dist/components/calendar.mjs +41 -44
  23. package/dist/components/card.d.mts +4 -2
  24. package/dist/components/card.mjs +9 -9
  25. package/dist/components/carousel.d.mts +16 -5
  26. package/dist/components/carousel.mjs +24 -11
  27. package/dist/components/chart.d.mts +9 -6
  28. package/dist/components/chart.mjs +21 -15
  29. package/dist/components/checkbox-cards.mjs +4 -4
  30. package/dist/components/checkbox-group.mjs +3 -4
  31. package/dist/components/checkbox.d.mts +2 -2
  32. package/dist/components/checkbox.mjs +6 -7
  33. package/dist/components/collapsible.d.mts +4 -4
  34. package/dist/components/collapsible.mjs +4 -5
  35. package/dist/components/command.d.mts +11 -1
  36. package/dist/components/command.mjs +35 -32
  37. package/dist/components/context-menu.d.mts +22 -15
  38. package/dist/components/context-menu.mjs +44 -39
  39. package/dist/components/dialog.d.mts +19 -23
  40. package/dist/components/dialog.mjs +48 -47
  41. package/dist/components/direction.d.mts +24 -0
  42. package/dist/components/direction.mjs +18 -0
  43. package/dist/components/drawer.d.mts +3 -21
  44. package/dist/components/drawer.mjs +19 -27
  45. package/dist/components/dropdown-menu.d.mts +22 -15
  46. package/dist/components/dropdown-menu.mjs +41 -37
  47. package/dist/components/empty.d.mts +3 -13
  48. package/dist/components/empty.mjs +8 -23
  49. package/dist/components/field.d.mts +3 -14
  50. package/dist/components/field.mjs +14 -44
  51. package/dist/components/form.d.mts +7 -10
  52. package/dist/components/form.mjs +6 -7
  53. package/dist/components/hover-card.d.mts +5 -5
  54. package/dist/components/hover-card.mjs +14 -12
  55. package/dist/components/input-group.d.mts +4 -31
  56. package/dist/components/input-group.mjs +14 -96
  57. package/dist/components/input-number.d.mts +3 -1
  58. package/dist/components/input-number.mjs +50 -28
  59. package/dist/components/input-otp.mjs +9 -7
  60. package/dist/components/input-password.mjs +1 -4
  61. package/dist/components/input-search.mjs +3 -5
  62. package/dist/components/input.mjs +1 -2
  63. package/dist/components/item.d.mts +4 -29
  64. package/dist/components/item.mjs +12 -65
  65. package/dist/components/kbd.mjs +1 -1
  66. package/dist/components/label.d.mts +2 -2
  67. package/dist/components/label.mjs +3 -4
  68. package/dist/components/menubar.d.mts +22 -16
  69. package/dist/components/menubar.mjs +54 -47
  70. package/dist/components/native-select.d.mts +5 -1
  71. package/dist/components/native-select.mjs +9 -6
  72. package/dist/components/navigation-menu.d.mts +30 -13
  73. package/dist/components/navigation-menu.mjs +35 -32
  74. package/dist/components/pagination.d.mts +7 -1
  75. package/dist/components/pagination.mjs +27 -12
  76. package/dist/components/popover.d.mts +40 -7
  77. package/dist/components/popover.mjs +46 -14
  78. package/dist/components/progress-circle.d.mts +3 -47
  79. package/dist/components/progress-circle.mjs +2 -48
  80. package/dist/components/progress.d.mts +2 -2
  81. package/dist/components/progress.mjs +5 -6
  82. package/dist/components/radio-cards.d.mts +3 -3
  83. package/dist/components/radio-cards.mjs +11 -11
  84. package/dist/components/radio-group.d.mts +3 -3
  85. package/dist/components/radio-group.mjs +9 -9
  86. package/dist/components/radio.mjs +2 -3
  87. package/dist/components/resizable.mjs +3 -8
  88. package/dist/components/scroll-area.d.mts +8 -24
  89. package/dist/components/scroll-area.mjs +16 -70
  90. package/dist/components/select.d.mts +14 -14
  91. package/dist/components/select.mjs +47 -47
  92. package/dist/components/separator.d.mts +4 -19
  93. package/dist/components/separator.mjs +6 -27
  94. package/dist/components/sheet.d.mts +18 -31
  95. package/dist/components/sheet.mjs +46 -87
  96. package/dist/components/sidebar.d.mts +3 -19
  97. package/dist/components/sidebar.mjs +48 -84
  98. package/dist/components/skeleton.mjs +1 -1
  99. package/dist/components/slider.d.mts +2 -2
  100. package/dist/components/slider.mjs +9 -11
  101. package/dist/components/sonner.mjs +11 -3
  102. package/dist/components/spinner.mjs +6 -7
  103. package/dist/components/switch.d.mts +5 -2
  104. package/dist/components/switch.mjs +7 -7
  105. package/dist/components/table.mjs +10 -10
  106. package/dist/components/tabs.d.mts +8 -5
  107. package/dist/components/tabs.mjs +18 -12
  108. package/dist/components/textarea.mjs +1 -1
  109. package/dist/components/toggle-group.d.mts +11 -7
  110. package/dist/components/toggle-group.mjs +20 -21
  111. package/dist/components/toggle.d.mts +4 -24
  112. package/dist/components/toggle.mjs +6 -45
  113. package/dist/components/tooltip.d.mts +7 -6
  114. package/dist/components/tooltip.mjs +19 -17
  115. package/dist/hooks/use-animated-value.mjs +0 -1
  116. package/dist/hooks/use-copy-to-clipboard.mjs +0 -1
  117. package/dist/hooks/use-is-mobile.mjs +0 -1
  118. package/dist/hooks/use-media-query.mjs +0 -1
  119. package/dist/hooks/use-mutation-observer.mjs +0 -1
  120. package/dist/hooks/use-pagination.mjs +0 -1
  121. package/dist/index.d.mts +38 -21
  122. package/dist/index.mjs +40 -23
  123. package/dist/lib/utils.d.mts +1 -12
  124. package/dist/lib/utils.mjs +1 -9
  125. package/dist/primitives/checkbox-group.d.mts +9 -11
  126. package/dist/primitives/checkbox-group.mjs +14 -19
  127. package/dist/primitives/input-number.d.mts +3 -4
  128. package/dist/primitives/input-number.mjs +3 -5
  129. package/dist/primitives/input.d.mts +4 -5
  130. package/dist/primitives/input.mjs +2 -3
  131. package/dist/primitives/progress-circle.d.mts +3 -4
  132. package/dist/primitives/progress-circle.mjs +2 -3
  133. package/dist/variants/alert.d.mts +18 -0
  134. package/dist/variants/alert.mjs +15 -0
  135. package/dist/variants/badge.d.mts +22 -0
  136. package/dist/variants/badge.mjs +19 -0
  137. package/dist/variants/button-group.d.mts +18 -0
  138. package/dist/variants/button-group.mjs +15 -0
  139. package/dist/variants/button.d.mts +32 -0
  140. package/dist/variants/button.mjs +34 -0
  141. package/dist/variants/empty.d.mts +18 -0
  142. package/dist/variants/empty.mjs +15 -0
  143. package/dist/variants/field.d.mts +19 -0
  144. package/dist/variants/field.mjs +16 -0
  145. package/dist/variants/input-group.d.mts +43 -0
  146. package/dist/variants/input-group.mjs +34 -0
  147. package/dist/variants/input-number.d.mts +45 -0
  148. package/dist/variants/input-number.mjs +40 -0
  149. package/dist/variants/item.d.mts +38 -0
  150. package/dist/variants/item.mjs +38 -0
  151. package/dist/variants/navigation-menu.d.mts +13 -0
  152. package/dist/variants/navigation-menu.mjs +8 -0
  153. package/dist/variants/progress-circle.d.mts +52 -0
  154. package/dist/variants/progress-circle.mjs +45 -0
  155. package/dist/variants/scroll-area.d.mts +24 -0
  156. package/dist/variants/scroll-area.mjs +58 -0
  157. package/dist/variants/separator.d.mts +23 -0
  158. package/dist/variants/separator.mjs +25 -0
  159. package/dist/variants/sheet.d.mts +20 -0
  160. package/dist/variants/sheet.mjs +17 -0
  161. package/dist/variants/sidebar.d.mts +23 -0
  162. package/dist/variants/sidebar.mjs +25 -0
  163. package/dist/variants/tabs.d.mts +18 -0
  164. package/dist/variants/tabs.mjs +15 -0
  165. package/dist/variants/toggle.d.mts +23 -0
  166. package/dist/variants/toggle.mjs +25 -0
  167. package/package.json +186 -55
  168. package/src/components/accordion.tsx +114 -0
  169. package/src/components/alert-dialog.tsx +298 -0
  170. package/src/components/alert.tsx +94 -0
  171. package/src/components/aspect-ratio.tsx +25 -0
  172. package/src/components/avatar.tsx +171 -0
  173. package/src/components/badge.tsx +35 -0
  174. package/src/components/breadcrumb.tsx +191 -0
  175. package/src/components/button-group.tsx +97 -0
  176. package/src/components/button.tsx +55 -0
  177. package/src/components/calendar.tsx +222 -0
  178. package/src/components/card.tsx +169 -0
  179. package/src/components/carousel.tsx +349 -0
  180. package/src/components/chart.tsx +536 -0
  181. package/src/components/checkbox-cards.tsx +72 -0
  182. package/src/components/checkbox-group.tsx +60 -0
  183. package/src/components/checkbox.tsx +44 -0
  184. package/src/components/collapsible.tsx +57 -0
  185. package/src/components/command.tsx +298 -0
  186. package/src/components/context-menu.tsx +410 -0
  187. package/src/components/dialog.tsx +243 -0
  188. package/src/components/direction.tsx +32 -0
  189. package/src/components/drawer.tsx +209 -0
  190. package/src/components/dropdown-menu.tsx +419 -0
  191. package/src/components/empty.tsx +155 -0
  192. package/src/components/field.tsx +329 -0
  193. package/src/components/form.tsx +258 -0
  194. package/src/components/hover-card.tsx +93 -0
  195. package/src/components/input-group.tsx +185 -0
  196. package/src/components/input-number.tsx +141 -0
  197. package/src/components/input-otp.tsx +132 -0
  198. package/src/components/input-password.tsx +50 -0
  199. package/src/components/input-search.tsx +81 -0
  200. package/src/components/input.tsx +36 -0
  201. package/src/components/item.tsx +266 -0
  202. package/src/components/kbd.tsx +47 -0
  203. package/src/components/label.tsx +36 -0
  204. package/src/components/menubar.tsx +440 -0
  205. package/src/components/native-select.tsx +87 -0
  206. package/src/components/navigation-menu.tsx +235 -0
  207. package/src/components/pagination.tsx +198 -0
  208. package/src/components/popover.tsx +170 -0
  209. package/src/components/progress-circle.tsx +185 -0
  210. package/src/components/progress.tsx +41 -0
  211. package/src/components/radio-cards.tsx +66 -0
  212. package/src/components/radio-group.tsx +59 -0
  213. package/src/components/radio.tsx +40 -0
  214. package/src/components/resizable.tsx +78 -0
  215. package/src/components/scroll-area.tsx +95 -0
  216. package/src/components/select.tsx +296 -0
  217. package/src/components/separator.tsx +60 -0
  218. package/src/components/sheet.tsx +241 -0
  219. package/src/components/sidebar.tsx +926 -0
  220. package/src/components/skeleton.tsx +35 -0
  221. package/src/components/slider.tsx +66 -0
  222. package/src/components/sonner.tsx +57 -0
  223. package/src/components/spinner.tsx +66 -0
  224. package/src/components/switch.tsx +44 -0
  225. package/src/components/table.tsx +183 -0
  226. package/src/components/tabs.tsx +110 -0
  227. package/src/components/textarea.tsx +35 -0
  228. package/src/components/toggle-group.tsx +137 -0
  229. package/src/components/toggle.tsx +30 -0
  230. package/src/components/tooltip.tsx +115 -0
  231. package/src/css/foundation/base.css +50 -0
  232. package/src/css/foundation/motion.css +36 -0
  233. package/src/css/foundation/source.css +3 -0
  234. package/src/css/foundation/tokens.css +71 -0
  235. package/src/css/foundation/variants.css +113 -0
  236. package/src/css/preset.css +5 -195
  237. package/src/css/style.css +1 -1
  238. package/src/css/{amber.css → themes/amber.css} +59 -22
  239. package/src/css/{blue.css → themes/blue.css} +59 -22
  240. package/src/css/{cyan.css → themes/cyan.css} +59 -22
  241. package/src/css/{emerald.css → themes/emerald.css} +59 -22
  242. package/src/css/{fuchsia.css → themes/fuchsia.css} +59 -22
  243. package/src/css/{gray.css → themes/gray.css} +59 -22
  244. package/src/css/{green.css → themes/green.css} +59 -22
  245. package/src/css/{indigo.css → themes/indigo.css} +59 -22
  246. package/src/css/{lime.css → themes/lime.css} +59 -22
  247. package/src/css/{neutral.css → themes/neutral.css} +59 -22
  248. package/src/css/{orange.css → themes/orange.css} +59 -22
  249. package/src/css/{pink.css → themes/pink.css} +59 -22
  250. package/src/css/{purple.css → themes/purple.css} +59 -22
  251. package/src/css/{red.css → themes/red.css} +59 -22
  252. package/src/css/{rose.css → themes/rose.css} +59 -22
  253. package/src/css/{sky.css → themes/sky.css} +59 -22
  254. package/src/css/{slate.css → themes/slate.css} +59 -22
  255. package/src/css/{stone.css → themes/stone.css} +59 -22
  256. package/src/css/{teal.css → themes/teal.css} +59 -22
  257. package/src/css/{violet.css → themes/violet.css} +59 -22
  258. package/src/css/{yellow.css → themes/yellow.css} +59 -22
  259. package/src/css/{zinc.css → themes/zinc.css} +59 -22
  260. package/src/hooks/use-animated-value.ts +91 -0
  261. package/src/hooks/use-copy-to-clipboard.ts +58 -0
  262. package/src/hooks/use-is-mobile.ts +25 -0
  263. package/src/hooks/use-media-query.ts +69 -0
  264. package/src/hooks/use-mutation-observer.ts +51 -0
  265. package/src/hooks/use-pagination.ts +164 -0
  266. package/src/index.ts +679 -0
  267. package/src/lib/utils.ts +5 -0
  268. package/src/primitives/checkbox-group.tsx +346 -0
  269. package/src/primitives/input-number.tsx +967 -0
  270. package/src/primitives/input.tsx +227 -0
  271. package/src/primitives/progress-circle.tsx +507 -0
  272. package/src/variants/alert.ts +34 -0
  273. package/src/variants/badge.ts +39 -0
  274. package/src/variants/button-group.ts +36 -0
  275. package/src/variants/button.ts +56 -0
  276. package/src/variants/empty.ts +34 -0
  277. package/src/variants/field.ts +37 -0
  278. package/src/variants/input-group.ts +80 -0
  279. package/src/variants/input-number.ts +65 -0
  280. package/src/variants/item.ts +68 -0
  281. package/src/variants/navigation-menu.ts +25 -0
  282. package/src/variants/progress-circle.ts +46 -0
  283. package/src/variants/scroll-area.ts +73 -0
  284. package/src/variants/separator.ts +40 -0
  285. package/src/variants/sheet.ts +37 -0
  286. package/src/variants/sidebar.ts +41 -0
  287. package/src/variants/tabs.ts +34 -0
  288. package/src/variants/toggle.ts +40 -0
  289. package/dist/node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/clsx.d.mts +0 -6
@@ -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:pl-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: "ml-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-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", "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-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", "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:pl-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 pr-8 pl-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-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 right-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 pr-8 pl-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-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 right-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:pl-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("ml-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
@@ -1,13 +1,11 @@
1
- import { VariantProps } from "../lib/utils.mjs";
2
- import { buttonVariants } from "./button.mjs";
1
+ import { Dialog as Dialog$1 } from "radix-ui";
3
2
  import { ComponentProps, JSX } from "react";
4
- import * as DialogPrimitive from "@radix-ui/react-dialog";
5
3
 
6
4
  //#region src/components/dialog.d.ts
7
5
  /**
8
6
  * @since 0.3.16-canary.0
9
7
  */
10
- type DialogProps = ComponentProps<typeof DialogPrimitive.Root>;
8
+ type DialogProps = ComponentProps<typeof Dialog$1.Root>;
11
9
  /**
12
10
  * @since 0.3.16-canary.0
13
11
  */
@@ -17,7 +15,7 @@ declare function Dialog({
17
15
  /**
18
16
  * @since 0.3.16-canary.0
19
17
  */
20
- type DialogTriggerProps = ComponentProps<typeof DialogPrimitive.Trigger>;
18
+ type DialogTriggerProps = ComponentProps<typeof Dialog$1.Trigger>;
21
19
  /**
22
20
  * @since 0.3.16-canary.0
23
21
  */
@@ -27,13 +25,8 @@ declare function DialogTrigger({
27
25
  /**
28
26
  * @since 0.3.16-canary.0
29
27
  */
30
- interface DialogContentProps extends ComponentProps<typeof DialogPrimitive.Content> {
31
- classNames?: {
32
- close?: string;
33
- content?: string;
34
- overlay?: string;
35
- wrapper?: string;
36
- };
28
+ interface DialogContentProps extends ComponentProps<typeof Dialog$1.Content> {
29
+ showCloseButton?: boolean;
37
30
  }
38
31
  /**
39
32
  * @since 0.3.16-canary.0
@@ -41,7 +34,7 @@ interface DialogContentProps extends ComponentProps<typeof DialogPrimitive.Conte
41
34
  declare function DialogContent({
42
35
  children,
43
36
  className,
44
- classNames,
37
+ showCloseButton,
45
38
  ...props
46
39
  }: DialogContentProps): JSX.Element;
47
40
  /**
@@ -56,6 +49,11 @@ declare function DialogHeader({
56
49
  ...props
57
50
  }: DialogHeaderProps): JSX.Element;
58
51
  /**
52
+ * Optional scrollable region for long content. When used, the Header and Footer
53
+ * stay pinned (shrink-0) and only this body scrolls; without it, the whole
54
+ * Content scrolls via its own max-height. This is a codefast enhancement over
55
+ * radix-vega, which has no scroll handling for tall dialogs.
56
+ *
59
57
  * @since 0.3.16-canary.0
60
58
  */
61
59
  type DialogBodyProps = ComponentProps<"div">;
@@ -69,18 +67,22 @@ declare function DialogBody({
69
67
  /**
70
68
  * @since 0.3.16-canary.0
71
69
  */
72
- type DialogFooterProps = ComponentProps<"div">;
70
+ interface DialogFooterProps extends ComponentProps<"div"> {
71
+ showCloseButton?: boolean;
72
+ }
73
73
  /**
74
74
  * @since 0.3.16-canary.0
75
75
  */
76
76
  declare function DialogFooter({
77
+ children,
77
78
  className,
79
+ showCloseButton,
78
80
  ...props
79
81
  }: DialogFooterProps): JSX.Element;
80
82
  /**
81
83
  * @since 0.3.16-canary.0
82
84
  */
83
- type DialogTitleProps = ComponentProps<typeof DialogPrimitive.Title>;
85
+ type DialogTitleProps = ComponentProps<typeof Dialog$1.Title>;
84
86
  /**
85
87
  * @since 0.3.16-canary.0
86
88
  */
@@ -91,7 +93,7 @@ declare function DialogTitle({
91
93
  /**
92
94
  * @since 0.3.16-canary.0
93
95
  */
94
- type DialogDescriptionProps = ComponentProps<typeof DialogPrimitive.Description>;
96
+ type DialogDescriptionProps = ComponentProps<typeof Dialog$1.Description>;
95
97
  /**
96
98
  * @since 0.3.16-canary.0
97
99
  */
@@ -102,17 +104,11 @@ declare function DialogDescription({
102
104
  /**
103
105
  * @since 0.3.16-canary.0
104
106
  */
105
- interface DialogCloseProps extends Omit<ComponentProps<typeof DialogPrimitive.Close>, "ref"> {
106
- size?: VariantProps<typeof buttonVariants>["size"];
107
- variant?: VariantProps<typeof buttonVariants>["variant"];
108
- }
107
+ type DialogCloseProps = ComponentProps<typeof Dialog$1.Close>;
109
108
  /**
110
109
  * @since 0.3.16-canary.0
111
110
  */
112
111
  declare function DialogClose({
113
- className,
114
- size,
115
- variant,
116
112
  ...props
117
113
  }: DialogCloseProps): JSX.Element;
118
114
  //#endregion
@@ -1,15 +1,14 @@
1
- "use client";
2
1
  import { cn } from "../lib/utils.mjs";
3
- import { buttonVariants } from "./button.mjs";
2
+ import { Button } from "./button.mjs";
4
3
  import { XIcon } from "lucide-react";
4
+ import { Dialog as Dialog$1 } from "radix-ui";
5
5
  import { jsx, jsxs } from "react/jsx-runtime";
6
- import * as DialogPrimitive from "@radix-ui/react-dialog";
7
6
  //#region src/components/dialog.tsx
8
7
  /**
9
8
  * @since 0.3.16-canary.0
10
9
  */
11
10
  function Dialog({ ...props }) {
12
- return /* @__PURE__ */ jsx(DialogPrimitive.Root, {
11
+ return /* @__PURE__ */ jsx(Dialog$1.Root, {
13
12
  "data-slot": "dialog",
14
13
  ...props
15
14
  });
@@ -18,7 +17,7 @@ function Dialog({ ...props }) {
18
17
  * @since 0.3.16-canary.0
19
18
  */
20
19
  function DialogTrigger({ ...props }) {
21
- return /* @__PURE__ */ jsx(DialogPrimitive.Trigger, {
20
+ return /* @__PURE__ */ jsx(Dialog$1.Trigger, {
22
21
  "data-slot": "dialog-trigger",
23
22
  ...props
24
23
  });
@@ -26,38 +25,38 @@ function DialogTrigger({ ...props }) {
26
25
  /**
27
26
  * @since 0.3.16-canary.0
28
27
  */
29
- function DialogContent({ children, className, classNames, ...props }) {
30
- return /* @__PURE__ */ jsxs(DialogPrimitive.Portal, { children: [/* @__PURE__ */ jsx(DialogPrimitive.Overlay, {
31
- className: cn("fixed inset-0 z-50", "bg-black/50", "ease-ui data-open:animate-in data-open:fade-in-0", "data-closed:animate-out data-closed:fade-out-0", classNames?.overlay),
32
- "data-slot": "dialog-overlay"
33
- }), /* @__PURE__ */ jsx(DialogPrimitive.Content, {
34
- className: cn("fixed inset-0 z-50 grid grid-rows-[1fr_auto] justify-items-center overflow-auto", "sm:grid-rows-[1fr_auto_3fr] sm:p-4", "ease-ui data-open:animate-in", "max-sm:data-open:animation-duration-500 max-sm:data-open:slide-in-from-bottom", "sm:data-open:fade-in-0 sm:data-open:zoom-in-95", "data-closed:animate-out", "max-sm:data-closed:animation-duration-500 max-sm:data-closed:slide-out-to-bottom", "sm:data-closed:fade-out-0 sm:data-closed:zoom-out-95", classNames?.wrapper),
35
- "data-slot": "dialog-content-wrapper",
36
- ...props,
37
- children: /* @__PURE__ */ jsxs("div", {
38
- className: cn("relative row-start-2 flex w-full flex-col", "rounded-t-2xl border", "bg-popover text-popover-foreground shadow-lg", "sm:max-w-lg sm:rounded-2xl", classNames?.content, className),
28
+ function DialogContent({ children, className, showCloseButton = true, ...props }) {
29
+ return /* @__PURE__ */ jsxs(Dialog$1.Portal, {
30
+ "data-slot": "dialog-portal",
31
+ children: [/* @__PURE__ */ jsx(Dialog$1.Overlay, {
32
+ className: "fixed inset-0 isolate z-50 bg-black/10 ease-gentle supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:animation-duration-overlay-in data-open:fade-in-0 data-closed:animate-out data-closed:ease-exit data-closed:animation-duration-overlay-out data-closed:fade-out-0",
33
+ "data-slot": "dialog-overlay"
34
+ }), /* @__PURE__ */ jsxs(Dialog$1.Content, {
35
+ className: cn("fixed top-1/2 left-1/2 z-50 flex max-h-[calc(100dvh-2rem)] w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 flex-col gap-6 overflow-y-auto rounded-xl bg-popover p-6 text-sm text-popover-foreground ring-1 ring-foreground/10 ease-ui outline-none sm:max-w-md data-open:animate-in data-open:animation-duration-overlay-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:ease-exit data-closed:animation-duration-overlay-out data-closed:fade-out-0 data-closed:zoom-out-95", className),
39
36
  "data-slot": "dialog-content",
40
- children: [children, /* @__PURE__ */ jsxs(DialogPrimitive.Close, {
41
- className: buttonVariants({
42
- className: ["absolute top-2.5 right-2.5 size-7", classNames?.close],
43
- size: "icon",
44
- variant: "ghost"
45
- }),
37
+ ...props,
38
+ children: [children, showCloseButton ? /* @__PURE__ */ jsx(Dialog$1.Close, {
39
+ asChild: true,
46
40
  "data-slot": "dialog-close",
47
- children: [/* @__PURE__ */ jsx(XIcon, { className: "size-4" }), /* @__PURE__ */ jsx("span", {
48
- className: "sr-only",
49
- children: "Close"
50
- })]
51
- })]
52
- })
53
- })] });
41
+ children: /* @__PURE__ */ jsxs(Button, {
42
+ className: "absolute top-4 right-4",
43
+ size: "icon-sm",
44
+ variant: "ghost",
45
+ children: [/* @__PURE__ */ jsx(XIcon, {}), /* @__PURE__ */ jsx("span", {
46
+ className: "sr-only",
47
+ children: "Close"
48
+ })]
49
+ })
50
+ }) : null]
51
+ })]
52
+ });
54
53
  }
55
54
  /**
56
55
  * @since 0.3.16-canary.0
57
56
  */
58
57
  function DialogHeader({ className, ...props }) {
59
- return /* @__PURE__ */ jsx("header", {
60
- className: cn("flex shrink-0 flex-col gap-1.5 px-6 pt-6 pb-2 text-center", "sm:text-left", className),
58
+ return /* @__PURE__ */ jsx("div", {
59
+ className: cn("flex shrink-0 flex-col gap-2", className),
61
60
  "data-slot": "dialog-header",
62
61
  ...props
63
62
  });
@@ -66,8 +65,8 @@ function DialogHeader({ className, ...props }) {
66
65
  * @since 0.3.16-canary.0
67
66
  */
68
67
  function DialogBody({ className, ...props }) {
69
- return /* @__PURE__ */ jsx("main", {
70
- className: cn("overflow-auto", "px-6 py-2", className),
68
+ return /* @__PURE__ */ jsx("div", {
69
+ className: cn("-mx-6 min-h-0 flex-1 overflow-y-auto px-6", className),
71
70
  "data-slot": "dialog-body",
72
71
  ...props
73
72
  });
@@ -75,19 +74,26 @@ function DialogBody({ className, ...props }) {
75
74
  /**
76
75
  * @since 0.3.16-canary.0
77
76
  */
78
- function DialogFooter({ className, ...props }) {
79
- return /* @__PURE__ */ jsx("footer", {
80
- className: cn("flex shrink-0 flex-col-reverse gap-2 px-6 pt-2 pb-6", "sm:flex-row sm:justify-end", className),
77
+ function DialogFooter({ children, className, showCloseButton = false, ...props }) {
78
+ return /* @__PURE__ */ jsxs("div", {
79
+ className: cn("flex shrink-0 flex-col-reverse gap-2 sm:flex-row sm:justify-end", className),
81
80
  "data-slot": "dialog-footer",
82
- ...props
81
+ ...props,
82
+ children: [children, showCloseButton ? /* @__PURE__ */ jsx(Dialog$1.Close, {
83
+ asChild: true,
84
+ children: /* @__PURE__ */ jsx(Button, {
85
+ variant: "outline",
86
+ children: "Close"
87
+ })
88
+ }) : null]
83
89
  });
84
90
  }
85
91
  /**
86
92
  * @since 0.3.16-canary.0
87
93
  */
88
94
  function DialogTitle({ className, ...props }) {
89
- return /* @__PURE__ */ jsx(DialogPrimitive.Title, {
90
- className: cn("text-lg leading-none font-semibold tracking-tight", className),
95
+ return /* @__PURE__ */ jsx(Dialog$1.Title, {
96
+ className: cn("font-heading leading-none font-medium", className),
91
97
  "data-slot": "dialog-title",
92
98
  ...props
93
99
  });
@@ -96,8 +102,8 @@ function DialogTitle({ className, ...props }) {
96
102
  * @since 0.3.16-canary.0
97
103
  */
98
104
  function DialogDescription({ className, ...props }) {
99
- return /* @__PURE__ */ jsx(DialogPrimitive.Description, {
100
- className: cn("text-sm text-muted-foreground", className),
105
+ return /* @__PURE__ */ jsx(Dialog$1.Description, {
106
+ className: cn("text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground", className),
101
107
  "data-slot": "dialog-description",
102
108
  ...props
103
109
  });
@@ -105,13 +111,8 @@ function DialogDescription({ className, ...props }) {
105
111
  /**
106
112
  * @since 0.3.16-canary.0
107
113
  */
108
- function DialogClose({ className, size, variant = "outline", ...props }) {
109
- return /* @__PURE__ */ jsx(DialogPrimitive.Close, {
110
- className: buttonVariants({
111
- className,
112
- size,
113
- variant
114
- }),
114
+ function DialogClose({ ...props }) {
115
+ return /* @__PURE__ */ jsx(Dialog$1.Close, {
115
116
  "data-slot": "dialog-close",
116
117
  ...props
117
118
  });
@@ -0,0 +1,24 @@
1
+ import { Direction } from "radix-ui";
2
+ import { ComponentProps } from "react";
3
+
4
+ //#region src/components/direction.d.ts
5
+ /**
6
+ * @since 0.4.0-canary.4
7
+ */
8
+ type DirectionProviderProps = ComponentProps<typeof Direction.DirectionProvider> & {
9
+ direction?: ComponentProps<typeof Direction.DirectionProvider>["dir"];
10
+ };
11
+ /**
12
+ * @since 0.4.0-canary.4
13
+ */
14
+ declare function DirectionProvider({
15
+ dir,
16
+ direction,
17
+ children
18
+ }: DirectionProviderProps): import("react").JSX.Element;
19
+ /**
20
+ * @since 0.4.0-canary.4
21
+ */
22
+ declare const useDirection: typeof Direction.useDirection;
23
+ //#endregion
24
+ export { DirectionProvider, type DirectionProviderProps, useDirection };