@hanzo/ui 4.6.0 → 4.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (290) hide show
  1. package/dist/index.d.mts +16 -0
  2. package/dist/index.d.ts +16 -0
  3. package/dist/index.js +9458 -0
  4. package/dist/index.mjs +9449 -0
  5. package/dist/lib/utils.d.mts +2 -0
  6. package/dist/lib/utils.d.ts +2 -0
  7. package/dist/lib/utils.js +47 -0
  8. package/dist/lib/utils.mjs +28 -0
  9. package/dist/src/utils.d.mts +7 -0
  10. package/dist/src/utils.d.ts +7 -0
  11. package/dist/src/utils.js +47 -0
  12. package/dist/src/utils.mjs +28 -0
  13. package/dist/tailwind/index.d.mts +2 -0
  14. package/dist/tailwind/index.d.ts +2 -0
  15. package/dist/tailwind/index.js +2048 -0
  16. package/dist/tailwind/index.mjs +2017 -0
  17. package/dist/types/index.d.mts +12 -0
  18. package/dist/types/index.d.ts +12 -0
  19. package/dist/types/index.js +79 -0
  20. package/dist/types/index.mjs +56 -0
  21. package/package.json +151 -25
  22. package/MCP-INSTRUCTIONS.md +0 -73
  23. package/README-MCP.md +0 -175
  24. package/assets/ai-icons.tsx +0 -207
  25. package/assets/crypto.tsx +0 -33
  26. package/assets/file-type-icon.tsx +0 -66
  27. package/assets/file.tsx +0 -45
  28. package/assets/general.tsx +0 -2318
  29. package/assets/hanzo-logo.svg +0 -9
  30. package/assets/hanzo-logo.tsx +0 -15
  31. package/assets/index.ts +0 -8
  32. package/assets/index.tsx +0 -4
  33. package/assets/llm-provider.tsx +0 -1094
  34. package/blocks/components/accordian-block.tsx +0 -48
  35. package/blocks/components/block-component-props.ts +0 -11
  36. package/blocks/components/bullet-cards-block.tsx +0 -46
  37. package/blocks/components/card-block/index.tsx +0 -171
  38. package/blocks/components/card-block/link-out-button.tsx +0 -20
  39. package/blocks/components/card-block/util.ts +0 -28
  40. package/blocks/components/carte-blanche-block/index.tsx +0 -127
  41. package/blocks/components/carte-blanche-block/variant-content-left.tsx +0 -49
  42. package/blocks/components/content.tsx +0 -70
  43. package/blocks/components/cta-block.tsx +0 -115
  44. package/blocks/components/enh-heading-block.tsx +0 -204
  45. package/blocks/components/grid-block/grid-block-mutator.ts +0 -12
  46. package/blocks/components/grid-block/index.tsx +0 -83
  47. package/blocks/components/grid-block/mutator-registry.ts +0 -10
  48. package/blocks/components/grid-block/table-borders.mutator.ts +0 -47
  49. package/blocks/components/group-block.tsx +0 -83
  50. package/blocks/components/heading-block.tsx +0 -88
  51. package/blocks/components/image-block.tsx +0 -111
  52. package/blocks/components/index.ts +0 -30
  53. package/blocks/components/screenful-block/content.tsx +0 -123
  54. package/blocks/components/screenful-block/index.tsx +0 -107
  55. package/blocks/components/screenful-block/poster-background.tsx +0 -34
  56. package/blocks/components/screenful-block/video-background.tsx +0 -45
  57. package/blocks/components/space-block.tsx +0 -66
  58. package/blocks/components/video-block.tsx +0 -138
  59. package/blocks/def/accordian-block.ts +0 -14
  60. package/blocks/def/block.ts +0 -7
  61. package/blocks/def/bullet-cards-block.ts +0 -22
  62. package/blocks/def/card-block.ts +0 -22
  63. package/blocks/def/carte-blanche-block.ts +0 -21
  64. package/blocks/def/cta-block.ts +0 -19
  65. package/blocks/def/element-block.ts +0 -11
  66. package/blocks/def/enh-heading-block.ts +0 -44
  67. package/blocks/def/grid-block.ts +0 -16
  68. package/blocks/def/group-block.ts +0 -11
  69. package/blocks/def/heading-block.ts +0 -15
  70. package/blocks/def/image-block.ts +0 -31
  71. package/blocks/def/index.ts +0 -35
  72. package/blocks/def/screenful-block.ts +0 -54
  73. package/blocks/def/space-block.ts +0 -64
  74. package/blocks/def/video-block.ts +0 -9
  75. package/blocks/index.ts +0 -2
  76. package/components/index.ts +0 -56
  77. package/dist/button.d.ts +0 -1
  78. package/dist/button.js +0 -1
  79. package/dist/hooks/index.d.ts +0 -7
  80. package/dist/hooks/index.js +0 -7
  81. package/dist/hooks/use-click-away.d.ts +0 -2
  82. package/dist/hooks/use-click-away.js +0 -23
  83. package/dist/hooks/use-combined-refs.d.ts +0 -3
  84. package/dist/hooks/use-combined-refs.js +0 -18
  85. package/dist/hooks/use-copy-clipboard.d.ts +0 -9
  86. package/dist/hooks/use-copy-clipboard.js +0 -21
  87. package/dist/hooks/use-debounce.d.ts +0 -1
  88. package/dist/hooks/use-debounce.js +0 -13
  89. package/dist/hooks/use-fill-ids.d.ts +0 -8
  90. package/dist/hooks/use-fill-ids.js +0 -20
  91. package/dist/hooks/use-map.d.ts +0 -1
  92. package/dist/hooks/use-map.js +0 -20
  93. package/dist/hooks/use-measure.d.ts +0 -8
  94. package/dist/hooks/use-measure.js +0 -25
  95. package/dist/hooks/use-reverse-video-playback.d.ts +0 -1
  96. package/dist/hooks/use-reverse-video-playback.js +0 -41
  97. package/dist/hooks/use-scroll-restoration.d.ts +0 -8
  98. package/dist/hooks/use-scroll-restoration.js +0 -36
  99. package/dist/mcp/enhanced-server.d.ts +0 -29
  100. package/dist/mcp/enhanced-server.js +0 -1128
  101. package/dist/mcp/index.d.ts +0 -28
  102. package/dist/mcp/index.js +0 -436
  103. package/dist/registry/api.d.ts +0 -37
  104. package/dist/registry/api.js +0 -129
  105. package/dist/registry/index.d.ts +0 -353
  106. package/dist/registry/index.js +0 -45
  107. package/dist/utils.d.ts +0 -1
  108. package/dist/utils.js +0 -1
  109. package/environment.d.ts +0 -6
  110. package/helpers/file.ts +0 -33
  111. package/helpers/memoization.ts +0 -40
  112. package/primitives/accordion.tsx +0 -74
  113. package/primitives/action-button.tsx +0 -42
  114. package/primitives/alert-dialog.tsx +0 -185
  115. package/primitives/alert.tsx +0 -74
  116. package/primitives/apply-typography.tsx +0 -55
  117. package/primitives/aspect-ratio.tsx +0 -5
  118. package/primitives/avatar.tsx +0 -57
  119. package/primitives/background-beams.tsx +0 -142
  120. package/primitives/badge.tsx +0 -44
  121. package/primitives/breadcrumb.tsx +0 -130
  122. package/primitives/breakpoint-indicator.tsx +0 -19
  123. package/primitives/button.tsx +0 -82
  124. package/primitives/calendar.tsx +0 -72
  125. package/primitives/card.tsx +0 -97
  126. package/primitives/carousel.tsx +0 -237
  127. package/primitives/chat/chat-input-area.tsx +0 -87
  128. package/primitives/chat/chat-input.tsx +0 -71
  129. package/primitives/chat/files-preview.tsx +0 -330
  130. package/primitives/chat/index.ts +0 -6
  131. package/primitives/chat/json-form.tsx +0 -8
  132. package/primitives/chat/message-list.tsx +0 -307
  133. package/primitives/chat/message.tsx +0 -569
  134. package/primitives/chat/sqlite-preview.tsx +0 -215
  135. package/primitives/checkbox.tsx +0 -31
  136. package/primitives/collapsible.tsx +0 -9
  137. package/primitives/combobox.tsx +0 -239
  138. package/primitives/command.tsx +0 -149
  139. package/primitives/context-menu.tsx +0 -206
  140. package/primitives/copy-to-clipboard-icon.tsx +0 -60
  141. package/primitives/dialog-video-controller.tsx +0 -38
  142. package/primitives/dialog.tsx +0 -123
  143. package/primitives/dot-pattern.tsx +0 -57
  144. package/primitives/dots-loader.tsx +0 -13
  145. package/primitives/drawer.tsx +0 -110
  146. package/primitives/dropdown-menu.tsx +0 -199
  147. package/primitives/error-message.tsx +0 -19
  148. package/primitives/file-uploader.tsx +0 -200
  149. package/primitives/form.tsx +0 -183
  150. package/primitives/hover-card.tsx +0 -28
  151. package/primitives/icons/github.tsx +0 -14
  152. package/primitives/icons/index.ts +0 -18
  153. package/primitives/icons/youtube-logo.tsx +0 -59
  154. package/primitives/index-common.ts +0 -303
  155. package/primitives/index-next.ts +0 -4
  156. package/primitives/input-otp.tsx +0 -65
  157. package/primitives/input.tsx +0 -125
  158. package/primitives/label.tsx +0 -20
  159. package/primitives/list-adaptor.ts +0 -12
  160. package/primitives/list-box.tsx +0 -74
  161. package/primitives/loading-spinner.tsx +0 -33
  162. package/primitives/markdown-preview.tsx +0 -609
  163. package/primitives/mermaid.tsx +0 -196
  164. package/primitives/navigation-menu.tsx +0 -147
  165. package/primitives/next/image.tsx +0 -90
  166. package/primitives/next/index.ts +0 -7
  167. package/primitives/next/inline-icon.tsx +0 -36
  168. package/primitives/next/link-element.tsx +0 -109
  169. package/primitives/next/mdx-link.tsx +0 -22
  170. package/primitives/next/media-stack.tsx +0 -69
  171. package/primitives/next/nav-items.tsx +0 -45
  172. package/primitives/next/youtube-embed.tsx +0 -83
  173. package/primitives/pagination.tsx +0 -117
  174. package/primitives/popover.tsx +0 -32
  175. package/primitives/pretty-json-print.tsx +0 -28
  176. package/primitives/progress.tsx +0 -26
  177. package/primitives/prompt-textarea.tsx +0 -72
  178. package/primitives/qr-code.tsx +0 -112
  179. package/primitives/radio-group.tsx +0 -42
  180. package/primitives/resizable.tsx +0 -47
  181. package/primitives/scroll-area.tsx +0 -57
  182. package/primitives/search-input.tsx +0 -66
  183. package/primitives/select.tsx +0 -122
  184. package/primitives/separator.tsx +0 -25
  185. package/primitives/sheet.tsx +0 -139
  186. package/primitives/skeleton.tsx +0 -17
  187. package/primitives/slider.tsx +0 -62
  188. package/primitives/sonner.tsx +0 -35
  189. package/primitives/step-indicator.tsx +0 -69
  190. package/primitives/stepper.tsx +0 -272
  191. package/primitives/switch.tsx +0 -26
  192. package/primitives/table.tsx +0 -105
  193. package/primitives/tabs.tsx +0 -50
  194. package/primitives/text-area.tsx +0 -26
  195. package/primitives/text-link.tsx +0 -25
  196. package/primitives/textarea.tsx +0 -61
  197. package/primitives/textfield.tsx +0 -75
  198. package/primitives/toast.tsx +0 -30
  199. package/primitives/toggle-group.tsx +0 -63
  200. package/primitives/toggle.tsx +0 -44
  201. package/primitives/tooltip.tsx +0 -47
  202. package/primitives/video-player.tsx +0 -23
  203. package/public/r/accordion.json +0 -11
  204. package/public/r/alert.json +0 -11
  205. package/public/r/avatar.json +0 -11
  206. package/public/r/badge.json +0 -11
  207. package/public/r/button.json +0 -11
  208. package/public/r/card.json +0 -11
  209. package/public/r/checkbox.json +0 -11
  210. package/public/r/default.json +0 -6
  211. package/public/r/dialog.json +0 -11
  212. package/public/r/input.json +0 -11
  213. package/public/r/label.json +0 -11
  214. package/public/r/new-york.json +0 -6
  215. package/public/r/popover.json +0 -11
  216. package/public/r/select.json +0 -11
  217. package/public/r/table.json +0 -11
  218. package/public/r/tabs.json +0 -11
  219. package/public/r/toast.json +0 -11
  220. package/registry.json +0 -184
  221. package/src/button.ts +0 -1
  222. package/src/hooks/index.ts +0 -7
  223. package/src/hooks/use-click-away.ts +0 -31
  224. package/src/hooks/use-combined-refs.ts +0 -22
  225. package/src/hooks/use-copy-clipboard.ts +0 -30
  226. package/src/hooks/use-debounce.ts +0 -17
  227. package/src/hooks/use-fill-ids.ts +0 -25
  228. package/src/hooks/use-map.ts +0 -26
  229. package/src/hooks/use-measure.ts +0 -42
  230. package/src/hooks/use-reverse-video-playback.ts +0 -43
  231. package/src/hooks/use-scroll-restoration.ts +0 -50
  232. package/src/mcp/README.md +0 -141
  233. package/src/mcp/enhanced-server.ts +0 -1208
  234. package/src/mcp/index.ts +0 -518
  235. package/src/mcp/package.json +0 -10
  236. package/src/registry/api.ts +0 -164
  237. package/src/registry/index.ts +0 -60
  238. package/src/registry/package.json +0 -10
  239. package/src/utils.ts +0 -1
  240. package/tailwind/colors.tailwind.js +0 -53
  241. package/tailwind/fontFamily.tailwind.ts +0 -7
  242. package/tailwind/fontSize.tailwind.ts +0 -13
  243. package/tailwind/index.ts +0 -7
  244. package/tailwind/safelist.tailwind.js +0 -26
  245. package/tailwind/screens.tailwind.js +0 -8
  246. package/tailwind/spacing.tailwind.js +0 -65
  247. package/tailwind/tailwind.config.hanzo-preset.d.ts +0 -5
  248. package/tailwind/tailwind.config.hanzo-preset.js +0 -915
  249. package/tailwind/tw-font-desc.ts +0 -15
  250. package/tailwind/typo-plugin/get-plugin-styles.js +0 -679
  251. package/tailwind/typo-plugin/index.d.ts +0 -9
  252. package/tailwind/typo-plugin/index.js +0 -141
  253. package/tailwind/typo-plugin/utils.js +0 -60
  254. package/tailwind/typography-test.mdx +0 -35
  255. package/tailwind/z-index.tailwind.js +0 -71
  256. package/test/test-registry.js +0 -73
  257. package/test-imports.mjs +0 -19
  258. package/tsconfig.json +0 -22
  259. package/types/animation-def.ts +0 -3
  260. package/types/breakpoints.ts +0 -11
  261. package/types/bullet-item.ts +0 -10
  262. package/types/button-def.ts +0 -39
  263. package/types/dimensions.ts +0 -8
  264. package/types/grid-def.ts +0 -56
  265. package/types/image-def.ts +0 -32
  266. package/types/index.ts +0 -29
  267. package/types/link-def.ts +0 -56
  268. package/types/media-stack-def.ts +0 -31
  269. package/types/t-shirt-size.ts +0 -5
  270. package/types/tshirt-dimensions.ts +0 -20
  271. package/types/video-def.ts +0 -25
  272. package/util/blob.ts +0 -28
  273. package/util/copy-to-clipboard.ts +0 -17
  274. package/util/create-shadow-root.ts +0 -22
  275. package/util/date.ts +0 -83
  276. package/util/debounce.ts +0 -11
  277. package/util/file.ts +0 -15
  278. package/util/format-and-abbreviate-as-currency.ts +0 -125
  279. package/util/format-text.ts +0 -33
  280. package/util/format-to-max-char.ts +0 -68
  281. package/util/index-client.ts +0 -3
  282. package/util/index.ts +0 -9
  283. package/util/number-abbreviate.ts +0 -49
  284. package/util/specifier.ts +0 -43
  285. package/util/spread-to-transform.ts +0 -24
  286. package/util/step-animation.ts +0 -90
  287. package/util/timing.ts +0 -3
  288. package/util/toasts.tsx +0 -17
  289. package/util/two-way-map.ts +0 -19
  290. package/utils.ts +0 -9
