Commit Graph

9 Commits

Author SHA1 Message Date
Glint Dev
b6fa841d11 Phase 9: Keyed widgets (9.1 + 9.2)
9.1: Add content_hash field to Element, computed during VDOM evaluation
  from type_name + properties + children content_hashes via DefaultHasher.

9.2: Assign stable iced::widget::Id to text_input and scrollable widgets
  so Iced preserves widget state (cursor position, scroll offset) across
  frames. Ids are cached in a thread_local HashMap to avoid leaks.

9.3 skipped: iced::Element is not Clone and contains Box<dyn Widget>,
  making element-level caching impractical without unsafe lifetime hacks.
2026-07-24 19:53:02 +03:00
Glint Dev
a798e966f3 feat: add FlatVDom round-trip conversion tests 2026-07-22 13:38:03 +03:00
Glint Dev
0d89ff68be feat: define VNode, FlatVDom types with Element round-trip conversion 2026-07-22 13:36:25 +03:00
Glint Dev
d8d3f57a21 Phase 3.1-3.3: ReactiveTracker with ElementId assignment during parsing, dependency scanning, variable change notification in app.rs 2026-07-21 20:38:41 +03:00
Glint Dev
a46c9bc9e7 Phase 2: InternedStr and Interner types (infrastructure) 2026-07-21 20:35:56 +03:00
Glint Dev
30cf2e5e26 Phase 1.2-1.6: replace variables HashMap<String,String> with HashMap<String,Value>, rewrite str_to_dyn/dyn_to_str -> value_to_dynamic/dynamic_to_value, update resolve_string/evaluate_condition/is_truthy for Value 2026-07-21 20:32:29 +03:00
Glint Dev
5597f07787 Phase 1.1: define Value enum in types.rs 2026-07-21 20:29:02 +03:00
faynot
75af23930f feat: new styles 2026-07-08 23:45:37 +03:00
Faynot
f956b750e3 feat: reactivityl; vdom; rhei; styles; fs; image element 2026-06-02 12:12:20 +03:00