Open
Description
I'm going to do a major rewrite for JSFE, to make it much more modular and easy to integrate in any kind of setups.
This issue will keep track of the tasks on a next
branch, until some tests are properly setup, and the rewrite finished, of course.
For now, it's a bit of a dump that will be more structured later.
- Make an external form controller, a subclass of
EventTarget
with TC39 signals (via Lit) for various states - Focus on Shoelace and System (bare widgets), update Shoelace to WebAwesome
- Make a ready to consume Shoelace/WA form, preloaded with presets and with swappable widgets
- Slots were evaluated for swapping specific fields, but sadly, it's too boilerplatey to pass the inputs event in the light DOM to a shadowed form
- Make this implementation (100-200 LOC max) with both Lit and React, to demonstrate versatility
- Tests with playwright(with SSR, React, Lit…) with WebAwesome and Gracile
- Unit tests for the core (node:test and c8)
- In the prolongation of SSR (but that's not a strict requirement), ensure progressive enhancements with native form functioning at 100% + smooth JS take-over.
- Maintain a coherent integration with native JS APIs (notably, events), while providing reactive helpers for userland templates (e.g. for advanced errors reporting)
- Make strong typings all over the boards, with aligned semantics and well defined mapping for HTML / JS / JSON Schema / "widgets"… vocabularies.
- Re-organize the repos, remove a lot of stuff (like alternative UI implementation)
- Reflect all the changes to the playground
- Use Vite for distributing both the lib and the themes (separately), so we can do further optimizations
- Fix the SCSS to CSS.TS pipeline. It's flaky right now in dev.
- …
Metadata
Metadata
Assignees
Labels
No labels