Commit Graph

385 Commits

Author SHA1 Message Date
slhx agent dfd8020617 docs(examples): keep inspector copy target-oriented
Replace remaining beginner-facing wire contract wording in the inspector partial with generated target/effect vocabulary and guard against regressions.

req: dx/006

req: examples/003
2026-06-02 07:30:30 +02:00
slhx agent 795abdbc81 test(examples): guard low-level docs wording
Keep beginner example docs on target objects and tuple IntoEffect responses instead of runtime lowering/application wire vocabulary.

req: dx/006

req: examples/003
2026-06-02 07:27:23 +02:00
slhx agent bd7edfa993 docs(api): point raw shims at targets
Keep compatibility shim docs aligned with generated target objects as the preferred partial/swap authoring API.

req: dx/006
2026-06-02 07:25:21 +02:00
slhx agent 3ab89adf2d feat(style): compose generated class states
Add CssClass/CssClasses with/with_if helpers so nested partial view data can compose generated CSS constants without ad hoc class strings.

req: style/003

req: component/003
2026-06-02 07:24:10 +02:00
slhx agent a138f92b33 feat(build): generate slot target objects
Add generated targets::<slot> wrapper objects so partial swaps read as target.put/append/replace while preserving existing lower-aware commands and IntoEffect wiring.

req: dx/006

req: codegen/001

req: codegen/002

req: component/003
2026-06-02 07:21:23 +02:00
slhx agent 20d1159e39 fix(derive): keep missing-generation diagnostics author-facing
Replace OUT_DIR/path-shaped proc-macro errors with generated slhx file/module language while preserving the build.rs fix hint.

req: dx/005

req: component/004
2026-06-02 03:54:08 +02:00
slhx agent 998e15758a docs(examples): hide batch internals from UI copy
Replace beginner-facing EffectBatch/slot-effect wording with generated update language while keeping wire-batch types in tests and low-level APIs.

req: dx/006

req: examples/003
2026-06-02 03:40:12 +02:00
slhx agent 49743c1a67 test(build): guard hidden component aliases
Ensure component-namespaced generated render_html/lower_html aliases stay doc-hidden while the generated command path remains the taught API.

req: dx/006
2026-06-02 03:32:28 +02:00
slhx agent 5d85a32c3c test(examples): guard generated command docs
Prevent canonical example docs from regressing to lower-level generated handle/EffectBatch wording after moving README copy to the generated-resource command path.

req: dx/006

req: examples/003
2026-06-02 03:30:40 +02:00
slhx agent 417bc45d1f docs(examples): describe generated command path
Keep example READMEs aligned with the generated-resource, tuple-composed IntoEffect authoring path instead of lower-level handle/EffectBatch wording.

req: dx/006

req: examples/003
2026-06-02 03:28:53 +02:00
slhx agent 9fd614f86d docs(api): hide render compatibility aliases
Keep render_html/lower_html available for explicit compatibility while generated/public docs steer authors to render/lower and generated resource commands.

req: dx/006
2026-06-02 03:18:53 +02:00
slhx agent 73836f3742 feat(api): keep render_html out of prelude
Keep the beginner prelude on the short render helper while leaving render_html/lower_html as explicit compatibility aliases.

req: dx/006
2026-06-02 03:15:29 +02:00
slhx agent a6c88b9226 docs(api): hide raw render extension shims
Keep compatibility helpers available while steering author docs toward generated lower-aware put/append/replace commands.

req: dx/006
2026-06-02 03:12:49 +02:00
slhx agent d7462fd011 docs(req): clarify lower-aware generated commands
Keep dx/006 from implying crate-root helpers should bypass generated lowering; the public facade owns generic render while generated view modules own lower-aware slot commands.

req: dx/006
2026-06-02 03:10:32 +02:00
slhx agent 03b5f0f29b docs(kanban): use generated keyed commands
Keep the north-star kanban sketches aligned with the generated lower-aware append/replace helpers instead of teaching keyed slot extension methods.

req: dx/006

req: codegen/002
2026-06-02 03:07:26 +02:00
slhx agent ee6045aec5 feat(build): generate keyed view commands
Add lower-aware generated append/prepend/replace helpers for keyed slots, move the v0 keyed todo example off the facade extension trait, and keep beginner examples from importing lower-level render shortcuts.

req: dx/006

req: codegen/002

req: public_api/003

req: examples/003
2026-06-02 03:05:37 +02:00
slhx agent 15809c86a6 feat(build): add lower-aware put helper
Generate ui::put(slot, view) for lower-aware slot HTML updates and move examples/docs/contracts to that ergonomic path instead of hand-composing slot.html(render(...)).

req: dx/006

req: component/003

req: runtime/001

req: examples/003
2026-06-02 02:59:29 +02:00
slhx agent f919b8cb10 docs(kanban): avoid selector wording
Keep the north-star walkthrough selector-free by describing the rejected path as positional DOM lookup instead of naming selector APIs.

