makersclaw 0.1.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 (478) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +41 -1
  3. package/THIRD-PARTY-NOTICES.md +180 -0
  4. package/package.json +15 -8
  5. package/r/annotate.json +62 -0
  6. package/r/approval-request.json +52 -0
  7. package/r/audio-player.json +74 -0
  8. package/r/auth-form.json +55 -0
  9. package/r/board.json +55 -0
  10. package/r/calendar-view.json +105 -0
  11. package/r/cart.json +62 -0
  12. package/r/chart.json +83 -0
  13. package/r/chat.json +95 -0
  14. package/r/code-editor.json +94 -0
  15. package/r/comment-box.json +64 -0
  16. package/r/contact-section.json +53 -0
  17. package/r/core.json +341 -0
  18. package/r/csv-import.json +63 -0
  19. package/r/data-table.json +69 -0
  20. package/r/diagram.json +74 -0
  21. package/r/doc-editor.json +82 -0
  22. package/r/doc-page.json +61 -0
  23. package/r/email-render.json +73 -0
  24. package/r/faq.json +50 -0
  25. package/r/file-upload.json +54 -0
  26. package/r/flow-canvas.json +93 -0
  27. package/r/footer.json +52 -0
  28. package/r/gantt.json +70 -0
  29. package/r/job-panel.json +56 -0
  30. package/r/json-editor.json +66 -0
  31. package/r/map.json +89 -0
  32. package/r/menubar.json +52 -0
  33. package/r/mind-map.json +67 -0
  34. package/r/navigation-menu.json +52 -0
  35. package/r/order-detail.json +54 -0
  36. package/r/org-chart.json +66 -0
  37. package/r/page-builder.json +105 -0
  38. package/r/payment-methods.json +51 -0
  39. package/r/pdf-document.json +79 -0
  40. package/r/pdf-viewer.json +88 -0
  41. package/r/product-detail.json +76 -0
  42. package/r/product-grid.json +65 -0
  43. package/r/record-form.json +67 -0
  44. package/r/record-notes.json +55 -0
  45. package/r/registry.json +3612 -0
  46. package/r/search-dialog.json +51 -0
  47. package/r/settings-list.json +66 -0
  48. package/r/setup-checklist.json +51 -0
  49. package/r/share-dialog.json +52 -0
  50. package/r/sidebar.json +69 -0
  51. package/r/signature-pad.json +72 -0
  52. package/r/sketch-canvas.json +99 -0
  53. package/r/spreadsheet.json +90 -0
  54. package/r/stat-cards.json +66 -0
  55. package/r/task-list.json +63 -0
  56. package/r/task-model.json +98 -0
  57. package/r/testimonials.json +52 -0
  58. package/r/transaction-list.json +53 -0
  59. package/r/whiteboard.json +66 -0
  60. package/registry/blocks/annotate/README.md +179 -0
  61. package/registry/blocks/annotate/annotate-data.js +250 -0
  62. package/registry/blocks/annotate/annotate.jsx +646 -0
  63. package/registry/blocks/annotate/block.json +10 -0
  64. package/registry/blocks/annotate/demo.jsx +135 -0
  65. package/registry/blocks/annotate/index.js +15 -0
  66. package/registry/blocks/approval-request/README.md +116 -0
  67. package/registry/blocks/approval-request/approval-request.jsx +386 -0
  68. package/registry/blocks/approval-request/block.json +10 -0
  69. package/registry/blocks/approval-request/demo.jsx +127 -0
  70. package/registry/blocks/approval-request/index.js +4 -0
  71. package/registry/blocks/audio-player/README.md +167 -0
  72. package/registry/blocks/audio-player/audio-player.jsx +623 -0
  73. package/registry/blocks/audio-player/block.json +14 -0
  74. package/registry/blocks/audio-player/colors.js +109 -0
  75. package/registry/blocks/audio-player/demo.jsx +209 -0
  76. package/registry/blocks/audio-player/index.js +6 -0
  77. package/registry/blocks/audio-player/time.js +67 -0
  78. package/registry/blocks/audio-player/wavesurfer.js +9 -0
  79. package/registry/blocks/auth-form/README.md +126 -0
  80. package/registry/blocks/auth-form/auth-form.jsx +568 -0
  81. package/registry/blocks/auth-form/block.json +10 -0
  82. package/registry/blocks/auth-form/demo.jsx +131 -0
  83. package/registry/blocks/auth-form/index.js +3 -0
  84. package/registry/blocks/board/README.md +64 -13
  85. package/registry/blocks/board/block.json +2 -2
  86. package/registry/blocks/board/board.jsx +237 -94
  87. package/registry/blocks/board/demo.jsx +103 -24
  88. package/registry/blocks/calendar-view/README.md +180 -0
  89. package/registry/blocks/calendar-view/agenda.jsx +147 -0
  90. package/registry/blocks/calendar-view/block.json +76 -0
  91. package/registry/blocks/calendar-view/calendar-model.js +442 -0
  92. package/registry/blocks/calendar-view/calendar.jsx +627 -0
  93. package/registry/blocks/calendar-view/demo.jsx +195 -0
  94. package/registry/blocks/calendar-view/draft.jsx +49 -0
  95. package/registry/blocks/calendar-view/index.js +39 -0
  96. package/registry/blocks/calendar-view/month.jsx +346 -0
  97. package/registry/blocks/calendar-view/paint.js +69 -0
  98. package/registry/blocks/calendar-view/time-grid.jsx +527 -0
  99. package/registry/blocks/calendar-view/tray.jsx +87 -0
  100. package/registry/blocks/cart/README.md +146 -0
  101. package/registry/blocks/cart/block.json +10 -0
  102. package/registry/blocks/cart/cart.jsx +597 -0
  103. package/registry/blocks/cart/demo.jsx +98 -0
  104. package/registry/blocks/cart/index.js +4 -0
  105. package/registry/blocks/cart/money.js +28 -0
  106. package/registry/blocks/chart/README.md +316 -0
  107. package/registry/blocks/chart/block.json +10 -0
  108. package/registry/blocks/chart/cartesian.jsx +642 -0
  109. package/registry/blocks/chart/core.jsx +262 -0
  110. package/registry/blocks/chart/demo.jsx +357 -0
  111. package/registry/blocks/chart/heatmap.jsx +336 -0
  112. package/registry/blocks/chart/index.js +8 -0
  113. package/registry/blocks/chart/pie.jsx +245 -0
  114. package/registry/blocks/chart/sparkline.jsx +88 -0
  115. package/registry/blocks/chat/README.md +273 -0
  116. package/registry/blocks/chat/attachment.jsx +95 -0
  117. package/registry/blocks/chat/block.json +10 -0
  118. package/registry/blocks/chat/chat.jsx +132 -0
  119. package/registry/blocks/chat/composer.jsx +364 -0
  120. package/registry/blocks/chat/demo.jsx +578 -0
  121. package/registry/blocks/chat/header.jsx +34 -0
  122. package/registry/blocks/chat/index.js +9 -0
  123. package/registry/blocks/chat/message.jsx +450 -0
  124. package/registry/blocks/chat/scroller.jsx +247 -0
  125. package/registry/blocks/chat/text.jsx +104 -0
  126. package/registry/blocks/code-editor/README.md +210 -0
  127. package/registry/blocks/code-editor/block.json +22 -0
  128. package/registry/blocks/code-editor/code-editor.jsx +534 -0
  129. package/registry/blocks/code-editor/codemirror.js +38 -0
  130. package/registry/blocks/code-editor/demo.jsx +205 -0
  131. package/registry/blocks/code-editor/index.js +8 -0
  132. package/registry/blocks/code-editor/json.js +317 -0
  133. package/registry/blocks/code-editor/sql.js +136 -0
  134. package/registry/blocks/code-editor/text.js +101 -0
  135. package/registry/blocks/code-editor/theme.js +186 -0
  136. package/registry/blocks/comment-box/README.md +123 -0
  137. package/registry/blocks/comment-box/block.json +10 -0
  138. package/registry/blocks/comment-box/comment-body.jsx +217 -0
  139. package/registry/blocks/comment-box/comment-box.jsx +198 -0
  140. package/registry/blocks/comment-box/comment-time.jsx +77 -0
  141. package/registry/blocks/comment-box/demo.jsx +141 -0
  142. package/registry/blocks/comment-box/index.js +8 -0
  143. package/registry/blocks/contact-section/README.md +152 -0
  144. package/registry/blocks/contact-section/block.json +11 -0
  145. package/registry/blocks/contact-section/contact-section.jsx +509 -0
  146. package/registry/blocks/contact-section/demo.jsx +93 -0
  147. package/registry/blocks/contact-section/index.js +4 -0
  148. package/registry/blocks/csv-import/README.md +133 -0
  149. package/registry/blocks/csv-import/block.json +13 -0
  150. package/registry/blocks/csv-import/csv-import.jsx +479 -0
  151. package/registry/blocks/csv-import/demo.jsx +106 -0
  152. package/registry/blocks/csv-import/import.js +200 -0
  153. package/registry/blocks/csv-import/index.js +7 -0
  154. package/registry/blocks/data-table/README.md +386 -0
  155. package/registry/blocks/data-table/block.json +10 -0
  156. package/registry/blocks/data-table/data-table.jsx +1164 -0
  157. package/registry/blocks/data-table/demo.jsx +588 -0
  158. package/registry/blocks/data-table/index.js +5 -0
  159. package/registry/blocks/data-table/model.js +169 -0
  160. package/registry/blocks/diagram/README.md +108 -0
  161. package/registry/blocks/diagram/block.json +13 -0
  162. package/registry/blocks/diagram/demo.jsx +113 -0
  163. package/registry/blocks/diagram/diagram.jsx +481 -0
  164. package/registry/blocks/diagram/index.js +7 -0
  165. package/registry/blocks/diagram/mermaid.js +52 -0
  166. package/registry/blocks/diagram/palette.js +313 -0
  167. package/registry/blocks/diagram/source.js +98 -0
  168. package/registry/blocks/doc-editor/README.md +215 -0
  169. package/registry/blocks/doc-editor/block.json +15 -0
  170. package/registry/blocks/doc-editor/demo.jsx +225 -0
  171. package/registry/blocks/doc-editor/doc-editor.jsx +291 -0
  172. package/registry/blocks/doc-editor/doc.js +309 -0
  173. package/registry/blocks/doc-editor/index.js +7 -0
  174. package/registry/blocks/doc-editor/schema.jsx +56 -0
  175. package/registry/blocks/doc-editor/shadcn-classes.js +110 -0
  176. package/registry/blocks/doc-editor/theme.js +82 -0
  177. package/registry/blocks/doc-page/README.md +119 -0
  178. package/registry/blocks/doc-page/autosave.js +104 -0
  179. package/registry/blocks/doc-page/block.json +10 -0
  180. package/registry/blocks/doc-page/demo.jsx +137 -0
  181. package/registry/blocks/doc-page/doc-page.jsx +276 -0
  182. package/registry/blocks/doc-page/index.js +4 -0
  183. package/registry/blocks/email-render/README.md +151 -0
  184. package/registry/blocks/email-render/block.json +14 -0
  185. package/registry/blocks/email-render/demo.jsx +153 -0
  186. package/registry/blocks/email-render/doc-email.jsx +210 -0
  187. package/registry/blocks/email-render/email.jsx +221 -0
  188. package/registry/blocks/email-render/index.js +10 -0
  189. package/registry/blocks/email-render/render.js +50 -0
  190. package/registry/blocks/email-render/theme.js +215 -0
  191. package/registry/blocks/faq/README.md +101 -0
  192. package/registry/blocks/faq/block.json +11 -0
  193. package/registry/blocks/faq/demo.jsx +89 -0
  194. package/registry/blocks/faq/faq.jsx +220 -0
  195. package/registry/blocks/faq/index.js +4 -0
  196. package/registry/blocks/file-upload/README.md +138 -0
  197. package/registry/blocks/file-upload/block.json +10 -0
  198. package/registry/blocks/file-upload/demo.jsx +204 -0
  199. package/registry/blocks/file-upload/file-upload.jsx +635 -0
  200. package/registry/blocks/file-upload/index.js +4 -0
  201. package/registry/blocks/flow-canvas/README.md +420 -0
  202. package/registry/blocks/flow-canvas/block.json +13 -0
  203. package/registry/blocks/flow-canvas/board.js +819 -0
  204. package/registry/blocks/flow-canvas/chrome.jsx +649 -0
  205. package/registry/blocks/flow-canvas/context.jsx +35 -0
  206. package/registry/blocks/flow-canvas/demo.jsx +249 -0
  207. package/registry/blocks/flow-canvas/edges.jsx +107 -0
  208. package/registry/blocks/flow-canvas/flow-canvas.jsx +1329 -0
  209. package/registry/blocks/flow-canvas/index.js +41 -0
  210. package/registry/blocks/flow-canvas/nodes.jsx +392 -0
  211. package/registry/blocks/flow-canvas/theme.js +174 -0
  212. package/registry/blocks/footer/README.md +133 -0
  213. package/registry/blocks/footer/block.json +11 -0
  214. package/registry/blocks/footer/demo.jsx +119 -0
  215. package/registry/blocks/footer/footer.jsx +406 -0
  216. package/registry/blocks/footer/index.js +4 -0
  217. package/registry/blocks/gantt/README.md +220 -0
  218. package/registry/blocks/gantt/block.json +10 -0
  219. package/registry/blocks/gantt/demo.jsx +148 -0
  220. package/registry/blocks/gantt/gantt.jsx +923 -0
  221. package/registry/blocks/gantt/index.js +7 -0
  222. package/registry/blocks/gantt/rows.jsx +468 -0
  223. package/registry/blocks/gantt/schedule.js +278 -0
  224. package/registry/blocks/job-panel/README.md +86 -2
  225. package/registry/blocks/job-panel/block.json +3 -3
  226. package/registry/blocks/job-panel/demo.jsx +230 -3
  227. package/registry/blocks/job-panel/job-panel.jsx +169 -3
  228. package/registry/blocks/json-editor/README.md +133 -0
  229. package/registry/blocks/json-editor/block.json +10 -0
  230. package/registry/blocks/json-editor/demo.jsx +92 -0
  231. package/registry/blocks/json-editor/index.js +7 -0
  232. package/registry/blocks/json-editor/json-editor.jsx +305 -0
  233. package/registry/blocks/json-editor/json-tree.jsx +393 -0
  234. package/registry/blocks/json-editor/tree.js +225 -0
  235. package/registry/blocks/map/README.md +221 -0
  236. package/registry/blocks/map/block.json +14 -0
  237. package/registry/blocks/map/demo.jsx +201 -0
  238. package/registry/blocks/map/geo.js +198 -0
  239. package/registry/blocks/map/index.js +8 -0
  240. package/registry/blocks/map/list.jsx +128 -0
  241. package/registry/blocks/map/map-view.jsx +715 -0
  242. package/registry/blocks/map/maplibre.js +30 -0
  243. package/registry/blocks/map/marks.jsx +146 -0
  244. package/registry/blocks/map/theme.js +142 -0
  245. package/registry/blocks/menubar/README.md +109 -0
  246. package/registry/blocks/menubar/block.json +10 -0
  247. package/registry/blocks/menubar/demo.jsx +128 -0
  248. package/registry/blocks/menubar/index.js +4 -0
  249. package/registry/blocks/menubar/menubar.jsx +199 -0
  250. package/registry/blocks/mind-map/README.md +206 -0
  251. package/registry/blocks/mind-map/block.json +10 -0
  252. package/registry/blocks/mind-map/demo.jsx +103 -0
  253. package/registry/blocks/mind-map/index.js +31 -0
  254. package/registry/blocks/mind-map/mind-map.jsx +1125 -0
  255. package/registry/blocks/mind-map/topic.jsx +143 -0
  256. package/registry/blocks/mind-map/tree.js +645 -0
  257. package/registry/blocks/navigation-menu/README.md +124 -0
  258. package/registry/blocks/navigation-menu/block.json +10 -0
  259. package/registry/blocks/navigation-menu/demo.jsx +84 -0
  260. package/registry/blocks/navigation-menu/index.js +4 -0
  261. package/registry/blocks/navigation-menu/navigation-menu.jsx +448 -0
  262. package/registry/blocks/order-detail/README.md +109 -0
  263. package/registry/blocks/order-detail/block.json +10 -0
  264. package/registry/blocks/order-detail/demo.jsx +88 -0
  265. package/registry/blocks/order-detail/index.js +4 -0
  266. package/registry/blocks/order-detail/order-detail.jsx +354 -0
  267. package/registry/blocks/org-chart/README.md +145 -0
  268. package/registry/blocks/org-chart/block.json +10 -0
  269. package/registry/blocks/org-chart/demo.jsx +94 -0
  270. package/registry/blocks/org-chart/index.js +7 -0
  271. package/registry/blocks/org-chart/org-chart.jsx +631 -0
  272. package/registry/blocks/org-chart/org.js +245 -0
  273. package/registry/blocks/org-chart/person.jsx +96 -0
  274. package/registry/blocks/page-builder/README.md +257 -0
  275. package/registry/blocks/page-builder/block.json +14 -0
  276. package/registry/blocks/page-builder/demo.jsx +145 -0
  277. package/registry/blocks/page-builder/grapes.js +18 -0
  278. package/registry/blocks/page-builder/index.js +11 -0
  279. package/registry/blocks/page-builder/page-builder.jsx +704 -0
  280. package/registry/blocks/page-builder/page-view.jsx +33 -0
  281. package/registry/blocks/page-builder/page.js +118 -0
  282. package/registry/blocks/page-builder/panels.jsx +588 -0
  283. package/registry/blocks/page-builder/sections.js +209 -0
  284. package/registry/blocks/page-builder/theme.js +87 -0
  285. package/registry/blocks/page-builder/thumbs.jsx +189 -0
  286. package/registry/blocks/page-builder/tokens.js +329 -0
  287. package/registry/blocks/payment-methods/README.md +104 -0
  288. package/registry/blocks/payment-methods/block.json +10 -0
  289. package/registry/blocks/payment-methods/demo.jsx +71 -0
  290. package/registry/blocks/payment-methods/index.js +4 -0
  291. package/registry/blocks/payment-methods/payment-methods.jsx +302 -0
  292. package/registry/blocks/pdf-document/README.md +213 -0
  293. package/registry/blocks/pdf-document/block.json +13 -0
  294. package/registry/blocks/pdf-document/demo.jsx +136 -0
  295. package/registry/blocks/pdf-document/index.js +33 -0
  296. package/registry/blocks/pdf-document/money.js +83 -0
  297. package/registry/blocks/pdf-document/pdf-document.jsx +144 -0
  298. package/registry/blocks/pdf-document/primitives.jsx +271 -0
  299. package/registry/blocks/pdf-document/quote.jsx +179 -0
  300. package/registry/blocks/pdf-document/theme.js +193 -0
  301. package/registry/blocks/pdf-viewer/README.md +191 -0
  302. package/registry/blocks/pdf-viewer/block.json +14 -0
  303. package/registry/blocks/pdf-viewer/demo.jsx +252 -0
  304. package/registry/blocks/pdf-viewer/helpers.js +270 -0
  305. package/registry/blocks/pdf-viewer/index.js +8 -0
  306. package/registry/blocks/pdf-viewer/notes.jsx +195 -0
  307. package/registry/blocks/pdf-viewer/pdf-viewer.jsx +1368 -0
  308. package/registry/blocks/pdf-viewer/pdfjs.js +37 -0
  309. package/registry/blocks/pdf-viewer/ssr-shim-end.js +6 -0
  310. package/registry/blocks/pdf-viewer/ssr-shim.js +44 -0
  311. package/registry/blocks/product-detail/README.md +217 -0
  312. package/registry/blocks/product-detail/block.json +10 -0
  313. package/registry/blocks/product-detail/demo.jsx +233 -0
  314. package/registry/blocks/product-detail/index.js +7 -0
  315. package/registry/blocks/product-detail/price.jsx +115 -0
  316. package/registry/blocks/product-detail/product-detail.jsx +348 -0
  317. package/registry/blocks/product-detail/product-media.jsx +102 -0
  318. package/registry/blocks/product-detail/product-options.jsx +144 -0
  319. package/registry/blocks/product-grid/README.md +162 -0
  320. package/registry/blocks/product-grid/block.json +10 -0
  321. package/registry/blocks/product-grid/demo.jsx +255 -0
  322. package/registry/blocks/product-grid/index.js +5 -0
  323. package/registry/blocks/product-grid/product-card.jsx +232 -0
  324. package/registry/blocks/product-grid/product-grid.jsx +235 -0
  325. package/registry/blocks/record-form/README.md +196 -0
  326. package/registry/blocks/record-form/block.json +10 -0
  327. package/registry/blocks/record-form/demo.jsx +525 -0
  328. package/registry/blocks/record-form/index.js +4 -0
  329. package/registry/blocks/record-form/record-fields.jsx +457 -0
  330. package/registry/blocks/record-form/record-form.jsx +415 -0
  331. package/registry/blocks/record-form/rules.js +81 -0
  332. package/registry/blocks/record-notes/README.md +139 -0
  333. package/registry/blocks/record-notes/block.json +10 -0
  334. package/registry/blocks/record-notes/demo.jsx +179 -0
  335. package/registry/blocks/record-notes/index.js +4 -0
  336. package/registry/blocks/record-notes/record-notes.jsx +266 -0
  337. package/registry/blocks/search-dialog/README.md +108 -0
  338. package/registry/blocks/search-dialog/block.json +10 -0
  339. package/registry/blocks/search-dialog/demo.jsx +116 -0
  340. package/registry/blocks/search-dialog/index.js +3 -0
  341. package/registry/blocks/search-dialog/search-dialog.jsx +235 -0
  342. package/registry/blocks/settings-list/README.md +171 -0
  343. package/registry/blocks/settings-list/block.json +10 -0
  344. package/registry/blocks/settings-list/demo.jsx +333 -0
  345. package/registry/blocks/settings-list/index.js +4 -0
  346. package/registry/blocks/settings-list/row-state.jsx +93 -0
  347. package/registry/blocks/settings-list/settings-list.jsx +349 -0
  348. package/registry/blocks/settings-list/settings-matrix.jsx +118 -0
  349. package/registry/blocks/setup-checklist/README.md +142 -0
  350. package/registry/blocks/setup-checklist/block.json +10 -0
  351. package/registry/blocks/setup-checklist/demo.jsx +159 -0
  352. package/registry/blocks/setup-checklist/index.js +4 -0
  353. package/registry/blocks/setup-checklist/setup-checklist.jsx +446 -0
  354. package/registry/blocks/share-dialog/README.md +113 -0
  355. package/registry/blocks/share-dialog/block.json +10 -0
  356. package/registry/blocks/share-dialog/demo.jsx +140 -0
  357. package/registry/blocks/share-dialog/index.js +3 -0
  358. package/registry/blocks/share-dialog/share-dialog.jsx +384 -0
  359. package/registry/blocks/sidebar/README.md +190 -0
  360. package/registry/blocks/sidebar/block.json +43 -0
  361. package/registry/blocks/sidebar/demo.jsx +577 -0
  362. package/registry/blocks/sidebar/index.js +4 -0
  363. package/registry/blocks/sidebar/sidebar-panel.jsx +149 -0
  364. package/registry/blocks/sidebar/sidebar.jsx +864 -0
  365. package/registry/blocks/signature-pad/README.md +137 -0
  366. package/registry/blocks/signature-pad/block.json +13 -0
  367. package/registry/blocks/signature-pad/colors.js +115 -0
  368. package/registry/blocks/signature-pad/demo.jsx +94 -0
  369. package/registry/blocks/signature-pad/index.js +6 -0
  370. package/registry/blocks/signature-pad/pad.js +7 -0
  371. package/registry/blocks/signature-pad/signature-pad.jsx +434 -0
  372. package/registry/blocks/signature-pad/signature.js +68 -0
  373. package/registry/blocks/sketch-canvas/README.md +280 -0
  374. package/registry/blocks/sketch-canvas/block.json +13 -0
  375. package/registry/blocks/sketch-canvas/demo.jsx +159 -0
  376. package/registry/blocks/sketch-canvas/excalidraw.js +40 -0
  377. package/registry/blocks/sketch-canvas/index.js +9 -0
  378. package/registry/blocks/sketch-canvas/palette.js +226 -0
  379. package/registry/blocks/sketch-canvas/sketch-canvas.jsx +1188 -0
  380. package/registry/blocks/sketch-canvas/sketch.js +179 -0
  381. package/registry/blocks/sketch-canvas/ssr-shim-end.js +6 -0
  382. package/registry/blocks/sketch-canvas/ssr-shim.js +45 -0
  383. package/registry/blocks/sketch-canvas/stamps.js +104 -0
  384. package/registry/blocks/sketch-canvas/theme.js +131 -0
  385. package/registry/blocks/spreadsheet/README.md +307 -0
  386. package/registry/blocks/spreadsheet/block.json +13 -0
  387. package/registry/blocks/spreadsheet/cells.jsx +455 -0
  388. package/registry/blocks/spreadsheet/chrome.jsx +325 -0
  389. package/registry/blocks/spreadsheet/demo.jsx +177 -0
  390. package/registry/blocks/spreadsheet/grid.js +387 -0
  391. package/registry/blocks/spreadsheet/index.js +34 -0
  392. package/registry/blocks/spreadsheet/spreadsheet.jsx +1732 -0
  393. package/registry/blocks/spreadsheet/types.js +473 -0
  394. package/registry/blocks/stat-cards/README.md +173 -0
  395. package/registry/blocks/stat-cards/block.json +10 -0
  396. package/registry/blocks/stat-cards/demo.jsx +257 -0
  397. package/registry/blocks/stat-cards/index.js +4 -0
  398. package/registry/blocks/stat-cards/stat-cards.jsx +307 -0
  399. package/registry/blocks/stat-cards/usage.jsx +243 -0
  400. package/registry/blocks/task-list/README.md +176 -0
  401. package/registry/blocks/task-list/block.json +10 -0
  402. package/registry/blocks/task-list/demo.jsx +134 -0
  403. package/registry/blocks/task-list/index.js +5 -0
  404. package/registry/blocks/task-list/task-list.jsx +907 -0
  405. package/registry/blocks/task-model/README.md +455 -0
  406. package/registry/blocks/task-model/block.json +167 -0
  407. package/registry/blocks/task-model/changes.js +89 -0
  408. package/registry/blocks/task-model/dates.js +371 -0
  409. package/registry/blocks/task-model/demo.jsx +215 -0
  410. package/registry/blocks/task-model/dnd.jsx +240 -0
  411. package/registry/blocks/task-model/index.js +97 -0
  412. package/registry/blocks/task-model/model.js +919 -0
  413. package/registry/blocks/task-model/parts.jsx +449 -0
  414. package/registry/blocks/task-model/toolbar.jsx +271 -0
  415. package/registry/blocks/testimonials/README.md +139 -0
  416. package/registry/blocks/testimonials/block.json +11 -0
  417. package/registry/blocks/testimonials/demo.jsx +137 -0
  418. package/registry/blocks/testimonials/index.js +4 -0
  419. package/registry/blocks/testimonials/testimonials.jsx +430 -0
  420. package/registry/blocks/transaction-list/README.md +126 -0
  421. package/registry/blocks/transaction-list/block.json +10 -0
  422. package/registry/blocks/transaction-list/demo.jsx +79 -0
  423. package/registry/blocks/transaction-list/index.js +4 -0
  424. package/registry/blocks/transaction-list/transaction-list.jsx +383 -0
  425. package/registry/blocks/whiteboard/README.md +179 -0
  426. package/registry/blocks/whiteboard/block.json +10 -0
  427. package/registry/blocks/whiteboard/demo.jsx +169 -0
  428. package/registry/blocks/whiteboard/index.js +6 -0
  429. package/registry/blocks/whiteboard/templates.js +150 -0
  430. package/registry/blocks/whiteboard/whiteboard.jsx +721 -0
  431. package/src/install.mjs +18 -0
  432. package/src/shadcn.mjs +171 -0
  433. package/templates/next/files/README.md +145 -11
  434. package/templates/next/files/app/globals.css +55 -4
  435. package/templates/next/files/check/run.mjs +3 -3
  436. package/templates/next/files/components/parts/fixture.jsx +1 -1
  437. package/templates/next/files/components/parts/sample.js +15 -0
  438. package/templates/next/files/components/ui/avatar.jsx +141 -0
  439. package/templates/next/files/components/ui/breadcrumb.jsx +149 -0
  440. package/templates/next/files/components/ui/button-group.jsx +70 -0
  441. package/templates/next/files/components/ui/button.jsx +132 -12
  442. package/templates/next/files/components/ui/calendar.jsx +609 -0
  443. package/templates/next/files/components/ui/carousel.jsx +281 -0
  444. package/templates/next/files/components/ui/collapsible.jsx +208 -0
  445. package/templates/next/files/components/ui/combobox.jsx +608 -0
  446. package/templates/next/files/components/ui/command.jsx +577 -0
  447. package/templates/next/files/components/ui/context-menu.jsx +191 -0
  448. package/templates/next/files/components/ui/date-picker.jsx +360 -0
  449. package/templates/next/files/components/ui/distribution.jsx +117 -0
  450. package/templates/next/files/components/ui/feedback.jsx +143 -0
  451. package/templates/next/files/components/ui/field.jsx +115 -3
  452. package/templates/next/files/components/ui/file-input.jsx +234 -0
  453. package/templates/next/files/components/ui/icon.jsx +130 -8
  454. package/templates/next/files/components/ui/image.jsx +143 -0
  455. package/templates/next/files/components/ui/index.js +47 -2
  456. package/templates/next/files/components/ui/input-group.jsx +213 -0
  457. package/templates/next/files/components/ui/input-otp.jsx +170 -0
  458. package/templates/next/files/components/ui/item.jsx +206 -0
  459. package/templates/next/files/components/ui/menu.jsx +454 -82
  460. package/templates/next/files/components/ui/notice.jsx +126 -14
  461. package/templates/next/files/components/ui/pagination.jsx +156 -0
  462. package/templates/next/files/components/ui/popover.jsx +284 -0
  463. package/templates/next/files/components/ui/radio.jsx +193 -0
  464. package/templates/next/files/components/ui/rating.jsx +131 -0
  465. package/templates/next/files/components/ui/resizable.jsx +338 -0
  466. package/templates/next/files/components/ui/scroll-area.jsx +123 -0
  467. package/templates/next/files/components/ui/separator.jsx +119 -0
  468. package/templates/next/files/components/ui/sheet.jsx +96 -11
  469. package/templates/next/files/components/ui/slider.jsx +174 -0
  470. package/templates/next/files/components/ui/stat.jsx +574 -0
  471. package/templates/next/files/components/ui/steps.jsx +338 -0
  472. package/templates/next/files/components/ui/swatch.jsx +33 -0
  473. package/templates/next/files/components/ui/table.jsx +130 -0
  474. package/templates/next/files/components/ui/toast.jsx +440 -0
  475. package/templates/next/files/components/ui/toggle.jsx +195 -0
  476. package/templates/next/files/components/ui/tooltip.jsx +270 -0
  477. package/templates/next/files/lib/sample.js +4 -12
  478. package/templates/next/template.json +264 -8
