@hanzo/ui 4.8.5 → 5.0.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 (683) hide show
  1. package/CHANGELOG.md +184 -0
  2. package/LICENSE +21 -0
  3. package/README.md +185 -192
  4. package/dist/ai/index.js +53 -0
  5. package/dist/ai/index.js.map +1 -0
  6. package/dist/ai/index.mjs +4 -0
  7. package/dist/ai/index.mjs.map +1 -0
  8. package/dist/blocks/index.js +983 -0
  9. package/dist/blocks/index.js.map +1 -0
  10. package/dist/blocks/index.mjs +945 -0
  11. package/dist/blocks/index.mjs.map +1 -0
  12. package/dist/calendar/index.js +14 -0
  13. package/dist/calendar/index.js.map +1 -0
  14. package/dist/calendar/index.mjs +5 -0
  15. package/dist/calendar/index.mjs.map +1 -0
  16. package/dist/carousel/index.js +220 -0
  17. package/dist/carousel/index.js.map +1 -0
  18. package/dist/carousel/index.mjs +191 -0
  19. package/dist/carousel/index.mjs.map +1 -0
  20. package/dist/charts/index.js +945 -0
  21. package/dist/charts/index.js.map +1 -0
  22. package/dist/charts/index.mjs +901 -0
  23. package/dist/charts/index.mjs.map +1 -0
  24. package/dist/chunk-26T4V5QU.mjs +111 -0
  25. package/dist/chunk-26T4V5QU.mjs.map +1 -0
  26. package/dist/chunk-2A5KXDLJ.js +22 -0
  27. package/dist/chunk-2A5KXDLJ.js.map +1 -0
  28. package/dist/chunk-2CJ4HMF4.js +79 -0
  29. package/dist/chunk-2CJ4HMF4.js.map +1 -0
  30. package/dist/chunk-2OIQKC5E.js +236 -0
  31. package/dist/chunk-2OIQKC5E.js.map +1 -0
  32. package/dist/chunk-2X3KSYBN.js +44 -0
  33. package/dist/chunk-2X3KSYBN.js.map +1 -0
  34. package/dist/chunk-3PBQGYR7.mjs +100 -0
  35. package/dist/chunk-3PBQGYR7.mjs.map +1 -0
  36. package/dist/chunk-3POQQ6L7.js +62 -0
  37. package/dist/chunk-3POQQ6L7.js.map +1 -0
  38. package/dist/chunk-4B47GITH.mjs +28 -0
  39. package/dist/chunk-4B47GITH.mjs.map +1 -0
  40. package/dist/chunk-4BC2OH6B.js +129 -0
  41. package/dist/chunk-4BC2OH6B.js.map +1 -0
  42. package/dist/chunk-5AQSGH4R.js +130 -0
  43. package/dist/chunk-5AQSGH4R.js.map +1 -0
  44. package/dist/chunk-5IHRJFOO.mjs +102 -0
  45. package/dist/chunk-5IHRJFOO.mjs.map +1 -0
  46. package/dist/chunk-5LDGR7YN.mjs +28 -0
  47. package/dist/chunk-5LDGR7YN.mjs.map +1 -0
  48. package/dist/chunk-5MCN3VYM.mjs +23 -0
  49. package/dist/chunk-5MCN3VYM.mjs.map +1 -0
  50. package/dist/chunk-6AVAMRMB.mjs +47 -0
  51. package/dist/chunk-6AVAMRMB.mjs.map +1 -0
  52. package/dist/chunk-6H62JRNM.mjs +120 -0
  53. package/dist/chunk-6H62JRNM.mjs.map +1 -0
  54. package/dist/chunk-6KCII3F6.mjs +126 -0
  55. package/dist/chunk-6KCII3F6.mjs.map +1 -0
  56. package/dist/chunk-7EHB43BJ.js +155 -0
  57. package/dist/chunk-7EHB43BJ.js.map +1 -0
  58. package/dist/chunk-7LRD23Q5.js +191 -0
  59. package/dist/chunk-7LRD23Q5.js.map +1 -0
  60. package/dist/chunk-7SAHKOJG.mjs +45 -0
  61. package/dist/chunk-7SAHKOJG.mjs.map +1 -0
  62. package/dist/chunk-A3D2YZK3.js +50 -0
  63. package/dist/chunk-A3D2YZK3.js.map +1 -0
  64. package/dist/chunk-AL4QFH7V.js +63 -0
  65. package/dist/chunk-AL4QFH7V.js.map +1 -0
  66. package/dist/chunk-B3WFEG6U.js +69 -0
  67. package/dist/chunk-B3WFEG6U.js.map +1 -0
  68. package/dist/chunk-BDZQJ6GK.js +242 -0
  69. package/dist/chunk-BDZQJ6GK.js.map +1 -0
  70. package/dist/chunk-BRWFYRGX.js +61 -0
  71. package/dist/chunk-BRWFYRGX.js.map +1 -0
  72. package/dist/chunk-C5DNTLBO.js +53 -0
  73. package/dist/chunk-C5DNTLBO.js.map +1 -0
  74. package/dist/chunk-CRALRACO.js +54 -0
  75. package/dist/chunk-CRALRACO.js.map +1 -0
  76. package/dist/chunk-CVACQJRM.js +149 -0
  77. package/dist/chunk-CVACQJRM.js.map +1 -0
  78. package/dist/chunk-DEIUKFPZ.mjs +63 -0
  79. package/dist/chunk-DEIUKFPZ.mjs.map +1 -0
  80. package/dist/chunk-DN2AEEA2.js +13 -0
  81. package/dist/chunk-DN2AEEA2.js.map +1 -0
  82. package/dist/chunk-DTNRWU4B.mjs +35 -0
  83. package/dist/chunk-DTNRWU4B.mjs.map +1 -0
  84. package/dist/chunk-DXIUEWRJ.mjs +31 -0
  85. package/dist/chunk-DXIUEWRJ.mjs.map +1 -0
  86. package/dist/chunk-DYFV66JX.mjs +54 -0
  87. package/dist/chunk-DYFV66JX.mjs.map +1 -0
  88. package/dist/chunk-F3WMAHXV.mjs +86 -0
  89. package/dist/chunk-F3WMAHXV.mjs.map +1 -0
  90. package/dist/chunk-F4RWPBBB.js +79 -0
  91. package/dist/chunk-F4RWPBBB.js.map +1 -0
  92. package/dist/chunk-FEGAPM6U.js +194 -0
  93. package/dist/chunk-FEGAPM6U.js.map +1 -0
  94. package/dist/chunk-G5TS56PW.mjs +160 -0
  95. package/dist/chunk-G5TS56PW.mjs.map +1 -0
  96. package/dist/chunk-GG6VGOEN.mjs +590 -0
  97. package/dist/chunk-GG6VGOEN.mjs.map +1 -0
  98. package/dist/chunk-GLAMGK32.mjs +54 -0
  99. package/dist/chunk-GLAMGK32.mjs.map +1 -0
  100. package/dist/chunk-GNMMUJXD.mjs +200 -0
  101. package/dist/chunk-GNMMUJXD.mjs.map +1 -0
  102. package/dist/chunk-GNPBULLS.mjs +600 -0
  103. package/dist/chunk-GNPBULLS.mjs.map +1 -0
  104. package/dist/chunk-GTE2DELE.js +65 -0
  105. package/dist/chunk-GTE2DELE.js.map +1 -0
  106. package/dist/chunk-GUQAFFTH.js +94 -0
  107. package/dist/chunk-GUQAFFTH.js.map +1 -0
  108. package/dist/chunk-H5VOYZHT.mjs +34 -0
  109. package/dist/chunk-H5VOYZHT.mjs.map +1 -0
  110. package/dist/chunk-HR6PBOGG.mjs +59 -0
  111. package/dist/chunk-HR6PBOGG.mjs.map +1 -0
  112. package/dist/chunk-HROONQS3.js +55 -0
  113. package/dist/chunk-HROONQS3.js.map +1 -0
  114. package/dist/chunk-IAO7SOQ3.mjs +56 -0
  115. package/dist/chunk-IAO7SOQ3.mjs.map +1 -0
  116. package/dist/chunk-K2QKU3K6.mjs +40 -0
  117. package/dist/chunk-K2QKU3K6.mjs.map +1 -0
  118. package/dist/chunk-KEUZZCCP.js +53 -0
  119. package/dist/chunk-KEUZZCCP.js.map +1 -0
  120. package/dist/chunk-KJXSLTG7.mjs +73 -0
  121. package/dist/chunk-KJXSLTG7.mjs.map +1 -0
  122. package/dist/chunk-L5AFUCVH.mjs +26 -0
  123. package/dist/chunk-L5AFUCVH.mjs.map +1 -0
  124. package/dist/chunk-LB3I52KZ.mjs +42 -0
  125. package/dist/chunk-LB3I52KZ.mjs.map +1 -0
  126. package/dist/chunk-LN75MJQ2.js +71 -0
  127. package/dist/chunk-LN75MJQ2.js.map +1 -0
  128. package/dist/chunk-LRBOFJUV.js +60 -0
  129. package/dist/chunk-LRBOFJUV.js.map +1 -0
  130. package/dist/chunk-MMNYRBOU.js +157 -0
  131. package/dist/chunk-MMNYRBOU.js.map +1 -0
  132. package/dist/chunk-MO65YF6P.js +236 -0
  133. package/dist/chunk-MO65YF6P.js.map +1 -0
  134. package/dist/chunk-N4KHP5FC.mjs +33 -0
  135. package/dist/chunk-N4KHP5FC.mjs.map +1 -0
  136. package/dist/chunk-NP2J7AB7.mjs +121 -0
  137. package/dist/chunk-NP2J7AB7.mjs.map +1 -0
  138. package/dist/chunk-OLR6SGYO.js +57 -0
  139. package/dist/chunk-OLR6SGYO.js.map +1 -0
  140. package/dist/chunk-ON7NQ4DY.js +21 -0
  141. package/dist/chunk-ON7NQ4DY.js.map +1 -0
  142. package/dist/chunk-PE3VFRLV.mjs +198 -0
  143. package/dist/chunk-PE3VFRLV.mjs.map +1 -0
  144. package/dist/chunk-Q7LOOIE5.mjs +8 -0
  145. package/dist/chunk-Q7LOOIE5.mjs.map +1 -0
  146. package/dist/chunk-QFA6U75G.mjs +51 -0
  147. package/dist/chunk-QFA6U75G.mjs.map +1 -0
  148. package/dist/chunk-QJQPT4WX.js +638 -0
  149. package/dist/chunk-QJQPT4WX.js.map +1 -0
  150. package/dist/chunk-QKHQPBSR.mjs +20 -0
  151. package/dist/chunk-QKHQPBSR.mjs.map +1 -0
  152. package/dist/chunk-SJD4XRFJ.mjs +141 -0
  153. package/dist/chunk-SJD4XRFJ.mjs.map +1 -0
  154. package/dist/chunk-SOOJLU4C.mjs +19 -0
  155. package/dist/chunk-SOOJLU4C.mjs.map +1 -0
  156. package/dist/chunk-T66B5IM5.js +51 -0
  157. package/dist/chunk-T66B5IM5.js.map +1 -0
  158. package/dist/chunk-T7RPZDO4.js +645 -0
  159. package/dist/chunk-T7RPZDO4.js.map +1 -0
  160. package/dist/chunk-TGRMDGTV.mjs +38 -0
  161. package/dist/chunk-TGRMDGTV.mjs.map +1 -0
  162. package/dist/chunk-TH2UKMCO.mjs +11 -0
  163. package/dist/chunk-TH2UKMCO.mjs.map +1 -0
  164. package/dist/chunk-TMV45OKE.mjs +113 -0
  165. package/dist/chunk-TMV45OKE.mjs.map +1 -0
  166. package/dist/chunk-TUJ7EVEK.js +171 -0
  167. package/dist/chunk-TUJ7EVEK.js.map +1 -0
  168. package/dist/chunk-ULNWDOI7.js +122 -0
  169. package/dist/chunk-ULNWDOI7.js.map +1 -0
  170. package/dist/chunk-UNUTTHCH.mjs +210 -0
  171. package/dist/chunk-UNUTTHCH.mjs.map +1 -0
  172. package/dist/chunk-VJMI6BG4.mjs +10 -0
  173. package/dist/chunk-VJMI6BG4.mjs.map +1 -0
  174. package/dist/chunk-VZVOB5MG.mjs +26 -0
  175. package/dist/chunk-VZVOB5MG.mjs.map +1 -0
  176. package/dist/chunk-WD67O22C.js +50 -0
  177. package/dist/chunk-WD67O22C.js.map +1 -0
  178. package/dist/chunk-WYPMLIJN.js +53 -0
  179. package/dist/chunk-WYPMLIJN.js.map +1 -0
  180. package/dist/chunk-X32I34NH.js +109 -0
  181. package/dist/chunk-X32I34NH.js.map +1 -0
  182. package/dist/chunk-X5MOZ3YL.js +65 -0
  183. package/dist/chunk-X5MOZ3YL.js.map +1 -0
  184. package/dist/chunk-Y4JVIPQZ.mjs +31 -0
  185. package/dist/chunk-Y4JVIPQZ.mjs.map +1 -0
  186. package/dist/chunk-Y6WOV2LZ.js +95 -0
  187. package/dist/chunk-Y6WOV2LZ.js.map +1 -0
  188. package/dist/chunk-YAEN5SCU.mjs +41 -0
  189. package/dist/chunk-YAEN5SCU.mjs.map +1 -0
  190. package/dist/chunk-YH6XDF3N.js +121 -0
  191. package/dist/chunk-YH6XDF3N.js.map +1 -0
  192. package/dist/chunk-YJKA4D75.mjs +124 -0
  193. package/dist/chunk-YJKA4D75.mjs.map +1 -0
  194. package/dist/chunk-ZANAF7WB.js +88 -0
  195. package/dist/chunk-ZANAF7WB.js.map +1 -0
  196. package/dist/chunk-ZDBWNPLO.js +30 -0
  197. package/dist/chunk-ZDBWNPLO.js.map +1 -0
  198. package/dist/chunk-ZDT2IOK2.js +56 -0
  199. package/dist/chunk-ZDT2IOK2.js.map +1 -0
  200. package/dist/chunk-ZKGVLTSI.js +25 -0
  201. package/dist/chunk-ZKGVLTSI.js.map +1 -0
  202. package/dist/chunk-ZLELESO7.js +34 -0
  203. package/dist/chunk-ZLELESO7.js.map +1 -0
  204. package/dist/chunk-ZUFUEQTX.mjs +157 -0
  205. package/dist/chunk-ZUFUEQTX.mjs.map +1 -0
  206. package/dist/chunk-ZZZWRQQE.mjs +42 -0
  207. package/dist/chunk-ZZZWRQQE.mjs.map +1 -0
  208. package/dist/command/index.js +138 -0
  209. package/dist/command/index.js.map +1 -0
  210. package/dist/command/index.mjs +128 -0
  211. package/dist/command/index.mjs.map +1 -0
  212. package/dist/components/accordion.js +25 -0
  213. package/dist/components/accordion.js.map +1 -0
  214. package/dist/components/accordion.mjs +4 -0
  215. package/dist/components/accordion.mjs.map +1 -0
  216. package/dist/components/alert.js +21 -0
  217. package/dist/components/alert.js.map +1 -0
  218. package/dist/components/alert.mjs +4 -0
  219. package/dist/components/alert.mjs.map +1 -0
  220. package/dist/components/aspect-ratio.js +12 -0
  221. package/dist/components/aspect-ratio.js.map +1 -0
  222. package/dist/components/aspect-ratio.mjs +3 -0
  223. package/dist/components/aspect-ratio.mjs.map +1 -0
  224. package/dist/components/avatar.js +21 -0
  225. package/dist/components/avatar.js.map +1 -0
  226. package/dist/components/avatar.mjs +4 -0
  227. package/dist/components/avatar.mjs.map +1 -0
  228. package/dist/components/badge.js +17 -0
  229. package/dist/components/badge.js.map +1 -0
  230. package/dist/components/badge.mjs +4 -0
  231. package/dist/components/badge.mjs.map +1 -0
  232. package/dist/components/breadcrumb.js +37 -0
  233. package/dist/components/breadcrumb.js.map +1 -0
  234. package/dist/components/breadcrumb.mjs +4 -0
  235. package/dist/components/breadcrumb.mjs.map +1 -0
  236. package/dist/components/button.js +17 -0
  237. package/dist/components/button.js.map +1 -0
  238. package/dist/components/button.mjs +4 -0
  239. package/dist/components/button.mjs.map +1 -0
  240. package/dist/components/card.js +37 -0
  241. package/dist/components/card.js.map +1 -0
  242. package/dist/components/card.mjs +4 -0
  243. package/dist/components/card.mjs.map +1 -0
  244. package/dist/components/checkbox.js +13 -0
  245. package/dist/components/checkbox.js.map +1 -0
  246. package/dist/components/checkbox.mjs +4 -0
  247. package/dist/components/checkbox.mjs.map +1 -0
  248. package/dist/components/collapsible.js +20 -0
  249. package/dist/components/collapsible.js.map +1 -0
  250. package/dist/components/collapsible.mjs +3 -0
  251. package/dist/components/collapsible.mjs.map +1 -0
  252. package/dist/components/context-menu.js +69 -0
  253. package/dist/components/context-menu.js.map +1 -0
  254. package/dist/components/context-menu.mjs +4 -0
  255. package/dist/components/context-menu.mjs.map +1 -0
  256. package/dist/components/dialog.js +49 -0
  257. package/dist/components/dialog.js.map +1 -0
  258. package/dist/components/dialog.mjs +4 -0
  259. package/dist/components/dialog.mjs.map +1 -0
  260. package/dist/components/drawer.js +49 -0
  261. package/dist/components/drawer.js.map +1 -0
  262. package/dist/components/drawer.mjs +4 -0
  263. package/dist/components/drawer.mjs.map +1 -0
  264. package/dist/components/dropdown-menu.js +69 -0
  265. package/dist/components/dropdown-menu.js.map +1 -0
  266. package/dist/components/dropdown-menu.mjs +4 -0
  267. package/dist/components/dropdown-menu.mjs.map +1 -0
  268. package/dist/components/form.js +42 -0
  269. package/dist/components/form.js.map +1 -0
  270. package/dist/components/form.mjs +5 -0
  271. package/dist/components/form.mjs.map +1 -0
  272. package/dist/components/hover-card.js +21 -0
  273. package/dist/components/hover-card.js.map +1 -0
  274. package/dist/components/hover-card.mjs +4 -0
  275. package/dist/components/hover-card.mjs.map +1 -0
  276. package/dist/components/index.js +1047 -0
  277. package/dist/components/index.js.map +1 -0
  278. package/dist/components/index.mjs +46 -0
  279. package/dist/components/index.mjs.map +1 -0
  280. package/dist/components/input-otp.js +25 -0
  281. package/dist/components/input-otp.js.map +1 -0
  282. package/dist/components/input-otp.mjs +4 -0
  283. package/dist/components/input-otp.mjs.map +1 -0
  284. package/dist/components/input.js +13 -0
  285. package/dist/components/input.js.map +1 -0
  286. package/dist/components/input.mjs +4 -0
  287. package/dist/components/input.mjs.map +1 -0
  288. package/dist/components/label.js +13 -0
  289. package/dist/components/label.js.map +1 -0
  290. package/dist/components/label.mjs +4 -0
  291. package/dist/components/label.mjs.map +1 -0
  292. package/dist/components/menubar.js +73 -0
  293. package/dist/components/menubar.js.map +1 -0
  294. package/dist/components/menubar.mjs +4 -0
  295. package/dist/components/menubar.mjs.map +1 -0
  296. package/dist/components/navigation-menu.js +45 -0
  297. package/dist/components/navigation-menu.js.map +1 -0
  298. package/dist/components/navigation-menu.mjs +4 -0
  299. package/dist/components/navigation-menu.mjs.map +1 -0
  300. package/dist/components/pagination.js +38 -0
  301. package/dist/components/pagination.js.map +1 -0
  302. package/dist/components/pagination.mjs +5 -0
  303. package/dist/components/pagination.mjs.map +1 -0
  304. package/dist/components/popover.js +25 -0
  305. package/dist/components/popover.js.map +1 -0
  306. package/dist/components/popover.mjs +4 -0
  307. package/dist/components/popover.mjs.map +1 -0
  308. package/dist/components/progress.js +13 -0
  309. package/dist/components/progress.js.map +1 -0
  310. package/dist/components/progress.mjs +4 -0
  311. package/dist/components/progress.mjs.map +1 -0
  312. package/dist/components/radio-group.js +17 -0
  313. package/dist/components/radio-group.js.map +1 -0
  314. package/dist/components/radio-group.mjs +4 -0
  315. package/dist/components/radio-group.mjs.map +1 -0
  316. package/dist/components/resizable.js +21 -0
  317. package/dist/components/resizable.js.map +1 -0
  318. package/dist/components/resizable.mjs +4 -0
  319. package/dist/components/resizable.mjs.map +1 -0
  320. package/dist/components/scroll-area.js +17 -0
  321. package/dist/components/scroll-area.js.map +1 -0
  322. package/dist/components/scroll-area.mjs +4 -0
  323. package/dist/components/scroll-area.mjs.map +1 -0
  324. package/dist/components/select.js +49 -0
  325. package/dist/components/select.js.map +1 -0
  326. package/dist/components/select.mjs +4 -0
  327. package/dist/components/select.mjs.map +1 -0
  328. package/dist/components/separator.js +13 -0
  329. package/dist/components/separator.js.map +1 -0
  330. package/dist/components/separator.mjs +4 -0
  331. package/dist/components/separator.mjs.map +1 -0
  332. package/dist/components/sheet.js +49 -0
  333. package/dist/components/sheet.js.map +1 -0
  334. package/dist/components/sheet.mjs +4 -0
  335. package/dist/components/sheet.mjs.map +1 -0
  336. package/dist/components/sidebar.js +111 -0
  337. package/dist/components/sidebar.js.map +1 -0
  338. package/dist/components/sidebar.mjs +10 -0
  339. package/dist/components/sidebar.mjs.map +1 -0
  340. package/dist/components/skeleton.js +13 -0
  341. package/dist/components/skeleton.js.map +1 -0
  342. package/dist/components/skeleton.mjs +4 -0
  343. package/dist/components/skeleton.mjs.map +1 -0
  344. package/dist/components/slider.js +13 -0
  345. package/dist/components/slider.js.map +1 -0
  346. package/dist/components/slider.mjs +4 -0
  347. package/dist/components/slider.mjs.map +1 -0
  348. package/dist/components/switch.js +13 -0
  349. package/dist/components/switch.js.map +1 -0
  350. package/dist/components/switch.mjs +4 -0
  351. package/dist/components/switch.mjs.map +1 -0
  352. package/dist/components/table.js +41 -0
  353. package/dist/components/table.js.map +1 -0
  354. package/dist/components/table.mjs +4 -0
  355. package/dist/components/table.mjs.map +1 -0
  356. package/dist/components/tabs.js +25 -0
  357. package/dist/components/tabs.js.map +1 -0
  358. package/dist/components/tabs.mjs +4 -0
  359. package/dist/components/tabs.mjs.map +1 -0
  360. package/dist/components/textarea.js +13 -0
  361. package/dist/components/textarea.js.map +1 -0
  362. package/dist/components/textarea.mjs +4 -0
  363. package/dist/components/textarea.mjs.map +1 -0
  364. package/dist/components/toast.js +37 -0
  365. package/dist/components/toast.js.map +1 -0
  366. package/dist/components/toast.mjs +4 -0
  367. package/dist/components/toast.mjs.map +1 -0
  368. package/dist/components/toggle-group.js +18 -0
  369. package/dist/components/toggle-group.js.map +1 -0
  370. package/dist/components/toggle-group.mjs +5 -0
  371. package/dist/components/toggle-group.mjs.map +1 -0
  372. package/dist/components/toggle.js +17 -0
  373. package/dist/components/toggle.js.map +1 -0
  374. package/dist/components/toggle.mjs +4 -0
  375. package/dist/components/toggle.mjs.map +1 -0
  376. package/dist/components/tooltip.js +25 -0
  377. package/dist/components/tooltip.js.map +1 -0
  378. package/dist/components/tooltip.mjs +4 -0
  379. package/dist/components/tooltip.mjs.map +1 -0
  380. package/dist/effects/index.js +162 -0
  381. package/dist/effects/index.js.map +1 -0
  382. package/dist/effects/index.mjs +156 -0
  383. package/dist/effects/index.mjs.map +1 -0
  384. package/dist/index.js +1096 -9353
  385. package/dist/index.js.map +1 -0
  386. package/dist/index.mjs +47 -9342
  387. package/dist/index.mjs.map +1 -0
  388. package/dist/lib/utils.js +10 -45
  389. package/dist/lib/utils.js.map +1 -0
  390. package/dist/lib/utils.mjs +3 -28
  391. package/dist/lib/utils.mjs.map +1 -0
  392. package/dist/markdown/index.js +669 -0
  393. package/dist/markdown/index.js.map +1 -0
  394. package/dist/markdown/index.mjs +635 -0
  395. package/dist/markdown/index.mjs.map +1 -0
  396. package/dist/qr/index.js +101 -0
  397. package/dist/qr/index.js.map +1 -0
  398. package/dist/qr/index.mjs +98 -0
  399. package/dist/qr/index.mjs.map +1 -0
  400. package/dist/upload/index.js +166 -0
  401. package/dist/upload/index.js.map +1 -0
  402. package/dist/upload/index.mjs +163 -0
  403. package/dist/upload/index.mjs.map +1 -0
  404. package/package.json +153 -270
  405. package/publish.sh +27 -0
  406. package/assets/ai-icons.tsx +0 -207
  407. package/assets/crypto.tsx +0 -33
  408. package/assets/file-type-icon.tsx +0 -66
  409. package/assets/file.tsx +0 -45
  410. package/assets/general.tsx +0 -2318
  411. package/assets/hanzo-logo.svg +0 -9
  412. package/assets/hanzo-logo.tsx +0 -17
  413. package/assets/index.ts +0 -122
  414. package/assets/index.tsx +0 -4
  415. package/assets/llm-provider.tsx +0 -1094
  416. package/bin/cli.js +0 -100
  417. package/bin/create-registry.js +0 -108
  418. package/bin/mcp.js +0 -403
  419. package/bin/npx-registry-mcp.js +0 -15
  420. package/bin/registry-mcp-wrapper.sh +0 -19
  421. package/bin/registry-mcp.js +0 -100
  422. package/bin/start-mcp-server.sh +0 -22
  423. package/bin/test-mcp.sh +0 -52
  424. package/bin/update-registry.js +0 -196
  425. package/blocks/auth/index.ts +0 -6
  426. package/blocks/auth/login-2fa.tsx +0 -165
  427. package/blocks/auth/login-basic.tsx +0 -94
  428. package/blocks/auth/login-social.tsx +0 -148
  429. package/blocks/auth/magic-link.tsx +0 -129
  430. package/blocks/auth/password-reset.tsx +0 -97
  431. package/blocks/auth/signup.tsx +0 -157
  432. package/blocks/components/accordian-block.tsx +0 -48
  433. package/blocks/components/block-component-props.ts +0 -11
  434. package/blocks/components/bullet-cards-block.tsx +0 -46
  435. package/blocks/components/card-block/index.tsx +0 -171
  436. package/blocks/components/card-block/link-out-button.tsx +0 -20
  437. package/blocks/components/card-block/util.ts +0 -28
  438. package/blocks/components/carte-blanche-block/index.tsx +0 -127
  439. package/blocks/components/carte-blanche-block/variant-content-left.tsx +0 -49
  440. package/blocks/components/content.tsx +0 -70
  441. package/blocks/components/cta-block.tsx +0 -115
  442. package/blocks/components/enh-heading-block.tsx +0 -204
  443. package/blocks/components/grid-block/grid-block-mutator.ts +0 -12
  444. package/blocks/components/grid-block/index.tsx +0 -83
  445. package/blocks/components/grid-block/mutator-registry.ts +0 -10
  446. package/blocks/components/grid-block/table-borders.mutator.ts +0 -47
  447. package/blocks/components/group-block.tsx +0 -83
  448. package/blocks/components/heading-block.tsx +0 -88
  449. package/blocks/components/image-block.tsx +0 -111
  450. package/blocks/components/index.ts +0 -30
  451. package/blocks/components/screenful-block/content.tsx +0 -123
  452. package/blocks/components/screenful-block/index.tsx +0 -107
  453. package/blocks/components/screenful-block/poster-background.tsx +0 -34
  454. package/blocks/components/screenful-block/video-background.tsx +0 -45
  455. package/blocks/components/space-block.tsx +0 -66
  456. package/blocks/components/video-block.tsx +0 -138
  457. package/blocks/data-display/activity-feed.tsx +0 -242
  458. package/blocks/data-display/data-table.tsx +0 -235
  459. package/blocks/data-display/stats-grid.tsx +0 -194
  460. package/blocks/def/accordian-block.ts +0 -14
  461. package/blocks/def/block.ts +0 -7
  462. package/blocks/def/bullet-cards-block.ts +0 -22
  463. package/blocks/def/card-block.ts +0 -22
  464. package/blocks/def/carte-blanche-block.ts +0 -21
  465. package/blocks/def/cta-block.ts +0 -19
  466. package/blocks/def/element-block.ts +0 -11
  467. package/blocks/def/enh-heading-block.ts +0 -44
  468. package/blocks/def/grid-block.ts +0 -16
  469. package/blocks/def/group-block.ts +0 -11
  470. package/blocks/def/heading-block.ts +0 -15
  471. package/blocks/def/image-block.ts +0 -31
  472. package/blocks/def/index.ts +0 -35
  473. package/blocks/def/screenful-block.ts +0 -54
  474. package/blocks/def/space-block.ts +0 -64
  475. package/blocks/def/video-block.ts +0 -9
  476. package/blocks/ecommerce/checkout.tsx +0 -242
  477. package/blocks/ecommerce/index.ts +0 -7
  478. package/blocks/ecommerce/product-detail.tsx +0 -257
  479. package/blocks/ecommerce/product-grid.tsx +0 -148
  480. package/blocks/ecommerce/shopping-cart.tsx +0 -181
  481. package/blocks/index.ts +0 -2
  482. package/blocks/marketing/cta-section.tsx +0 -207
  483. package/blocks/marketing/faq.tsx +0 -159
  484. package/blocks/marketing/features-grid.tsx +0 -156
  485. package/blocks/marketing/hero-section.tsx +0 -192
  486. package/blocks/marketing/index.ts +0 -6
  487. package/blocks/marketing/pricing-table.tsx +0 -121
  488. package/blocks/marketing/testimonials.tsx +0 -196
  489. package/components/index.ts +0 -9
  490. package/dist/src/utils.js +0 -47
  491. package/dist/src/utils.mjs +0 -28
  492. package/dist/tailwind/index.js +0 -2050
  493. package/dist/tailwind/index.mjs +0 -2019
  494. package/dist/types/index.js +0 -79
  495. package/dist/types/index.mjs +0 -56
  496. package/dist/util/format-text.js +0 -51
  497. package/dist/util/format-text.mjs +0 -32
  498. package/dist/util/index.js +0 -384
  499. package/dist/util/index.mjs +0 -363
  500. package/frameworks/core/index.ts +0 -6
  501. package/frameworks/core/utils/index.ts +0 -64
  502. package/frameworks/react/components/button.tsx +0 -26
  503. package/frameworks/react/components/index.ts +0 -5
  504. package/frameworks/react/hooks/index.ts +0 -5
  505. package/frameworks/react/index.ts +0 -9
  506. package/frameworks/react/package.json +0 -8
  507. package/frameworks/react/utils/index.ts +0 -2
  508. package/frameworks/react-native/index.ts +0 -9
  509. package/frameworks/react-native/package.json +0 -8
  510. package/frameworks/registry.json +0 -371
  511. package/frameworks/setup.sh +0 -69
  512. package/frameworks/svelte/index.ts +0 -9
  513. package/frameworks/svelte/package.json +0 -8
  514. package/frameworks/tracker.json +0 -1854
  515. package/frameworks/vue/index.ts +0 -9
  516. package/frameworks/vue/package.json +0 -8
  517. package/helpers/file.ts +0 -33
  518. package/helpers/memoization.ts +0 -40
  519. package/primitives/accordion.tsx +0 -74
  520. package/primitives/action-button.tsx +0 -42
  521. package/primitives/alert-dialog.tsx +0 -185
  522. package/primitives/alert.tsx +0 -74
  523. package/primitives/apply-typography.tsx +0 -55
  524. package/primitives/aspect-ratio.tsx +0 -5
  525. package/primitives/avatar.tsx +0 -57
  526. package/primitives/background-beams.tsx +0 -142
  527. package/primitives/badge.tsx +0 -45
  528. package/primitives/breadcrumb.tsx +0 -130
  529. package/primitives/breakpoint-indicator.tsx +0 -19
  530. package/primitives/button.tsx +0 -72
  531. package/primitives/calendar.tsx +0 -72
  532. package/primitives/card.tsx +0 -97
  533. package/primitives/carousel.tsx +0 -238
  534. package/primitives/chat/chat-input-area.tsx +0 -88
  535. package/primitives/chat/chat-input.tsx +0 -71
  536. package/primitives/chat/files-preview.tsx +0 -331
  537. package/primitives/chat/index.ts +0 -6
  538. package/primitives/chat/json-form.tsx +0 -8
  539. package/primitives/chat/message-list.tsx +0 -308
  540. package/primitives/chat/message.tsx +0 -569
  541. package/primitives/chat/sqlite-preview.tsx +0 -215
  542. package/primitives/checkbox.tsx +0 -32
  543. package/primitives/collapsible.tsx +0 -9
  544. package/primitives/combobox.tsx +0 -239
  545. package/primitives/command.tsx +0 -151
  546. package/primitives/context-menu.tsx +0 -206
  547. package/primitives/copy-to-clipboard-icon.tsx +0 -60
  548. package/primitives/dialog-video-controller.tsx +0 -38
  549. package/primitives/dialog.tsx +0 -128
  550. package/primitives/dot-pattern.tsx +0 -57
  551. package/primitives/dots-loader.tsx +0 -13
  552. package/primitives/drawer.tsx +0 -113
  553. package/primitives/dropdown-menu.tsx +0 -199
  554. package/primitives/error-message.tsx +0 -19
  555. package/primitives/file-uploader.tsx +0 -203
  556. package/primitives/form.tsx +0 -185
  557. package/primitives/hover-card.tsx +0 -28
  558. package/primitives/icons/github.tsx +0 -14
  559. package/primitives/icons/index.ts +0 -18
  560. package/primitives/icons/youtube-logo.tsx +0 -59
  561. package/primitives/index-client.ts +0 -4
  562. package/primitives/index-common.ts +0 -304
  563. package/primitives/index-next.ts +0 -4
  564. package/primitives/input-otp.tsx +0 -65
  565. package/primitives/input.tsx +0 -128
  566. package/primitives/label.tsx +0 -21
  567. package/primitives/list-adaptor.ts +0 -12
  568. package/primitives/list-box.tsx +0 -74
  569. package/primitives/loading-spinner.tsx +0 -33
  570. package/primitives/markdown-preview.tsx +0 -612
  571. package/primitives/mermaid.tsx +0 -191
  572. package/primitives/navigation-menu.tsx +0 -147
  573. package/primitives/next/image.tsx +0 -91
  574. package/primitives/next/index.ts +0 -7
  575. package/primitives/next/inline-icon.tsx +0 -36
  576. package/primitives/next/link-element.tsx +0 -109
  577. package/primitives/next/mdx-link.tsx +0 -22
  578. package/primitives/next/media-stack.tsx +0 -52
  579. package/primitives/next/nav-items.tsx +0 -45
  580. package/primitives/next/youtube-embed.tsx +0 -83
  581. package/primitives/pagination.tsx +0 -117
  582. package/primitives/popover.tsx +0 -34
  583. package/primitives/pretty-json-print.tsx +0 -28
  584. package/primitives/progress.tsx +0 -27
  585. package/primitives/prompt-textarea.tsx +0 -72
  586. package/primitives/qr-code.tsx +0 -112
  587. package/primitives/radio-group.tsx +0 -42
  588. package/primitives/resizable.tsx +0 -47
  589. package/primitives/scroll-area.tsx +0 -57
  590. package/primitives/search-input.tsx +0 -66
  591. package/primitives/select.tsx +0 -122
  592. package/primitives/separator.tsx +0 -26
  593. package/primitives/sheet.tsx +0 -139
  594. package/primitives/skeleton.tsx +0 -18
  595. package/primitives/slider.tsx +0 -63
  596. package/primitives/sonner.tsx +0 -35
  597. package/primitives/step-indicator.tsx +0 -69
  598. package/primitives/stepper.tsx +0 -272
  599. package/primitives/switch.tsx +0 -27
  600. package/primitives/table.tsx +0 -105
  601. package/primitives/tabs.tsx +0 -50
  602. package/primitives/text-area.tsx +0 -26
  603. package/primitives/text-link.tsx +0 -25
  604. package/primitives/textarea.tsx +0 -64
  605. package/primitives/textfield.tsx +0 -78
  606. package/primitives/toast.tsx +0 -30
  607. package/primitives/toggle-group.tsx +0 -63
  608. package/primitives/toggle.tsx +0 -44
  609. package/primitives/tooltip.tsx +0 -47
  610. package/primitives/video-player.tsx +0 -23
  611. package/src/button.ts +0 -1
  612. package/src/hooks/index.ts +0 -7
  613. package/src/hooks/use-click-away.ts +0 -31
  614. package/src/hooks/use-combined-refs.ts +0 -22
  615. package/src/hooks/use-copy-clipboard.ts +0 -30
  616. package/src/hooks/use-debounce.ts +0 -17
  617. package/src/hooks/use-fill-ids.ts +0 -25
  618. package/src/hooks/use-map.ts +0 -26
  619. package/src/hooks/use-measure.ts +0 -42
  620. package/src/hooks/use-reverse-video-playback.ts +0 -43
  621. package/src/hooks/use-scroll-restoration.ts +0 -50
  622. package/src/index-lean.ts +0 -87
  623. package/src/index.ts +0 -54
  624. package/src/mcp/README.md +0 -141
  625. package/src/mcp/enhanced-server.ts +0 -1208
  626. package/src/mcp/index.ts +0 -518
  627. package/src/mcp/package.json +0 -10
  628. package/src/registry/api.ts +0 -164
  629. package/src/registry/index.ts +0 -60
  630. package/src/registry/package.json +0 -10
  631. package/src/utils.ts +0 -19
  632. package/style/drawer.css +0 -163
  633. package/style/globals.css +0 -13
  634. package/style/hanzo-common.css +0 -31
  635. package/style/hanzo-default-colors.css +0 -82
  636. package/style/theme-provider.tsx +0 -20
  637. package/tailwind/colors.tailwind.js +0 -53
  638. package/tailwind/fontFamily.tailwind.ts +0 -7
  639. package/tailwind/fontSize.tailwind.ts +0 -13
  640. package/tailwind/index.ts +0 -7
  641. package/tailwind/safelist.tailwind.js +0 -26
  642. package/tailwind/screens.tailwind.js +0 -8
  643. package/tailwind/spacing.tailwind.js +0 -65
  644. package/tailwind/tailwind.config.hanzo-preset.d.ts +0 -5
  645. package/tailwind/tailwind.config.hanzo-preset.js +0 -915
  646. package/tailwind/tw-font-desc.ts +0 -15
  647. package/tailwind/typo-plugin/get-plugin-styles.js +0 -679
  648. package/tailwind/typo-plugin/index.d.ts +0 -9
  649. package/tailwind/typo-plugin/index.js +0 -141
  650. package/tailwind/typo-plugin/utils.js +0 -60
  651. package/tailwind/typography-test.mdx +0 -35
  652. package/tailwind/z-index.tailwind.js +0 -71
  653. package/types/animation-def.ts +0 -3
  654. package/types/breakpoints.ts +0 -11
  655. package/types/bullet-item.ts +0 -10
  656. package/types/button-def.ts +0 -39
  657. package/types/dimensions.ts +0 -8
  658. package/types/grid-def.ts +0 -56
  659. package/types/image-def.ts +0 -32
  660. package/types/index.ts +0 -30
  661. package/types/link-def.ts +0 -56
  662. package/types/media-stack-def.ts +0 -31
  663. package/types/t-shirt-size.ts +0 -5
  664. package/types/tshirt-dimensions.ts +0 -20
  665. package/types/video-def.ts +0 -25
  666. package/util/blob.ts +0 -33
  667. package/util/copy-to-clipboard.ts +0 -17
  668. package/util/create-shadow-root.ts +0 -22
  669. package/util/date.ts +0 -84
  670. package/util/debounce.ts +0 -11
  671. package/util/file.ts +0 -15
  672. package/util/format-and-abbreviate-as-currency.ts +0 -125
  673. package/util/format-text.ts +0 -34
  674. package/util/format-to-max-char.ts +0 -68
  675. package/util/index-client.ts +0 -3
  676. package/util/index.ts +0 -112
  677. package/util/number-abbreviate.ts +0 -49
  678. package/util/specifier.ts +0 -43
  679. package/util/spread-to-transform.ts +0 -25
  680. package/util/step-animation.ts +0 -90
  681. package/util/timing.ts +0 -3
  682. package/util/toasts.tsx +0 -17
  683. package/util/two-way-map.ts +0 -19
