* Rename dioxus-blitz to dioxus-native
* Add CSS import support (#139)
* Remove data dependencie from NetProvider + global provider.
* Feat CSS import
* Move net handler code out of util
* Fixing test...
* Use the better suited OnceLock instead of LazyLock
* Removing static and move resource callback back out of the document.
Signed-off-by: koko <kokos.kekse@gmail.com>
* Make things work
Signed-off-by: koko <kokos.kekse@gmail.com>
* Fix the servo example
Signed-off-by: koko <kokos.kekse@gmail.com>
* Replace servo image with a more compact version
Signed-off-by: koko <kokos.kekse@gmail.com>
* revert: 8467b271
Signed-off-by: koko <kokos.kekse@gmail.com>
---------
Signed-off-by: koko <kokos.kekse@gmail.com>
* Create readme app
* WPT: reuse FontContext to avoid reloading system fonts
Takes runtime for css-flexbox from 12s -> 8s
* Move Devtools to traits crate
* Suppress unused variable warning
* Implement net for DioxusDocument
Signed-off-by: Nico Burns <nico@nicoburns.com>
* Eliminate BlitzWindowEvent type
Signed-off-by: Nico Burns <nico@nicoburns.com>
* Make net crate use document id instead of window id
Signed-off-by: Nico Burns <nico@nicoburns.com>
* Rename and document net traits
Signed-off-by: Nico Burns <nico@nicoburns.com>
* Split `dioxus-native` crate into `dioxus-native` and `blitz-shell` crates (#163)
* Rename waker module to event
Signed-off-by: Nico Burns <nico@nicoburns.com>
* Create seperate DioxusNativeApplication
Signed-off-by: Nico Burns <nico@nicoburns.com>
* Rename dioxus-native crate to blitz-shell
Signed-off-by: Nico Burns <nico@nicoburns.com>
* Split blitz-shell out of dioxus-native crate
Signed-off-by: Nico Burns <nico@nicoburns.com>
* Remove need for dioxus-native to depend directly on stylo
---------
Signed-off-by: Nico Burns <nico@nicoburns.com>
* Unnest dioxus-native modules
Signed-off-by: Nico Burns <nico@nicoburns.com>
* Split MutationWriter into it's own module
Signed-off-by: Nico Burns <nico@nicoburns.com>
* Split HtmlDocument into it's own crate
Signed-off-by: Nico Burns <nico@nicoburns.com>
* Rename dom field of Window to doc
Signed-off-by: Nico Burns <nico@nicoburns.com>
* Support prefers-color-scheme (dark mode)
* Remove use of the `todo` macro in event handling and add a comment about it being a todo (#168)
Using the `todo` macro causes a panic when this event is encountered. Noop is preferable in this case as it does not crash the application. This is especially annoying on platforms where `Ime::Enabled` event is sent upon application start even when the user is using a keyboard layout that does not need an IME support. There was added a "TODO" comment that informs about this feature being missing. Most IDEs and code editors have support/plugins/extensions to work with this type of comments and this type of comment is already used widely across the codebase. As such, the information about this feature not being implemented is not lost.
* Upgrade to dioxus 0.6-rc.0
Signed-off-by: Nico Burns <nico@nicoburns.com>
* Fix text input in dioxus-native
Signed-off-by: Nico Burns <nico@nicoburns.com>
* Make dioxus-native depend dioxus-core and dioxus-html rather than dioxus
* Remove "full" feature from tokio
* Move Viewport to blitz_traits
Signed-off-by: Nico Burns <nico@nicoburns.com>
* Make tokio optional in dioxus-native and blitz-shell
Signed-off-by: Nico Burns <nico@nicoburns.com>
* Make SVG support optional
* Abstract renderer behind a trait
blitz-shell no longer depends on blitz-renderer-vello
Signed-off-by: Nico Burns <nico@nicoburns.com>
* Split HTML launch functions out in `blitz` crate
* feat: Add mousedown and mouseup event (#172)
* feat: Add mousedown and mouseup event
* feat: Triggering :active pseudo-class
* fix: Triggering :active pseudo-class
* Rename RendererEvent to DomEvent
Signed-off-by: Nico Burns <nico@nicoburns.com>
* Rename Document to BaseDocument. DocumentLike to Document
Signed-off-by: Nico Burns <nico@nicoburns.com>
* Move event and document abstractions to blitz-traits
Signed-off-by: Nico Burns <nico@nicoburns.com>
* Rename BlitzEvent to BlitzShellEvent
Signed-off-by: Nico Burns <nico@nicoburns.com>
* Restyle when style attribute is mutated
* feat: Support text box mouse selection (#182)
* Rename raw_dom_data to data
Signed-off-by: Nico Burns <nico@nicoburns.com>
* Rename dioxus-native to native
* Add to workspace
* simplify launch module, integrate native
* Fix it up again
* Update cargo lock
* FIx: propagate accessibility feature fla
* implement asset resolver
* add native to feature match in cli
* Implement document and history for native
* use no-op eval
* clippy
* typos
* typo
* Convert logs to trace
* Bump blitz to alpha releases
* unset image data
* fix style integration with blitz
* fix a few lints
* wire up ids
* implement a few more events
* add more helpful todo note
* bump ci to allow edition 2024, use newer nightly
* make clippy happy
* also update matrix tests to rust 2024
* Add autofocus
Co-authored-by: otgerrogla 2356820+otgerrogla@users.noreply.github.com
* Wait for the suspense boundary above the router to resolve before sending the first streaming chunk (#3891)
* Change the suspense streaming context after suspense is resolved in the router
* Wait for the suspense context before streaming the first chunk in ssr
* forward more response parts
* warn
* extract the hydration format into a crate
* Fix hydration when no data is sent
* forward web and server features
* Fix suspense that starts on the client
* fix use_server_future on the client
* Add documentation for fullstack hooks and protocol
* downgrade rust edition
* fix clippy
* fix tests
* fix clippy
* Fix pure web compile
* undo changes to the fullstack router example
* fix formatting
* hoist a bunch of deps
---------
Signed-off-by: koko <kokos.kekse@gmail.com>
Signed-off-by: Nico Burns <nico@nicoburns.com>
Co-authored-by: Nico Burns <nico@nicoburns.com>
Co-authored-by: koko <72217393+kokoISnoTarget@users.noreply.github.com>
Co-authored-by: David Husička <25853767+DavidHusicka@users.noreply.github.com>
Co-authored-by: luoxiaozero <48741584+luoxiaozero@users.noreply.github.com>
Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
* Change the suspense streaming context after suspense is resolved in the router
* Wait for the suspense context before streaming the first chunk in ssr
* forward more response parts
* warn
* extract the hydration format into a crate
* Fix hydration when no data is sent
* forward web and server features
* Fix suspense that starts on the client
* fix use_server_future on the client
* Add documentation for fullstack hooks and protocol
* downgrade rust edition
* fix clippy
* fix tests
* fix clippy
* Fix pure web compile
* undo changes to the fullstack router example
* fix formatting
* 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
* Create a crate for constant serialization of config structs for manganis
* use SerializeConst for the image asset builder
* switch to a declarative macro for assets
* clean up asset macro a bit
* add serializable options for each asset type
* serialize const vec
* Add unique path formatting
* implement the new manganis macro
* optimize assets in the CLI
* Fix clippy
* Fix assets with dioxus formattable
* reduce fuzzing test limits
* use the new syntax in examples
* fix formatting
* Final doc and test pass on const-serialize
* fix avif support
* Fix manganis doc tests
* cache asset optimization
* Split out asset and bundled asset
* make hash pointer width independent
* remove const serialize cargo lock
* Fix manganis macro docs
* all tests passing
* add constvec::is_empty method to fix clippy lint
* remove nasm feature
* simplify test_rsplit_once test so typos passes
* fix range syntax for stable
* revert example change from clippy fix
* remove dioxus-static-site-generation workspace dependency
* always accept unix paths
* fix windows path seperator
* fix folder asset hash
* Optimize assets in a blocking task
* Fix asset options docs
* Document Asset and BundledAsset
* move manganis back into it's own folder
* simplify the linker macro a bit
* add more docs to AssetParser expansion
* fix manganis core doc test
* add image format helpers
* Fill in new cargo.tomls
* fix folders with explicit options
* Split by both unix and windows path separators and take the smallest one
* fix string length
* Fix base path on web and fullstack
* Fix assets with base path
* fix fullstack base route with trailing slash
* fix clippy
* move history providers into a separate crate
* start moving route providers into the renderers
* clean up intoroutable
* remove into routable
* fix router tests
* Provide history providers in each renderer
* implement nested routers
* move the lens out of the history crate
* re-export dioxus history trait in the prelude
* also re-export the history function
* fix history doctests
* some light cleanups
---------
Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
* 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>
* 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>
* 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
* 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
* fix rsx autocomplete and diagnostics in the root; provide better completions after attributes are finished
* clean up pr to use internal child parsing
* Fix peek_lowercase name
* fix comma diagnostics in the root
* Fix parsing components with a path
* remove simple routes trailing comma
* Fix incomplete_root_elements test
* Remove trailing commas from root body node in tests
---------
Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
* switch to a Document trait and introduce Script/Head/Style/Meta components
* Fix desktop title
* Insert special elements into the head during the inital SSR render
* Make all head component attributes optional
* hydrate head elements
* improve the server streaming head warning
* Document fullstack head hydration approach
* deduplicate head elements by href
* move Link into head::Link
* document head components
* add meta and title examples
* Fix a few doc examples
* fix formatting
* Add title to playwright tests
* serde is optional on web, but it is enabled by hydrate
* remove leftover console log
* create static site generation helpers in the router crate
* work on integrating static site generation into fullstack
* move ssg into a separate crate
* integrate ssg with the launch builder
* simplify ssg example
* fix static_routes for child routes
* move CLI hot reloading websocket code into dioxus-hot-reload
* fix some unused imports
* use the same hot reloading websocket code for fullstack
* fix fullstack hot reloading
* move cli hot reloading logic into the hot reload crate
* ssg example working with dx serve
* add more examples
* fix clippy
* switch to a result for Element
* fix formatting
* fix hot reload doctest imports
* fix axum imports
* add show method to error context
* implement retaining nodes during suspense
* fix unterminated if statements
* communicate between tasks and suspense boundaries
* make suspense placeholders easier to use
* implement IntoDynNode and IntoVNode for more wrappers
* fix clippy examples
* fix rsx tests
* add streaming html utilities to the ssr package
* unify hydration and non-hydration ssr cache
* fix router with Result Element
* don't run server doc tests
* Fix hot reload websocket doc examples
* simple apps working with fullstack streaming
* fix preloading wasm
* Report errors encountered while streaming
* remove async from incremental renderer
* document new VirtualDom suspense methods
* make streaming work with incremental rendering
* fix static site generation
* document suspense structs
* create closure type; allow async event handlers in props; allow shorthand event handlers
* test forwarding event handlers with the shorthand syntax
* fix clippy
* fix imports in spawn async doctest
* fix empty rsx
* fix async result event handlers
* fix mounting router in multiple places
* Fix task dead cancel race condition
* simplify diffing before adding suspense
* fix binary size increase
* fix attribute diffing
* more diffing fixes
* create minimal fullstack feature
* smaller fullstack bundles
* allow mounting nodes that are already created and creating nodes without mounting them
* fix hot reload feature
* fix replacing components
* don't reclaim virtual nodes
* client side suspense working!
* fix CLI
* slightly smaller fullstack builds
* fix multiple suspended scopes
* fix merge errors
* yield back to tokio every few polls to fix suspending on many tasks at once
* remove logs
* document suspense boundary and update suspense example
* fix ssg
* make streaming optional
* fix some router and core tests
* fix suspense example
* fix serialization with out of order server futures
* add incremental streaming hackernews demo
* fix hackernews demo
* fix root hackernews redirect
* fix formatting
* add tests for suspense cases
* slightly smaller binaries
* slightly smaller
* improve error handling docs
* fix errors example link
* fix doc tests
* remove log file
* fix ssr cache type inference
* remove index.html
* fix ssg render template
* fix assigning ids on elements with dynamic attributes
* add desktop feature to the workspace examples
* remove router static generation example; ssg lives in the dioxus-static-generation package
* add a test for effects during suspense
* only run effects on mounted nodes
* fix multiple suspense roots
* fix node iterator
* fix closures without arguments
* fix dioxus-core readme doctest
* remove suspense logs
* fix scope stack
* fix clippy
* remove unused suspense boundary from hackernews
* assert that launch never returns for better compiler errors
* fix static generation launch function
* fix web renderer
* pass context providers into server functions
* add an example for FromContext
* clean up DioxusRouterExt
* fix server function context
* fix fullstack desktop example
* forward CLI serve settings to fullstack
* re-export serve config at the root of fullstack
* forward env directly instead of using a guard
* just set the port in the CLI for fullstack playwright tests
* fix fullstack dioxus-cli-config feature
* fix launch server merge conflicts
* fix fullstack launch context
* Merge branch 'main' into suspense-2.0
* fix fullstack html data
* remove drop virtual dom feature
* add a comment about only_write_templates binary size workaround
* remove explicit dependencies from use_server_future
* make ErrorContext and SuspenseContext more similar
* Tweak: small tweaks to tomls to make diff smaller
* only rerun components under suspense after the initial placeholders are sent to the client
* add module docs for suspense
* keep track of when suspense boundaries are resolved
* start implementing JS out of order streaming
* fix core tests
* implement the server side of suspense with js
* fix streaming ssr with nested suspense
* move streaming ssr code into fullstack
* revert minification changes
* serialize server future data as the html streams
* start loading scripts wasm immediately instead of defering the script
* very basic nested suspense example working with minimal html updates
* clean up some suspense/error docs
* fix hydrating nested pending server futures
* sort resolved boundaries by height
* Fix disconnecting clients while streaming
* fix static generation crate
* don't insert extra divs when hydrating streamed chunks
* wait to swap in the elements until they are hydrated
* remove inline streaming script
* hackernews partially working
* fix spa mode
* banish the open shadow dom
* fix removing placeholder
* set up streaming playwright test
* run web playwright tests on 9999 to avoid port conflicts with other local servers
* remove suspense nodes if the suspense boundary is replaced before the suspense resolves on the server
* ignore hydration of removed suspense boundaries
* use path based indexing to fix hydrating suspense after parent suspense with child is removed
* re-export dioxus error
* remove resolved suspense divs if the suspense boundary has been removed
* Fix client side initialized server futures
* ignore comment nodes while traversing nodes in core to avoid lists getting swapped out with suspense
* Pass initial hydration data to the client
* hide pre nodes
* don't panic if reclaiming an element fails
* fix scope stack when polling tasks
* improve deserialization out of length message
* Ok(VNode::placeholder()) -> VNode::empty()
* fix typo in rsx usage
* restore testing changes from suspense example
* clean up some logs and comments
* fix playwright tests
* clean up more changes in core
* clean up core tests
* remove anymap dependency
* clean up changes to hooks
* clean up changes in the router, rsx, and web
* revert changes to axum-hello-world
* fix use_server_future
* fix clippy in dioxus-core
* check that the next or previous node exist before checking if we should ignore them
* fix formatting
* fix suspense playwright test
* remove unused suspense code
* add more suspense playwright tests
* add more docs for error boundaries
* fix suspense core tests
* fix ErrorBoundary example
* remove a bunch of debug logging in js
* fix router failure_external_navigation
* use absolute paths in the interpreter build.rs
* strip '\r' while hashing ts files
* add a wrapper with a default error boundary and suspense boundary
* restore hot reloading
* ignore non-ts files when hashing
* sort ts files before hashing them
* fix rsx tests
* fix fullstack doc tests
* fix core tests
* fix axum auth example
* update suspense hydration diagram
* longer playwright build limit
* tiny fixes - spelling, formatting
* update diagram link
* remove comment and template nodes for suspense placeholders
* remove comment nodes as we hydrate text
* simplify hackernews example
* clean up hydrating text nodes
* switch to a separate environment variable for the base path for smaller binaries
* clean up file system html trait
* fix form data
* move streaming code into fullstack
* implement serialize and deserialize for CapturedError
* remove waits in the nested suspense playwright spec
* force sequential fullstack builds for CI
* longer nested suspense delay for CI
* fix --force-sequential flag
* wait to launch server until client build is done
---------
Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
Improve inline docs
* improve incorrect event handler return error message
* Improve event handler docs
* document the eval functions
* document spawn and common spawn errors
* fix event handler docs
* add notes about how you use attributes and elements in rsx
* add doc aliases for attributes and events we rename
* add some more aliases for common search terms
* don't doc ignore any public examples in core
* don't ignore public doc examples in ssr
* don't ignore examples in the dioxus package readme
* add a warning when you launch without a renderer enabled
* fix some outdated element docs
* add a bunch of examples to resource
* add notes about desktop events
* add more docs for use_resource
* add on_unimplemented hint to Dependency
* fix some unresolved links
* add examples to each of the router traits
* add not implemented errors for router traits
* add an example to the routable trait
* expand rsx macro docs
* improve memo docs
* update the dioxus readme
* mention dioxus crate features in the docs
* fix a bunch of doc tests
* fix html doc tests
* fix router doc tests
* fix dioxus signals doc tests
* fix dioxus ssr doc tests
* fix use_future example in the hooks cheat sheet
* add a javascript alias for eval
* fix hook explanation values
* remove unused embed-doc-image dependency
* create static site generation helpers in the router crate
* work on integrating static site generation into fullstack
* move ssg into a separate crate
* integrate ssg with the launch builder
* simplify ssg example
* fix static_routes for child routes
* move CLI hot reloading websocket code into dioxus-hot-reload
* fix some unused imports
* use the same hot reloading websocket code for fullstack
* fix fullstack hot reloading
* move cli hot reloading logic into the hot reload crate
* ssg example working with dx serve
* add more examples
* fix clippy
* fix formatting
* fix hot reload doctest imports
* fix axum imports
* don't run server doc tests
* Fix hot reload websocket doc examples
* warn if a package relies on the CLI config, but it is not built with the CLI
* fix default features
---------
Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>