Commit Graph

31 Commits

Author SHA1 Message Date
slhx agent edd804a505 refactor(techdemo): use generated render helpers throughout
Route shell, architecture, inspector, hero, activity, and live-feed rendering through generated render_html helpers, removing the last local render_template bridge from the techdemo page composition path.

req: component/003

req: view/001

req: html_safety/002
2026-06-01 22:50:01 +02:00
slhx agent e9c717844d refactor(techdemo): shorten generated resource paths
Import scoped generated modules at the page boundary so handlers and tests read as local slots/forms/handles/classes without hiding ownership or adding framework machinery.

req: component/003

req: dx/006
2026-06-01 22:39:52 +02:00
slhx agent 4d79dd4dba feat(build): generate render helpers
Generate root and component render_html helpers that render hemplate views through the same lowering table, letting callers update composed views without manual render_template/lower_html/SafeHtml plumbing.

req: component/003

req: view/001

req: html_safety/002
2026-06-01 22:15:58 +02:00
slhx agent 4319dea171 refactor(techdemo): scope card handles to partials
Move board card and lane actions onto their reusable partial templates, register the scoped generated handles directly, and remove hidden shell-level handle anchors and manual handle fields from the rendered view data.

req: component/003

req: view/001

req: examples/001
2026-06-01 21:58:40 +02:00
slhx agent d732c921c2 fix(techdemo): rebootstrap inserted islands
Keep opaque island widgets live when slhx swaps or later DOM insertion adds a new island, and tear down the listener when an island leaves the document.

req: interop/001

req: examples/001
2026-06-01 19:57:39 +02:00
slhx agent 9d3f70e9fe feat(techdemo): add opaque island bridge
Add a canvas leaf-widget island to the techdemo that receives server snapshots through Effect::event/CustomEvent while keeping slhx core and runtime semantics unchanged.

req: interop/001

req: examples/001

req: examples/005
2026-05-26 07:29:51 +02:00
slhx agent e20d356c1d docs(examples): mark page shell html boundaries
Document that remaining SafeHtml use in examples is limited to full-page shell composition of already-rendered hemplate fragments, while effect payloads use render helpers.

req: html_safety/002

req: view/001
2026-05-26 01:34:05 +02:00
slhx agent 5972785c3c feat(slhx): prefer render methods for views
Move view rendering onto Slot::render and KeyedSlot append/prepend/replace extension methods, leaving explicit text/html methods for non-view escape hatches.

req: codegen/002

req: view/001
2026-05-26 01:31:58 +02:00
slhx agent a8bd7dfdf7 test(examples): use shared slhx render helper
Remove remaining example-local render_html wrappers in favor of slhx::render_html so public examples share the hemplate render_into effect boundary.

req: view/001

req: html_safety/002
2026-05-26 01:10:57 +02:00
slhx agent 5845930cd3 test(techdemo): render slots from hemplate views
Migrate techdemo effect paths and tests from explicit SafeHtml/html payload plumbing to RenderSlotExt view helpers.

req: view/001

req: html_safety/002
2026-05-26 01:03:58 +02:00
slhx agent 62316d5f1e test(examples): render hemplate views into buffers
Use hemplate render_into in public examples and example tests instead of the string-returning render helper, preserving SafeHtml wrapping only at the explicit effect boundary.

req: view/001

req: html_safety/002
2026-05-26 00:46:13 +02:00
slhx agent 062c184e42 feat(core): format generated resources for templates
Implement Display for generated slots, keyed slots, atoms, and forms so public examples can pass typed resources directly to hemplate dynamic attributes and tests instead of extracting raw numeric ids.

req: public_api/001

req: public_api/002
2026-05-26 00:39:47 +02:00
slhx agent a421865852 feat(core): format handles for templates
Implement Display for generated Handle<T> values and migrate example view data to carry handles directly instead of raw handle id numbers for dynamic handle attributes.

req: public_api/001

req: public_api/002
2026-05-26 00:30:23 +02:00
slhx agent bc8534a768 feat(axum): register checked handles
Add HandlerRegistry::register_handle for generated Handle<T> values and migrate examples away from passing raw numeric handle ids at registration sites.

req: ceremony/004

