velloo 0.4.1 → 0.6.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 (165) hide show
  1. package/README.md +29 -7
  2. package/canvas/assets/index-CnyI3aig.js +29 -0
  3. package/canvas/assets/index-GNLd0pCG.css +2 -0
  4. package/canvas/assets/lucide-all-CH8LmVh0.js +1 -0
  5. package/canvas/index.html +2 -2
  6. package/{chunk-91pajfnm.js → chunk-08mjtg1e.js} +1 -1
  7. package/{chunk-m1wp8cpt.js → chunk-1gkeepkm.js} +1 -1
  8. package/{chunk-2dm4x17z.js → chunk-1td6z6ey.js} +1 -1
  9. package/{chunk-ykdx12na.js → chunk-2ba6edh8.js} +1 -1
  10. package/chunk-2q561dec.js +2 -0
  11. package/chunk-2web93qz.js +2 -0
  12. package/{chunk-py6sjyzk.js → chunk-3trkmgfr.js} +1 -1
  13. package/chunk-52m26hh4.js +3 -0
  14. package/{chunk-7xffbj5h.js → chunk-56vfy0db.js} +1 -1
  15. package/{chunk-8t5phg0s.js → chunk-56z5xd5b.js} +1 -1
  16. package/{chunk-xbhxzdat.js → chunk-63y5gdzw.js} +1 -1
  17. package/{chunk-t9ygewjx.js → chunk-6813v926.js} +257 -3
  18. package/{chunk-cejmmx3r.js → chunk-69qb8p8s.js} +2 -2
  19. package/chunk-6k05kqnc.js +3 -0
  20. package/chunk-74yxy75r.js +3 -0
  21. package/{chunk-7a45tn73.js → chunk-8cj4swpr.js} +5 -5
  22. package/chunk-8grzf8q1.js +2 -0
  23. package/chunk-8vam2893.js +3 -0
  24. package/{chunk-dj1pp4e3.js → chunk-8vgpffn7.js} +1 -1
  25. package/{chunk-j5axqyan.js → chunk-96qhpth5.js} +1 -1
  26. package/chunk-ab8fga32.js +22 -0
  27. package/chunk-azeqkms7.js +6 -0
  28. package/{chunk-2y9nnzpr.js → chunk-bc7pkjcn.js} +1 -1
  29. package/{chunk-7gtvstne.js → chunk-c4spp880.js} +1 -1
  30. package/{chunk-a9mgvspm.js → chunk-chtv0yj6.js} +211 -110
  31. package/{chunk-r9ekd92e.js → chunk-dar6wbf2.js} +1 -1
  32. package/{chunk-aa3str7g.js → chunk-e2btp1wd.js} +1 -1
  33. package/{chunk-hsrg23gd.js → chunk-eqjtq673.js} +1 -1
  34. package/chunk-esb7n55g.js +244 -0
  35. package/chunk-ey65err5.js +5 -0
  36. package/{chunk-r03aywsb.js → chunk-ff0jfn0v.js} +1 -1
  37. package/chunk-ff2vt7cz.js +12 -0
  38. package/chunk-g185gx8a.js +2 -0
  39. package/{chunk-km3z2czq.js → chunk-h85hv05d.js} +1 -1
  40. package/{chunk-db7mf114.js → chunk-hf4adxe0.js} +9 -7
  41. package/{chunk-6zr596r2.js → chunk-hjc5eg5c.js} +1 -1
  42. package/{chunk-b4jy4hcd.js → chunk-hsfpbjpc.js} +1 -1
  43. package/{chunk-ph94nrc8.js → chunk-jsvkqae2.js} +1 -1
  44. package/{chunk-rfrbnw8r.js → chunk-k423dkjz.js} +1 -1
  45. package/chunk-mfch0b0t.js +3 -0
  46. package/chunk-nbbnb5e9.js +3 -0
  47. package/{chunk-tr49kraa.js → chunk-nx09zqgs.js} +1 -1
  48. package/chunk-p93x4pn2.js +3 -0
  49. package/{chunk-k3dpwjx4.js → chunk-pxaxgkaq.js} +1 -1
  50. package/chunk-qwccndcd.js +5 -0
  51. package/{chunk-vjrn10xr.js → chunk-rjjc9vam.js} +2 -2
  52. package/{chunk-npsg7btt.js → chunk-rk238m15.js} +1 -1
  53. package/chunk-t2x3mztc.js +2 -0
  54. package/chunk-t6qr2ay9.js +3 -0
  55. package/chunk-ta84ehgg.js +2 -0
  56. package/chunk-tac2wvc7.js +2 -0
  57. package/chunk-tbd6wn3q.js +6 -0
  58. package/chunk-v6c3h9ft.js +3 -0
  59. package/chunk-w2naqxqt.js +2 -0
  60. package/chunk-wfhv9jg4.js +2 -0
  61. package/chunk-wnj432fw.js +3 -0
  62. package/chunk-x02z2ccm.js +2 -0
  63. package/{chunk-b58pnj20.js → chunk-xtwx2p9g.js} +1 -1
  64. package/chunk-yfvc8d2g.js +716 -0
  65. package/chunk-z73q4dq9.js +2 -0
  66. package/{chunk-yfttm20w.js → chunk-ztsckexy.js} +2 -2
  67. package/cli.js +1 -1
  68. package/package.json +3 -1
  69. package/pkgs/helpers/src/descriptors.ts +1 -0
  70. package/pkgs/helpers/src/index.ts +7 -4
  71. package/pkgs/helpers/src/lowering.ts +0 -24
  72. package/pkgs/helpers/src/primitive-classes.tsx +43 -0
  73. package/pkgs/provider-antd/src/intro.ts +3 -3
  74. package/pkgs/provider-antd/src/manifest.ts +478 -57
  75. package/pkgs/provider-antd/src/registry.ts +8 -5
  76. package/pkgs/provider-antd/src/render-pass.ts +10 -4
  77. package/pkgs/provider-antd/src/reset-css.d.ts +5 -0
  78. package/pkgs/provider-antd/src/theme.ts +54 -11
  79. package/pkgs/provider-chakra/src/manifest.ts +5 -1
  80. package/pkgs/provider-html/src/index.ts +68 -0
  81. package/pkgs/provider-html/src/registry.ts +121 -0
  82. package/pkgs/provider-html/src/version.ts +1 -0
  83. package/pkgs/provider-mui/src/index.ts +4 -2
  84. package/pkgs/provider-mui/src/manifest.ts +10 -1
  85. package/pkgs/provider-mui/src/render-pass.ts +15 -1
  86. package/pkgs/provider-mui/src/theme.ts +10 -4
  87. package/pkgs/provider-none/src/components-inline.tsx +12 -3
  88. package/pkgs/provider-none/src/components.tsx +26 -53
  89. package/pkgs/provider-none/src/manifest.ts +2 -0
  90. package/pkgs/schema/src/annotation.ts +6 -3
  91. package/pkgs/schema/src/comment.ts +10 -1
  92. package/pkgs/schema/src/config.ts +33 -1
  93. package/pkgs/schema/src/css-declarations.ts +41 -0
  94. package/pkgs/schema/src/index.ts +16 -1
  95. package/pkgs/schema/src/node-identity.ts +92 -0
  96. package/pkgs/schema/src/node.ts +13 -4
  97. package/pkgs/schema/src/theme.ts +46 -1
  98. package/pkgs/schema/src/typeset.ts +24 -17
  99. package/pkgs/shadcn-snapshot/dist/manifest.json +1 -0
  100. package/pkgs/shadcn-snapshot/src/components/ui/alert.tsx +2 -4
  101. package/pkgs/shadcn-snapshot/src/components/ui/aspect-ratio.tsx +2 -3
  102. package/pkgs/shadcn-snapshot/src/components/ui/attachment.tsx +3 -4
  103. package/pkgs/shadcn-snapshot/src/components/ui/avatar.tsx +2 -4
  104. package/pkgs/shadcn-snapshot/src/components/ui/badge.tsx +2 -4
  105. package/pkgs/shadcn-snapshot/src/components/ui/breadcrumb.tsx +2 -4
  106. package/pkgs/shadcn-snapshot/src/components/ui/bubble.tsx +2 -4
  107. package/pkgs/shadcn-snapshot/src/components/ui/button-group.tsx +3 -4
  108. package/pkgs/shadcn-snapshot/src/components/ui/button.tsx +2 -4
  109. package/pkgs/shadcn-snapshot/src/components/ui/card.tsx +2 -4
  110. package/pkgs/shadcn-snapshot/src/components/ui/carousel.tsx +3 -4
  111. package/pkgs/shadcn-snapshot/src/components/ui/chart.tsx +1 -1
  112. package/pkgs/shadcn-snapshot/src/components/ui/direction.tsx +2 -3
  113. package/pkgs/shadcn-snapshot/src/components/ui/empty.tsx +2 -4
  114. package/pkgs/shadcn-snapshot/src/components/ui/field.tsx +3 -4
  115. package/pkgs/shadcn-snapshot/src/components/ui/input-group.tsx +3 -4
  116. package/pkgs/shadcn-snapshot/src/components/ui/item.tsx +3 -4
  117. package/pkgs/shadcn-snapshot/src/components/ui/kbd.tsx +2 -3
  118. package/pkgs/shadcn-snapshot/src/components/ui/label.tsx +2 -4
  119. package/pkgs/shadcn-snapshot/src/components/ui/marker.tsx +2 -4
  120. package/pkgs/shadcn-snapshot/src/components/ui/message.tsx +2 -4
  121. package/pkgs/shadcn-snapshot/src/components/ui/native-select.tsx +2 -4
  122. package/pkgs/shadcn-snapshot/src/components/ui/navigation-menu.tsx +2 -4
  123. package/pkgs/shadcn-snapshot/src/components/ui/pagination.tsx +3 -4
  124. package/pkgs/shadcn-snapshot/src/components/ui/progress.tsx +2 -4
  125. package/pkgs/shadcn-snapshot/src/components/ui/radio-group.tsx +2 -4
  126. package/pkgs/shadcn-snapshot/src/components/ui/scroll-area.tsx +2 -4
  127. package/pkgs/shadcn-snapshot/src/components/ui/separator.tsx +2 -4
  128. package/pkgs/shadcn-snapshot/src/components/ui/skeleton.tsx +2 -3
  129. package/pkgs/shadcn-snapshot/src/components/ui/spinner.tsx +2 -3
  130. package/pkgs/shadcn-snapshot/src/components/ui/table.tsx +2 -4
  131. package/pkgs/shadcn-snapshot/src/components/ui/tabs.tsx +2 -4
  132. package/pkgs/shadcn-snapshot/src/components/ui/toggle.tsx +2 -4
  133. package/pkgs/shadcn-snapshot/src/shadcn-tailwind.css +1 -1
  134. package/pkgs/shadcn-snapshot/src/tailwind-entry.css +1 -1
  135. package/plugins/claude/velloo/agents/velloo-design-reviewer.md +56 -13
  136. package/plugins/claude/velloo/agents/velloo-designer.md +4 -1
  137. package/skills/velloo-setup/SKILL.md +19 -55
  138. package/canvas/assets/index-B1OD0Yz5.css +0 -2
  139. package/canvas/assets/index-BWYFx2Rr.js +0 -29
  140. package/canvas/assets/lucide-all-Bcm80WFX.js +0 -1
  141. package/chunk-00t0bz7x.js +0 -244
  142. package/chunk-0446t32z.js +0 -2
  143. package/chunk-0zen7bzb.js +0 -3
  144. package/chunk-2h24va0j.js +0 -2
  145. package/chunk-2jbhv7vh.js +0 -3
  146. package/chunk-5ywkk7d6.js +0 -2
  147. package/chunk-b7famda5.js +0 -3
  148. package/chunk-cvn689d5.js +0 -3
  149. package/chunk-e6nhc3ay.js +0 -6
  150. package/chunk-f5g45xed.js +0 -2
  151. package/chunk-fjbzk4sw.js +0 -3
  152. package/chunk-hv52a6hf.js +0 -2
  153. package/chunk-jep31ffe.js +0 -2
  154. package/chunk-jwzhhhzn.js +0 -3
  155. package/chunk-mcymwefw.js +0 -5
  156. package/chunk-n0kx20s2.js +0 -2
  157. package/chunk-nwf2kn41.js +0 -26
  158. package/chunk-phz993p3.js +0 -2
  159. package/chunk-qan5dnjt.js +0 -688
  160. package/chunk-r5d0jsnd.js +0 -5
  161. package/chunk-shac6bat.js +0 -6
  162. package/chunk-t4zvcece.js +0 -10
  163. package/chunk-tarws372.js +0 -2
  164. package/chunk-yghypth2.js +0 -2
  165. package/chunk-zqtz23xk.js +0 -3
