@multicomma/arkcn 0.1.0

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 (237) hide show
  1. package/README.md +78 -0
  2. package/bin/arkcn.mjs +78 -0
  3. package/cli/commands.mjs +251 -0
  4. package/cli/project.mjs +168 -0
  5. package/cli/registry.mjs +50 -0
  6. package/cli/ui.mjs +46 -0
  7. package/mcp/server.mjs +149 -0
  8. package/package.json +201 -0
  9. package/registry/base.css +680 -0
  10. package/registry/index.json +1833 -0
  11. package/registry/items/accordion.json +18 -0
  12. package/registry/items/activity-feed.json +18 -0
  13. package/registry/items/alert-dialog.json +18 -0
  14. package/registry/items/alert.json +17 -0
  15. package/registry/items/angle-slider.json +17 -0
  16. package/registry/items/app-shell.json +28 -0
  17. package/registry/items/aspect-ratio.json +13 -0
  18. package/registry/items/attachment.json +19 -0
  19. package/registry/items/avatar.json +17 -0
  20. package/registry/items/badge.json +18 -0
  21. package/registry/items/breadcrumb.json +18 -0
  22. package/registry/items/bubble.json +18 -0
  23. package/registry/items/button-group.json +19 -0
  24. package/registry/items/button.json +18 -0
  25. package/registry/items/calendar.json +19 -0
  26. package/registry/items/canvas.json +24 -0
  27. package/registry/items/card.json +15 -0
  28. package/registry/items/carousel.json +19 -0
  29. package/registry/items/cascader.json +23 -0
  30. package/registry/items/chart.json +17 -0
  31. package/registry/items/chat.json +23 -0
  32. package/registry/items/checkbox.json +18 -0
  33. package/registry/items/clipboard.json +19 -0
  34. package/registry/items/collapsible.json +15 -0
  35. package/registry/items/color-picker.json +19 -0
  36. package/registry/items/combobox.json +20 -0
  37. package/registry/items/command.json +21 -0
  38. package/registry/items/comment-thread.json +25 -0
  39. package/registry/items/context-menu.json +18 -0
  40. package/registry/items/controllable.json +14 -0
  41. package/registry/items/data-grid.json +24 -0
  42. package/registry/items/data-table-adapter.json +14 -0
  43. package/registry/items/data-table.json +32 -0
  44. package/registry/items/date-input.json +17 -0
  45. package/registry/items/dialog.json +19 -0
  46. package/registry/items/direction.json +13 -0
  47. package/registry/items/drag-preview.json +16 -0
  48. package/registry/items/drawer.json +18 -0
  49. package/registry/items/dropdown-menu.json +18 -0
  50. package/registry/items/editable.json +17 -0
  51. package/registry/items/empty.json +17 -0
  52. package/registry/items/field.json +19 -0
  53. package/registry/items/file-upload.json +19 -0
  54. package/registry/items/floating-panel.json +19 -0
  55. package/registry/items/floating-toolbar.json +16 -0
  56. package/registry/items/form.json +14 -0
  57. package/registry/items/format.json +15 -0
  58. package/registry/items/gantt.json +22 -0
  59. package/registry/items/history.json +14 -0
  60. package/registry/items/hotkeys.json +18 -0
  61. package/registry/items/hover-card.json +17 -0
  62. package/registry/items/image-cropper.json +17 -0
  63. package/registry/items/input-group.json +20 -0
  64. package/registry/items/input-otp.json +18 -0
  65. package/registry/items/input.json +15 -0
  66. package/registry/items/item.json +19 -0
  67. package/registry/items/json-tree-view.json +17 -0
  68. package/registry/items/kanban.json +26 -0
  69. package/registry/items/kbd.json +15 -0
  70. package/registry/items/label.json +15 -0
  71. package/registry/items/live-region.json +16 -0
  72. package/registry/items/marker.json +18 -0
  73. package/registry/items/marquee.json +17 -0
  74. package/registry/items/menubar.json +19 -0
  75. package/registry/items/message.json +15 -0
  76. package/registry/items/navigation-menu.json +19 -0
  77. package/registry/items/node-graph.json +22 -0
  78. package/registry/items/number-input.json +18 -0
  79. package/registry/items/pagination.json +18 -0
  80. package/registry/items/password-input.json +18 -0
  81. package/registry/items/popconfirm.json +20 -0
  82. package/registry/items/popover.json +18 -0
  83. package/registry/items/progress.json +17 -0
  84. package/registry/items/qr-code.json +17 -0
  85. package/registry/items/query-builder.json +23 -0
  86. package/registry/items/radio-group.json +17 -0
  87. package/registry/items/rating-group.json +18 -0
  88. package/registry/items/resizable.json +17 -0
  89. package/registry/items/rich-text-editor.json +37 -0
  90. package/registry/items/row-layout.json +15 -0
  91. package/registry/items/scheduler.json +23 -0
  92. package/registry/items/scroll-area.json +17 -0
  93. package/registry/items/segment-group.json +17 -0
  94. package/registry/items/select.json +19 -0
  95. package/registry/items/separator.json +15 -0
  96. package/registry/items/sheet.json +19 -0
  97. package/registry/items/sidebar.json +27 -0
  98. package/registry/items/signature-pad.json +19 -0
  99. package/registry/items/skeleton.json +15 -0
  100. package/registry/items/slider.json +17 -0
  101. package/registry/items/sonner.json +17 -0
  102. package/registry/items/spinner.json +17 -0
  103. package/registry/items/steps.json +19 -0
  104. package/registry/items/swap.json +17 -0
  105. package/registry/items/switch.json +17 -0
  106. package/registry/items/table.json +16 -0
  107. package/registry/items/tabs.json +18 -0
  108. package/registry/items/tags-input.json +18 -0
  109. package/registry/items/textarea.json +15 -0
  110. package/registry/items/time.json +14 -0
  111. package/registry/items/timer.json +18 -0
  112. package/registry/items/toc.json +17 -0
  113. package/registry/items/toggle-group.json +19 -0
  114. package/registry/items/toggle.json +18 -0
  115. package/registry/items/tooltip.json +17 -0
  116. package/registry/items/tour.json +19 -0
  117. package/registry/items/transfer-list.json +24 -0
  118. package/registry/items/tree-select.json +24 -0
  119. package/registry/items/tree-view.json +18 -0
  120. package/registry/items/use-mobile.json +13 -0
  121. package/registry/items/utils.json +17 -0
  122. package/registry/items/virtual-list.json +16 -0
  123. package/src/components/ui/accordion.tsx +111 -0
  124. package/src/components/ui/activity-feed.tsx +228 -0
  125. package/src/components/ui/alert-dialog.tsx +204 -0
  126. package/src/components/ui/alert.tsx +55 -0
  127. package/src/components/ui/angle-slider.tsx +117 -0
  128. package/src/components/ui/app-shell.tsx +985 -0
  129. package/src/components/ui/aspect-ratio.tsx +35 -0
  130. package/src/components/ui/attachment.tsx +193 -0
  131. package/src/components/ui/avatar.tsx +94 -0
  132. package/src/components/ui/badge.tsx +45 -0
  133. package/src/components/ui/breadcrumb.tsx +93 -0
  134. package/src/components/ui/bubble.tsx +119 -0
  135. package/src/components/ui/button-group.tsx +79 -0
  136. package/src/components/ui/button.tsx +65 -0
  137. package/src/components/ui/calendar.tsx +172 -0
  138. package/src/components/ui/canvas.tsx +723 -0
  139. package/src/components/ui/card.tsx +69 -0
  140. package/src/components/ui/carousel.tsx +228 -0
  141. package/src/components/ui/cascader.tsx +754 -0
  142. package/src/components/ui/chart.tsx +303 -0
  143. package/src/components/ui/chat.tsx +544 -0
  144. package/src/components/ui/checkbox.tsx +94 -0
  145. package/src/components/ui/clipboard.tsx +94 -0
  146. package/src/components/ui/collapsible.tsx +32 -0
  147. package/src/components/ui/color-picker.tsx +441 -0
  148. package/src/components/ui/combobox.tsx +400 -0
  149. package/src/components/ui/command.tsx +292 -0
  150. package/src/components/ui/comment-thread.tsx +923 -0
  151. package/src/components/ui/context-menu.tsx +331 -0
  152. package/src/components/ui/data-grid.tsx +1227 -0
  153. package/src/components/ui/data-table.tsx +993 -0
  154. package/src/components/ui/date-input.tsx +103 -0
  155. package/src/components/ui/dialog.tsx +159 -0
  156. package/src/components/ui/direction.tsx +32 -0
  157. package/src/components/ui/drawer.tsx +200 -0
  158. package/src/components/ui/dropdown-menu.tsx +329 -0
  159. package/src/components/ui/editable.tsx +90 -0
  160. package/src/components/ui/empty.tsx +86 -0
  161. package/src/components/ui/field.tsx +218 -0
  162. package/src/components/ui/file-upload.tsx +204 -0
  163. package/src/components/ui/floating-panel.tsx +199 -0
  164. package/src/components/ui/floating-toolbar.tsx +79 -0
  165. package/src/components/ui/format.tsx +22 -0
  166. package/src/components/ui/gantt.tsx +950 -0
  167. package/src/components/ui/hotkeys.tsx +340 -0
  168. package/src/components/ui/hover-card.tsx +83 -0
  169. package/src/components/ui/image-cropper.tsx +100 -0
  170. package/src/components/ui/input-group.tsx +133 -0
  171. package/src/components/ui/input-otp.tsx +82 -0
  172. package/src/components/ui/input.tsx +18 -0
  173. package/src/components/ui/item.tsx +174 -0
  174. package/src/components/ui/json-tree-view.tsx +37 -0
  175. package/src/components/ui/kanban.tsx +884 -0
  176. package/src/components/ui/kbd.tsx +20 -0
  177. package/src/components/ui/label.tsx +30 -0
  178. package/src/components/ui/live-region.tsx +54 -0
  179. package/src/components/ui/marker.tsx +66 -0
  180. package/src/components/ui/marquee.tsx +61 -0
  181. package/src/components/ui/menubar.tsx +456 -0
  182. package/src/components/ui/message.tsx +74 -0
  183. package/src/components/ui/navigation-menu.tsx +202 -0
  184. package/src/components/ui/node-graph.tsx +1723 -0
  185. package/src/components/ui/number-input.tsx +148 -0
  186. package/src/components/ui/pagination.tsx +88 -0
  187. package/src/components/ui/password-input.tsx +104 -0
  188. package/src/components/ui/popconfirm.tsx +149 -0
  189. package/src/components/ui/popover.tsx +126 -0
  190. package/src/components/ui/progress.tsx +114 -0
  191. package/src/components/ui/qr-code.tsx +51 -0
  192. package/src/components/ui/query-builder.tsx +938 -0
  193. package/src/components/ui/radio-group.tsx +108 -0
  194. package/src/components/ui/rating-group.tsx +91 -0
  195. package/src/components/ui/resizable.tsx +41 -0
  196. package/src/components/ui/rich-text-editor.tsx +845 -0
  197. package/src/components/ui/scheduler.tsx +1164 -0
  198. package/src/components/ui/scroll-area.tsx +82 -0
  199. package/src/components/ui/segment-group.tsx +95 -0
  200. package/src/components/ui/select.tsx +354 -0
  201. package/src/components/ui/separator.tsx +32 -0
  202. package/src/components/ui/sheet.tsx +130 -0
  203. package/src/components/ui/sidebar.tsx +665 -0
  204. package/src/components/ui/signature-pad.tsx +112 -0
  205. package/src/components/ui/skeleton.tsx +7 -0
  206. package/src/components/ui/slider.tsx +183 -0
  207. package/src/components/ui/sonner.tsx +37 -0
  208. package/src/components/ui/spinner.tsx +16 -0
  209. package/src/components/ui/steps.tsx +152 -0
  210. package/src/components/ui/swap.tsx +33 -0
  211. package/src/components/ui/switch.tsx +83 -0
  212. package/src/components/ui/table.tsx +72 -0
  213. package/src/components/ui/tabs.tsx +100 -0
  214. package/src/components/ui/tags-input.tsx +153 -0
  215. package/src/components/ui/textarea.tsx +17 -0
  216. package/src/components/ui/timer.tsx +67 -0
  217. package/src/components/ui/toc.tsx +64 -0
  218. package/src/components/ui/toggle-group.tsx +89 -0
  219. package/src/components/ui/toggle.tsx +46 -0
  220. package/src/components/ui/tooltip.tsx +113 -0
  221. package/src/components/ui/tour.tsx +168 -0
  222. package/src/components/ui/transfer-list.tsx +700 -0
  223. package/src/components/ui/tree-select.tsx +638 -0
  224. package/src/components/ui/tree-view.tsx +217 -0
  225. package/src/components/ui/virtual-list.tsx +343 -0
  226. package/src/hooks/use-mobile.ts +19 -0
  227. package/src/lib/controllable.ts +31 -0
  228. package/src/lib/data-table-adapter.ts +67 -0
  229. package/src/lib/drag-preview.ts +39 -0
  230. package/src/lib/form.ts +39 -0
  231. package/src/lib/history.ts +55 -0
  232. package/src/lib/row-layout.ts +81 -0
  233. package/src/lib/table.ts +483 -0
  234. package/src/lib/time.ts +37 -0
  235. package/src/lib/utils.ts +6 -0
  236. package/src/styles/arkcn.css +764 -0
  237. package/src/styles/index.css +3 -0
