@hanzo/ui 5.0.2 → 5.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 (371) hide show
  1. package/dist/accordion.js +1 -0
  2. package/dist/accordion.mjs +1 -0
  3. package/dist/alert-dialog.js +1 -0
  4. package/dist/alert-dialog.mjs +1 -0
  5. package/dist/alert.js +1 -0
  6. package/dist/alert.mjs +1 -0
  7. package/dist/avatar.js +1 -0
  8. package/dist/avatar.mjs +1 -0
  9. package/dist/badge.js +1 -0
  10. package/dist/badge.mjs +1 -0
  11. package/dist/breadcrumb.js +1 -0
  12. package/dist/breadcrumb.mjs +1 -0
  13. package/dist/calendar.js +1 -0
  14. package/dist/calendar.mjs +1 -0
  15. package/dist/carousel.js +1 -0
  16. package/dist/carousel.mjs +1 -0
  17. package/dist/checkbox.js +1 -0
  18. package/dist/checkbox.mjs +1 -0
  19. package/dist/chunk-3H5S2OQ3.mjs +1 -0
  20. package/dist/chunk-5GRJ7UQX.js +1 -0
  21. package/dist/chunk-63HNMH7C.js +1 -0
  22. package/dist/chunk-72TOQ4DM.mjs +1 -0
  23. package/dist/chunk-7AEFTV5R.mjs +1 -0
  24. package/dist/chunk-7M4AVV2R.js +1 -0
  25. package/dist/chunk-DKPVJSBC.js +1 -0
  26. package/dist/chunk-EI7MMDWY.js +1 -0
  27. package/dist/chunk-GANGDIZG.mjs +1 -0
  28. package/dist/chunk-GRGT2Z4K.js +1 -0
  29. package/dist/chunk-JCUUC6NY.mjs +1 -0
  30. package/dist/chunk-JUQMWLIN.js +1 -0
  31. package/dist/chunk-PRVEIITE.js +1 -0
  32. package/dist/chunk-SH52AKNZ.js +1 -0
  33. package/dist/chunk-TU67EJEW.mjs +1 -0
  34. package/dist/chunk-WN5KN73U.mjs +1 -0
  35. package/dist/chunk-YSXGDEY5.mjs +1 -0
  36. package/dist/chunk-Z76OOVUE.mjs +1 -0
  37. package/dist/collapsible.js +1 -0
  38. package/dist/collapsible.mjs +1 -0
  39. package/dist/command.js +1 -0
  40. package/dist/command.mjs +1 -0
  41. package/dist/context-menu.js +1 -0
  42. package/dist/context-menu.mjs +1 -0
  43. package/dist/dialog.js +1 -0
  44. package/dist/dialog.mjs +1 -0
  45. package/dist/drawer.js +1 -0
  46. package/dist/drawer.mjs +1 -0
  47. package/dist/dropdown-menu.js +1 -0
  48. package/dist/dropdown-menu.mjs +1 -0
  49. package/dist/form.js +1 -0
  50. package/dist/form.mjs +1 -0
  51. package/dist/hover-card.js +1 -0
  52. package/dist/hover-card.mjs +1 -0
  53. package/dist/index.js +1 -9079
  54. package/dist/index.mjs +1 -8700
  55. package/dist/input-otp.js +1 -0
  56. package/dist/input-otp.mjs +1 -0
  57. package/dist/lib/utils.js +1 -0
  58. package/dist/lib/utils.mjs +1 -0
  59. package/dist/navigation-menu.js +1 -0
  60. package/dist/navigation-menu.mjs +1 -0
  61. package/dist/popover.js +1 -0
  62. package/dist/popover.mjs +1 -0
  63. package/dist/progress.js +1 -0
  64. package/dist/progress.mjs +1 -0
  65. package/dist/radio-group.js +1 -0
  66. package/dist/radio-group.mjs +1 -0
  67. package/dist/resizable.js +1 -0
  68. package/dist/resizable.mjs +1 -0
  69. package/dist/scroll-area.js +1 -0
  70. package/dist/scroll-area.mjs +1 -0
  71. package/dist/select.js +1 -0
  72. package/dist/select.mjs +1 -0
  73. package/dist/separator.js +1 -0
  74. package/dist/separator.mjs +1 -0
  75. package/dist/sheet.js +1 -0
  76. package/dist/sheet.mjs +1 -0
  77. package/dist/skeleton.js +1 -0
  78. package/dist/skeleton.mjs +1 -0
  79. package/dist/slider.js +1 -0
  80. package/dist/slider.mjs +1 -0
  81. package/dist/sonner.js +1 -0
  82. package/dist/sonner.mjs +1 -0
  83. package/dist/src/utils.js +1 -0
  84. package/dist/src/utils.mjs +1 -0
  85. package/dist/switch.js +1 -0
  86. package/dist/switch.mjs +1 -0
  87. package/dist/table.js +1 -0
  88. package/dist/table.mjs +1 -0
  89. package/dist/tabs.js +1 -0
  90. package/dist/tabs.mjs +1 -0
  91. package/dist/tailwind/index.js +1 -0
  92. package/dist/tailwind/index.mjs +1 -0
  93. package/dist/textarea.js +1 -0
  94. package/dist/textarea.mjs +1 -0
  95. package/dist/toggle-group.js +1 -0
  96. package/dist/toggle-group.mjs +1 -0
  97. package/dist/toggle.js +1 -0
  98. package/dist/toggle.mjs +1 -0
  99. package/dist/tooltip.js +1 -0
  100. package/dist/tooltip.mjs +1 -0
  101. package/dist/types/index.js +1 -0
  102. package/dist/types/index.mjs +1 -0
  103. package/package.json +110 -81
  104. package/assets/ai-icons.tsx +0 -207
  105. package/assets/crypto.tsx +0 -33
  106. package/assets/file-type-icon.tsx +0 -66
  107. package/assets/file.tsx +0 -45
  108. package/assets/general.tsx +0 -2318
  109. package/assets/hanzo-logo.svg +0 -9
  110. package/assets/hanzo-logo.tsx +0 -17
  111. package/assets/index.ts +0 -122
  112. package/assets/index.tsx +0 -4
  113. package/assets/llm-provider.tsx +0 -1094
  114. package/blocks/auth/index.ts +0 -6
  115. package/blocks/auth/login-2fa.tsx +0 -165
  116. package/blocks/auth/login-basic.tsx +0 -94
  117. package/blocks/auth/login-social.tsx +0 -148
  118. package/blocks/auth/magic-link.tsx +0 -129
  119. package/blocks/auth/password-reset.tsx +0 -97
  120. package/blocks/auth/signup.tsx +0 -157
  121. package/blocks/components/accordian-block.tsx +0 -48
  122. package/blocks/components/block-component-props.ts +0 -11
  123. package/blocks/components/bullet-cards-block.tsx +0 -46
  124. package/blocks/components/card-block/index.tsx +0 -171
  125. package/blocks/components/card-block/link-out-button.tsx +0 -20
  126. package/blocks/components/card-block/util.ts +0 -28
  127. package/blocks/components/carte-blanche-block/index.tsx +0 -127
  128. package/blocks/components/carte-blanche-block/variant-content-left.tsx +0 -49
  129. package/blocks/components/content.tsx +0 -70
  130. package/blocks/components/cta-block.tsx +0 -115
  131. package/blocks/components/enh-heading-block.tsx +0 -204
  132. package/blocks/components/grid-block/grid-block-mutator.ts +0 -12
  133. package/blocks/components/grid-block/index.tsx +0 -83
  134. package/blocks/components/grid-block/mutator-registry.ts +0 -10
  135. package/blocks/components/grid-block/table-borders.mutator.ts +0 -47
  136. package/blocks/components/group-block.tsx +0 -83
  137. package/blocks/components/heading-block.tsx +0 -88
  138. package/blocks/components/image-block.tsx +0 -111
  139. package/blocks/components/index.ts +0 -30
  140. package/blocks/components/screenful-block/content.tsx +0 -123
  141. package/blocks/components/screenful-block/index.tsx +0 -107
  142. package/blocks/components/screenful-block/poster-background.tsx +0 -34
  143. package/blocks/components/screenful-block/video-background.tsx +0 -45
  144. package/blocks/components/space-block.tsx +0 -66
  145. package/blocks/components/video-block.tsx +0 -138
  146. package/blocks/data-display/activity-feed.tsx +0 -242
  147. package/blocks/data-display/data-table.tsx +0 -235
  148. package/blocks/data-display/stats-grid.tsx +0 -194
  149. package/blocks/def/accordian-block.ts +0 -14
  150. package/blocks/def/block.ts +0 -7
  151. package/blocks/def/bullet-cards-block.ts +0 -22
  152. package/blocks/def/card-block.ts +0 -22
  153. package/blocks/def/carte-blanche-block.ts +0 -21
  154. package/blocks/def/cta-block.ts +0 -19
  155. package/blocks/def/element-block.ts +0 -11
  156. package/blocks/def/enh-heading-block.ts +0 -44
  157. package/blocks/def/grid-block.ts +0 -16
  158. package/blocks/def/group-block.ts +0 -11
  159. package/blocks/def/heading-block.ts +0 -15
  160. package/blocks/def/image-block.ts +0 -31
  161. package/blocks/def/index.ts +0 -35
  162. package/blocks/def/screenful-block.ts +0 -54
  163. package/blocks/def/space-block.ts +0 -64
  164. package/blocks/def/video-block.ts +0 -9
  165. package/blocks/ecommerce/checkout.tsx +0 -242
  166. package/blocks/ecommerce/index.ts +0 -7
  167. package/blocks/ecommerce/product-detail.tsx +0 -257
  168. package/blocks/ecommerce/product-grid.tsx +0 -148
  169. package/blocks/ecommerce/shopping-cart.tsx +0 -181
  170. package/blocks/index.ts +0 -2
  171. package/blocks/marketing/cta-section.tsx +0 -207
  172. package/blocks/marketing/faq.tsx +0 -159
  173. package/blocks/marketing/features-grid.tsx +0 -156
  174. package/blocks/marketing/hero-section.tsx +0 -192
  175. package/blocks/marketing/index.ts +0 -6
  176. package/blocks/marketing/pricing-table.tsx +0 -121
  177. package/blocks/marketing/testimonials.tsx +0 -196
  178. package/components/index.ts +0 -9
  179. package/dist/index.js.map +0 -1
  180. package/dist/index.mjs.map +0 -1
  181. package/dist/tailwind.js +0 -2025
  182. package/dist/tailwind.js.map +0 -1
  183. package/dist/tailwind.mjs +0 -2013
  184. package/dist/tailwind.mjs.map +0 -1
  185. package/dist/types.js +0 -59
  186. package/dist/types.js.map +0 -1
  187. package/dist/types.mjs +0 -53
  188. package/dist/types.mjs.map +0 -1
  189. package/dist/utils.js +0 -30
  190. package/dist/utils.js.map +0 -1
  191. package/dist/utils.mjs +0 -26
  192. package/dist/utils.mjs.map +0 -1
  193. package/frameworks/core/index.ts +0 -6
  194. package/frameworks/core/utils/index.ts +0 -64
  195. package/frameworks/react/components/button.tsx +0 -26
  196. package/frameworks/react/components/index.ts +0 -5
  197. package/frameworks/react/hooks/index.ts +0 -5
  198. package/frameworks/react/index.ts +0 -9
  199. package/frameworks/react/package.json +0 -8
  200. package/frameworks/react/utils/index.ts +0 -2
  201. package/frameworks/react-native/index.ts +0 -9
  202. package/frameworks/react-native/package.json +0 -8
  203. package/frameworks/registry.json +0 -371
  204. package/frameworks/setup.sh +0 -69
  205. package/frameworks/svelte/index.ts +0 -9
  206. package/frameworks/svelte/package.json +0 -8
  207. package/frameworks/tracker.json +0 -1854
  208. package/frameworks/vue/index.ts +0 -9
  209. package/frameworks/vue/package.json +0 -8
  210. package/helpers/file.ts +0 -33
  211. package/helpers/memoization.ts +0 -40
  212. package/primitives/accordion.tsx +0 -74
  213. package/primitives/action-button.tsx +0 -42
  214. package/primitives/alert-dialog.tsx +0 -185
  215. package/primitives/alert.tsx +0 -74
  216. package/primitives/apply-typography.tsx +0 -55
  217. package/primitives/aspect-ratio.tsx +0 -5
  218. package/primitives/avatar.tsx +0 -57
  219. package/primitives/background-beams.tsx +0 -142
  220. package/primitives/badge.tsx +0 -45
  221. package/primitives/breadcrumb.tsx +0 -130
  222. package/primitives/breakpoint-indicator.tsx +0 -19
  223. package/primitives/button.tsx +0 -72
  224. package/primitives/calendar.tsx +0 -72
  225. package/primitives/card.tsx +0 -97
  226. package/primitives/carousel.tsx +0 -238
  227. package/primitives/chat/chat-input-area.tsx +0 -88
  228. package/primitives/chat/chat-input.tsx +0 -71
  229. package/primitives/chat/files-preview.tsx +0 -331
  230. package/primitives/chat/index.ts +0 -6
  231. package/primitives/chat/json-form.tsx +0 -8
  232. package/primitives/chat/message-list.tsx +0 -308
  233. package/primitives/chat/message.tsx +0 -569
  234. package/primitives/chat/sqlite-preview.tsx +0 -215
  235. package/primitives/checkbox.tsx +0 -32
  236. package/primitives/collapsible.tsx +0 -9
  237. package/primitives/combobox.tsx +0 -239
  238. package/primitives/command.tsx +0 -151
  239. package/primitives/context-menu.tsx +0 -206
  240. package/primitives/copy-to-clipboard-icon.tsx +0 -60
  241. package/primitives/dialog-video-controller.tsx +0 -38
  242. package/primitives/dialog.tsx +0 -128
  243. package/primitives/dot-pattern.tsx +0 -57
  244. package/primitives/dots-loader.tsx +0 -13
  245. package/primitives/drawer.tsx +0 -113
  246. package/primitives/dropdown-menu.tsx +0 -199
  247. package/primitives/error-message.tsx +0 -19
  248. package/primitives/file-uploader.tsx +0 -203
  249. package/primitives/form.tsx +0 -185
  250. package/primitives/hover-card.tsx +0 -28
  251. package/primitives/icons/github.tsx +0 -14
  252. package/primitives/icons/index.ts +0 -18
  253. package/primitives/icons/youtube-logo.tsx +0 -59
  254. package/primitives/index-client.ts +0 -4
  255. package/primitives/index-common.ts +0 -304
  256. package/primitives/index-next.ts +0 -4
  257. package/primitives/input-otp.tsx +0 -65
  258. package/primitives/input.tsx +0 -128
  259. package/primitives/label.tsx +0 -21
  260. package/primitives/list-adaptor.ts +0 -12
  261. package/primitives/list-box.tsx +0 -74
  262. package/primitives/loading-spinner.tsx +0 -33
  263. package/primitives/markdown-preview.tsx +0 -612
  264. package/primitives/mermaid.tsx +0 -196
  265. package/primitives/navigation-menu.tsx +0 -147
  266. package/primitives/next/image.tsx +0 -91
  267. package/primitives/next/index.ts +0 -7
  268. package/primitives/next/inline-icon.tsx +0 -36
  269. package/primitives/next/link-element.tsx +0 -109
  270. package/primitives/next/mdx-link.tsx +0 -22
  271. package/primitives/next/media-stack.tsx +0 -52
  272. package/primitives/next/nav-items.tsx +0 -45
  273. package/primitives/next/youtube-embed.tsx +0 -83
  274. package/primitives/pagination.tsx +0 -117
  275. package/primitives/popover.tsx +0 -34
  276. package/primitives/pretty-json-print.tsx +0 -28
  277. package/primitives/progress.tsx +0 -27
  278. package/primitives/prompt-textarea.tsx +0 -72
  279. package/primitives/qr-code.tsx +0 -112
  280. package/primitives/radio-group.tsx +0 -42
  281. package/primitives/resizable.tsx +0 -47
  282. package/primitives/scroll-area.tsx +0 -57
  283. package/primitives/search-input.tsx +0 -66
  284. package/primitives/select.tsx +0 -122
  285. package/primitives/separator.tsx +0 -26
  286. package/primitives/sheet.tsx +0 -139
  287. package/primitives/skeleton.tsx +0 -18
  288. package/primitives/slider.tsx +0 -63
  289. package/primitives/sonner.tsx +0 -35
  290. package/primitives/step-indicator.tsx +0 -69
  291. package/primitives/stepper.tsx +0 -272
  292. package/primitives/switch.tsx +0 -27
  293. package/primitives/table.tsx +0 -105
  294. package/primitives/tabs.tsx +0 -50
  295. package/primitives/text-area.tsx +0 -26
  296. package/primitives/text-link.tsx +0 -27
  297. package/primitives/textarea.tsx +0 -64
  298. package/primitives/textfield.tsx +0 -78
  299. package/primitives/toast.tsx +0 -30
  300. package/primitives/toggle-group.tsx +0 -63
  301. package/primitives/toggle.tsx +0 -44
  302. package/primitives/tooltip.tsx +0 -47
  303. package/primitives/video-player.tsx +0 -23
  304. package/src/button.ts +0 -1
  305. package/src/hooks/index.ts +0 -7
  306. package/src/hooks/use-click-away.ts +0 -31
  307. package/src/hooks/use-combined-refs.ts +0 -22
  308. package/src/hooks/use-copy-clipboard.ts +0 -30
  309. package/src/hooks/use-debounce.ts +0 -17
  310. package/src/hooks/use-fill-ids.ts +0 -25
  311. package/src/hooks/use-map.ts +0 -26
  312. package/src/hooks/use-measure.ts +0 -42
  313. package/src/hooks/use-reverse-video-playback.ts +0 -43
  314. package/src/hooks/use-scroll-restoration.ts +0 -50
  315. package/src/index-lean.ts +0 -87
  316. package/src/index.ts +0 -54
  317. package/src/mcp/README.md +0 -141
  318. package/src/mcp/enhanced-server.ts +0 -1208
  319. package/src/mcp/index.ts +0 -518
  320. package/src/mcp/package.json +0 -10
  321. package/src/registry/api.ts +0 -164
  322. package/src/registry/index.ts +0 -60
  323. package/src/registry/package.json +0 -10
  324. package/src/utils.ts +0 -19
  325. package/tailwind/colors.tailwind.js +0 -53
  326. package/tailwind/fontFamily.tailwind.ts +0 -7
  327. package/tailwind/fontSize.tailwind.ts +0 -13
  328. package/tailwind/index.ts +0 -7
  329. package/tailwind/safelist.tailwind.js +0 -26
  330. package/tailwind/screens.tailwind.js +0 -8
  331. package/tailwind/spacing.tailwind.js +0 -65
  332. package/tailwind/tailwind.config.hanzo-preset.d.ts +0 -5
  333. package/tailwind/tailwind.config.hanzo-preset.js +0 -915
  334. package/tailwind/tw-font-desc.ts +0 -15
  335. package/tailwind/typo-plugin/get-plugin-styles.js +0 -679
  336. package/tailwind/typo-plugin/index.d.ts +0 -9
  337. package/tailwind/typo-plugin/index.js +0 -141
  338. package/tailwind/typo-plugin/utils.js +0 -60
  339. package/tailwind/typography-test.mdx +0 -35
  340. package/tailwind/z-index.tailwind.js +0 -71
  341. package/types/animation-def.ts +0 -3
  342. package/types/breakpoints.ts +0 -11
  343. package/types/bullet-item.ts +0 -10
  344. package/types/button-def.ts +0 -39
  345. package/types/dimensions.ts +0 -8
  346. package/types/grid-def.ts +0 -56
  347. package/types/image-def.ts +0 -32
  348. package/types/index.ts +0 -30
  349. package/types/link-def.ts +0 -56
  350. package/types/media-stack-def.ts +0 -31
  351. package/types/t-shirt-size.ts +0 -5
  352. package/types/tshirt-dimensions.ts +0 -20
  353. package/types/video-def.ts +0 -25
  354. package/util/blob.ts +0 -33
  355. package/util/copy-to-clipboard.ts +0 -17
  356. package/util/create-shadow-root.ts +0 -22
  357. package/util/date.ts +0 -84
  358. package/util/debounce.ts +0 -11
  359. package/util/file.ts +0 -15
  360. package/util/format-and-abbreviate-as-currency.ts +0 -125
  361. package/util/format-text.ts +0 -34
  362. package/util/format-to-max-char.ts +0 -68
  363. package/util/index-client.ts +0 -3
  364. package/util/index.ts +0 -112
  365. package/util/number-abbreviate.ts +0 -49
  366. package/util/specifier.ts +0 -43
  367. package/util/spread-to-transform.ts +0 -25
  368. package/util/step-animation.ts +0 -90
  369. package/util/timing.ts +0 -3
  370. package/util/toasts.tsx +0 -17
  371. package/util/two-way-map.ts +0 -19
