makersclaw 0.2.0 → 0.3.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 (473) hide show
  1. package/THIRD-PARTY-NOTICES.md +180 -0
  2. package/package.json +3 -2
  3. package/r/annotate.json +62 -0
  4. package/r/approval-request.json +52 -0
  5. package/r/audio-player.json +74 -0
  6. package/r/auth-form.json +55 -0
  7. package/r/board.json +10 -6
  8. package/r/calendar-view.json +105 -0
  9. package/r/cart.json +62 -0
  10. package/r/chart.json +83 -0
  11. package/r/chat.json +95 -0
  12. package/r/code-editor.json +94 -0
  13. package/r/comment-box.json +64 -0
  14. package/r/contact-section.json +53 -0
  15. package/r/core.json +205 -8
  16. package/r/csv-import.json +63 -0
  17. package/r/data-table.json +69 -0
  18. package/r/diagram.json +74 -0
  19. package/r/doc-editor.json +82 -0
  20. package/r/doc-page.json +61 -0
  21. package/r/email-render.json +73 -0
  22. package/r/faq.json +50 -0
  23. package/r/file-upload.json +54 -0
  24. package/r/flow-canvas.json +93 -0
  25. package/r/footer.json +52 -0
  26. package/r/gantt.json +70 -0
  27. package/r/job-panel.json +12 -7
  28. package/r/json-editor.json +66 -0
  29. package/r/map.json +89 -0
  30. package/r/menubar.json +52 -0
  31. package/r/mind-map.json +67 -0
  32. package/r/navigation-menu.json +52 -0
  33. package/r/order-detail.json +54 -0
  34. package/r/org-chart.json +66 -0
  35. package/r/page-builder.json +105 -0
  36. package/r/payment-methods.json +51 -0
  37. package/r/pdf-document.json +79 -0
  38. package/r/pdf-viewer.json +88 -0
  39. package/r/product-detail.json +76 -0
  40. package/r/product-grid.json +65 -0
  41. package/r/record-form.json +67 -0
  42. package/r/record-notes.json +55 -0
  43. package/r/registry.json +3411 -29
  44. package/r/search-dialog.json +51 -0
  45. package/r/settings-list.json +66 -0
  46. package/r/setup-checklist.json +51 -0
  47. package/r/share-dialog.json +52 -0
  48. package/r/sidebar.json +69 -0
  49. package/r/signature-pad.json +72 -0
  50. package/r/sketch-canvas.json +99 -0
  51. package/r/spreadsheet.json +90 -0
  52. package/r/stat-cards.json +66 -0
  53. package/r/task-list.json +63 -0
  54. package/r/task-model.json +98 -0
  55. package/r/testimonials.json +52 -0
  56. package/r/transaction-list.json +53 -0
  57. package/r/whiteboard.json +66 -0
  58. package/registry/blocks/annotate/README.md +179 -0
  59. package/registry/blocks/annotate/annotate-data.js +250 -0
  60. package/registry/blocks/annotate/annotate.jsx +646 -0
  61. package/registry/blocks/annotate/block.json +10 -0
  62. package/registry/blocks/annotate/demo.jsx +135 -0
  63. package/registry/blocks/annotate/index.js +15 -0
  64. package/registry/blocks/approval-request/README.md +116 -0
  65. package/registry/blocks/approval-request/approval-request.jsx +386 -0
  66. package/registry/blocks/approval-request/block.json +10 -0
  67. package/registry/blocks/approval-request/demo.jsx +127 -0
  68. package/registry/blocks/approval-request/index.js +4 -0
  69. package/registry/blocks/audio-player/README.md +167 -0
  70. package/registry/blocks/audio-player/audio-player.jsx +623 -0
  71. package/registry/blocks/audio-player/block.json +14 -0
  72. package/registry/blocks/audio-player/colors.js +109 -0
  73. package/registry/blocks/audio-player/demo.jsx +209 -0
  74. package/registry/blocks/audio-player/index.js +6 -0
  75. package/registry/blocks/audio-player/time.js +67 -0
  76. package/registry/blocks/audio-player/wavesurfer.js +9 -0
  77. package/registry/blocks/auth-form/README.md +126 -0
  78. package/registry/blocks/auth-form/auth-form.jsx +568 -0
  79. package/registry/blocks/auth-form/block.json +10 -0
  80. package/registry/blocks/auth-form/demo.jsx +131 -0
  81. package/registry/blocks/auth-form/index.js +3 -0
  82. package/registry/blocks/board/README.md +55 -5
  83. package/registry/blocks/board/block.json +2 -2
  84. package/registry/blocks/board/board.jsx +230 -86
  85. package/registry/blocks/board/demo.jsx +103 -24
  86. package/registry/blocks/calendar-view/README.md +180 -0
  87. package/registry/blocks/calendar-view/agenda.jsx +147 -0
  88. package/registry/blocks/calendar-view/block.json +76 -0
  89. package/registry/blocks/calendar-view/calendar-model.js +442 -0
  90. package/registry/blocks/calendar-view/calendar.jsx +627 -0
  91. package/registry/blocks/calendar-view/demo.jsx +195 -0
  92. package/registry/blocks/calendar-view/draft.jsx +49 -0
  93. package/registry/blocks/calendar-view/index.js +39 -0
  94. package/registry/blocks/calendar-view/month.jsx +346 -0
  95. package/registry/blocks/calendar-view/paint.js +69 -0
  96. package/registry/blocks/calendar-view/time-grid.jsx +527 -0
  97. package/registry/blocks/calendar-view/tray.jsx +87 -0
  98. package/registry/blocks/cart/README.md +146 -0
  99. package/registry/blocks/cart/block.json +10 -0
  100. package/registry/blocks/cart/cart.jsx +597 -0
  101. package/registry/blocks/cart/demo.jsx +98 -0
  102. package/registry/blocks/cart/index.js +4 -0
  103. package/registry/blocks/cart/money.js +28 -0
  104. package/registry/blocks/chart/README.md +316 -0
  105. package/registry/blocks/chart/block.json +10 -0
  106. package/registry/blocks/chart/cartesian.jsx +642 -0
  107. package/registry/blocks/chart/core.jsx +262 -0
  108. package/registry/blocks/chart/demo.jsx +357 -0
  109. package/registry/blocks/chart/heatmap.jsx +336 -0
  110. package/registry/blocks/chart/index.js +8 -0
  111. package/registry/blocks/chart/pie.jsx +245 -0
  112. package/registry/blocks/chart/sparkline.jsx +88 -0
  113. package/registry/blocks/chat/README.md +273 -0
  114. package/registry/blocks/chat/attachment.jsx +95 -0
  115. package/registry/blocks/chat/block.json +10 -0
  116. package/registry/blocks/chat/chat.jsx +132 -0
  117. package/registry/blocks/chat/composer.jsx +364 -0
  118. package/registry/blocks/chat/demo.jsx +578 -0
  119. package/registry/blocks/chat/header.jsx +34 -0
  120. package/registry/blocks/chat/index.js +9 -0
  121. package/registry/blocks/chat/message.jsx +450 -0
  122. package/registry/blocks/chat/scroller.jsx +247 -0
  123. package/registry/blocks/chat/text.jsx +104 -0
  124. package/registry/blocks/code-editor/README.md +210 -0
  125. package/registry/blocks/code-editor/block.json +22 -0
  126. package/registry/blocks/code-editor/code-editor.jsx +534 -0
  127. package/registry/blocks/code-editor/codemirror.js +38 -0
  128. package/registry/blocks/code-editor/demo.jsx +205 -0
  129. package/registry/blocks/code-editor/index.js +8 -0
  130. package/registry/blocks/code-editor/json.js +317 -0
  131. package/registry/blocks/code-editor/sql.js +136 -0
  132. package/registry/blocks/code-editor/text.js +101 -0
  133. package/registry/blocks/code-editor/theme.js +186 -0
  134. package/registry/blocks/comment-box/README.md +123 -0
  135. package/registry/blocks/comment-box/block.json +10 -0
  136. package/registry/blocks/comment-box/comment-body.jsx +217 -0
  137. package/registry/blocks/comment-box/comment-box.jsx +198 -0
  138. package/registry/blocks/comment-box/comment-time.jsx +77 -0
  139. package/registry/blocks/comment-box/demo.jsx +141 -0
  140. package/registry/blocks/comment-box/index.js +8 -0
  141. package/registry/blocks/contact-section/README.md +152 -0
  142. package/registry/blocks/contact-section/block.json +11 -0
  143. package/registry/blocks/contact-section/contact-section.jsx +509 -0
  144. package/registry/blocks/contact-section/demo.jsx +93 -0
  145. package/registry/blocks/contact-section/index.js +4 -0
  146. package/registry/blocks/csv-import/README.md +133 -0
  147. package/registry/blocks/csv-import/block.json +13 -0
  148. package/registry/blocks/csv-import/csv-import.jsx +479 -0
  149. package/registry/blocks/csv-import/demo.jsx +106 -0
  150. package/registry/blocks/csv-import/import.js +200 -0
  151. package/registry/blocks/csv-import/index.js +7 -0
  152. package/registry/blocks/data-table/README.md +386 -0
  153. package/registry/blocks/data-table/block.json +10 -0
  154. package/registry/blocks/data-table/data-table.jsx +1164 -0
  155. package/registry/blocks/data-table/demo.jsx +588 -0
  156. package/registry/blocks/data-table/index.js +5 -0
  157. package/registry/blocks/data-table/model.js +169 -0
  158. package/registry/blocks/diagram/README.md +108 -0
  159. package/registry/blocks/diagram/block.json +13 -0
  160. package/registry/blocks/diagram/demo.jsx +113 -0
  161. package/registry/blocks/diagram/diagram.jsx +481 -0
  162. package/registry/blocks/diagram/index.js +7 -0
  163. package/registry/blocks/diagram/mermaid.js +52 -0
  164. package/registry/blocks/diagram/palette.js +313 -0
  165. package/registry/blocks/diagram/source.js +98 -0
  166. package/registry/blocks/doc-editor/README.md +215 -0
  167. package/registry/blocks/doc-editor/block.json +15 -0
  168. package/registry/blocks/doc-editor/demo.jsx +225 -0
  169. package/registry/blocks/doc-editor/doc-editor.jsx +291 -0
  170. package/registry/blocks/doc-editor/doc.js +309 -0
  171. package/registry/blocks/doc-editor/index.js +7 -0
  172. package/registry/blocks/doc-editor/schema.jsx +56 -0
  173. package/registry/blocks/doc-editor/shadcn-classes.js +110 -0
  174. package/registry/blocks/doc-editor/theme.js +82 -0
  175. package/registry/blocks/doc-page/README.md +119 -0
  176. package/registry/blocks/doc-page/autosave.js +104 -0
  177. package/registry/blocks/doc-page/block.json +10 -0
  178. package/registry/blocks/doc-page/demo.jsx +137 -0
  179. package/registry/blocks/doc-page/doc-page.jsx +276 -0
  180. package/registry/blocks/doc-page/index.js +4 -0
  181. package/registry/blocks/email-render/README.md +151 -0
  182. package/registry/blocks/email-render/block.json +14 -0
  183. package/registry/blocks/email-render/demo.jsx +153 -0
  184. package/registry/blocks/email-render/doc-email.jsx +210 -0
  185. package/registry/blocks/email-render/email.jsx +221 -0
  186. package/registry/blocks/email-render/index.js +10 -0
  187. package/registry/blocks/email-render/render.js +50 -0
  188. package/registry/blocks/email-render/theme.js +215 -0
  189. package/registry/blocks/faq/README.md +101 -0
  190. package/registry/blocks/faq/block.json +11 -0
  191. package/registry/blocks/faq/demo.jsx +89 -0
  192. package/registry/blocks/faq/faq.jsx +220 -0
  193. package/registry/blocks/faq/index.js +4 -0
  194. package/registry/blocks/file-upload/README.md +138 -0
  195. package/registry/blocks/file-upload/block.json +10 -0
  196. package/registry/blocks/file-upload/demo.jsx +204 -0
  197. package/registry/blocks/file-upload/file-upload.jsx +635 -0
  198. package/registry/blocks/file-upload/index.js +4 -0
  199. package/registry/blocks/flow-canvas/README.md +420 -0
  200. package/registry/blocks/flow-canvas/block.json +13 -0
  201. package/registry/blocks/flow-canvas/board.js +819 -0
  202. package/registry/blocks/flow-canvas/chrome.jsx +649 -0
  203. package/registry/blocks/flow-canvas/context.jsx +35 -0
  204. package/registry/blocks/flow-canvas/demo.jsx +249 -0
  205. package/registry/blocks/flow-canvas/edges.jsx +107 -0
  206. package/registry/blocks/flow-canvas/flow-canvas.jsx +1329 -0
  207. package/registry/blocks/flow-canvas/index.js +41 -0
  208. package/registry/blocks/flow-canvas/nodes.jsx +392 -0
  209. package/registry/blocks/flow-canvas/theme.js +174 -0
  210. package/registry/blocks/footer/README.md +133 -0
  211. package/registry/blocks/footer/block.json +11 -0
  212. package/registry/blocks/footer/demo.jsx +119 -0
  213. package/registry/blocks/footer/footer.jsx +406 -0
  214. package/registry/blocks/footer/index.js +4 -0
  215. package/registry/blocks/gantt/README.md +220 -0
  216. package/registry/blocks/gantt/block.json +10 -0
  217. package/registry/blocks/gantt/demo.jsx +148 -0
  218. package/registry/blocks/gantt/gantt.jsx +923 -0
  219. package/registry/blocks/gantt/index.js +7 -0
  220. package/registry/blocks/gantt/rows.jsx +468 -0
  221. package/registry/blocks/gantt/schedule.js +278 -0
  222. package/registry/blocks/job-panel/README.md +80 -0
  223. package/registry/blocks/job-panel/block.json +3 -3
  224. package/registry/blocks/job-panel/demo.jsx +230 -3
  225. package/registry/blocks/job-panel/job-panel.jsx +169 -3
  226. package/registry/blocks/json-editor/README.md +133 -0
  227. package/registry/blocks/json-editor/block.json +10 -0
  228. package/registry/blocks/json-editor/demo.jsx +92 -0
  229. package/registry/blocks/json-editor/index.js +7 -0
  230. package/registry/blocks/json-editor/json-editor.jsx +305 -0
  231. package/registry/blocks/json-editor/json-tree.jsx +393 -0
  232. package/registry/blocks/json-editor/tree.js +225 -0
  233. package/registry/blocks/map/README.md +221 -0
  234. package/registry/blocks/map/block.json +14 -0
  235. package/registry/blocks/map/demo.jsx +201 -0
  236. package/registry/blocks/map/geo.js +198 -0
  237. package/registry/blocks/map/index.js +8 -0
  238. package/registry/blocks/map/list.jsx +128 -0
  239. package/registry/blocks/map/map-view.jsx +715 -0
  240. package/registry/blocks/map/maplibre.js +30 -0
  241. package/registry/blocks/map/marks.jsx +146 -0
  242. package/registry/blocks/map/theme.js +142 -0
  243. package/registry/blocks/menubar/README.md +109 -0
  244. package/registry/blocks/menubar/block.json +10 -0
  245. package/registry/blocks/menubar/demo.jsx +128 -0
  246. package/registry/blocks/menubar/index.js +4 -0
  247. package/registry/blocks/menubar/menubar.jsx +199 -0
  248. package/registry/blocks/mind-map/README.md +206 -0
  249. package/registry/blocks/mind-map/block.json +10 -0
  250. package/registry/blocks/mind-map/demo.jsx +103 -0
  251. package/registry/blocks/mind-map/index.js +31 -0
  252. package/registry/blocks/mind-map/mind-map.jsx +1125 -0
  253. package/registry/blocks/mind-map/topic.jsx +143 -0
  254. package/registry/blocks/mind-map/tree.js +645 -0
  255. package/registry/blocks/navigation-menu/README.md +124 -0
  256. package/registry/blocks/navigation-menu/block.json +10 -0
  257. package/registry/blocks/navigation-menu/demo.jsx +84 -0
  258. package/registry/blocks/navigation-menu/index.js +4 -0
  259. package/registry/blocks/navigation-menu/navigation-menu.jsx +448 -0
  260. package/registry/blocks/order-detail/README.md +109 -0
  261. package/registry/blocks/order-detail/block.json +10 -0
  262. package/registry/blocks/order-detail/demo.jsx +88 -0
  263. package/registry/blocks/order-detail/index.js +4 -0
  264. package/registry/blocks/order-detail/order-detail.jsx +354 -0
  265. package/registry/blocks/org-chart/README.md +145 -0
  266. package/registry/blocks/org-chart/block.json +10 -0
  267. package/registry/blocks/org-chart/demo.jsx +94 -0
  268. package/registry/blocks/org-chart/index.js +7 -0
  269. package/registry/blocks/org-chart/org-chart.jsx +631 -0
  270. package/registry/blocks/org-chart/org.js +245 -0
  271. package/registry/blocks/org-chart/person.jsx +96 -0
  272. package/registry/blocks/page-builder/README.md +257 -0
  273. package/registry/blocks/page-builder/block.json +14 -0
  274. package/registry/blocks/page-builder/demo.jsx +145 -0
  275. package/registry/blocks/page-builder/grapes.js +18 -0
  276. package/registry/blocks/page-builder/index.js +11 -0
  277. package/registry/blocks/page-builder/page-builder.jsx +704 -0
  278. package/registry/blocks/page-builder/page-view.jsx +33 -0
  279. package/registry/blocks/page-builder/page.js +118 -0
  280. package/registry/blocks/page-builder/panels.jsx +588 -0
  281. package/registry/blocks/page-builder/sections.js +209 -0
  282. package/registry/blocks/page-builder/theme.js +87 -0
  283. package/registry/blocks/page-builder/thumbs.jsx +189 -0
  284. package/registry/blocks/page-builder/tokens.js +329 -0
  285. package/registry/blocks/payment-methods/README.md +104 -0
  286. package/registry/blocks/payment-methods/block.json +10 -0
  287. package/registry/blocks/payment-methods/demo.jsx +71 -0
  288. package/registry/blocks/payment-methods/index.js +4 -0
  289. package/registry/blocks/payment-methods/payment-methods.jsx +302 -0
  290. package/registry/blocks/pdf-document/README.md +213 -0
  291. package/registry/blocks/pdf-document/block.json +13 -0
  292. package/registry/blocks/pdf-document/demo.jsx +136 -0
  293. package/registry/blocks/pdf-document/index.js +33 -0
  294. package/registry/blocks/pdf-document/money.js +83 -0
  295. package/registry/blocks/pdf-document/pdf-document.jsx +144 -0
  296. package/registry/blocks/pdf-document/primitives.jsx +271 -0
  297. package/registry/blocks/pdf-document/quote.jsx +179 -0
  298. package/registry/blocks/pdf-document/theme.js +193 -0
  299. package/registry/blocks/pdf-viewer/README.md +191 -0
  300. package/registry/blocks/pdf-viewer/block.json +14 -0
  301. package/registry/blocks/pdf-viewer/demo.jsx +252 -0
  302. package/registry/blocks/pdf-viewer/helpers.js +270 -0
  303. package/registry/blocks/pdf-viewer/index.js +8 -0
  304. package/registry/blocks/pdf-viewer/notes.jsx +195 -0
  305. package/registry/blocks/pdf-viewer/pdf-viewer.jsx +1368 -0
  306. package/registry/blocks/pdf-viewer/pdfjs.js +37 -0
  307. package/registry/blocks/pdf-viewer/ssr-shim-end.js +6 -0
  308. package/registry/blocks/pdf-viewer/ssr-shim.js +44 -0
  309. package/registry/blocks/product-detail/README.md +217 -0
  310. package/registry/blocks/product-detail/block.json +10 -0
  311. package/registry/blocks/product-detail/demo.jsx +233 -0
  312. package/registry/blocks/product-detail/index.js +7 -0
  313. package/registry/blocks/product-detail/price.jsx +115 -0
  314. package/registry/blocks/product-detail/product-detail.jsx +348 -0
  315. package/registry/blocks/product-detail/product-media.jsx +102 -0
  316. package/registry/blocks/product-detail/product-options.jsx +144 -0
  317. package/registry/blocks/product-grid/README.md +162 -0
  318. package/registry/blocks/product-grid/block.json +10 -0
  319. package/registry/blocks/product-grid/demo.jsx +255 -0
  320. package/registry/blocks/product-grid/index.js +5 -0
  321. package/registry/blocks/product-grid/product-card.jsx +232 -0
  322. package/registry/blocks/product-grid/product-grid.jsx +235 -0
  323. package/registry/blocks/record-form/README.md +196 -0
  324. package/registry/blocks/record-form/block.json +10 -0
  325. package/registry/blocks/record-form/demo.jsx +525 -0
  326. package/registry/blocks/record-form/index.js +4 -0
  327. package/registry/blocks/record-form/record-fields.jsx +457 -0
  328. package/registry/blocks/record-form/record-form.jsx +415 -0
  329. package/registry/blocks/record-form/rules.js +81 -0
  330. package/registry/blocks/record-notes/README.md +139 -0
  331. package/registry/blocks/record-notes/block.json +10 -0
  332. package/registry/blocks/record-notes/demo.jsx +179 -0
  333. package/registry/blocks/record-notes/index.js +4 -0
  334. package/registry/blocks/record-notes/record-notes.jsx +266 -0
  335. package/registry/blocks/search-dialog/README.md +108 -0
  336. package/registry/blocks/search-dialog/block.json +10 -0
  337. package/registry/blocks/search-dialog/demo.jsx +116 -0
  338. package/registry/blocks/search-dialog/index.js +3 -0
  339. package/registry/blocks/search-dialog/search-dialog.jsx +235 -0
  340. package/registry/blocks/settings-list/README.md +171 -0
  341. package/registry/blocks/settings-list/block.json +10 -0
  342. package/registry/blocks/settings-list/demo.jsx +333 -0
  343. package/registry/blocks/settings-list/index.js +4 -0
  344. package/registry/blocks/settings-list/row-state.jsx +93 -0
  345. package/registry/blocks/settings-list/settings-list.jsx +349 -0
  346. package/registry/blocks/settings-list/settings-matrix.jsx +118 -0
  347. package/registry/blocks/setup-checklist/README.md +142 -0
  348. package/registry/blocks/setup-checklist/block.json +10 -0
  349. package/registry/blocks/setup-checklist/demo.jsx +159 -0
  350. package/registry/blocks/setup-checklist/index.js +4 -0
  351. package/registry/blocks/setup-checklist/setup-checklist.jsx +446 -0
  352. package/registry/blocks/share-dialog/README.md +113 -0
  353. package/registry/blocks/share-dialog/block.json +10 -0
  354. package/registry/blocks/share-dialog/demo.jsx +140 -0
  355. package/registry/blocks/share-dialog/index.js +3 -0
  356. package/registry/blocks/share-dialog/share-dialog.jsx +384 -0
  357. package/registry/blocks/sidebar/README.md +190 -0
  358. package/registry/blocks/sidebar/block.json +43 -0
  359. package/registry/blocks/sidebar/demo.jsx +577 -0
  360. package/registry/blocks/sidebar/index.js +4 -0
  361. package/registry/blocks/sidebar/sidebar-panel.jsx +149 -0
  362. package/registry/blocks/sidebar/sidebar.jsx +864 -0
  363. package/registry/blocks/signature-pad/README.md +137 -0
  364. package/registry/blocks/signature-pad/block.json +13 -0
  365. package/registry/blocks/signature-pad/colors.js +115 -0
  366. package/registry/blocks/signature-pad/demo.jsx +94 -0
  367. package/registry/blocks/signature-pad/index.js +6 -0
  368. package/registry/blocks/signature-pad/pad.js +7 -0
  369. package/registry/blocks/signature-pad/signature-pad.jsx +434 -0
  370. package/registry/blocks/signature-pad/signature.js +68 -0
  371. package/registry/blocks/sketch-canvas/README.md +280 -0
  372. package/registry/blocks/sketch-canvas/block.json +13 -0
  373. package/registry/blocks/sketch-canvas/demo.jsx +159 -0
  374. package/registry/blocks/sketch-canvas/excalidraw.js +40 -0
  375. package/registry/blocks/sketch-canvas/index.js +9 -0
  376. package/registry/blocks/sketch-canvas/palette.js +226 -0
  377. package/registry/blocks/sketch-canvas/sketch-canvas.jsx +1188 -0
  378. package/registry/blocks/sketch-canvas/sketch.js +179 -0
  379. package/registry/blocks/sketch-canvas/ssr-shim-end.js +6 -0
  380. package/registry/blocks/sketch-canvas/ssr-shim.js +45 -0
  381. package/registry/blocks/sketch-canvas/stamps.js +104 -0
  382. package/registry/blocks/sketch-canvas/theme.js +131 -0
  383. package/registry/blocks/spreadsheet/README.md +307 -0
  384. package/registry/blocks/spreadsheet/block.json +13 -0
  385. package/registry/blocks/spreadsheet/cells.jsx +455 -0
  386. package/registry/blocks/spreadsheet/chrome.jsx +325 -0
  387. package/registry/blocks/spreadsheet/demo.jsx +177 -0
  388. package/registry/blocks/spreadsheet/grid.js +387 -0
  389. package/registry/blocks/spreadsheet/index.js +34 -0
  390. package/registry/blocks/spreadsheet/spreadsheet.jsx +1732 -0
  391. package/registry/blocks/spreadsheet/types.js +473 -0
  392. package/registry/blocks/stat-cards/README.md +173 -0
  393. package/registry/blocks/stat-cards/block.json +10 -0
  394. package/registry/blocks/stat-cards/demo.jsx +257 -0
  395. package/registry/blocks/stat-cards/index.js +4 -0
  396. package/registry/blocks/stat-cards/stat-cards.jsx +307 -0
  397. package/registry/blocks/stat-cards/usage.jsx +243 -0
  398. package/registry/blocks/task-list/README.md +176 -0
  399. package/registry/blocks/task-list/block.json +10 -0
  400. package/registry/blocks/task-list/demo.jsx +134 -0
  401. package/registry/blocks/task-list/index.js +5 -0
  402. package/registry/blocks/task-list/task-list.jsx +907 -0
  403. package/registry/blocks/task-model/README.md +455 -0
  404. package/registry/blocks/task-model/block.json +167 -0
  405. package/registry/blocks/task-model/changes.js +89 -0
  406. package/registry/blocks/task-model/dates.js +371 -0
  407. package/registry/blocks/task-model/demo.jsx +215 -0
  408. package/registry/blocks/task-model/dnd.jsx +240 -0
  409. package/registry/blocks/task-model/index.js +97 -0
  410. package/registry/blocks/task-model/model.js +919 -0
  411. package/registry/blocks/task-model/parts.jsx +449 -0
  412. package/registry/blocks/task-model/toolbar.jsx +271 -0
  413. package/registry/blocks/testimonials/README.md +139 -0
  414. package/registry/blocks/testimonials/block.json +11 -0
  415. package/registry/blocks/testimonials/demo.jsx +137 -0
  416. package/registry/blocks/testimonials/index.js +4 -0
  417. package/registry/blocks/testimonials/testimonials.jsx +430 -0
  418. package/registry/blocks/transaction-list/README.md +126 -0
  419. package/registry/blocks/transaction-list/block.json +10 -0
  420. package/registry/blocks/transaction-list/demo.jsx +79 -0
  421. package/registry/blocks/transaction-list/index.js +4 -0
  422. package/registry/blocks/transaction-list/transaction-list.jsx +383 -0
  423. package/registry/blocks/whiteboard/README.md +179 -0
  424. package/registry/blocks/whiteboard/block.json +10 -0
  425. package/registry/blocks/whiteboard/demo.jsx +169 -0
  426. package/registry/blocks/whiteboard/index.js +6 -0
  427. package/registry/blocks/whiteboard/templates.js +150 -0
  428. package/registry/blocks/whiteboard/whiteboard.jsx +721 -0
  429. package/src/install.mjs +18 -0
  430. package/src/shadcn.mjs +8 -0
  431. package/templates/next/files/README.md +145 -11
  432. package/templates/next/files/app/globals.css +55 -4
  433. package/templates/next/files/check/run.mjs +3 -3
  434. package/templates/next/files/components/ui/avatar.jsx +141 -0
  435. package/templates/next/files/components/ui/breadcrumb.jsx +149 -0
  436. package/templates/next/files/components/ui/button-group.jsx +70 -0
  437. package/templates/next/files/components/ui/button.jsx +132 -12
  438. package/templates/next/files/components/ui/calendar.jsx +609 -0
  439. package/templates/next/files/components/ui/carousel.jsx +281 -0
  440. package/templates/next/files/components/ui/collapsible.jsx +208 -0
  441. package/templates/next/files/components/ui/combobox.jsx +608 -0
  442. package/templates/next/files/components/ui/command.jsx +577 -0
  443. package/templates/next/files/components/ui/context-menu.jsx +191 -0
  444. package/templates/next/files/components/ui/date-picker.jsx +360 -0
  445. package/templates/next/files/components/ui/distribution.jsx +117 -0
  446. package/templates/next/files/components/ui/feedback.jsx +143 -0
  447. package/templates/next/files/components/ui/field.jsx +115 -3
  448. package/templates/next/files/components/ui/file-input.jsx +234 -0
  449. package/templates/next/files/components/ui/icon.jsx +130 -8
  450. package/templates/next/files/components/ui/image.jsx +143 -0
  451. package/templates/next/files/components/ui/index.js +47 -2
  452. package/templates/next/files/components/ui/input-group.jsx +213 -0
  453. package/templates/next/files/components/ui/input-otp.jsx +170 -0
  454. package/templates/next/files/components/ui/item.jsx +206 -0
  455. package/templates/next/files/components/ui/menu.jsx +454 -82
  456. package/templates/next/files/components/ui/notice.jsx +126 -14
  457. package/templates/next/files/components/ui/pagination.jsx +156 -0
  458. package/templates/next/files/components/ui/popover.jsx +284 -0
  459. package/templates/next/files/components/ui/radio.jsx +193 -0
  460. package/templates/next/files/components/ui/rating.jsx +131 -0
  461. package/templates/next/files/components/ui/resizable.jsx +338 -0
  462. package/templates/next/files/components/ui/scroll-area.jsx +123 -0
  463. package/templates/next/files/components/ui/separator.jsx +119 -0
  464. package/templates/next/files/components/ui/sheet.jsx +96 -11
  465. package/templates/next/files/components/ui/slider.jsx +174 -0
  466. package/templates/next/files/components/ui/stat.jsx +574 -0
  467. package/templates/next/files/components/ui/steps.jsx +338 -0
  468. package/templates/next/files/components/ui/swatch.jsx +33 -0
  469. package/templates/next/files/components/ui/table.jsx +130 -0
  470. package/templates/next/files/components/ui/toast.jsx +440 -0
  471. package/templates/next/files/components/ui/toggle.jsx +195 -0
  472. package/templates/next/files/components/ui/tooltip.jsx +270 -0
  473. package/templates/next/template.json +264 -8
