All 26 browser modules recompiled with define-library/import forms. Compilation works without vm-compile-adapter (JIT pre-compilation hangs with library wrappers in some JIT paths — skipped for now, CEK compilation is ~34s total). Key fixes: - eval command: import-aware loop that handles define-library/import locally without touching the Python bridge pipe (avoids deadlock) - compile-modules.js: skip vm-compile-adapter, bump timeout 2621/2621 OCaml tests passing. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
82 lines
4.7 KiB
Markdown
82 lines
4.7 KiB
Markdown
# Page snapshot
|
|
|
|
```yaml
|
|
- main [ref=e4]:
|
|
- generic [ref=e6]:
|
|
- complementary
|
|
- generic [ref=e7]:
|
|
- generic [ref=e8]:
|
|
- generic [ref=e11]:
|
|
- link "(<sx>)" [ref=e12] [cursor=pointer]:
|
|
- /url: /sx/
|
|
- generic [ref=e14]: (<sx>)
|
|
- paragraph [ref=e15]: The framework-free reactive hypermedium
|
|
- paragraph [ref=e17]: © Giles Bradshaw 2026· /sx/(geography.(hypermedia.(example.delete-row)))
|
|
- generic [ref=e18]:
|
|
- link "← Etc" [ref=e19] [cursor=pointer]:
|
|
- /url: /sx/(etc)
|
|
- link "Geography" [ref=e20] [cursor=pointer]:
|
|
- /url: /sx/(geography)
|
|
- link "Language →" [ref=e21] [cursor=pointer]:
|
|
- /url: /sx/(language)
|
|
- generic [ref=e22]:
|
|
- link "← Reactive Islands" [ref=e23] [cursor=pointer]:
|
|
- /url: /sx/(geography.(reactive))
|
|
- link "Hypermedia Lakes" [ref=e24] [cursor=pointer]:
|
|
- /url: /sx/(geography.(hypermedia))
|
|
- link "Scopes →" [ref=e25] [cursor=pointer]:
|
|
- /url: /sx/(geography.(scopes))
|
|
- generic [ref=e26]:
|
|
- link "← Reference" [ref=e27] [cursor=pointer]:
|
|
- /url: /sx/(geography.(hypermedia.(reference)))
|
|
- link "Examples" [ref=e28] [cursor=pointer]:
|
|
- /url: /sx/(geography.(hypermedia.(example)))
|
|
- link "Reference →" [ref=e29] [cursor=pointer]:
|
|
- /url: /sx/(geography.(hypermedia.(reference)))
|
|
- generic [ref=e30]:
|
|
- link "← Polling" [ref=e31] [cursor=pointer]:
|
|
- /url: /sx/(geography.(hypermedia.(example.polling)))
|
|
- link "Delete Row" [ref=e32] [cursor=pointer]:
|
|
- /url: /sx/(geography.(hypermedia.(example.delete-row)))
|
|
- link "Inline Edit →" [ref=e33] [cursor=pointer]:
|
|
- /url: /sx/(geography.(hypermedia.(example.inline-edit)))
|
|
- generic [ref=e37]:
|
|
- paragraph [ref=e38]: sx-delete with sx-swap "outerHTML" and an empty response removes the row from the DOM.
|
|
- generic [ref=e40]:
|
|
- generic [ref=e41]:
|
|
- heading "Demo" [level=3] [ref=e42]
|
|
- paragraph [ref=e43]: Click delete to remove a row. Uses sx-confirm for confirmation.
|
|
- table [ref=e47]:
|
|
- rowgroup [ref=e48]:
|
|
- row "Item" [ref=e49]:
|
|
- columnheader "Item" [ref=e50]
|
|
- columnheader [ref=e51]
|
|
- rowgroup [ref=e52]:
|
|
- row "Fix login bug delete" [ref=e53]:
|
|
- cell "Fix login bug" [ref=e54]
|
|
- cell "delete" [ref=e55]:
|
|
- button "delete" [ref=e56] [cursor=pointer]
|
|
- row "Write documentation delete" [ref=e57]:
|
|
- cell "Write documentation" [ref=e58]
|
|
- cell "delete" [ref=e59]:
|
|
- button "delete" [ref=e60] [cursor=pointer]
|
|
- row "Deploy to production delete" [ref=e61]:
|
|
- cell "Deploy to production" [ref=e62]
|
|
- cell "delete" [ref=e63]:
|
|
- button "delete" [ref=e64] [cursor=pointer]
|
|
- row "Add unit tests delete" [ref=e65]:
|
|
- cell "Add unit tests" [ref=e66]
|
|
- cell "delete" [ref=e67]:
|
|
- button "delete" [ref=e68] [cursor=pointer]
|
|
- heading "S-expression" [level=3] [ref=e69]
|
|
- code [ref=e73]: (button :sx-delete "/sx/(geography.(hypermedia.(example.(api.(delete.1)))))" :sx-target "#row-1" :sx-swap "outerHTML" :sx-confirm "Delete this item?" "delete")
|
|
- heading "Component" [level=3] [ref=e74]
|
|
- code [ref=e79]: (defcomp ~examples/delete-row (id name) (tr :id (str "row-" id) (~tw :tokens "border-b border-stone-100 transition-all") (td (~tw :tokens "px-3 py-2 text-stone-700") name) (td (~tw :tokens "px-3 py-2") (button :sx-delete (str "/sx/(geography.(hypermedia.(example.(api.(delete." id ")))))") :sx-target (str "#row-" id) :sx-swap "outerHTML" :sx-confirm "Delete this item?" (~tw :tokens "text-rose-500 hover:text-rose-700 text-sm") "delete"))))
|
|
- heading "Server handler" [level=3] [ref=e80]
|
|
- code [ref=e84]: (:path "/sx/(geography.(hypermedia.(example.(api.(delete.<sx:item_id>)))))" :method :delete :csrf false ("item-id") (<> (~docs/oob-code :target-id "delete-comp" :text (helper "component-source" "~examples/delete-row")) (~docs/oob-code :target-id "delete-wire" :text "(empty — row removed by outerHTML swap)")))
|
|
- generic [ref=e85]:
|
|
- heading "Wire response" [level=3] [ref=e86]
|
|
- button "Clear component cache" [ref=e87] [cursor=pointer]
|
|
- paragraph [ref=e88]: Empty body — outerHTML swap replaces the target element with nothing.
|
|
- code [ref=e93]: (empty — row removed by outerHTML swap)
|
|
``` |