@hanzo/ui 4.6.0 → 4.7.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 (290) hide show
  1. package/dist/index.d.mts +16 -0
  2. package/dist/index.d.ts +16 -0
  3. package/dist/index.js +9458 -0
  4. package/dist/index.mjs +9449 -0
  5. package/dist/lib/utils.d.mts +2 -0
  6. package/dist/lib/utils.d.ts +2 -0
  7. package/dist/lib/utils.js +47 -0
  8. package/dist/lib/utils.mjs +28 -0
  9. package/dist/src/utils.d.mts +7 -0
  10. package/dist/src/utils.d.ts +7 -0
  11. package/dist/src/utils.js +47 -0
  12. package/dist/src/utils.mjs +28 -0
  13. package/dist/tailwind/index.d.mts +2 -0
  14. package/dist/tailwind/index.d.ts +2 -0
  15. package/dist/tailwind/index.js +2048 -0
  16. package/dist/tailwind/index.mjs +2017 -0
  17. package/dist/types/index.d.mts +12 -0
  18. package/dist/types/index.d.ts +12 -0
  19. package/dist/types/index.js +79 -0
  20. package/dist/types/index.mjs +56 -0
  21. package/package.json +151 -25
  22. package/MCP-INSTRUCTIONS.md +0 -73
  23. package/README-MCP.md +0 -175
  24. package/assets/ai-icons.tsx +0 -207
  25. package/assets/crypto.tsx +0 -33
  26. package/assets/file-type-icon.tsx +0 -66
  27. package/assets/file.tsx +0 -45
  28. package/assets/general.tsx +0 -2318
  29. package/assets/hanzo-logo.svg +0 -9
  30. package/assets/hanzo-logo.tsx +0 -15
  31. package/assets/index.ts +0 -8
  32. package/assets/index.tsx +0 -4
  33. package/assets/llm-provider.tsx +0 -1094
  34. package/blocks/components/accordian-block.tsx +0 -48
  35. package/blocks/components/block-component-props.ts +0 -11
  36. package/blocks/components/bullet-cards-block.tsx +0 -46
  37. package/blocks/components/card-block/index.tsx +0 -171
  38. package/blocks/components/card-block/link-out-button.tsx +0 -20
  39. package/blocks/components/card-block/util.ts +0 -28
  40. package/blocks/components/carte-blanche-block/index.tsx +0 -127
  41. package/blocks/components/carte-blanche-block/variant-content-left.tsx +0 -49
  42. package/blocks/components/content.tsx +0 -70
  43. package/blocks/components/cta-block.tsx +0 -115
  44. package/blocks/components/enh-heading-block.tsx +0 -204
  45. package/blocks/components/grid-block/grid-block-mutator.ts +0 -12
  46. package/blocks/components/grid-block/index.tsx +0 -83
  47. package/blocks/components/grid-block/mutator-registry.ts +0 -10
  48. package/blocks/components/grid-block/table-borders.mutator.ts +0 -47
  49. package/blocks/components/group-block.tsx +0 -83
  50. package/blocks/components/heading-block.tsx +0 -88
  51. package/blocks/components/image-block.tsx +0 -111
  52. package/blocks/components/index.ts +0 -30
  53. package/blocks/components/screenful-block/content.tsx +0 -123
  54. package/blocks/components/screenful-block/index.tsx +0 -107
  55. package/blocks/components/screenful-block/poster-background.tsx +0 -34
  56. package/blocks/components/screenful-block/video-background.tsx +0 -45
  57. package/blocks/components/space-block.tsx +0 -66
  58. package/blocks/components/video-block.tsx +0 -138
  59. package/blocks/def/accordian-block.ts +0 -14
  60. package/blocks/def/block.ts +0 -7
  61. package/blocks/def/bullet-cards-block.ts +0 -22
  62. package/blocks/def/card-block.ts +0 -22
  63. package/blocks/def/carte-blanche-block.ts +0 -21
  64. package/blocks/def/cta-block.ts +0 -19
  65. package/blocks/def/element-block.ts +0 -11
  66. package/blocks/def/enh-heading-block.ts +0 -44
  67. package/blocks/def/grid-block.ts +0 -16
  68. package/blocks/def/group-block.ts +0 -11
  69. package/blocks/def/heading-block.ts +0 -15
  70. package/blocks/def/image-block.ts +0 -31
  71. package/blocks/def/index.ts +0 -35
  72. package/blocks/def/screenful-block.ts +0 -54
  73. package/blocks/def/space-block.ts +0 -64
  74. package/blocks/def/video-block.ts +0 -9
  75. package/blocks/index.ts +0 -2
  76. package/components/index.ts +0 -56
  77. package/dist/button.d.ts +0 -1
  78. package/dist/button.js +0 -1
  79. package/dist/hooks/index.d.ts +0 -7
  80. package/dist/hooks/index.js +0 -7
  81. package/dist/hooks/use-click-away.d.ts +0 -2
  82. package/dist/hooks/use-click-away.js +0 -23
  83. package/dist/hooks/use-combined-refs.d.ts +0 -3
  84. package/dist/hooks/use-combined-refs.js +0 -18
  85. package/dist/hooks/use-copy-clipboard.d.ts +0 -9
  86. package/dist/hooks/use-copy-clipboard.js +0 -21
  87. package/dist/hooks/use-debounce.d.ts +0 -1
  88. package/dist/hooks/use-debounce.js +0 -13
  89. package/dist/hooks/use-fill-ids.d.ts +0 -8
  90. package/dist/hooks/use-fill-ids.js +0 -20
  91. package/dist/hooks/use-map.d.ts +0 -1
  92. package/dist/hooks/use-map.js +0 -20
  93. package/dist/hooks/use-measure.d.ts +0 -8
  94. package/dist/hooks/use-measure.js +0 -25
  95. package/dist/hooks/use-reverse-video-playback.d.ts +0 -1
  96. package/dist/hooks/use-reverse-video-playback.js +0 -41
  97. package/dist/hooks/use-scroll-restoration.d.ts +0 -8
  98. package/dist/hooks/use-scroll-restoration.js +0 -36
  99. package/dist/mcp/enhanced-server.d.ts +0 -29
  100. package/dist/mcp/enhanced-server.js +0 -1128
  101. package/dist/mcp/index.d.ts +0 -28
  102. package/dist/mcp/index.js +0 -436
  103. package/dist/registry/api.d.ts +0 -37
  104. package/dist/registry/api.js +0 -129
  105. package/dist/registry/index.d.ts +0 -353
  106. package/dist/registry/index.js +0 -45
  107. package/dist/utils.d.ts +0 -1
  108. package/dist/utils.js +0 -1
  109. package/environment.d.ts +0 -6
  110. package/helpers/file.ts +0 -33
  111. package/helpers/memoization.ts +0 -40
  112. package/primitives/accordion.tsx +0 -74
  113. package/primitives/action-button.tsx +0 -42
  114. package/primitives/alert-dialog.tsx +0 -185
  115. package/primitives/alert.tsx +0 -74
  116. package/primitives/apply-typography.tsx +0 -55
  117. package/primitives/aspect-ratio.tsx +0 -5
  118. package/primitives/avatar.tsx +0 -57
  119. package/primitives/background-beams.tsx +0 -142
  120. package/primitives/badge.tsx +0 -44
  121. package/primitives/breadcrumb.tsx +0 -130
  122. package/primitives/breakpoint-indicator.tsx +0 -19
  123. package/primitives/button.tsx +0 -82
  124. package/primitives/calendar.tsx +0 -72
  125. package/primitives/card.tsx +0 -97
  126. package/primitives/carousel.tsx +0 -237
  127. package/primitives/chat/chat-input-area.tsx +0 -87
  128. package/primitives/chat/chat-input.tsx +0 -71
  129. package/primitives/chat/files-preview.tsx +0 -330
  130. package/primitives/chat/index.ts +0 -6
  131. package/primitives/chat/json-form.tsx +0 -8
  132. package/primitives/chat/message-list.tsx +0 -307
  133. package/primitives/chat/message.tsx +0 -569
  134. package/primitives/chat/sqlite-preview.tsx +0 -215
  135. package/primitives/checkbox.tsx +0 -31
  136. package/primitives/collapsible.tsx +0 -9
  137. package/primitives/combobox.tsx +0 -239
  138. package/primitives/command.tsx +0 -149
  139. package/primitives/context-menu.tsx +0 -206
  140. package/primitives/copy-to-clipboard-icon.tsx +0 -60
  141. package/primitives/dialog-video-controller.tsx +0 -38
  142. package/primitives/dialog.tsx +0 -123
  143. package/primitives/dot-pattern.tsx +0 -57
  144. package/primitives/dots-loader.tsx +0 -13
  145. package/primitives/drawer.tsx +0 -110
  146. package/primitives/dropdown-menu.tsx +0 -199
  147. package/primitives/error-message.tsx +0 -19
  148. package/primitives/file-uploader.tsx +0 -200
  149. package/primitives/form.tsx +0 -183
  150. package/primitives/hover-card.tsx +0 -28
  151. package/primitives/icons/github.tsx +0 -14
  152. package/primitives/icons/index.ts +0 -18
  153. package/primitives/icons/youtube-logo.tsx +0 -59
  154. package/primitives/index-common.ts +0 -303
  155. package/primitives/index-next.ts +0 -4
  156. package/primitives/input-otp.tsx +0 -65
  157. package/primitives/input.tsx +0 -125
  158. package/primitives/label.tsx +0 -20
  159. package/primitives/list-adaptor.ts +0 -12
  160. package/primitives/list-box.tsx +0 -74
  161. package/primitives/loading-spinner.tsx +0 -33
  162. package/primitives/markdown-preview.tsx +0 -609
  163. package/primitives/mermaid.tsx +0 -196
  164. package/primitives/navigation-menu.tsx +0 -147
  165. package/primitives/next/image.tsx +0 -90
  166. package/primitives/next/index.ts +0 -7
  167. package/primitives/next/inline-icon.tsx +0 -36
  168. package/primitives/next/link-element.tsx +0 -109
  169. package/primitives/next/mdx-link.tsx +0 -22
  170. package/primitives/next/media-stack.tsx +0 -69
  171. package/primitives/next/nav-items.tsx +0 -45
  172. package/primitives/next/youtube-embed.tsx +0 -83
  173. package/primitives/pagination.tsx +0 -117
  174. package/primitives/popover.tsx +0 -32
  175. package/primitives/pretty-json-print.tsx +0 -28
  176. package/primitives/progress.tsx +0 -26
  177. package/primitives/prompt-textarea.tsx +0 -72
  178. package/primitives/qr-code.tsx +0 -112
  179. package/primitives/radio-group.tsx +0 -42
  180. package/primitives/resizable.tsx +0 -47
  181. package/primitives/scroll-area.tsx +0 -57
  182. package/primitives/search-input.tsx +0 -66
  183. package/primitives/select.tsx +0 -122
  184. package/primitives/separator.tsx +0 -25
  185. package/primitives/sheet.tsx +0 -139
  186. package/primitives/skeleton.tsx +0 -17
  187. package/primitives/slider.tsx +0 -62
  188. package/primitives/sonner.tsx +0 -35
  189. package/primitives/step-indicator.tsx +0 -69
  190. package/primitives/stepper.tsx +0 -272
  191. package/primitives/switch.tsx +0 -26
  192. package/primitives/table.tsx +0 -105
  193. package/primitives/tabs.tsx +0 -50
  194. package/primitives/text-area.tsx +0 -26
  195. package/primitives/text-link.tsx +0 -25
  196. package/primitives/textarea.tsx +0 -61
  197. package/primitives/textfield.tsx +0 -75
  198. package/primitives/toast.tsx +0 -30
  199. package/primitives/toggle-group.tsx +0 -63
  200. package/primitives/toggle.tsx +0 -44
  201. package/primitives/tooltip.tsx +0 -47
  202. package/primitives/video-player.tsx +0 -23
  203. package/public/r/accordion.json +0 -11
  204. package/public/r/alert.json +0 -11
  205. package/public/r/avatar.json +0 -11
  206. package/public/r/badge.json +0 -11
  207. package/public/r/button.json +0 -11
  208. package/public/r/card.json +0 -11
  209. package/public/r/checkbox.json +0 -11
  210. package/public/r/default.json +0 -6
  211. package/public/r/dialog.json +0 -11
  212. package/public/r/input.json +0 -11
  213. package/public/r/label.json +0 -11
  214. package/public/r/new-york.json +0 -6
  215. package/public/r/popover.json +0 -11
  216. package/public/r/select.json +0 -11
  217. package/public/r/table.json +0 -11
  218. package/public/r/tabs.json +0 -11
  219. package/public/r/toast.json +0 -11
  220. package/registry.json +0 -184
  221. package/src/button.ts +0 -1
  222. package/src/hooks/index.ts +0 -7
  223. package/src/hooks/use-click-away.ts +0 -31
  224. package/src/hooks/use-combined-refs.ts +0 -22
  225. package/src/hooks/use-copy-clipboard.ts +0 -30
  226. package/src/hooks/use-debounce.ts +0 -17
  227. package/src/hooks/use-fill-ids.ts +0 -25
  228. package/src/hooks/use-map.ts +0 -26
  229. package/src/hooks/use-measure.ts +0 -42
  230. package/src/hooks/use-reverse-video-playback.ts +0 -43
  231. package/src/hooks/use-scroll-restoration.ts +0 -50
  232. package/src/mcp/README.md +0 -141
  233. package/src/mcp/enhanced-server.ts +0 -1208
  234. package/src/mcp/index.ts +0 -518
  235. package/src/mcp/package.json +0 -10
  236. package/src/registry/api.ts +0 -164
  237. package/src/registry/index.ts +0 -60
  238. package/src/registry/package.json +0 -10
  239. package/src/utils.ts +0 -1
  240. package/tailwind/colors.tailwind.js +0 -53
  241. package/tailwind/fontFamily.tailwind.ts +0 -7
  242. package/tailwind/fontSize.tailwind.ts +0 -13
  243. package/tailwind/index.ts +0 -7
  244. package/tailwind/safelist.tailwind.js +0 -26
  245. package/tailwind/screens.tailwind.js +0 -8
  246. package/tailwind/spacing.tailwind.js +0 -65
  247. package/tailwind/tailwind.config.hanzo-preset.d.ts +0 -5
  248. package/tailwind/tailwind.config.hanzo-preset.js +0 -915
  249. package/tailwind/tw-font-desc.ts +0 -15
  250. package/tailwind/typo-plugin/get-plugin-styles.js +0 -679
  251. package/tailwind/typo-plugin/index.d.ts +0 -9
  252. package/tailwind/typo-plugin/index.js +0 -141
  253. package/tailwind/typo-plugin/utils.js +0 -60
  254. package/tailwind/typography-test.mdx +0 -35
  255. package/tailwind/z-index.tailwind.js +0 -71
  256. package/test/test-registry.js +0 -73
  257. package/test-imports.mjs +0 -19
  258. package/tsconfig.json +0 -22
  259. package/types/animation-def.ts +0 -3
  260. package/types/breakpoints.ts +0 -11
  261. package/types/bullet-item.ts +0 -10
  262. package/types/button-def.ts +0 -39
  263. package/types/dimensions.ts +0 -8
  264. package/types/grid-def.ts +0 -56
  265. package/types/image-def.ts +0 -32
  266. package/types/index.ts +0 -29
  267. package/types/link-def.ts +0 -56
  268. package/types/media-stack-def.ts +0 -31
  269. package/types/t-shirt-size.ts +0 -5
  270. package/types/tshirt-dimensions.ts +0 -20
  271. package/types/video-def.ts +0 -25
  272. package/util/blob.ts +0 -28
  273. package/util/copy-to-clipboard.ts +0 -17
  274. package/util/create-shadow-root.ts +0 -22
  275. package/util/date.ts +0 -83
  276. package/util/debounce.ts +0 -11
  277. package/util/file.ts +0 -15
  278. package/util/format-and-abbreviate-as-currency.ts +0 -125
  279. package/util/format-text.ts +0 -33
  280. package/util/format-to-max-char.ts +0 -68
  281. package/util/index-client.ts +0 -3
  282. package/util/index.ts +0 -9
  283. package/util/number-abbreviate.ts +0 -49
  284. package/util/specifier.ts +0 -43
  285. package/util/spread-to-transform.ts +0 -24
  286. package/util/step-animation.ts +0 -90
  287. package/util/timing.ts +0 -3
  288. package/util/toasts.tsx +0 -17
  289. package/util/two-way-map.ts +0 -19
  290. package/utils.ts +0 -9