package/r/registry.json CHANGED
@@ -29,36 +29,121 @@
29
29
  "type": "registry:ui",
30
30
  "target": "@components/makersclaw/parts/sample.js"
31
31
  },
32
+ {
33
+ "path": "templates/next/files/components/ui/avatar.jsx",
34
+ "type": "registry:ui",
35
+ "target": "@components/makersclaw/ui/avatar.jsx"
36
+ },
37
+ {
38
+ "path": "templates/next/files/components/ui/breadcrumb.jsx",
39
+ "type": "registry:ui",
40
+ "target": "@components/makersclaw/ui/breadcrumb.jsx"
41
+ },
42
+ {
43
+ "path": "templates/next/files/components/ui/button-group.jsx",
44
+ "type": "registry:ui",
45
+ "target": "@components/makersclaw/ui/button-group.jsx"
46
+ },
32
47
  {
33
48
  "path": "templates/next/files/components/ui/button.jsx",
34
49
  "type": "registry:ui",
35
50
  "target": "@components/makersclaw/ui/button.jsx"
36
51
  },
52
+ {
53
+ "path": "templates/next/files/components/ui/calendar.jsx",
54
+ "type": "registry:ui",
55
+ "target": "@components/makersclaw/ui/calendar.jsx"
56
+ },
57
+ {
58
+ "path": "templates/next/files/components/ui/carousel.jsx",
59
+ "type": "registry:ui",
60
+ "target": "@components/makersclaw/ui/carousel.jsx"
61
+ },
62
+ {
63
+ "path": "templates/next/files/components/ui/collapsible.jsx",
64
+ "type": "registry:ui",
65
+ "target": "@components/makersclaw/ui/collapsible.jsx"
66
+ },
67
+ {
68
+ "path": "templates/next/files/components/ui/combobox.jsx",
69
+ "type": "registry:ui",
70
+ "target": "@components/makersclaw/ui/combobox.jsx"
71
+ },
72
+ {
73
+ "path": "templates/next/files/components/ui/command.jsx",
74
+ "type": "registry:ui",
75
+ "target": "@components/makersclaw/ui/command.jsx"
76
+ },
77
+ {
78
+ "path": "templates/next/files/components/ui/context-menu.jsx",
79
+ "type": "registry:ui",
80
+ "target": "@components/makersclaw/ui/context-menu.jsx"
81
+ },
37
82
  {
38
83
  "path": "templates/next/files/components/ui/cx.js",
39
84
  "type": "registry:ui",
40
85
  "target": "@components/makersclaw/ui/cx.js"
41
86
  },
87
+ {
88
+ "path": "templates/next/files/components/ui/date-picker.jsx",
89
+ "type": "registry:ui",
90
+ "target": "@components/makersclaw/ui/date-picker.jsx"
91
+ },
42
92
  {
43
93
  "path": "templates/next/files/components/ui/depiction.jsx",
44
94
  "type": "registry:ui",
45
95
  "target": "@components/makersclaw/ui/depiction.jsx"
46
96
  },
97
+ {
98
+ "path": "templates/next/files/components/ui/distribution.jsx",
99
+ "type": "registry:ui",
100
+ "target": "@components/makersclaw/ui/distribution.jsx"
101
+ },
102
+ {
103
+ "path": "templates/next/files/components/ui/feedback.jsx",
104
+ "type": "registry:ui",
105
+ "target": "@components/makersclaw/ui/feedback.jsx"
106
+ },
47
107
  {
48
108
  "path": "templates/next/files/components/ui/field.jsx",
49
109
  "type": "registry:ui",
50
110
  "target": "@components/makersclaw/ui/field.jsx"
51
111
  },
112
+ {
113
+ "path": "templates/next/files/components/ui/file-input.jsx",
114
+ "type": "registry:ui",
115
+ "target": "@components/makersclaw/ui/file-input.jsx"
116
+ },
52
117
  {
53
118
  "path": "templates/next/files/components/ui/icon.jsx",
54
119
  "type": "registry:ui",
55
120
  "target": "@components/makersclaw/ui/icon.jsx"
56
121
  },
122
+ {
123
+ "path": "templates/next/files/components/ui/image.jsx",
124
+ "type": "registry:ui",
125
+ "target": "@components/makersclaw/ui/image.jsx"
126
+ },
57
127
  {
58
128
  "path": "templates/next/files/components/ui/index.js",
59
129
  "type": "registry:ui",
60
130
  "target": "@components/makersclaw/ui/index.js"
61
131
  },
132
+ {
133
+ "path": "templates/next/files/components/ui/input-group.jsx",
134
+ "type": "registry:ui",
135
+ "target": "@components/makersclaw/ui/input-group.jsx"
136
+ },
137
+ {
138
+ "path": "templates/next/files/components/ui/input-otp.jsx",
139
+ "type": "registry:ui",
140
+ "target": "@components/makersclaw/ui/input-otp.jsx"
141
+ },
142
+ {
143
+ "path": "templates/next/files/components/ui/item.jsx",
144
+ "type": "registry:ui",
145
+ "target": "@components/makersclaw/ui/item.jsx"
146
+ },
62
147
  {
63
148
  "path": "templates/next/files/components/ui/menu.jsx",
64
149
  "type": "registry:ui",
@@ -69,21 +154,101 @@
69
154
  "type": "registry:ui",
70
155
  "target": "@components/makersclaw/ui/notice.jsx"
71
156
  },
157
+ {
158
+ "path": "templates/next/files/components/ui/pagination.jsx",
159
+ "type": "registry:ui",
160
+ "target": "@components/makersclaw/ui/pagination.jsx"
161
+ },
162
+ {
163
+ "path": "templates/next/files/components/ui/popover.jsx",
164
+ "type": "registry:ui",
165
+ "target": "@components/makersclaw/ui/popover.jsx"
166
+ },
167
+ {
168
+ "path": "templates/next/files/components/ui/radio.jsx",
169
+ "type": "registry:ui",
170
+ "target": "@components/makersclaw/ui/radio.jsx"
171
+ },
172
+ {
173
+ "path": "templates/next/files/components/ui/rating.jsx",
174
+ "type": "registry:ui",
175
+ "target": "@components/makersclaw/ui/rating.jsx"
176
+ },
177
+ {
178
+ "path": "templates/next/files/components/ui/resizable.jsx",
179
+ "type": "registry:ui",
180
+ "target": "@components/makersclaw/ui/resizable.jsx"
181
+ },
182
+ {
183
+ "path": "templates/next/files/components/ui/scroll-area.jsx",
184
+ "type": "registry:ui",
185
+ "target": "@components/makersclaw/ui/scroll-area.jsx"
186
+ },
187
+ {
188
+ "path": "templates/next/files/components/ui/separator.jsx",
189
+ "type": "registry:ui",
190
+ "target": "@components/makersclaw/ui/separator.jsx"
191
+ },
72
192
  {
73
193
  "path": "templates/next/files/components/ui/sheet.jsx",
74
194
  "type": "registry:ui",
75
195
  "target": "@components/makersclaw/ui/sheet.jsx"
76
196
  },
197
+ {
198
+ "path": "templates/next/files/components/ui/slider.jsx",
199
+ "type": "registry:ui",
200
+ "target": "@components/makersclaw/ui/slider.jsx"
201
+ },
202
+ {
203
+ "path": "templates/next/files/components/ui/stat.jsx",
204
+ "type": "registry:ui",
205
+ "target": "@components/makersclaw/ui/stat.jsx"
206
+ },
207
+ {
208
+ "path": "templates/next/files/components/ui/steps.jsx",
209
+ "type": "registry:ui",
210
+ "target": "@components/makersclaw/ui/steps.jsx"
211
+ },
212
+ {
213
+ "path": "templates/next/files/components/ui/swatch.jsx",
214
+ "type": "registry:ui",
215
+ "target": "@components/makersclaw/ui/swatch.jsx"
216
+ },
217
+ {
218
+ "path": "templates/next/files/components/ui/table.jsx",
219
+ "type": "registry:ui",
220
+ "target": "@components/makersclaw/ui/table.jsx"
221
+ },
77
222
  {
78
223
  "path": "templates/next/files/components/ui/tabs.jsx",
79
224
  "type": "registry:ui",
80
225
  "target": "@components/makersclaw/ui/tabs.jsx"
226
+ },
227
+ {
228
+ "path": "templates/next/files/components/ui/toast.jsx",
229
+ "type": "registry:ui",
230
+ "target": "@components/makersclaw/ui/toast.jsx"
231
+ },
232
+ {
233
+ "path": "templates/next/files/components/ui/toggle.jsx",
234
+ "type": "registry:ui",
235
+ "target": "@components/makersclaw/ui/toggle.jsx"
236
+ },
237
+ {
238
+ "path": "templates/next/files/components/ui/tooltip.jsx",
239
+ "type": "registry:ui",
240
+ "target": "@components/makersclaw/ui/tooltip.jsx"
81
241
  }
82
242
  ],
83
243
  "cssVars": {
84
244
  "theme": {
85
245
  "text-2xs": "0.6875rem",
86
- "text-2xs--line-height": "1rem"
246
+ "text-2xs--line-height": "1rem",
247
+ "color-chart-1": "var(--chart-1)",
248
+ "color-chart-2": "var(--chart-2)",
249
+ "color-chart-3": "var(--chart-3)",
250
+ "color-chart-4": "var(--chart-4)",
251
+ "color-chart-5": "var(--chart-5)"
87
252
  },
88
253
  "light": {
89
254
  "success": "oklch(0.627 0.194 149.214)",
@@ -132,13 +297,236 @@
132
297
  },
133
298
  "docs": "Installed to components/makersclaw/ui and components/makersclaw/parts. Import: import { Button } from \"@/components/makersclaw/ui\". Needs Next.js 15+, React 19 and Tailwind v4. https://www.npmjs.com/package/makersclaw"
134
299
  },
300
+ {
301
+ "name": "annotate",
302
+ "type": "registry:block",
303
+ "title": "Annotate",
304
+ "description": "Mark up a screenshot: drop, pick or paste one, then draw arrows, boxes, highlights, redaction bars and numbered notes on it (Excalidraw underneath, via sketch-canvas). A side list holds the words of each numbered note; a click on a note's number shows its pin. Starter templates (bug report, design review, walkthrough) on a fresh screenshot. The annotation is plain JSON saved through onChange / an async onSave; onSubmit hands over a PNG of the marked-up screenshot with the notes and the sketch.",
305
+ "registryDependencies": [
306
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json",
307
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/sketch-canvas.json"
308
+ ],
309
+ "dependencies": [],
310
+ "files": [
311
+ {
312
+ "path": "registry/blocks/annotate/index.js",
313
+ "type": "registry:component",
314
+ "target": "@components/makersclaw/blocks/annotate/index.js"
315
+ },
316
+ {
317
+ "path": "registry/blocks/annotate/annotate.jsx",
318
+ "type": "registry:component",
319
+ "target": "@components/makersclaw/blocks/annotate/annotate.jsx"
320
+ },
321
+ {
322
+ "path": "registry/blocks/annotate/annotate-data.js",
323
+ "type": "registry:component",
324
+ "target": "@components/makersclaw/blocks/annotate/annotate-data.js"
325
+ },
326
+ {
327
+ "path": "registry/blocks/annotate/README.md",
328
+ "type": "registry:file",
329
+ "target": "@components/makersclaw/blocks/annotate/README.md"
330
+ }
331
+ ],
332
+ "categories": [
333
+ "annotate",
334
+ "annotation",
335
+ "screenshot",
336
+ "markup",
337
+ "mark up",
338
+ "feedback",
339
+ "bug report",
340
+ "design review",
341
+ "pins",
342
+ "numbered notes",
343
+ "arrows",
344
+ "highlight",
345
+ "redact",
346
+ "excalidraw",
347
+ "png"
348
+ ],
349
+ "docs": "Installed to components/makersclaw/blocks/annotate. Import: import { Annotate, ANNOTATE_TOOLS, ANNOTATE_TEMPLATES, emptyAnnotation, toAnnotation, annotationNotes, annotationToText, noteMarkers, nextNoteNumber, markerSkeleton } from \"@/components/makersclaw/blocks/annotate\". Props and an example: components/makersclaw/blocks/annotate/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
350
+ "meta": {
351
+ "makersclaw": {
352
+ "version": "0.3.0",
353
+ "useWhen": "Someone needs to point at parts of a screen and say something about each: a bug report, design feedback, a support question, a walkthrough, a request to an agent about what to change. Not a blank drawing board (whiteboard or sketch-canvas), not a wireframe (sketch-to-app), not an image upload alone (file-upload)."
354
+ }
355
+ }
356
+ },
357
+ {
358
+ "name": "approval-request",
359
+ "type": "registry:block",
360
+ "title": "ApprovalRequest",
361
+ "description": "One request waiting on a decision: what is asked for as label/value facts (an amount in large type), who asked and when, why, a status badge, and Approve / Reject (reject asks for a reason). The decision goes out through async onApprove / onReject; the block shows it working, a failure, then the outcome in place of the buttons. A card alone, or a page of detail sections beside the card.",
362
+ "registryDependencies": [
363
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json"
364
+ ],
365
+ "dependencies": [],
366
+ "files": [
367
+ {
368
+ "path": "registry/blocks/approval-request/index.js",
369
+ "type": "registry:component",
370
+ "target": "@components/makersclaw/blocks/approval-request/index.js"
371
+ },
372
+ {
373
+ "path": "registry/blocks/approval-request/approval-request.jsx",
374
+ "type": "registry:component",
375
+ "target": "@components/makersclaw/blocks/approval-request/approval-request.jsx"
376
+ },
377
+ {
378
+ "path": "registry/blocks/approval-request/README.md",
379
+ "type": "registry:file",
380
+ "target": "@components/makersclaw/blocks/approval-request/README.md"
381
+ }
382
+ ],
383
+ "categories": [
384
+ "approval",
385
+ "approve",
386
+ "reject",
387
+ "request",
388
+ "review",
389
+ "decision",
390
+ "purchase",
391
+ "expense",
392
+ "refund",
393
+ "time off",
394
+ "sign off",
395
+ "pending"
396
+ ],
397
+ "docs": "Installed to components/makersclaw/blocks/approval-request. Import: import { ApprovalRequest } from \"@/components/makersclaw/blocks/approval-request\". Props and an example: components/makersclaw/blocks/approval-request/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
398
+ "meta": {
399
+ "makersclaw": {
400
+ "version": "0.3.0",
401
+ "useWhen": "Someone must say yes or no to one thing another person asked for: a purchase, a refund, time off, a discount, an access request, a published post. Not for a queue of many requests (a data-table with row actions) or a yes/no about the founder's own action (kit Confirm)."
402
+ }
403
+ }
404
+ },
405
+ {
406
+ "name": "audio-player",
407
+ "type": "registry:block",
408
+ "title": "AudioPlayer",
409
+ "description": "A waveform audio player (wavesurfer.js) in the workspace theme: play, skip back and forward, speed, mute; regions (spans of the audio in a theme tone, labelled in a lane under the waveform, click to play one) and markers (pins at moments, click to jump); a hover time readout; drag across the waveform to mark a new region; add a marker at the playhead; keyboard like a video player (K, J, L, M, arrows). Time events and a handle (seek, play a range) for syncing a transcript.",
410
+ "registryDependencies": [
411
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json"
412
+ ],
413
+ "dependencies": [
414
+ "wavesurfer.js@8.0.0",
415
+ "@wavesurfer/react@1.0.12"
416
+ ],
417
+ "files": [
418
+ {
419
+ "path": "registry/blocks/audio-player/index.js",
420
+ "type": "registry:component",
421
+ "target": "@components/makersclaw/blocks/audio-player/index.js"
422
+ },
423
+ {
424
+ "path": "registry/blocks/audio-player/audio-player.jsx",
425
+ "type": "registry:component",
426
+ "target": "@components/makersclaw/blocks/audio-player/audio-player.jsx"
427
+ },
428
+ {
429
+ "path": "registry/blocks/audio-player/wavesurfer.js",
430
+ "type": "registry:component",
431
+ "target": "@components/makersclaw/blocks/audio-player/wavesurfer.js"
432
+ },
433
+ {
434
+ "path": "registry/blocks/audio-player/colors.js",
435
+ "type": "registry:component",
436
+ "target": "@components/makersclaw/blocks/audio-player/colors.js"
437
+ },
438
+ {
439
+ "path": "registry/blocks/audio-player/time.js",
440
+ "type": "registry:component",
441
+ "target": "@components/makersclaw/blocks/audio-player/time.js"
442
+ },
443
+ {
444
+ "path": "registry/blocks/audio-player/README.md",
445
+ "type": "registry:file",
446
+ "target": "@components/makersclaw/blocks/audio-player/README.md"
447
+ }
448
+ ],
449
+ "categories": [
450
+ "audio",
451
+ "player",
452
+ "waveform",
453
+ "wavesurfer",
454
+ "recording",
455
+ "call",
456
+ "voice note",
457
+ "podcast",
458
+ "regions",
459
+ "markers",
460
+ "playback",
461
+ "speed",
462
+ "transcript"
463
+ ],
464
+ "docs": "Installed to components/makersclaw/blocks/audio-player. Import: import { AudioPlayer, useAudioPlayer, formatTime, formatRange, spokenTime, regionAt, TONES, RATES } from \"@/components/makersclaw/blocks/audio-player\". Props and an example: components/makersclaw/blocks/audio-player/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
465
+ "meta": {
466
+ "makersclaw": {
467
+ "version": "0.3.0",
468
+ "useWhen": "A screen plays a recording: a call or meeting recording, a voice note, a podcast clip, a voicemail, a sound file on a record. The call-review block is built on it. Not for video, not for recording audio from the microphone."
469
+ }
470
+ }
471
+ },
472
+ {
473
+ "name": "auth-form",
474
+ "type": "registry:block",
475
+ "title": "AuthForm",
476
+ "description": "The account screens in one form: sign in (password, email only, or provider buttons for Google, GitHub, Apple and Microsoft), sign up with extra fields, a magic link, a reset link, and changing a password against a live rules checklist. The auth is yours: each submit is an async callback that returns { ok } or an error the form shows.",
477
+ "registryDependencies": [
478
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json"
479
+ ],
480
+ "dependencies": [],
481
+ "files": [
482
+ {
483
+ "path": "registry/blocks/auth-form/index.js",
484
+ "type": "registry:component",
485
+ "target": "@components/makersclaw/blocks/auth-form/index.js"
486
+ },
487
+ {
488
+ "path": "registry/blocks/auth-form/auth-form.jsx",
489
+ "type": "registry:component",
490
+ "target": "@components/makersclaw/blocks/auth-form/auth-form.jsx"
491
+ },
492
+ {
493
+ "path": "registry/blocks/auth-form/README.md",
494
+ "type": "registry:file",
495
+ "target": "@components/makersclaw/blocks/auth-form/README.md"
496
+ }
497
+ ],
498
+ "categories": [
499
+ "auth",
500
+ "login",
501
+ "sign in",
502
+ "sign up",
503
+ "register",
504
+ "password",
505
+ "reset password",
506
+ "forgot password",
507
+ "change password",
508
+ "magic link",
509
+ "oauth",
510
+ "google",
511
+ "github",
512
+ "sso",
513
+ "account"
514
+ ],
515
+ "docs": "Installed to components/makersclaw/blocks/auth-form. Import: import { AuthForm, PASSWORD_RULES } from \"@/components/makersclaw/blocks/auth-form\". Props and an example: components/makersclaw/blocks/auth-form/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
516
+ "meta": {
517
+ "makersclaw": {
518
+ "version": "0.3.0",
519
+ "useWhen": "An app needs a sign-in, sign-up, forgot-password or change-password screen, or a settings page where a signed-in person changes their password."
520
+ }
521
+ }
522
+ },
135
523
  {
136
524
  "name": "board",
137
525
  "type": "registry:block",
138
526
  "title": "Board",
139
- "description": "Records as cards in columns, one per stage; drag a card to another column (mouse, touch, or the card's menu from the keyboard) and the stage is saved.",
527
+ "description": "Records as cards in columns, one per stage; drag a card to another column (mouse, touch, or the card's menu from the keyboard) and the stage is saved. Optional column icons, a per-column total (\"13pt\"), a category colour on each card's edge, and a stacked layout of folding sections with compact rows.",
140
528
  "registryDependencies": [
141
- "https://cdn.jsdelivr.net/npm/makersclaw@0.2.0/r/core.json"
529
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json"
142
530
  ],
143
531
  "dependencies": [],
144
532
  "files": [
@@ -169,60 +557,3054 @@
169
557
  "drop",
170
558
  "status",
171
559
  "workflow",
172
- "funnel"
560
+ "funnel",
561
+ "sprint",
562
+ "accent",
563
+ "stacked",
564
+ "collapsible"
173
565
  ],
174
566
  "docs": "Installed to components/makersclaw/blocks/board. Import: import { Board } from \"@/components/makersclaw/blocks/board\". Props and an example: components/makersclaw/blocks/board/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
175
567
  "meta": {
176
568
  "makersclaw": {
177
- "version": "0.2.0",
569
+ "version": "0.3.0",
178
570
  "useWhen": "A process where each record sits in one stage and moves forward: a pipeline, a hiring funnel, a sprint, a content calendar by status, outreach by reply state. Not for records with no stages (a table) or items placed on a timeline."
179
571
  }
180
572
  }
181
573
  },