req: examples/003

req: runtime/001
2026-06-02 02:43:13 +02:00
slhx agent 4c04f3cc77 docs(kanban): remove selector example
Replace the last querySelector mention in the north-star walkthrough with selector-free prose and extend example docs contracts to forbid selector APIs.

req: examples/003

req: runtime/001
2026-06-02 02:33:06 +02:00
slhx agent 22a6ae7dbb test(examples): forbid literal handle field posts
Extend canonical example contracts to catch raw __h= request bodies in tests and docs, keeping examples on the axum handle-field constant and generated handles.

req: dx/003

req: examples/003
2026-06-02 02:23:49 +02:00
slhx agent 4673580a71 test(techdemo): use handle field constant
Remove the last literal __h wire spelling from techdemo E2E tests, including the unknown-handle negative case.

req: dx/003

req: examples/003
2026-06-02 02:17:04 +02:00
slhx agent fa00128c9b fix(examples): keep test updates lower-aware
Move canonical example test helpers and docs off direct slot render shortcuts so even test-only slot updates use generated lower-aware HTML paths.

req: component/003

req: runtime/001

req: examples/003
2026-06-02 01:59:25 +02:00
slhx agent a1e3085437 docs(kanban): describe delegated runtime attachment
Replace the north-star walkthrough's listener snippet with prose and guard example docs against teaching addEventListener glue.

req: examples/003

req: runtime/001
2026-06-02 01:56:10 +02:00
slhx agent 0ede5eb113 feat(prelude): hide slot render shortcut
Keep the beginner prelude on generated lower-aware render/html paths instead of exposing RenderSlotExt, which can bypass generated runtime metadata.

req: dx/006

req: component/003

req: runtime/001
2026-06-02 01:52:18 +02:00
slhx agent 732e65008e fix(examples): use lower-aware slot html updates
Move canonical examples and docs off direct RenderSlotExt render shortcuts so slot updates use generated render/lowering before HTML replacement, preserving runtime metadata for follow-up interactions.

req: component/003

req: runtime/001

req: dx/006