req: public_api/001
2026-05-26 00:26:42 +02:00
slhx agent 5364135c5e feat(build): type generated event constants
Generate EventName constants for data-slhx-on metadata and exercise them through typed event emission in techdemo.

req: codegen/006
2026-05-26 00:09:07 +02:00
slhx agent 0b6ad64d98 feat(derive): expose checked form resource constants
Have #[slhx::form] emit an associated FORM resource so checked form handlers can be called with TodoInput::FORM-style values instead of generated_resource.typed::<T>() noise.

req: form/001

req: form/004

req: form/006

req: codegen/004
2026-05-26 00:03:47 +02:00
slhx agent d67478fe36 test(techdemo): exercise checked form handler path
Add techdemo coverage for #[slhx::form] plus #[slhx::handler] on the generated launch_work form, and ignore the internal __h hidden handle field in generated form metadata.

req: form/001

req: form/004

req: form/006

req: derive_handler/003
2026-05-25 23:57:08 +02:00
slhx agent 756f5a50cb test(techdemo): assert generated event constant
Prove data-slhx-on event discovery reaches an example generated API by asserting the techdemo issue-lane drop event constant.

req: codegen/006
2026-05-25 22:38:50 +02:00
slhx agent bce6341e69 refactor(techdemo): render test metric with hemplate
Replace the techdemo generated-slot test's inline raw HTML payload with a hemplate partial-rendered view.

req: html_safety/002

req: view/001
2026-05-25 22:01:17 +02:00
slhx agent 6f93c7d935 refactor(techdemo): compose page with hemplate views
Move the techdemo page shell and remaining board/inspector/hero boundaries to hemplate-owned views instead of Rust raw HTML or placeholder replacement. Keep rendered HTML assertions DOM-aware with scraper.

req: html_safety/002

req: view/001

req: test/005
2026-05-25 21:09:39 +02:00
slhx agent fee9762069 feat(style): generate checked class tokens
Add a boring CSS/SCSS class-token surface: slhx-build discovers static class tokens from hemplate/templates/stylesheets and emits generated CssClass constants. Add CssClasses for hemplate +class/view data and migrate techdemo dynamic/effect fragments toward hemplate-owned views with DOM-aware assertions.

req: style/001

req: style/002

req: style/003

req: html_safety/002

req: view/001

req: test/005
2026-05-25 20:48:31 +02:00
slhx agent ebe7f58905 test(examples): guard browser e2e product path
req: examples/005

req: convention/002
2026-05-11 10:27:09 +02:00
slhx agent 63b559edb8 fix(runtime): make form defaults post declaratively
req: form/002

req: examples/005

req: convention/004
2026-05-11 08:55:08 +02:00
slhx agent 5c1dc853d8 fix(runtime): support native user interactions
req: examples/005

req: form/002

req: convention/004

req: dx/008
2026-05-11 08:26:13 +02:00
slhx agent 2db7ed7a3c feat(runtime): make techdemo interactions declarative
req: examples/005

req: htmx_equivalents/002

req: dx/008

req: form/002
2026-05-11 08:11:06 +02:00
slhx agent 816552e735 feat(runtime): support slhx drag drops
req: htmx_equivalents/002

req: dx/008

req: list/003

req: examples/001
2026-05-11 07:59:32 +02:00
slhx agent ad8806c187 feat(techdemo): render issues with hemplate partials
req: examples/001

req: dx/008

req: list/003

req: form/002
2026-05-11 07:53:51 +02:00
slhx agent 5a29161148 polish(techdemo): make demo customer-ready
req: examples/001

req: dx/008

req: form/002
2026-05-11 07:38:29 +02:00
slhx agent e840802721 test(techdemo): add typed browser e2e
req: examples/001

req: dx/008

req: form/002

req: page_swap/002

req: push/003
2026-05-11 07:28:34 +02:00
slhx agent bdd50d7595 test(techdemo): add full product e2e coverage
req: examples/001

req: dx/008

req: form/002

req: page_swap/002

req: push/003
2026-05-11 07:13:17 +02:00
slhx agent e788c31688 feat(examples): add flagship techdemo
req: examples/001

req: dx/008

req: form/002

req: page_swap/002

req: push/003
2026-05-11 00:06:42 +02:00