@@ -1,59 +0,0 @@
1
- import React from 'react'
2
- import { LucideProps } from 'lucide-react'
3
-
4
- const YouTubeLogo: React.FC<LucideProps> = (props: LucideProps) => (
5
- <svg
6
- viewBox="0 0 256 256"
7
- xmlns="http://www.w3.org/2000/svg"
8
- {...props}
9
- >
10
- <g
11
- style={{
12
- stroke: 'none',
13
- strokeWidth: 0,
14
- strokeDasharray: 'none',
15
- strokeLinecap: 'butt',
16
- strokeLinejoin: 'miter',
17
- strokeMiterlimit: 10,
18
- fill: 'none',
19
- fillRule: 'nonzero',
20
- opacity: 1
21
- }}
22
- transform="translate(1.4065934065934016 1.4065934065934016) scale(2.81 2.81)"
23
- >
24
- <path
25
- d="M 88.119 23.338 c -1.035 -3.872 -4.085 -6.922 -7.957 -7.957 C 73.144 13.5 45 13.5 45 13.5 s -28.144 0 -35.162 1.881 c -3.872 1.035 -6.922 4.085 -7.957 7.957 C 0 30.356 0 45 0 45 s 0 14.644 1.881 21.662 c 1.035 3.872 4.085 6.922 7.957 7.957 C 16.856 76.5 45 76.5 45 76.5 s 28.144 0 35.162 -1.881 c 3.872 -1.035 6.922 -4.085 7.957 -7.957 C 90 59.644 90 45 90 45 S 90 30.356 88.119 23.338 z"
26
- style={{
27
- stroke: 'none',
28
- strokeWidth: 1,
29
- strokeDasharray: 'none',
30
- strokeLinecap: 'butt',
31
- strokeLinejoin: 'miter',
32
- strokeMiterlimit: 10,
33
- fill: 'red',
34
- fillRule: 'nonzero',
35
- opacity: 1
36
- }}
37
- transform=" matrix(1 0 0 1 0 0) "
38
- strokeLinecap="round"
39
- />
40
- <polygon
41
- points="36,58.5 59.38,45 36,31.5 "
42
- style={{
43
- stroke: 'none',
44
- strokeWidth: 1,
45
- strokeDasharray: 'none',
46
- strokeLinecap: 'butt',
47
- strokeLinejoin: 'miter',
48
- strokeMiterlimit: 10,
49
- fill: 'white',
50
- fillRule: 'nonzero',
51
- opacity: 1
52
- }}
53
- transform="matrix(1 0 0 1 0 0)"
54
- />
55
- </g>
56
- </svg>
57
- )
58
-
59
- export default YouTubeLogo
@@ -1,303 +0,0 @@
1
- export {
2
- Accordion,
3
- AccordionItem,
4
- AccordionTrigger,
5
- AccordionContent
6
- } from './accordion'
7
-
8
- export {
9
- AlertDialog,
10
- AlertDialogTrigger,
11
- AlertDialogContent,
12
- AlertDialogHeader,
13
- AlertDialogTitle,
14
- AlertDialogDescription,
15
- AlertDialogFooter,
16
- AlertDialogAction,
17
- AlertDialogCancel,
18
- } from './alert-dialog'
19
-
20
- export {
21
- Alert,
22
- AlertTitle,
23
- AlertDescription
24
- } from './alert'
25
-
26
- export {
27
- Avatar,
28
- AvatarImage,
29
- AvatarFallback
30
- } from './avatar'
31
-
32
- export {
33
- Breadcrumb,
34
- BreadcrumbList,
35
- BreadcrumbItem,
36
- BreadcrumbLink,
37
- BreadcrumbPage,
38
- BreadcrumbSeparator,
39
- BreadcrumbEllipsis,
40
- } from './breadcrumb'
41
-
42
- export {
43
- default as Button,
44
- type ButtonProps,
45
- buttonVariants,
46
- } from './button'
47
-
48
- export {
49
- Card,
50
- CardHeader,
51
- CardFooter,
52
- CardTitle,
53
- CardDescription,
54
- CardContent
55
- } from './card'
56
-
57
- export {
58
- type CarouselApi,
59
- type CarouselOptions,
60
- Carousel,
61
- CarouselContent,
62
- CarouselItem,
63
- CarouselNext,
64
- CarouselPrevious,
65
- } from './carousel'
66
-
67
- export {
68
- Command,
69
- CommandDialog,
70
- CommandInput,
71
- CommandList,
72
- CommandEmpty,
73
- CommandGroup,
74
- CommandItem,
75
- CommandShortcut,
76
- CommandSeparator,
77
- } from './command'
78
-
79
- export {
80
- Collapsible,
81
- CollapsibleTrigger,
82
- CollapsibleContent,
83
- } from './collapsible'
84
-
85
- export {
86
- ContextMenu,
87
- ContextMenuTrigger,
88
- ContextMenuContent,
89
- ContextMenuItem,
90
- ContextMenuCheckboxItem,
91
- ContextMenuRadioItem,
92
- ContextMenuLabel,
93
- ContextMenuSeparator,
94
- ContextMenuShortcut,
95
- ContextMenuGroup,
96
- ContextMenuPortal,
97
- ContextMenuSub,
98
- ContextMenuSubContent,
99
- ContextMenuSubTrigger,
100
- ContextMenuRadioGroup,
101
- } from './context-menu'
102
-
103
- export {
104
- type DrawerProps,
105
- Drawer,
106
- DrawerPortal,
107
- DrawerOverlay,
108
- DrawerTrigger,
109
- DrawerClose,
110
- DrawerContent,
111
- DrawerHandle,
112
- DrawerHeader,
113
- DrawerFooter,
114
- DrawerTitle,
115
- DrawerDescription,
116
- } from './drawer'
117
-
118
- export {
119
- Dialog,
120
- DialogPortal,
121
- DialogOverlay,
122
- DialogClose,
123
- DialogTrigger,
124
- DialogContent,
125
- DialogHeader,
126
- DialogFooter,
127
- DialogTitle,
128
- DialogDescription,
129
- } from './dialog'
130
-
131
- export {
132
- DropdownMenu,
133
- DropdownMenuTrigger,
134
- DropdownMenuContent,
135
- DropdownMenuItem,
136
- DropdownMenuCheckboxItem,
137
- DropdownMenuRadioItem,
138
- DropdownMenuLabel,
139
- DropdownMenuSeparator,
140
- DropdownMenuShortcut,
141
- DropdownMenuGroup,
142
- DropdownMenuPortal,
143
- DropdownMenuSub,
144
- DropdownMenuSubContent,
145
- DropdownMenuSubTrigger,
146
- DropdownMenuRadioGroup,
147
- } from './dropdown-menu'
148
-
149
- export {
150
- useFormField,
151
- Form,
152
- FormItem,
153
- FormLabel,
154
- FormControl,
155
- FormDescription,
156
- FormMessage,
157
- FormField,
158
- } from './form'
159
-
160
- export {
161
- HoverCard,
162
- HoverCardTrigger,
163
- HoverCardContent,
164
- } from './hover-card'
165
-
166
- export {
167
- InputOTP,
168
- InputOTPGroup,
169
- InputOTPSeparator,
170
- InputOTPSlot,
171
- } from './input-otp'
172
-
173
- export {
174
- navigationMenuTriggerStyle,
175
- NavigationMenu,
176
- NavigationMenuList,
177
- NavigationMenuItem,
178
- NavigationMenuContent,
179
- NavigationMenuTrigger,
180
- NavigationMenuLink,
181
- NavigationMenuIndicator,
182
- NavigationMenuViewport,
183
- } from './navigation-menu'
184
-
185
- export {
186
- Popover,
187
- PopoverAnchor,
188
- PopoverArrow,
189
- PopoverClose,
190
- PopoverContent,
191
- PopoverTrigger,
192
- } from './popover'
193
-
194
- export {
195
- ResizablePanelGroup,
196
- ResizablePanel,
197
- ResizableHandle,
198
- } from './resizable'
199
-
200
- export {
201
- Select,
202
- SelectGroup,
203
- SelectValue,
204
- SelectTrigger,
205
- SelectContent,
206
- SelectLabel,
207
- SelectItem,
208
- SelectSeparator,
209
- SelectScrollUpButton,
210
- SelectScrollDownButton,
211
- } from './select'
212
-
213
- export {
214
- Sheet,
215
- SheetPortal,
216
- SheetOverlay,
217
- SheetTrigger,
218
- SheetClose,
219
- SheetContent,
220
- SheetHeader,
221
- SheetFooter,
222
- SheetTitle,
223
- SheetDescription,
224
- } from './sheet'
225
-
226
- export {
227
- Table,
228
- TableHeader,
229
- TableBody,
230
- TableFooter,
231
- TableHead,
232
- TableRow,
233
- TableCell,
234
- TableCaption,
235
- } from './table'
236
-
237
- export {
238
- Tabs,
239
- TabsList,
240
- TabsTrigger,
241
- TabsContent
242
- } from './tabs'
243
-
244
- export * from './tooltip'
245
-
246
- export { default as ActionButton } from './action-button'
247
- export { default as ApplyTypography, type TypographySize} from './apply-typography'
248
- export { default as AspectRatio } from './aspect-ratio'
249
- export { default as Badge } from './badge'
250
- export { default as BreakpointIndicator } from './breakpoint-indicator'
251
- export { default as Calendar } from './calendar'
252
- export { default as Checkbox } from './checkbox'
253
- export { default as Combobox, type ComboboxTriggerProps } from './combobox'
254
- export { default as DialogVideoController } from './dialog-video-controller'
255
- export { default as Input } from './input'
256
- export { default as Label } from './label'
257
- export type { default as ListAdaptor } from './list-adaptor'
258
- export { default as ListBox } from './list-box'
259
- export { default as LoadingSpinner } from './loading-spinner'
260
- export { default as Progress } from './progress'
261
- export { RadioGroup, RadioGroupItem } from './radio-group'
262
- export { ScrollArea, ScrollBar } from './scroll-area'
263
- export { SearchInput } from './search-input'
264
- export { default as Separator } from './separator'
265
- export { default as Slider } from './slider'
266
- export { default as Skeleton } from './skeleton'
267
- export { default as StepIndicator } from './step-indicator'
268
- export { default as Switch } from './switch'
269
- export { default as TextArea } from './textarea'
270
- export { default as TextField } from './textfield'
271
- export { Toaster, toast } from './sonner'
272
- export { Toggle, toggleVariants } from './toggle'
273
- export { ToggleGroup, ToggleGroupItem } from './toggle-group'
274
- export { default as VideoPlayer } from './video-player'
275
-
276
- // Chat components
277
- export { ChatInput } from './chat/chat-input'
278
- export { ChatInputArea } from './chat/chat-input-area'
279
- export { FileList } from './chat/files-preview'
280
-
281
- // Additional components
282
- export { CopyToClipboardIcon } from './copy-to-clipboard-icon'
283
- export { DotsLoader } from './dots-loader'
284
- export { FileUploader } from './file-uploader'
285
- export { default as JsonForm } from './chat/json-form'
286
- export { MarkdownText, MarkdownPreview } from './markdown-preview'
287
- export { PrettyJsonPrint } from './pretty-json-print'
288
-
289
- // Re-export Tooltip components individually
290
- export {
291
- TooltipProvider,
292
- Tooltip,
293
- TooltipTrigger,
294
- TooltipContent,
295
- TooltipArrow,
296
- TooltipPortal,
297
- } from './tooltip'
298
-
299
- // Export icons
300
- export * as Icons from './icons'
301
-
302
- // Re-export assets for compatibility
303
- export * from '../assets'
@@ -1,4 +0,0 @@
1
- // Re-export everything from common primitives and Next.js specific components
2
- // Note: Using comment to avoid Turbopack issues with relative imports in symlinked packages
3
- export * from './index-common'
4
- export * from './next/index'
@@ -1,65 +0,0 @@
1
- 'use client'
2
- import * as React from 'react'
3
-
4
- import { OTPInput, type SlotProps } from 'input-otp'
5
- import { Dot } from 'lucide-react'
6
-
7
- import { cn } from '../util'
8
-
9
- const InputOTP = React.forwardRef<
10
- React.ElementRef<typeof OTPInput>,
11
- React.ComponentPropsWithoutRef<typeof OTPInput>
12
- >(({ className, ...props }, ref) => (
13
- <OTPInput
14
- ref={ref}
15
- containerClassName={cn('flex items-center gap-2', className)}
16
- {...props}
17
- />
18
- ))
19
- InputOTP.displayName = 'InputOTP'
20
-
21
- const InputOTPGroup = React.forwardRef<
22
- React.ElementRef<'div'>,
23
- React.ComponentPropsWithoutRef<'div'>
24
- >(({ className, ...props }, ref) => (
25
- <div ref={ref} className={cn('flex items-center', className)} {...props} />
26
- ))
27
- InputOTPGroup.displayName = 'InputOTPGroup'
28
-
29
- const InputOTPSlot = React.forwardRef<
30
- React.ElementRef<'div'>,
31
- SlotProps & React.ComponentPropsWithoutRef<'div'>
32
- >(({ char, hasFakeCaret, isActive, className, ...props }, ref) => {
33
- return (
34
- <div
35
- ref={ref}
36
- className={cn(
37
- 'relative flex h-10 w-10 items-center justify-center border-y border-r border-muted-3 text-sm ',
38
- 'transition-all first:rounded-l-md first:border-l last:rounded-r-md',
39
- isActive && 'z-above-content ring-2 ring-muted', // TODO: couldn't find: 'ring-offset-background'
40
- className
41
- )}
42
- {...props}
43
- >
44
- {char}
45
- {hasFakeCaret && (
46
- <div className='pointer-events-none absolute inset-0 flex items-center justify-center'>
47
- <div className='animate-caret-blink h-4 w-px bg-foreground duration-1000' />
48
- </div>
49
- )}
50
- </div>
51
- )
52
- })
53
- InputOTPSlot.displayName = 'InputOTPSlot'
54
-
55
- const InputOTPSeparator = React.forwardRef<
56
- React.ElementRef<'div'>,
57
- React.ComponentPropsWithoutRef<'div'>
58
- >(({ ...props }, ref) => (
59
- <div ref={ref} role='separator' {...props}>
60
- <Dot />
61
- </div>
62
- ))
63
- InputOTPSeparator.displayName = 'InputOTPSeparator'
64
-
65
- export { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator }
@@ -1,125 +0,0 @@
1
- import { EyeIcon, EyeOffIcon } from 'lucide-react';
2
- import * as React from 'react';
3
- import { useEffect, useImperativeHandle, useRef } from 'react';
4
-
5
- import { RefCallBack } from 'react-hook-form';
6
- import { cn } from '../src/utils';
7
- import { Badge } from './badge';
8
- import { Button } from './button';
9
-
10
- export interface InputProps
11
- extends React.InputHTMLAttributes<HTMLInputElement> {
12
- startAdornment?: React.ReactNode;
13
- endAdornment?: React.ReactNode;
14
- hidePasswordToggle?: boolean;
15
- ref?: React.RefObject<HTMLInputElement | null> | RefCallBack;
16
- }
17
-
18
- const Input = ({
19
- className,
20
- type,
21
- startAdornment,
22
- endAdornment,
23
- hidePasswordToggle,
24
- ref,
25
- ...props
26
- }: InputProps) => {
27
- const inputRef = useRef<HTMLInputElement>(null);
28
- const startAdornmentRef = useRef<HTMLDivElement>(null);
29
- const endAdornmentRef = useRef<HTMLDivElement>(null);
30
- const [showPassword, setShowPassword] = React.useState(false);
31
-
32
- const togglePasswordVisibility = () => {
33
- setShowPassword(!showPassword);
34
- };
35
-
36
- const style: React.CSSProperties = {};
37
- if (startAdornment) {
38
- style.paddingLeft = `${
39
- (startAdornmentRef?.current?.offsetWidth ?? 0) + 20
40
- }px`;
41
- }
42
- if (endAdornment) {
43
- style.paddingRight = `${
44
- (endAdornmentRef?.current?.offsetWidth ?? 0) + 20
45
- }px`;
46
- }
47
-
48
- useImperativeHandle(ref, () => inputRef.current!, []);
49
-
50
- useEffect(() => {
51
- if (props.autoFocus) {
52
- setTimeout(() => {
53
- // trick to wait the modal to be opened to focus
54
- inputRef?.current?.focus();
55
- }, 0);
56
- }
57
- }, [props.autoFocus]);
58
-
59
- const inputType = type === 'password' && showPassword ? 'text' : type;
60
-
61
- return (
62
- <>
63
- <input
64
- className={cn(
65
- 'h-input border-border-input bg-bg-secondary focus:border-border-input-focus disabled:bg-bg-input-disabled peer placeholder-shown:border-border-input text-text-default w-full rounded-lg border px-4 py-3 pt-8 text-sm font-medium placeholder-transparent outline outline-0 transition-all placeholder-shown:border focus:border focus:outline-0 disabled:border-0 disabled:text-gray-400',
66
- startAdornment && 'pl-[var(--custom-padding-left-input)]',
67
- endAdornment && 'pr-[var(--custom-padding-right-input)]',
68
- type === 'password' && 'pr-[60px]',
69
- className,
70
- )}
71
- placeholder=" "
72
- ref={inputRef}
73
- spellCheck={false}
74
- style={style}
75
- type={inputType}
76
- {...props}
77
- />
78
- {startAdornment ? (
79
- <Badge
80
- className="peer/adornment adornment absolute top-[30px] left-4"
81
- ref={startAdornmentRef}
82
- variant="inputAdornment"
83
- >
84
- {startAdornment}
85
- </Badge>
86
- ) : null}
87
- {endAdornment && typeof endAdornment === 'string' ? (
88
- <Badge
89
- className="peer/adornment adornment absolute top-[30px] right-4"
90
- ref={endAdornmentRef}
91
- variant="inputAdornment"
92
- >
93
- {endAdornment}
94
- </Badge>
95
- ) : null}
96
- {endAdornment &&
97
- typeof endAdornment !== 'string' &&
98
- React.isValidElement(endAdornment)
99
- ? React.cloneElement(endAdornment, {
100
- ref: endAdornmentRef,
101
- } as React.ComponentProps<typeof Badge>)
102
- : null}
103
- {type === 'password' && !hidePasswordToggle && (
104
- <Button
105
- aria-label={showPassword ? 'Hide password' : 'Show password'}
106
- className="absolute top-3 right-3"
107
- onClick={togglePasswordVisibility}
108
- size={'icon'}
109
- type="button"
110
- variant="tertiary"
111
- >
112
- {showPassword ? (
113
- <EyeOffIcon aria-hidden="true" className="h-4 w-4" />
114
- ) : (
115
- <EyeIcon aria-hidden="true" className="h-4 w-4" />
116
- )}
117
- </Button>
118
- )}
119
- </>
120
- );
121
- };
122
-
123
- Input.displayName = 'Input';
124
-
125
- export { Input };
@@ -1,20 +0,0 @@
1
- import * as LabelPrimitive from '@radix-ui/react-label';
2
- import { cva, type VariantProps } from 'class-variance-authority';
3
- import * as React from 'react';
4
-
5
- import { cn } from '../src/utils';
6
-
7
- const labelVariants = cva(
8
- 'text-sm leading-none font-medium peer-disabled:cursor-not-allowed peer-disabled:opacity-70',
9
- );
10
-
11
- const Label = ({
12
- className,
13
- ...props
14
- }: React.ComponentProps<typeof LabelPrimitive.Root> &
15
- VariantProps<typeof labelVariants>) => (
16
- <LabelPrimitive.Root className={cn(labelVariants(), className)} {...props} />
17
- );
18
- Label.displayName = LabelPrimitive.Root.displayName;
19
-
20
- export { Label };
@@ -1,12 +0,0 @@
1
- interface ListAdaptor<T> {
2
- getValue: (el: T) => string
3
- equals: (el1: T, el2: T) => boolean
4
- valueEquals: (el: T, v: string) => boolean
5
- getLabel?: (el: T) => string
6
- getImageUrl?: (el: T) => string | null
7
- isDisabled?: (el: T) => boolean
8
- }
9
-
10
- export {
11
- type ListAdaptor as default
12
- }
@@ -1,74 +0,0 @@
1
- 'use client'
2
- import React from 'react'
3
- import { cn } from '../util'
4
-
5
- function Item<T>({
6
- value,
7
- label,
8
- className,
9
- onClick,
10
- first=false,
11
- last=false,
12
- selected=false
13
- }:{
14
- value: T
15
- label: string
16
- className: string
17
- onClick: (val: T) => void
18
- first?: boolean
19
- last?: boolean
20
- selected?: boolean
21
- }) {
22
-
23
- return (
24
- <div
25
- className={cn(
26
- 'font-normal text-muted-1 px-3 py-1 cursor-pointer hover:text-foreground ',
27
- last ? '' : 'border-b',
28
- selected ? 'font-semibold text-accent hover:text-accent' : '',
29
- className
30
- )}
31
- onClick={() => {onClick(value)}}
32
- >
33
- <span>{label}</span>
34
- </div>
35
- )
36
- }
37
-
38
- function ListBox<T>({
39
- values,
40
- labels,
41
- onValueChange,
42
- value,
43
- isEqual,
44
- clx = '',
45
- itemClx = ''
46
- }:{
47
- values: T[]
48
- labels: string[]
49
- onValueChange: (val: T) => void
50
- value: T | undefined
51
- isEqual: (v1: T, v2: T) => boolean
52
- clx?: string
53
- itemClx?: string
54
- }): JSX.Element {
55
-
56
- return (
57
- <div className={cn('border rounded-md select-none', clx)} >
58
- {values.map((val, i) => (
59
- <Item<T>
60
- value={val}
61
- label={labels[i]}
62
- onClick={onValueChange}
63
- className={itemClx}
64
- first={i === 0}
65
- last={i === values.length - 1}
66
- selected={value && isEqual(val, value)}
67
- key={labels[i]}
68
- />
69
- ))}
70
- </div>
71
- )
72
- }
73
-
74
- export default ListBox
@@ -1,33 +0,0 @@
1
- import { cn } from '../util'
2
-
3
- // cf: https://github.com/hanzo-ui/ui/discussions/1694#discussioncomment-7851248
4
- const LoadingSpinner: React.FC<
5
- {
6
- size?: number
7
- className?: string
8
- }
9
- & React.SVGProps<SVGSVGElement>
10
- > = ({
11
- size = 24,
12
- className='',
13
- ...props
14
- }) => {
15
- return (
16
- <svg
17
- width={size}
18
- height={size}
19
- {...props}
20
- viewBox="0 0 24 24"
21
- fill="none"
22
- stroke="currentColor"
23
- strokeWidth="2"
24
- strokeLinecap="round"
25
- strokeLinejoin="round"
26
- className={cn("animate-spin", className)}
27
- >
28
- <path d="M21 12a9 9 0 1 1-6.219-8.56" />
29
- </svg>
30
- )
31
- }
32
-
33
- export default LoadingSpinner