* Fix hot reloading components with keys
* include component formatted segment keys, but not dynamic component value
* Fix component_literal_dyn_idx index
* add a new test for hot reloading components with keys
* Even more tests
* make clippy happy
* fix typo
* Expose a generic lazy type
* Switch to generic lazy globals
* simplify global lazy context a bit
* rename LazyGlobal to Global
* use Memo::global in more examples
* Fix soundness issue with deref_impl. It relies on the size of self, so it cannot be safe
* add a comment about safety
* Make clippy happy
* fix formatting
* Restore changes to signal impl
* Add helper methods for global signal and global memo to make getting the inner value easier
* Add the capability to handle resize event for web target
* Add the capability to handle resize event for desktop target
* Return all the sizes, not just the first one
* Fix conversion from platform to generic ResizedData for liveview
* Update the generated interpreter js code base
* Fix clippy warnings
* Fix inconsistent use of block_size and inline_size
* Rename `onresized` event to `onresize`
* Remove the the special-casing logic from the binding logic
* Propagating the resize events using CustomEvent
* Fix case convention in core ts
* revert changes to unified bindings
* Cleanup as suggested
* add a resize example
* Fix desktop resize events
* remove tracing from resize example
* use the raw resize entry so we can downcast on web
* remove unused ResizeEventDetail
---------
Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
* Fix hot reloading component properties out of order
* ignore signal write warnings in hot reloading
* Fix hot reloading components with only some literal properties
* Add a test for hot reloading component properties
* got a repro, but no solution :(
* hmmmmm 🤔
* awyayayayayayya
* omg it's because we dont create in rev
* Make nodes rev
* fix tests compile
* Clean up PR
* revert changes to native
* Clean up PR, add test
* remove clone mounted; mounted nodes should never leak into components?
* Remove the mount from vnodes after unmounting them
* Fix use after removal in iterator diffing
* remove logs
* Re-fix keyed list diffing
* Use new.len for diffing keyed lens and remove redundant check
* simplify core list diffing logic a bit
* remove println
* add proper asserts for new tests
---------
Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
* add prevent default methods to the event
* sync prevent default almost working
* sync prevent default working
* Move event handling into the runtime
* update core tests
* restore desktop file dialog
* implement prevent default on web
* add a hint about the new prevent default method
* fix web prevent default
* Fix CTRL+click on links
* fix values memorize in place test
* Fix a few more tests
* Add a playwright test for sync prevent default
* Fix core doc tests
* create a deprecated VirtualDom::handle_event
* fix macos imports in desktop
* Fix onmounted event
* Fix liveview support
* switch to RefCell for metadata
* Remove println
* remove prevent default attribute
* remove web specific link behavior
* Fix liveview links
* more liveview fixes for link
* Fix merge conflicts
* Fix clippy
* use the new prevent default in the file upload example
* Fix nested rsx expansion by not using template titles
* fix writers with nameless templates
* fix clippy
* dont commit vscode fix
* fix release mode, pull out __template_name
* fix axum_desktop
* Fix core tests
* Make most fields of HotReloadedTemplate public for testing
* wip: formatting, compare all diff cases
* slightly smarter diffing for dynamic nodes
* add a comment about generic node diffing
* clean up mutations a bit
* fix load template
* simplify maybe_rebuild
* Restore write mutations flag in web
* write_mutations -> skip_mutations
---------
Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
* Add new crate to workspace members
* Replace DioxusCrate with cargo metadata
* Skip initializing git repo in already existing workspace
* Fix init in workspace
* Fix naming issues with new packages
Changes how we parse names so `dx new packages/blah`creates a subdirectory instead
---------
Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
* add liveview cli support
* Fix TUI fullstack deadlock
* look for fullstack assets in the public directory
* Fix fullstack with the CLI
* Fix static generation server
* progress: add test
* feat: optional read signals
* revision: doc
* fix: fmt
* revision: imports
* fix: return type only if option
* add a few more compile tests for optional props
---------
Co-authored-by: Evan Almloff <evanalmloff@gmail.com>