package/README.md CHANGED
@@ -128,7 +128,7 @@ required to design, export, or implement a screen.
128
128
 
129
129
  ## Features
130
130
 
131
- - **Existing-screen redesign.** Start from a React route or a captured
131
+ - **Existing-screen redesign.** Start from a React or HTML route, or a captured
132
132
  authenticated page, recreate a faithful baseline, explore alternatives, and
133
133
  compare against the running product at the same viewport.
134
134
  - **Real components, not approximations.** Components come from a
@@ -136,8 +136,9 @@ required to design, export, or implement a screen.
136
136
  client-safe files from your app mount directly in the canvas; portal- and
137
137
  state-heavy families are explicitly adapted; compile failures fall back per
138
138
  component with diagnostics.
139
- - **Five React adapters.** shadcn + Tailwind, Material UI, Ant Design, Chakra
140
- UI, and no-library React each render and emit through their own adapter.
139
+ - **React and HTML/htmx adapters.** shadcn + Tailwind, Material UI, Ant Design,
140
+ Chakra UI, and no-library React render through their own adapters. The HTML
141
+ adapter previews live server fragments and emits native HTML.
141
142
  - **Visual verification.** The agent inspects rendered nodes, takes screenshots,
142
143
  diffs against a live URL, and fixes what it sees instead of guessing from code.
