@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,59 +0,0 @@
1
- import React from 'react'
2
- import { LucideProps } from 'lucide-react'
3
-
4
- const YouTubeLogo = (props) => (
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,4 +0,0 @@
1
- 'use client';
2
-
3
- // Re-export everything from the main index
4
- export * from './index-next';
@@ -1,304 +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
- buttonVariants,
45
- } from './button'
46
- export type { ButtonProps } 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
- Drawer,
105
- DrawerPortal,
106
- DrawerOverlay,
107
- DrawerTrigger,
108
- DrawerClose,
109
- DrawerContent,
110
- DrawerHandle,
111
- DrawerHeader,
112
- DrawerFooter,
113
- DrawerTitle,
114
- DrawerDescription,
115
- } from './drawer'
116
-
117
- export {
118
- Dialog,
119
- DialogPortal,
120
- DialogOverlay,
121
- DialogClose,
122
- DialogTrigger,
123
- DialogContent,
124
- DialogHeader,
125
- DialogFooter,
126
- DialogTitle,
127
- DialogDescription,
128
- } from './dialog'
129
-
130
- export {
131
- DropdownMenu,
132
- DropdownMenuTrigger,
133
- DropdownMenuContent,
134
- DropdownMenuItem,
135
- DropdownMenuCheckboxItem,
136
- DropdownMenuRadioItem,
137
- DropdownMenuLabel,
138
- DropdownMenuSeparator,
139
- DropdownMenuShortcut,
140
- DropdownMenuGroup,
141
- DropdownMenuPortal,
142
- DropdownMenuSub,
143
- DropdownMenuSubContent,
144
- DropdownMenuSubTrigger,
145
- DropdownMenuRadioGroup,
146
- } from './dropdown-menu'
147
-
148
- export { ErrorMessage } from './error-message'
149
-
150
- export {
151
- useFormField,
152
- Form,
153
- FormItem,
154
- FormLabel,
155
- FormControl,
156
- FormDescription,
157
- FormMessage,
158
- FormField,
159
- } from './form'
160
-
161
- export {
162
- HoverCard,
163
- HoverCardTrigger,
164
- HoverCardContent,
165
- } from './hover-card'
166
-
167
- export {
168
- InputOTP,
169
- InputOTPGroup,
170
- InputOTPSeparator,
171
- InputOTPSlot,
172
- } from './input-otp'
173
-
174
- export {
175
- navigationMenuTriggerStyle,
176
- NavigationMenu,
177
- NavigationMenuList,
178
- NavigationMenuItem,
179
- NavigationMenuContent,
180
- NavigationMenuTrigger,
181
- NavigationMenuLink,
182
- NavigationMenuIndicator,
183
- NavigationMenuViewport,
184
- } from './navigation-menu'
185
-
186
- export {
187
- Popover,
188
- PopoverAnchor,
189
- PopoverArrow,
190
- PopoverClose,
191
- PopoverContent,
192
- PopoverTrigger,
193
- } from './popover'
194
-
195
- export {
196
- ResizablePanelGroup,
197
- ResizablePanel,
198
- ResizableHandle,
199
- } from './resizable'
200
-
201
- export {
202
- Select,
203
- SelectGroup,
204
- SelectValue,
205
- SelectTrigger,
206
- SelectContent,
207
- SelectLabel,
208
- SelectItem,
209
- SelectSeparator,
210
- // SelectScrollUpButton, // Does not exist in select.tsx
211
- // SelectScrollDownButton, // Does not exist in select.tsx
212
- } from './select'
213
-
214
- export {
215
- Sheet,
216
- SheetPortal,
217
- SheetOverlay,
218
- SheetTrigger,
219
- SheetClose,
220
- SheetContent,
221
- SheetHeader,
222
- SheetFooter,
223
- SheetTitle,
224
- SheetDescription,
225
- } from './sheet'
226
-
227
- export {
228
- Table,
229
- TableHeader,
230
- TableBody,
231
- TableFooter,
232
- TableHead,
233
- TableRow,
234
- TableCell,
235
- TableCaption,
236
- } from './table'
237
-
238
- export {
239
- Tabs,
240
- TabsList,
241
- TabsTrigger,
242
- TabsContent
243
- } from './tabs'
244
-
245
- export * from './tooltip'
246
-
247
- export { default as ActionButton } from './action-button'
248
- export { default as ApplyTypography, type TypographySize} from './apply-typography'
249
- export { default as AspectRatio } from './aspect-ratio'
250
- export { default as Badge } from './badge'
251
- export { default as BreakpointIndicator } from './breakpoint-indicator'
252
- export { default as Calendar } from './calendar'
253
- export { default as Checkbox } from './checkbox'
254
- export { default as Combobox, type ComboboxTriggerProps } from './combobox'
255
- export { default as DialogVideoController } from './dialog-video-controller'
256
- export { default as Input } from './input'
257
- export { default as Label } from './label'
258
- export type { default as ListAdaptor } from './list-adaptor'
259
- export { default as ListBox } from './list-box'
260
- export { default as LoadingSpinner } from './loading-spinner'
261
- export { default as Progress } from './progress'
262
- export { RadioGroup, RadioGroupItem } from './radio-group'
263
- export { ScrollArea, ScrollBar } from './scroll-area'
264
- export { SearchInput } from './search-input'
265
- export { default as Separator } from './separator'
266
- export { default as Slider } from './slider'
267
- export { default as Skeleton } from './skeleton'
268
- export { default as StepIndicator } from './step-indicator'
269
- export { default as Switch } from './switch'
270
- export { Textarea } from './textarea'
271
- export { default as TextField } from './textfield'
272
- export { Toaster, toast } from './sonner'
273
- export { Toggle, toggleVariants } from './toggle'
274
- export { ToggleGroup, ToggleGroupItem } from './toggle-group'
275
- export { default as VideoPlayer } from './video-player'
276
-
277
- // Chat components
278
- export { ChatInput } from './chat/chat-input'
279
- export { ChatInputArea } from './chat/chat-input-area'
280
- // export { FileList } from './chat/files-preview' // Uses Tauri APIs not available in web
281
-
282
- // Additional components
283
- export { CopyToClipboardIcon } from './copy-to-clipboard-icon'
284
- export { DotsLoader } from './dots-loader'
285
- export { FileUploader } from './file-uploader'
286
- export { default as JsonForm } from './chat/json-form'
287
- export { MarkdownText, MarkdownPreview } from './markdown-preview'
288
- export { PrettyJsonPrint } from './pretty-json-print'
289
-
290
- // Re-export Tooltip components individually
291
- export {
292
- TooltipProvider,
293
- Tooltip,
294
- TooltipTrigger,
295
- TooltipContent,
296
- TooltipArrow,
297
- TooltipPortal,
298
- } from './tooltip'
299
-
300
- // Export icons
301
- export * as Icons from './icons'
302
-
303
- // Re-export assets for compatibility
304
- 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 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,128 +0,0 @@
1
- 'use client';
2
-
3
- import { EyeIcon, EyeOffIcon } from 'lucide-react';
4
- import React from 'react';
5
- import { useEffect, useImperativeHandle, useRef } from 'react';
6
-
7
- import { RefCallBack } from 'react-hook-form';
8
- import { cn } from '../src/utils';
9
- import { Badge } from './badge';
10
- import { Button } from './button';
11
-
12
- export interface InputProps
13
- extends React.InputHTMLAttributes<HTMLInputElement> {
14
- startAdornment?: React.ReactNode;
15
- endAdornment?: React.ReactNode;
16
- hidePasswordToggle?: boolean;
17
- ref?: React.RefObject<HTMLInputElement | null> | RefCallBack;
18
- }
19
-
20
- const Input = ({
21
- className,
22
- type,
23
- startAdornment,
24
- endAdornment,
25
- hidePasswordToggle,
26
- ref,
27
- ...props
28
- }: InputProps) => {
29
- const inputRef = useRef<HTMLInputElement>(null);
30
- const startAdornmentRef = useRef<HTMLDivElement>(null);
31
- const endAdornmentRef = useRef<HTMLDivElement>(null);
32
- const [showPassword, setShowPassword] = React.useState(false);
33
-
34
- const togglePasswordVisibility = () => {
35
- setShowPassword(!showPassword);
36
- };
37
-
38
- const style: React.CSSProperties = {};
39
- if (startAdornment) {
40
- style.paddingLeft = `${
41
- (startAdornmentRef?.current?.offsetWidth ?? 0) + 20
42
- }px`;
43
- }
44
- if (endAdornment) {
45
- style.paddingRight = `${
46
- (endAdornmentRef?.current?.offsetWidth ?? 0) + 20
47
- }px`;
48
- }
49
-
50
- useImperativeHandle(ref, () => inputRef.current!, []);
51
-
52
- useEffect(() => {
53
- if (props.autoFocus) {
54
- setTimeout(() => {
55
- // trick to wait the modal to be opened to focus
56
- inputRef?.current?.focus();
57
- }, 0);
58
- }
59
- }, [props.autoFocus]);
60
-
61
- const inputType = type === 'password' && showPassword ? 'text' : type;
62
-
63
- return (
64
- <>
65
- <input
66
- className={cn(
67
- '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',
68
- startAdornment && 'pl-[var(--custom-padding-left-input)]',
69
- endAdornment && 'pr-[var(--custom-padding-right-input)]',
70
- type === 'password' && 'pr-[60px]',
71
- className,
72
- )}
73
- placeholder=" "
74
- ref={inputRef}
75
- spellCheck={false}
76
- style={style}
77
- type={inputType}
78
- {...props}
79
- />
80
- {startAdornment ? (
81
- <Badge
82
- className="peer/adornment adornment absolute top-[30px] left-4"
83
- ref={startAdornmentRef}
84
- variant="inputAdornment"
85
- >
86
- {startAdornment}
87
- </Badge>
88
- ) : null}
89
- {endAdornment && typeof endAdornment === 'string' ? (
90
- <Badge
91
- className="peer/adornment adornment absolute top-[30px] right-4"
92
- ref={endAdornmentRef}
93
- variant="inputAdornment"
94
- >
95
- {endAdornment}
96
- </Badge>
97
- ) : null}
98
- {endAdornment &&
99
- typeof endAdornment !== 'string' &&
100
- React.isValidElement(endAdornment)
101
- ? React.cloneElement(endAdornment, {
102
- ref: endAdornmentRef,
103
- } as React.ComponentProps<typeof Badge>)
104
- : null}
105
- {type === 'password' && !hidePasswordToggle && (
106
- <Button
107
- aria-label={showPassword ? 'Hide password' : 'Show password'}
108
- className="absolute top-3 right-3"
109
- onClick={togglePasswordVisibility}
110
- size={'icon'}
111
- type="button"
112
- variant="tertiary"
113
- >
114
- {showPassword ? (
115
- <EyeOffIcon aria-hidden="true" className="h-4 w-4" />
116
- ) : (
117
- <EyeIcon aria-hidden="true" className="h-4 w-4" />
118
- )}
119
- </Button>
120
- )}
121
- </>
122
- );
123
- };
124
-
125
- Input.displayName = 'Input';
126
-
127
- export { Input };
128
- export default Input;
@@ -1,21 +0,0 @@
1
- import * as LabelPrimitive from '@radix-ui/react-label';
2
- import { cva, type VariantProps } from 'class-variance-authority';
3
- import 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 };
21
- export default 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