182
574
  {
183
- "name": "job-panel",
575
+ "name": "calendar-view",
184
576
  "type": "registry:block",
185
- "title": "JobPanel",
186
- "description": "The panel that follows work the founder asked the app's agent for (useJob): each step's label as it runs, Stop, then done or the reason it stopped — and nothing on screen when no job runs.",
577
+ "title": "Calendar",
578
+ "description": "Tasks on a calendar, like Google Calendar, Cron or Notion Calendar: month, week, day and agenda views over task-model's work items. Month shows all-day tasks and spans as tinted bars across their days (stacked in lanes, \"2 more\" past three) and timed ones as a dot and a time; week and day show an all-day strip over an hour grid where timed tasks are blocks placed by their times, overlapping ones side by side, with a line at now. Drag an item to another day or hour (it snaps to the quarter hour and the day columns as it moves), drag its bottom or end to change how long it runs, click an empty day or hour (or drag across hours) to type a new task in place, drag tasks without a date in from an unscheduled tray (or drop one there to take its date off). Arrow keys move a focused block, Shift+arrows resize it, Delete removes with Undo; T, J/K, M/W/D/A and C for today, next/previous, the views and a new task. Search and filters from the shared ViewToolbar, a colour per project or status, a real phone layout (a dotted month with the tapped day listed, a three-day week, a sheet for the tray). An available-time layer (closed hours muted, open slots as boxes you pick, from `availability`, `slots` or an async `getSlots`, with pure `freeSlots` / `availabilityOn` helpers) is what a booking page builds on. One async onChange saves every change; failures roll back with a notice.",
187
579
  "registryDependencies": [
188
- "https://cdn.jsdelivr.net/npm/makersclaw@0.2.0/r/core.json"
580
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json",
581
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/task-model.json"
189
582
  ],
190
583
  "dependencies": [],
191
584
  "files": [
192
585
  {
193
- "path": "registry/blocks/job-panel/index.js",
586
+ "path": "registry/blocks/calendar-view/index.js",
194
587
  "type": "registry:component",
195
- "target": "@components/makersclaw/blocks/job-panel/index.js"
588
+ "target": "@components/makersclaw/blocks/calendar-view/index.js"
196
589
  },
197
590
  {
198
- "path": "registry/blocks/job-panel/job-panel.jsx",
591
+ "path": "registry/blocks/calendar-view/calendar.jsx",
199
592
  "type": "registry:component",
200
- "target": "@components/makersclaw/blocks/job-panel/job-panel.jsx"
593
+ "target": "@components/makersclaw/blocks/calendar-view/calendar.jsx"
201
594
  },
202
595
  {
203
- "path": "registry/blocks/job-panel/README.md",
596
+ "path": "registry/blocks/calendar-view/calendar-model.js",
597
+ "type": "registry:component",
598
+ "target": "@components/makersclaw/blocks/calendar-view/calendar-model.js"
599
+ },
600
+ {
601
+ "path": "registry/blocks/calendar-view/month.jsx",
602
+ "type": "registry:component",
603
+ "target": "@components/makersclaw/blocks/calendar-view/month.jsx"
604
+ },
605
+ {
606
+ "path": "registry/blocks/calendar-view/time-grid.jsx",
607
+ "type": "registry:component",
608
+ "target": "@components/makersclaw/blocks/calendar-view/time-grid.jsx"
609
+ },
610
+ {
611
+ "path": "registry/blocks/calendar-view/agenda.jsx",
612
+ "type": "registry:component",
613
+ "target": "@components/makersclaw/blocks/calendar-view/agenda.jsx"
614
+ },
615
+ {
616
+ "path": "registry/blocks/calendar-view/tray.jsx",
617
+ "type": "registry:component",
618
+ "target": "@components/makersclaw/blocks/calendar-view/tray.jsx"
619
+ },
620
+ {
621
+ "path": "registry/blocks/calendar-view/draft.jsx",
622
+ "type": "registry:component",
623
+ "target": "@components/makersclaw/blocks/calendar-view/draft.jsx"
624
+ },
625
+ {
626
+ "path": "registry/blocks/calendar-view/paint.js",
627
+ "type": "registry:component",
628
+ "target": "@components/makersclaw/blocks/calendar-view/paint.js"
629
+ },
630
+ {
631
+ "path": "registry/blocks/calendar-view/README.md",
204
632
  "type": "registry:file",
205
- "target": "@components/makersclaw/blocks/job-panel/README.md"
633
+ "target": "@components/makersclaw/blocks/calendar-view/README.md"
206
634
  }
207
635
  ],
208
636
  "categories": [
209
- "job",
210
- "agent",
211
- "generate",
212
- "progress",
213
- "steps",
214
- "running",
215
- "working",
216
- "commission",
217
- "ai",
218
- "stop",
219
- "status"
637
+ "calendar",
638
+ "schedule",
639
+ "month",
640
+ "week",
641
+ "day",
642
+ "agenda",
643
+ "time grid",
644
+ "events",
645
+ "tasks",
646
+ "deadlines",
647
+ "content calendar",
648
+ "drag",
649
+ "resize",
650
+ "unscheduled",
651
+ "availability",
652
+ "slots",
653
+ "booking",
654
+ "google calendar",
655
+ "cron",
656
+ "notion calendar",
657
+ "clickup",
658
+ "planner"
220
659
  ],
221
- "docs": "Installed to components/makersclaw/blocks/job-panel. Import: import { JobPanel } from \"@/components/makersclaw/blocks/job-panel\". Props and an example: components/makersclaw/blocks/job-panel/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
660
+ "docs": "Installed to components/makersclaw/blocks/calendar-view. Import: import { CalendarView, CALENDAR_MODES, MODE_LABELS, DAY_MINUTES, UNSCHEDULE, snapMinutes, durationOf, eventOf, eventsOf, unscheduledOf, layoutTimed, layoutLanes, moveEventPatch, resizeEventPatch, placeEventPatch, timedPatch, dayPatch, allDayPatch, extendPatch, rangeFor, stepAnchor, rangeLabel, titleFor, hourLabel, minutesLabel, eventTimeLabel, availabilityOn, closedOn, freeSlots, normalizeSlots } from \"@/components/makersclaw/blocks/calendar-view\". Props and an example: components/makersclaw/blocks/calendar-view/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
661
+ "meta": {
662
+ "makersclaw": {
663
+ "version": "0.3.0",
664
+ "useWhen": "A screen where dated work or events are seen by day and moved around: a team's deadlines, a content calendar, a launch plan, shifts, a personal schedule, meetings on tasks, or the slot picker of a booking page (modes week/day, slots from getSlots). Not for dependencies over a long timeline (gantt), for undated work (task-list, board), or for a single date field (the kit's DatePicker)."
665
+ }
666
+ }
667
+ },
668
+ {
669
+ "name": "cart",
670
+ "type": "registry:block",
671
+ "title": "Cart",
672
+ "description": "A shopping cart: line items with picture, option, quantity and remove, a summary (subtotal, discount code, shipping, tax, total) and Checkout. step=\"checkout\" is the checkout page: contact and delivery details beside the order summary, ending at onPay, which hands off to Paddle. No card fields. Empty and loading states built in.",
673
+ "registryDependencies": [
674
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json"
675
+ ],
676
+ "dependencies": [],
677
+ "files": [
678
+ {
679
+ "path": "registry/blocks/cart/index.js",
680
+ "type": "registry:component",
681
+ "target": "@components/makersclaw/blocks/cart/index.js"
682
+ },
683
+ {
684
+ "path": "registry/blocks/cart/cart.jsx",
685
+ "type": "registry:component",
686
+ "target": "@components/makersclaw/blocks/cart/cart.jsx"
687
+ },
688
+ {
689
+ "path": "registry/blocks/cart/money.js",
690
+ "type": "registry:component",
691
+ "target": "@components/makersclaw/blocks/cart/money.js"
692
+ },
693
+ {
694
+ "path": "registry/blocks/cart/README.md",
695
+ "type": "registry:file",
696
+ "target": "@components/makersclaw/blocks/cart/README.md"
697
+ }
698
+ ],
699
+ "categories": [
700
+ "cart",
701
+ "basket",
702
+ "checkout",
703
+ "shop",
704
+ "store",
705
+ "ecommerce",
706
+ "commerce",
707
+ "order",
708
+ "summary",
709
+ "quantity",
710
+ "discount",
711
+ "coupon",
712
+ "promo",
713
+ "shipping",
714
+ "paddle",
715
+ "pay"
716
+ ],
717
+ "docs": "Installed to components/makersclaw/blocks/cart. Import: import { Cart } from \"@/components/makersclaw/blocks/cart\". Props and an example: components/makersclaw/blocks/cart/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
718
+ "meta": {
719
+ "makersclaw": {
720
+ "version": "0.3.0",
721
+ "useWhen": "An app that sells things: the basket before paying, and the page that collects the buyer's email and address before the payment provider takes over. Not for a subscription plan picker (a pricing table) or for an order already placed (order-detail)."
722
+ }
723
+ }
724
+ },
725
+ {
726
+ "name": "chart",
727
+ "type": "registry:block",
728
+ "title": "Chart",
729
+ "description": "Line, area (stacked), bar (grouped or stacked, columns or bars, value labels at the ends, a track behind), a muted or dashed series for a previous period to compare against, pie and donut charts, sparklines and heatmaps (a grid shaded by value, with a scale legend), drawn in SVG (the heatmap as an HTML table) with the workspace's chart colours: round ticks, gridlines, a tooltip and crosshair under the pointer or the arrow keys, a legend that hides a series, and a data table for screen readers.",
730
+ "registryDependencies": [
731
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json"
732
+ ],
733
+ "dependencies": [],
734
+ "files": [
735
+ {
736
+ "path": "registry/blocks/chart/index.js",
737
+ "type": "registry:component",
738
+ "target": "@components/makersclaw/blocks/chart/index.js"
739
+ },
740
+ {
741
+ "path": "registry/blocks/chart/core.jsx",
742
+ "type": "registry:component",
743
+ "target": "@components/makersclaw/blocks/chart/core.jsx"
744
+ },
745
+ {
746
+ "path": "registry/blocks/chart/cartesian.jsx",
747
+ "type": "registry:component",
748
+ "target": "@components/makersclaw/blocks/chart/cartesian.jsx"
749
+ },
750
+ {
751
+ "path": "registry/blocks/chart/pie.jsx",
752
+ "type": "registry:component",
753
+ "target": "@components/makersclaw/blocks/chart/pie.jsx"
754
+ },
755
+ {
756
+ "path": "registry/blocks/chart/sparkline.jsx",
757
+ "type": "registry:component",
758
+ "target": "@components/makersclaw/blocks/chart/sparkline.jsx"
759
+ },
760
+ {
761
+ "path": "registry/blocks/chart/heatmap.jsx",
762
+ "type": "registry:component",
763
+ "target": "@components/makersclaw/blocks/chart/heatmap.jsx"
764
+ },
765
+ {
766
+ "path": "registry/blocks/chart/README.md",
767
+ "type": "registry:file",
768
+ "target": "@components/makersclaw/blocks/chart/README.md"
769
+ }
770
+ ],
771
+ "categories": [
772
+ "chart",
773
+ "graph",
774
+ "line",
775
+ "area",
776
+ "bar",
777
+ "pie",
778
+ "donut",
779
+ "sparkline",
780
+ "analytics",
781
+ "dashboard",
782
+ "kpi",
783
+ "trend",
784
+ "comparison",
785
+ "previous period",
786
+ "metrics",
787
+ "report",
788
+ "heatmap",
789
+ "grid",
790
+ "scale"
791
+ ],
792
+ "docs": "Installed to components/makersclaw/blocks/chart. Import: import { LineChart, AreaChart, BarChart, PieChart, Sparkline, ChartLegend, HeatmapChart, ScaleLegend, scaleStep, scaleShade } from \"@/components/makersclaw/blocks/chart\". Props and an example: components/makersclaw/blocks/chart/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
793
+ "meta": {
794
+ "makersclaw": {
795
+ "version": "0.3.0",
796
+ "useWhen": "Numbers the founder should see as a shape: revenue by month, deals by stage, pipeline by source, a KPI's trend. Not for a single figure with no history (a stat), exact lookups (a table), or records on a timeline (a calendar)."
797
+ }
798
+ }
799
+ },
800
+ {
801
+ "name": "chat",
802
+ "type": "registry:block",
803
+ "title": "Chat",
804
+ "description": "The parts of a chat: messages with avatars, times, grouping, sending/failed/streaming states, hover actions, thumbs up/down feedback, in-place editing and a folding reasoning section; a scroller that sticks to the bottom with day separators and older-message loading; a composer (a box or an \"ask anything\" pill) with attachments, a + menu, tools, suggestion chips, Enter to send and Stop; a header; and ChatThread, which composes them from messages + onSend.",
805
+ "registryDependencies": [
806
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json"
807
+ ],
808
+ "dependencies": [],
809
+ "files": [
810
+ {
811
+ "path": "registry/blocks/chat/index.js",
812
+ "type": "registry:component",
813
+ "target": "@components/makersclaw/blocks/chat/index.js"
814
+ },
815
+ {
816
+ "path": "registry/blocks/chat/chat.jsx",
817
+ "type": "registry:component",
818
+ "target": "@components/makersclaw/blocks/chat/chat.jsx"
819
+ },
820
+ {
821
+ "path": "registry/blocks/chat/header.jsx",
822
+ "type": "registry:component",
823
+ "target": "@components/makersclaw/blocks/chat/header.jsx"
824
+ },
825
+ {
826
+ "path": "registry/blocks/chat/message.jsx",
827
+ "type": "registry:component",
828
+ "target": "@components/makersclaw/blocks/chat/message.jsx"
829
+ },
830
+ {
831
+ "path": "registry/blocks/chat/text.jsx",
832
+ "type": "registry:component",
833
+ "target": "@components/makersclaw/blocks/chat/text.jsx"
834
+ },
835
+ {
836
+ "path": "registry/blocks/chat/attachment.jsx",
837
+ "type": "registry:component",
838
+ "target": "@components/makersclaw/blocks/chat/attachment.jsx"
839
+ },
840
+ {
841
+ "path": "registry/blocks/chat/scroller.jsx",
842
+ "type": "registry:component",
843
+ "target": "@components/makersclaw/blocks/chat/scroller.jsx"
844
+ },
845
+ {
846
+ "path": "registry/blocks/chat/composer.jsx",
847
+ "type": "registry:component",
848
+ "target": "@components/makersclaw/blocks/chat/composer.jsx"
849
+ },
850
+ {
851
+ "path": "registry/blocks/chat/README.md",
852
+ "type": "registry:file",
853
+ "target": "@components/makersclaw/blocks/chat/README.md"
854
+ }
855
+ ],
856
+ "categories": [
857
+ "chat",
858
+ "messages",
859
+ "conversation",
860
+ "thread",
861
+ "assistant",
862
+ "ai",
863
+ "support",
864
+ "inbox",
865
+ "composer",
866
+ "attachments",
867
+ "streaming",
868
+ "bubble",
869
+ "reply",
870
+ "feedback",
871
+ "reasoning",
872
+ "prompt",
873
+ "suggestions",
874
+ "ask anything",
875
+ "header"
876
+ ],
877
+ "docs": "Installed to components/makersclaw/blocks/chat. Import: import { ChatThread, ChatHeader, Message, Bubble, Attachment, MessageScroller, Composer } from \"@/components/makersclaw/blocks/chat\". Props and an example: components/makersclaw/blocks/chat/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
878
+ "meta": {
879
+ "makersclaw": {
880
+ "version": "0.3.0",
881
+ "useWhen": "A conversation lives inside the app's own screen: a support inbox reply pane, a customer-facing assistant, comments between teammates on a record, a thread per object. Not the app window's Agent tab (the OS draws that) and not a one-off job the founder commissions (job-panel)."
882
+ }
883
+ }
884
+ },
885
+ {
886
+ "name": "code-editor",
887
+ "type": "registry:block",
888
+ "title": "CodeEditor",
889
+ "description": "A code editor (CodeMirror 6) in the workspace theme: SQL with the database's tables and columns in autocomplete, JSON checked as you type with plain-words errors, or plain text; line numbers, problems underlined in the text with a dot in the gutter, find and replace, folding, and a run hook on Cmd/Ctrl+Enter that runs the selection or the statement under the cursor. A quiet status line shows problems, the cursor, the mode and a Run button. Helpers split SQL into statements and check or format JSON anywhere, the server included.",
890
+ "registryDependencies": [
891
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json"
892
+ ],
893
+ "dependencies": [
894
+ "@codemirror/state@6.7.6",
895
+ "@codemirror/view@6.43.13",
896
+ "@codemirror/commands@6.11.1",
897
+ "@codemirror/language@6.12.4",
898
+ "@codemirror/autocomplete@6.20.3",
899
+ "@codemirror/search@6.7.2",
900
+ "@codemirror/lint@6.9.7",
901
+ "@codemirror/lang-sql@6.10.0",
902
+ "@codemirror/lang-json@6.0.2",
903
+ "@lezer/highlight@1.2.3"
904
+ ],
905
+ "files": [
906
+ {
907
+ "path": "registry/blocks/code-editor/index.js",
908
+ "type": "registry:component",
909
+ "target": "@components/makersclaw/blocks/code-editor/index.js"
910
+ },
911
+ {
912
+ "path": "registry/blocks/code-editor/code-editor.jsx",
913
+ "type": "registry:component",
914
+ "target": "@components/makersclaw/blocks/code-editor/code-editor.jsx"
915
+ },
916
+ {
917
+ "path": "registry/blocks/code-editor/codemirror.js",
918
+ "type": "registry:component",
919
+ "target": "@components/makersclaw/blocks/code-editor/codemirror.js"
920
+ },
921
+ {
922
+ "path": "registry/blocks/code-editor/theme.js",
923
+ "type": "registry:component",
924
+ "target": "@components/makersclaw/blocks/code-editor/theme.js"
925
+ },
926
+ {
927
+ "path": "registry/blocks/code-editor/sql.js",
928
+ "type": "registry:component",
929
+ "target": "@components/makersclaw/blocks/code-editor/sql.js"
930
+ },
931
+ {
932
+ "path": "registry/blocks/code-editor/json.js",
933
+ "type": "registry:component",
934
+ "target": "@components/makersclaw/blocks/code-editor/json.js"
935
+ },
936
+ {
937
+ "path": "registry/blocks/code-editor/text.js",
938
+ "type": "registry:component",
939
+ "target": "@components/makersclaw/blocks/code-editor/text.js"
940
+ },
941
+ {
942
+ "path": "registry/blocks/code-editor/README.md",
943
+ "type": "registry:file",
944
+ "target": "@components/makersclaw/blocks/code-editor/README.md"
945
+ }
946
+ ],
947
+ "categories": [
948
+ "code",
949
+ "editor",
950
+ "codemirror",
951
+ "sql",
952
+ "query",
953
+ "json",
954
+ "syntax highlighting",
955
+ "autocomplete",
956
+ "lint",
957
+ "monospace",
958
+ "console",
959
+ "script",
960
+ "config"
961
+ ],
962
+ "docs": "Installed to components/makersclaw/blocks/code-editor. Import: import { CodeEditor, useCodeEditor, LANGUAGES, SQL_DIALECTS, splitStatements, statementAt, sqlNamespace, checkJson, formatJson, stringifyJson, lineCol, offsetOf, normalizeDiagnostics } from \"@/components/makersclaw/blocks/code-editor\". Props and an example: components/makersclaw/blocks/code-editor/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
963
+ "meta": {
964
+ "makersclaw": {
965
+ "version": "0.3.0",
966
+ "useWhen": "A screen edits code or structured text: a SQL console, a query in a report, a JSON config or payload, a webhook body, a template, a script. json-editor and sql-console are built on it. Not for prose (doc-editor), one line of text (the kit's Input), or showing a diagram (diagram)."
967
+ }
968
+ }
969
+ },
970
+ {
971
+ "name": "comment-box",
972
+ "type": "registry:block",
973
+ "title": "CommentBox",
974
+ "description": "A minimal rich comment field (DocEditor in minimal mode): bold, italic, links and lists from the selection toolbar or markdown shortcuts, @mentions as chips, Cmd/Ctrl+Enter to post. It posts through an async onPost(doc) that answers { ok }, keeps the draft and says why when it fails, and clears when it lands. With `comments` it draws the thread above it: avatar, name, relative time, the rich body. Also exports the composer alone, the read-only body renderer and the timestamp.",
975
+ "registryDependencies": [
976
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json",
977
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/doc-editor.json"
978
+ ],
979
+ "dependencies": [],
980
+ "files": [
981
+ {
982
+ "path": "registry/blocks/comment-box/index.js",
983
+ "type": "registry:component",
984
+ "target": "@components/makersclaw/blocks/comment-box/index.js"
985
+ },
986
+ {
987
+ "path": "registry/blocks/comment-box/comment-box.jsx",
988
+ "type": "registry:component",
989
+ "target": "@components/makersclaw/blocks/comment-box/comment-box.jsx"
990
+ },
991
+ {
992
+ "path": "registry/blocks/comment-box/comment-body.jsx",
993
+ "type": "registry:component",
994
+ "target": "@components/makersclaw/blocks/comment-box/comment-body.jsx"
995
+ },
996
+ {
997
+ "path": "registry/blocks/comment-box/comment-time.jsx",
998
+ "type": "registry:component",
999
+ "target": "@components/makersclaw/blocks/comment-box/comment-time.jsx"
1000
+ },
1001
+ {
1002
+ "path": "registry/blocks/comment-box/README.md",
1003
+ "type": "registry:file",
1004
+ "target": "@components/makersclaw/blocks/comment-box/README.md"
1005
+ }
1006
+ ],
1007
+ "categories": [
1008
+ "comment",
1009
+ "comments",
1010
+ "thread",
1011
+ "reply",
1012
+ "mention",
1013
+ "composer",
1014
+ "discussion",
1015
+ "feedback",
1016
+ "rich text",
1017
+ "blocknote",
1018
+ "cmd enter"
1019
+ ],
1020
+ "docs": "Installed to components/makersclaw/blocks/comment-box. Import: import { CommentBox, CommentComposer, CommentBody, CommentTime } from \"@/components/makersclaw/blocks/comment-box\". Props and an example: components/makersclaw/blocks/comment-box/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
1021
+ "meta": {
1022
+ "makersclaw": {
1023
+ "version": "0.3.0",
1024
+ "useWhen": "People comment on something in the app: a task, a design, a document, an approval, a support ticket; a reply field with @mentions under a thread. Not dated notes kept on a record with edit and delete (record-notes), not a conversation with an assistant (chat), not a long document (doc-editor, doc-page)."
1025
+ }
1026
+ }
1027
+ },
1028
+ {
1029
+ "name": "contact-section",
1030
+ "type": "registry:block",
1031
+ "title": "Contact Section",
1032
+ "description": "A public \"contact us\" section: a form (name, email, message; optional phone, company, subject, a topic as chips or radios, a consent box) and/or the ways to reach you (email, phone, address, hours, offices). The form alone, beside an info panel (plain or filled), or with info cards above or beside it; an optional picture beside or behind the form. Validates in place, submits through an async onSubmit that returns { ok }, and shows the failure or a sent state.",
1033
+ "registryDependencies": [
1034
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json"
1035
+ ],
1036
+ "dependencies": [],
1037
+ "files": [
1038
+ {
1039
+ "path": "registry/blocks/contact-section/index.js",
1040
+ "type": "registry:component",
1041
+ "target": "@components/makersclaw/blocks/contact-section/index.js"
1042
+ },
1043
+ {
1044
+ "path": "registry/blocks/contact-section/contact-section.jsx",
1045
+ "type": "registry:component",
1046
+ "target": "@components/makersclaw/blocks/contact-section/contact-section.jsx"
1047
+ },
1048
+ {
1049
+ "path": "registry/blocks/contact-section/README.md",
1050
+ "type": "registry:file",
1051
+ "target": "@components/makersclaw/blocks/contact-section/README.md"
1052
+ }
1053
+ ],
1054
+ "categories": [
1055
+ "contact",
1056
+ "contact us",
1057
+ "form",
1058
+ "enquiry",
1059
+ "support",
1060
+ "get in touch",
1061
+ "email",
1062
+ "phone",
1063
+ "address",
1064
+ "offices",
1065
+ "marketing",
1066
+ "landing page",
1067
+ "lead"
1068
+ ],
1069
+ "docs": "Installed to components/makersclaw/blocks/contact-section. Import: import { ContactSection } from \"@/components/makersclaw/blocks/contact-section\". Props and an example: components/makersclaw/blocks/contact-section/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
1070
+ "meta": {
1071
+ "makersclaw": {
1072
+ "version": "0.3.0",
1073
+ "useWhen": "The contact page or contact section of a public site: sales enquiries, support requests, a studio's \"start a project\" form. Not for a signed-in user's support inbox or ticket thread, or a general-purpose record form (use a form of your own from the kit)."
1074
+ }
1075
+ }
1076
+ },
1077
+ {
1078
+ "name": "csv-import",
1079
+ "type": "registry:block",
1080
+ "title": "CsvImport",
1081
+ "description": "Import a CSV in three calm steps: drop a file (or paste text, or download a template), match each file column to a field with automatic matches and sample values (or, with no fields, name and type a new table's fields from guessed types), then review every row in an editable spreadsheet where cells that do not fit their type are marked red and fixed in place, delete rows or leave the bad ones out, and import through one async onImport that answers { ok }. Quoted commas and newlines, TSV and semicolon files, byte-order marks, 50,000 rows.",
1082
+ "registryDependencies": [
1083
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json",
1084
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/spreadsheet.json"
1085
+ ],
1086
+ "dependencies": [
1087
+ "papaparse@5.7.0"
1088
+ ],
1089
+ "files": [
1090
+ {
1091
+ "path": "registry/blocks/csv-import/index.js",
1092
+ "type": "registry:component",
1093
+ "target": "@components/makersclaw/blocks/csv-import/index.js"
1094
+ },
1095
+ {
1096
+ "path": "registry/blocks/csv-import/csv-import.jsx",
1097
+ "type": "registry:component",
1098
+ "target": "@components/makersclaw/blocks/csv-import/csv-import.jsx"
1099
+ },
1100
+ {
1101
+ "path": "registry/blocks/csv-import/import.js",
1102
+ "type": "registry:component",
1103
+ "target": "@components/makersclaw/blocks/csv-import/import.js"
1104
+ },
1105
+ {
1106
+ "path": "registry/blocks/csv-import/README.md",
1107
+ "type": "registry:file",
1108
+ "target": "@components/makersclaw/blocks/csv-import/README.md"
1109
+ }
1110
+ ],
1111
+ "categories": [
1112
+ "csv",
1113
+ "import",
1114
+ "upload",
1115
+ "tsv",
1116
+ "excel",
1117
+ "spreadsheet",
1118
+ "map columns",
1119
+ "field mapping",
1120
+ "validate",
1121
+ "bulk",
1122
+ "papaparse",
1123
+ "migration",
1124
+ "onboarding",
1125
+ "template"
1126
+ ],
1127
+ "docs": "Installed to components/makersclaw/blocks/csv-import. Import: import { CsvImport, parseCsvText, readCsvFile, headersOf, autoMatch, guessColumns, buildRows, cleanRow, templateCsv } from \"@/components/makersclaw/blocks/csv-import\". Props and an example: components/makersclaw/blocks/csv-import/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
1128
+ "meta": {
1129
+ "makersclaw": {
1130
+ "version": "0.3.0",
1131
+ "useWhen": "People bring records in from a spreadsheet or another tool: contacts, leads, products, a price list, an old CRM export, a first table for a new app. Built on spreadsheet. Not for uploading files to keep (file-upload) or for editing records already in the app (spreadsheet, data-table)."
1132
+ }
1133
+ }
1134
+ },
1135
+ {
1136
+ "name": "data-table",
1137
+ "type": "registry:block",
1138
+ "title": "Data table",
1139
+ "description": "Records as a table the founder can work: sort by a column (shift for several), search every column, faceted filters with counts, column visibility, row selection with a bulk-actions bar, a menu per row or its first actions as buttons in the row (async, with a spinner and a failure notice), row click, pagination with a page size, loading, empty and no-matches states, and cards on a phone. Opt in to expandable rows, row groups with subtotals, an aligned totals row, arrow-key navigation and a sticky first column. Client-side over rows, or driven by a server.",
1140
+ "registryDependencies": [
1141
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json"
1142
+ ],
1143
+ "dependencies": [],
1144
+ "files": [
1145
+ {
1146
+ "path": "registry/blocks/data-table/index.js",
1147
+ "type": "registry:component",
1148
+ "target": "@components/makersclaw/blocks/data-table/index.js"
1149
+ },
1150
+ {
1151
+ "path": "registry/blocks/data-table/data-table.jsx",
1152
+ "type": "registry:component",
1153
+ "target": "@components/makersclaw/blocks/data-table/data-table.jsx"
1154
+ },
1155
+ {
1156
+ "path": "registry/blocks/data-table/model.js",
1157
+ "type": "registry:component",
1158
+ "target": "@components/makersclaw/blocks/data-table/model.js"
1159
+ },
1160
+ {
1161
+ "path": "registry/blocks/data-table/README.md",
1162
+ "type": "registry:file",
1163
+ "target": "@components/makersclaw/blocks/data-table/README.md"
1164
+ }
1165
+ ],
1166
+ "categories": [
1167
+ "table",
1168
+ "data",
1169
+ "records",
1170
+ "list",
1171
+ "grid",
1172
+ "sort",
1173
+ "filter",
1174
+ "search",
1175
+ "facets",
1176
+ "select",
1177
+ "bulk",
1178
+ "pagination",
1179
+ "columns",
1180
+ "crud",
1181
+ "expand",
1182
+ "group",
1183
+ "subtotal",
1184
+ "totals",
1185
+ "keyboard",
1186
+ "sticky",
1187
+ "row actions",
1188
+ "inline actions",
1189
+ "orders"
1190
+ ],
1191
+ "docs": "Installed to components/makersclaw/blocks/data-table. Import: import { DataTable, useControllable, processRows, sortRows, searchRows, filterRows, facetOptions, nextSort, groupRows, groupValueOf } from \"@/components/makersclaw/blocks/data-table\". Props and an example: components/makersclaw/blocks/data-table/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
1192
+ "meta": {
1193
+ "makersclaw": {
1194
+ "version": "0.3.0",
1195
+ "useWhen": "A list of records to scan, find, sort and act on: invoices, customers, orders, leads, users, tickets. Not for records that move through stages (a board), a few key numbers (stats), or a grid of cards whose picture matters more than its columns."
1196
+ }
1197
+ }
1198
+ },
1199
+ {
1200
+ "name": "diagram",
1201
+ "type": "registry:block",
1202
+ "title": "Diagram",
1203
+ "description": "Draws Mermaid text (flowcharts, sequence, class, state, ER, Gantt, pie, mind maps, timelines, git graphs…) in the workspace theme: the tokens are read from the page at run time and handed to Mermaid, so nodes, lines, text and chart colours are the theme's and follow light/dark. Zoom and pan (buttons, Cmd/Ctrl+scroll, pinch, drag, keys), fit to view, a Source tab with line numbers, copy the source or the SVG, download SVG. A mistake shows its line and Mermaid's words, and keeps the last drawing that worked. On the server the frame shows the Mermaid text.",
1204
+ "registryDependencies": [
1205
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json"
1206
+ ],
1207
+ "dependencies": [
1208
+ "mermaid@12.0.0"
1209
+ ],
1210
+ "files": [
1211
+ {
1212
+ "path": "registry/blocks/diagram/index.js",
1213
+ "type": "registry:component",
1214
+ "target": "@components/makersclaw/blocks/diagram/index.js"
1215
+ },
1216
+ {
1217
+ "path": "registry/blocks/diagram/diagram.jsx",
1218
+ "type": "registry:component",
1219
+ "target": "@components/makersclaw/blocks/diagram/diagram.jsx"
1220
+ },
1221
+ {
1222
+ "path": "registry/blocks/diagram/mermaid.js",
1223
+ "type": "registry:component",
1224
+ "target": "@components/makersclaw/blocks/diagram/mermaid.js"
1225
+ },
1226
+ {
1227
+ "path": "registry/blocks/diagram/palette.js",
1228
+ "type": "registry:component",
1229
+ "target": "@components/makersclaw/blocks/diagram/palette.js"
1230
+ },
1231
+ {
1232
+ "path": "registry/blocks/diagram/source.js",
1233
+ "type": "registry:component",
1234
+ "target": "@components/makersclaw/blocks/diagram/source.js"
1235
+ },
1236
+ {
1237
+ "path": "registry/blocks/diagram/README.md",
1238
+ "type": "registry:file",
1239
+ "target": "@components/makersclaw/blocks/diagram/README.md"
1240
+ }
1241
+ ],
1242
+ "categories": [
1243
+ "diagram",
1244
+ "mermaid",
1245
+ "flowchart",
1246
+ "sequence diagram",
1247
+ "er diagram",
1248
+ "gantt",
1249
+ "mind map",
1250
+ "timeline",
1251
+ "state diagram",
1252
+ "class diagram",
1253
+ "svg",
1254
+ "zoom",
1255
+ "docs",
1256
+ "architecture"
1257
+ ],
1258
+ "docs": "Installed to components/makersclaw/blocks/diagram. Import: import { Diagram, diagramKind, diagramTitle, describeError, mermaidTheme } from \"@/components/makersclaw/blocks/diagram\". Props and an example: components/makersclaw/blocks/diagram/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
1259
+ "meta": {
1260
+ "makersclaw": {
1261
+ "version": "0.3.0",
1262
+ "useWhen": "A screen shows a diagram written as text: a process or decision flow an agent wrote, a sequence of API calls, a data model, a project timeline, an org or system sketch in docs, a mind map. Not for a board people arrange by hand (flow-canvas), freehand drawing (sketch-canvas), or charts of numbers (chart)."
1263
+ }
1264
+ }
1265
+ },
1266
+ {
1267
+ "name": "doc-editor",
1268
+ "type": "registry:block",
1269
+ "title": "DocEditor",
1270
+ "description": "A Notion-style rich-text editor (BlockNote) painted in the workspace theme: headings, lists, checklists, quotes, code, tables, images and dividers from a / menu or markdown shortcuts, a formatting toolbar, drag handles; @mentions and {merge fields} as inline chips; a minimal mode for comment boxes with Cmd/Ctrl+Enter to submit. The document is BlockNote JSON; helpers turn it into markdown or plain text and read its checklist, fields and mentions.",
1271
+ "registryDependencies": [
1272
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json"
1273
+ ],
1274
+ "dependencies": [
1275
+ "@blocknote/core@0.55.0",
1276
+ "@blocknote/react@0.55.0",
1277
+ "@blocknote/shadcn@0.55.0"
1278
+ ],
1279
+ "files": [
1280
+ {
1281
+ "path": "registry/blocks/doc-editor/index.js",
1282
+ "type": "registry:component",
1283
+ "target": "@components/makersclaw/blocks/doc-editor/index.js"
1284
+ },
1285
+ {
1286
+ "path": "registry/blocks/doc-editor/doc-editor.jsx",
1287
+ "type": "registry:component",
1288
+ "target": "@components/makersclaw/blocks/doc-editor/doc-editor.jsx"
1289
+ },
1290
+ {
1291
+ "path": "registry/blocks/doc-editor/schema.jsx",
1292
+ "type": "registry:component",
1293
+ "target": "@components/makersclaw/blocks/doc-editor/schema.jsx"
1294
+ },
1295
+ {
1296
+ "path": "registry/blocks/doc-editor/theme.js",
1297
+ "type": "registry:component",
1298
+ "target": "@components/makersclaw/blocks/doc-editor/theme.js"
1299
+ },
1300
+ {
1301
+ "path": "registry/blocks/doc-editor/doc.js",
1302
+ "type": "registry:component",
1303
+ "target": "@components/makersclaw/blocks/doc-editor/doc.js"
1304
+ },
1305
+ {
1306
+ "path": "registry/blocks/doc-editor/shadcn-classes.js",
1307
+ "type": "registry:component",
1308
+ "target": "@components/makersclaw/blocks/doc-editor/shadcn-classes.js"
1309
+ },
1310
+ {
1311
+ "path": "registry/blocks/doc-editor/README.md",
1312
+ "type": "registry:file",
1313
+ "target": "@components/makersclaw/blocks/doc-editor/README.md"
1314
+ }
1315
+ ],
1316
+ "categories": [
1317
+ "editor",
1318
+ "rich text",
1319
+ "document",
1320
+ "notion",
1321
+ "blocknote",
1322
+ "markdown",
1323
+ "notes",
1324
+ "wiki",
1325
+ "mention",
1326
+ "merge field",
1327
+ "slash",
1328
+ "comment",
1329
+ "checklist",
1330
+ "wysiwyg"
1331
+ ],
1332
+ "docs": "Installed to components/makersclaw/blocks/doc-editor. Import: import { DocEditor, useDocEditor, docToMarkdown, docToText, emptyDoc, isDocEmpty, docChecklist, setChecklistItem, docFields, docMentions } from \"@/components/makersclaw/blocks/doc-editor\". Props and an example: components/makersclaw/blocks/doc-editor/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
1333
+ "meta": {
1334
+ "makersclaw": {
1335
+ "version": "0.3.0",
1336
+ "useWhen": "A screen edits rich text: a wiki or doc page, notes on a record, a brief, meeting notes, an email body with merge fields, a comment field with mentions. The other text blocks (doc-page, record-notes, comment-box…) are built on it. Not for one line of plain text (the kit's Input) or a form of fields (record-form)."
1337
+ }
1338
+ }
1339
+ },
1340
+ {
1341
+ "name": "doc-page",
1342
+ "type": "registry:block",
1343
+ "title": "DocPage",
1344
+ "description": "A Notion-style page: an emoji icon (picked from a grid), a big plain title, and the rich-text editor under it (doc-editor: / menu, markdown shortcuts, @mentions). Edits autosave through an async onSave a moment after typing stops, with Saved / Saving… / Couldn't save + Retry in the top bar, Cmd/Ctrl+S to save now and unsent edits sent when the page is left. A read-only mode shows the same page with nothing to edit; slots for a breadcrumb, actions and a meta line.",
1345
+ "registryDependencies": [
1346
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json",
1347
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/doc-editor.json"
1348
+ ],
1349
+ "dependencies": [],
1350
+ "files": [
1351
+ {
1352
+ "path": "registry/blocks/doc-page/index.js",
1353
+ "type": "registry:component",
1354
+ "target": "@components/makersclaw/blocks/doc-page/index.js"
1355
+ },
1356
+ {
1357
+ "path": "registry/blocks/doc-page/doc-page.jsx",
1358
+ "type": "registry:component",
1359
+ "target": "@components/makersclaw/blocks/doc-page/doc-page.jsx"
1360
+ },
1361
+ {
1362
+ "path": "registry/blocks/doc-page/autosave.js",
1363
+ "type": "registry:component",
1364
+ "target": "@components/makersclaw/blocks/doc-page/autosave.js"
1365
+ },
1366
+ {
1367
+ "path": "registry/blocks/doc-page/README.md",
1368
+ "type": "registry:file",
1369
+ "target": "@components/makersclaw/blocks/doc-page/README.md"
1370
+ }
1371
+ ],
1372
+ "categories": [
1373
+ "page",
1374
+ "document",
1375
+ "doc",
1376
+ "wiki",
1377
+ "notion",
1378
+ "editor",
1379
+ "rich text",
1380
+ "autosave",
1381
+ "title",
1382
+ "icon",
1383
+ "emoji",
1384
+ "read-only",
1385
+ "handbook",
1386
+ "notes"
1387
+ ],
1388
+ "docs": "Installed to components/makersclaw/blocks/doc-page. Import: import { DocPage } from \"@/components/makersclaw/blocks/doc-page\". Props and an example: components/makersclaw/blocks/doc-page/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
1389
+ "meta": {
1390
+ "makersclaw": {
1391
+ "version": "0.3.0",
1392
+ "useWhen": "A screen is one document someone reads and writes: a wiki or handbook page, a playbook, a policy, a project page, a one-pager. The knowledge-base block puts a page tree beside it. Not for a short field of rich text inside a form (doc-editor), notes on a record (record-notes) or a comment (comment-box)."
1393
+ }
1394
+ }
1395
+ },
1396
+ {
1397
+ "name": "email-render",
1398
+ "type": "registry:block",
1399
+ "title": "EmailRender",
1400
+ "description": "Email HTML from React (react-email) in the workspace theme: a layout with the 600px column and the inbox preview line, a header brand line, a footer with the address and unsubscribe link, buttons, headings and text, and DocEmail, which draws a doc-editor document as email markup (lists, quotes, code, tables, images, merge fields). Email cannot read CSS variables, so resolveEmailTheme reads the tokens where the editor sits and hands the email plain hex values; renderEmail returns { html, text }, in the browser for a preview and on the server for a send.",
1401
+ "registryDependencies": [
1402
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json"
1403
+ ],
1404
+ "dependencies": [
1405
+ "@react-email/components@1.0.12",
1406
+ "@react-email/render@2.1.0"
1407
+ ],
1408
+ "files": [
1409
+ {
1410
+ "path": "registry/blocks/email-render/index.js",
1411
+ "type": "registry:component",
1412
+ "target": "@components/makersclaw/blocks/email-render/index.js"
1413
+ },
1414
+ {
1415
+ "path": "registry/blocks/email-render/email.jsx",
1416
+ "type": "registry:component",
1417
+ "target": "@components/makersclaw/blocks/email-render/email.jsx"
1418
+ },
1419
+ {
1420
+ "path": "registry/blocks/email-render/doc-email.jsx",
1421
+ "type": "registry:component",
1422
+ "target": "@components/makersclaw/blocks/email-render/doc-email.jsx"
1423
+ },
1424
+ {
1425
+ "path": "registry/blocks/email-render/render.js",
1426
+ "type": "registry:component",
1427
+ "target": "@components/makersclaw/blocks/email-render/render.js"
1428
+ },
1429
+ {
1430
+ "path": "registry/blocks/email-render/theme.js",
1431
+ "type": "registry:component",
1432
+ "target": "@components/makersclaw/blocks/email-render/theme.js"
1433
+ },
1434
+ {
1435
+ "path": "registry/blocks/email-render/README.md",
1436
+ "type": "registry:file",
1437
+ "target": "@components/makersclaw/blocks/email-render/README.md"
1438
+ }
1439
+ ],
1440
+ "categories": [
1441
+ "email",
1442
+ "html email",
1443
+ "react-email",
1444
+ "newsletter",
1445
+ "transactional email",
1446
+ "render",
1447
+ "template",
1448
+ "inbox",
1449
+ "preheader",
1450
+ "unsubscribe",
1451
+ "merge field",
1452
+ "plain text"
1453
+ ],
1454
+ "docs": "Installed to components/makersclaw/blocks/email-render. Import: import { EmailLayout, EmailCard, EmailHeader, EmailFooter, EmailButton, EmailHeading, EmailText, EmailDivider, EMAIL_WIDTH, DocEmail, fieldText, renderEmail, emailPlainText, EMAIL_TOKENS, EMAIL_FALLBACK, resolveEmailTheme, emailColor, emailFontStack, emailThemeKey, luminance, toHex } from \"@/components/makersclaw/blocks/email-render\". Props and an example: components/makersclaw/blocks/email-render/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
1455
+ "meta": {
1456
+ "makersclaw": {
1457
+ "version": "0.3.0",
1458
+ "useWhen": "Code that must produce an email's HTML: a newsletter, a transactional email (receipt, invite, reset), a digest, a notification, a test send from an editor. newsletter-builder is built on it. Not for writing the email (doc-editor or email-composer), sending it (your sender or the app's server) or a web page (page-builder)."
1459
+ }
1460
+ }
1461
+ },
1462
+ {
1463
+ "name": "faq",
1464
+ "type": "registry:block",
1465
+ "title": "FAQ",
1466
+ "description": "A marketing section of questions and answers: an accordion (one open at a time, or several), a grid of cards with optional icons, or a plain list with every answer shown; the title above or beside them, and an optional \"need more help?\" call to action. Loading and empty states.",
1467
+ "registryDependencies": [
1468
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json"
1469
+ ],
1470
+ "dependencies": [],
1471
+ "files": [
1472
+ {
1473
+ "path": "registry/blocks/faq/index.js",
1474
+ "type": "registry:component",
1475
+ "target": "@components/makersclaw/blocks/faq/index.js"
1476
+ },
1477
+ {
1478
+ "path": "registry/blocks/faq/faq.jsx",
1479
+ "type": "registry:component",
1480
+ "target": "@components/makersclaw/blocks/faq/faq.jsx"
1481
+ },
1482
+ {
1483
+ "path": "registry/blocks/faq/README.md",
1484
+ "type": "registry:file",
1485
+ "target": "@components/makersclaw/blocks/faq/README.md"
1486
+ }
1487
+ ],
1488
+ "categories": [
1489
+ "faq",
1490
+ "questions",
1491
+ "answers",
1492
+ "accordion",
1493
+ "help",
1494
+ "support",
1495
+ "marketing",
1496
+ "landing page",
1497
+ "pricing",
1498
+ "q&a"
1499
+ ],
1500
+ "docs": "Installed to components/makersclaw/blocks/faq. Import: import { Faq } from \"@/components/makersclaw/blocks/faq\". Props and an example: components/makersclaw/blocks/faq/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
1501
+ "meta": {
1502
+ "makersclaw": {
1503
+ "version": "0.3.0",
1504
+ "useWhen": "The questions section of a public page: a landing page, pricing, a help centre's front page, a product page. Not for a searchable help centre with articles and categories, or collapsible settings inside an app (use the kit's Accordion)."
1505
+ }
1506
+ }
1507
+ },
1508
+ {
1509
+ "name": "file-upload",
1510
+ "type": "registry:block",
1511
+ "title": "FileUpload",
1512
+ "description": "Files chosen or dropped, each uploaded through your async onUpload(file, { onProgress, signal }) with a progress bar, cancel while it runs, a retry when it fails and a remove once done. Variants: a list of file cards, one file at a time, Uploading/Finished sections, image thumbnails (one or two columns), and a profile picture.",
1513
+ "registryDependencies": [
1514
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json"
1515
+ ],
1516
+ "dependencies": [],
1517
+ "files": [
1518
+ {
1519
+ "path": "registry/blocks/file-upload/index.js",
1520
+ "type": "registry:component",
1521
+ "target": "@components/makersclaw/blocks/file-upload/index.js"
1522
+ },
1523
+ {
1524
+ "path": "registry/blocks/file-upload/file-upload.jsx",
1525
+ "type": "registry:component",
1526
+ "target": "@components/makersclaw/blocks/file-upload/file-upload.jsx"
1527
+ },
1528
+ {
1529
+ "path": "registry/blocks/file-upload/README.md",
1530
+ "type": "registry:file",
1531
+ "target": "@components/makersclaw/blocks/file-upload/README.md"
1532
+ }
1533
+ ],
1534
+ "categories": [
1535
+ "file",
1536
+ "upload",
1537
+ "dropzone",
1538
+ "drag",
1539
+ "drop",
1540
+ "attachment",
1541
+ "progress",
1542
+ "image",
1543
+ "photo",
1544
+ "avatar",
1545
+ "profile picture",
1546
+ "csv",
1547
+ "import",
1548
+ "retry"
1549
+ ],
1550
+ "docs": "Installed to components/makersclaw/blocks/file-upload. Import: import { FileUpload, formatSize, fileIcon } from \"@/components/makersclaw/blocks/file-upload\". Props and an example: components/makersclaw/blocks/file-upload/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
1551
+ "meta": {
1552
+ "makersclaw": {
1553
+ "version": "0.3.0",
1554
+ "useWhen": "A form or page takes files the app stores: attachments on a record, a CSV to import, product photos, a logo, a profile picture. Not for showing files already stored with no way to add (a table or list), and not for a chat message's attachments (the chat block's composer has those)."
1555
+ }
1556
+ }
1557
+ },
1558
+ {
1559
+ "name": "flow-canvas",
1560
+ "type": "registry:block",
1561
+ "title": "FlowCanvas",
1562
+ "description": "A Miro-like board (React Flow) in the workspace theme: sticky notes, shapes, text, frames, cards and images on an infinite dotted canvas; a tool rail with shortcuts, double-click for a sticky, drag-out connectors that re-route as cards move, labels on connectors, a floating toolbar over the selection, right-click menu, undo/redo, copy/paste, snap to grid, minimap, list view and presentation mode. The board is plain JSON; helpers turn it into text or markdown and lay it out. Other blocks add their own node types and rail tools.",
1563
+ "registryDependencies": [
1564
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json"
1565
+ ],
1566
+ "dependencies": [
1567
+ "@xyflow/react@12.11.6"
1568
+ ],
1569
+ "files": [
1570
+ {
1571
+ "path": "registry/blocks/flow-canvas/index.js",
1572
+ "type": "registry:component",
1573
+ "target": "@components/makersclaw/blocks/flow-canvas/index.js"
1574
+ },
1575
+ {
1576
+ "path": "registry/blocks/flow-canvas/flow-canvas.jsx",
1577
+ "type": "registry:component",
1578
+ "target": "@components/makersclaw/blocks/flow-canvas/flow-canvas.jsx"
1579
+ },
1580
+ {
1581
+ "path": "registry/blocks/flow-canvas/nodes.jsx",
1582
+ "type": "registry:component",
1583
+ "target": "@components/makersclaw/blocks/flow-canvas/nodes.jsx"
1584
+ },
1585
+ {
1586
+ "path": "registry/blocks/flow-canvas/edges.jsx",
1587
+ "type": "registry:component",
1588
+ "target": "@components/makersclaw/blocks/flow-canvas/edges.jsx"
1589
+ },
1590
+ {
1591
+ "path": "registry/blocks/flow-canvas/chrome.jsx",
1592
+ "type": "registry:component",
1593
+ "target": "@components/makersclaw/blocks/flow-canvas/chrome.jsx"
1594
+ },
1595
+ {
1596
+ "path": "registry/blocks/flow-canvas/context.jsx",
1597
+ "type": "registry:component",
1598
+ "target": "@components/makersclaw/blocks/flow-canvas/context.jsx"
1599
+ },
1600
+ {
1601
+ "path": "registry/blocks/flow-canvas/board.js",
1602
+ "type": "registry:component",
1603
+ "target": "@components/makersclaw/blocks/flow-canvas/board.js"
1604
+ },
1605
+ {
1606
+ "path": "registry/blocks/flow-canvas/theme.js",
1607
+ "type": "registry:component",
1608
+ "target": "@components/makersclaw/blocks/flow-canvas/theme.js"
1609
+ },
1610
+ {
1611
+ "path": "registry/blocks/flow-canvas/README.md",
1612
+ "type": "registry:file",
1613
+ "target": "@components/makersclaw/blocks/flow-canvas/README.md"
1614
+ }
1615
+ ],
1616
+ "categories": [
1617
+ "canvas",
1618
+ "whiteboard",
1619
+ "miro",
1620
+ "flowchart",
1621
+ "diagram",
1622
+ "sticky notes",
1623
+ "mind map",
1624
+ "react flow",
1625
+ "nodes",
1626
+ "connectors",
1627
+ "frames",
1628
+ "brainstorm",
1629
+ "infinite canvas",
1630
+ "org chart",
1631
+ "process map"
1632
+ ],
1633
+ "docs": "Installed to components/makersclaw/blocks/flow-canvas. Import: import { FlowCanvas, useFlowCanvas, useCanvas, NodeShell, NodeHandles, EditableText, Palette, StickySwatch, ColorDot, ShapeGlyph, colorClasses, emptyBoard, createNode, createEdge, cleanBoard, boardToText, boardToMarkdown, autoLayout, snapToCell, frameContents, historyReducer, starterTemplates } from \"@/components/makersclaw/blocks/flow-canvas\". Props and an example: components/makersclaw/blocks/flow-canvas/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
1634
+ "meta": {
1635
+ "makersclaw": {
1636
+ "version": "0.3.0",
1637
+ "useWhen": "A screen where people arrange things spatially and connect them: a brainstorm, a flowchart or process map, an account or org map, a journey map, a retro, a planning board. The canvas blocks (account-map, process-map, journey-map, idea-board) are built on it. Not for freehand drawing (sketch-canvas), records in stage columns (board), or a chart of numbers (chart)."
1638
+ }
1639
+ }
1640
+ },
1641
+ {
1642
+ "name": "footer",
1643
+ "type": "registry:block",
1644
+ "title": "Footer",
1645
+ "description": "A public site's footer: brand and tagline, link columns or one row of links, social buttons in the kit's brand marks (X, LinkedIn, GitHub, YouTube, Instagram, Facebook), and the legal line with its links; optionally a newsletter sign-up with consent (validates, saves through an async onSubscribe returning { ok }, shows the failure), a call to action, a large brand statement, language and currency selects, and a version badge. Simple, columns or centred.",
1646
+ "registryDependencies": [
1647
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json"
1648
+ ],
1649
+ "dependencies": [],
1650
+ "files": [
1651
+ {
1652
+ "path": "registry/blocks/footer/index.js",
1653
+ "type": "registry:component",
1654
+ "target": "@components/makersclaw/blocks/footer/index.js"
1655
+ },
1656
+ {
1657
+ "path": "registry/blocks/footer/footer.jsx",
1658
+ "type": "registry:component",
1659
+ "target": "@components/makersclaw/blocks/footer/footer.jsx"
1660
+ },
1661
+ {
1662
+ "path": "registry/blocks/footer/README.md",
1663
+ "type": "registry:file",
1664
+ "target": "@components/makersclaw/blocks/footer/README.md"
1665
+ }
1666
+ ],
1667
+ "categories": [
1668
+ "footer",
1669
+ "site footer",
1670
+ "links",
1671
+ "social",
1672
+ "newsletter",
1673
+ "subscribe",
1674
+ "legal",
1675
+ "copyright",
1676
+ "language",
1677
+ "currency",
1678
+ "marketing",
1679
+ "landing page"
1680
+ ],
1681
+ "docs": "Installed to components/makersclaw/blocks/footer. Import: import { Footer } from \"@/components/makersclaw/blocks/footer\". Props and an example: components/makersclaw/blocks/footer/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
1682
+ "meta": {
1683
+ "makersclaw": {
1684
+ "version": "0.3.0",
1685
+ "useWhen": "The bottom of every page of a public site: a marketing site, a docs hub, a shop, a customer portal. Not for an app's own status bar or a toolbar pinned to the bottom of a screen."
1686
+ }
1687
+ }
1688
+ },
1689
+ {
1690
+ "name": "gantt",
1691
+ "type": "registry:block",
1692
+ "title": "Gantt",
1693
+ "description": "The Gantt view of work, like Linear's timeline or TeamGantt: a task list on the left (groups that fold, subtasks indented under a summary bar) beside a timeline with a two-tier date header, bars coloured by project or status with their progress, milestones as diamonds, dependency arrows (red when the dates disagree), a today line and weekend shading. Drag a bar to move it, an edge to change its start or end, the dot past its end onto another bar to link them; tasks waiting on a moved one slide along while you drag and the finish date shows what the move cost. Zoom day, week, month or quarter; highlight the critical path; click an empty row to schedule an undated task; quick-add per group; arrow keys move a focused bar; search, filters, group and sort from the shared toolbar. One async onChange saves every change; failures roll back with a notice.",
1694
+ "registryDependencies": [
1695
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json",
1696
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/task-model.json"
1697
+ ],
1698
+ "dependencies": [],
1699
+ "files": [
1700
+ {
1701
+ "path": "registry/blocks/gantt/index.js",
1702
+ "type": "registry:component",
1703
+ "target": "@components/makersclaw/blocks/gantt/index.js"
1704
+ },
1705
+ {
1706
+ "path": "registry/blocks/gantt/gantt.jsx",
1707
+ "type": "registry:component",
1708
+ "target": "@components/makersclaw/blocks/gantt/gantt.jsx"
1709
+ },
1710
+ {
1711
+ "path": "registry/blocks/gantt/rows.jsx",
1712
+ "type": "registry:component",
1713
+ "target": "@components/makersclaw/blocks/gantt/rows.jsx"
1714
+ },
1715
+ {
1716
+ "path": "registry/blocks/gantt/schedule.js",
1717
+ "type": "registry:component",
1718
+ "target": "@components/makersclaw/blocks/gantt/schedule.js"
1719
+ },
1720
+ {
1721
+ "path": "registry/blocks/gantt/README.md",
1722
+ "type": "registry:file",
1723
+ "target": "@components/makersclaw/blocks/gantt/README.md"
1724
+ }
1725
+ ],
1726
+ "categories": [
1727
+ "gantt",
1728
+ "timeline",
1729
+ "schedule",
1730
+ "project plan",
1731
+ "roadmap",
1732
+ "dependencies",
1733
+ "critical path",
1734
+ "milestones",
1735
+ "teamgantt",
1736
+ "linear",
1737
+ "clickup",
1738
+ "ms project",
1739
+ "drag",
1740
+ "resize",
1741
+ "zoom",
1742
+ "tasks",
1743
+ "project management"
1744
+ ],
1745
+ "docs": "Installed to components/makersclaw/blocks/gantt. Import: import { Gantt, ZOOMS, ganttRange, headerTiers, planMove, afterBlockersPatch, isMilestone, summarySpan, arrowPath } from \"@/components/makersclaw/blocks/gantt\". Props and an example: components/makersclaw/blocks/gantt/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
1746
+ "meta": {
1747
+ "makersclaw": {
1748
+ "version": "0.3.0",
1749
+ "useWhen": "A screen that plans dated work and shows what waits on what: a launch plan, a project schedule, a content calendar with lead times, an office move, a release. Not for an undated to-do list (task-list), stage columns (board), or days on a month grid (calendar)."
1750
+ }
1751
+ }
1752
+ },
1753
+ {
1754
+ "name": "job-panel",
1755
+ "type": "registry:block",
1756
+ "title": "JobPanel",
1757
+ "description": "The panel that follows work the founder asked the app's agent for (useJob): each step's label as it runs, Stop, then done or the reason it stopped — and nothing on screen when no job runs. variant=\"generator\" wraps it in a prompt, the surface's options, Generate and a results shelf, with no model, provider or API key of its own.",
1758
+ "registryDependencies": [
1759
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json"
1760
+ ],
1761
+ "dependencies": [],
1762
+ "files": [
1763
+ {
1764
+ "path": "registry/blocks/job-panel/index.js",
1765
+ "type": "registry:component",
1766
+ "target": "@components/makersclaw/blocks/job-panel/index.js"
1767
+ },
1768
+ {
1769
+ "path": "registry/blocks/job-panel/job-panel.jsx",
1770
+ "type": "registry:component",
1771
+ "target": "@components/makersclaw/blocks/job-panel/job-panel.jsx"
1772
+ },
1773
+ {
1774
+ "path": "registry/blocks/job-panel/README.md",
1775
+ "type": "registry:file",
1776
+ "target": "@components/makersclaw/blocks/job-panel/README.md"
1777
+ }
1778
+ ],
1779
+ "categories": [
1780
+ "job",
1781
+ "agent",
1782
+ "generate",
1783
+ "progress",
1784
+ "steps",
1785
+ "running",
1786
+ "working",
1787
+ "commission",
1788
+ "ai",
1789
+ "stop",
1790
+ "status",
1791
+ "generator",
1792
+ "prompt",
1793
+ "results",
1794
+ "image",
1795
+ "studio"
1796
+ ],
1797
+ "docs": "Installed to components/makersclaw/blocks/job-panel. Import: import { JobPanel } from \"@/components/makersclaw/blocks/job-panel\". Props and an example: components/makersclaw/blocks/job-panel/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
1798
+ "meta": {
1799
+ "makersclaw": {
1800
+ "version": "0.3.0",
1801
+ "useWhen": "A surface has a verb that asks the agent to make or find something (\"Generate a launch plan\", \"Find 20 leads\", \"Plan next sprint\") and the founder should watch it happen where the result will land. variant=\"generator\" when the screen IS the place to ask: a prompt and a few options, the results under them (product photos, ad copy, names)."
1802
+ }
1803
+ }
1804
+ },
1805
+ {
1806
+ "name": "json-editor",
1807
+ "type": "registry:block",
1808
+ "title": "JsonEditor",
1809
+ "description": "A JSON editor in the workspace theme with two views of one value: a Tree of folding rows (edit a value or rename a key in place, add keys and items, change a type, copy a path, delete with Undo, arrow keys throughout) and Code (the code-editor block in JSON mode). Checked as it changes: the status line says what is wrong in plain words and which line, and clicking it goes there. A Format button, copy as pretty or one-line JSON, a friendly empty state with starters, and an optional Save that is optimistic and rolls back with a notice when it fails.",
1810
+ "registryDependencies": [
1811
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json",
1812
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/code-editor.json"
1813
+ ],
1814
+ "dependencies": [],
1815
+ "files": [
1816
+ {
1817
+ "path": "registry/blocks/json-editor/index.js",
1818
+ "type": "registry:component",
1819
+ "target": "@components/makersclaw/blocks/json-editor/index.js"
1820
+ },
1821
+ {
1822
+ "path": "registry/blocks/json-editor/json-editor.jsx",
1823
+ "type": "registry:component",
1824
+ "target": "@components/makersclaw/blocks/json-editor/json-editor.jsx"
1825
+ },
1826
+ {
1827
+ "path": "registry/blocks/json-editor/json-tree.jsx",
1828
+ "type": "registry:component",
1829
+ "target": "@components/makersclaw/blocks/json-editor/json-tree.jsx"
1830
+ },
1831
+ {
1832
+ "path": "registry/blocks/json-editor/tree.js",
1833
+ "type": "registry:component",
1834
+ "target": "@components/makersclaw/blocks/json-editor/tree.js"
1835
+ },
1836
+ {
1837
+ "path": "registry/blocks/json-editor/README.md",
1838
+ "type": "registry:file",
1839
+ "target": "@components/makersclaw/blocks/json-editor/README.md"
1840
+ }
1841
+ ],
1842
+ "categories": [
1843
+ "json",
1844
+ "editor",
1845
+ "tree",
1846
+ "jsonb",
1847
+ "config",
1848
+ "settings",
1849
+ "payload",
1850
+ "webhook",
1851
+ "metadata",
1852
+ "validate",
1853
+ "format",
1854
+ "inspector",
1855
+ "key value"
1856
+ ],
1857
+ "docs": "Installed to components/makersclaw/blocks/json-editor. Import: import { JsonEditor, JsonTree, typeOf, pathLabel, getAt, setAt, removeAt, insertAt, renameKey, flattenTree, expandedTo, summary, preview } from \"@/components/makersclaw/blocks/json-editor\". Props and an example: components/makersclaw/blocks/json-editor/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
1858
+ "meta": {
1859
+ "makersclaw": {
1860
+ "version": "0.3.0",
1861
+ "useWhen": "A screen edits or inspects a JSON value: an integration's settings, a webhook payload, a record's metadata or custom fields column (jsonb), an API response, feature flags. Not for editing SQL or other code (code-editor), a form of known fields (record-form), or a table of rows (data-table)."
1862
+ }
1863
+ }
1864
+ },
1865
+ {
1866
+ "name": "map",
1867
+ "type": "registry:block",
1868
+ "title": "MapView",
1869
+ "description": "An interactive map (MapLibre) in the workspace theme: places from rows as markers in token tones or your own kit content, clustered when they crowd, a popup with kit parts, a searchable list beside the map that shares one selection and hover with it, fit-to-all, zoom controls, draggable markers with an optimistic save, and tinted areas for territories. Light and dark tiles follow the workspace scheme (OpenFreeMap by default, no key); `styleUrl` swaps them. Helpers for bounds, clustering and distances run anywhere.",
1870
+ "registryDependencies": [
1871
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json"
1872
+ ],
1873
+ "dependencies": [
1874
+ "maplibre-gl@6.11.1",
1875
+ "react-map-gl@8.1.3"
1876
+ ],
1877
+ "files": [
1878
+ {
1879
+ "path": "registry/blocks/map/index.js",
1880
+ "type": "registry:component",
1881
+ "target": "@components/makersclaw/blocks/map/index.js"
1882
+ },
1883
+ {
1884
+ "path": "registry/blocks/map/map-view.jsx",
1885
+ "type": "registry:component",
1886
+ "target": "@components/makersclaw/blocks/map/map-view.jsx"
1887
+ },
1888
+ {
1889
+ "path": "registry/blocks/map/list.jsx",
1890
+ "type": "registry:component",
1891
+ "target": "@components/makersclaw/blocks/map/list.jsx"
1892
+ },
1893
+ {
1894
+ "path": "registry/blocks/map/marks.jsx",
1895
+ "type": "registry:component",
1896
+ "target": "@components/makersclaw/blocks/map/marks.jsx"
1897
+ },
1898
+ {
1899
+ "path": "registry/blocks/map/maplibre.js",
1900
+ "type": "registry:component",
1901
+ "target": "@components/makersclaw/blocks/map/maplibre.js"
1902
+ },
1903
+ {
1904
+ "path": "registry/blocks/map/theme.js",
1905
+ "type": "registry:component",
1906
+ "target": "@components/makersclaw/blocks/map/theme.js"
1907
+ },
1908
+ {
1909
+ "path": "registry/blocks/map/geo.js",
1910
+ "type": "registry:component",
1911
+ "target": "@components/makersclaw/blocks/map/geo.js"
1912
+ },
1913
+ {
1914
+ "path": "registry/blocks/map/README.md",
1915
+ "type": "registry:file",
1916
+ "target": "@components/makersclaw/blocks/map/README.md"
1917
+ }
1918
+ ],
1919
+ "categories": [
1920
+ "map",
1921
+ "maps",
1922
+ "location",
1923
+ "geo",
1924
+ "markers",
1925
+ "pins",
1926
+ "cluster",
1927
+ "maplibre",
1928
+ "openstreetmap",
1929
+ "store locator",
1930
+ "territory",
1931
+ "places",
1932
+ "coordinates",
1933
+ "latitude",
1934
+ "longitude",
1935
+ "distance"
1936
+ ],
1937
+ "docs": "Installed to components/makersclaw/blocks/map. Import: import { MapView, useMapView, MAP_STYLES, DEFAULT_STYLE, TONES, readPosition, boundsOf, inBounds, clusterPoints, zoomToReveal, distanceKm, formatDistance, sortByDistance } from \"@/components/makersclaw/blocks/map\". Props and an example: components/makersclaw/blocks/map/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
1938
+ "meta": {
1939
+ "makersclaw": {
1940
+ "version": "0.3.0",
1941
+ "useWhen": "A screen shows records that have a place: customers, stores, offices, field visits, deliveries, events, territories. The location-map and store-locator blocks and the Map view of work-views are built on it. Not for a chart of numbers by region (chart) or a hand-drawn diagram (sketch-canvas, flow-canvas)."
1942
+ }
1943
+ }
1944
+ },
1945
+ {
1946
+ "name": "menubar",
1947
+ "type": "registry:block",
1948
+ "title": "Menubar",
1949
+ "description": "A desktop app's menu bar — File, Edit, View, Help — each a menu of actions with shortcuts, checkboxes, radio groups and submenus; click to open, hover to switch, arrow keys along the bar; one menu button on a phone.",
1950
+ "registryDependencies": [
1951
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json"
1952
+ ],
1953
+ "dependencies": [],
1954
+ "files": [
1955
+ {
1956
+ "path": "registry/blocks/menubar/index.js",
1957
+ "type": "registry:component",
1958
+ "target": "@components/makersclaw/blocks/menubar/index.js"
1959
+ },
1960
+ {
1961
+ "path": "registry/blocks/menubar/menubar.jsx",
1962
+ "type": "registry:component",
1963
+ "target": "@components/makersclaw/blocks/menubar/menubar.jsx"
1964
+ },
1965
+ {
1966
+ "path": "registry/blocks/menubar/README.md",
1967
+ "type": "registry:file",
1968
+ "target": "@components/makersclaw/blocks/menubar/README.md"
1969
+ }
1970
+ ],
1971
+ "categories": [
1972
+ "menubar",
1973
+ "menu bar",
1974
+ "menu",
1975
+ "file menu",
1976
+ "edit menu",
1977
+ "view menu",
1978
+ "commands",
1979
+ "shortcuts",
1980
+ "editor",
1981
+ "toolbar",
1982
+ "desktop",
1983
+ "dropdown"
1984
+ ],
1985
+ "docs": "Installed to components/makersclaw/blocks/menubar. Import: import { Menubar } from \"@/components/makersclaw/blocks/menubar\". Props and an example: components/makersclaw/blocks/menubar/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
1986
+ "meta": {
1987
+ "makersclaw": {
1988
+ "version": "0.3.0",
1989
+ "useWhen": "A document-style tool with many commands grouped by kind: an editor, a canvas, a spreadsheet, an admin console that mimics a desktop app. Not for a site's navigation (a navigation menu) or one record's actions (a menu on the row)."
1990
+ }
1991
+ }
1992
+ },
1993
+ {
1994
+ "name": "mind-map",
1995
+ "type": "registry:block",
1996
+ "title": "MindMap",
1997
+ "description": "A mind map you can build without the mouse, on flow-canvas: a centre topic with main branches balanced on both sides, each branch a tidy auto-laid-out tree in its own chart hue. Tab adds a subtopic, Enter the next topic, typing renames, arrows walk the map, ⌘↑/⌘↓ fold a branch (a folded one shows how many it hides), ⌥↑/⌥↓ reorder, Shift+Tab moves up a level; drag a topic onto another to move its branch. Undo/redo, a colour per branch, an Outline view, copy a branch as an outline and paste an outline as topics, starter templates. The map is plain JSON (a tree of topics); saves are async callbacks answering { ok }.",
1998
+ "registryDependencies": [
1999
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json",
2000
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/flow-canvas.json"
2001
+ ],
2002
+ "dependencies": [],
2003
+ "files": [
2004
+ {
2005
+ "path": "registry/blocks/mind-map/index.js",
2006
+ "type": "registry:component",
2007
+ "target": "@components/makersclaw/blocks/mind-map/index.js"
2008
+ },
2009
+ {
2010
+ "path": "registry/blocks/mind-map/mind-map.jsx",
2011
+ "type": "registry:component",
2012
+ "target": "@components/makersclaw/blocks/mind-map/mind-map.jsx"
2013
+ },
2014
+ {
2015
+ "path": "registry/blocks/mind-map/topic.jsx",
2016
+ "type": "registry:component",
2017
+ "target": "@components/makersclaw/blocks/mind-map/topic.jsx"
2018
+ },
2019
+ {
2020
+ "path": "registry/blocks/mind-map/tree.js",
2021
+ "type": "registry:component",
2022
+ "target": "@components/makersclaw/blocks/mind-map/tree.js"
2023
+ },
2024
+ {
2025
+ "path": "registry/blocks/mind-map/README.md",
2026
+ "type": "registry:file",
2027
+ "target": "@components/makersclaw/blocks/mind-map/README.md"
2028
+ }
2029
+ ],
2030
+ "categories": [
2031
+ "mind map",
2032
+ "mindmap",
2033
+ "brainstorm",
2034
+ "tree",
2035
+ "outline",
2036
+ "ideas",
2037
+ "topics",
2038
+ "branches",
2039
+ "planning",
2040
+ "xmind",
2041
+ "mindnode",
2042
+ "keyboard",
2043
+ "canvas",
2044
+ "map"
2045
+ ],
2046
+ "docs": "Installed to components/makersclaw/blocks/mind-map. Import: import { MindMap, BRANCH_COLORS, normalizeMap, createTopic, findTopic, updateTopic, insertTopic, removeTopic, moveTopic, layoutMindMap, mindMapToBoard, mindMapToText, mindMapToMarkdown, outlineToMindMap, outlineToTopics, mindMapTemplates } from \"@/components/makersclaw/blocks/mind-map\". Props and an example: components/makersclaw/blocks/mind-map/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
2047
+ "meta": {
2048
+ "makersclaw": {
2049
+ "version": "0.3.0",
2050
+ "useWhen": "A screen for thinking in a tree: brainstorming around one idea, planning a project, breaking a goal down, notes from a meeting, a topic outline an agent drafted. Not for free-form boards with stickies and arrows (flow-canvas, whiteboard), a people hierarchy (org-chart), or a process with steps (process-map)."
2051
+ }
2052
+ }
2053
+ },
2054
+ {
2055
+ "name": "navigation-menu",
2056
+ "type": "registry:block",
2057
+ "title": "Navigation Menu",
2058
+ "description": "A site's top nav: plain links, and triggers that open a mega-menu panel of links (icon, title, one-line description) with an optional featured card; hover with intent, click, arrow keys and Escape; a menu button and a sheet of collapsible groups on a phone.",
2059
+ "registryDependencies": [
2060
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json"
2061
+ ],
2062
+ "dependencies": [],
2063
+ "files": [
2064
+ {
2065
+ "path": "registry/blocks/navigation-menu/index.js",
2066
+ "type": "registry:component",
2067
+ "target": "@components/makersclaw/blocks/navigation-menu/index.js"
2068
+ },
2069
+ {
2070
+ "path": "registry/blocks/navigation-menu/navigation-menu.jsx",
2071
+ "type": "registry:component",
2072
+ "target": "@components/makersclaw/blocks/navigation-menu/navigation-menu.jsx"
2073
+ },
2074
+ {
2075
+ "path": "registry/blocks/navigation-menu/README.md",
2076
+ "type": "registry:file",
2077
+ "target": "@components/makersclaw/blocks/navigation-menu/README.md"
2078
+ }
2079
+ ],
2080
+ "categories": [
2081
+ "navigation",
2082
+ "nav",
2083
+ "menu",
2084
+ "mega-menu",
2085
+ "header",
2086
+ "navbar",
2087
+ "top nav",
2088
+ "dropdown",
2089
+ "links",
2090
+ "site",
2091
+ "marketing",
2092
+ "mobile menu"
2093
+ ],
2094
+ "docs": "Installed to components/makersclaw/blocks/navigation-menu. Import: import { NavigationMenu } from \"@/components/makersclaw/blocks/navigation-menu\". Props and an example: components/makersclaw/blocks/navigation-menu/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
2095
+ "meta": {
2096
+ "makersclaw": {
2097
+ "version": "0.3.0",
2098
+ "useWhen": "The header of a public-facing site or a product with many destinations: a marketing site, a docs hub, a customer portal. Not for an app's own sidebar or a row of tabs that switch views on one page."
2099
+ }
2100
+ }
2101
+ },
2102
+ {
2103
+ "name": "order-detail",
2104
+ "type": "registry:block",
2105
+ "title": "OrderDetail",
2106
+ "description": "One placed order on a page: its number, status and date, the items, the delivery address and contact, a timeline from placed to delivered (Steps), and the totals, with Track order and Invoice actions. Loading, error and not-found states built in.",
2107
+ "registryDependencies": [
2108
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json"
2109
+ ],
2110
+ "dependencies": [],
2111
+ "files": [
2112
+ {
2113
+ "path": "registry/blocks/order-detail/index.js",
2114
+ "type": "registry:component",
2115
+ "target": "@components/makersclaw/blocks/order-detail/index.js"
2116
+ },
2117
+ {
2118
+ "path": "registry/blocks/order-detail/order-detail.jsx",
2119
+ "type": "registry:component",
2120
+ "target": "@components/makersclaw/blocks/order-detail/order-detail.jsx"
2121
+ },
2122
+ {
2123
+ "path": "registry/blocks/order-detail/README.md",
2124
+ "type": "registry:file",
2125
+ "target": "@components/makersclaw/blocks/order-detail/README.md"
2126
+ }
2127
+ ],
2128
+ "categories": [
2129
+ "order",
2130
+ "order detail",
2131
+ "purchase",
2132
+ "receipt",
2133
+ "tracking",
2134
+ "delivery",
2135
+ "shipping",
2136
+ "timeline",
2137
+ "status",
2138
+ "invoice",
2139
+ "ecommerce",
2140
+ "commerce",
2141
+ "shop",
2142
+ "store"
2143
+ ],
2144
+ "docs": "Installed to components/makersclaw/blocks/order-detail. Import: import { OrderDetail } from \"@/components/makersclaw/blocks/order-detail\". Props and an example: components/makersclaw/blocks/order-detail/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
2145
+ "meta": {
2146
+ "makersclaw": {
2147
+ "version": "0.3.0",
2148
+ "useWhen": "A buyer or an operator opens one order: \"where is my order\", an order confirmation page, a support view of a purchase. Not for a list of orders (data-table) or for a basket before paying (cart)."
2149
+ }
2150
+ }
2151
+ },
2152
+ {
2153
+ "name": "org-chart",
2154
+ "type": "registry:block",
2155
+ "title": "OrgChart",
2156
+ "description": "An org chart on flow-canvas: people laid out top down from a flat list (each names a manager), managers centred over their teams, a team with no managers in it as a compact column, every line drawn for you. Teams fold past the first levels behind a chip that says how many are hidden; search finds a person, unfolds the way to them, centres them and lights their chain of managers; a card opens a details sheet (reports to, direct reports, team size). Colour strips and a legend by department. Optional: drag a card onto another to change someone's manager (async { ok }, optimistic, with Undo). Keyboard throughout.",
2157
+ "registryDependencies": [
2158
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json",
2159
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/flow-canvas.json"
2160
+ ],
2161
+ "dependencies": [],
2162
+ "files": [
2163
+ {
2164
+ "path": "registry/blocks/org-chart/index.js",
2165
+ "type": "registry:component",
2166
+ "target": "@components/makersclaw/blocks/org-chart/index.js"
2167
+ },
2168
+ {
2169
+ "path": "registry/blocks/org-chart/org-chart.jsx",
2170
+ "type": "registry:component",
2171
+ "target": "@components/makersclaw/blocks/org-chart/org-chart.jsx"
2172
+ },
2173
+ {
2174
+ "path": "registry/blocks/org-chart/person.jsx",
2175
+ "type": "registry:component",
2176
+ "target": "@components/makersclaw/blocks/org-chart/person.jsx"
2177
+ },
2178
+ {
2179
+ "path": "registry/blocks/org-chart/org.js",
2180
+ "type": "registry:component",
2181
+ "target": "@components/makersclaw/blocks/org-chart/org.js"
2182
+ },
2183
+ {
2184
+ "path": "registry/blocks/org-chart/README.md",
2185
+ "type": "registry:file",
2186
+ "target": "@components/makersclaw/blocks/org-chart/README.md"
2187
+ }
2188
+ ],
2189
+ "categories": [
2190
+ "org chart",
2191
+ "organization",
2192
+ "organisation",
2193
+ "hierarchy",
2194
+ "reporting line",
2195
+ "manager",
2196
+ "team",
2197
+ "people",
2198
+ "directory",
2199
+ "tree",
2200
+ "reports",
2201
+ "reorg",
2202
+ "canvas"
2203
+ ],
2204
+ "docs": "Installed to components/makersclaw/blocks/org-chart. Import: import { OrgChart, buildOrg, layoutOrg, chainOf, orgToText, groupHues } from \"@/components/makersclaw/blocks/org-chart\". Props and an example: components/makersclaw/blocks/org-chart/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
2205
+ "meta": {
2206
+ "makersclaw": {
2207
+ "version": "0.3.0",
2208
+ "useWhen": "A screen that shows who reports to whom: a team or company directory's chart, an account's buying committee as a hierarchy, a reporting line to check before a reorg. Not for a free-form map of people and notes (account-map, flow-canvas), a plain list of people (data-table), or a tree of ideas (mind-map)."
2209
+ }
2210
+ }
2211
+ },
2212
+ {
2213
+ "name": "page-builder",
2214
+ "type": "registry:block",
2215
+ "title": "PageBuilder",
2216
+ "description": "A visual page editor (GrapesJS core) in the workspace theme: our own clean panels instead of GrapesJS's chrome — an Add panel of section and basic blocks (click or drag), a Layers tree, a Design panel limited to theme-token choices (colours, type, spacing, width, corners, borders), a device toggle (desktop, tablet, phone), undo/redo, preview, and a friendly empty state with starter templates. Pages style with CSS variables, so a saved page repaints with the theme. Saves out as { html, css, project }; PageView shows a saved page in an app.",
2217
+ "registryDependencies": [
2218
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json"
2219
+ ],
2220
+ "dependencies": [
2221
+ "grapesjs@0.22.16",
2222
+ "@grapesjs/react@2.0.0"
2223
+ ],
2224
+ "files": [
2225
+ {
2226
+ "path": "registry/blocks/page-builder/index.js",
2227
+ "type": "registry:component",
2228
+ "target": "@components/makersclaw/blocks/page-builder/index.js"
2229
+ },
2230
+ {
2231
+ "path": "registry/blocks/page-builder/page-builder.jsx",
2232
+ "type": "registry:component",
2233
+ "target": "@components/makersclaw/blocks/page-builder/page-builder.jsx"
2234
+ },
2235
+ {
2236
+ "path": "registry/blocks/page-builder/panels.jsx",
2237
+ "type": "registry:component",
2238
+ "target": "@components/makersclaw/blocks/page-builder/panels.jsx"
2239
+ },
2240
+ {
2241
+ "path": "registry/blocks/page-builder/page-view.jsx",
2242
+ "type": "registry:component",
2243
+ "target": "@components/makersclaw/blocks/page-builder/page-view.jsx"
2244
+ },
2245
+ {
2246
+ "path": "registry/blocks/page-builder/thumbs.jsx",
2247
+ "type": "registry:component",
2248
+ "target": "@components/makersclaw/blocks/page-builder/thumbs.jsx"
2249
+ },
2250
+ {
2251
+ "path": "registry/blocks/page-builder/grapes.js",
2252
+ "type": "registry:component",
2253
+ "target": "@components/makersclaw/blocks/page-builder/grapes.js"
2254
+ },
2255
+ {
2256
+ "path": "registry/blocks/page-builder/theme.js",
2257
+ "type": "registry:component",
2258
+ "target": "@components/makersclaw/blocks/page-builder/theme.js"
2259
+ },
2260
+ {
2261
+ "path": "registry/blocks/page-builder/tokens.js",
2262
+ "type": "registry:component",
2263
+ "target": "@components/makersclaw/blocks/page-builder/tokens.js"
2264
+ },
2265
+ {
2266
+ "path": "registry/blocks/page-builder/sections.js",
2267
+ "type": "registry:component",
2268
+ "target": "@components/makersclaw/blocks/page-builder/sections.js"
2269
+ },
2270
+ {
2271
+ "path": "registry/blocks/page-builder/page.js",
2272
+ "type": "registry:component",
2273
+ "target": "@components/makersclaw/blocks/page-builder/page.js"
2274
+ },
2275
+ {
2276
+ "path": "registry/blocks/page-builder/README.md",
2277
+ "type": "registry:file",
2278
+ "target": "@components/makersclaw/blocks/page-builder/README.md"
2279
+ }
2280
+ ],
2281
+ "categories": [
2282
+ "page builder",
2283
+ "website builder",
2284
+ "landing page",
2285
+ "grapesjs",
2286
+ "visual editor",
2287
+ "drag and drop",
2288
+ "sections",
2289
+ "templates",
2290
+ "wysiwyg",
2291
+ "html",
2292
+ "css",
2293
+ "no-code",
2294
+ "web page",
2295
+ "layers"
2296
+ ],
2297
+ "docs": "Installed to components/makersclaw/blocks/page-builder. Import: import { PageBuilder, usePageBuilder, readPage, DEVICES, PageView, standaloneDocument, BlockThumb, PageThumb, THUMB_NAMES, BASE_CSS, SECTION_BLOCKS, BASIC_BLOCKS, STARTER_TEMPLATES, STYLE_GROUPS, COLOR_TOKENS, groupsFor, currentOption, patchFor, tokenCss, fontFaceCss, fontLinks, PAGE_BASE_CSS, emptyPage, isPageEmpty, cleanHtml, cleanCss, normalizeBlock, templatePage, pageDocument, projectSections } from \"@/components/makersclaw/blocks/page-builder\". Props and an example: components/makersclaw/blocks/page-builder/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
2298
+ "meta": {
2299
+ "makersclaw": {
2300
+ "version": "0.3.0",
2301
+ "useWhen": "A screen where someone builds or edits a web page visually: a landing page, a waitlist or launch page, a simple site section, an announcement page. landing-builder is built on it (section templates, publishing). Not for rich text in a document (doc-editor), an email body (newsletter-builder), a form of fields (record-form) or a freeform drawing (sketch-canvas)."
2302
+ }
2303
+ }
2304
+ },
2305
+ {
2306
+ "name": "payment-methods",
2307
+ "type": "registry:block",
2308
+ "title": "PaymentMethods",
2309
+ "description": "A customer's SAVED payment methods as cards: brand, last four digits, expiry (expired and expiring soon flagged) and a Default badge; Make default, Remove behind a Confirm, and Add, which hands off to the payment provider (Paddle). Never a card-number field. Empty, loading and error states built in.",
2310
+ "registryDependencies": [
2311
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json"
2312
+ ],
2313
+ "dependencies": [],
2314
+ "files": [
2315
+ {
2316
+ "path": "registry/blocks/payment-methods/index.js",
2317
+ "type": "registry:component",
2318
+ "target": "@components/makersclaw/blocks/payment-methods/index.js"
2319
+ },
2320
+ {
2321
+ "path": "registry/blocks/payment-methods/payment-methods.jsx",
2322
+ "type": "registry:component",
2323
+ "target": "@components/makersclaw/blocks/payment-methods/payment-methods.jsx"
2324
+ },
2325
+ {
2326
+ "path": "registry/blocks/payment-methods/README.md",
2327
+ "type": "registry:file",
2328
+ "target": "@components/makersclaw/blocks/payment-methods/README.md"
2329
+ }
2330
+ ],
2331
+ "categories": [
2332
+ "payment",
2333
+ "payment methods",
2334
+ "cards",
2335
+ "credit card",
2336
+ "wallet",
2337
+ "billing",
2338
+ "default card",
2339
+ "saved cards",
2340
+ "paddle",
2341
+ "account",
2342
+ "commerce"
2343
+ ],
2344
+ "docs": "Installed to components/makersclaw/blocks/payment-methods. Import: import { PaymentMethods } from \"@/components/makersclaw/blocks/payment-methods\". Props and an example: components/makersclaw/blocks/payment-methods/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
2345
+ "meta": {
2346
+ "makersclaw": {
2347
+ "version": "0.3.0",
2348
+ "useWhen": "A billing or account page where a customer manages the cards and wallets on file. Not for taking a payment (cart's checkout step hands off to Paddle) or for a list of charges (transaction-list)."
2349
+ }
2350
+ }
2351
+ },
2352
+ {
2353
+ "name": "pdf-document",
2354
+ "type": "registry:block",
2355
+ "title": "PdfDocument",
2356
+ "description": "Make PDFs in the workspace theme (@react-pdf/renderer): a small set of document primitives (headings, text, label/value fields, tables with repeating headers, totals, callouts, badges, rows and columns) and a clean ready-made quote / estimate / invoice layout, rendered in the browser to a Blob with renderPdf(doc). The theme's colours are read from the page when the PDF is made (a PDF cannot read CSS variables): white paper, near-black ink and the theme's primary as the one accent. Also a live-preview hook (usePdf), a Download PDF button, and the quote sums and money formatting as plain functions.",
2357
+ "registryDependencies": [
2358
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json"
2359
+ ],
2360
+ "dependencies": [
2361
+ "@react-pdf/renderer@4.9.0"
2362
+ ],
2363
+ "files": [
2364
+ {
2365
+ "path": "registry/blocks/pdf-document/index.js",
2366
+ "type": "registry:component",
2367
+ "target": "@components/makersclaw/blocks/pdf-document/index.js"
2368
+ },
2369
+ {
2370
+ "path": "registry/blocks/pdf-document/pdf-document.jsx",
2371
+ "type": "registry:component",
2372
+ "target": "@components/makersclaw/blocks/pdf-document/pdf-document.jsx"
2373
+ },
2374
+ {
2375
+ "path": "registry/blocks/pdf-document/primitives.jsx",
2376
+ "type": "registry:component",
2377
+ "target": "@components/makersclaw/blocks/pdf-document/primitives.jsx"
2378
+ },
2379
+ {
2380
+ "path": "registry/blocks/pdf-document/quote.jsx",
2381
+ "type": "registry:component",
2382
+ "target": "@components/makersclaw/blocks/pdf-document/quote.jsx"
2383
+ },
2384
+ {
2385
+ "path": "registry/blocks/pdf-document/money.js",
2386
+ "type": "registry:component",
2387
+ "target": "@components/makersclaw/blocks/pdf-document/money.js"
2388
+ },
2389
+ {
2390
+ "path": "registry/blocks/pdf-document/theme.js",
2391
+ "type": "registry:component",
2392
+ "target": "@components/makersclaw/blocks/pdf-document/theme.js"
2393
+ },
2394
+ {
2395
+ "path": "registry/blocks/pdf-document/README.md",
2396
+ "type": "registry:file",
2397
+ "target": "@components/makersclaw/blocks/pdf-document/README.md"
2398
+ }
2399
+ ],
2400
+ "categories": [
2401
+ "pdf",
2402
+ "document",
2403
+ "invoice",
2404
+ "quote",
2405
+ "estimate",
2406
+ "receipt",
2407
+ "print",
2408
+ "download",
2409
+ "export",
2410
+ "react-pdf",
2411
+ "billing",
2412
+ "proposal",
2413
+ "statement"
2414
+ ],
2415
+ "docs": "Installed to components/makersclaw/blocks/pdf-document. Import: import { renderPdf, usePdf, PdfDownloadButton, downloadBlob, registerPdfFont, PdfDocument, PdfStack, PdfRow, PdfCol, PdfText, PdfHeading, PdfLabel, PdfField, PdfDivider, PdfCallout, PdfBadge, PdfTable, PdfTotals, PdfLines, PdfView, PdfRawText, PdfImage, PdfLink, PdfThemeProvider, usePdfTheme, PDF_TYPE, QuoteDocument, quoteTotals, lineAmount, round2, formatMoney, formatQuantity, formatPdfDate, resolvePdfTheme, buildPdfTheme, DEFAULT_PDF_THEME } from \"@/components/makersclaw/blocks/pdf-document\". Props and an example: components/makersclaw/blocks/pdf-document/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
2416
+ "meta": {
2417
+ "makersclaw": {
2418
+ "version": "0.3.0",
2419
+ "useWhen": "A screen produces a document someone downloads, prints, emails or signs: a quote, an invoice, an estimate, a receipt, a statement, a certificate, a one-page report. The quote-builder and proposal blocks print through it. Not for showing an existing PDF on screen (pdf-viewer) or for a web page people read in the app (doc-page)."
2420
+ }
2421
+ }
2422
+ },
2423
+ {
2424
+ "name": "pdf-viewer",
2425
+ "type": "registry:block",
2426
+ "title": "PdfViewer",
2427
+ "description": "A PDF on screen, in the workspace theme (react-pdf + pdf.js): pages in one smooth scrolling column (only the pages near the window are drawn, so long files stay fast), a thumbnail rail, a page box, zoom by steps, fit width, fit page and Ctrl/⌘ + wheel or pinch, find in the text with every match marked, and highlights with notes: select text, choose Highlight or Add note, and it saves through onHighlight; notes are edited in a side list, colours are theme tokens, delete has Undo. Opens a URL, a Blob or bytes; password-protected files ask for the password; a narrow viewer turns its rails into sheets. The pdf.js worker ships with the app (no public/ file, no CDN).",
2428
+ "registryDependencies": [
2429
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json"
2430
+ ],
2431
+ "dependencies": [
2432
+ "react-pdf@11.0.0",
2433
+ "pdfjs-dist@6.3.289"
2434
+ ],
2435
+ "files": [
2436
+ {
2437
+ "path": "registry/blocks/pdf-viewer/index.js",
2438
+ "type": "registry:component",
2439
+ "target": "@components/makersclaw/blocks/pdf-viewer/index.js"
2440
+ },
2441
+ {
2442
+ "path": "registry/blocks/pdf-viewer/pdf-viewer.jsx",
2443
+ "type": "registry:component",
2444
+ "target": "@components/makersclaw/blocks/pdf-viewer/pdf-viewer.jsx"
2445
+ },
2446
+ {
2447
+ "path": "registry/blocks/pdf-viewer/notes.jsx",
2448
+ "type": "registry:component",
2449
+ "target": "@components/makersclaw/blocks/pdf-viewer/notes.jsx"
2450
+ },
2451
+ {
2452
+ "path": "registry/blocks/pdf-viewer/helpers.js",
2453
+ "type": "registry:component",
2454
+ "target": "@components/makersclaw/blocks/pdf-viewer/helpers.js"
2455
+ },
2456
+ {
2457
+ "path": "registry/blocks/pdf-viewer/pdfjs.js",
2458
+ "type": "registry:component",
2459
+ "target": "@components/makersclaw/blocks/pdf-viewer/pdfjs.js"
2460
+ },
2461
+ {
2462
+ "path": "registry/blocks/pdf-viewer/ssr-shim.js",
2463
+ "type": "registry:component",
2464
+ "target": "@components/makersclaw/blocks/pdf-viewer/ssr-shim.js"
2465
+ },
2466
+ {
2467
+ "path": "registry/blocks/pdf-viewer/ssr-shim-end.js",
2468
+ "type": "registry:component",
2469
+ "target": "@components/makersclaw/blocks/pdf-viewer/ssr-shim-end.js"
2470
+ },
2471
+ {
2472
+ "path": "registry/blocks/pdf-viewer/README.md",
2473
+ "type": "registry:file",
2474
+ "target": "@components/makersclaw/blocks/pdf-viewer/README.md"
2475
+ }
2476
+ ],
2477
+ "categories": [
2478
+ "pdf",
2479
+ "viewer",
2480
+ "document",
2481
+ "reader",
2482
+ "preview",
2483
+ "highlight",
2484
+ "annotate",
2485
+ "notes",
2486
+ "search",
2487
+ "thumbnails",
2488
+ "zoom",
2489
+ "contract",
2490
+ "proposal",
2491
+ "react-pdf",
2492
+ "pdfjs"
2493
+ ],
2494
+ "docs": "Installed to components/makersclaw/blocks/pdf-viewer. Import: import { PdfViewer, usePdfViewer, HIGHLIGHT_TONES, findMatches, toPageRects, mergeRects, sortHighlights, highlightAt, fitScale, ZOOM_STEPS } from \"@/components/makersclaw/blocks/pdf-viewer\". Props and an example: components/makersclaw/blocks/pdf-viewer/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
2495
+ "meta": {
2496
+ "makersclaw": {
2497
+ "version": "0.3.0",
2498
+ "useWhen": "A screen shows an existing PDF: a contract or proposal to review, a signed agreement, an uploaded invoice or statement, a report, a generated quote before it is sent; or people mark up a PDF and leave notes on passages. Pair it with pdf-document to preview a PDF you make. Not for making PDFs (pdf-document), for rich text people edit (doc-editor), or for marking up a screenshot (annotate)."
2499
+ }
2500
+ }
2501
+ },
2502
+ {
2503
+ "name": "product-detail",
2504
+ "type": "registry:block",
2505
+ "title": "Product detail",
2506
+ "description": "One product on its own page: pictures (thumbnails, a side rail, a carousel, a tall stack, or one scene with the buy box floating over it), brand, name, price with the old price struck through, star rating and review count, options (sizes as a segmented row, colours as swatches, long lists as a select, plans as cards with their own price), a quantity control, add to cart through an async callback that may fail, buy now, save to favourites, perks, and details in an accordion or tabs. Loading, error, not-found and sold-out states.",
2507
+ "registryDependencies": [
2508
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json"
2509
+ ],
2510
+ "dependencies": [],
2511
+ "files": [
2512
+ {
2513
+ "path": "registry/blocks/product-detail/index.js",
2514
+ "type": "registry:component",
2515
+ "target": "@components/makersclaw/blocks/product-detail/index.js"
2516
+ },
2517
+ {
2518
+ "path": "registry/blocks/product-detail/product-detail.jsx",
2519
+ "type": "registry:component",
2520
+ "target": "@components/makersclaw/blocks/product-detail/product-detail.jsx"
2521
+ },
2522
+ {
2523
+ "path": "registry/blocks/product-detail/product-media.jsx",
2524
+ "type": "registry:component",
2525
+ "target": "@components/makersclaw/blocks/product-detail/product-media.jsx"
2526
+ },
2527
+ {
2528
+ "path": "registry/blocks/product-detail/product-options.jsx",
2529
+ "type": "registry:component",
2530
+ "target": "@components/makersclaw/blocks/product-detail/product-options.jsx"
2531
+ },
2532
+ {
2533
+ "path": "registry/blocks/product-detail/price.jsx",
2534
+ "type": "registry:component",
2535
+ "target": "@components/makersclaw/blocks/product-detail/price.jsx"
2536
+ },
2537
+ {
2538
+ "path": "registry/blocks/product-detail/README.md",
2539
+ "type": "registry:file",
2540
+ "target": "@components/makersclaw/blocks/product-detail/README.md"
2541
+ }
2542
+ ],
2543
+ "categories": [
2544
+ "product",
2545
+ "shop",
2546
+ "store",
2547
+ "ecommerce",
2548
+ "commerce",
2549
+ "buy",
2550
+ "add to cart",
2551
+ "price",
2552
+ "rating",
2553
+ "size",
2554
+ "colour",
2555
+ "variant",
2556
+ "quantity",
2557
+ "gallery",
2558
+ "carousel",
2559
+ "plans",
2560
+ "favourite",
2561
+ "pdp"
2562
+ ],
2563
+ "docs": "Installed to components/makersclaw/blocks/product-detail. Import: import { ProductDetail, ProductMedia, OptionPicker, QuantityControl, Price, formatPrice, cartLine } from \"@/components/makersclaw/blocks/product-detail\". Props and an example: components/makersclaw/blocks/product-detail/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
2564
+ "meta": {
2565
+ "makersclaw": {
2566
+ "version": "0.3.0",
2567
+ "useWhen": "Selling one thing a customer looks at before buying: a product page, a template or digital download with plans, a merch item, a booking add-on. Not for many products at once (product-grid), the cart itself (cart), or a plan comparison table."
2568
+ }
2569
+ }
2570
+ },
2571
+ {
2572
+ "name": "product-grid",
2573
+ "type": "registry:block",
2574
+ "title": "Product grid",
2575
+ "description": "Products as cards in a grid: picture, badge, favourite heart, brand, name, star rating, price with the old one struck through, and a quick add to cart through an async callback that may fail (\"Choose options\" when the product has sizes or colours). Facet filters as selects that also match a product's option values, a sort, a live count, a lead tile that takes a double cell (a picture or a muted looping video), and a promo card for collection tiles. Loading, error, empty and no-matches states; two columns on a phone.",
2576
+ "registryDependencies": [
2577
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json",
2578
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/product-detail.json"
2579
+ ],
2580
+ "dependencies": [],
2581
+ "files": [
2582
+ {
2583
+ "path": "registry/blocks/product-grid/index.js",
2584
+ "type": "registry:component",
2585
+ "target": "@components/makersclaw/blocks/product-grid/index.js"
2586
+ },
2587
+ {
2588
+ "path": "registry/blocks/product-grid/product-grid.jsx",
2589
+ "type": "registry:component",
2590
+ "target": "@components/makersclaw/blocks/product-grid/product-grid.jsx"
2591
+ },
2592
+ {
2593
+ "path": "registry/blocks/product-grid/product-card.jsx",
2594
+ "type": "registry:component",
2595
+ "target": "@components/makersclaw/blocks/product-grid/product-card.jsx"
2596
+ },
2597
+ {
2598
+ "path": "registry/blocks/product-grid/README.md",
2599
+ "type": "registry:file",
2600
+ "target": "@components/makersclaw/blocks/product-grid/README.md"
2601
+ }
2602
+ ],
2603
+ "categories": [
2604
+ "products",
2605
+ "shop",
2606
+ "store",
2607
+ "ecommerce",
2608
+ "commerce",
2609
+ "catalogue",
2610
+ "catalog",
2611
+ "grid",
2612
+ "cards",
2613
+ "filter",
2614
+ "facets",
2615
+ "sort",
2616
+ "add to cart",
2617
+ "favourite",
2618
+ "collection",
2619
+ "promo",
2620
+ "listing",
2621
+ "plp"
2622
+ ],
2623
+ "docs": "Installed to components/makersclaw/blocks/product-grid. Import: import { ProductGrid, ProductCard, PromoTile, productMatches } from \"@/components/makersclaw/blocks/product-grid\". Props and an example: components/makersclaw/blocks/product-grid/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
2624
+ "meta": {
2625
+ "makersclaw": {
2626
+ "version": "0.3.0",
2627
+ "useWhen": "A shop's catalogue, a collection page, related products under a product page, a row of promotions ('New', 'Sale'). Not for records to scan and act on in columns (data-table), one product's page (product-detail), or the cart (cart)."
2628
+ }
2629
+ }
2630
+ },
2631
+ {
2632
+ "name": "record-form",
2633
+ "type": "registry:block",
2634
+ "title": "RecordForm",
2635
+ "description": "Edit or create one record from a list of fields given as data (type, label, required, options, help, validation), grouped into titled sections — text, email, number, password, select, combobox, tags, radio, choice cards with prices, checkboxes, switch, date, time, rating, a photo and a row of images. It checks as you type, saves through an async onSave that answers { ok } or per-field errors shown under each field, and sits in a card, on a page (sections split title-left) or in a dialog.",
2636
+ "registryDependencies": [
2637
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json"
2638
+ ],
2639
+ "dependencies": [],
2640
+ "files": [
2641
+ {
2642
+ "path": "registry/blocks/record-form/index.js",
2643
+ "type": "registry:component",
2644
+ "target": "@components/makersclaw/blocks/record-form/index.js"
2645
+ },
2646
+ {
2647
+ "path": "registry/blocks/record-form/record-form.jsx",
2648
+ "type": "registry:component",
2649
+ "target": "@components/makersclaw/blocks/record-form/record-form.jsx"
2650
+ },
2651
+ {
2652
+ "path": "registry/blocks/record-form/record-fields.jsx",
2653
+ "type": "registry:component",
2654
+ "target": "@components/makersclaw/blocks/record-form/record-fields.jsx"
2655
+ },
2656
+ {
2657
+ "path": "registry/blocks/record-form/rules.js",
2658
+ "type": "registry:component",
2659
+ "target": "@components/makersclaw/blocks/record-form/rules.js"
2660
+ },
2661
+ {
2662
+ "path": "registry/blocks/record-form/README.md",
2663
+ "type": "registry:file",
2664
+ "target": "@components/makersclaw/blocks/record-form/README.md"
2665
+ }
2666
+ ],
2667
+ "categories": [
2668
+ "form",
2669
+ "record",
2670
+ "edit",
2671
+ "create",
2672
+ "fields",
2673
+ "sections",
2674
+ "validation",
2675
+ "save",
2676
+ "profile",
2677
+ "product",
2678
+ "dialog",
2679
+ "settings",
2680
+ "crud",
2681
+ "choice",
2682
+ "plan"
2683
+ ],
2684
+ "docs": "Installed to components/makersclaw/blocks/record-form. Import: import { RecordForm } from \"@/components/makersclaw/blocks/record-form\". Props and an example: components/makersclaw/blocks/record-form/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
2685
+ "meta": {
2686
+ "makersclaw": {
2687
+ "version": "0.3.0",
2688
+ "useWhen": "A screen edits one record's fields: a profile, a product, a team member, account details, a sign-up or application form, a settings page of fields with one Save. Not for a list of records (data-table), for toggles that each save on their own (settings-list), or for sign-in (auth-form)."
2689
+ }
2690
+ }
2691
+ },
2692
+ {
2693
+ "name": "record-notes",
2694
+ "type": "registry:block",
2695
+ "title": "RecordNotes",
2696
+ "description": "Dated rich-text notes on one record (a deal, a contact, a company), to sit beside record-form: a composer with @mentions and Cmd/Ctrl+Enter adds a note; the notes follow newest first (or oldest), grouped by day, each with author avatar, name and relative time; your own notes edit in place and delete after a confirm. Every save is an async callback answering { ok }; a failure keeps the words and says why where it happened.",
2697
+ "registryDependencies": [
2698
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json",
2699
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/comment-box.json",
2700
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/doc-editor.json"
2701
+ ],
2702
+ "dependencies": [],
2703
+ "files": [
2704
+ {
2705
+ "path": "registry/blocks/record-notes/index.js",
2706
+ "type": "registry:component",
2707
+ "target": "@components/makersclaw/blocks/record-notes/index.js"
2708
+ },
2709
+ {
2710
+ "path": "registry/blocks/record-notes/record-notes.jsx",
2711
+ "type": "registry:component",
2712
+ "target": "@components/makersclaw/blocks/record-notes/record-notes.jsx"
2713
+ },
2714
+ {
2715
+ "path": "registry/blocks/record-notes/README.md",
2716
+ "type": "registry:file",
2717
+ "target": "@components/makersclaw/blocks/record-notes/README.md"
2718
+ }
2719
+ ],
2720
+ "categories": [
2721
+ "notes",
2722
+ "record",
2723
+ "deal",
2724
+ "contact",
2725
+ "crm",
2726
+ "log",
2727
+ "history",
2728
+ "comment",
2729
+ "mention",
2730
+ "rich text",
2731
+ "blocknote",
2732
+ "edit",
2733
+ "delete"
2734
+ ],
2735
+ "docs": "Installed to components/makersclaw/blocks/record-notes. Import: import { RecordNotes } from \"@/components/makersclaw/blocks/record-notes\". Props and an example: components/makersclaw/blocks/record-notes/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
2736
+ "meta": {
2737
+ "makersclaw": {
2738
+ "version": "0.3.0",
2739
+ "useWhen": "A record page keeps a running log of notes: call notes on a deal, context on a contact, a history on a customer or a candidate. Not a discussion thread without edit and delete (comment-box), not one long document per record (doc-editor or doc-page), not an automatic activity feed."
2740
+ }
2741
+ }
2742
+ },
2743
+ {
2744
+ "name": "search-dialog",
2745
+ "type": "registry:block",
2746
+ "title": "SearchDialog",
2747
+ "description": "One ⌘K search over every kind of record — chats, documents, images, projects, people. Before typing it shows your sections (Last opened, Recent); while typing, ranked matches with the typed text marked, a date, image thumbnails, and kind chips (All, Chats, Images…) to narrow them. Searches your list in the browser, or your server through an async onSearch. Built on the kit's Command; SearchPanel is the same box inline.",
2748
+ "registryDependencies": [
2749
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json"
2750
+ ],
2751
+ "dependencies": [],
2752
+ "files": [
2753
+ {
2754
+ "path": "registry/blocks/search-dialog/index.js",
2755
+ "type": "registry:component",
2756
+ "target": "@components/makersclaw/blocks/search-dialog/index.js"
2757
+ },
2758
+ {
2759
+ "path": "registry/blocks/search-dialog/search-dialog.jsx",
2760
+ "type": "registry:component",
2761
+ "target": "@components/makersclaw/blocks/search-dialog/search-dialog.jsx"
2762
+ },
2763
+ {
2764
+ "path": "registry/blocks/search-dialog/README.md",
2765
+ "type": "registry:file",
2766
+ "target": "@components/makersclaw/blocks/search-dialog/README.md"
2767
+ }
2768
+ ],
2769
+ "categories": [
2770
+ "search",
2771
+ "global search",
2772
+ "command",
2773
+ "cmdk",
2774
+ "command palette",
2775
+ "spotlight",
2776
+ "find",
2777
+ "filter",
2778
+ "recent",
2779
+ "quick open",
2780
+ "jump to"
2781
+ ],
2782
+ "docs": "Installed to components/makersclaw/blocks/search-dialog. Import: import { SearchDialog, SearchPanel } from \"@/components/makersclaw/blocks/search-dialog\". Props and an example: components/makersclaw/blocks/search-dialog/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
2783
+ "meta": {
2784
+ "makersclaw": {
2785
+ "version": "0.3.0",
2786
+ "useWhen": "An app has more than one kind of record and wants one global search box or ⌘K palette to find any of them, or a search page with type filters."
2787
+ }
2788
+ }
2789
+ },
2790
+ {
2791
+ "name": "settings-list",
2792
+ "type": "registry:block",
2793
+ "title": "SettingsList",
2794
+ "description": "A card of settings, one row each — icon, label, description, meta lines, a badge, and its control: a Switch, a Select, a Button, a remove button or a menu of actions, with optional details that open under the row. Every change saves on its own through an async callback; the row shows the new value at once, a spinner while it saves, and on failure the old value back with the reason and Try again. variant=\"matrix\" is the notification grid: events by group down the side, channels (email, push, SMS) across, a switch per cell, stacked on a phone.",
2795
+ "registryDependencies": [
2796
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json"
2797
+ ],
2798
+ "dependencies": [],
2799
+ "files": [
2800
+ {
2801
+ "path": "registry/blocks/settings-list/index.js",
2802
+ "type": "registry:component",
2803
+ "target": "@components/makersclaw/blocks/settings-list/index.js"
2804
+ },
2805
+ {
2806
+ "path": "registry/blocks/settings-list/settings-list.jsx",
2807
+ "type": "registry:component",
2808
+ "target": "@components/makersclaw/blocks/settings-list/settings-list.jsx"
2809
+ },
2810
+ {
2811
+ "path": "registry/blocks/settings-list/settings-matrix.jsx",
2812
+ "type": "registry:component",
2813
+ "target": "@components/makersclaw/blocks/settings-list/settings-matrix.jsx"
2814
+ },
2815
+ {
2816
+ "path": "registry/blocks/settings-list/row-state.jsx",
2817
+ "type": "registry:component",
2818
+ "target": "@components/makersclaw/blocks/settings-list/row-state.jsx"
2819
+ },
2820
+ {
2821
+ "path": "registry/blocks/settings-list/README.md",
2822
+ "type": "registry:file",
2823
+ "target": "@components/makersclaw/blocks/settings-list/README.md"
2824
+ }
2825
+ ],
2826
+ "categories": [
2827
+ "settings",
2828
+ "preferences",
2829
+ "toggle",
2830
+ "switch",
2831
+ "notifications",
2832
+ "channels",
2833
+ "matrix",
2834
+ "security",
2835
+ "sessions",
2836
+ "devices",
2837
+ "integrations",
2838
+ "two-factor",
2839
+ "billing",
2840
+ "account"
2841
+ ],
2842
+ "docs": "Installed to components/makersclaw/blocks/settings-list. Import: import { SettingsList } from \"@/components/makersclaw/blocks/settings-list\". Props and an example: components/makersclaw/blocks/settings-list/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
2843
+ "meta": {
2844
+ "makersclaw": {
2845
+ "version": "0.3.0",
2846
+ "useWhen": "An account or workspace settings screen where each setting applies the moment it is changed: preferences, two-step sign-in methods, signed-in devices, connected integrations, billing profiles, notification preferences per channel. Not for a form of fields saved together with one button (record-form)."
2847
+ }
2848
+ }
2849
+ },
2850
+ {
2851
+ "name": "setup-checklist",
2852
+ "type": "registry:block",
2853
+ "title": "SetupChecklist",
2854
+ "description": "The steps to get set up: which are done, how far along the whole is (a ring, a bar, or \"Step 2 of 4\"), and the button for the next one, sent out through an async onAction that can fail on the step. Four shapes: folding rows in a card with a dismiss menu, numbered step cards, a plain step list with a help panel, and bordered accordion rows that can be locked until the step before is done.",
2855
+ "registryDependencies": [
2856
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json"
2857
+ ],
2858
+ "dependencies": [],
2859
+ "files": [
2860
+ {
2861
+ "path": "registry/blocks/setup-checklist/index.js",
2862
+ "type": "registry:component",
2863
+ "target": "@components/makersclaw/blocks/setup-checklist/index.js"
2864
+ },
2865
+ {
2866
+ "path": "registry/blocks/setup-checklist/setup-checklist.jsx",
2867
+ "type": "registry:component",
2868
+ "target": "@components/makersclaw/blocks/setup-checklist/setup-checklist.jsx"
2869
+ },
2870
+ {
2871
+ "path": "registry/blocks/setup-checklist/README.md",
2872
+ "type": "registry:file",
2873
+ "target": "@components/makersclaw/blocks/setup-checklist/README.md"
2874
+ }
2875
+ ],
2876
+ "categories": [
2877
+ "onboarding",
2878
+ "checklist",
2879
+ "setup",
2880
+ "getting started",
2881
+ "steps",
2882
+ "progress",
2883
+ "tasks",
2884
+ "welcome",
2885
+ "quick start",
2886
+ "wizard",
2887
+ "dismiss"
2888
+ ],
2889
+ "docs": "Installed to components/makersclaw/blocks/setup-checklist. Import: import { SetupChecklist } from \"@/components/makersclaw/blocks/setup-checklist\". Props and an example: components/makersclaw/blocks/setup-checklist/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
2890
+ "meta": {
2891
+ "makersclaw": {
2892
+ "version": "0.3.0",
2893
+ "useWhen": "A new account, workspace or shop has a few things to do before it is useful (complete the profile, invite the team, connect a tool, launch) and the founder should see what is left. Not for a running job's stages (kit Steps or job-panel), and not for a multi-page form wizard."
2894
+ }
2895
+ }
2896
+ },
2897
+ {
2898
+ "name": "share-dialog",
2899
+ "type": "registry:block",
2900
+ "title": "ShareDialog",
2901
+ "description": "Who can see a record and how to let more people in: invite by email (comma separated, with an access level), each person with their access in a menu (can view, can edit, remove), sharing switches, and a link with a copy button that turns to a check. A dialog, or the same body inline (SharePanel). Every change is an async callback; a failure shows and the old value comes back.",
2902
+ "registryDependencies": [
2903
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json"
2904
+ ],
2905
+ "dependencies": [],
2906
+ "files": [
2907
+ {
2908
+ "path": "registry/blocks/share-dialog/index.js",
2909
+ "type": "registry:component",
2910
+ "target": "@components/makersclaw/blocks/share-dialog/index.js"
2911
+ },
2912
+ {
2913
+ "path": "registry/blocks/share-dialog/share-dialog.jsx",
2914
+ "type": "registry:component",
2915
+ "target": "@components/makersclaw/blocks/share-dialog/share-dialog.jsx"
2916
+ },
2917
+ {
2918
+ "path": "registry/blocks/share-dialog/README.md",
2919
+ "type": "registry:file",
2920
+ "target": "@components/makersclaw/blocks/share-dialog/README.md"
2921
+ }
2922
+ ],
2923
+ "categories": [
2924
+ "share",
2925
+ "invite",
2926
+ "members",
2927
+ "collaborators",
2928
+ "access",
2929
+ "permissions",
2930
+ "roles",
2931
+ "team",
2932
+ "link",
2933
+ "copy link",
2934
+ "dialog",
2935
+ "modal"
2936
+ ],
2937
+ "docs": "Installed to components/makersclaw/blocks/share-dialog. Import: import { ShareDialog, SharePanel } from \"@/components/makersclaw/blocks/share-dialog\". Props and an example: components/makersclaw/blocks/share-dialog/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
2938
+ "meta": {
2939
+ "makersclaw": {
2940
+ "version": "0.3.0",
2941
+ "useWhen": "A record, project, document or workspace can be shared: an \"Invite\" or \"Share\" button, a members list with roles, a public link to copy."
2942
+ }
2943
+ }
2944
+ },
2945
+ {
2946
+ "name": "sidebar",
2947
+ "type": "registry:block",
2948
+ "title": "Sidebar",
2949
+ "description": "An app's navigation down the left edge: app name or workspace switcher, groups of items with icons, counts and nested items, the signed-in person with their menu; collapses to icons (remembered) and becomes a Sheet behind a trigger on a phone. Optional: inset or floating look, a ⌘K search over every item, folding groups with colour dots, a second column (a mail list, or a parent's children to drill into), a \"New\" button and a \"…\" menu per item (a chat history).",
2950
+ "registryDependencies": [
2951
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json"
2952
+ ],
2953
+ "dependencies": [],
2954
+ "files": [
2955
+ {
2956
+ "path": "registry/blocks/sidebar/index.js",
2957
+ "type": "registry:component",
2958
+ "target": "@components/makersclaw/blocks/sidebar/index.js"
2959
+ },
2960
+ {
2961
+ "path": "registry/blocks/sidebar/sidebar.jsx",
2962
+ "type": "registry:component",
2963
+ "target": "@components/makersclaw/blocks/sidebar/sidebar.jsx"
2964
+ },
2965
+ {
2966
+ "path": "registry/blocks/sidebar/sidebar-panel.jsx",
2967
+ "type": "registry:component",
2968
+ "target": "@components/makersclaw/blocks/sidebar/sidebar-panel.jsx"
2969
+ },
2970
+ {
2971
+ "path": "registry/blocks/sidebar/README.md",
2972
+ "type": "registry:file",
2973
+ "target": "@components/makersclaw/blocks/sidebar/README.md"
2974
+ }
2975
+ ],
2976
+ "categories": [
2977
+ "sidebar",
2978
+ "nav",
2979
+ "navigation",
2980
+ "shell",
2981
+ "layout",
2982
+ "menu",
2983
+ "drawer",
2984
+ "collapse",
2985
+ "workspace",
2986
+ "switcher",
2987
+ "app",
2988
+ "rail",
2989
+ "inset",
2990
+ "floating",
2991
+ "search",
2992
+ "command",
2993
+ "palette",
2994
+ "collapsible",
2995
+ "panel",
2996
+ "drilldown",
2997
+ "mail",
2998
+ "chat",
2999
+ "history"
3000
+ ],
3001
+ "docs": "Installed to components/makersclaw/blocks/sidebar. Import: import { Sidebar, SidebarLayout, SidebarTrigger, useSidebar } from \"@/components/makersclaw/blocks/sidebar\". Props and an example: components/makersclaw/blocks/sidebar/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
3002
+ "meta": {
3003
+ "makersclaw": {
3004
+ "version": "0.3.0",
3005
+ "useWhen": "An app with more than a handful of places to go (inbox, deals, contacts, reports, settings, projects) that wants a real app shell: compose it in app/shell.jsx around the surfaces. Not for in-page tabs (Tabs) or a short strip of links."
3006
+ }
3007
+ }
3008
+ },
3009
+ {
3010
+ "name": "signature-pad",
3011
+ "type": "registry:block",
3012
+ "title": "SignaturePad",
3013
+ "description": "A signature field (signature_pad) in the workspace theme: a full-name field, then draw on a paper box (smooth pen strokes, undo the last stroke, clear with Undo) or type the name set as a signature. Sign returns a record: a cropped transparent PNG in dark ink, the typed name, the mode and the time; the signed view shows it with Sign again. Works as a form field too, through a handle (toPNG, getSignature).",
3014
+ "registryDependencies": [
3015
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json"
3016
+ ],
3017
+ "dependencies": [
3018
+ "signature_pad@5.1.4"
3019
+ ],
3020
+ "files": [
3021
+ {
3022
+ "path": "registry/blocks/signature-pad/index.js",
3023
+ "type": "registry:component",
3024
+ "target": "@components/makersclaw/blocks/signature-pad/index.js"
3025
+ },
3026
+ {
3027
+ "path": "registry/blocks/signature-pad/signature-pad.jsx",
3028
+ "type": "registry:component",
3029
+ "target": "@components/makersclaw/blocks/signature-pad/signature-pad.jsx"
3030
+ },
3031
+ {
3032
+ "path": "registry/blocks/signature-pad/pad.js",
3033
+ "type": "registry:component",
3034
+ "target": "@components/makersclaw/blocks/signature-pad/pad.js"
3035
+ },
3036
+ {
3037
+ "path": "registry/blocks/signature-pad/colors.js",
3038
+ "type": "registry:component",
3039
+ "target": "@components/makersclaw/blocks/signature-pad/colors.js"
3040
+ },
3041
+ {
3042
+ "path": "registry/blocks/signature-pad/signature.js",
3043
+ "type": "registry:component",
3044
+ "target": "@components/makersclaw/blocks/signature-pad/signature.js"
3045
+ },
3046
+ {
3047
+ "path": "registry/blocks/signature-pad/README.md",
3048
+ "type": "registry:file",
3049
+ "target": "@components/makersclaw/blocks/signature-pad/README.md"
3050
+ }
3051
+ ],
3052
+ "categories": [
3053
+ "signature",
3054
+ "sign",
3055
+ "e-sign",
3056
+ "draw",
3057
+ "type",
3058
+ "accept",
3059
+ "approval",
3060
+ "consent",
3061
+ "waiver",
3062
+ "sign-off",
3063
+ "png",
3064
+ "form"
3065
+ ],
3066
+ "docs": "Installed to components/makersclaw/blocks/signature-pad. Import: import { SignaturePad, useSignaturePad, signatureRecord, formatSignedAt } from \"@/components/makersclaw/blocks/signature-pad\". Props and an example: components/makersclaw/blocks/signature-pad/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
3067
+ "meta": {
3068
+ "makersclaw": {
3069
+ "version": "0.3.0",
3070
+ "useWhen": "A screen needs someone to sign: accepting a proposal or a quote, a delivery or work-done sign-off, a waiver, a consent form, an approval on a record. The proposal-accept block is built on it. It records an acceptance with a picture of the signature — it is not a certified legal e-signature (no identity check, no audit trail beyond what you store)."
3071
+ }
3072
+ }
3073
+ },
3074
+ {
3075
+ "name": "sketch-canvas",
3076
+ "type": "registry:block",
3077
+ "title": "SketchCanvas",
3078
+ "description": "A freeform drawing canvas (Excalidraw) in the workspace theme: a Miro-style tool rail (select, pan, draw, shapes, arrows, text, image, eraser, frames), a floating toolbar over the selection with colours from the theme's tokens, zoom and undo controls, a friendly empty state, and stamp tools that place ready-made drawings (UI wireframe pieces built in). Optional locked background image for annotating a screenshot. The sketch is plain JSON; helpers read its words for an agent, and the handle exports a PNG.",
3079
+ "registryDependencies": [
3080
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json"
3081
+ ],
3082
+ "dependencies": [
3083
+ "@excalidraw/excalidraw@0.18.1"
3084
+ ],
3085
+ "files": [
3086
+ {
3087
+ "path": "registry/blocks/sketch-canvas/index.js",
3088
+ "type": "registry:component",
3089
+ "target": "@components/makersclaw/blocks/sketch-canvas/index.js"
3090
+ },
3091
+ {
3092
+ "path": "registry/blocks/sketch-canvas/sketch-canvas.jsx",
3093
+ "type": "registry:component",
3094
+ "target": "@components/makersclaw/blocks/sketch-canvas/sketch-canvas.jsx"
3095
+ },
3096
+ {
3097
+ "path": "registry/blocks/sketch-canvas/excalidraw.js",
3098
+ "type": "registry:component",
3099
+ "target": "@components/makersclaw/blocks/sketch-canvas/excalidraw.js"
3100
+ },
3101
+ {
3102
+ "path": "registry/blocks/sketch-canvas/ssr-shim.js",
3103
+ "type": "registry:component",
3104
+ "target": "@components/makersclaw/blocks/sketch-canvas/ssr-shim.js"
3105
+ },
3106
+ {
3107
+ "path": "registry/blocks/sketch-canvas/ssr-shim-end.js",
3108
+ "type": "registry:component",
3109
+ "target": "@components/makersclaw/blocks/sketch-canvas/ssr-shim-end.js"
3110
+ },
3111
+ {
3112
+ "path": "registry/blocks/sketch-canvas/theme.js",
3113
+ "type": "registry:component",
3114
+ "target": "@components/makersclaw/blocks/sketch-canvas/theme.js"
3115
+ },
3116
+ {
3117
+ "path": "registry/blocks/sketch-canvas/palette.js",
3118
+ "type": "registry:component",
3119
+ "target": "@components/makersclaw/blocks/sketch-canvas/palette.js"
3120
+ },
3121
+ {
3122
+ "path": "registry/blocks/sketch-canvas/sketch.js",
3123
+ "type": "registry:component",
3124
+ "target": "@components/makersclaw/blocks/sketch-canvas/sketch.js"
3125
+ },
3126
+ {
3127
+ "path": "registry/blocks/sketch-canvas/stamps.js",
3128
+ "type": "registry:component",
3129
+ "target": "@components/makersclaw/blocks/sketch-canvas/stamps.js"
3130
+ },
3131
+ {
3132
+ "path": "registry/blocks/sketch-canvas/README.md",
3133
+ "type": "registry:file",
3134
+ "target": "@components/makersclaw/blocks/sketch-canvas/README.md"
3135
+ }
3136
+ ],
3137
+ "categories": [
3138
+ "sketch",
3139
+ "draw",
3140
+ "drawing",
3141
+ "whiteboard",
3142
+ "canvas",
3143
+ "excalidraw",
3144
+ "diagram",
3145
+ "annotate",
3146
+ "markup",
3147
+ "wireframe",
3148
+ "freehand",
3149
+ "shapes",
3150
+ "arrows",
3151
+ "miro",
3152
+ "png"
3153
+ ],
3154
+ "docs": "Installed to components/makersclaw/blocks/sketch-canvas. Import: import { SketchCanvas, useSketchCanvas, SKETCH_TOOLS, WIREFRAME_STAMPS, STROKES, FILLS, emptySketch, isSketchEmpty, sketchToText, sketchItems, toSketch } from \"@/components/makersclaw/blocks/sketch-canvas\". Props and an example: components/makersclaw/blocks/sketch-canvas/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
3155
+ "meta": {
3156
+ "makersclaw": {
3157
+ "version": "0.3.0",
3158
+ "useWhen": "A screen needs freehand drawing: a whiteboard, marking up a screenshot, sketching a UI wireframe, a diagram drawn by hand. The whiteboard, annotate and sketch-to-app blocks are built on it. Not for structured boards of cards and connectors (flow-canvas), charts (chart) or a kanban (board)."
3159
+ }
3160
+ }
3161
+ },
3162
+ {
3163
+ "name": "spreadsheet",
3164
+ "type": "registry:block",
3165
+ "title": "Spreadsheet",
3166
+ "description": "A table you edit like Google Sheets or Airtable, virtualised for 10,000+ rows: typed columns (text, number, currency, date, single and multiple select, person, checkbox, link, rating) each with its own in-cell editor, a cell cursor and range selection with the mouse and arrow keys, typing to edit, copy and paste ranges as TSV (to and from Sheets and Excel), drag-to-fill and ⌘D fill down, undo/redo, column resize, drag to reorder, hide, freeze, rename, change type and add fields, row insert and delete with Undo, sort and filter panels, search, a sum/average of the selection, validation marks, and a phone layout. Edits go out as async callbacks answering { ok }, applied at once and rolled back on failure. A column-type registry and an imperative handle for blocks built on it.",
3167
+ "registryDependencies": [
3168
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json"
3169
+ ],
3170
+ "dependencies": [
3171
+ "@tanstack/react-virtual@3.14.13"
3172
+ ],
3173
+ "files": [
3174
+ {
3175
+ "path": "registry/blocks/spreadsheet/index.js",
3176
+ "type": "registry:component",
3177
+ "target": "@components/makersclaw/blocks/spreadsheet/index.js"
3178
+ },
3179
+ {
3180
+ "path": "registry/blocks/spreadsheet/spreadsheet.jsx",
3181
+ "type": "registry:component",
3182
+ "target": "@components/makersclaw/blocks/spreadsheet/spreadsheet.jsx"
3183
+ },
3184
+ {
3185
+ "path": "registry/blocks/spreadsheet/cells.jsx",
3186
+ "type": "registry:component",
3187
+ "target": "@components/makersclaw/blocks/spreadsheet/cells.jsx"
3188
+ },
3189
+ {
3190
+ "path": "registry/blocks/spreadsheet/chrome.jsx",
3191
+ "type": "registry:component",
3192
+ "target": "@components/makersclaw/blocks/spreadsheet/chrome.jsx"
3193
+ },
3194
+ {
3195
+ "path": "registry/blocks/spreadsheet/types.js",
3196
+ "type": "registry:component",
3197
+ "target": "@components/makersclaw/blocks/spreadsheet/types.js"
3198
+ },
3199
+ {
3200
+ "path": "registry/blocks/spreadsheet/grid.js",
3201
+ "type": "registry:component",
3202
+ "target": "@components/makersclaw/blocks/spreadsheet/grid.js"
3203
+ },
3204
+ {
3205
+ "path": "registry/blocks/spreadsheet/README.md",
3206
+ "type": "registry:file",
3207
+ "target": "@components/makersclaw/blocks/spreadsheet/README.md"
3208
+ }
3209
+ ],
3210
+ "categories": [
3211
+ "spreadsheet",
3212
+ "grid",
3213
+ "table",
3214
+ "airtable",
3215
+ "google sheets",
3216
+ "excel",
3217
+ "editable",
3218
+ "cells",
3219
+ "inline edit",
3220
+ "virtualized",
3221
+ "10k rows",
3222
+ "copy paste",
3223
+ "tsv",
3224
+ "fill down",
3225
+ "columns",
3226
+ "sort",
3227
+ "filter",
3228
+ "select",
3229
+ "multi select",
3230
+ "person",
3231
+ "rating",
3232
+ "undo",
3233
+ "keyboard",
3234
+ "base"
3235
+ ],
3236
+ "docs": "Installed to components/makersclaw/blocks/spreadsheet. Import: import { Spreadsheet, CellValue, CellPanel, OptionBadge, editorFor, TYPE_ORDER, sortWords, COLUMN_TYPES, typeOf, parseCell, convertValue, guessType, parseNumberText, parseDateText, optionValue, isBlank, emptyView, normalizeView, orderedColumns, visibleColumns, processRows, passesFilters, parseTSV, toTSV, pasteChanges, fillChanges, clearChanges, applyChanges, invertChanges } from \"@/components/makersclaw/blocks/spreadsheet\". Props and an example: components/makersclaw/blocks/spreadsheet/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
3237
+ "meta": {
3238
+ "makersclaw": {
3239
+ "version": "0.3.0",
3240
+ "useWhen": "People need to enter or clean up many records in a grid, fast, with the keyboard: a lead list, an inventory, a budget, a content calendar, a table view over any collection, the grid under an Airtable-like base. Not for a read-mostly list to scan and act on row by row (data-table), records moving through stages (board), or a single record (record-form)."
3241
+ }
3242
+ }
3243
+ },
3244
+ {
3245
+ "name": "stat-cards",
3246
+ "type": "registry:block",
3247
+ "title": "Stat cards",
3248
+ "description": "A row of key numbers, each with its name and its change: one bordered strip, or a card each with a change in the corner or after the value, a \"from\" value, a status dot and a goal meter, a sparkline, a \"View more\" footer; or a usage tile per amount against its limit (a bar or a ring, a split by kind with what is free, a warning line near the cap, an action and a limit the founder can change); or a plain list of values with their change. Loading, empty and error states.",
3249
+ "registryDependencies": [
3250
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json",
3251
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/chart.json"
3252
+ ],
3253
+ "dependencies": [],
3254
+ "files": [
3255
+ {
3256
+ "path": "registry/blocks/stat-cards/index.js",
3257
+ "type": "registry:component",
3258
+ "target": "@components/makersclaw/blocks/stat-cards/index.js"
3259
+ },
3260
+ {
3261
+ "path": "registry/blocks/stat-cards/stat-cards.jsx",
3262
+ "type": "registry:component",
3263
+ "target": "@components/makersclaw/blocks/stat-cards/stat-cards.jsx"
3264
+ },
3265
+ {
3266
+ "path": "registry/blocks/stat-cards/usage.jsx",
3267
+ "type": "registry:component",
3268
+ "target": "@components/makersclaw/blocks/stat-cards/usage.jsx"
3269
+ },
3270
+ {
3271
+ "path": "registry/blocks/stat-cards/README.md",
3272
+ "type": "registry:file",
3273
+ "target": "@components/makersclaw/blocks/stat-cards/README.md"
3274
+ }
3275
+ ],
3276
+ "categories": [
3277
+ "stats",
3278
+ "kpi",
3279
+ "metrics",
3280
+ "numbers",
3281
+ "dashboard",
3282
+ "overview",
3283
+ "delta",
3284
+ "change",
3285
+ "trend",
3286
+ "sparkline",
3287
+ "usage",
3288
+ "limit",
3289
+ "quota",
3290
+ "plan",
3291
+ "budget",
3292
+ "goal",
3293
+ "status",
3294
+ "ring",
3295
+ "meter"
3296
+ ],
3297
+ "docs": "Installed to components/makersclaw/blocks/stat-cards. Import: import { StatCards } from \"@/components/makersclaw/blocks/stat-cards\". Props and an example: components/makersclaw/blocks/stat-cards/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
3298
+ "meta": {
3299
+ "makersclaw": {
3300
+ "version": "0.3.0",
3301
+ "useWhen": "The few numbers at the top of a dashboard or a report: revenue, users, conversion, spend against budget, seats and storage against a plan. Not for a trend worth reading on its own (a chart), many rows of records (a table), or one subject scored against thresholds (a scorecard)."
3302
+ }
3303
+ }
3304
+ },
3305
+ {
3306
+ "name": "task-list",
3307
+ "type": "registry:block",
3308
+ "title": "Task list",
3309
+ "description": "The List view of work, like ClickUp's or Linear's: tasks under headings that fold (group by status, assignee, priority, project, due date or any field), a round check to complete each, the title edited in place, subtasks indented under their parent with their own fold, the fields you choose (assignees, due date, priority, tags, project, estimate) as inline pickers, a quick-add row at the end of every group, drag to reorder and to move between groups (saving the new status, assignee or due date), multi-select with a bulk bar (status, assign, due, priority, delete with undo), a toolbar with search, filter chips, group by, sort and fields, and friendly empty states with starter templates. One async onChange saves every change; failures roll back with a notice.",
3310
+ "registryDependencies": [
3311
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json",
3312
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/task-model.json"
3313
+ ],
3314
+ "dependencies": [],
3315
+ "files": [
3316
+ {
3317
+ "path": "registry/blocks/task-list/index.js",
3318
+ "type": "registry:component",
3319
+ "target": "@components/makersclaw/blocks/task-list/index.js"
3320
+ },
3321
+ {
3322
+ "path": "registry/blocks/task-list/task-list.jsx",
3323
+ "type": "registry:component",
3324
+ "target": "@components/makersclaw/blocks/task-list/task-list.jsx"
3325
+ },
3326
+ {
3327
+ "path": "registry/blocks/task-list/README.md",
3328
+ "type": "registry:file",
3329
+ "target": "@components/makersclaw/blocks/task-list/README.md"
3330
+ }
3331
+ ],
3332
+ "categories": [
3333
+ "tasks",
3334
+ "task list",
3335
+ "to-do",
3336
+ "todo",
3337
+ "list view",
3338
+ "checklist",
3339
+ "clickup",
3340
+ "linear",
3341
+ "asana",
3342
+ "things",
3343
+ "subtasks",
3344
+ "group",
3345
+ "fold",
3346
+ "inline edit",
3347
+ "quick add",
3348
+ "drag",
3349
+ "reorder",
3350
+ "bulk",
3351
+ "select",
3352
+ "undo",
3353
+ "project management",
3354
+ "sprint"
3355
+ ],
3356
+ "docs": "Installed to components/makersclaw/blocks/task-list. Import: import { TaskList } from \"@/components/makersclaw/blocks/task-list\". Props and an example: components/makersclaw/blocks/task-list/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
3357
+ "meta": {
3358
+ "makersclaw": {
3359
+ "version": "0.3.0",
3360
+ "useWhen": "A screen that lists work to get done and moves it along: a team's tasks, a launch checklist, a sprint, a personal to-do list, onboarding steps, content to publish. Not for records that are not work (data-table), for stage columns side by side (board), or for dates on a grid (calendar)."
3361
+ }
3362
+ }
3363
+ },
3364
+ {
3365
+ "name": "task-model",
3366
+ "type": "registry:block",
3367
+ "title": "Task model",
3368
+ "description": "The shared work-item model every task view reads: one task shape (status, assignees, start/due, estimate, progress, priority, parent, dependencies, location, tags, project, extra fields) with statuses, people and projects; pure helpers to search, filter, group by any field, sort, nest subtasks, do date math (week and month grids, working days, overlaps, time scales), sum capacity per person, follow dependencies and the critical path, and apply, undo and persist changes; the shared parts (StatusPill, AssigneeStack, DueLabel, PriorityFlag, TaskChip, CompleteToggle), the ViewToolbar (search, filter chips, group by, sort, show fields), drag primitives on @dnd-kit, a hook for optimistic saves with rollback and undo, and adapters that drive the Board and DataTable blocks from tasks.",
3369
+ "registryDependencies": [
3370
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json"
3371
+ ],
3372
+ "dependencies": [
3373
+ "@dnd-kit/core@6.3.1",
3374
+ "@dnd-kit/sortable@10.0.0",
3375
+ "@dnd-kit/utilities@3.2.2"
3376
+ ],
3377
+ "files": [
3378
+ {
3379
+ "path": "registry/blocks/task-model/index.js",
3380
+ "type": "registry:component",
3381
+ "target": "@components/makersclaw/blocks/task-model/index.js"
3382
+ },
3383
+ {
3384
+ "path": "registry/blocks/task-model/model.js",
3385
+ "type": "registry:component",
3386
+ "target": "@components/makersclaw/blocks/task-model/model.js"
3387
+ },
3388
+ {
3389
+ "path": "registry/blocks/task-model/dates.js",
3390
+ "type": "registry:component",
3391
+ "target": "@components/makersclaw/blocks/task-model/dates.js"
3392
+ },
3393
+ {
3394
+ "path": "registry/blocks/task-model/changes.js",
3395
+ "type": "registry:component",
3396
+ "target": "@components/makersclaw/blocks/task-model/changes.js"
3397
+ },
3398
+ {
3399
+ "path": "registry/blocks/task-model/parts.jsx",
3400
+ "type": "registry:component",
3401
+ "target": "@components/makersclaw/blocks/task-model/parts.jsx"
3402
+ },
3403
+ {
3404
+ "path": "registry/blocks/task-model/toolbar.jsx",
3405
+ "type": "registry:component",
3406
+ "target": "@components/makersclaw/blocks/task-model/toolbar.jsx"
3407
+ },
3408
+ {
3409
+ "path": "registry/blocks/task-model/dnd.jsx",
3410
+ "type": "registry:component",
3411
+ "target": "@components/makersclaw/blocks/task-model/dnd.jsx"
3412
+ },
3413
+ {
3414
+ "path": "registry/blocks/task-model/README.md",
3415
+ "type": "registry:file",
3416
+ "target": "@components/makersclaw/blocks/task-model/README.md"
3417
+ }
3418
+ ],
3419
+ "categories": [
3420
+ "tasks",
3421
+ "task",
3422
+ "work items",
3423
+ "project management",
3424
+ "model",
3425
+ "filter",
3426
+ "group",
3427
+ "sort",
3428
+ "subtasks",
3429
+ "dates",
3430
+ "calendar math",
3431
+ "workload",
3432
+ "capacity",
3433
+ "dependencies",
3434
+ "critical path",
3435
+ "toolbar",
3436
+ "drag",
3437
+ "drop",
3438
+ "dnd-kit",
3439
+ "optimistic",
3440
+ "undo",
3441
+ "clickup",
3442
+ "linear",
3443
+ "asana"
3444
+ ],
3445
+ "docs": "Installed to components/makersclaw/blocks/task-model. Import: import { NONE, PRIORITIES, DEFAULT_STATUSES, TASK_FIELDS, DEFAULT_VIEW, normalizeTask, normalizeTasks, createTaskContext, fieldOf, isDone, doneStatusId, openStatusId, toggleDoneChange, newTaskId, draftTask, valuesOf, optionsOf, labelOf, searchText, searchTasks, filterTasks, orderOf, sortTasks, sortOptions, groupTasks, groupOptions, movePatch, applyView, activeFilterCount, rankBetween, placeChange, childrenMap, buildTree, flattenTree, descendantIds, ancestorIds, subtaskCounts, rollup, progressOf, dependencyEdges, blockersOf, wouldCycle, dateConflicts, criticalPath, hoursPerDay, workload, sumOf, applyChange, invertChange, changeWrites, changedIds, deleteChange, toBoard, toTableRows, taskFacets, StatusPill, CompleteToggle, AssigneeStack, PersonLabel, DueLabel, PriorityFlag, TagList, SubtaskCount, ProgressLine, TaskChip, GroupLabel, taskColumns, TONE_TEXT, HUE_EDGE, HUE_BG, TaskDragProvider, SortableGroup, useSortableTask, useDraggableTask, useDropTarget, DragHandle, DropLine, LIFTED, useReducedMotion, arrayMove, isDay, dayNumber, fromDayNumber, dayOf, minutesOf, withTime, todayDay, addDays, diffDays, weekdayOf, startOfWeek, endOfWeek, weekDays, startOfMonth, endOfMonth, addMonths, daysBetween, monthGrid, WEEKEND, isWeekend, isWorkingDay, workingDaysBetween, addWorkingDays, spanOf, spansOverlap, tasksInRange, tasksOnDay, shiftDates, spanPatch, dueBucket, DUE_BUCKETS, dayForBucket, formatDay, formatTime, formatDate, timeScale, rangeOfTasks, isNewId } from \"@/components/makersclaw/blocks/task-model\". Props and an example: components/makersclaw/blocks/task-model/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
3446
+ "meta": {
3447
+ "makersclaw": {
3448
+ "version": "0.3.0",
3449
+ "useWhen": "You are building a view of work items — a list, calendar, gantt, workload, roadmap or a switcher between them — or driving Board / DataTable from tasks. Views import it; a surface rarely renders it alone. Not for records that are not work (use data-table or board directly)."
3450
+ }
3451
+ }
3452
+ },
3453
+ {
3454
+ "name": "testimonials",
3455
+ "type": "registry:block",
3456
+ "title": "Testimonials",
3457
+ "description": "A marketing section of customer quotes: name, role, company, face or logo, the quote, an optional star rating, a verified mark and a \"view on X\" source, and optional headline numbers (stats). Layouts: a grid of cards (plain, card or raised; hover can light one and dim the rest; a \"write a review\" tile), one large quote, a switcher of faces, and a carousel, optionally over a picture.",
3458
+ "registryDependencies": [
3459
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json"
3460
+ ],
3461
+ "dependencies": [],
3462
+ "files": [
3463
+ {
3464
+ "path": "registry/blocks/testimonials/index.js",
3465
+ "type": "registry:component",
3466
+ "target": "@components/makersclaw/blocks/testimonials/index.js"
3467
+ },
3468
+ {
3469
+ "path": "registry/blocks/testimonials/testimonials.jsx",
3470
+ "type": "registry:component",
3471
+ "target": "@components/makersclaw/blocks/testimonials/testimonials.jsx"
3472
+ },
3473
+ {
3474
+ "path": "registry/blocks/testimonials/README.md",
3475
+ "type": "registry:file",
3476
+ "target": "@components/makersclaw/blocks/testimonials/README.md"
3477
+ }
3478
+ ],
3479
+ "categories": [
3480
+ "testimonials",
3481
+ "reviews",
3482
+ "quotes",
3483
+ "social proof",
3484
+ "customers",
3485
+ "rating",
3486
+ "stars",
3487
+ "stats",
3488
+ "carousel",
3489
+ "marketing",
3490
+ "landing page",
3491
+ "case study"
3492
+ ],
3493
+ "docs": "Installed to components/makersclaw/blocks/testimonials. Import: import { Testimonials } from \"@/components/makersclaw/blocks/testimonials\". Props and an example: components/makersclaw/blocks/testimonials/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
3494
+ "meta": {
3495
+ "makersclaw": {
3496
+ "version": "0.3.0",
3497
+ "useWhen": "Social proof on a public page: a landing page, a pricing page, a product page, a case-study teaser. Not for reviews a signed-in user writes and manages (a record list or form), or an app's own activity feed."
3498
+ }
3499
+ }
3500
+ },
3501
+ {
3502
+ "name": "transaction-list",
3503
+ "type": "registry:block",
3504
+ "title": "TransactionList",
3505
+ "description": "Money records as a plain list, in two variants: history (payments in and out, grouped by month, a received / paid / pending / failed mark and a signed amount) and invoices (number, date, a Paid / Due in N days / N days overdue badge, amount, download). Optional date-range filter, Export and per-row download. Empty, loading and error states built in.",
3506
+ "registryDependencies": [
3507
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json"
3508
+ ],
3509
+ "dependencies": [],
3510
+ "files": [
3511
+ {
3512
+ "path": "registry/blocks/transaction-list/index.js",
3513
+ "type": "registry:component",
3514
+ "target": "@components/makersclaw/blocks/transaction-list/index.js"
3515
+ },
3516
+ {
3517
+ "path": "registry/blocks/transaction-list/transaction-list.jsx",
3518
+ "type": "registry:component",
3519
+ "target": "@components/makersclaw/blocks/transaction-list/transaction-list.jsx"
3520
+ },
3521
+ {
3522
+ "path": "registry/blocks/transaction-list/README.md",
3523
+ "type": "registry:file",
3524
+ "target": "@components/makersclaw/blocks/transaction-list/README.md"
3525
+ }
3526
+ ],
3527
+ "categories": [
3528
+ "transactions",
3529
+ "payments",
3530
+ "history",
3531
+ "invoices",
3532
+ "billing",
3533
+ "receipts",
3534
+ "money",
3535
+ "ledger",
3536
+ "activity",
3537
+ "statement",
3538
+ "download",
3539
+ "export",
3540
+ "finance"
3541
+ ],
3542
+ "docs": "Installed to components/makersclaw/blocks/transaction-list. Import: import { TransactionList } from \"@/components/makersclaw/blocks/transaction-list\". Props and an example: components/makersclaw/blocks/transaction-list/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
3543
+ "meta": {
3544
+ "makersclaw": {
3545
+ "version": "0.3.0",
3546
+ "useWhen": "A billing page's invoices, an account's payment history, a wallet's recent activity: records read top to bottom, newest first. Not for records the founder sorts, filters by column or totals (data-table), or for one order (order-detail)."
3547
+ }
3548
+ }
3549
+ },
3550
+ {
3551
+ "name": "whiteboard",
3552
+ "type": "registry:block",
3553
+ "title": "Whiteboard",
3554
+ "description": "A full-page freeform whiteboard on sketch-canvas: a top bar with the board's title (click to rename), the save state (Saving…, Saved, or the error with Retry), a Board / Text view switch, Export PNG and an optional Share button; under it the Miro-style canvas (tool rail, floating toolbar, zoom, undo). An empty board offers starter templates — blank, a grid of titled areas, a 2×2 matrix — and the Text view lists every word on the board for a screen reader or an agent. With onCreateTask, a selected note or text becomes a task from the top bar (\"Create task\", editable title; several notes make one task each), and a small badge marks it on the board from then on. The sketch is plain JSON; saves are async callbacks answering { ok }.",
3555
+ "registryDependencies": [
3556
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/core.json",
3557
+ "https://cdn.jsdelivr.net/npm/makersclaw@0.3.0/r/sketch-canvas.json"
3558
+ ],
3559
+ "dependencies": [],
3560
+ "files": [
3561
+ {
3562
+ "path": "registry/blocks/whiteboard/index.js",
3563
+ "type": "registry:component",
3564
+ "target": "@components/makersclaw/blocks/whiteboard/index.js"
3565
+ },
3566
+ {
3567
+ "path": "registry/blocks/whiteboard/whiteboard.jsx",
3568
+ "type": "registry:component",
3569
+ "target": "@components/makersclaw/blocks/whiteboard/whiteboard.jsx"
3570
+ },
3571
+ {
3572
+ "path": "registry/blocks/whiteboard/templates.js",
3573
+ "type": "registry:component",
3574
+ "target": "@components/makersclaw/blocks/whiteboard/templates.js"
3575
+ },
3576
+ {
3577
+ "path": "registry/blocks/whiteboard/README.md",
3578
+ "type": "registry:file",
3579
+ "target": "@components/makersclaw/blocks/whiteboard/README.md"
3580
+ }
3581
+ ],
3582
+ "categories": [
3583
+ "whiteboard",
3584
+ "board",
3585
+ "sketch",
3586
+ "draw",
3587
+ "drawing",
3588
+ "canvas",
3589
+ "excalidraw",
3590
+ "miro",
3591
+ "brainstorm",
3592
+ "matrix",
3593
+ "2x2",
3594
+ "grid",
3595
+ "template",
3596
+ "export",
3597
+ "png",
3598
+ "share",
3599
+ "task",
3600
+ "create task",
3601
+ "action items"
3602
+ ],
3603
+ "docs": "Installed to components/makersclaw/blocks/whiteboard. Import: import { Whiteboard, WHITEBOARD_TEMPLATES, gridSketch, matrixSketch } from \"@/components/makersclaw/blocks/whiteboard\". Props and an example: components/makersclaw/blocks/whiteboard/README.md. Makersclaw builds whole apps from these blocks: https://makersclaw.com",
222
3604
  "meta": {
223
3605
  "makersclaw": {
224
- "version": "0.2.0",
225
- "useWhen": "A surface has a verb that asks the agent to make or find something (\"Generate a launch plan\", \"Find 20 leads\", \"Plan next sprint\") and the founder should watch it happen where the result will land."
3606
+ "version": "0.3.0",
3607
+ "useWhen": "A screen is one board to think on: a team whiteboard, a planning or prioritisation board, a place to sketch an idea and keep it with a record. Not for marking up a screenshot (annotate), sketching a UI to build (sketch-to-app), a structured board of cards and connectors (flow-canvas), or a kanban (board)."
226
3608
  }
227
3609
  }
228
3610
  }