143
144
  - **Board → Screen → Frame.** One design folder holds many boards; frames that
@@ -153,7 +154,7 @@ required to design, export, or implement a screen.
153
154
  | | |
154
155
  |---|---|
155
156
  | **OS** | macOS (arm64, x64), Linux (arm64, x64; glibc and musl), and Windows (x64, arm64) through npm. The standalone installer is macOS and Linux only. |
156
- | **Your app** | React. shadcn + Tailwind, MUI, Ant Design, Chakra, and no-library folders are supported. |
157
+ | **Your app** | React (shadcn + Tailwind, MUI, Ant Design, Chakra, or no-library) or a server-rendered HTML/htmx app. |
157
158
  | **Screenshots** | Optional headless Chromium, one command away (below). |
158
159
 
159
160
  ### Screenshots — the one optional extra
@@ -184,7 +185,7 @@ the design as `--design`.
184
185
  | `velloo init` | Create a design folder and wire up your agent |
185
186
  | `velloo run [design]` | Start the canvas + MCP daemon (`--port` to pick the canvas port) |
186
187
  | `velloo design list\|add\|remove\|move\|rename\|upgrade` | Manage the repo's designs |
187
- | `velloo emit` / `velloo render` | Implementation IR for your agent / a PNG of a screen |
188
+ | `velloo emit` / `velloo render` | Implementation IR (native HTML for an HTML screen) / a PNG of a screen |
188
189
  | `velloo publish [design]` | Publish a board for review (`publish list\|remove` manage what you've published) |
189
190
  | `velloo upgrade` | Update the install *and* migrate the design format (`--check` to preview) |
190
191
 
@@ -204,6 +205,27 @@ and pays for a native schema only when it needs one. Clients that do better with
204
205
  conventional function schemas can use `velloo mcp --surface full`. Both surfaces
205
206
  carry the whole operation catalogue. See [docs/mcp.md](./docs/mcp.md).
206
207
 
208
+ ### HTML and htmx apps
209
+
210
+ Run `velloo init --library html --initial-content scan` from a server-rendered
211
+ app (Flask, FastAPI, Django, Rails, Laravel, …), or choose **HTML + htmx** in the
212
+ wizard; `init` picks it on its own for an app with templates and no React.
213
+ Velloo scans its routes into placeholder screens and copies the stylesheets its
214
+ templates link (`hostApp.stylesheets`) from the app's source into the design's
215
+ `assets/host/`. A design never contacts the running app: it is a fixed picture
216
+ that looks the same to everyone who opens it, with or without the app. To
217
+ reproduce a page, capture it from the running app with a capture session (you
218
+ sign in in a separate browser if it needs it) and have the agent rebuild it
219
+ from the capture. CSS that only exists once the app is built comes from the
220
+ capture too (`store_host_files`).
221
+
222
+ Use `Html` nodes with semantic `as` tags, native attributes, and `hx-*` props.
223
+ The canvas never fires the `hx-*` attributes; `emit_code` keeps them and
224
+ returns HTML with the classes and routes it relies on, `velloo emit <screen> --to
225
+ page.html` writes native markup for a template, and `emit_theme` writes the CSS
226
+ custom properties that inline styles reference. Integrate the markup with your
227
+ server's template language and handlers; Velloo does not generate server routes.
228
+
207
229
  ## Local-first by default
208
230
 
209
231
  The local tool is free, complete, account-free, and telemetry-free.
@@ -237,7 +259,7 @@ You choose when — and whether — to use any of them.
237
259
 
238
260
  Contributions are welcome — bug reports, adapters, docs, and design feedback
239
261
  alike. [`CONTRIBUTING.md`](./CONTRIBUTING.md) covers setup and the checks we
240
- expect to be green; [`CLAUDE.md`](./CLAUDE.md) explains the repo's architecture
262
+ expect to be green; [`AGENTS.md`](./AGENTS.md) explains the repo's architecture
241
263
  invariants before you change anything load-bearing.
242
264
 
243
265
  The short version:
@@ -262,7 +284,7 @@ Velloo is a Bun-workspaces monorepo with one-way dependencies:
262
284
  | `packages/schema` | Zod schemas + TS types for the on-disk design-folder format |
263
285
  | `packages/protocol` | The wire contract: mutation arguments, typed errors, watch events |
264
286
  | `packages/provider` | The `ComponentProvider` / `FrameworkAdapter` interface |
265
- | `packages/provider-*` | shadcn, MUI, Ant Design, Chakra, and no-library adapters |
287
+ | `packages/provider-*` | shadcn, MUI, Ant Design, Chakra, no-library, and HTML/htmx adapters |
266
288
  | `packages/shadcn-snapshot` | Pinned canvas-safe shadcn fallback, embedded in the binary |
267
289
  | `packages/renderer` | Design JSON → HTML (and PNG via Playwright) |
268
290
  | `packages/codegen` | Agent-consumed IR + theme emitters |