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,104 @@
1
+ "use client";
2
+
3
+ import { useState } from "react";
4
+ import { IconButton, cx } from "../../ui";
5
+
6
+ // ChatText — a message's words, drawn safely. No HTML is ever parsed and
7
+ // no markdown library is loaded: the text is split by hand and every piece
8
+ // is a React text node, so "<script>" in a message is shown, not run.
9
+ //
10
+ // What it understands, and nothing more:
11
+ // ```lang … ``` a code block (an unclosed fence runs to the end, so a
12
+ // block that is still streaming already looks like one)
13
+ // `code` a code span
14
+ // **bold** strong text
15
+ // line breaks kept as they were typed
16
+ // Links, headings, lists and tables stay plain text.
17
+
18
+ const FENCE = /```([^\n`]*)\n?([\s\S]*?)(?:```|$)/g;
19
+ const INLINE = /(`[^`\n]+`|\*\*[^*\n]+\*\*)/g;
20
+
21
+ function blocks(text) {
22
+ const out = [];
23
+ let last = 0;
24
+ for (const m of text.matchAll(FENCE)) {
25
+ // A block stands on its own line: the newline on either side of it is
26
+ // the block's, not the text's.
27
+ if (m.index > last) out.push({ type: "text", body: text.slice(last, m.index).replace(/\n$/, "") });
28
+ out.push({ type: "code", lang: m[1].trim(), body: m[2].replace(/\n$/, "") });
29
+ last = m.index + m[0].length;
30
+ if (text[last] === "\n") last += 1;
31
+ }
32
+ if (last < text.length) out.push({ type: "text", body: text.slice(last) });
33
+ return out;
34
+ }
35
+
36
+ function Inline({ text, tone }) {
37
+ return text.split(INLINE).map((piece, i) => {
38
+ if (piece.length > 2 && piece.startsWith("`") && piece.endsWith("`")) {
39
+ return (
40
+ <code
41
+ key={i}
42
+ className={cx("rounded-sm px-1 py-0.5 font-mono text-[0.9em]", tone === "primary" ? "bg-primary-foreground/15" : "bg-muted")}
43
+ >
44
+ {piece.slice(1, -1)}
45
+ </code>
46
+ );
47
+ }
48
+ if (piece.length > 4 && piece.startsWith("**") && piece.endsWith("**")) {
49
+ return (
50
+ <strong key={i} className="font-semibold">
51
+ {piece.slice(2, -2)}
52
+ </strong>
53
+ );
54
+ }
55
+ return piece;
56
+ });
57
+ }
58
+
59
+ function CodeBlock({ lang, body }) {
60
+ const [copied, setCopied] = useState(false);
61
+ async function copy() {
62
+ try {
63
+ await navigator.clipboard.writeText(body);
64
+ setCopied(true);
65
+ setTimeout(() => setCopied(false), 1500);
66
+ } catch {
67
+ // No clipboard (an insecure origin): the code is still selectable.
68
+ }
69
+ }
70
+ return (
71
+ <div className="my-2 min-w-0 overflow-hidden rounded-md border border-border bg-muted text-foreground first:mt-0 last:mb-0">
72
+ <div className="flex min-h-9 items-center justify-between gap-2 border-b border-border pl-3">
73
+ <span className="truncate font-mono text-xs text-muted-foreground">{lang || "code"}</span>
74
+ <IconButton icon={copied ? "check" : "copy"} label={copied ? "Copied" : "Copy code"} size="sm" onClick={copy} />
75
+ </div>
76
+ <pre className="overflow-x-auto p-3 font-mono text-xs leading-relaxed">
77
+ <code>{body}</code>
78
+ </pre>
79
+ </div>
80
+ );
81
+ }
82
+
83
+ /** The words of one message. `tone` is "primary" inside a user bubble;
84
+ * `trailing` sits inline after the last word (a streaming caret). */
85
+ export function ChatText({ text, tone, trailing, className }) {
86
+ const value = String(text ?? "");
87
+ const parts = blocks(value);
88
+ const end = parts.length - 1;
89
+ return (
90
+ <div className={cx("min-w-0 whitespace-pre-wrap [overflow-wrap:anywhere]", className)}>
91
+ {parts.map((b, i) =>
92
+ b.type === "code" ? (
93
+ <CodeBlock key={i} lang={b.lang} body={b.body} />
94
+ ) : (
95
+ <span key={i}>
96
+ <Inline text={b.body} tone={tone} />
97
+ {i === end ? trailing : null}
98
+ </span>
99
+ ),
100
+ )}
101
+ {parts[end]?.type === "text" ? null : trailing}
102
+ </div>
103
+ );
104
+ }
@@ -0,0 +1,210 @@
1
+ # CodeEditor
2
+
3
+ A code editor in the workspace theme. Three modes: **SQL** (keywords,
4
+ functions, and your database's tables and columns in autocomplete),
5
+ **JSON** (checked as you type; mistakes are underlined and said in plain
6
+ words — "A comma is missing before this", "Keys need double quotes") and
7
+ **plain text**. Line numbers, find and replace (Cmd/Ctrl+F), folding in
8
+ JSON, multiple cursors, and a run hook: Cmd/Ctrl+Enter runs the selection,
9
+ or the SQL statement under the cursor. A quiet status line under the text
10
+ shows problems (click to jump to the next one), the cursor's line and
11
+ column, the mode and — when there is a run hook — a Run button, which is
12
+ how a phone runs.
13
+
14
+ It is [CodeMirror 6](https://codemirror.net) (MIT) underneath. Every
15
+ colour is a workspace token read by the browser (`var(--color-…)`), so a
16
+ change of theme or of light/dark repaints it with no work. Syntax colours
17
+ come from the chart hues: keywords `chart-1` (the primary), text in
18
+ quotes `chart-2`, numbers and true/false/null `chart-3`, functions
19
+ `chart-4`, columns, keys and types `chart-5`; comments step back into
20
+ `muted-foreground`. `json-editor` and `sql-console` are built on this
21
+ block: they import it, never `@codemirror/*`.
22
+
23
+ ```jsx
24
+ import { CodeEditor, useCodeEditor } from "../components/blocks/code-editor"; // a Makersclaw app ("./blocks/code-editor" from components/)
25
+ import { CodeEditor, useCodeEditor } from "@/components/makersclaw/blocks/code-editor"; // a shadcn project
26
+ ```
27
+
28
+ `CodeEditor` is a client component: render it from a `"use client"`
29
+ component. The helpers (`splitStatements`, `statementAt`, `checkJson`,
30
+ `formatJson`…) are plain functions and work on the server too.
31
+
32
+ `makersclaw add code-editor` adds the CodeMirror packages
33
+ (`@codemirror/state`, `view`, `commands`, `language`, `autocomplete`,
34
+ `search`, `lint`, `lang-sql`, `lang-json`, and `@lezer/highlight` — pinned,
35
+ exact) to package.json: run `npm install` after. They load with the page
36
+ (no `import()`): the editor is created after the first render, and until
37
+ then — on the server — the box shows the text with its line numbers.
38
+
39
+ ## Props
40
+
41
+ - `value` — the text, controlled. A new `value` that is not the editor's
42
+ text replaces it (loading another query); pass back exactly what
43
+ `onChange` gave you and nothing resets, the cursor included.
44
+ - `defaultValue` — the starting text, uncontrolled. With neither, empty.
45
+ - `onChange(text)` — every edit, with the whole text. Debounce a save
46
+ yourself.
47
+ - `language` — `"text"` (default) · `"sql"` · `"json"`.
48
+ - `dialect` — SQL only: `"postgres"` (default) · `"mysql"` · `"mariadb"` ·
49
+ `"sqlite"` · `"mssql"` · `"standard"`. Sets keywords, functions and
50
+ quoting (and whether `\'` escapes a quote when finding the statement to
51
+ run: MySQL and MariaDB only).
52
+ - `schema` — SQL only: the tables autocomplete offers.
53
+ `[{ name, schema?, description?, columns: [{ name, type?, description?,
54
+ primaryKey? } | "name"] }]`. A table completes with its column count
55
+ beside it and its description in a side note; `deals.` offers its
56
+ columns with their types (`uuid · key`); in a query that names a table,
57
+ its columns complete bare. Tables with a `schema` nest under it
58
+ (`auth.users`); `defaultSchema` (e.g. `"public"`) lets that schema's
59
+ tables complete without the prefix. Change it and autocomplete follows.
60
+ - `completions` — extra words to complete in any mode: strings, or
61
+ `{ label, type?, detail?, info?, apply? }` (`type` picks the little icon:
62
+ `"variable"`, `"function"`, `"keyword"`, `"property"`, `"type"`).
63
+ Saved snippets, `{{variables}}`, function names.
64
+ - `onRun({ text, statement, from, to, selection, all })` — Cmd/Ctrl+Enter
65
+ and the Run button. `statement` is what to run: the selection when there
66
+ is one; else, in SQL, the statement under the cursor (split on `;` —
67
+ quotes, comments and `$$` bodies respected; a cursor just after a `;`
68
+ runs the statement before it); else the whole text. Shift+Cmd/Ctrl+Enter
69
+ runs everything (`all: true`). `from`/`to` are its offsets in `text`, so
70
+ a caller can map an error position back. The range lights up for a
71
+ moment. Without `onRun` there is no Run button and the keys do nothing.
72
+ - `runLabel` — the button's word, default `"Run"` (`"Run query"`,
73
+ `"Send"`).
74
+ - `onSave(text)` — Cmd/Ctrl+S (the browser's save dialog is held back).
75
+ Without it the keys are the browser's.
76
+ - `diagnostics` — problems found outside the editor (a database error, a
77
+ server-side check), drawn on the text: `[{ message, severity?, …where }]`
78
+ where "where" is `{ from, to }` offsets, `{ line, col?, endLine?,
79
+ endCol? }` (1-based; no `col` underlines the whole line) or
80
+ `{ position }` (a 1-based character position, as Postgres reports
81
+ `error.position`). `severity` is `"error"` (default), `"warning"` or
82
+ `"info"`. They belong to the text they were found in: **they show until
83
+ the text changes**, then clear themselves. Pass `[]` to clear sooner.
84
+ - `lint(text) → problems` — a check of your own, run 300ms after typing
85
+ stops; same shape as `diagnostics`; may be async.
86
+ - `validate` — JSON only: `true` (default) checks the text as you type.
87
+ - `readOnly` — `false` (default). `true` shows the text read-only: it can
88
+ still be selected, searched and copied.
89
+ - `lineNumbers` — `true` (default).
90
+ - `wrap` — `false` (default): long lines scroll sideways. `true` wraps.
91
+ - `placeholder` — shown while the text is empty: say what goes here
92
+ ("Write a query — try SELECT * FROM deals").
93
+ - `height` — a fixed height (px number or CSS length); the text scrolls
94
+ inside. Without it the editor grows with its text from `minHeight`
95
+ (120) to `maxHeight` (480), then scrolls.
96
+ - `tabSize` — `2` (default). Tab indents; **Esc then Tab** leaves the
97
+ editor, so it never traps the keyboard.
98
+ - `autoFocus` — `false` (default).
99
+ - `footer` — `true` (default) shows the status line. `false` hides it
100
+ (a block that draws its own).
101
+ - `frameless` — `false` (default). `true` drops the border and card fill,
102
+ for an editor inside a panel that already has them.
103
+ - `label` — what a screen reader calls the editor (default: the mode's
104
+ name).
105
+ - `editorRef` — a ref from `useCodeEditor()`; `.current` is the handle.
106
+ - `className` — the frame's classes (a width, a margin, `h-full`).
107
+
108
+ ### The handle
109
+
110
+ `const ed = useCodeEditor()`, `<CodeEditor editorRef={ed} />`, then:
111
+
112
+ - `ed.current.getValue()` / `setValue(text)`
113
+ - `getSelection()` → `{ from, to, text }` · `select(from, to?)` ·
114
+ `replaceSelection(text)` · `insert(text)` (at the cursor, then focus)
115
+ - `goTo(line, col?)` — move the cursor there, scroll, focus (a results
116
+ panel's "show me the error")
117
+ - `cursor()` → `{ line, col }`
118
+ - `statementAtCursor()` → `{ from, to, text }` or null
119
+ - `run(all?)` — as the keys; `format()` — JSON only, lays it out again
120
+ (also Shift+Alt+F)
121
+ - `focus()`; `view` — the CodeMirror view, for the rare thing no prop does
122
+
123
+ ### Keys
124
+
125
+ Cmd/Ctrl+Enter run · Shift+Cmd/Ctrl+Enter run all · Cmd/Ctrl+S save ·
126
+ Cmd/Ctrl+F find · Cmd/Ctrl+Z / Shift+Cmd/Ctrl+Z undo/redo ·
127
+ Ctrl+Space complete · Cmd/Ctrl+/ comment · Alt+drag a column ·
128
+ Shift+Alt+F format JSON · Esc, Tab leave the editor.
129
+
130
+ ## The helpers
131
+
132
+ Plain functions, on the server too.
133
+
134
+ - `splitStatements(sql, { backslash? })` → `[{ from, to, text }]` — the
135
+ statements in a script, trimmed, without their `;`. Comment-only
136
+ stretches are not statements.
137
+ - `statementAt(sql, pos, { backslash? })` → the statement to run for a
138
+ cursor at `pos`, or null.
139
+ - `sqlNamespace(tables)` → `{ namespace, tables }` — the `schema` prop as
140
+ the SQL mode reads it (you do not need it to use the editor).
141
+ - `checkJson(text, { allowEmpty? })` → `{ ok: true, value }` or
142
+ `{ ok: false, error: { message, from, to, line, col } }` — the same
143
+ words in every browser.
144
+ - `formatJson(text, { indent = 2, width = 80 })` → the text laid out
145
+ again, keys, order and numbers exactly as written (`indent: 0`
146
+ minifies); null when it is not valid JSON.
147
+ - `stringifyJson(value)` → a value as 2-space JSON, short lists on one
148
+ line.
149
+ - `lineCol(text, offset)`, `offsetOf(text, line, col)`,
150
+ `normalizeDiagnostics(text, problems)` — positions both ways.
151
+
152
+ ## Example
153
+
154
+ ```jsx
155
+ "use client";
156
+ import { useState } from "react";
157
+ import { CodeEditor, useCodeEditor } from "../components/blocks/code-editor";
158
+
159
+ const TABLES = [
160
+ { name: "deals", description: "Every open and closed deal", columns: [
161
+ { name: "id", type: "uuid", primaryKey: true },
162
+ { name: "account_id", type: "uuid" },
163
+ { name: "amount", type: "numeric" },
164
+ { name: "stage", type: "text", description: "lead · qualified · proposal · won · lost" },
165
+ { name: "closed_at", type: "timestamptz" },
166
+ ] },
167
+ { name: "accounts", columns: [{ name: "id", type: "uuid", primaryKey: true }, { name: "name", type: "text" }] },
168
+ ];
169
+
170
+ export function QueryBox({ runQuery }) {
171
+ const [sql, setSql] = useState("SELECT stage, sum(amount)\nFROM deals\nGROUP BY stage;");
172
+ const [problems, setProblems] = useState([]);
173
+ const ed = useCodeEditor();
174
+
175
+ async function run({ statement, from }) {
176
+ const r = await runQuery(statement); // your server action: { ok, rows } or { ok: false, error, position }
177
+ if (r.ok) setProblems([]);
178
+ else setProblems([{ position: from + (r.position ?? 1), message: r.error }]);
179
+ }
180
+
181
+ return (
182
+ <CodeEditor
183
+ language="sql"
184
+ schema={TABLES}
185
+ value={sql}
186
+ onChange={setSql}
187
+ onRun={run}
188
+ diagnostics={problems}
189
+ placeholder="Write a query — try SELECT * FROM deals"
190
+ editorRef={ed}
191
+ />
192
+ );
193
+ }
194
+ ```
195
+
196
+ JSON, read-only, fixed height:
197
+
198
+ ```jsx
199
+ <CodeEditor language="json" value={JSON.stringify(payload, null, 2)} readOnly height={240} />
200
+ ```
201
+
202
+ ## What it will not do
203
+
204
+ - It is not an IDE: no language server, no go-to-definition, no type
205
+ checking. SQL is checked by running it (hand the database's error back
206
+ through `diagnostics`); JSON is checked here.
207
+ - Modes are SQL, JSON and plain text. Another language is another mode
208
+ in this block, not a package a screen imports.
209
+ - It never runs anything: `onRun` hands you the statement.
210
+ - No live collaboration (that needs a sync server).
@@ -0,0 +1,22 @@
1
+ {
2
+ "name": "code-editor",
3
+ "title": "CodeEditor",
4
+ "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.",
5
+ "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).",
6
+ "tags": ["code", "editor", "codemirror", "sql", "query", "json", "syntax highlighting", "autocomplete", "lint", "monospace", "console", "script", "config"],
7
+ "exports": ["CodeEditor", "useCodeEditor", "LANGUAGES", "SQL_DIALECTS", "splitStatements", "statementAt", "sqlNamespace", "checkJson", "formatJson", "stringifyJson", "lineCol", "offsetOf", "normalizeDiagnostics"],
8
+ "files": ["index.js", "code-editor.jsx", "codemirror.js", "theme.js", "sql.js", "json.js", "text.js"],
9
+ "requires": [],
10
+ "dependencies": {
11
+ "@codemirror/state": "6.7.6",
12
+ "@codemirror/view": "6.43.13",
13
+ "@codemirror/commands": "6.11.1",
14
+ "@codemirror/language": "6.12.4",
15
+ "@codemirror/autocomplete": "6.20.3",
16
+ "@codemirror/search": "6.7.2",
17
+ "@codemirror/lint": "6.9.7",
18
+ "@codemirror/lang-sql": "6.10.0",
19
+ "@codemirror/lang-json": "6.0.2",
20
+ "@lezer/highlight": "1.2.3"
21
+ }
22
+ }