* return a 404 when paring the route fails
* add a playwright test for fullstack routing status codes
* Fix new playwright test
* document SSRError
* Make SSRError public and fix clippy
* Move the error display bound to the routable trait
* fix clippy
* return a more generic 404 message
* fix router tests
* feat: wasm-split base implementation
* kinda sorta works with the cli
* okay great it actually works
* fix: cache busting for chunks
* cleaned up version
* it works with the router
* wip: migrate to a faster linear solution using id remapping
* add a good harness
* it works completely on the docsite
* the super tight build works too
* make parallelizable
* works on the docsite but not the harness
* light cleanups, fix for both harness and docsite
* make codegen smaller by extract some shared functions to prevent monos
* chunking works, but tbd on tuning heuristics
* extract used module
* wip: cleaning up module
* wip: much better understanding of how imports work
* fix the call graph
* working again...
* wip: thinking about ifuncs
* ifunc approach works
* yes the ifunc approach works!!
* it all works completely even with chunks
* small cleanups
* comments
* actually locate all of the symbols
* clean up final implementation
* clean up tomls, revert some mono changs
* clean up, add some more comments / docs in places
* hoist more packages
* clean up impl a bit more
* clean cli
* move harness to playwright
* update playwright
* extract codgen
* add lazy to components
* Add docs to split loader
* clippy
* typos
* clippy, don't generate splits if not on wasm
* whoops, const
* Typos and docs
* enable optimizations in ci
* add optimizations to ci
* add wasm-split router feature
* parallel playwright?
* fix no case check
* disable pre-compress... think that might be the issue
* better logging, no default pre-compress, caching of shared symbols
* Fix: compressing assets
* fix non-interactive logging for serve
* cache playwright even on failure, use the cli with optimizations
* fix prebuild
* fix playwright webserver
* Hash and compare templates by value in debug mode
* add a regression test for layout state persisting after navigation
* More reliable static item merged detection
* Fix hydration of suspense fragments that contain text nodes
* fix release builds
* disable link deduplication
* restore meta tag deduplication
* Add a test for the failed hydration case
* make changes to the document trait non-breaking
* remove info log from server future hook
* restore default implementation - this was also a breaking change
* fix semver breakage
* clean up server_future
* Cleanup unused code
* fix clippy
---------
Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
* feat: integrate dioxus-logger inline
* remove log/simple logger references
* fix: add dioxus-data-id-0 to root elements to not emit errors internally
* drop config.toml and use cargo.toml profiles instead
* make clippy happy with the unit value lint
* feat: better presentation for logging
* add a fuzzing test for reference counted generational boxes
* Fix subscriptions for readonlysignal passed as props
* Don't subscribe to dropped contexts
---------
Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
* wip: fix manganis import path
* upgrade tauri bundler, convert todo!() to unimplemented!()
* feat: mobile hotreloading + ios asset configuration
* remove oid demo and its associated env vars
* nuke all the things that cause cache thrashing
* swap to Asset type
* add some more logs
* display impl for attrvalue
* dont panic on collect failure
* cut down web deps to 150
* clean up deps in a lot of places, simplify build scripts
* clean up asset resolution and cli-dev profile
* wire up absolute paths for manganis asset in a particular mode
* move document related things around to shorten compile times
* move most things to `document::Item` and then decompose the cli-config
* switch link to stylesheet for clarity in examples
* move manganis workspace example to examples folder
* decompose manganis-cli-support
* dont need mobile demo anymore
* remove gloo dialogs
* html doesnt need document
* rename hotreload to devtools
* really clean up the html crate
* fix weird rsx spacing
* clean up desktop to use callback
* clean up document a bit
* re-wire up devsocket
* fix utf css
* yeeeet that js out of here
* synthetic web system works
* web crate almost done being cleaned up
* desktop mostly cleaned up too
* clean up cli a bit
* more cli cleanup
* cli builds again
* clean up cli, inline structs, cut down number of unique types where possible
* hotreload works again for desktop and this time, mobile too
* cfg out tungstenite
* devserver err
* more refactor to cli builder
* switch to unbounded_send
* new structure is much cleaner
* add http serve subcommand
* bundled hotreload
* kick stylsheets
* clean up a bit more, split up eventloop
* amazingly serve seems done
* change from pub to pub(crate) in cli
* remove tools
* bit more polish to cli
* fix issue with join
* gracefully handle fullstack without a server
* fullstack mobile demo
* fix launch function, move projects into example-projects folder
* hoist examples
* add "run" command
* clean up launch
* remove old manual websocket receiver
* doctor command
* allow desktop to scroll
* cut apart router crate
* dont put launch in prelude
* use dioxus::launch where possible
* rename rsx, cut out hotreload tests
* remove liveview project
* bump native
* fix compile for renderers
* move sync event response out of interpreter
* move render in serve
* rollback settings change
* cli compiles, huzzah!
* change uris for asset
* fix asset
* new tui screen
* new cargo-like tui works
* very very verty close
* it works! very small bug with incorrect grapheme calc
* Clean up devserver a bit
* status sytem
* tidy up debug filters
* clean up logging situation
* Fix a number of bugs with log printing
* new printing system is more reliable
* wire up more stuff
* things working but fullstack is having issues
* fullstack works again!
* hotreloading bundled assets works again
* bundled hotreload and beginnings of macos bundling
* Hotreload desktop
* combined server builds
* add build handle
* fix fullstack assets
* make open async, add some hooks for ios
* migrate filemap to runner
* wip global crate system
* fixup bundles + organize asset
* fix asset location bug
* all the bundled reloading!
* open ios simulator!
* full hotreload support for mobile + serverfn
* basic cleanups
* clean up dx
* Move filemap
* fix cutting of newlines
* assets workibg, some android
* hoist wry/tao
* use sync locks and headers to fix issues with android
* desktop -> mac/win/linux with alias
* better logging
* feat: workspace (entire computer!) hotreload
* should rebuild toggle, ios simulator bootup
* proper mobile support in launch
* more robust handling of assets
* fix cargo
* bring back some of tauri bundle
* make warnings go away, clippy happy on cli
* some final clippy cleanups
* fmt
* move manganis to its own folder
* upgrade bundle to stable
* drastically slim down manganis, prepping for merge
* typos, failing test, docsrs config
* remove static gen test
* nix static gen test
* we use --platform web instead of --platform fullstack now
* only bind dev urls in desktop/mobile
* install gtk
* nix static gen
* split build dir by app name
* add a default head method through eval
* remove the old document trait
* implement document for each platform
* pull out document into a dedicated crate to cut down on shared dependencies
---------
Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
* Implement Rc generational pointers
* Clean up error handling a bit
* start adding tests
* Simplify a few types
* Separate Rc and normal generational boxes
* Add tests for rc drop and read
* Move over the pointer instead of the data in ReadOnlySignal props
* Fix panic on ref drop and release mode builds
* final rc signal cleanup
* use rc generational boxes for event handlers as well
* add a regression test for read only signal cloning
* merge main
---------
Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
* improve documentation for the fullstack server context
* Add a section about axum integration to the crate root docs
* make serve_dioxus_application accept the cfg builder directly
* remove unused server_fn module
* improve fullstack config docs
* improve documentation for the server function macro
* fix axum router extension link
* Fix doc tests
* Fix launch builder
* Simplify the launch builder
* don't re-export launch in the prelude
* refactor fullstack launch
* Fix fullstack launch builder
* Update static generation with the new builder api
* fix some formatting/overly broad launch replacements
* fix custom menu example
* fix fullstack/static generation examples
* Fix static generation launch
* A few small formatting fixes
* Fix a few doc tests
* implement LaunchConfig for serve configs
* fix fullstack launch with separate web and server launch methods
* fix check with all features
* dont expose inner core module
* clippy and check
* fix readme
---------
Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
* Chore: remove random old test fixture from CLI
* nuke oidc
* remove weird useless desktop example
* remove lua globals vscode setting for cli
* remove cli testcase
* hoist deps in core-macro
* we dont need prettyplease
* add hoisted dependencies
* hoist more despt
* rename rsx_rosetta to dioxus_rsx_rosetta
* drop cache thrashing when listening for features
* drop flag from mobile dep
* drop cli-config warning
* hoist more deps
* clippy...
* we dont use the tools module...
* bump lock
* Allow hooks in the expression of a match statement and if statement
* Don't allow hooks in spawn and detect hooks in initialization closures
* Point to DX check when hooks are called conditionally
* 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>
* CI: add docsrs to ci
* add env vars
* no need for tokio things
* whoops, wrong rust nightly
* add swc
* bump crate versions to 0.6.0-alpha.0
* hoist up warnings and shuffle cargo.toml
* update cargos and disable warnings from ci
* attempt fix of aws
* attempt disabling aws_lc_sys globally
* pull in lc-sys
* add fips feature to fix docs
* turn on features for aws-lc-sys on cargo-doc-all
* pass along more args
* fix cfg docs
* fix: flakey gen box test
* fix: doc_cfg in static gen
* dont include readme
* fix error on static gen
* remove random line
* temporarily disable warnings
* simplify axum desktop so it doesnt count as a lib
* fix binstall link
* bump locks
* lock fixes
* revert axum desktop
* dont publish some crates
* create the dynamic value pool
* assign ids to dynamic formatted segments
* separate the rendering and literal pools
* rsx output compiles again
* more examples compiling with new rsx expansion
* update template body explanation
* all workspace examples compile
* fix formatted segments in keys
* start hot reload diffing
* fix component literal hot reloading
* start integrate new hot reloading with the CLI
* simple hot reloads working
* Fix hot reloading blocks with components
* implement hot reloading for if chains
* Fix hot reloading after a template requires a full rebuild
* Fix hot reloading any attribute values
* remove unsafe from hot reload utils
* Fix hot reloading empty rsx
* add more hot reloading tests
* reorganize hot reload module
* fix web hydration
* fix empty rsx nodes in autoformatting
* fix tests
* remove path sorting logic from core
* make template names more consistent in debug mode
* fix quote_as_hot_reload_literal for explicitly typed literals
* fix can_be_shorthand for string literals
* fix formatted single dynamic expression
* Fix usize component properties and playwright tests
* remove default implementation for TemplateBody
* add a bunch more comments for diffing, scoring and why this scoring system is optimal