@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
@@ -0,0 +1,12 @@
1
+ export { default as AnimationDef } from './animation-def.ts';
2
+ export { Breakpoint, Breakpoints } from './breakpoints.ts';
3
+ export { default as BulletItem } from './bullet-item.ts';
4
+ export { ButtonDef, ButtonModalDef, ButtonModalProps, SubmitServerAction } from './button-def.ts';
5
+ export { default as Dimensions } from './dimensions.ts';
6
+ export { COMMON_GRID_1_COL, COMMON_GRID_2_COL, COMMON_GRID_3_COL, COMMON_GRID_4_COL, GridColumnSpec, default as GridDef } from './grid-def.ts';
7
+ export { default as ImageDef } from './image-def.ts';
8
+ export { default as LinkDef } from './link-def.ts';
9
+ export { default as TShirtDimensions } from './tshirt-dimensions.ts';
10
+ export { default as TShirtSize } from './t-shirt-size.ts';
11
+ export { default as VideoDef } from './video-def.ts';
12
+ export { MediaStackDef, MediaTransform } from './media-stack-def.ts';
@@ -0,0 +1,12 @@
1
+ export { default as AnimationDef } from './animation-def.ts';
2
+ export { Breakpoint, Breakpoints } from './breakpoints.ts';
3
+ export { default as BulletItem } from './bullet-item.ts';
4
+ export { ButtonDef, ButtonModalDef, ButtonModalProps, SubmitServerAction } from './button-def.ts';
5
+ export { default as Dimensions } from './dimensions.ts';
6
+ export { COMMON_GRID_1_COL, COMMON_GRID_2_COL, COMMON_GRID_3_COL, COMMON_GRID_4_COL, GridColumnSpec, default as GridDef } from './grid-def.ts';
7
+ export { default as ImageDef } from './image-def.ts';
8
+ export { default as LinkDef } from './link-def.ts';
9
+ export { default as TShirtDimensions } from './tshirt-dimensions.ts';
10
+ export { default as TShirtSize } from './t-shirt-size.ts';
11
+ export { default as VideoDef } from './video-def.ts';
12
+ export { MediaStackDef, MediaTransform } from './media-stack-def.ts';
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // types/index.ts
21
+ var types_exports = {};
22
+ __export(types_exports, {
23
+ Breakpoints: () => Breakpoints,
24
+ COMMON_GRID_1_COL: () => COMMON_GRID_1_COL,
25
+ COMMON_GRID_2_COL: () => COMMON_GRID_2_COL,
26
+ COMMON_GRID_3_COL: () => COMMON_GRID_3_COL,
27
+ COMMON_GRID_4_COL: () => COMMON_GRID_4_COL
28
+ });
29
+ module.exports = __toCommonJS(types_exports);
30
+
31
+ // tailwind/screens.tailwind.js
32
+ var screens_tailwind_default = {
33
+ xs: "0px",
34
+ // <-- phone
35
+ sm: "480px",
36
+ // phone --><-- sm tablets / narrow
37
+ md: "768px",
38
+ // sm tablets / narrow -->
39
+ lg: "1024px",
40
+ xl: "1280px",
41
+ "2xl": "1500px"
42
+ };
43
+
44
+ // types/breakpoints.ts
45
+ var Breakpoints = Object.keys(screens_tailwind_default);
46
+
47
+ // types/grid-def.ts
48
+ var COMMON_GRID_1_COL = {
49
+ at: {
50
+ xs: { columns: 1, gap: 2 },
51
+ md: { columns: 1, gap: 3 },
52
+ lg: { columns: 1, gap: 6 }
53
+ },
54
+ mobile: { columns: 1, gap: 2 }
55
+ };
56
+ var COMMON_GRID_2_COL = {
57
+ at: {
58
+ xs: { columns: 1, gap: 2 },
59
+ md: { columns: 2, gap: 3 },
60
+ lg: { columns: 2, gap: 6 }
61
+ },
62
+ mobile: { columns: 1, gap: 2 }
63
+ };
64
+ var COMMON_GRID_3_COL = {
65
+ at: {
66
+ xs: { columns: 1, gap: 2 },
67
+ md: { columns: 3, gap: 3 },
68
+ lg: { columns: 3, gap: 6 }
69
+ },
70
+ mobile: { columns: 1, gap: 2 }
71
+ };
72
+ var COMMON_GRID_4_COL = {
73
+ at: {
74
+ xs: { columns: 1, gap: 2 },
75
+ md: { columns: 2, gap: 3 },
76
+ lg: { columns: 4, gap: 6 }
77
+ },
78
+ mobile: { columns: 1, gap: 2 }
79
+ };
@@ -0,0 +1,56 @@
1
+ // tailwind/screens.tailwind.js
2
+ var screens_tailwind_default = {
3
+ xs: "0px",
4
+ // <-- phone
5
+ sm: "480px",
6
+ // phone --><-- sm tablets / narrow
7
+ md: "768px",
8
+ // sm tablets / narrow -->
9
+ lg: "1024px",
10
+ xl: "1280px",
11
+ "2xl": "1500px"
12
+ };
13
+
14
+ // types/breakpoints.ts
15
+ var Breakpoints = Object.keys(screens_tailwind_default);
16
+
17
+ // types/grid-def.ts
18
+ var COMMON_GRID_1_COL = {
19
+ at: {
20
+ xs: { columns: 1, gap: 2 },
21
+ md: { columns: 1, gap: 3 },
22
+ lg: { columns: 1, gap: 6 }
23
+ },
24
+ mobile: { columns: 1, gap: 2 }
25
+ };
26
+ var COMMON_GRID_2_COL = {
27
+ at: {
28
+ xs: { columns: 1, gap: 2 },
29
+ md: { columns: 2, gap: 3 },
30
+ lg: { columns: 2, gap: 6 }
31
+ },
32
+ mobile: { columns: 1, gap: 2 }
33
+ };
34
+ var COMMON_GRID_3_COL = {
35
+ at: {
36
+ xs: { columns: 1, gap: 2 },
37
+ md: { columns: 3, gap: 3 },
38
+ lg: { columns: 3, gap: 6 }
39
+ },
40
+ mobile: { columns: 1, gap: 2 }
41
+ };
42
+ var COMMON_GRID_4_COL = {
43
+ at: {
44
+ xs: { columns: 1, gap: 2 },
45
+ md: { columns: 2, gap: 3 },
46
+ lg: { columns: 4, gap: 6 }
47
+ },
48
+ mobile: { columns: 1, gap: 2 }
49
+ };
50
+ export {
51
+ Breakpoints,
52
+ COMMON_GRID_1_COL,
53
+ COMMON_GRID_2_COL,
54
+ COMMON_GRID_3_COL,
55
+ COMMON_GRID_4_COL
56
+ };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@hanzo/ui",
3
- "version": "4.6.0",
4
- "description": "Library that contains shared UI primitives, support for a common design system, and other boilerplate support.",
3
+ "version": "4.7.0",
4
+ "description": "Multi-framework UI library with React, Vue, Svelte, and React Native support. Based on shadcn/ui with comprehensive framework coverage.",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/",
7
7
  "access": "public",
