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,307 @@
1
+ # Spreadsheet
2
+
3
+ A table you edit like Google Sheets or Airtable. Click a cell and type;
4
+ Enter edits, Tab and the arrows move, Shift extends a range, ⌘C / ⌘V copy
5
+ and paste ranges to and from Sheets and Excel, drag the small square at a
6
+ range's corner to fill down, ⌘Z undoes. Every column has a type — text,
7
+ number, currency, date, single select, multiple select, person, checkbox,
8
+ link, rating — and each type draws its own cell and opens its own editor
9
+ (a calendar for a date, a searchable list for a select or a person). Drag
10
+ a header to reorder, its edge to resize; its menu sorts, filters, renames,
11
+ changes the type, inserts, freezes, hides and deletes. The toolbar has
12
+ search, a filter panel, a sort panel, show/hide fields and "Add row"; the
13
+ line under the grid counts rows and sums the selected numbers.
14
+
15
+ It is virtualised in both directions (`@tanstack/react-virtual`): only the
16
+ cells in the window are drawn, so 10,000 rows scroll like ten. On a phone
17
+ the rows grow to 44px, the frozen column narrows, a tap selects and a
18
+ second tap edits; long-press opens the row menu.
19
+
20
+ ```jsx
21
+ import { Spreadsheet } from "../components/blocks/spreadsheet"; // a Makersclaw app ("./blocks/spreadsheet" from components/)
22
+ import { Spreadsheet } from "@/components/makersclaw/blocks/spreadsheet"; // a shadcn project
23
+ ```
24
+
25
+ It is a client component: render it from a `"use client"` component, and
26
+ load the rows in the server surface (README §4). `makersclaw add
27
+ spreadsheet` adds `@tanstack/react-virtual` (pinned, exact) to
28
+ package.json: run `npm install` after. The helpers (the type registry,
29
+ `processRows`, TSV) are plain functions and run on the server too.
30
+ Blocks built on this one (base-view, csv-import) import it, never the
31
+ virtualiser.
32
+
33
+ ## The data
34
+
35
+ `rows` — plain objects with a unique `id`; each column reads one key.
36
+ `columns` — what each key is:
37
+
38
+ ```js
39
+ const COLUMNS = [
40
+ { key: "company", name: "Company", type: "text", width: 200, required: true },
41
+ { key: "stage", name: "Stage", type: "select",
42
+ options: [{ value: "lead", label: "Lead", hue: 5 }, { value: "won", label: "Won", hue: 1 }] },
43
+ { key: "value", name: "Deal value", type: "currency", currency: "USD", precision: 0 },
44
+ { key: "owner", name: "Owner", type: "person" }, // ids from the `people` prop
45
+ { key: "close", name: "Close date", type: "date" }, // "YYYY-MM-DD"
46
+ { key: "segments", name: "Segments", type: "multi-select", options: [...] },
47
+ { key: "fit", name: "Fit", type: "rating", max: 5 },
48
+ { key: "contacted", name: "Contacted", type: "checkbox" },
49
+ { key: "website", name: "Website", type: "url" },
50
+ ];
51
+ ```
52
+
53
+ A column: `key`, `name`, `type` (default `"text"`), and any of `width`
54
+ (px), `readOnly`, `required` (an empty cell is marked as a problem),
55
+ `options` (select types: `{ value, label, hue: 1–5 }` — the hue is a
56
+ chart token, never a colour), `allowNew: false` (a select that refuses
57
+ new options), `currency` + `precision` (currency, number), `max`
58
+ (rating, default 5), `multiple: true` (person: several people),
59
+ `dateOrder: "dmy"` (how `3/4/2026` is read; default month first). Any
60
+ other key is kept and ignored, so a block on top can carry its own.
61
+
62
+ What each type stores:
63
+
64
+ | type | value |
65
+ | --- | --- |
66
+ | `text`, `url` | a string |
67
+ | `number`, `currency` | a number, or `null` |
68
+ | `date` | `"YYYY-MM-DD"`, or `null` — a day, never a `Date` |
69
+ | `select` | an option's `value`, or `null` |
70
+ | `multi-select` | an array of option values |
71
+ | `person` | a person's `id` (an array with `multiple`) |
72
+ | `checkbox` | `true` / `false` |
73
+ | `rating` | a whole number, `0` = none |
74
+
75
+ ## Props
76
+
77
+ Required first; the rest have the defaults shown.
78
+
79
+ - `rows` — the records, as above.
80
+ - `columns` — the fields, as above.
81
+
82
+ Saving. Every callback is async and answers `{ ok: true }` or
83
+ `{ ok: false, error }` (a throw counts as a failure; nothing returned
84
+ counts as ok). The grid applies the change at once and, on a failure,
85
+ puts it back and says so in a toast.
86
+
87
+ - `onChange(changes)` — cell edits, always a batch: one typed value, a
88
+ paste, a fill, a clear, an undo. `changes` is
89
+ `[{ rowId, key, value, prev }]`. Without it the grid still edits (in
90
+ memory).
91
+ - `onAddRows(rows, { index, restore })` — new rows (from "Add row", the
92
+ row menu's insert, a paste that runs past the end, or an Undo of a
93
+ delete when `restore` is true). `index` is where in `rows` they go
94
+ (absent: the end). A row's `id` is made here (`createRow` or a random
95
+ one); answer `{ ok: true, rows: [{ id }] }` to swap in the server's ids.
96
+ Without it there is no Add row.
97
+ - `onDeleteRows(ids)` — rows deleted from the row menu or the selection
98
+ line; a toast offers Undo (which calls `onAddRows` with `restore`).
99
+ Without it rows cannot be deleted.
100
+ - `onColumnsChange(columns, { reason })` — the whole new column list after
101
+ a rename, a type change, an added, deleted or restored field, or a
102
+ select option created while typing; `reason` is `"rename"`, `"type"`,
103
+ `"add"`, `"delete"`, `"restore"` or `"options"`. A type change also sends
104
+ the converted values through `onChange`. Without it the header menu
105
+ cannot change fields (options typed into a select are kept in memory).
106
+ - `createRow()` — a new row's starting values (`{ id, stage: "lead" }`).
107
+ Give each call a unique `id`.
108
+
109
+ The view — which fields show, in what order and width, what is frozen,
110
+ sorted and filtered. Plain JSON; store it per view (base-view keeps one
111
+ per tab):
112
+
113
+ ```js
114
+ { order: ["company", "stage", …], hidden: ["website"], widths: { company: 240 },
115
+ frozen: 1, sort: [{ key: "value", dir: "desc" }],
116
+ filters: [{ id: "f1", key: "stage", op: "any", value: ["won", "negotiation"] }] }
117
+ ```
118
+
119
+ - `view` + `onViewChange(view)` — controlled; or `defaultView` and the
120
+ grid keeps it (still reporting through `onViewChange`). Keep it in state:
121
+ a new `sort` or `filters` array each render re-sorts each render.
122
+ - A filter's `op` is one of its type's conditions (`COLUMN_TYPES[type]
123
+ .filters[].id`, plus `empty` / `not-empty`); a blank `value` means "not
124
+ set yet" and passes every row.
125
+ - Edits do not re-sort: an edited row stays where it is (as in Airtable)
126
+ and the line under the grid offers "Sort again". New data from the
127
+ props re-runs the view.
128
+
129
+ Behaviour and look:
130
+
131
+ - `people` — `[{ id, name, email?, src? }]`, who a `person` cell can hold.
132
+ - `types` — your own column types, or overrides of the built-ins (see
133
+ below). Keep the object stable (a module constant).
134
+ - `validate(row, column)` — a message when a cell is wrong, else null. A
135
+ wrong cell gets a red corner and its message on hover and under the
136
+ grid; the line under the grid counts problems and jumps to the next.
137
+ - `readOnly` — nothing edits (select, copy, sort, filter still work).
138
+ Per column: `column.readOnly`.
139
+ - `lockFields` — the header menu cannot rename, retype, add or delete
140
+ fields, though `onColumnsChange` is given; select options typed into a
141
+ cell still arrive through it (reason `"options"`). csv-import's review
142
+ uses this.
143
+ - `onExpandRow(row)` — adds an open button to each row's number (and
144
+ Space / ⌘↵ / the row menu); draw the record yourself (a Sheet).
145
+ - `onSelectionChange({ active: { rowId, key }, rowIds, keys } | null)`.
146
+ - `loading` — skeleton rows.
147
+ - `label` — what a screen reader calls the grid (`"Table"`).
148
+ - `noun` — what a row is (`"deal"`): "Add deal", "10,000 deals". Plural
149
+ is noun + "s". Default `"row"`.
150
+ - `height` — the grid's height (`560`, or any CSS length); it scrolls
151
+ inside it.
152
+ - `toolbar` — `false` hides the toolbar (a parent draws its own and
153
+ drives the grid through the handle). `toolbarStart`, `toolbarEnd` —
154
+ nodes at the toolbar's ends (an "Import CSV" button).
155
+ - `empty` — a node for the empty table, instead of "No rows yet".
156
+ - `locale`, `currency` — for numbers, amounts and dates (the reader's
157
+ locale, `"USD"`). `today` — `"YYYY-MM-DD"` for the date picker (a demo
158
+ that must not change day to day).
159
+ - `ref` — the handle, below.
160
+
161
+ ### The handle
162
+
163
+ `<Spreadsheet ref={grid} …>` then `grid.current`:
164
+
165
+ - `focus()` · `clearSelection()`
166
+ - `select({ rowId, key, toRowId?, toKey? })` → true when found; a range
167
+ when `to…` is given
168
+ - `getSelection()` → `{ active, rowIds, keys }` or null
169
+ - `scrollToRow(rowId)` · `edit(rowId, key)` — opens that cell's editor
170
+ - `addRow(values?)` — adds, selects and edits a row (through `onAddRows`)
171
+ - `deleteRows(ids)` · `undo()` · `redo()`
172
+ - `copy()` → the selection as TSV · `paste(text)` — TSV at the selection
173
+ - `visibleRows()` · `visibleColumns()` — after filter and sort, in order
174
+ - `resort()` — the "Sort again" button
175
+
176
+ ### The column-type registry
177
+
178
+ `COLUMN_TYPES` holds the built-ins; `typeOf(column, types)` resolves one
179
+ (your `types` first, then the built-ins, unknown names read as text). A
180
+ type is plain data and functions — the logic runs on the server too:
181
+
182
+ ```js
183
+ {
184
+ label: "Currency", icon: "dollar", // a kit glyph for the header
185
+ align: "end", width: 130, // default width, px
186
+ editor: "number", // the in-cell editor: text · number · date ·
187
+ // select · person · toggle · rating · url · none
188
+ multiple: false, // select editor: pick several
189
+ empty: (v) => v == null, // default: null, "" or []
190
+ parse: (text, column, ctx) => ({ value }) | ({ error }), // typed or pasted text in;
191
+ // a select may add `create: [{ value, label, hue }]`
192
+ toText: (v, column, ctx) => "1250.5", // what a copy puts on the clipboard, and an edit starts from
193
+ format: (v, column, ctx) => "$1,250.50",// what the cell shows (and search matches)
194
+ compare: (a, b, column, ctx) => a - b, // sort order; empties always sort last
195
+ filters: [{ id: "gt", label: ">", arg: "number", test: (v, arg, column, ctx) => v > arg }],
196
+ // arg: text · number · date · options · person · none
197
+ render: (v, column, ctx) => <node/>, // optional: draw the cell yourself
198
+ Editor: MyEditor, // optional: your own editor component
199
+ }
200
+ ```
201
+
202
+ `ctx` is `{ people, locale, currency }`. A custom type may be small —
203
+ anything it leaves out comes from `text`:
204
+
205
+ ```js
206
+ const TYPES = {
207
+ percent: {
208
+ label: "Percent", icon: "hash", align: "end", width: 100, editor: "number",
209
+ parse: (t) => { const n = parseNumberText(String(t).replace("%", "")); return Number.isNaN(n) ? { error: "Not a percent" } : { value: n == null ? null : n / 100 }; },
210
+ toText: (v) => (v == null ? "" : String(v * 100)),
211
+ format: (v) => (v == null ? "" : `${Math.round(v * 100)}%`),
212
+ compare: (a, b) => a - b,
213
+ },
214
+ };
215
+ ```
216
+
217
+ A custom `Editor` gets `{ value, column, type, ctx, initial, today,
218
+ canCreate, onCommit(value, move, { create }?), onCancel() }` and draws
219
+ inside the cell (absolutely positioned over it). `initial` is the key
220
+ that opened it (a typed letter) or null; `move` is `"down"`, `"up"`,
221
+ `"right"`, `"left"` or null (stay). Float a panel beside the cell with
222
+ the exported `CellPanel` (`anchorRef`, `onDismiss`, `width`, `label`).
223
+
224
+ Other exports, for blocks on top: `CellValue` (a cell's display),
225
+ `OptionBadge`, `editorFor(type)`, `parseCell`, `convertValue(v, from,
226
+ to)`, `guessType(texts)` (csv-import's guess), `parseNumberText`,
227
+ `parseDateText`, `optionValue(label, taken)`, `emptyView`,
228
+ `normalizeView`, `orderedColumns`, `visibleColumns`, `processRows(rows,
229
+ columns, view, { search, ctx, custom })`, `passesFilters`, `parseTSV`,
230
+ `toTSV`, `pasteChanges`, `fillChanges`, `clearChanges`, `applyChanges`,
231
+ `invertChanges`, `TYPE_ORDER`, `sortWords(type)`.
232
+
233
+ ## Keys
234
+
235
+ ↑ ↓ ← → move (⌘ to the edge; Shift extends) · Tab / Shift+Tab · Home /
236
+ End · Page Up / Down · Enter or F2 edits · typing replaces · Esc cancels ·
237
+ Delete clears · ⌘C ⌘X ⌘V · ⌘D fills down · ⌘Z / ⇧⌘Z · ⌘A all · Shift+Space
238
+ the row · ⌘Space the column · Space ticks a box or opens the row ·
239
+ Shift+F10 the row menu.
240
+
241
+ ## Example
242
+
243
+ ```jsx
244
+ "use client";
245
+ import { useState } from "react";
246
+ import { updateRow, insertRow, deleteRow } from "../lib/actions";
247
+ import { Spreadsheet } from "./blocks/spreadsheet";
248
+
249
+ const COLUMNS = [
250
+ { key: "name", name: "Name", type: "text", required: true },
251
+ { key: "stage", name: "Stage", type: "select", options: [{ value: "lead", label: "Lead", hue: 2 }, { value: "won", label: "Won", hue: 1 }] },
252
+ { key: "amount", name: "Amount", type: "currency", precision: 0 },
253
+ { key: "close", name: "Close date", type: "date" },
254
+ ];
255
+
256
+ export default function Deals({ deals, team }) {
257
+ const [view, setView] = useState({ sort: [{ key: "amount", dir: "desc" }] });
258
+ return (
259
+ <Spreadsheet
260
+ label="Deals"
261
+ noun="deal"
262
+ rows={deals}
263
+ columns={COLUMNS}
264
+ people={team}
265
+ view={view}
266
+ onViewChange={setView}
267
+ onChange={async (changes) => {
268
+ for (const c of changes) {
269
+ const r = await updateRow({ source: "public.deals", id: c.rowId, patch: { [c.key]: c.value } });
270
+ if (!r.ok) return r;
271
+ }
272
+ return { ok: true };
273
+ }}
274
+ onAddRows={async (rows) => {
275
+ const made = [];
276
+ for (const { id, ...values } of rows) {
277
+ const r = await insertRow({ source: "public.deals", values: { stage: "lead", ...values } });
278
+ if (!r.ok) return r;
279
+ made.push({ id: r.id }); // the database's id replaces the one the grid made up
280
+ }
281
+ return { ok: true, rows: made };
282
+ }}
283
+ onDeleteRows={async (ids) => {
284
+ for (const id of ids) {
285
+ const r = await deleteRow({ source: "public.deals", id });
286
+ if (!r.ok) return r;
287
+ }
288
+ return { ok: true };
289
+ }}
290
+ />
291
+ );
292
+ }
293
+ ```
294
+
295
+ ## What it will not do
296
+
297
+ - No formulas. A value is what was typed; a derived column is computed by
298
+ you and passed in (mark it `readOnly`).
299
+ - No merged cells, no rich text in a cell, no row heights of their own:
300
+ every row is one height (that is what keeps 10,000 rows smooth).
301
+ - No grouping of rows under headings — that is a view on top (base-view).
302
+ - Search and filters run in the browser over `rows`. For a table too big
303
+ to send, filter on the server and pass the page.
304
+ - Sort and filter follow the view, not the edits: an edited row stays put
305
+ until "Sort again" (or new props).
306
+ - Paste reads plain text (TSV). Pasted images and HTML tables are read as
307
+ their text.
@@ -0,0 +1,13 @@
1
+ {
2
+ "name": "spreadsheet",
3
+ "title": "Spreadsheet",
4
+ "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.",
5
+ "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).",
6
+ "tags": ["spreadsheet", "grid", "table", "airtable", "google sheets", "excel", "editable", "cells", "inline edit", "virtualized", "10k rows", "copy paste", "tsv", "fill down", "columns", "sort", "filter", "select", "multi select", "person", "rating", "undo", "keyboard", "base"],
7
+ "exports": ["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"],
8
+ "files": ["index.js", "spreadsheet.jsx", "cells.jsx", "chrome.jsx", "types.js", "grid.js"],
9
+ "requires": [],
10
+ "dependencies": {
11
+ "@tanstack/react-virtual": "3.14.13"
12
+ }
13
+ }