@@ -1,191 +0,0 @@
1
- // import { save } from '@tauri-apps/plugin-dialog'; // Not available in web environment
2
- // import * as fs from '@tauri-apps/plugin-fs'; // Not available in web environment
3
- import { RotateCcw, Download } from 'lucide-react';
4
- import mermaid from 'mermaid';
5
- import { FC, useEffect, useRef, useState, useCallback } from 'react';
6
- import { toast } from 'sonner';
7
- import svgPanZoom from 'svg-pan-zoom';
8
- import { cn } from '../src/utils';
9
- import { Button } from './button';
10
- import { SyntaxHighlighterProps } from './markdown-preview';
11
- import { Tooltip, TooltipContent, TooltipTrigger } from './tooltip';
12
-
13
- export type MermaidDiagramProps = SyntaxHighlighterProps & {
14
- className?: string;
15
- isRunning?: boolean;
16
- };
17
-
18
- mermaid.initialize({
19
- startOnLoad: true,
20
- mindmap: {
21
- useWidth: 800,
22
- },
23
- theme: 'dark',
24
- fontSize: 18,
25
- darkMode: true,
26
- fontFamily: 'Inter',
27
- });
28
-
29
- const generateId = () => `mermaid-${Math.random().toString(36).slice(2)}`;
30
-
31
- const downloadBlob = async (blob: Blob, filename: string) => {
32
- // Web-compatible download (instead of Tauri)
33
- try {
34
- const link = document.createElement('a');
35
- link.href = URL.createObjectURL(blob);
36
- link.download = filename;
37
- document.body.appendChild(link);
38
- link.click();
39
- document.body.removeChild(link);
40
- URL.revokeObjectURL(link.href);
41
- toast.success('Mermaid diagram saved successfully');
42
- } catch (error) {
43
- toast.error('Failed to download diagram');
44
- }
45
- };
46
-
47
- export const MermaidDiagram: FC<MermaidDiagramProps> = ({
48
- code,
49
- className,
50
- isRunning,
51
- }) => {
52
- const ref = useRef<HTMLDivElement>(null);
53
- const lastCode = useRef<string | null>(null);
54
- const [instance, setInstance] = useState<any>(null);
55
-
56
- const isComplete = !isRunning;
57
-
58
- const resetZoom = useCallback(() => {
59
- instance?.fit();
60
- instance?.center();
61
- }, [instance]);
62
-
63
- const downloadSVG = useCallback(() => {
64
- if (ref.current) {
65
- const svg = ref.current.innerHTML;
66
- const blob = new Blob([svg], { type: 'image/svg+xml' });
67
- void downloadBlob(blob, 'mermaid-diagram.svg');
68
- }
69
- }, []);
70
-
71
- const enableZoom = useCallback(() => {
72
- instance?.enablePan();
73
- instance?.enableZoom();
74
- }, [instance]);
75
-
76
- const disableZoom = useCallback(() => {
77
- instance?.disablePan();
78
- instance?.disableZoom();
79
- }, [instance]);
80
-
81
- const handleFocus = useCallback(() => {
82
- enableZoom();
83
- }, [enableZoom]);
84
-
85
- const handleBlur = useCallback(() => {
86
- disableZoom();
87
- }, [disableZoom]);
88
-
89
- const handleClick = useCallback(() => {
90
- if (ref.current) {
91
- ref.current.focus();
92
- }
93
- }, []);
94
-
95
- useEffect(() => {
96
- if (!isComplete || !ref.current || !code) return;
97
-
98
- if (lastCode.current === code) return;
99
-
100
- void (async () => {
101
- try {
102
- const id = generateId();
103
- const { svg } = await mermaid.render(id, code);
104
-
105
- if (ref.current) {
106
- ref.current.innerHTML = svg;
107
-
108
- const svgElement = ref.current.querySelector('svg');
109
- if (svgElement) {
110
- svgElement.setAttribute('height', '100%');
111
- svgElement.setAttribute('width', '100%');
112
- svgElement.style.height = '100%';
113
- svgElement.style.width = '100%';
114
- svgElement.style.position = 'absolute';
115
- svgElement.style.top = '0';
116
- svgElement.style.left = '0';
117
-
118
- const panZoomInstance = svgPanZoom(svgElement);
119
- panZoomInstance.fit();
120
- panZoomInstance.center();
121
- panZoomInstance.zoomAtPoint(1, { x: 0, y: 0 });
122
- panZoomInstance.disablePan();
123
- panZoomInstance.disableZoom();
124
- setInstance(panZoomInstance);
125
- }
126
- }
127
-
128
- lastCode.current = code;
129
- } catch (e) {
130
- console.warn('Failed to render Mermaid diagram:', e);
131
- }
132
- })();
133
- }, [code, isComplete]);
134
-
135
- return (
136
- <div className="relative">
137
- <div className="absolute top-2 right-2 z-10 flex gap-1">
138
- <Tooltip>
139
- <TooltipTrigger asChild>
140
- <Button
141
- variant="tertiary"
142
- size="icon"
143
- onClick={resetZoom}
144
- className="text-text-secondary"
145
- >
146
- <RotateCcw size={14} />
147
- </Button>
148
- </TooltipTrigger>
149
- <TooltipContent>
150
- <p>Reset Zoom</p>
151
- </TooltipContent>
152
- </Tooltip>
153
- <Tooltip>
154
- <TooltipTrigger asChild>
155
- <Button
156
- variant="tertiary"
157
- size="icon"
158
- onClick={downloadSVG}
159
- className="text-text-secondary"
160
- >
161
- <Download size={14} />
162
- </Button>
163
- </TooltipTrigger>
164
- <TooltipContent>
165
- <p>Download SVG</p>
166
- </TooltipContent>
167
- </Tooltip>
168
- </div>
169
- <div
170
- onClick={handleClick}
171
- className="text-text-secondary bg-bg-quaternary absolute right-2 bottom-2 z-10 rounded px-2 py-1 text-xs"
172
- >
173
- Click to focus, then scroll to zoom & drag to pan
174
- </div>
175
- <div
176
- ref={ref}
177
- tabIndex={0}
178
- onFocus={handleFocus}
179
- onBlur={handleBlur}
180
- onClick={handleClick}
181
- className={cn(
182
- 'text-text-secondary bg-bg-quaternary focus:ring-opacity-50 relative w-full cursor-grab overflow-hidden rounded-b-lg p-4 py-10 text-center text-sm focus:cursor-grabbing focus:ring-2 focus:ring-blue-500 focus:outline-none',
183
- className,
184
- )}
185
- style={{ width: '100%', minHeight: '400px' }}
186
- >
187
- Drawing diagram...
188
- </div>
189
- </div>
190
- );
191
- };
@@ -1,147 +0,0 @@
1
- 'use client'
2
- import React from 'react'
3
-
4
- import * as NavigationMenuPrimitive from '@radix-ui/react-navigation-menu'
5
- import { cva } from 'class-variance-authority'
6
- import { ChevronDown } from 'lucide-react'
7
-
8
- import { cn } from '../util'
9
-
10
- const NavigationMenu = React.forwardRef<
11
- React.ElementRef<typeof NavigationMenuPrimitive.Root>,
12
- React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Root>
13
- >(({ className, children, ...props }, ref) => (
14
- <NavigationMenuPrimitive.Root
15
- ref={ref}
16
- className={cn(
17
- 'relative z-10 flex max-w-max flex-1 items-center justify-center',
18
- className
19
- )}
20
- {...props}
21
- >
22
- {children}
23
- {/* <NavigationMenuViewport /> */}
24
- </NavigationMenuPrimitive.Root>
25
- ))
26
- NavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName
27
-
28
- const NavigationMenuList = React.forwardRef<
29
- React.ElementRef<typeof NavigationMenuPrimitive.List>,
30
- React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.List>
31
- >(({ className, ...props }, ref) => (
32
- <NavigationMenuPrimitive.List
33
- ref={ref}
34
- className={cn(
35
- 'group flex flex-1 list-none items-center justify-center space-x-1',
36
- className
37
- )}
38
- {...props}
39
- />
40
- ))
41
- NavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName
42
-
43
- const NavigationMenuItem = React.forwardRef<
44
- React.ElementRef<typeof NavigationMenuPrimitive.Item>,
45
- React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Item>
46
- >(({ className, ...props }, ref) => (
47
- <NavigationMenuPrimitive.Item
48
- ref={ref}
49
- className={cn("relative", className)}
50
- {...props}
51
- />
52
- ))
53
- NavigationMenuItem.displayName = 'NavigationMenuItem'
54
-
55
- const navigationMenuTriggerStyle = cva(
56
- 'group inline-flex h-10 w-max items-center justify-center rounded-md bg-background px-4 py-2 ' +
57
- 'text-sm font-medium transition-colors hover:bg-level-1 text-foreground hover:text-accent ' +
58
- ' focus:text-accent focus:outline-none disabled:pointer-events-none disabled:opacity-50 ' +
59
- 'data-[active]:bg-level-1/50 data-[state=open]:bg-level-1/50'
60
- )
61
-
62
- const NavigationMenuTrigger = React.forwardRef<
63
- React.ElementRef<typeof NavigationMenuPrimitive.Trigger>,
64
- React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Trigger>
65
- >(({ className, children, ...props }, ref) => (
66
- <NavigationMenuPrimitive.Trigger
67
- ref={ref}
68
- className={cn(navigationMenuTriggerStyle(), 'group', className)}
69
- {...props}
70
- >
71
- {children}{' '}
72
- <ChevronDown
73
- className='relative top-[1px] ml-1 h-3 w-3 transition duration-200 group-data-[state=open]:rotate-180'
74
- aria-hidden='true'
75
- />
76
- </NavigationMenuPrimitive.Trigger>
77
- ))
78
- NavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName
79
-
80
- const NavigationMenuContent = React.forwardRef<
81
- React.ElementRef<typeof NavigationMenuPrimitive.Content>,
82
- React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Content>
83
- >(({ className, ...props }, ref) => (
84
- <NavigationMenuPrimitive.Content
85
- ref={ref}
86
- className={cn(
87
- "right-0 absolute",
88
- "absolute top-full w-fit bg-popover mt-[5px]",
89
- "data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 bg-background overflow-hidden rounded-md border",
90
- className
91
- )}
92
- {...props}
93
- />
94
- ))
95
- NavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName
96
-
97
- const NavigationMenuLink = NavigationMenuPrimitive.Link
98
-
99
- const NavigationMenuViewport = React.forwardRef<
100
- React.ElementRef<typeof NavigationMenuPrimitive.Viewport>,
101
- React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Viewport>
102
- >(({ className, ...props }, ref) => (
103
- <div className={cn('absolute left-0 top-full flex justify-center')}>
104
- <NavigationMenuPrimitive.Viewport
105
- className={cn(
106
- 'origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border ',
107
- 'bg-background text-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]',
108
- className
109
- )}
110
- ref={ref}
111
- {...props}
112
- />
113
- </div>
114
- ))
115
- NavigationMenuViewport.displayName =
116
- NavigationMenuPrimitive.Viewport.displayName
117
-
118
- const NavigationMenuIndicator = React.forwardRef<
119
- React.ElementRef<typeof NavigationMenuPrimitive.Indicator>,
120
- React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Indicator>
121
- >(({ className, ...props }, ref) => (
122
- <NavigationMenuPrimitive.Indicator
123
- ref={ref}
124
- className={cn(
125
- 'top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden',
126
- 'data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in',
127
- className
128
- )}
129
- {...props}
130
- >
131
- <div className='relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border shadow-md' />
132
- </NavigationMenuPrimitive.Indicator>
133
- ))
134
- NavigationMenuIndicator.displayName =
135
- NavigationMenuPrimitive.Indicator.displayName
136
-
137
- export {
138
- navigationMenuTriggerStyle,
139
- NavigationMenu,
140
- NavigationMenuList,
141
- NavigationMenuItem,
142
- NavigationMenuContent,
143
- NavigationMenuTrigger,
144
- NavigationMenuLink,
145
- NavigationMenuIndicator,
146
- NavigationMenuViewport,
147
- }
@@ -1,91 +0,0 @@
1
- import React from 'react'
2
- import NextImage from 'next/image'
3
-
4
- // @ts-ignore
5
- const { ImageDef, Dimensions, MediaTransform } = {}
6
- import { constrain, cn, spreadToTransform } from '../../util'
7
-
8
- const Image: React.FC<{
9
- def: ImageDef
10
- constrainTo?: Dimensions
11
- transform?: MediaTransform
12
- fullWidth?: boolean
13
- className?: string
14
- preload?: boolean
15
- }> = ({
16
- def,
17
- constrainTo,
18
- transform={},
19
- fullWidth=false,
20
- className='',
21
- preload=false
22
- }) => {
23
-
24
- const {
25
- src,
26
- alt: _alt,
27
- dim,
28
- sizes,
29
- svgFillClass: _svgFillClass,
30
- } = def
31
-
32
- const toSpread: any = {}
33
- if (fullWidth) {
34
- toSpread.style = {
35
- width: '100%',
36
- height: 'auto',
37
- ...spreadToTransform(transform)
38
- }
39
- if (constrainTo) {
40
- toSpread.style.maxWidth = constrainTo.w
41
- toSpread.style.maxHeight = constrainTo.h
42
- }
43
- }
44
- else {
45
- const resolved = constrainTo ? constrain(dim, constrainTo) : dim
46
- toSpread.width = resolved.w
47
- toSpread.height = resolved.h
48
- toSpread.style = {...spreadToTransform(transform)}
49
- }
50
-
51
- if (sizes) {
52
- toSpread.sizes = sizes
53
- }
54
-
55
- // Note: cannot be spread (a Next thing)
56
- let alt: string
57
- if (_alt) {
58
- alt = _alt
59
- }
60
- else {
61
- const tokens = src.split('/')
62
- // Something remotely meaningful
63
- alt = (tokens.length > 0) ? tokens[tokens.length - 1] : src
64
- }
65
-
66
- const svgFillClass = _svgFillClass ?? ''
67
-
68
- return (fullWidth) ? (
69
- <div className='relative flex flex-col items-center justify-center w-full'>
70
- <NextImage
71
- src={src}
72
- alt={alt}
73
- {...toSpread}
74
- priority={preload}
75
- loading={preload ? 'eager' : 'lazy'}
76
- className={cn(svgFillClass, className)}
77
- />
78
- </div>
79
- ) : (
80
- <NextImage
81
- src={src}
82
- alt={alt}
83
- {...toSpread}
84
- priority={preload}
85
- loading={preload ? 'eager' : 'lazy'}
86
- className={cn(svgFillClass, className)}
87
- />
88
- )
89
- }
90
-
91
- export default Image
@@ -1,7 +0,0 @@
1
- export { default as Image } from './image'
2
- export { default as InlineIcon } from './inline-icon'
3
- export { default as LinkElement } from './link-element'
4
- export { default as MDXLink } from './mdx-link'
5
- export { default as MediaStack } from './media-stack'
6
- export { default as NavItems } from './nav-items'
7
- export { default as YouTubeEmbed } from './youtube-embed'
@@ -1,36 +0,0 @@
1
- import React from 'react'
2
- import Image from 'next/image'
3
-
4
- interface InlineIconProps {
5
- /**
6
- * If a ReactNode is passed in, it should be set to 'w-full h-auto' so that it can be sized
7
- * according to width of parent.
8
- */
9
- icon: React.ReactNode;
10
- /** default should be handled by calling code. */
11
- size?: number;
12
- agent?: string;
13
- className?: string;
14
- }
15
-
16
- const InlineIcon: React.FC<InlineIconProps> = ({
17
- icon,
18
- size,
19
- agent,
20
- className=''
21
- }) => {
22
- if (!icon) return null
23
-
24
- const phone = agent === 'phone'
25
- if (typeof icon === 'string') {
26
- const _size = (phone && size) ? (size * .75) : size
27
- return (<Image src={icon} width={_size} height={_size} alt='icon' className={className}/>)
28
- }
29
- return (
30
- <div className={className}>
31
- {icon}
32
- </div>
33
- )
34
- }
35
-
36
- export default InlineIcon
@@ -1,109 +0,0 @@
1
- import React, { PropsWithChildren } from 'react'
2
- import Link from 'next/link'
3
-
4
- import type { LinkDef } from '../../types'
5
- import { buttonVariants } from '../button'
6
- import { cn, type VariantProps } from '../../util'
7
-
8
- /**
9
- * If this is rendered directly (and not auto generated in a Block)
10
- * and it has any children, title, icon, and iconAfter
11
- * are ignore.
12
- */
13
- const LinkElement: React.FC<
14
- PropsWithChildren &
15
- VariantProps<typeof buttonVariants> &
16
- {
17
- def: LinkDef,
18
-
19
- /**
20
- * Use to trigger other events in addition to the
21
- * link action itself. For example, to also close a drawer menu.
22
- */
23
- onClick?: () => void
24
-
25
- /** overrides def (eg, for title area)*/
26
- icon?: React.ReactNode
27
- /** overrides def */
28
- iconAfter?: boolean
29
- className?: string,
30
- }> = ({
31
- def,
32
- // DO NOT provide a default to any of the props that also appear in def!
33
- onClick,
34
- size,
35
- variant,
36
- rounded,
37
- icon,
38
- iconAfter,
39
- className = '',
40
- children,
41
- } ) => {
42
-
43
- const {
44
- href,
45
- newTab,
46
- variant: defVariant,
47
- size: defSize,
48
- rounded: defRounded,
49
- title
50
- } = def
51
-
52
- const linkProps: any = {}
53
-
54
- // As per LinkDef docs
55
- if (href.startsWith('http') || href.startsWith('mailto')) {
56
- linkProps.rel = 'noreferrer noopener'
57
- if (newTab ?? true) {
58
- linkProps.target = '_blank'
59
- }
60
- }
61
- else if (newTab) {
62
- linkProps.target = '_blank'
63
- }
64
-
65
- const toSpread = {
66
- href,
67
- ...(onClick ? { onClick } : {}),
68
- ...linkProps
69
- }
70
-
71
- const Contents: React.FC = () => {
72
-
73
- if (React.Children.count(children) > 0) return children
74
-
75
- // Props > def fields > defaults.
76
- const _icon = (icon) ? icon : (def.icon) ? def.icon : undefined
77
- const _iconAfter = (iconAfter) ? iconAfter : (def.iconAfter) ? def.iconAfter : false
78
-
79
- // 'title' is not guaranteed as it could be an icon only button / link
80
- return (<>
81
- {_icon && !_iconAfter && (<div className='pr-1'>{_icon}</div>)}
82
- {title && (<div>{title}</div>)}
83
- {_icon && _iconAfter && (<div className='pl-1'>{_icon}</div>)}
84
- </>)
85
- }
86
-
87
- return (
88
- <Link
89
- className={cn(
90
- buttonVariants({
91
- variant: variant ? variant : (defVariant ? defVariant : 'link'),
92
- size: (!defVariant || defVariant.includes('link') || variant?.includes('link')) ?
93
- 'link'
94
- :
95
- (size ? size : defSize),
96
- rounded: rounded ? rounded : (defRounded ? defRounded : 'md'),
97
- }),
98
- // This is a "label only" LinkDef. cf: footer"
99
- ((href.length > 0 || onClick) ? '' : 'pointer-events-none'),
100
- className
101
- )}
102
- {...toSpread}
103
- >
104
- <Contents />
105
- </Link>
106
- )
107
- }
108
-
109
- export default LinkElement
@@ -1,22 +0,0 @@
1
- import React, { AnchorHTMLAttributes, type PropsWithChildren } from 'react'
2
- import Link from 'next/link'
3
-
4
- const MDXLink: React.FC<AnchorHTMLAttributes<HTMLAnchorElement> > = ({
5
- href,
6
- children,
7
- ...rest
8
- }) => {
9
-
10
- // internal link
11
- if (href && (href.startsWith('/'))) {
12
- return (
13
- <Link href={href} {...rest}>
14
- {children}
15
- </Link>
16
- )
17
- }
18
-
19
- return <a target="_blank" href={href} {...rest} >{children}</a>
20
- }
21
-
22
- export default MDXLink
@@ -1,52 +0,0 @@
1
- 'use client'
2
- import React from 'react'
3
-
4
- import { cn, constrain, spreadToTransform } from '../../util'
5
- import type { MediaStackDef, Dimensions } from '../../types'
6
-
7
- import Image from './image'
8
- import VideoPlayer from '../video-player'
9
-
10
- const MediaStack: React.FC<{
11
- media: MediaStackDef
12
- constrainTo?: Dimensions
13
- clx?: string
14
- }> = ({
15
- media,
16
- constrainTo: cnst = {w: 250, h: 250},
17
- clx=''
18
- }) => {
19
- const {img, video, mediaTransform} = media
20
-
21
- const transform = mediaTransform ?? {}
22
-
23
- // Order of precedence: MP4 > Image
24
- if (video) {
25
- const dim = constrain(video.dim.md, cnst)
26
- return (
27
- <VideoPlayer
28
- className={clx}
29
- sources={video.sources}
30
- width={dim.w}
31
- height={dim.h}
32
- style={{
33
- minHeight: dim.h, // prevents layout jumps
34
- ...spreadToTransform(transform)
35
- }}
36
- {...video.videoProps}
37
- />
38
- )
39
- }
40
- return img ? (
41
- <Image
42
- def={img}
43
- constrainTo={cnst}
44
- className={clx}
45
- transform={transform}
46
- />
47
- ) : (
48
- <div style={{width: cnst.w, height: cnst.h}} className={cn('bg-level-2', clx)} />
49
- )
50
- }
51
-
52
- export default MediaStack
@@ -1,45 +0,0 @@
1
- import React from 'react'
2
-
3
- import type { LinkDef } from '../../types'
4
- import LinkElement from './link-element'
5
- import { cn } from '../../util'
6
-
7
- const NavItems: React.FC<{
8
- items: LinkDef[]
9
- className?: string,
10
- as?: React.ElementType
11
- itemClx?: string | ((def: LinkDef) => string),
12
- currentAs?: string
13
- }> = ({
14
- items,
15
- className='',
16
- itemClx,
17
- as: Tag='nav',
18
- currentAs
19
- }) => ( items.length ? (
20
- <Tag className={className} >
21
- {items.map((item, index) => {
22
-
23
- const variant = item.variant ?? 'link'
24
- let internalClx = ''
25
-
26
- // note that linkFG (or any other variant of 'link')
27
- // will not get assigned these classes,
28
- // and will remain styles is 'foreground' (hence the name)
29
- if (variant === 'link') {
30
- internalClx += 'text-nav hover:text-nav-hover '
31
- if (currentAs && currentAs === item.href) {
32
- internalClx += 'text-nav-current '
33
- }
34
- }
35
- else {
36
- internalClx += 'min-w-0 lg:min-w-0 '
37
- }
38
-
39
- const _itemClx = (itemClx) ? (typeof itemClx === 'string' ? itemClx : itemClx(item)) : ''
40
- return (<LinkElement def={item} key={index} className={cn( internalClx, _itemClx)} />)
41
- })}
42
- </Tag>) : null
43
- )
44
-
45
- export default NavItems