@hanzo/ui 5.0.2 → 5.0.3

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 (685) 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 +1089 -9072
  385. package/dist/index.js.map +1 -1
  386. package/dist/index.mjs +45 -8698
  387. package/dist/index.mjs.map +1 -1
  388. package/dist/lib/utils.js +12 -0
  389. package/dist/lib/utils.js.map +1 -0
  390. package/dist/lib/utils.mjs +3 -0
  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 -272
  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/tailwind.js +0 -2025
  491. package/dist/tailwind.js.map +0 -1
  492. package/dist/tailwind.mjs +0 -2013
  493. package/dist/tailwind.mjs.map +0 -1
  494. package/dist/types.js +0 -59
  495. package/dist/types.js.map +0 -1
  496. package/dist/types.mjs +0 -53
  497. package/dist/types.mjs.map +0 -1
  498. package/dist/utils.js +0 -30
  499. package/dist/utils.js.map +0 -1
  500. package/dist/utils.mjs +0 -26
  501. package/dist/utils.mjs.map +0 -1
  502. package/frameworks/core/index.ts +0 -6
  503. package/frameworks/core/utils/index.ts +0 -64
  504. package/frameworks/react/components/button.tsx +0 -26
  505. package/frameworks/react/components/index.ts +0 -5
  506. package/frameworks/react/hooks/index.ts +0 -5
  507. package/frameworks/react/index.ts +0 -9
  508. package/frameworks/react/package.json +0 -8
  509. package/frameworks/react/utils/index.ts +0 -2
  510. package/frameworks/react-native/index.ts +0 -9
  511. package/frameworks/react-native/package.json +0 -8
  512. package/frameworks/registry.json +0 -371
  513. package/frameworks/setup.sh +0 -69
  514. package/frameworks/svelte/index.ts +0 -9
  515. package/frameworks/svelte/package.json +0 -8
  516. package/frameworks/tracker.json +0 -1854
  517. package/frameworks/vue/index.ts +0 -9
  518. package/frameworks/vue/package.json +0 -8
  519. package/helpers/file.ts +0 -33
  520. package/helpers/memoization.ts +0 -40
  521. package/primitives/accordion.tsx +0 -74
  522. package/primitives/action-button.tsx +0 -42
  523. package/primitives/alert-dialog.tsx +0 -185
  524. package/primitives/alert.tsx +0 -74
  525. package/primitives/apply-typography.tsx +0 -55
  526. package/primitives/aspect-ratio.tsx +0 -5
  527. package/primitives/avatar.tsx +0 -57
  528. package/primitives/background-beams.tsx +0 -142
  529. package/primitives/badge.tsx +0 -45
  530. package/primitives/breadcrumb.tsx +0 -130
  531. package/primitives/breakpoint-indicator.tsx +0 -19
  532. package/primitives/button.tsx +0 -72
  533. package/primitives/calendar.tsx +0 -72
  534. package/primitives/card.tsx +0 -97
  535. package/primitives/carousel.tsx +0 -238
  536. package/primitives/chat/chat-input-area.tsx +0 -88
  537. package/primitives/chat/chat-input.tsx +0 -71
  538. package/primitives/chat/files-preview.tsx +0 -331
  539. package/primitives/chat/index.ts +0 -6
  540. package/primitives/chat/json-form.tsx +0 -8
  541. package/primitives/chat/message-list.tsx +0 -308
  542. package/primitives/chat/message.tsx +0 -569
  543. package/primitives/chat/sqlite-preview.tsx +0 -215
  544. package/primitives/checkbox.tsx +0 -32
  545. package/primitives/collapsible.tsx +0 -9
  546. package/primitives/combobox.tsx +0 -239
  547. package/primitives/command.tsx +0 -151
  548. package/primitives/context-menu.tsx +0 -206
  549. package/primitives/copy-to-clipboard-icon.tsx +0 -60
  550. package/primitives/dialog-video-controller.tsx +0 -38
  551. package/primitives/dialog.tsx +0 -128
  552. package/primitives/dot-pattern.tsx +0 -57
  553. package/primitives/dots-loader.tsx +0 -13
  554. package/primitives/drawer.tsx +0 -113
  555. package/primitives/dropdown-menu.tsx +0 -199
  556. package/primitives/error-message.tsx +0 -19
  557. package/primitives/file-uploader.tsx +0 -203
  558. package/primitives/form.tsx +0 -185
  559. package/primitives/hover-card.tsx +0 -28
  560. package/primitives/icons/github.tsx +0 -14
  561. package/primitives/icons/index.ts +0 -18
  562. package/primitives/icons/youtube-logo.tsx +0 -59
  563. package/primitives/index-client.ts +0 -4
  564. package/primitives/index-common.ts +0 -304
  565. package/primitives/index-next.ts +0 -4
  566. package/primitives/input-otp.tsx +0 -65
  567. package/primitives/input.tsx +0 -128
  568. package/primitives/label.tsx +0 -21
  569. package/primitives/list-adaptor.ts +0 -12
  570. package/primitives/list-box.tsx +0 -74
  571. package/primitives/loading-spinner.tsx +0 -33
  572. package/primitives/markdown-preview.tsx +0 -612
  573. package/primitives/mermaid.tsx +0 -196
  574. package/primitives/navigation-menu.tsx +0 -147
  575. package/primitives/next/image.tsx +0 -91
  576. package/primitives/next/index.ts +0 -7
  577. package/primitives/next/inline-icon.tsx +0 -36
  578. package/primitives/next/link-element.tsx +0 -109
  579. package/primitives/next/mdx-link.tsx +0 -22
  580. package/primitives/next/media-stack.tsx +0 -52
  581. package/primitives/next/nav-items.tsx +0 -45
  582. package/primitives/next/youtube-embed.tsx +0 -83
  583. package/primitives/pagination.tsx +0 -117
  584. package/primitives/popover.tsx +0 -34
  585. package/primitives/pretty-json-print.tsx +0 -28
  586. package/primitives/progress.tsx +0 -27
  587. package/primitives/prompt-textarea.tsx +0 -72
  588. package/primitives/qr-code.tsx +0 -112
  589. package/primitives/radio-group.tsx +0 -42
  590. package/primitives/resizable.tsx +0 -47
  591. package/primitives/scroll-area.tsx +0 -57
  592. package/primitives/search-input.tsx +0 -66
  593. package/primitives/select.tsx +0 -122
  594. package/primitives/separator.tsx +0 -26
  595. package/primitives/sheet.tsx +0 -139
  596. package/primitives/skeleton.tsx +0 -18
  597. package/primitives/slider.tsx +0 -63
  598. package/primitives/sonner.tsx +0 -35
  599. package/primitives/step-indicator.tsx +0 -69
  600. package/primitives/stepper.tsx +0 -272
  601. package/primitives/switch.tsx +0 -27
  602. package/primitives/table.tsx +0 -105
  603. package/primitives/tabs.tsx +0 -50
  604. package/primitives/text-area.tsx +0 -26
  605. package/primitives/text-link.tsx +0 -27
  606. package/primitives/textarea.tsx +0 -64
  607. package/primitives/textfield.tsx +0 -78
  608. package/primitives/toast.tsx +0 -30
  609. package/primitives/toggle-group.tsx +0 -63
  610. package/primitives/toggle.tsx +0 -44
  611. package/primitives/tooltip.tsx +0 -47
  612. package/primitives/video-player.tsx +0 -23
  613. package/src/button.ts +0 -1
  614. package/src/hooks/index.ts +0 -7
  615. package/src/hooks/use-click-away.ts +0 -31
  616. package/src/hooks/use-combined-refs.ts +0 -22
  617. package/src/hooks/use-copy-clipboard.ts +0 -30
  618. package/src/hooks/use-debounce.ts +0 -17
  619. package/src/hooks/use-fill-ids.ts +0 -25
  620. package/src/hooks/use-map.ts +0 -26
  621. package/src/hooks/use-measure.ts +0 -42
  622. package/src/hooks/use-reverse-video-playback.ts +0 -43
  623. package/src/hooks/use-scroll-restoration.ts +0 -50
  624. package/src/index-lean.ts +0 -87
  625. package/src/index.ts +0 -54
  626. package/src/mcp/README.md +0 -141
  627. package/src/mcp/enhanced-server.ts +0 -1208
  628. package/src/mcp/index.ts +0 -518
  629. package/src/mcp/package.json +0 -10
  630. package/src/registry/api.ts +0 -164
  631. package/src/registry/index.ts +0 -60
  632. package/src/registry/package.json +0 -10
  633. package/src/utils.ts +0 -19
  634. package/style/drawer.css +0 -163
  635. package/style/globals.css +0 -13
  636. package/style/hanzo-common.css +0 -31
  637. package/style/hanzo-default-colors.css +0 -82
  638. package/style/theme-provider.tsx +0 -20
  639. package/tailwind/colors.tailwind.js +0 -53
  640. package/tailwind/fontFamily.tailwind.ts +0 -7
  641. package/tailwind/fontSize.tailwind.ts +0 -13
  642. package/tailwind/index.ts +0 -7
  643. package/tailwind/safelist.tailwind.js +0 -26
  644. package/tailwind/screens.tailwind.js +0 -8
  645. package/tailwind/spacing.tailwind.js +0 -65
  646. package/tailwind/tailwind.config.hanzo-preset.d.ts +0 -5
  647. package/tailwind/tailwind.config.hanzo-preset.js +0 -915
  648. package/tailwind/tw-font-desc.ts +0 -15
  649. package/tailwind/typo-plugin/get-plugin-styles.js +0 -679
  650. package/tailwind/typo-plugin/index.d.ts +0 -9
  651. package/tailwind/typo-plugin/index.js +0 -141
  652. package/tailwind/typo-plugin/utils.js +0 -60
  653. package/tailwind/typography-test.mdx +0 -35
  654. package/tailwind/z-index.tailwind.js +0 -71
  655. package/types/animation-def.ts +0 -3
  656. package/types/breakpoints.ts +0 -11
  657. package/types/bullet-item.ts +0 -10
  658. package/types/button-def.ts +0 -39
  659. package/types/dimensions.ts +0 -8
  660. package/types/grid-def.ts +0 -56
  661. package/types/image-def.ts +0 -32
  662. package/types/index.ts +0 -30
  663. package/types/link-def.ts +0 -56
  664. package/types/media-stack-def.ts +0 -31
  665. package/types/t-shirt-size.ts +0 -5
  666. package/types/tshirt-dimensions.ts +0 -20
  667. package/types/video-def.ts +0 -25
  668. package/util/blob.ts +0 -33
  669. package/util/copy-to-clipboard.ts +0 -17
  670. package/util/create-shadow-root.ts +0 -22
  671. package/util/date.ts +0 -84
  672. package/util/debounce.ts +0 -11
  673. package/util/file.ts +0 -15
  674. package/util/format-and-abbreviate-as-currency.ts +0 -125
  675. package/util/format-text.ts +0 -34
  676. package/util/format-to-max-char.ts +0 -68
  677. package/util/index-client.ts +0 -3
  678. package/util/index.ts +0 -112
  679. package/util/number-abbreviate.ts +0 -49
  680. package/util/specifier.ts +0 -43
  681. package/util/spread-to-transform.ts +0 -25
  682. package/util/step-animation.ts +0 -90
  683. package/util/timing.ts +0 -3
  684. package/util/toasts.tsx +0 -17
  685. package/util/two-way-map.ts +0 -19