@@ -9,6 +9,17 @@
9
9
  },
10
10
  "author": "Hanzo AI, Inc.",
11
11
  "license": "BSD-3-Clause",
12
+ "main": "./dist/index.js",
13
+ "module": "./dist/index.mjs",
14
+ "types": "./dist/index.d.ts",
15
+ "sideEffects": false,
16
+ "files": [
17
+ "dist",
18
+ "style",
19
+ "bin",
20
+ "README.md",
21
+ "LICENSE"
22
+ ],
12
23
  "repository": {
13
24
  "type": "git",
14
25
  "url": "git+https://github.com/hanzoai/react-sdk.git",
@@ -31,11 +42,21 @@
31
42
  "scripts": {
32
43
  "lat": "npm show @hanzo/ui version",
33
44
  "pub": "npm publish",
34
- "tc": "tsc",
35
- "build": "tsc -p tsconfig.json",
45
+ "tc": "tsc --project tsconfig.build.json",
46
+ "build": "npm run clean && npm run build:tsup",
47
+ "build:tsup": "tsup --config tsup.config.minimal.ts",
48
+ "build:full": "tsup --config tsup.config.production.ts",
49
+ "build:frameworks": "npm run build",
50
+ "build:watch": "tsup --watch",
51
+ "build:check": "tsc --project tsconfig.build.json --noEmit",
52
+ "clean": "rm -rf dist",
53
+ "prepublishOnly": "npm run build",
36
54
  "update-registry": "node ./bin/update-registry.js",
37
55
  "registry:mcp": "node ./bin/cli.js registry:mcp",
38
- "registry:mcp:http": "node ./bin/cli.js registry:mcp --http"
56
+ "registry:mcp:http": "node ./bin/cli.js registry:mcp --http",
57
+ "analyze:frameworks": "node analyze-frameworks.js",
58
+ "test": "jest test/multi-framework.test.js",
59
+ "test:frameworks": "jest test/multi-framework.test.js --verbose"
39
60
  },
40
61
  "bin": {
41
62
  "@hanzo/ui": "./bin/cli.js",
@@ -43,30 +64,133 @@
43
64
  },
44
65
  "exports": {
45
66
  ".": {
46
- "import": "./primitives/index-next.ts",
47
- "require": "./primitives/index-common.ts",
48
- "default": "./primitives/index-next.ts"
49
- },
50
- "./assets": "./assets/index.ts",
51
- "./blocks": "./blocks/index.ts",
52
- "./components": "./components/index.ts",
53
- "./primitives": "./primitives/index-next.ts",
54
- "./primitives-common": "./primitives/index-common.ts",
67
+ "types": "./dist/index.d.ts",
68
+ "import": "./dist/index.mjs",
69
+ "require": "./dist/index.js"
70
+ },
71
+ "./assets": {
72
+ "types": "./dist/assets/index.d.ts",
73
+ "import": "./dist/assets/index.mjs",
74
+ "require": "./dist/assets/index.js"
75
+ },
76
+ "./assets/*": {
77
+ "types": "./dist/assets/*.d.ts",
78
+ "import": "./dist/assets/*.mjs",
79
+ "require": "./dist/assets/*.js"
80
+ },
81
+ "./blocks": {
82
+ "types": "./dist/blocks/index.d.ts",
83
+ "import": "./dist/blocks/index.mjs",
84
+ "require": "./dist/blocks/index.js"
85
+ },
86
+ "./blocks/*": {
87
+ "types": "./dist/blocks/*.d.ts",
88
+ "import": "./dist/blocks/*.mjs",
89
+ "require": "./dist/blocks/*.js"
90
+ },
91
+ "./components": {
92
+ "types": "./dist/components/index.d.ts",
93
+ "import": "./dist/components/index.mjs",
94
+ "require": "./dist/components/index.js"
95
+ },
96
+ "./components/*": {
97
+ "types": "./dist/components/*.d.ts",
98
+ "import": "./dist/components/*.mjs",
99
+ "require": "./dist/components/*.js"
100
+ },
101
+ "./primitives": {
102
+ "types": "./dist/primitives/index-next.d.ts",
103
+ "import": "./dist/primitives/index-next.mjs",
104
+ "require": "./dist/primitives/index-next.js"
105
+ },
106
+ "./primitives/*": {
107
+ "types": "./dist/primitives/*.d.ts",
108
+ "import": "./dist/primitives/*.mjs",
109
+ "require": "./dist/primitives/*.js"
110
+ },
111
+ "./primitives-common": {
112
+ "types": "./dist/primitives/index-common.d.ts",
113
+ "import": "./dist/primitives/index-common.mjs",
114
+ "require": "./dist/primitives/index-common.js"
115
+ },
55
116
  "./registry": {
56
- "types": "./dist/registry/index.d.ts",
57
- "default": "./dist/registry/index.js"
117
+ "types": "./dist/src/registry/index.d.ts",
118
+ "import": "./dist/src/registry/index.mjs",
119
+ "require": "./dist/src/registry/index.js"
58
120
  },
59
121
  "./style/*": "./style/*",
60
- "./tailwind": "./tailwind/index.ts",
61
- "./types": "./types/index.ts",
62
- "./util": "./util/index.ts",
63
- "./util-client": "./util/index-client.ts",
64
- "./utils": "./src/utils.ts",
65
- "./lib/utils": "./src/utils.ts",
122
+ "./tailwind": {
123
+ "types": "./dist/tailwind/index.d.ts",
124
+ "import": "./dist/tailwind/index.mjs",
125
+ "require": "./dist/tailwind/index.js"
126
+ },
127
+ "./tailwind/*": {
128
+ "types": "./dist/tailwind/*.d.ts",
129
+ "import": "./dist/tailwind/*.mjs",
130
+ "require": "./dist/tailwind/*.js"
131
+ },
132
+ "./types": {
133
+ "types": "./dist/types/index.d.ts",
134
+ "import": "./dist/types/index.mjs",
135
+ "require": "./dist/types/index.js"
136
+ },
137
+ "./types/*": {
138
+ "types": "./dist/types/*.d.ts",
139
+ "import": "./dist/types/*.mjs",
140
+ "require": "./dist/types/*.js"
141
+ },
142
+ "./util": {
143
+ "types": "./dist/util/index.d.ts",
144
+ "import": "./dist/util/index.mjs",
145
+ "require": "./dist/util/index.js"
146
+ },
147
+ "./util/*": {
148
+ "types": "./dist/util/*.d.ts",
149
+ "import": "./dist/util/*.mjs",
150
+ "require": "./dist/util/*.js"
151
+ },
152
+ "./util-client": {
153
+ "types": "./dist/util/index-client.d.ts",
154
+ "import": "./dist/util/index-client.mjs",
155
+ "require": "./dist/util/index-client.js"
156
+ },
157
+ "./utils": {
158
+ "types": "./dist/src/utils.d.ts",
159
+ "import": "./dist/src/utils.mjs",
160
+ "require": "./dist/src/utils.js"
161
+ },
162
+ "./lib/utils": {
163
+ "types": "./dist/src/utils.d.ts",
164
+ "import": "./dist/src/utils.mjs",
165
+ "require": "./dist/src/utils.js"
166
+ },
66
167
  "./mcp": {
67
- "types": "./dist/mcp/index.d.ts",
68
- "default": "./dist/mcp/index.js"
69
- }
168
+ "types": "./dist/src/mcp/index.d.ts",
169
+ "import": "./dist/src/mcp/index.mjs",
170
+ "require": "./dist/src/mcp/index.js"
171
+ },
172
+ "./react": {
173
+ "types": "./dist/frameworks/react/index.d.ts",
174
+ "import": "./dist/frameworks/react/index.mjs",
175
+ "require": "./dist/frameworks/react/index.js"
176
+ },
177
+ "./vue": {
178
+ "types": "./dist/frameworks/vue/index.d.ts",
179
+ "import": "./dist/frameworks/vue/index.mjs",
180
+ "require": "./dist/frameworks/vue/index.js"
181
+ },
182
+ "./svelte": {
183
+ "svelte": "./frameworks/svelte/index.ts",
184
+ "types": "./dist/frameworks/svelte/index.d.ts",
185
+ "import": "./dist/frameworks/svelte/index.mjs",
186
+ "require": "./dist/frameworks/svelte/index.js"
187
+ },
188
+ "./react-native": {
189
+ "types": "./dist/frameworks/react-native/index.d.ts",
190
+ "import": "./dist/frameworks/react-native/index.mjs",
191
+ "require": "./dist/frameworks/react-native/index.js"
192
+ },
193
+ "./package.json": "./package.json"
70
194
  },