@@ -1,141 +0,0 @@
1
- import plugin from 'tailwindcss/plugin'
2
- import merge from 'lodash.merge'
3
- import castArray from 'lodash.castarray'
4
- import getStyles from './get-plugin-styles'
5
- import { commonTrailingPseudos } from './utils'
6
-
7
- let baseFontSize = 16
8
-
9
- const computed = {
10
- // Reserved for future "magic properties", for example:
11
- // bulletColor: (color) => ({ 'ul > li::before': { backgroundColor: color } }),
12
- }
13
-
14
- function inWhere(selector, { className, modifier, prefix }) {
15
- let prefixedNot = prefix(`.not-${className}`).slice(1)
16
- let selectorPrefix = selector.startsWith('>')
17
- ? `${modifier === 'DEFAULT' ? `.${className}` : `.${className}-${modifier}`} `
18
- : ''
19
-
20
- // Parse the selector, if every component ends in the same pseudo element(s) then move it to the end
21
- let [trailingPseudo, rebuiltSelector] = commonTrailingPseudos(selector)
22
-
23
- if (trailingPseudo) {
24
- return `:where(${selectorPrefix}${rebuiltSelector}):not(:where([class~="${prefixedNot}"],[class~="${prefixedNot}"] *))${trailingPseudo}`
25
- }
26
-
27
- return `:where(${selectorPrefix}${selector}):not(:where([class~="${prefixedNot}"],[class~="${prefixedNot}"] *))`
28
- }
29
-
30
- function isObject(value) {
31
- return typeof value === 'object' && value !== null
32
- }
33
-
34
- function configToCss(config = {}, { target, className, modifier, prefix }) {
35
- function updateSelector(k, v) {
36
- if (target === 'legacy') {
37
- return [k, v]
38
- }
39
-
40
- if (Array.isArray(v)) {
41
- return [k, v]
42
- }
43
-
44
- if (isObject(v)) {
45
- let nested = Object.values(v).some(isObject)
46
- if (nested) {
47
- return [
48
- inWhere(k, { className, modifier, prefix }),
49
- v,
50
- Object.fromEntries(Object.entries(v).map(([k, v]) => updateSelector(k, v))),
51
- ]
52
- }
53
-
54
- return [inWhere(k, { className, modifier, prefix }), v]
55
- }
56
-
57
- return [k, v]
58
- }
59
-
60
- return Object.fromEntries(
61
- Object.entries(
62
- merge(
63
- {},
64
- ...Object.keys(config)
65
- .filter((key) => computed[key])
66
- .map((key) => computed[key](config[key])),
67
- ...castArray(config.css || {})
68
- )
69
- ).map(([k, v]) => updateSelector(k, v))
70
- )
71
- }
72
-
73
- export default plugin.withOptions(
74
- ({ className = 'prose', target = 'modern', base = 16 } = {}) => {
75
- baseFontSize = base
76
- return function ({ addVariant, addComponents, theme, prefix }) {
77
- let modifiers = theme('typography')
78
-
79
- let options = { className, prefix }
80
-
81
- for (let [name, ...selectors] of [
82
- ['headings', 'h1', 'h2', 'h3', /* 'h4', 'h5', 'h6', 'th' */],
83
- ['h1'],
84
- ['h2'],
85
- ['h3'],
86
- ['h4'],
87
- ['h5'],
88
- ['h6'],
89
- ['p'],
90
- ['a'],
91
- ['blockquote'],
92
- ['figure'],
93
- ['figcaption'],
94
- ['strong'],
95
- ['em'],
96
- ['code'],
97
- ['pre'],
98
- ['ol'],
99
- ['ul'],
100
- ['li'],
101
- ['table'],
102
- ['thead'],
103
- ['tr'],
104
- ['th'],
105
- ['td'],
106
- ['img'],
107
- ['video'],
108
- ['hr'],
109
- ]) {
110
- selectors = selectors.length === 0 ? [name] : selectors
111
-
112
- let selector =
113
- target === 'legacy' ? selectors.map((selector) => `& ${selector}`) : selectors.join(', ')
114
-
115
- addVariant(
116
- `${className}-${name}`,
117
- target === 'legacy' ? selector : `& :is(${inWhere(selector, options)})`
118
- )
119
- }
120
-
121
- addComponents(
122
- Object.keys(modifiers).map((modifier) => ({
123
- [modifier === 'DEFAULT' ? `.${className}` : `.${className}-${modifier}`]: configToCss(
124
- modifiers[modifier],
125
- {
126
- target,
127
- className,
128
- modifier,
129
- prefix,
130
- }
131
- ),
132
- }))
133
- )
134
- }
135
- },
136
- () => {
137
- return {
138
- theme: { typography: getStyles(baseFontSize) },
139
- }
140
- }
141
- )
@@ -1,60 +0,0 @@
1
- import isPlainObject from 'lodash.isplainobject'
2
- import parser from 'postcss-selector-parser'
3
-
4
- const parseSelector = parser()
5
-
6
- export function isUsableColor(color, values) {
7
- return isPlainObject(values) && color !== 'gray' && values[600]
8
- }
9
-
10
- /**
11
- * @param {string} selector
12
- */
13
- export function commonTrailingPseudos(selector) {
14
- let ast = parseSelector.astSync(selector)
15
-
16
- /** @type {import('postcss-selector-parser').Pseudo[][]} */
17
- let matrix = []
18
-
19
- // Put the pseudo elements in reverse order in a sparse, column-major 2D array
20
- for (let [i, sel] of ast.nodes.entries()) {
21
- for (const [j, child] of [...sel.nodes].reverse().entries()) {
22
- // We only care about pseudo elements
23
- if (child.type !== 'pseudo' || !child.value.startsWith('::')) {
24
- break
25
- }
26
-
27
- matrix[j] = matrix[j] || []
28
- matrix[j][i] = child
29
- }
30
- }
31
-
32
- let trailingPseudos = parser.selector()
33
-
34
- // At this point the pseudo elements are in a column-major 2D array
35
- // This means each row contains one "column" of pseudo elements from each selector
36
- // We can compare all the pseudo elements in a row to see if they are the same
37
- for (const pseudos of matrix) {
38
- // It's a sparse 2D array so there are going to be holes in the rows
39
- // We skip those
40
- if (!pseudos) {
41
- continue
42
- }
43
-
44
- let values = new Set([...pseudos.map((p) => p.value)])
45
-
46
- // The pseudo elements are not the same
47
- if (values.size > 1) {
48
- break
49
- }
50
-
51
- pseudos.forEach((pseudo) => pseudo.remove())
52
- trailingPseudos.prepend(pseudos[0])
53
- }
54
-
55
- if (trailingPseudos.nodes.length) {
56
- return [trailingPseudos.toString(), ast.toString()]
57
- }
58
-
59
- return [null, selector]
60
- }
@@ -1,35 +0,0 @@
1
- import { LinkElement as Link } from '@hanzo/ui/primitives'
2
-
3
- ###### In a galaxy far, far away
4
- ##### Join the global rush to own silver
5
- #### And the global rush to gold
6
- ### As well as the rush to crypto
7
- ## THE SILVER RUSH IS HERE
8
- # THE GOLD RUSH IS HERE
9
-
10
-
11
- *Lorem* ipsum dolor sit amet, **consectetur** adipiscing elit, sed do eiusmod tempor
12
- incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
13
- nostrud exercitation ullamco
14
- laboris nisi ut aliquip ex ea commodo consequat.
15
-
16
- 1) Duis aute irure
17
- 2) dolor in reprehenderit
18
- 3) in voluptate velit esse
19
-
20
- Cillum dolore eu fugiat nulla pariatur. Excepteur sint occaefam cupidatat non proident,
21
-
22
- - sunt in culpa
23
- - qui officia deserunt
24
- - mollit anim id est laborum.
25
-
26
- Lorem ipsum dolor sit [amet]('/'), adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
27
-
28
- <Link
29
- def={{
30
- title: 'Enter App',
31
- href: 'https://app.lux.market',
32
- variant: 'primary',
33
- }}
34
- size='lg'
35
- />
@@ -1,71 +0,0 @@
1
- const zIndex = {
2
-
3
- auto: 'auto',
4
- unset: 'unset',
5
-
6
- ...{
7
- 'below-content-3': '-3',
8
- 'below-content-2': '-2',
9
- 'below-content-1': '-1',
10
- 'below-content': '-1',
11
- 'content': '0',
12
- 'above-content': '1',
13
- 'above-content-1': '1',
14
- 'above-content-2': '2',
15
- 'above-content-3': '3',
16
- },
17
- // popups that may scroll w content, appear below header, etc
18
- // for larger, modal popups, please use 'modal'
19
- ...{
20
- 'below-popup-3': '7',
21
- 'below-popup-2': '8',
22
- 'below-popup-1': '9',
23
- 'below-popup': '9',
24
- 'popup': '10',
25
- 'above-popup': '11',
26
- 'above-popup-1': '11',
27
- 'above-popup-2': '12',
28
- 'above-popup-3': '13',
29
- },
30
- ...{
31
- 'below-header-3': '17',
32
- 'below-header-2': '18',
33
- 'below-header-1': '19',
34
- 'below-header': '19',
35
- 'header': '20',
36
- 'above-header': '21',
37
- 'above-header-1': '21',
38
- 'above-header-2': '22',
39
- 'above-header-3': '23',
40
- },
41
- // drawer, dialog, full screen menu
42
- ...{
43
- 'below-modal-3': '27',
44
- 'below-modal-2': '28',
45
- 'below-modal-1': '29',
46
- 'below-modal': '29',
47
- 'modal': '30',
48
- 'above-modal': '31',
49
- 'above-modal-1': '31',
50
- 'above-modal-2': '32',
51
- 'above-modal-3': '33',
52
- },
53
- // "highest": help button, other UI that floats above everything.
54
- ...{
55
- 'below-floating-3': '37',
56
- 'below-floating-2': '38',
57
- 'below-floating-1': '39',
58
- 'below-floating': '39',
59
- 'floating': '40',
60
- 'above-floating': '41',
61
- 'above-floating-1': '41',
62
- 'above-floating-2': '42',
63
- 'above-floating-3': '43',
64
- },
65
- }
66
-
67
- for (let i = 0; i <= 50; i++) {
68
- zIndex[`${i}`] = `${i}`
69
- }
70
-
71
- export default zIndex
@@ -1,73 +0,0 @@
1
- // Small test for the registry functionality
2
- // This script checks if the registry is accessible
3
- const https = require('https');
4
-
5
- function fetchJson(url) {
6
- return new Promise((resolve, reject) => {
7
- https.get(url, (res) => {
8
- let data = '';
9
-
10
- // Handle HTTP errors
11
- if (res.statusCode !== 200) {
12
- reject(new Error(`HTTP error: ${res.statusCode} ${res.statusMessage}`));
13
- return;
14
- }
15
-
16
- // Collect data chunks
17
- res.on('data', (chunk) => {
18
- data += chunk;
19
- });
20
-
21
- // Process complete response
22
- res.on('end', () => {
23
- try {
24
- const parsed = JSON.parse(data);
25
- resolve(parsed);
26
- } catch (error) {
27
- reject(new Error(`Invalid JSON: ${error.message}`));
28
- }
29
- });
30
-
31
- }).on('error', (err) => {
32
- reject(err);
33
- });
34
- });
35
- }
36
-
37
- async function main() {
38
- try {
39
- // Define registry URL
40
- const registryUrl = "https://ui.hanzo.ai/registry/registry.json";
41
-
42
- // Fetch the registry
43
- console.log(`Fetching registry from ${registryUrl}...`);
44
- const registry = await fetchJson(registryUrl);
45
-
46
- console.log(`Successfully fetched registry with ${registry.items.length} items`);
47
-
48
- // Display some basic information
49
- console.log(`Registry name: ${registry.name}`);
50
- console.log(`Homepage: ${registry.homepage || 'Not specified'}`);
51
-
52
- // Count items by type
53
- const typeCount = {};
54
- registry.items.forEach(item => {
55
- const type = item.type;
56
- typeCount[type] = (typeCount[type] || 0) + 1;
57
- });
58
-
59
- console.log("Items by type:");
60
- Object.entries(typeCount).forEach(([type, count]) => {
61
- console.log(` ${type}: ${count} items`);
62
- });
63
-
64
- // Test complete
65
- console.log("Registry test completed successfully!");
66
- } catch (error) {
67
- console.error("Error testing registry:", error);
68
- process.exit(1);
69
- }
70
- }
71
-
72
- // Run the test
73
- main();
package/test-imports.mjs DELETED
@@ -1,19 +0,0 @@
1
- // Test file to verify all import styles work correctly
2
-
3
- // Test 1: Direct import from @hanzo/ui (top-level)
4
- import { Button, Card } from '@hanzo/ui'
5
- console.log('✓ Top-level import works:', typeof Button, typeof Card)
6
-
7
- // Test 2: Import from /components (same as top-level)
8
- import { Badge, Alert } from '@hanzo/ui/components'
9
- console.log('✓ Components import works:', typeof Badge, typeof Alert)
10
-
11
- // Test 3: Utility imports
12
- import { cn } from '@hanzo/ui/lib/utils'
13
- console.log('✓ Utils import works:', typeof cn)
14
-
15
- console.log('\n🎉 All main import styles are working correctly!')
16
- console.log('\nSupported import styles:')
17
- console.log(' - import { Button } from "@hanzo/ui"')
18
- console.log(' - import { Button } from "@hanzo/ui/components"')
19
- console.log(' - import { cn } from "@hanzo/ui/lib/utils"')
package/tsconfig.json DELETED
@@ -1,22 +0,0 @@
1
- {
2
- "extends": "../tsconfig.hanzo.base.json",
3
- "include": [
4
- "src/**/*.ts",
5
- "src/**/*.tsx"
6
- ],
7
- "exclude": [
8
- "node_modules",
9
- "dist",
10
- "bin",
11
- "test"
12
- ],
13
- "compilerOptions": {
14
- "noEmit": false,
15
- "declaration": true,
16
- "outDir": "./dist",
17
- "skipLibCheck": true,
18
- "rootDir": "./src",
19
- "types": ["node"],
20
- "verbatimModuleSyntax": false
21
- }
22
- }
@@ -1,3 +0,0 @@
1
- type AnimationDef = string
2
-
3
- export { AnimationDef as default }
@@ -1,11 +0,0 @@
1
- // @ts-nocheck
2
-
3
- import bps from '../tailwind/screens.tailwind'
4
-
5
- type Breakpoint = keyof typeof bps
6
- const Breakpoints = Object.keys(bps)
7
-
8
- export {
9
- Breakpoints,
10
- type Breakpoint
11
- }
@@ -1,10 +0,0 @@
1
- import React from 'react'
2
-
3
- interface BulletItem {
4
- text: string,
5
- icon?: React.ReactNode // Icon = ReactNode; ReactNode can be a string
6
- }
7
-
8
- export {
9
- type BulletItem as default
10
- }
@@ -1,39 +0,0 @@
1
- import { ButtonProps } from '../primitives/button'
2
-
3
- type SubmitServerAction = (data: any, enclosure?: any) => Promise<any>
4
-
5
- interface ButtonModalProps {
6
- open: boolean
7
- onOpenChange: (b: boolean) => void
8
- buttonText: string
9
- buttonProps: ButtonProps
10
- title: string
11
- byline?: string
12
- action: SubmitServerAction
13
- actionEnclosure?: any
14
- }
15
-
16
- interface ButtonModalDef {
17
- Comp: React.ComponentType<ButtonModalProps>
18
- title: string
19
- props?: any
20
- byline?: string
21
- action?: SubmitServerAction
22
- actionEnclosure?: any
23
- }
24
-
25
- interface ButtonDef {
26
- text: string
27
- props: ButtonProps
28
- action: {
29
- type: 'modal' /* | future: other types */
30
- def: ButtonModalDef /* | future: other supported specifiers, such as Server Actions, or UI Actions or ? */
31
- }
32
- }
33
-
34
- export {
35
- type ButtonDef,
36
- type SubmitServerAction,
37
- type ButtonModalProps,
38
- type ButtonModalDef,
39
- }
@@ -1,8 +0,0 @@
1
- interface Dimensions {
2
- w: number
3
- h: number
4
- }
5
-
6
- export {
7
- type Dimensions as default
8
- }
package/types/grid-def.ts DELETED
@@ -1,56 +0,0 @@
1
- import type { Breakpoint } from './breakpoints'
2
-
3
- type GridColumnSpec = number | { columns: number, gap: number}
4
-
5
- interface GridDef {
6
- /** Must define in ACCENDING order. */
7
- at: {
8
- [key in (Breakpoint)]?: GridColumnSpec
9
- },
10
- mobile?: GridColumnSpec
11
- }
12
-
13
- const COMMON_GRID_1_COL = {
14
- at: {
15
- xs: { columns: 1, gap: 2 },
16
- md: { columns: 1, gap: 3 },
17
- lg: { columns: 1, gap: 6 }
18
- },
19
- mobile: { columns: 1, gap: 2 }
20
- }
21
-
22
- const COMMON_GRID_2_COL = {
23
- at: {
24
- xs: {columns: 1, gap: 2},
25
- md: {columns: 2, gap: 3},
26
- lg: {columns: 2, gap: 6}
27
- },
28
- mobile: {columns: 1, gap: 2}
29
- } as GridDef
30
-
31
- const COMMON_GRID_3_COL = {
32
- at: {
33
- xs: {columns: 1, gap: 2},
34
- md: {columns: 3, gap: 3},
35
- lg: {columns: 3, gap: 6}
36
- },
37
- mobile: {columns: 1, gap: 2}
38
- } as GridDef
39
-
40
- const COMMON_GRID_4_COL = {
41
- at: {
42
- xs: {columns: 1, gap: 2},
43
- md: {columns: 2, gap: 3},
44
- lg: {columns: 4, gap: 6}
45
- },
46
- mobile: {columns: 1, gap: 2}
47
- } as GridDef
48
-
49
- export {
50
- type GridDef as default,
51
- type GridColumnSpec,
52
- COMMON_GRID_1_COL,
53
- COMMON_GRID_2_COL,
54
- COMMON_GRID_3_COL,
55
- COMMON_GRID_4_COL
56
- }
@@ -1,32 +0,0 @@
1
- import type Dimensions from './dimensions'
2
-
3
- /**
4
- * Defines a in image to render.
5
- * ImageDef is part of {@link LinkDef}
6
- */
7
- interface ImageDef {
8
- /** image url */
9
- src: string
10
- /** defaults to short filename */
11
- alt?: string
12
- /** See next js docs */
13
- sizes?: string
14
- /**
15
- * Tailwind class for svg files (usually a text-<color>).
16
- * All affect 'fill' props in the svg file
17
- * must be set to 'currentColor'.
18
- */
19
- svgFillClass?: string
20
- /** rendered dim, unless style prop overrides
21
- * in which case the file resolution should
22
- * be supplied so that both Next and the browser
23
- * can determine the aspect ratio
24
- */
25
- dim: Dimensions
26
-
27
- rounded?: string // any key from tailwind.config.borderRadius
28
- }
29
-
30
- export {
31
- type ImageDef as default
32
- }
package/types/index.ts DELETED
@@ -1,29 +0,0 @@
1
-
2
- export type { default as AnimationDef } from './animation-def'
3
- export { Breakpoint, Breakpoints } from './breakpoints'
4
- export type { default as BulletItem } from './bullet-item'
5
-
6
- export type {
7
- ButtonDef,
8
- SubmitServerAction,
9
- ButtonModalProps,
10
- ButtonModalDef,
11
- } from './button-def'
12
-
13
- export type { default as Dimensions } from './dimensions'
14
-
15
- export type { default as GridDef, GridColumnSpec } from './grid-def'
16
- export {
17
- COMMON_GRID_1_COL,
18
- COMMON_GRID_2_COL,
19
- COMMON_GRID_3_COL,
20
- COMMON_GRID_4_COL
21
- } from './grid-def'
22
-
23
- export type { default as ImageDef } from './image-def'
24
- export type { default as LinkDef } from './link-def'
25
- export type { default as TShirtDimensions } from './tshirt-dimensions'
26
- export type { default as TShirtSize } from './t-shirt-size'
27
- export type { default as VideoDef } from './video-def'
28
-
29
- export type { MediaStackDef, MediaTransform } from './media-stack-def'
package/types/link-def.ts DELETED
@@ -1,56 +0,0 @@
1
- import type { VariantProps } from 'class-variance-authority'
2
- import type { buttonVariants } from '../primitives/button'
3
-
4
-
5
- /**
6
- * A Conf object for the LinkElement primitive.
7
- */
8
- interface LinkDef extends VariantProps<typeof buttonVariants> {
9
- /**
10
- * If the LinkElement is rendered directly and has children,
11
- * the title, icon, iconAfter fields in the supplied LinkDef
12
- * will be ignored.
13
- */
14
- title?: string
15
-
16
- /**
17
- * If the LinkElement is rendered directly and has children,
18
- * the title, icon, iconAfter fields in the supplied LinkDef
19
- * will be ignored.
20
- */
21
- icon?: React.ReactNode
22
-
23
- /**
24
- * If the LinkElement is rendered directly and has children,
25
- * the title, icon, iconAfter fields in the supplied LinkDef
26
- * will be ignored.
27
- */
28
- iconAfter?: boolean
29
-
30
- href: string
31
-
32
- /**
33
- * External links will open in a new tab (via target='_blank') by default,
34
- * while internal ones will open in the same tab.
35
- * @field newTab overrides these defaults in both cases.
36
- * ('external' means the url starts with 'http')
37
- */
38
- newTab?: boolean
39
-
40
- /**
41
- * rendered as a disabled link, shows default cursor, and eats pointer events.
42
- */
43
- disabled?: boolean
44
- /**
45
- *contents for description link.
46
- */
47
- contents?: string
48
-
49
- childMenu?: LinkDef[]
50
- groupName?: string
51
- }
52
-
53
-
54
- export {
55
- type LinkDef as default
56
- }