@@ -1,63 +0,0 @@
1
- import * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group';
2
- import { VariantProps } from 'class-variance-authority';
3
- import React from 'react';
4
-
5
- import { cn } from '../src/utils';
6
- import { toggleVariants } from './toggle';
7
-
8
- const ToggleGroupContext = React.createContext<
9
- VariantProps<typeof toggleVariants>
10
- >({
11
- size: 'default',
12
- variant: 'default',
13
- });
14
-
15
- const ToggleGroup = ({
16
- className,
17
- variant,
18
- size,
19
- children,
20
- ...props
21
- }: React.ComponentProps<typeof ToggleGroupPrimitive.Root> &
22
- VariantProps<typeof toggleVariants>) => (
23
- <ToggleGroupPrimitive.Root
24
- className={cn('flex items-center justify-center gap-1', className)}
25
- {...props}
26
- >
27
- <ToggleGroupContext.Provider value={{ variant, size }}>
28
- {children}
29
- </ToggleGroupContext.Provider>
30
- </ToggleGroupPrimitive.Root>
31
- );
32
-
33
- ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
34
-
35
- const ToggleGroupItem = ({
36
- className,
37
- children,
38
- variant,
39
- size,
40
- ...props
41
- }: React.ComponentProps<typeof ToggleGroupPrimitive.Item> &
42
- VariantProps<typeof toggleVariants>) => {
43
- const context = React.useContext(ToggleGroupContext);
44
-
45
- return (
46
- <ToggleGroupPrimitive.Item
47
- className={cn(
48
- toggleVariants({
49
- variant: context.variant || variant,
50
- size: context.size || size,
51
- }),
52
- className,
53
- )}
54
- {...props}
55
- >
56
- {children}
57
- </ToggleGroupPrimitive.Item>
58
- );
59
- };
60
-
61
- ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;
62
-
63
- export { ToggleGroup, ToggleGroupItem };
@@ -1,44 +0,0 @@
1
- import * as TogglePrimitive from '@radix-ui/react-toggle';
2
- import { cva, type VariantProps } from 'class-variance-authority';
3
- import React from 'react';
4
-
5
- import { cn } from '../src/utils';
6
-
7
- const toggleVariants = cva(
8
- 'ring-offset-background hover:bg-muted hover:text-text-secondary focus-visible:ring-ring data-[state=on]:bg-bg-quaternary inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50 data-[state=on]:text-white',
9
- {
10
- variants: {
11
- variant: {
12
- default: 'bg-bg-tertiary',
13
- outline:
14
- 'border-divider hover:bg-bg-tertiary border bg-transparent hover:text-white',
15
- },
16
- size: {
17
- default: 'h-10 px-3',
18
- sm: 'h-9 px-2.5',
19
- lg: 'h-11 px-5',
20
- },
21
- },
22
- defaultVariants: {
23
- variant: 'default',
24
- size: 'default',
25
- },
26
- },
27
- );
28
-
29
- const Toggle = ({
30
- className,
31
- variant,
32
- size,
33
- ...props
34
- }: React.ComponentProps<typeof TogglePrimitive.Root> &
35
- VariantProps<typeof toggleVariants>) => (
36
- <TogglePrimitive.Root
37
- className={cn(toggleVariants({ variant, size, className }))}
38
- {...props}
39
- />
40
- );
41
-
42
- Toggle.displayName = TogglePrimitive.Root.displayName;
43
-
44
- export { Toggle, toggleVariants };
@@ -1,47 +0,0 @@
1
- import * as TooltipPrimitive from '@radix-ui/react-tooltip';
2
- import React from 'react';
3
-
4
- import { cn } from '../src/utils';
5
-
6
- const TooltipProvider = TooltipPrimitive.Provider;
7
-
8
- const Tooltip = TooltipPrimitive.Root;
9
-
10
- const TooltipTrigger = TooltipPrimitive.Trigger;
11
-
12
- const TooltipPortal = TooltipPrimitive.Portal;
13
- const TooltipArrow = TooltipPrimitive.TooltipArrow;
14
-
15
- const TooltipContent = ({
16
- className,
17
- sideOffset = 4,
18
- showArrow = true,
19
- ...props
20
- }: React.ComponentProps<typeof TooltipPrimitive.Content> & {
21
- showArrow?: boolean;
22
- }) => (
23
- <TooltipPrimitive.Content
24
- className={cn(
25
- 'border-divider bg-bg-dark animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 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 relative z-50 max-w-[280px] rounded-lg border px-3 py-1.5 text-xs text-white',
26
- className,
27
- )}
28
- sideOffset={sideOffset}
29
- {...props}
30
- >
31
- {props.children}
32
-
33
- {showArrow && (
34
- <TooltipPrimitive.Arrow className="fill-bg-dark -my-px drop-shadow-[0_1px_0_#313336]" />
35
- )}
36
- </TooltipPrimitive.Content>
37
- );
38
- TooltipContent.displayName = TooltipPrimitive.Content.displayName;
39
-
40
- export {
41
- Tooltip,
42
- TooltipTrigger,
43
- TooltipContent,
44
- TooltipProvider,
45
- TooltipPortal,
46
- TooltipArrow,
47
- };
@@ -1,23 +0,0 @@
1
- 'use client'
2
- import React from 'react'
3
-
4
- interface VideoProps extends React.ComponentPropsWithoutRef<"video"> {
5
- sources: string[]
6
- }
7
-
8
- const VideoPlayer = React.forwardRef<HTMLVideoElement, VideoProps>(
9
- ({
10
- sources,
11
- ...rest
12
- }, ref) => {
13
-
14
- return (
15
- <video ref={ref} {...rest} >
16
- {sources.map((source, index) => (
17
- <source key={index} src={source} />
18
- ))}
19
- </video>
20
- )
21
- })
22
-
23
- export default VideoPlayer
package/src/button.ts DELETED
@@ -1 +0,0 @@
1
- export * from '../../../app/registry/new-york/ui/button'
@@ -1,7 +0,0 @@
1
- export * from './use-debounce';
2
- export * from './use-map';
3
- export * from './use-measure';
4
- export * from './use-click-away';
5
- export * from './use-copy-clipboard';
6
- export * from './use-reverse-video-playback';
7
- export * from './use-scroll-restoration';
@@ -1,31 +0,0 @@
1
- import React from 'react';
2
-
3
- export function useClickAway<T extends Element>(
4
- cb: (e: Event) => void,
5
- ): React.RefObject<T | null> {
6
- const ref = React.useRef<T | null>(null);
7
- const refCb = React.useRef(cb);
8
-
9
- React.useLayoutEffect(() => {
10
- refCb.current = cb;
11
- });
12
-
13
- React.useEffect(() => {
14
- const handler = (e: Event) => {
15
- const element = ref.current;
16
- if (element && !element.contains(e.target as Node)) {
17
- refCb.current(e);
18
- }
19
- };
20
-
21
- document.addEventListener('mousedown', handler);
22
- document.addEventListener('touchstart', handler);
23
-
24
- return () => {
25
- document.removeEventListener('mousedown', handler);
26
- document.removeEventListener('touchstart', handler);
27
- };
28
- }, []);
29
-
30
- return ref;
31
- }
@@ -1,22 +0,0 @@
1
- import type React from 'react';
2
- import { useEffect, useRef } from 'react';
3
-
4
- function useCombinedRefs<T>(
5
- ...refs: React.ForwardedRef<T>[]
6
- ): React.RefObject<T | null> {
7
- const targetRef = useRef<T>(null);
8
- useEffect(() => {
9
- refs.forEach((ref) => {
10
- if (!ref) return;
11
-
12
- if (typeof ref === 'function') {
13
- ref(targetRef.current);
14
- } else {
15
- ref.current = targetRef.current;
16
- }
17
- });
18
- }, [refs]);
19
- return targetRef;
20
- }
21
-
22
- export { useCombinedRefs };
@@ -1,30 +0,0 @@
1
- import { useState } from 'react';
2
- import { copyToClipboard } from '../../util/copy-to-clipboard';
3
-
4
- type UseCopyClipboardProps = {
5
- string?: string;
6
- onCopyClipboard?: () => void;
7
- };
8
-
9
- export const useCopyClipboard = ({
10
- string,
11
- onCopyClipboard,
12
- }: UseCopyClipboardProps) => {
13
- const [isCopied, setIsCopied] = useState(false);
14
-
15
- let timeout: ReturnType<typeof setTimeout>;
16
- const onCopy = async () => {
17
- if (!string) return;
18
- const string_ = string.trim();
19
- if (onCopyClipboard && typeof onCopyClipboard === 'function') {
20
- onCopyClipboard();
21
- } else {
22
- await copyToClipboard(string_);
23
- }
24
- setIsCopied(true);
25
- clearTimeout(timeout);
26
- timeout = setTimeout(() => setIsCopied(false), 1000);
27
- };
28
-
29
- return { isCopied, onCopy };
30
- };
@@ -1,17 +0,0 @@
1
- import React from 'react';
2
-
3
- export function useDebounce(value: string, delay = 500) {
4
- const [debouncedValue, setDebouncedValue] = React.useState(value);
5
-
6
- React.useEffect(() => {
7
- const handler: NodeJS.Timeout = setTimeout(() => {
8
- setDebouncedValue(value);
9
- }, delay);
10
-
11
- return () => {
12
- clearTimeout(handler);
13
- };
14
- }, [value, delay]);
15
-
16
- return debouncedValue;
17
- }
@@ -1,25 +0,0 @@
1
- import { useMemo } from 'react';
2
-
3
- export const useFillId = (namespace: string) => {
4
- const id = `lobe-icons-${namespace.toLowerCase()}-fill`;
5
- return useMemo(
6
- () => ({
7
- fill: `url(#${id})`,
8
- id,
9
- }),
10
- [namespace],
11
- );
12
- };
13
-
14
- export const useFillIds = (namespace: string, length: number) => {
15
- return useMemo(() => {
16
- const ids = Array.from({ length }, (_, i) => {
17
- const id = `lobe-icons-${namespace.toLowerCase()}-fill-${i}`;
18
- return {
19
- fill: `url(#${id})`,
20
- id,
21
- };
22
- });
23
- return ids;
24
- }, [namespace]);
25
- };
@@ -1,26 +0,0 @@
1
- import React from 'react';
2
-
3
- export function useMap<Key, Value>(initialState: [Key, Value][] = []) {
4
- const mapRef = React.useRef(new Map<Key, Value>(initialState));
5
- const [, reRender] = React.useReducer((x) => x + 1, 0);
6
-
7
- mapRef.current.set = (...args) => {
8
- Map.prototype.set.apply(mapRef.current, args);
9
- reRender();
10
- return mapRef.current;
11
- };
12
-
13
- mapRef.current.clear = (...args) => {
14
- Map.prototype.clear.apply(mapRef.current, args);
15
- reRender();
16
- };
17
-
18
- mapRef.current.delete = (...args) => {
19
- const res = Map.prototype.delete.apply(mapRef.current, args);
20
- reRender();
21
-
22
- return res;
23
- };
24
-
25
- return mapRef.current;
26
- }
@@ -1,42 +0,0 @@
1
- import React from 'react';
2
-
3
- export function useMeasure<T extends Element>(): [
4
- React.RefCallback<T>,
5
- {
6
- width: number | null;
7
- height: number | null;
8
- },
9
- ] {
10
- const [dimensions, setDimensions] = React.useState<{
11
- width: number | null;
12
- height: number | null;
13
- }>({
14
- width: null,
15
- height: null,
16
- });
17
-
18
- const previousObserver = React.useRef<ResizeObserver | null>(null);
19
-
20
- const customRef = React.useCallback((node: T) => {
21
- if (previousObserver.current) {
22
- previousObserver.current.disconnect();
23
- previousObserver.current = null;
24
- }
25
-
26
- if (node?.nodeType === Node.ELEMENT_NODE) {
27
- const observer = new ResizeObserver(([entry]) => {
28
- if (entry && entry.borderBoxSize) {
29
- const { inlineSize: width, blockSize: height } =
30
- entry.borderBoxSize[0];
31
-
32
- setDimensions({ width, height });
33
- }
34
- });
35
-
36
- observer.observe(node);
37
- previousObserver.current = observer;
38
- }
39
- }, []);
40
-
41
- return [customRef, dimensions];
42
- }
@@ -1,43 +0,0 @@
1
- import { useEffect, useRef, useState } from 'react';
2
-
3
- export const useReverseVideoPlayback = () => {
4
- const videoRef = useRef<HTMLVideoElement>(null);
5
-
6
- const [isReversing, setIsReversing] = useState(false);
7
- const playReverse = () => {
8
- if (!videoRef.current) return;
9
- const video = videoRef.current;
10
- const reversePlayback = () => {
11
- if (video.currentTime <= 0) {
12
- setIsReversing(false);
13
- void video.play();
14
- return;
15
- }
16
- video.currentTime -= 0.023;
17
- requestAnimationFrame(reversePlayback);
18
- };
19
- reversePlayback();
20
- };
21
-
22
- useEffect(() => {
23
- const videoElement = videoRef.current;
24
- if (videoElement) {
25
- const handleVideoEnd = () => {
26
- if (isReversing) {
27
- setIsReversing(false);
28
- videoElement.currentTime = 0;
29
- void videoElement.play();
30
- } else {
31
- setIsReversing(true);
32
- playReverse();
33
- }
34
- };
35
-
36
- videoElement.addEventListener('ended', handleVideoEnd);
37
- return () => {
38
- videoElement.removeEventListener('ended', handleVideoEnd);
39
- };
40
- }
41
- }, [isReversing]);
42
- return videoRef;
43
- };
@@ -1,50 +0,0 @@
1
- import React from 'react';
2
-
3
- export const useScrollRestoration = ({
4
- key,
5
- containerRef,
6
- scrollTopStateRef,
7
- }: {
8
- key: string;
9
- containerRef: React.RefObject<HTMLElement | null>;
10
- scrollTopStateRef: React.RefObject<{ [key: string]: number } | null>;
11
- }): void => {
12
- const saveScroll = React.useCallback(() => {
13
- if (scrollTopStateRef.current) {
14
- scrollTopStateRef.current[`${key}-scrollTop`] =
15
- containerRef?.current?.scrollTop ?? 0;
16
- }
17
- }, [containerRef, scrollTopStateRef, key]);
18
-
19
- const restoreScroll = React.useCallback(() => {
20
- if (containerRef.current) {
21
- containerRef.current.scrollTo({
22
- top: scrollTopStateRef?.current?.[`${key}-scrollTop`] ?? 0,
23
- });
24
- }
25
- }, [containerRef, key, scrollTopStateRef]);
26
-
27
- React.useLayoutEffect(() => {
28
- return () => {
29
- saveScroll();
30
- };
31
- }, [saveScroll]);
32
-
33
- React.useEffect(() => {
34
- // Small delay to ensure content is rendered
35
- const timeoutId = setTimeout(restoreScroll, 100);
36
- return () => clearTimeout(timeoutId);
37
- }, [restoreScroll]);
38
-
39
- React.useEffect(() => {
40
- restoreScroll();
41
- }, [restoreScroll]);
42
-
43
- React.useEffect(() => {
44
- const element = containerRef?.current;
45
- element?.addEventListener('scroll', saveScroll);
46
- return () => {
47
- element?.removeEventListener('scroll', saveScroll);
48
- };
49
- }, [containerRef, saveScroll]);
50
- };
package/src/index-lean.ts DELETED
@@ -1,87 +0,0 @@
1
- /**
2
- * @hanzo/ui - Lean Build (Minimal Bundle)
3
- *
4
- * This is a lightweight version that excludes heavy dependencies.
5
- * Heavy components can be imported separately when needed:
6
- *
7
- * - Syntax highlighting: import from '@hanzo/ui/components/syntax-highlighter'
8
- * - Markdown: import from '@hanzo/ui/components/markdown'
9
- * - Math rendering: import from '@hanzo/ui/components/katex'
10
- * - Animations: import from 'framer-motion' directly
11
- */
12
-
13
- // Core utilities - must be imported first
14
- export { cn } from './utils'
15
- export * from './utils'
16
-
17
- // Hooks (lightweight)
18
- export * from './hooks'
19
-
20
- // Only export the core Radix primitives used in the desktop app
21
- // Button
22
- export { Button, buttonVariants } from '../primitives/button'
23
- export type { ButtonProps } from '../primitives/button'
24
-
25
- // Form components
26
- export * from '../primitives/form'
27
- export * from '../primitives/input'
28
- export * from '../primitives/label'
29
- export * from '../primitives/textarea'
30
- export * from '../primitives/checkbox'
31
- export * from '../primitives/radio-group'
32
- export * from '../primitives/select'
33
- export * from '../primitives/switch'
34
-
35
- // Layout
36
- export * from '../primitives/card'
37
- export * from '../primitives/separator'
38
- export * from '../primitives/scroll-area'
39
- export * from '../primitives/tabs'
40
- export * from '../primitives/accordion'
41
-
42
- // Feedback
43
- export * from '../primitives/alert'
44
- export * from '../primitives/alert-dialog'
45
- export * from '../primitives/dialog'
46
- export * from '../primitives/toast'
47
- export * from '../primitives/progress'
48
- export * from '../primitives/skeleton'
49
- export * from '../primitives/badge'
50
-
51
- // Navigation
52
- export * from '../primitives/dropdown-menu'
53
- export * from '../primitives/command'
54
- export * from '../primitives/breadcrumb'
55
- export * from '../primitives/sheet'
56
-
57
- // Data display
58
- export * from '../primitives/table'
59
- export * from '../primitives/avatar'
60
- export * from '../primitives/hover-card'
61
- export * from '../primitives/popover'
62
- export * from '../primitives/tooltip'
63
-
64
- // Other essentials
65
- export * from '../primitives/collapsible'
66
- export * from '../primitives/context-menu'
67
- export * from '../primitives/resizable'
68
- export * from '../primitives/slider'
69
- export * from '../primitives/toggle'
70
- export * from '../primitives/toggle-group'
71
-
72
- // Re-export assets (icons are lightweight)
73
- export * from '../assets'
74
-
75
- // Re-export utilities
76
- export * from '../util'
77
- export * from '../util/index-client'
78
-
79
- // Types
80
- export * from '../types'
81
-
82
- // NOTE: Heavy components excluded from lean build:
83
- // - MarkdownText (react-markdown + plugins)
84
- // - SyntaxHighlighter (react-syntax-highlighter)
85
- // - KatexRender (katex)
86
- // - Animated components (framer-motion)
87
- // - MediaStack, Mapbox, Spline3D, PlotlyChart
package/src/index.ts DELETED
@@ -1,54 +0,0 @@
1
- /**
2
- * @hanzo/ui - Complete UI Library
3
- *
4
- * This file exports all components, utilities, hooks, and blocks from the @hanzo/ui library.
5
- * Components are organized by category and support tree-shaking.
6
- */
7
-
8
- // Core utilities - must be imported first
9
- export { cn } from './utils'
10
- export * from './utils'
11
-
12
- // Registry exports for tooling
13
- export * from './registry'
14
-
15
- // MCP (Model Context Protocol) support
16
- export * from './mcp'
17
-
18
- // Hooks
19
- export * from './hooks'
20
-
21
- // Re-export all primitives
22
- export * from '../primitives/index-next'
23
- export * from '../primitives/index-common'
24
-
25
- // Re-export assets
26
- export * from '../assets'
27
-
28
- // Re-export blocks
29
- export * from '../blocks'
30
-
31
- // Re-export components (if different from primitives)
32
- export * from '../components'
33
-
34
- // Re-export types
35
- export * from '../types'
36
-
37
- // Re-export utilities
38
- export * from '../util'
39
- export * from '../util/index-client'
40
-
41
- // Re-export tailwind configuration helpers
42
- export * from '../tailwind'
43
-
44
- // Theme provider for brand support
45
- export { ThemeProvider } from '../style/theme-provider'
46
-
47
- // Framework-specific exports
48
- export * as React from '../frameworks/react'
49
- export * as Vue from '../frameworks/vue'
50
- export * as Svelte from '../frameworks/svelte'
51
- export * as ReactNative from '../frameworks/react-native'
52
-
53
- // Export version
54
- export const VERSION = '4.8.0'