71
195
  "dependencies": {
72
196
  "@hanzo/react-drawer": "^0.1.8",
@@ -154,7 +278,9 @@
154
278
  "@types/react": "18.3.1",
155
279
  "@types/react-dom": "18.3.1",
156
280
  "glob": "^11.0.2",
281
+ "jest": "^30.1.3",
157
282
  "tailwindcss": "3.4.14",
283
+ "tsup": "^8.5.0",
158
284
  "typescript": "5.6.3"
159
285
  }
160
286
  }
@@ -1,73 +0,0 @@
1
- # Using @hanzo/ui with AI Assistants
2
-
3
- This guide explains how to use @hanzo/ui with AI assistants through the Model Context Protocol (MCP).
4
-
5
- ## Getting Started
6
-
7
- 1. Install the package:
8
-
9
- ```bash
10
- npm install @hanzo/ui
11
- ```
12
-
13
- 2. Start the MCP server:
14
-
15
- ```bash
16
- npx @hanzo/ui registry:mcp
17
- ```
18
-
19
- 3. Configure your AI assistant to use the server.
20
-
21
- ## Available Commands
22
-
23
- - **Initialize a new project**:
24
- ```bash
25
- npx @hanzo/ui init --style=default
26
- ```
27
-
28
- - **List available components**:
29
- ```bash
30
- npx @hanzo/ui list
31
- ```
32
-
33
- - **Add a component**:
34
- ```bash
35
- npx @hanzo/ui add button
36
- ```
37
-
38
- ## Using with LLMs
39
-
40
- AI Assistants like Claude or ChatGPT can help you explore and use the components. Just describe what you need, and the AI can guide you through:
41
-
42
- - Finding the right component
43
- - Installing and configuring it
44
- - Using it in your project
45
-
46
- Example prompt: "I need a dropdown menu component for my React project. Can you help me find and set it up using @hanzo/ui?"
47
-
48
- ## Registry Configuration
49
-
50
- You can create a custom registry for your components, making them available through the same interface. To create a registry:
51
-
52
- 1. Set up the registry structure
53
- 2. Run the update-registry script
54
- 3. Host the registry files
55
- 4. Point to your custom registry:
56
-
57
- ```bash
58
- npx @hanzo/ui registry:mcp --registry=https://your-registry-url.com/registry.json
59
- ```
60
-
61
- ## HTTP Mode
62
-
63
- For web-based applications, you can run the MCP server in HTTP mode:
64
-
65
- ```bash
66
- npx @hanzo/ui registry:mcp --http --port=3333
67
- ```
68
-
69
- This exposes an HTTP endpoint at http://localhost:3333 that you can use to communicate with the MCP server.
70
-
71
- ## Learn More
72
-
73
- For detailed documentation, see [README-MCP.md](./README-MCP.md) or visit the [Hanzo UI website](https://ui.hanzo.ai).
package/README-MCP.md DELETED
@@ -1,175 +0,0 @@
1
- # Hanzo UI with MCP Support
2
-
3
- This implementation provides Model Context Protocol (MCP) support for the Hanzo UI library, enabling AI assistants to interact with the component registry based on hanzo/ui.
4
-
5
- ## Quick Start
6
-
7
- ```bash
8
- # Run with npx (recommended)
9
- npx @hanzo/ui registry:mcp
10
-
11
- # Or set a custom registry URL
12
- npx @hanzo/ui registry:mcp --registry=https://ui.hanzo.ai/registry/registry.json
13
-
14
- # Run in HTTP mode instead of stdio
15
- npx @hanzo/ui registry:mcp --http --port=3333
16
- ```
17
-
18
- ## Setup and Usage
19
-
20
- ### Configure Your LLM Tool
21
-
22
- To configure your AI assistant or LLM to use the Hanzo UI MCP server, add the following configuration:
23
-
24
- ```json
25
- {
26
- "name": "hanzo-ui",
27
- "command": "npx @hanzo/ui registry:mcp"
28
- }
29
- ```
30
-
31
- ### Available Tools
32
-
33
- The MCP server provides the following tools for AI assistants:
34
-
35
- 1. `init` - Initialize a new project using @hanzo/ui components and styles
36
- 2. `list_components` - List all available components in the registry
37
- 3. `get_component` - Get detailed information about a specific component
38
- 4. `add_component` - Get instructions for adding a component to a project
39
- 5. `list_styles` - List all available styles in the registry
40
- 6. `search_registry` - Search the registry for components matching criteria
41
-
42
- ### Registry Configuration
43
-
44
- The registry URL can be configured by setting the `REGISTRY_URL` environment variable:
45
-
46
- ```bash
47
- export REGISTRY_URL="https://ui.hanzo.ai/registry/registry.json"
48
- npx @hanzo/ui registry:mcp
49
- ```
50
-
51
- Or by using the `--registry` command-line option:
52
-
53
- ```bash
54
- npx @hanzo/ui registry:mcp --registry=https://ui.hanzo.ai/registry/registry.json
55
- ```
56
-
57
- ## HTTP Mode
58
-
59
- You can run the MCP server in HTTP mode, which exposes the server over HTTP rather than stdio:
60
-
61
- ```bash
62
- npx @hanzo/ui registry:mcp --http --port=3333
63
- ```
64
-
65
- This allows you to access the MCP server directly from web applications or other HTTP clients.
66
-
67
- ## Developer Instructions
68
-
69
- ### Building from Source
70
-
71
- ```bash
72
- # Clone the repository
73
- git clone https://github.com/hanzoai/ui.git
74
- cd ui/pkg/ui
75
-
76
- # Install dependencies
77
- npm install
78
-
79
- # Build the package
80
- npm run build
81
-
82
- # Run the MCP server
83
- node ./bin/cli.js registry:mcp
84
- ```
85
-
86
- ### Project Structure
87
-
88
- - `/pkg/ui/mcp/`: MCP server implementation
89
- - `/pkg/ui/registry/`: Registry schema and API
90
- - `/pkg/ui/bin/`: CLI tools for running the MCP server
91
-
92
- ### Creating a Registry
93
-
94
- The registry is compatible with hanzo/ui's registry format. To create a custom registry:
95
-
96
- 1. Create a `registry.json` file using the schema from `/pkg/ui/registry/schema.ts`
97
- 2. Build the registry using a build script
98
- 3. Host the registry files on a web server or CDN
99
- 4. Point the MCP server to your custom registry using the `--registry` option
100
-
101
- ## How It Works
102
-
103
- The MCP server enables AI assistants to:
104
-
105
- 1. Discover and browse available components in your registry
106
- 2. Fetch detailed information about specific components
107
- 3. Provide instructions on adding components to projects
108
- 4. Initialize new projects with your component library
109
-
110
- This makes it easy for users to interact with your UI library through conversational interfaces.
111
-
112
- ## Example Interactions
113
-
114
- ### Initialize a Project
115
-
116
- ```
117
- Assistant: To create a new project with Hanzo UI components, you can run:
118
-
119
- npx create-next-app@latest my-app
120
- cd my-app
121
- npx @hanzo/ui@latest init
122
- ```
123
-
124
- ### Add a Component
125
-
126
- ```
127
- Assistant: To add the Button component to your project:
128
-
129
- npx @hanzo/ui@latest add button
130
-
131
- This will install the component and its dependencies.
132
- ```
133
-
134
- ### Search for Components
135
-
136
- ```
137
- Assistant: I found several form-related components:
138
- - form
139
- - input
140
- - checkbox
141
- - select
142
- - textarea
143
-
144
- Which one would you like to add to your project?
145
- ```
146
-
147
- ## Technical Details
148
-
149
- ### Registry Schema
150
-
151
- The registry schema is compatible with hanzo/ui and includes:
152
-
153
- - Component metadata (name, description, type)
154
- - Dependencies (npm packages)
155
- - Registry dependencies (other components)
156
- - Component files with source code
157
- - Category and subcategory information
158
-
159
- ### MCP Integration
160
-
161
- The MCP server implements the Model Context Protocol, enabling AI assistants to:
162
-
163
- - Query the registry for components
164
- - Get detailed information about components
165
- - Provide installation instructions
166
- - Generate example usage code
167
-
168
- ### Command-Line Interface
169
-
170
- The CLI provides options for:
171
-
172
- - Setting the registry URL
173
- - Running in HTTP mode
174
- - Specifying the port for HTTP mode
175
- - Verbose logging