@@ -0,0 +1,113 @@
1
+ "use client"
2
+
3
+ import * as React from "react"
4
+ import { cn } from "@/lib/utils"
5
+ import { Portal as PortalPrimitive, Tooltip as TooltipPrimitive } from "@ark-ui/react"
6
+
7
+ type TooltipProviderProps = {
8
+ /** Delay before the tooltip opens, in ms. Maps to Ark's `openDelay`. */
9
+ delayDuration?: number
10
+ /** Delay before the tooltip closes, in ms. Maps to Ark's `closeDelay`. */
11
+ closeDelay?: number
12
+ /** When true the content cannot be hovered. Maps to Ark's `interactive: false`. */
13
+ disableHoverableContent?: boolean
14
+ children?: React.ReactNode
15
+ }
16
+
17
+ const TooltipProviderContext = React.createContext<Omit<TooltipProviderProps, "children">>({})
18
+
19
+ function TooltipProvider({ delayDuration = 0, closeDelay, disableHoverableContent, children }: TooltipProviderProps) {
20
+ const value = React.useMemo(
21
+ () => ({ delayDuration, closeDelay, disableHoverableContent }),
22
+ [delayDuration, closeDelay, disableHoverableContent]
23
+ )
24
+ return <TooltipProviderContext.Provider value={value}>{children}</TooltipProviderContext.Provider>
25
+ }
26
+
27
+ function Tooltip({
28
+ openDelay,
29
+ closeDelay,
30
+ interactive,
31
+ positioning,
32
+ lazyMount = true,
33
+ unmountOnExit = true,
34
+ ...props
35
+ }: React.ComponentProps<typeof TooltipPrimitive.Root>) {
36
+ const provider = React.useContext(TooltipProviderContext)
37
+ return (
38
+ <TooltipPrimitive.Root
39
+ openDelay={openDelay ?? provider.delayDuration ?? 0}
40
+ closeDelay={closeDelay ?? provider.closeDelay}
41
+ interactive={interactive ?? !provider.disableHoverableContent}
42
+ positioning={{ placement: "top", gutter: 0, ...positioning }}
43
+ lazyMount={lazyMount}
44
+ unmountOnExit={unmountOnExit}
45
+ {...props}
46
+ />
47
+ )
48
+ }
49
+
50
+ function TooltipTrigger({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {
51
+ return <TooltipPrimitive.Trigger data-slot="tooltip-trigger" {...props} />
52
+ }
53
+
54
+ function TooltipPortal({ ...props }: React.ComponentProps<typeof PortalPrimitive>) {
55
+ return <PortalPrimitive {...props} />
56
+ }
57
+
58
+ function TooltipContext({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Context>) {
59
+ return <TooltipPrimitive.Context {...props} />
60
+ }
61
+
62
+ function TooltipPositioner({ className, ...props }: React.ComponentProps<typeof TooltipPrimitive.Positioner>) {
63
+ return (
64
+ <TooltipPrimitive.Positioner
65
+ data-slot="tooltip-positioner"
66
+ className={cn("[--z-index:50]", className)}
67
+ {...props}
68
+ />
69
+ )
70
+ }
71
+
72
+ function TooltipArrow({ className, ...props }: React.ComponentProps<typeof TooltipPrimitive.Arrow>) {
73
+ return (
74
+ <TooltipPrimitive.Arrow
75
+ data-slot="tooltip-arrow"
76
+ className={cn("z-50 [--arrow-background:var(--color-foreground)] [--arrow-size:0.625rem]", className)}
77
+ {...props}
78
+ >
79
+ <TooltipPrimitive.ArrowTip data-slot="tooltip-arrow-tip" className="rounded-xs" />
80
+ </TooltipPrimitive.Arrow>
81
+ )
82
+ }
83
+
84
+ function TooltipContent({ className, children, ...props }: React.ComponentProps<typeof TooltipPrimitive.Content>) {
85
+ return (
86
+ <TooltipPortal>
87
+ <TooltipPositioner>
88
+ <TooltipPrimitive.Content
89
+ data-slot="tooltip-content"
90
+ className={cn(
91
+ "z-50 inline-flex w-fit max-w-xs origin-(--transform-origin) items-center gap-1.5 rounded-md bg-foreground px-3 py-1.5 text-xs text-background has-data-[slot=kbd]:pr-1.5 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-50 **:data-[slot=kbd]:rounded-sm data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
92
+ className
93
+ )}
94
+ {...props}
95
+ >
96
+ {children}
97
+ <TooltipArrow />
98
+ </TooltipPrimitive.Content>
99
+ </TooltipPositioner>
100
+ </TooltipPortal>
101
+ )
102
+ }
103
+
104
+ export {
105
+ Tooltip,
106
+ TooltipArrow,
107
+ TooltipContent,
108
+ TooltipContext,
109
+ TooltipPortal,
110
+ TooltipPositioner,
111
+ TooltipProvider,
112
+ TooltipTrigger,
113
+ }
@@ -0,0 +1,168 @@
1
+ "use client"
2
+
3
+ import * as React from "react"
4
+ import { cn } from "@/lib/utils"
5
+ import { Tour as TourPrimitive, Portal as PortalPrimitive, useTour } from "@ark-ui/react"
6
+ import { XIcon } from "lucide-react"
7
+
8
+ import { Button } from "@/components/ui/button"
9
+
10
+ function Tour({ lazyMount = true, unmountOnExit = true, ...props }: React.ComponentProps<typeof TourPrimitive.Root>) {
11
+ return <TourPrimitive.Root lazyMount={lazyMount} unmountOnExit={unmountOnExit} {...props} />
12
+ }
13
+
14
+ function TourContext({ ...props }: React.ComponentProps<typeof TourPrimitive.Context>) {
15
+ return <TourPrimitive.Context {...props} />
16
+ }
17
+
18
+ function TourPortal({ ...props }: React.ComponentProps<typeof PortalPrimitive>) {
19
+ return <PortalPrimitive {...props} />
20
+ }
21
+
22
+ function TourBackdrop({ className, ...props }: React.ComponentProps<typeof TourPrimitive.Backdrop>) {
23
+ return (
24
+ <TourPrimitive.Backdrop
25
+ data-slot="tour-backdrop"
26
+ className={cn(
27
+ "fixed inset-0 z-50 bg-black/40 data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",
28
+ className
29
+ )}
30
+ {...props}
31
+ />
32
+ )
33
+ }
34
+
35
+ function TourSpotlight({ className, ...props }: React.ComponentProps<typeof TourPrimitive.Spotlight>) {
36
+ return (
37
+ <TourPrimitive.Spotlight
38
+ data-slot="tour-spotlight"
39
+ className={cn(
40
+ "z-50 rounded-md ring-4 ring-background/60 transition-[left,top,width,height] duration-300",
41
+ className
42
+ )}
43
+ {...props}
44
+ />
45
+ )
46
+ }
47
+
48
+ function TourPositioner({ className, ...props }: React.ComponentProps<typeof TourPrimitive.Positioner>) {
49
+ return <TourPrimitive.Positioner data-slot="tour-positioner" className={cn("[--z-index:50]", className)} {...props} />
50
+ }
51
+
52
+ function TourContent({ className, ...props }: React.ComponentProps<typeof TourPrimitive.Content>) {
53
+ return (
54
+ <TourPrimitive.Content
55
+ data-slot="tour-content"
56
+ className={cn(
57
+ "z-50 flex w-80 flex-col gap-3 rounded-xl bg-popover p-4 text-sm text-popover-foreground shadow-md ring-1 ring-foreground/10 outline-hidden data-[type=dialog]:fixed data-[type=dialog]:top-1/2 data-[type=dialog]:left-1/2 data-[type=dialog]:-translate-1/2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
58
+ className
59
+ )}
60
+ {...props}
61
+ />
62
+ )
63
+ }
64
+
65
+ function TourArrow({ className, ...props }: React.ComponentProps<typeof TourPrimitive.Arrow>) {
66
+ return (
67
+ <TourPrimitive.Arrow
68
+ data-slot="tour-arrow"
69
+ className={cn("[--arrow-background:var(--color-popover)] [--arrow-size:0.625rem]", className)}
70
+ {...props}
71
+ >
72
+ <TourPrimitive.ArrowTip data-slot="tour-arrow-tip" className="border-t border-l border-foreground/10" />
73
+ </TourPrimitive.Arrow>
74
+ )
75
+ }
76
+
77
+ function TourTitle({ className, ...props }: React.ComponentProps<typeof TourPrimitive.Title>) {
78
+ return (
79
+ <TourPrimitive.Title
80
+ data-slot="tour-title"
81
+ className={cn("font-heading text-base font-medium", className)}
82
+ {...props}
83
+ />
84
+ )
85
+ }
86
+
87
+ function TourDescription({ className, ...props }: React.ComponentProps<typeof TourPrimitive.Description>) {
88
+ return (
89
+ <TourPrimitive.Description
90
+ data-slot="tour-description"
91
+ className={cn("text-sm text-muted-foreground", className)}
92
+ {...props}
93
+ />
94
+ )
95
+ }
96
+
97
+ function TourControl({ className, ...props }: React.ComponentProps<typeof TourPrimitive.Control>) {
98
+ return (
99
+ <TourPrimitive.Control
100
+ data-slot="tour-control"
101
+ className={cn("flex items-center justify-between gap-2", className)}
102
+ {...props}
103
+ />
104
+ )
105
+ }
106
+
107
+ function TourProgressText({ className, ...props }: React.ComponentProps<typeof TourPrimitive.ProgressText>) {
108
+ return (
109
+ <TourPrimitive.ProgressText
110
+ data-slot="tour-progress-text"
111
+ className={cn("text-xs text-muted-foreground tabular-nums", className)}
112
+ {...props}
113
+ />
114
+ )
115
+ }
116
+
117
+ function TourActions({ ...props }: React.ComponentProps<typeof TourPrimitive.Actions>) {
118
+ return <TourPrimitive.Actions {...props} />
119
+ }
120
+
121
+ function TourActionTrigger({
122
+ className,
123
+ children,
124
+ ...props
125
+ }: React.ComponentProps<typeof TourPrimitive.ActionTrigger>) {
126
+ return (
127
+ <TourPrimitive.ActionTrigger data-slot="tour-action-trigger" className={cn(className)} asChild {...props}>
128
+ <Button variant="outline" size="sm">
129
+ {children}
130
+ </Button>
131
+ </TourPrimitive.ActionTrigger>
132
+ )
133
+ }
134
+
135
+ function TourCloseTrigger({ className, children, ...props }: React.ComponentProps<typeof TourPrimitive.CloseTrigger>) {
136
+ return (
137
+ <TourPrimitive.CloseTrigger
138
+ data-slot="tour-close-trigger"
139
+ className={cn("absolute top-2 right-2", className)}
140
+ asChild
141
+ {...props}
142
+ >
143
+ <Button variant="ghost" size="icon-sm">
144
+ {children ?? <XIcon />}
145
+ <span className="sr-only">Close</span>
146
+ </Button>
147
+ </TourPrimitive.CloseTrigger>
148
+ )
149
+ }
150
+
151
+ export {
152
+ Tour,
153
+ TourActionTrigger,
154
+ TourActions,
155
+ TourArrow,
156
+ TourBackdrop,
157
+ TourCloseTrigger,
158
+ TourContent,
159
+ TourContext,
160
+ TourControl,
161
+ TourDescription,
162
+ TourPortal,
163
+ TourPositioner,
164
+ TourProgressText,
165
+ TourSpotlight,
166
+ TourTitle,
167
+ useTour,
168
+ }