req: examples/003
2026-06-02 01:48:10 +02:00
slhx agent e0c4633d25 test(examples): forbid direct slot render helper
Guard canonical examples against RenderSlotExt/.render(& usage so slot updates keep using generated lower-aware HTML paths.

req: component/003

req: runtime/001

req: examples/003
2026-06-02 01:42:18 +02:00
slhx agent 743f79c6d6 fix(examples): lower slot render updates
Use generated lower-aware render paths before slot HTML updates so example fragments carry runtime ids for follow-up interactions such as browser drag/drop.

req: component/003

req: runtime/001

req: examples/003
2026-06-02 01:41:42 +02:00
slhx agent 7e57366b89 fix(techdemo): keep work ids typed
Complete the InteractionForm::parse migration for techdemo work updates so typed ids stay typed instead of being reparsed inside the helper.

req: form/004

req: dx/003

req: examples/003
2026-06-02 00:42:14 +02:00
slhx agent 4972351881 docs(kanban): avoid inline script snippet
Keep the north-star walkthrough aligned with example contract checks by describing runtime/bootstrap loading in prose instead of showing inline script tags.

req: examples/005

req: runtime/001
2026-06-02 00:36:56 +02:00
slhx agent ee25441be7 test(axum): exercise interaction helper path
Move public axum response tests off direct HandlerRegistry construction so the checked test surface follows interactions()/on() just like canonical examples.

req: axum_integration/003

req: ceremony/001

req: dx/003
2026-06-02 00:33:23 +02:00
slhx agent 1e53a6f7df feat(axum): parse typed interaction values
Add InteractionForm::parse for common typed field extraction and use it in example interaction handlers to avoid repeated string parsing plumbing.

req: form/004

req: dx/003

req: examples/003
2026-06-02 00:31:32 +02:00
slhx agent a462e7f097 test(examples): guard docs against low-level plumbing
Extend the canonical example contract to scan Markdown docs so they keep teaching generated ergonomic APIs instead of raw handles, registry/form types, or legacy HTML helpers.

req: dx/002

req: dx/003

req: examples/003
2026-06-02 00:26:40 +02:00
slhx agent df4b4cc649 feat(axum): add interaction registry alias
Add an interactions()/on() registration path and move canonical examples off explicit register_handle naming while keeping low-level registry types available underneath.

req: axum_integration/003

req: ceremony/001

req: dx/003

req: examples/003
2026-06-02 00:24:32 +02:00
slhx agent f388fa7d91 docs(kanban): describe generated handles
Keep the canonical Kanban README on generated handles/slots instead of implying authors work with generated numeric ids.

req: dx/003

req: examples/003
2026-06-02 00:21:31 +02:00
slhx agent 42ede63361 feat(axum): add concise interaction request dispatch
Wrap extracted interaction forms in an InteractionRequest with a concise dispatch path, add a handlers() helper, and move canonical examples off direct HandlerRegistry/InteractionForm plumbing.

req: axum_integration/003

req: ceremony/001

req: dx/003

req: examples/003
2026-06-02 00:19:38 +02:00
slhx agent 7b7cb7da15 test(browser): avoid selector scripts in e2e
Pass WebDriver-found elements into browser E2E helper scripts and build the probe island with DOM APIs, keeping test-only JavaScript from reintroducing querySelector or unchecked HTML insertion.

req: runtime/001

req: examples/005
2026-06-02 00:11:55 +02:00
slhx agent 9dd32c3165 docs(techdemo): describe generated handle fields
Keep the techdemo README aligned with the checked generated-handle path instead of implying handwritten numeric __h ids.

req: dx/003

req: examples/003
2026-06-02 00:10:15 +02:00
slhx agent bff769b52a refactor(kanban): render shell from hemplate
Move the kanban full-page shell into a checked .heml unit so page assembly uses slhx render/SafeHtml composition instead of hand-built trusted HTML strings.

req: html_safety/001

req: html_safety/002

req: component/003
2026-06-02 00:08:48 +02:00
slhx agent e9bc145b22 test(techdemo): build e2e posts from handles
Keep valid techdemo E2E interactions on generated Handle values plus the axum handle-field constant, leaving only the unknown-id negative case as raw wire input.

req: dx/003

req: examples/003
2026-06-02 00:06:53 +02:00
slhx agent cb64f8d30f docs(kanban): match root-scoped runtime metadata
Refresh the kanban north-star walkthrough so rendered metadata and listener attachment match the current data-key/data-slhx-root root-scoped runtime contract.

req: runtime/001

req: target_policy/001
2026-06-02 00:04:45 +02:00
slhx agent e2196482f4 feat(prelude): export SafeHtml for page composition
Make the authoring prelude cover the SafeHtml page-fragment type so generated render/static_fragment helpers can compose without an extra core import.

req: dx/006

req: html_safety/002
2026-06-02 00:03:23 +02:00
slhx agent 353f2111e9 test(examples): avoid literal handle ids
Remove the last handwritten __h input from techdemo markup, switch E2E posts to generated handles, and extend example contracts to catch literal handle fields in templates.

req: dx/003

req: ceremony/002

req: examples/003
2026-06-02 00:02:11 +02:00
slhx agent dbe157cac1 test(examples): forbid legacy lowering helpers
Extend the example contract to keep canonical runtime code on generated render/static_fragment APIs instead of lower_html/render_html aliases or inline include_str lowering.

req: dx/006

req: ceremony/002

req: component/003
2026-06-01 23:58:42 +02:00
slhx agent bc7e7881b4 feat(build): lower static fragments as safe html
Add a generated static_fragment helper for include_str!-style prototype fragments and use it in the v0 page assembly path so static lowered .heml no longer needs repeated SafeHtml::trusted plumbing.

req: dx/006

req: html_safety/001

req: html_safety/002

req: component/003
2026-06-01 23:57:19 +02:00
slhx agent eaa5479b42 test(examples): forbid low-level resource plumbing
Lock canonical examples to generated resource APIs instead of raw ids, OUT_DIR includes, global exports, or low-level runtime/plumbing types.

req: dx/002

req: ceremony/002

req: ceremony/004

req: examples/003
2026-06-01 23:55:31 +02:00
slhx agent 6f2bed3529 test(js): lock selectorless runtime contract
Add an explicit runtime guard for root-scoped DOM walks and against selector APIs, preserving the no selector/no hidden client framework boundary.

req: pitch/002

req: runtime/001

req: target_policy/001
2026-06-01 23:53:35 +02:00
slhx agent 117eb57179 feat(core): join safe html fragments
Let already-safe fragments compose without downgrading to String, and use it in the v0 page assembly example to keep rendered and lowered fragments typed at the boundary.

req: html_safety/001

req: html_safety/002

req: component/003
2026-06-01 23:49:20 +02:00
slhx agent fd5d48d59a refactor(examples): use slot render helpers
Use the slhx RenderSlotExt path for board updates so examples no longer manually compose SafeHtml before slot replacement.

req: dx/006

req: component/003
2026-06-01 23:46:59 +02:00
slhx agent 4e47b470a7 feat(axum): add safe html page composition
Add a SafeHtml PageRequest path for shell/partial composition and migrate examples so rendered hemplate fragments stay typed through the transport boundary instead of round-tripping through unchecked strings.

req: axum_integration/001

req: html_safety/001

req: html_safety/002
2026-06-01 23:45:52 +02:00
slhx agent a287d87e38 refactor(examples): inline simple board rendering
Remove one-line render_board wrappers now that generated render(view) is the concise composition helper, keeping board updates explicit without extra local bridge functions.

req: component/003

req: dx/006
2026-06-01 23:38:48 +02:00