@@ -0,0 +1,127 @@
1
+ "use client";
2
+
3
+ // ApprovalRequest with the request in memory — the gallery's and the
4
+ // smoke test's surface. Not installed into apps: `makersclaw add
5
+ // approval-request` lays index.js and approval-request.jsx only.
6
+ import { useState } from "react";
7
+ import { Button, Field, Select, Switch, ToggleGroup } from "../components/ui";
8
+ import { ApprovalRequest } from "../components/blocks/approval-request";
9
+
10
+ const VARIANTS = [
11
+ { value: "card", label: "Card — the request alone" },
12
+ { value: "page", label: "Page — details beside the card" },
13
+ { value: "refund", label: "Card — a refund, no reason needed" },
14
+ ];
15
+
16
+ const PURCHASE = {
17
+ title: "Linear Business",
18
+ kind: "Per seat",
19
+ details: [
20
+ { label: "Starts", value: "1 October 2026", icon: "calendar" },
21
+ { label: "Seats", value: "24 people", icon: "users" },
22
+ { label: "Billed", value: "Yearly, by invoice", icon: "credit-card" },
23
+ { label: "Yearly cost", value: "$4,608", icon: "dollar", emphasis: true },
24
+ ],
25
+ requester: { name: "Priya Raman", role: "Head of Engineering" },
26
+ requestedAt: "2026-09-21",
27
+ justification:
28
+ "The team has outgrown the free plan's issue limit, and Business adds the triage queue we keep building by hand. 24 seats covers engineering and design through Q2.",
29
+ sections: [
30
+ {
31
+ title: "What is bought",
32
+ fields: [
33
+ { label: "Product", value: "Linear Business" },
34
+ { label: "Vendor", value: "Linear Orbit, Inc." },
35
+ { label: "Licence", value: "Per seat, cancel at renewal" },
36
+ { label: "Term", value: "12 months" },
37
+ ],
38
+ },
39
+ {
40
+ title: "Billing",
41
+ fields: [
42
+ { label: "Cycle", value: "Yearly" },
43
+ { label: "Paid by", value: "Invoice, 30 days" },
44
+ { label: "Cost centre", value: "Engineering" },
45
+ { label: "Yearly total", value: "$4,608", emphasis: true },
46
+ ],
47
+ },
48
+ ],
49
+ };
50
+
51
+ const REFUND = {
52
+ title: "Refund for order 20931",
53
+ kind: "Refund",
54
+ details: [
55
+ { label: "Customer", value: "Harbor & Pine Coffee", icon: "building" },
56
+ { label: "Reason given", value: "Charged twice for September", icon: "receipt" },
57
+ { label: "Amount", value: "€149.00", icon: "dollar", emphasis: true },
58
+ ],
59
+ requester: { name: "Tomás Ferreira", role: "Support" },
60
+ requestedAt: "2026-09-23",
61
+ };
62
+
63
+ export default function ApprovalRequestDemo() {
64
+ const [variant, setVariant] = useState("card");
65
+ const [state, setState] = useState("request");
66
+ const [failNext, setFailNext] = useState(false);
67
+ const [round, setRound] = useState(0);
68
+
69
+ async function decide() {
70
+ await new Promise((r) => setTimeout(r, 800));
71
+ if (failNext) {
72
+ setFailNext(false);
73
+ return { ok: false, error: "The decision was not saved: the server did not answer. Try again." };
74
+ }
75
+ return { ok: true };
76
+ }
77
+
78
+ const data = variant === "refund" ? REFUND : PURCHASE;
79
+ const decided = state === "approved" || state === "rejected";
80
+
81
+ return (
82
+ <div className="grid gap-4">
83
+ <div className="flex flex-wrap items-end gap-x-4 gap-y-2">
84
+ <Field id="ar-variant" label="Variant" className="w-full sm:w-72">
85
+ <Select id="ar-variant" value={variant} onChange={(e) => setVariant(e.target.value)} options={VARIANTS} />
86
+ </Field>
87
+ <ToggleGroup
88
+ size="sm"
89
+ aria-label="Demo state"
90
+ value={state}
91
+ onChange={setState}
92
+ items={[
93
+ { value: "request", label: "Pending" },
94
+ { value: "rejected", label: "Decided" },
95
+ { value: "loading", label: "Loading" },
96
+ { value: "empty", label: "Empty" },
97
+ ]}
98
+ />
99
+ </div>
100
+ <div className="flex flex-wrap items-center gap-x-4">
101
+ <Switch id="ar-fail" checked={failNext} onChange={(e) => setFailNext(e.target.checked)} label="Fail the next decision" />
102
+ <Button variant="quiet" size="sm" icon="refresh" onClick={() => setRound((n) => n + 1)}>
103
+ Start over
104
+ </Button>
105
+ </div>
106
+ <div className={variant === "page" ? "w-full" : "mx-auto grid w-full max-w-md"}>
107
+ <ApprovalRequest
108
+ key={`${variant}-${state}-${round}`}
109
+ variant={variant === "page" ? "page" : "card"}
110
+ heading={variant === "page" ? "Software purchase request" : undefined}
111
+ description={variant === "page" ? "Check the details, then approve or reject it." : undefined}
112
+ {...(state === "empty" ? {} : data)}
113
+ status={decided ? "rejected" : "pending"}
114
+ decidedBy={decided ? "Maya Okafor" : undefined}
115
+ decidedAt={decided ? "2026-09-22" : undefined}
116
+ decisionNote={decided ? "Over this quarter's tools budget. Ask again in January with the Q1 plan." : undefined}
117
+ loading={state === "loading"}
118
+ onApprove={decide}
119
+ onReject={decide}
120
+ reasonRequired={variant !== "refund"}
121
+ rejectLabel={variant === "refund" ? "Decline" : "Reject"}
122
+ approveLabel={variant === "refund" ? "Refund €149.00" : "Approve"}
123
+ />
124
+ </div>
125
+ </div>
126
+ );
127
+ }
@@ -0,0 +1,4 @@
1
+ // The ApprovalRequest block — `makersclaw add approval-request`. Fixed:
2
+ // compose it through its props (README.md beside this file); a request it
3
+ // cannot be is your own component in components/.
4
+ export { ApprovalRequest } from "./approval-request";
@@ -0,0 +1,167 @@
1
+ # AudioPlayer
2
+
3
+ A waveform audio player in the workspace theme. Play, skip back and
4
+ forward 15 seconds, change speed, mute. Hover the waveform to read the
5
+ time; click it to jump; drag across it to mark a region. **Regions** are
6
+ spans of the audio in a theme tone — a topic, a speaker turn, a clip —
7
+ tinted on the waveform and labelled in a lane under it; click a label to
8
+ play just that span. **Markers** are moments — a comment, a flag — shown
9
+ as pins above the waveform; click one to jump there. "Marker" adds one at
10
+ the playhead. It loads with a skeleton waveform, says so plainly when a
11
+ file will not play, and shows a friendly empty state when there is no
12
+ audio yet.
13
+
14
+ It is [wavesurfer.js](https://wavesurfer.xyz) (BSD-3-Clause) underneath:
15
+ it decodes, plays and paints the waveform. Regions, markers, the hover
16
+ line, the controls and every state are ours, in the kit. The blocks built
17
+ on this one — `call-review` — import it, never `wavesurfer.js`.
18
+
19
+ ```jsx
20
+ import { AudioPlayer, useAudioPlayer } from "../components/blocks/audio-player"; // a Makersclaw app ("./blocks/audio-player" from components/)
21
+ import { AudioPlayer, useAudioPlayer } from "@/components/makersclaw/blocks/audio-player"; // a shadcn project
22
+ ```
23
+
24
+ `AudioPlayer` is a client component: render it from a `"use client"`
25
+ component. `formatTime`, `formatRange`, `spokenTime` and `regionAt` are
26
+ plain functions and work on the server.
27
+
28
+ `makersclaw add audio-player` adds `wavesurfer.js` and
29
+ `@wavesurfer/react` (pinned, exact) to package.json: run `npm install`
30
+ after. Both load with the page (no `import()`); the player itself starts
31
+ in the browser, and until then the frame shows a skeleton waveform.
32
+
33
+ ## The data
34
+
35
+ Times are **seconds** from the start of the audio (numbers, fractions
36
+ allowed).
37
+
38
+ ```js
39
+ // a region: a span of the audio
40
+ { id: "pricing", start: 12.4, end: 25.6, label: "Pricing and SSO", tone: "chart-3" }
41
+
42
+ // a marker: a moment
43
+ { id: "m1", time: 17.2, label: "Asked whether SSO is on every plan", tone: "warning" }
44
+ ```
45
+
46
+ - `id` — unique within its list; it comes back to you in the callbacks.
47
+ - `label` — shown in the lane (a region) or the tooltip (both), and read
48
+ to a screen reader. Keep it short.
49
+ - `tone` — a theme token, never a colour: `primary` (the default),
50
+ `chart-2` … `chart-5`, `success`, `warning`, `info`, `destructive`,
51
+ `muted`. `TONES` lists them. Use the `chart-*` tones for kinds (topics,
52
+ speakers) and the status tones for meaning (a risk, a win).
53
+ - Any other keys ride along untouched (a comment's author, a transcript
54
+ line's id…) and come back in `onRegionClick`, `onMarkerClick` and
55
+ `onActiveRegionChange`.
56
+ - Regions may overlap; where they do, the one that started last is the
57
+ active one. Anything past the end of the audio is clipped to it.
58
+
59
+ ## Props
60
+
61
+ - `src` — the audio: a URL (`https://…`, `/api/recordings/123`, a
62
+ `data:` URL) or a `Blob` / `File` (from an upload, a recording). A Blob
63
+ plays through an object URL the player makes and revokes. Nothing
64
+ (`null`) shows the empty state.
65
+ - `peaks` — optional precomputed waveform (`[Float32Array | number[]]`,
66
+ one per channel) with `duration`: the waveform draws at once without
67
+ decoding the file — use it for long calls. Keep the array's identity
68
+ stable (state or `useMemo`); a new array rebuilds the player.
69
+ - `duration` — seconds, with `peaks`. Otherwise it is read from the file.
70
+ - `title`, `description` — the heading over the waveform and the muted
71
+ line under it ("Discovery call · Northwind", "Maya and Leo · Sep 18").
72
+ - `regions` — `[{ id, start, end, label?, tone? }]` (default none).
73
+ - `markers` — `[{ id, time, label?, tone? }]` (default none).
74
+ - `onAddMarker({ time })` — shows the "Marker" button (and the M key); the
75
+ new pin appears at once, dimmed, while you save. Add the marker to
76
+ `markers` and return `{ ok: true }`; return `{ ok: false, error }` (or
77
+ throw) and the pin goes, with a notice that says why. Without it there
78
+ is no button.
79
+ - `onRegionCreate({ start, end })` — makes a drag across the waveform
80
+ mark a region (a crosshair cursor, the span and its times shown while
81
+ dragging; shorter than half a second counts as a click). Same promise
82
+ as `onAddMarker`: add it to `regions`, return `{ ok }`. Without it a
83
+ drag scrubs.
84
+ - `onMarkerClick(marker)` — after the jump to it.
85
+ - `onRegionClick(region)` — after it starts playing (it stops at its end).
86
+ - `onActiveRegionChange(region | null)` — once each time the region under
87
+ the playhead changes (a transcript highlighting the line being said).
88
+ - `onTimeUpdate(seconds)` — continuously while playing (every frame):
89
+ keep it cheap.
90
+ - `onSeek(seconds)` — every jump: a click, a key, a skip, a pin, the handle.
91
+ - `onReady({ duration })`, `onPlay()`, `onPause()`, `onFinish()`,
92
+ `onError(error)` — as named.
93
+ - `rates` — the speeds offered, default `[0.75, 1, 1.25, 1.5, 2]`.
94
+ - `defaultRate` — the starting speed, default `1`.
95
+ - `skipSeconds` — the skip buttons' step (and J / L, Page Up / Down),
96
+ default `15`.
97
+ - `emptyTitle`, `emptyBody`, `emptyAction` — the empty state's words and
98
+ one action (a node: an upload button). Defaults: "No recording yet",
99
+ "When there is audio to play, it shows up here.", none.
100
+ - `bare` — no card around it (no border, background or padding), for a
101
+ player inside your own card or row. Default `false`.
102
+ - `playerRef` — a ref from `useAudioPlayer()` for the handle below.
103
+ - `className` — on the outer element.
104
+
105
+ ### The handle
106
+
107
+ ```jsx
108
+ const player = useAudioPlayer();
109
+ <AudioPlayer src={url} playerRef={player} />;
110
+ player.current?.seek(84);
111
+ ```
112
+
113
+ `play()`, `pause()`, `toggle()`, `seek(seconds)`, `skip(±seconds)`,
114
+ `playRange(start, end?)` (stops at `end`), `playRegion(id)`,
115
+ `setRate(n)`, `setMuted(bool)`, `addMarker()` (as the button),
116
+ `getTime()`, `getDuration()`, `isPlaying()`, `isReady()`. Calls before
117
+ the audio is ready do nothing.
118
+
119
+ ### Keys
120
+
121
+ On the waveform (a slider, one Tab stop): ← / → 5 seconds, Page Down /
122
+ Page Up `skipSeconds`, Home / End, Space or Enter to play or pause.
123
+ Anywhere in the player (not while typing, not with ⌘ / Ctrl / Alt): K
124
+ play / pause, J / L back / forward `skipSeconds`, M add a marker. Pins
125
+ and region labels are buttons in Tab order.
126
+
127
+ ## Example
128
+
129
+ A call recording with its topics and comments, saved with
130
+ `lib/actions.js` in a Makersclaw app.
131
+
132
+ ```jsx
133
+ "use client";
134
+ import { useState } from "react";
135
+ import { insertRow } from "../lib/actions";
136
+ import { AudioPlayer } from "./blocks/audio-player";
137
+
138
+ export default function CallRecording({ call, topics, comments: initial }) {
139
+ const [comments, setComments] = useState(initial);
140
+ return (
141
+ <AudioPlayer
142
+ src={call.recording_url}
143
+ title={call.title}
144
+ description={`${call.participants} · ${call.date}`}
145
+ regions={topics.map((t) => ({ id: t.id, start: t.start_s, end: t.end_s, label: t.name, tone: "chart-2" }))}
146
+ markers={comments.map((c) => ({ id: c.id, time: c.at_s, label: c.body, tone: "primary" }))}
147
+ onAddMarker={async ({ time }) => {
148
+ const values = { call_id: call.id, at_s: time, body: "New comment" };
149
+ const res = await insertRow({ source: "public.call_comments", values });
150
+ if (res.ok) setComments((cs) => [...cs, { ...values, id: res.id }]);
151
+ return res;
152
+ }}
153
+ />
154
+ );
155
+ }
156
+ ```
157
+
158
+ ## What it will not do
159
+
160
+ - Record from the microphone, or play video.
161
+ - Zoom or scroll the waveform: the whole recording always fits the
162
+ width (a long call reads as an overview; use `peaks` so it draws fast).
163
+ - Move, resize, rename or delete a region, or edit a marker, inside the
164
+ player: those are your list's actions — change `regions` / `markers`.
165
+ - Show a volume slider (mute only; the device's volume does the rest).
166
+ - Stream: the file is fetched and decoded in the browser (pass `peaks`
167
+ and `duration` for long files).