@@ -1,204 +0,0 @@
1
- import React, {type ElementType} from 'react'
2
-
3
- import type { EnhHeadingBlock } from '../def'
4
- import { ApplyTypography } from '../../primitives/index-common'
5
- import { cn, containsToken } from '../../util'
6
-
7
- import type BlockComponentProps from './block-component-props'
8
- import InlineIcon from '../../primitives/next/inline-icon'
9
-
10
- const DEFAULTS = {
11
- preheading: {
12
- tag: 'h4' as ElementType,
13
- mb: 2
14
- },
15
- heading: {
16
- tag: 'h1' as ElementType,
17
- mb: 2
18
- },
19
- byline: {
20
- tag: 'h6' as ElementType,
21
- }
22
- }
23
-
24
- const tagFromLevel = (level: number): ElementType => {
25
- switch (level) {
26
- case 1: {
27
- return 'h1'
28
- }
29
- case 2: {
30
- return 'h2'
31
- }
32
- case 3: {
33
- return 'h3'
34
- }
35
- case 4: {
36
- return 'h4'
37
- }
38
- case 5: {
39
- return 'h5'
40
- }
41
- case 6: {
42
- return 'h6'
43
- }
44
- }
45
- return 'p'
46
- }
47
-
48
- // TODO Impl icon support
49
- const Element: React.FC<{
50
- asTag: ElementType
51
- text: string
52
- icon?: React.ReactNode
53
- iconLeft?: boolean
54
- className?: string
55
- }> = ({
56
- asTag: Tag,
57
- text,
58
- icon,
59
- iconLeft=true,
60
- className : elClassName=''
61
- }) => (
62
- <Tag className={elClassName}>{text}</Tag>
63
- )
64
-
65
- const getPositionClx = (
66
- specified: (s: string) => boolean,
67
- agent: string | undefined
68
- ): {
69
- preheading: string
70
- heading: string
71
- byline: string
72
- } => {
73
-
74
- const mobileHeadingCentered = specified('mobile-heading-centered')
75
- const mobileHeadingLeft = specified('mobile-heading-left')
76
- const headingCentered = specified('center')
77
- const headingRight = specified('right')
78
- const bylineCentered = specified('byline-center')
79
- const bylineRight = specified('byline-right')
80
- const mobileBylineLeft = specified('mobile-byline-left')
81
-
82
- let headerclx = ''
83
- let bylineclx = (bylineCentered) ?
84
- 'self-center !text-center' : (bylineRight ? 'self-end !text-right' : 'self-start !text-left')
85
-
86
- if (agent === 'phone') {
87
- if (mobileHeadingLeft) {
88
- headerclx = 'self-start text-left'
89
- } else {
90
- headerclx = (mobileHeadingCentered || headingCentered) ?
91
- 'self-center text-center' : (headingRight ? 'self-end text-right' : 'self-start text-left')
92
- }
93
-
94
- if (mobileBylineLeft) {
95
- bylineclx = 'self-start !text-left'
96
- }
97
- }
98
- else {
99
- const largerclx = (headingCentered) ?
100
- 'self-center text-center' : (headingRight ? 'self-end text-right' : 'self-start text-left')
101
-
102
- if (mobileHeadingCentered) {
103
- headerclx = 'self-center text-center md:' + largerclx.split(' ').join(' md:')
104
- }
105
- else {
106
- headerclx = largerclx
107
- }
108
- }
109
-
110
- return {
111
- preheading: headerclx,
112
- heading: headerclx,
113
- byline: bylineclx
114
- }
115
- }
116
-
117
- const EnhHeadingBlockComponent: React.FC<
118
- BlockComponentProps & {
119
- applyTypography?: boolean
120
- extraSpecifiers?: string
121
- }> = ({
122
- block,
123
- className='',
124
- agent,
125
- applyTypography=true,
126
- extraSpecifiers=''
127
- }) => {
128
-
129
- if (block.blockType !== 'enh-heading') {
130
- return <>enhance heading block required</>
131
- }
132
- const b = block as EnhHeadingBlock
133
- const specified = (s: string) => (containsToken(b.specifiers + extraSpecifiers, s))
134
- const preheadingHeadingFont = specified('preheading-heading-font')
135
- const phFontClx = preheadingHeadingFont ? 'font-heading' : ''
136
- const alignMiddleClx = specified('align-middle') ? 'my-auto' : ''
137
-
138
- const positionclx = getPositionClx(specified, agent)
139
-
140
- const Inner: React.FC = () => {
141
- const toRender = [
142
- {
143
- tag: (b.preheading) ?
144
- (b.preheading.level !== undefined ? tagFromLevel(b.preheading.level) : DEFAULTS.preheading.tag)
145
- :
146
- undefined,
147
- clx: (b.preheading) ?
148
- (b.preheading.mb !== undefined ?
149
- `mb-${b.preheading.mb}` : `mb-${DEFAULTS.preheading.mb}`) + ' ' + positionclx.preheading + ' ' + phFontClx
150
- :
151
- positionclx.preheading + ' ' + phFontClx,
152
- text: (b.preheading) ? (b.preheading.text ) : undefined,
153
- },
154
- {
155
- tag: (b.heading.level !== undefined ? tagFromLevel(b.heading.level) : DEFAULTS.heading.tag),
156
- clx: (b.heading.mb !== undefined ? `mb-${b.heading.mb}` : `mb-${DEFAULTS.heading.mb}`) + ' ' + positionclx.heading,
157
- text: b.heading.text,
158
- },
159
- {
160
- tag: (b.byline) ?
161
- (b.byline.level !== undefined ? tagFromLevel(b.byline.level) : DEFAULTS.byline.tag)
162
- :
163
- undefined,
164
- clx: positionclx.byline,
165
- text: (b.byline) ? (b.byline.text ) : undefined,
166
- },
167
- ] as {
168
- tag: ElementType
169
- clx: string
170
- text: string
171
- }[]
172
-
173
- let iconRendered = false
174
- return <>
175
- {toRender.map(({tag, clx, text}, index) => {
176
- if (!tag) return null
177
- if (b.icon && !iconRendered) {
178
- iconRendered = true
179
- return (
180
- <div className={cn('flex flex-row items-center gap-2 sm:gap-4', clx)} key={`div-${index}`}>
181
- <InlineIcon icon={b.icon} size={b.iconSize ?? 32} agent={agent}/>
182
- <Element asTag={tag} text={text} />
183
- </div>
184
- )
185
- }
186
- return (
187
- (<Element asTag={tag} text={text} className={clx} key={`el-${index}`}/>)
188
- )
189
- })}
190
- </>
191
- }
192
-
193
- return applyTypography ? (
194
- <ApplyTypography className={cn('flex flex-col w-full !gap-0', className, alignMiddleClx)}>
195
- <Inner />
196
- </ApplyTypography>
197
- ) : (
198
- <div className={cn('flex flex-col w-full gap-0', className, alignMiddleClx)}>
199
- <Inner />
200
- </div>
201
- )
202
- }
203
-
204
- export default EnhHeadingBlockComponent
@@ -1,12 +0,0 @@
1
- interface GridBlockMutator {
2
- gapClx?: string
3
- getCellClx?: (
4
- cellIndex: number,
5
- cellCount: number,
6
- colCount: number
7
- ) => string
8
- }
9
-
10
- export {
11
- type GridBlockMutator as default
12
- }
@@ -1,83 +0,0 @@
1
- import React, { PropsWithChildren } from 'react'
2
-
3
- import { cn, containsToken } from '../../../util'
4
- import type { GridBlock } from '../../def'
5
- import type { GridColumnSpec } from '../../../types'
6
-
7
- import Content from '../content'
8
- import type BlockComponentProps from '../block-component-props'
9
-
10
- import getMutator from './mutator-registry'
11
-
12
- // These must be / are safelisted in tailwind.config
13
- const gridClx = (d: GridColumnSpec, prefix?: string ): string => (
14
- (typeof d === 'number') ?
15
- `${(prefix ?? '')}grid-cols-${d} `
16
- :
17
- `${(prefix ?? '')}grid-cols-${d.columns} ${(prefix ?? '')}gap-${d.gap} `
18
- )
19
-
20
- /**
21
- * A component that lays out the Blocks in 'cells' on a grid.
22
- * If invoked directly, and children are supplied,
23
- * block.cells is ignore and the children are rendered.
24
- */
25
- const GridBlockComponent: React.FC<
26
- BlockComponentProps & PropsWithChildren
27
- > = ({
28
- block,
29
- className='',
30
- agent,
31
- children
32
- }) => {
33
-
34
- if (block.blockType !== 'grid') {
35
- return <>grid block required</>
36
- }
37
-
38
- const { cells, grid, specifiers } = block as GridBlock
39
- const specified = (s: string) => (containsToken(specifiers, s))
40
- const mutator = specified('style-table-borders') ? getMutator('style-table-borders') : undefined
41
-
42
- // https://tailwindcss.com/docs/content-configuration#dynamic-class-names
43
- // All variants in use MUST be in style/safelist.tailwind.js
44
- let clx = 'grid '
45
- if (agent === 'phone') {
46
- const d = (grid.mobile) ? grid.mobile : (grid.at.xs ? grid.at.xs : (grid.at.sm ?? 1))
47
- clx += gridClx(d)
48
- }
49
- else {
50
- let defaultSet = false
51
- for (const [key, value] of Object.entries(grid.at)) {
52
- if (!defaultSet) {
53
- // ts brain fart!
54
- clx += gridClx(value as GridColumnSpec)
55
- defaultSet = true
56
- }
57
- else {
58
- // ts brain fart!
59
- clx += gridClx(value as GridColumnSpec, `${key}:`)
60
- }
61
- }
62
- }
63
-
64
- let getMutatorCellClx = (ignore: number): string => ('')
65
- if (mutator?.getCellClx) {
66
- const colCount = (typeof grid.at.md! === 'number') ? grid.at.md! as number : grid.at.md!.columns
67
- const cellCount = cells?.length
68
- if (!colCount || !cellCount) {
69
- throw new Error('GridBlockComponent: using mutator, but colCount and / or cellCount is invalid!')
70
- }
71
- getMutatorCellClx = (cellIndex: number) => ( mutator!.getCellClx!(cellIndex, cellCount, colCount) )
72
- }
73
-
74
- return (
75
- <div className={cn('grid gap-2 md:gap-4 xl:gap-6', clx, (mutator?.gapClx ?? ''), className)}>
76
- {React.Children.count(children) > 0 ? children : cells?.map((cell, index) => (
77
- <Content blocks={cell} agent={agent} key={`cell-${index}`} className={getMutatorCellClx(index)}/>
78
- ))}
79
- </div>
80
- )
81
- }
82
-
83
- export default GridBlockComponent
@@ -1,10 +0,0 @@
1
- import type GridBlockMutator from './grid-block-mutator'
2
-
3
- import tableBorders from './table-borders.mutator'
4
-
5
- const map = new Map<string, GridBlockMutator>()
6
- map.set('style-table-borders', tableBorders)
7
-
8
- // get
9
- export default (key: string): GridBlockMutator | undefined => (map.get(key))
10
-
@@ -1,47 +0,0 @@
1
- import type GridBlockMutator from './grid-block-mutator'
2
-
3
- const getCellClx = (
4
- cellIndex: number,
5
- cellCount: number,
6
- colCount: number
7
- ): string => {
8
-
9
- const isFirstRow = (): boolean => (cellIndex < colCount)
10
- const isFirstColumn = (): boolean => (cellIndex % colCount === 0)
11
- const isTLCorner = (): boolean => (cellIndex === 0)
12
- const isTRCorner = (): boolean => (cellIndex === colCount -1 )
13
- const isBLCorner = (): boolean => (cellIndex === cellCount - colCount)
14
- const isBRCorner = (): boolean => (cellIndex === cellCount - 1)
15
-
16
- // all get a right and bottom border and padding,
17
- // other borders are a special base
18
- let clx = 'border-b md:border-r p-4 md:p-8 lg:p-12 '
19
- if (isFirstRow()) {
20
- clx += 'border-t '
21
- }
22
- if (isFirstColumn()) {
23
- clx += 'md:border-l '
24
- }
25
- // on mobile this will be the first (top) cell
26
- if (isTLCorner()) {
27
- clx += 'border-t md:rounded-tl-lg '
28
- }
29
- else if (isTRCorner()) {
30
- clx += 'md:rounded-tr-lg '
31
- }
32
- else if (isBLCorner()) {
33
- clx += 'md:rounded-bl-lg '
34
- }
35
- else if (isBRCorner()) {
36
- clx += 'md:rounded-br-lg '
37
- }
38
-
39
- return clx
40
- }
41
-
42
- const gapClx = 'gap-0 md:gap-0 xl:gap-0'
43
-
44
- export default {
45
- getCellClx,
46
- gapClx
47
- } as GridBlockMutator
@@ -1,83 +0,0 @@
1
- import React from 'react'
2
-
3
- import { Breakpoints} from '../../types'
4
- import { cn } from '../../util'
5
-
6
- import type { Block, GroupBlock } from '../def'
7
- import Content from './content'
8
-
9
- // eg: 'layout-grid-2-starting-md'
10
- // see comments below regarding dynamic classes and the safelist
11
- const getLayoutInfo = (s: string): {
12
- layout: string
13
- spec: any
14
- } | undefined => {
15
- const tokenArray = s.split(' ')
16
- const layoutToken = tokenArray.find((tok) => (tok.startsWith('layout-')))
17
- if (layoutToken) {
18
- const subtokens = layoutToken.split('-')
19
- const layout = subtokens[1]
20
- let spec: any = {}
21
- switch (layout) {
22
- case 'grid': {
23
- const columns = parseInt(subtokens[2], 10)
24
- const starting = subtokens[4]
25
- if (Number.isNaN(columns) || columns < 2 || columns > 6 || !Breakpoints.includes(starting)) {
26
- return undefined
27
- }
28
- spec = {
29
- columns,
30
- starting
31
- }
32
- } break
33
- // no other types supported yet
34
- }
35
- return {
36
- layout,
37
- spec
38
- }
39
- }
40
- return undefined
41
- }
42
-
43
- const GroupBlockComponent: React.FC<{
44
- block: Block
45
- className?: string,
46
- }> = ({
47
- block,
48
- className=''
49
- }) => {
50
-
51
- if (block.blockType !== 'group') {
52
- return <>group block required</>
53
- }
54
-
55
- const group = block as GroupBlock
56
-
57
- // only one supported so fat
58
- if (group.specifiers?.includes('layout')) {
59
- const layoutSpec = getLayoutInfo(group.specifiers)
60
- if (!layoutSpec) {
61
- return <>invalid or missing layout specifier in group block!</>
62
- }
63
-
64
- if (layoutSpec.layout === 'grid') {
65
- const { elements } = group
66
- const { spec: {starting, columns} } = layoutSpec
67
-
68
- // https://tailwindcss.com/docs/content-configuration#dynamic-class-names
69
- // All variants in use MUST be in style/safelist.tailwind.js
70
- const clazzName = cn('grid xs:grid-cols-1 gap-2 sm:gap-3',
71
- `${starting}:grid-cols-${columns} `,
72
- className)
73
- return (
74
- <div className={clazzName}>
75
- <Content blocks={elements} />
76
- </div>
77
- )
78
- }
79
- }
80
- return null
81
- }
82
-
83
- export default GroupBlockComponent
@@ -1,88 +0,0 @@
1
- import React from 'react'
2
-
3
- import type { HeadingBlock } from '../def'
4
- import { ApplyTypography } from '../../primitives/index-common'
5
-
6
- import type BlockComponentProps from './block-component-props'
7
-
8
- const HeadingBlockComponent: React.FC<BlockComponentProps> = ({
9
- block,
10
- className=''
11
- }) => {
12
-
13
- if (block.blockType !== 'heading') {
14
- return <>heading block required</>
15
- }
16
- const heading = block as HeadingBlock
17
-
18
- let Tag: React.ElementType
19
- let BylineTag: React.ElementType | undefined = undefined
20
-
21
- switch (heading.bylineLevel) {
22
- case 0: {
23
- BylineTag = 'p'
24
- } break
25
- case 1: {
26
- BylineTag = 'h1'
27
- } break
28
- case 2: {
29
- BylineTag = 'h2'
30
- } break
31
- case 3: {
32
- BylineTag = 'h3'
33
- } break
34
- case 4: {
35
- BylineTag = 'h4'
36
- } break
37
- case 5: {
38
- BylineTag = 'h5'
39
- } break
40
- case 6: {
41
- BylineTag = 'h6'
42
- } break
43
- }
44
- // bylineLevel default is two levels below the main heading
45
- switch (heading.level) {
46
- case 0: {
47
- Tag = 'p'
48
- BylineTag = BylineTag ?? 'p'
49
- } break
50
- case 1: {
51
- Tag = 'h1'
52
- BylineTag = BylineTag ?? 'h3'
53
- } break
54
- case 2: {
55
- Tag = 'h2'
56
- BylineTag = BylineTag ?? 'h4'
57
- } break
58
- // 3 is default
59
- case 4: {
60
- Tag = 'h4'
61
- BylineTag = BylineTag ?? 'h6'
62
- } break
63
- case 5: {
64
- Tag = 'h5'
65
- BylineTag = BylineTag ?? 'p'
66
- } break
67
- case 6: {
68
- Tag = 'h6'
69
- BylineTag = BylineTag ?? 'p'
70
- } break
71
- default: {
72
- Tag = 'h3'
73
- BylineTag = BylineTag ?? 'h5'
74
- }
75
- }
76
-
77
- // Had to do this way, since tw typo plugin does support overrding typo styling wiithout .not-typography
78
- return (
79
- <ApplyTypography className={className}>
80
- <Tag >{heading.heading}</Tag>
81
- {heading.spaceBetween && <div className={'w-[1px] ' + `h-${heading.spaceBetween}`} />}
82
- {heading.byline && (<BylineTag>{heading.byline}</BylineTag>)}
83
- {heading.spaceAfter && <div className={'w-[1px] ' + `h-${heading.spaceAfter}`} />}
84
- </ApplyTypography>
85
- )
86
- }
87
-
88
- export default HeadingBlockComponent
@@ -1,111 +0,0 @@
1
- import React from 'react'
2
- import Image from 'next/image'
3
-
4
- import type { Dimensions } from '../../types'
5
- import type { ImageBlock } from '../def'
6
- import { constrain, containsToken, cn } from '../../util'
7
-
8
- import type BlockComponentProps from './block-component-props'
9
-
10
-
11
- const ImageBlockComponent: React.FC<BlockComponentProps & {
12
- constraintTo?: Dimensions
13
- }> = ({
14
- block,
15
- className='',
16
- agent,
17
- constraintTo
18
- }) => {
19
-
20
- if (block.blockType !== 'image') {
21
- return <>image block required</>
22
- }
23
-
24
- const {
25
- src,
26
- alt,
27
- dim,
28
- props,
29
- sizes,
30
- fullWidthOnMobile,
31
- svgFillClass,
32
- specifiers
33
- } = block as ImageBlock
34
-
35
- const specified = (s: string): boolean => (containsToken(specifiers, s))
36
-
37
- const toSpread: any = {}
38
- if (props?.fill === undefined) {
39
- const resolved = constraintTo ? constrain(dim, constraintTo) : dim
40
- toSpread.width = resolved.w
41
- toSpread.height = resolved.h
42
- }
43
-
44
- let _alt: string
45
- if (alt) {
46
- _alt = alt
47
- }
48
- else {
49
- const tokens = src.split('/')
50
- // Something remotely meaningful
51
- _alt = (tokens.length > 0) ? tokens[tokens.length] : src
52
- }
53
-
54
- const _svgFillClass = svgFillClass ?? ''
55
-
56
- // TODO: use two elements with 'md:hidden' for 3/4 size
57
- // https://nextjs.org/docs/app/building-your-application/optimizing/images#responsive
58
- if (agent === 'phone' ) {
59
- if (specified('mobile-full-width') || fullWidthOnMobile) {
60
- const toSpread: any = {
61
- style: {
62
- width: '100%',
63
- height: 'auto',
64
- maxWidth: '420px'
65
- },
66
- sizes: '100vw',
67
- }
68
- // only for aspect ratio and to satisfy parser
69
- toSpread.width = dim.w
70
- toSpread.height = dim.h
71
-
72
- return (
73
- <div className='flex flex-col items-center w-full'>
74
- <Image src={src} alt={_alt} {...toSpread} className={cn(_svgFillClass, className)}/>
75
- </div>
76
- )
77
- }
78
- // TODO use constraint
79
- else if (!specified('mobile-no-scale')) {
80
- if (props?.style?.width === 'auto' && typeof props.style.height === 'number' ) {
81
- props.style.height = props.style.height *.75
82
- }
83
- else if (props?.style?.height === 'auto' && typeof props?.style?.width === 'number' ) {
84
- props.style.width = props.style.width *.75
85
- }
86
- else if (props?.style && !props?.style.width) {
87
- toSpread.width = dim.w * .75
88
- toSpread.height = dim.h * .75
89
- }
90
- }
91
- }
92
- if (sizes) {
93
- toSpread.sizes = sizes
94
- }
95
-
96
- const right = containsToken(specifiers, 'right')
97
- const center = containsToken(specifiers, 'center')
98
-
99
- const alignSelfClx = right ? 'self-end' : (center ? 'self-center' : 'self-start')
100
-
101
- return (props?.fill) ? (
102
- <div className='relative w-full h-full'>
103
- <Image src={src} alt={_alt} {...toSpread} {...props} className={cn(_svgFillClass, 'max-w-[70vw] mx-auto', className)}/>
104
- </div>
105
- ) : (
106
- <Image src={src} alt={_alt} {...toSpread} {...props} className={cn(alignSelfClx, _svgFillClass, 'max-w-[70vw] mx-auto', className)}/>
107
- )
108
- }
109
-
110
- export default ImageBlockComponent
111
-
@@ -1,30 +0,0 @@
1
- import AccordianBlock from './accordian-block'
2
- import type BlockComponentProps from './block-component-props'
3
- import Blocks from './content'
4
- import CardBlock from './card-block'
5
- import { default as ContentComponent, registerBlockType} from './content'
6
- import CTABlock from './cta-block'
7
- import EnhHeadingBlock from './enh-heading-block'
8
- import GroupBlock from './group-block'
9
- import HeadingBlock from './heading-block'
10
- import ImageBlock from './image-block'
11
- import SpaceBlock from './space-block'
12
- import ScreenfulBlock from './screenful-block'
13
- import VideoBlock from './video-block'
14
-
15
- export {
16
- AccordianBlock as AccordianBlockComponent,
17
- type BlockComponentProps,
18
- Blocks as BlocksComponent,
19
- CardBlock as CardBlockComponent,
20
- ContentComponent,
21
- CTABlock as CTABlockComponent,
22
- EnhHeadingBlock as EnhHeadingBlockComponent,
23
- GroupBlock as GroupBlockComponent,
24
- HeadingBlock as HeadingBlockComponent,
25
- ImageBlock as ImageBlockComponent,
26
- registerBlockType,
27
- SpaceBlock as SpaceBlockComponent,
28
- ScreenfulBlock as ScreenfulBlockComponent,
29
- VideoBlock as VideoBlockComponent,
30
- }