Commit Graph
100 Commits
Author SHA1 Message Date
Jonathan Kelley ef4d596885 fix playwright flakey test, upgrade to blacksmith runners for more things, cargo update to fix rfd build (#5228)
* attempt fix for flakey playwright test

* fix link

* disable blitz-shell file dialog

* remove rfd integration in native for now

* undo file-dialog pass-thru in anticipation of blitz-shell update

* upgrade to blacksmith

* blitz-shell bump

* use faster runner
2026-01-16 16:52:41 -08:00
Mateusz Maćkowski 1b1e3e3e17 fix: serve_subsecond looping when devtools do not connect (#5158)
Currently when `serve_subsecond` is used and the user doesn't run the
app with `dx serve --hot-patching`, the function causes the future to be
constantly recreated in a loop. This fixes the behavior so that the
future is awaited once and then `serve_subsecond` returns.
2026-01-16 16:44:35 -08:00
Rhaskia adfd6a12f8 add android_sync_lock to wry event handler to avoid refcell errors (#5190)
* add android_sync_lock to wry event handler to avoid refcell errors

* rustfmt

* move sync lock to apply_event
2026-01-16 16:37:28 -08:00
Coco d6629acd84 use $CARGO_HOME for installation if set (#5219) 2026-01-16 16:33:45 -08:00
Nico Burns 35e289fe28 Fix more examples to work with dioxus-native (#5179)
* Enable native for hotdog, file-explorer, and bluetooth-scanner examples

Signed-off-by: Nico Burns <nico@nicoburns.com>

* Fix crash in calculator example

Signed-off-by: Nico Burns <nico@nicoburns.com>

* Add config macro for native

* Add Config struct to dioxus-native

* Re-export dioxus-native as dioxus::native

* Fix calculator example to work with dioxus-native

* Fix calculator_mutable example to work with dioxus-native

---------

Signed-off-by: Nico Burns <nico@nicoburns.com>
2026-01-17 00:32:45 +00:00
Marius Ileana 8aefb2a1e2 fix(cli): showDXToast on reload (#5202)
Basically, guarding the elements against nulls. It uses the most explicit and safe version of a JS implementation.

Closes #5175
2026-01-16 16:30:29 -08:00
kevinwrightandJonathan Kelley b83bff76e6 Full file paths in drop handlers (#5211)
* Use native drop handler to push full file paths into element drop handler

* Remove debug code

* fmt

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2026-01-16 16:10:41 -08:00
hideselfviewandDmitry Minkovsky 3a60140dff fix: prevent dx fmt from adding trailing whitespace to blank lines (#5224)
This fixes a conflict between dx fmt and cargo fmt (rustfmt). Previously,
dx fmt would add indentation whitespace to blank lines inside RSX blocks,
but cargo fmt removes trailing whitespace from all lines. This made it
impossible for code to satisfy both formatters.

The fix skips adding indentation to empty lines in two places:
1. When indenting formatted RSX blocks inside expressions
2. When reassembling the final formatted output

Fixes #5223

Co-authored-by: Dmitry Minkovsky <dminkovsky@gmail.com>
2026-01-16 15:47:47 -08:00
Evan Almloff 8eb4322de2 Fix optional callback props implementation (#5225)
* fix optional event handler diffing

* add regression test
2026-01-16 14:50:48 -08:00
Samuel Åkesson f77a9162f5 chore: fix typo (#5220)
"Fist" -> "First"
2026-01-14 17:37:55 -06:00
Nico BurnsandEvan Almloff 761c9503fd CLI: don't enable default features in --no-default-features builds (#5147)
* Don't push default features in `--no-default-features` builds

Signed-off-by: Nico Burns <nico@nicoburns.com>

* add tests for default features and no default features outside of renderers

---------

Signed-off-by: Nico Burns <nico@nicoburns.com>
Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
2026-01-14 23:24:18 +00:00
Nico BurnsandEvan Almloff 352e59ea01 Bump rfd to 0.17.2 (#5204)
* Bump rfd to 0.17.1

Signed-off-by: Nico Burns <nico@nicoburns.com>

* Bump MSRV to 1.90

Signed-off-by: Nico Burns <nico@nicoburns.com>

* Fix clippy

Signed-off-by: Nico Burns <nico@nicoburns.com>

* bump rfd and revert msrv changes

---------

Signed-off-by: Nico Burns <nico@nicoburns.com>
Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
2026-01-14 22:30:51 +00:00
Sabin Regmi 15bf75b7b0 Fixes Passive Segment in Manganis (#5189) 2026-01-08 12:23:19 -08:00
Alex Ellwein a5db24defc chore: fix typo (#5185) 2026-01-07 13:18:11 -06:00
Jonathan Kelley 6b78816c1d allow passive wasm segments for manganis (#5163)
* fix passive segment using tls calculation!

* clean things up

* clean diff

* revert some pr changes for review

* cleanups
2026-01-07 02:35:08 -08:00
Jonathan Kelley ec8f31dece bump translation links 2025-12-29 22:58:12 -05:00
HenryandJonathan Kelley 9965220947 Scoped css (#5087)
* Create new css module parser

* Use css module processing

* Make hot reloading work for css_module macro

* Change css_module macro shape and rename to styles

* Add css_module example

* Update styles macro documentation

* Remove hidden from styles macro

* Remove unneeded param

* Remove unneeded visibility

* Improve `styles!` macro documentation

* Clippy

* Remove unneeded method

* Clippy

* Clippy

* Replace panic with anyhow

* Update css_module macro to attribute macro

* Update macro docs

* chore: Cargo.lock

* Clippy

* respect semver by deprecating old func

* update to latest winnow

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2025-12-29 22:41:36 -05:00
Jonathan Kelley 34554766db bump extension 2025-12-29 22:09:23 -05:00
Jonathan Kelley 1025bd69f0 fix: autofmt duplicate whitespace on attributes, flickering of vscode autoformat (#5159)
* wip: failing test

* edit harness a bit

* wip, not fixed entirely

* fix comment accumulation and whitespace

* fix: autofmt syncrhonize edits with vscode waitUntil edit pipeline

* fix optimization collapsing away whitespace

* comment out test case for now
2025-12-29 22:04:41 -05:00
Jonathan Kelley f537d72918 fix typo checker 2025-12-29 20:24:52 -05:00
Jonathan Kelley 852a1e5ea5 move notes to translations 2025-12-29 20:23:55 -05:00
Jonathan Kelley e2a405457f move security doc to notes 2025-12-29 20:23:10 -05:00
Jonathan Kelley 13e7cd1655 remove mailmap 2025-12-29 20:21:24 -05:00
Jonathan Kelley c2c24569c6 feat: add section about assets to key agents.md 2025-12-29 18:11:28 -05:00
Jonathan Kelley 638c02e15a feat: AGENTS.md and architecture guides for agents! 2025-12-29 18:09:05 -05:00
Agustín Covarrubias 2ee8ecd477 fix(cli): pass --all-features flag to cargo (#5153) 2025-12-29 09:33:03 -05:00
Jonathan Kelley 02b62342ef allow codesigning any server backend on macos (#5085)
* allow codesigning any server backend on macos

* clippy
2025-12-28 22:37:46 -05:00
Bayley Foster 887a87dcc1 fix(cli): display bundle format instead of undefined in dev loading screen (#5123) 2025-12-28 21:51:39 -05:00
Evan AlmloffandJonathan Kelley c977cc125e Switch const serialize to use CBOR (#4932)
* implement const cbor encoding + decoding for basic types

* implement map encoding and decoding

* fix map test

* all tests passing

* dynamically sized arrays

* smaller str encoding

* swap array and list and add more documentation

* move serialization and deserialization for each struct together

* support both legacy and new assets

* bump const serialize version

* fix asset conversion code

* pull out manganis symbol struct from tuble

* test reading old asset versions

* more list/array cleanup and bump rust version

* fix clippy

* switch cli opt port

* install playwright deps

* split cli-optimization package to avoid two dioxus' in the same crate

* fix clippy

* force the toast.png asset to be included in the linker stage #[used] has platform depedant behavior

* bundle both formats in the link section and only use the asset the cli changed

* remove sudo which doesn't exist on windows

* add binstall to the playwright workflow

* separate bin target for the old cli

* lockfile

* cargo update to get versions shaken out

* notes on binstalls, add back `.read()` for compat

* use 0.8.0-alpha.0 for const-serialize instead of 0.8

this ensures we can still publish breaking changes on 0.8 without taking over the full version

* fix clippy in example

* small debug nits

* update rust-overlay in nix

* fix flake?

* migrate to new structure

* just comment out binstalls

* just remove old test harness

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2025-12-28 21:49:34 -05:00
Nico Burns c68a47b2d3 CLI: only push a dioxus/* fallback feature if the crate being compiled (#5143)
depends on the `dioxus` crate.
2025-12-28 12:24:03 -05:00
99240ef000 Issue: 5138 Fix HotDog img URL (#5139)
* Issue: 5138 Fix HotDog img URL

* Use serde instead of json::Value

---------

Co-authored-by: Nils Loewen <nils@blockrewards.ca>
Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
2025-12-26 08:37:57 -06:00
Nils LoewenandNils Loewen 3eb58f7d42 Issue 5140 Fix Favorites page (#5141)
Co-authored-by: Nils Loewen <nils@blockrewards.ca>
2025-12-26 07:49:12 -06:00
Nico Burns 31bee1417c Add a prelude module to Dioxus Native (#5104)
* Add prelude to dioxus-native crate

Signed-off-by: Nico Burns <nico@nicoburns.com>

* Fix unreachable_patterns lint

---------

Signed-off-by: Nico Burns <nico@nicoburns.com>
2025-12-25 16:51:51 -05:00
Jonathan Kelley db23197925 fix dx fmt span attribute issue (#5132)
* fix: if expr spans causing invalid span locations

* cleanups

* clippy, typo
2025-12-25 16:50:50 -05:00
Evan Almloff b050dfec5c Fix optional element regression (#5110)
* Fix optional element regression

* use vnode unless it is explicitly an option
2025-12-25 16:49:53 -05:00
Ivan Tham 417bf7a4c1 Fix subsecond doc comment (#5134) 2025-12-24 17:01:13 +00:00
qouteallandEvan Almloff da72b63b6f Fix the wrong removal of first linker arg in Windows. Linker argument file no longer include first program name argument. Small refactor of handling of linker response file. (#5010)
Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
2025-12-15 10:14:22 -06:00
dependabot[bot] 5929c09cec Bump actions/upload-artifact from 4 to 6 (#5100)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 6.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4...v6)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-15 10:14:15 -06:00
Nico Burns 9484cda546 Fix clippy lints (Rust 1.92) (#5102)
* Fix clippy lints (Rust 1.92)

* cargo fmt

Signed-off-by: Nico Burns <nico@nicoburns.com>

---------

Signed-off-by: Nico Burns <nico@nicoburns.com>
2025-12-15 15:32:09 +00:00
dependabot[bot] 96231defd1 Bump actions/cache from 4 to 5 (#5099)
Bumps [actions/cache](https://github.com/actions/cache) from 4 to 5.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-15 09:31:31 -06:00
Rhaskia 88120a7c39 add auxclick and scrollend to dioxus events (#5095) 2025-12-14 22:52:46 -08:00
Jonathan Kelley 2da01937c1 feat: add support for server-only extractors (#5086) 2025-12-11 18:21:27 -08:00
Nico Burns 552b553a44 Fix call to rustc-objcopy to strip binary on Linux (#5066)
* Fix call to rustc-objcopy to strip binary on Linux

Signed-off-by: Nico Burns <nico@nicoburns.com>

* Print stdout and stderr if strip fails

Signed-off-by: Nico Burns <nico@nicoburns.com>

---------

Signed-off-by: Nico Burns <nico@nicoburns.com>
2025-12-11 02:36:56 +00:00
jullang 05b2dd400c fix typos in dioxus_fullstack::client::get/set/clear_request_headers (#5078) 2025-12-09 08:36:30 -06:00
Paul Hansen 8a38e7ca76 fix: Allow links with duplicate href if rel is different (#5071)
Fixes #5070
2025-12-09 13:53:42 +00:00
Nico Burns c01770fcfb Fix resolving windows icon path (#5072)
Signed-off-by: Nico Burns <nico@nicoburns.com>
2025-12-08 14:37:55 +00:00
Acheul 46b1639ddf fix collect child paths in store (#5069) 2025-12-07 08:21:03 -06:00
jullang 810321e053 Update README links for version 0.7 (#5068)
This seems to be out of sync right now, as the link itself points to 0.7, but the name still says 0.6
2025-12-07 13:21:32 +00:00
Jonathan Kelley 74bc78324b remove dead link 2025-12-05 12:14:23 -08:00
Jonathan Kelley c5f330dcae fix: make install.sh sh compatible (#5058) 2025-12-05 12:12:11 -08:00
Jonathan Kelley dd2d1b8a19 downgrade cargo generate to fix msrv 2025-12-05 12:11:49 -08:00
Jonathan Kelley 863aacdce7 use 1.88 for main ci 2025-12-05 11:53:29 -08:00
Jonathan Kelley da04e1e8df rollback tempfile, drop rustvers requirement 2025-12-05 11:22:50 -08:00
Jonathan Kelley 35351ebe99 remove musl publish target 2025-12-05 11:18:36 -08:00
Jonathan Kelley 5a10524b97 use rust 1.89 to fix rustvers issue 2025-12-04 20:25:02 -08:00
Jonathan Kelley 68e04ff837 use 1.89 for publish 2025-12-04 20:21:04 -08:00
Jonathan Kelley ebeaa2c273 fix: bump cli rustvers 2025-12-04 18:30:10 -08:00
Jonathan Kelley 8f8b58ea80 release v0.7.2 2025-12-04 18:26:15 -08:00
Jonathan Kelley ca585c35ee remove warnings dep from various crates 2025-12-04 18:13:58 -08:00
Jonathan Kelley af8d6aed2f dont bother warning about unmatched ifuncs
we added some logs around unmatched ifuncs, but we actually didn't need them.
this is because ifuncs can be *new* even if there isn't and old corresponding ifunc.
2025-12-04 18:07:32 -08:00
Jonathan Kelley 3656cf2ba6 bump tempfile to beat deprecated warning 2025-12-04 17:57:37 -08:00
Jonathan Kelley 2f7b025eaf cargo formatting 2025-12-04 17:49:53 -08:00
KlemenandJonathan Kelley 3b9558d8eb Fix exit_on_last_window_close for UserWindowEvent::CloseWindow (#5047)
* Fix exit_on_last_window_close for UserWindowEvent::CloseWindow

* fix: unify under close_requested

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2025-12-04 17:26:32 -08:00
Soheil AlizadehandJonathan Kelley 3fef7a9962 Enable musl target builds with vendored libgit2 (#4991)
* enable musl target builds with vendored libgit2

* move git2 to bottom of list

* also fix dioxus fullstack docs builds

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2025-12-04 17:04:27 -08:00
fc0fbb2561 Fix dioxus-fullstack::Streaming<T,E> only deserializing one client value (#4975)
* dioxus-fullstack::Streaming: decode multiple client values from Bytes

* small nits

* remove the bidirectional stream since it doesn't work in the browser

* final cleanups

* nits

---------

Co-authored-by: Olivier Kannengieser <okanne@gmail.com>
Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2025-12-04 16:52:14 -08:00
Ryo Hirayama a220e9aaf6 fix(fullstack): Streaming::into_inner() returning empty stream (#4961)
* fix(fullstack): Streaming::into_inner() returning empty stream

The Streaming struct previously maintained separate input_stream and
output_stream fields, but into_inner() always returned input_stream.
This caused it to return an empty stream on both client and server sides
where data was placed in output_stream.

Consolidate to a single stream field that properly returns the actual
stream data when into_inner() is called.

Also add examples demonstrating bidirectional streaming:
- echo_stream: passes client stream through server unchanged
- transform_stream: transforms client stream on server using filter_map
- Use stream::unfold for cleaner client-side stream generation

Reviewed-by: Claude <noreply@anthropic.com>
Commit-message-by: Claude <noreply@anthropic.com>

* fmt
2025-12-04 15:19:02 -08:00
Jonathan Kelley 946a925f41 disable dma buf on wayland linux (#4957)
* disable dma buf on linux

* allow configuring
2025-12-04 15:18:13 -08:00
Jonathan Kelley 1e48093e22 codesign macos apps (#5055)
* wip

* rollback readme

* change language
2025-12-04 15:15:23 -08:00
Charles ChristoliniandEvan Almloff 3bcb76b21c Resolves #5045: Trim slashes to prevent base path resolution issues in web (#5049)
* issue-5045 Trim slashes to prevent base path resolution issues in web

* Revert "issue-5045 Trim slashes to prevent base path resolution issues in web"

This reverts commit 480cd48d8537a56f57538c21e7cc98b75e8dc8ad.

* This is a more comprehensive approach. No matter how "/" gets set into
DIOXUS_ASSET_ROOT (cli arg, dioxus toml, or env var) it will be
normalized when used.

* Move the trim fix to the locations we set the variable DIOXUS_ASSET_ROOT as
this environment variable is not meant for public consumption.

* pull out trimming into a method

---------

Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
2025-12-04 14:19:01 -06:00
Amos Wenger e5a98d094d fix(cli): queue file changes that arrive during builds instead of dropping them (#5007)
Previously, when a file change event arrived while a build was in progress
(i.e., client stage was not Success/Failed/Aborted), the event was logged
and silently discarded. This caused issues with tools like stylance,
tailwind watch, or sass --watch that generate output files in response
to source file changes.

The typical failure case:
1. User saves a .module.scss file
2. dx starts rebuilding
3. stylance CLI (watching the same file) regenerates stylance.css
4. dx receives the stylance.css change event but discards it
5. Build completes with stale CSS

Now, file changes that arrive during a build are queued in a
pending_file_changes vector and processed after the build completes.
2025-12-04 14:01:29 -06:00
Evan Almloff 5b8bc358db Override strip even if you explicitly enable it in the passed profile (#5052) 2025-12-03 12:51:34 -05:00
Evan Almloff 386153672e Add a warning for keys after the first node which do nothing (#4978)
* add a warning for keys after the first node which do nothing

* warnings on stable

* better warnings on nightly
2025-11-30 15:29:50 -05:00
Evan Almloff c58526a36b Disable strip setting in profile and manually strip with llvm the build (#4966)
* disable strip setting in profile and manually strip with llvm the build

* remove rustc_llvm

* disable debug if wasm opt will run

* fix clippy

* don't strip if we are splitting with wasm-split

* keep names when running wasm-split
2025-11-30 15:29:12 -05:00
Evan Almloff cce5bf687a fix unresponsive linux windows (#4979) 2025-11-30 15:27:58 -05:00
Jonathan Kelley 88bc12cbb5 fix: handle wbg_cast functions by rewriting patch module (#5026)
* fix: handle wbg_cast functions by rewriting patch module

* clippy

* dont use workspace deps
2025-11-25 13:18:27 -08:00
Jonathan Kelley 1d2dec1101 fix jsvalue 2025-11-24 17:04:44 -08:00
RichardWGNR 488ad0b9c9 Fixing regression due to route preservation #4934 (#4980) 2025-11-24 16:48:42 -08:00
Evan Almloff 702fbac2da Fix layouts in child routers (#4994)
* fix layouts in child routers

* test child route layouts
2025-11-24 16:44:12 -08:00
Vance 5dc22f8132 Fix doctor target strings typo (#5012) 2025-11-24 16:43:44 -08:00
Justin c8552ce7d3 Modified the NativeFileData path function for WebFileData to return the webkitRelativePath property if it exists, or just the file name if it does not exist. (#5015) 2025-11-24 16:42:55 -08:00
Evan Almloff 0dd2cb4b21 always resolve icons relative to the crate, not the cwd of the CLI (#5020) 2025-11-24 16:42:20 -08:00
Nico Burns f7e102a0b4 Add SyncStore and use_store_sync (#5014) 2025-11-22 12:43:52 -08:00
Evan Almloff 84efc00757 Only apply subsystem to final binary, not cdylibs (#5002) 2025-11-21 10:12:49 -08:00
Evan Almloff 75d9ece3af Fix stores deadlock (#4950)
* Fix stores deadlock

* fix clippy

* more clippy fixes

* move panic for reading invalid keys into userland instead of in the
hashmap iter method

* apply the same fixes to btreemap

* return a dropped error instead of panicing if the item has been removed
2025-11-19 12:58:02 -08:00
Tristan Phease 82d7802a81 Add windows config for correct exe file name (#4985) 2025-11-19 12:57:46 -08:00
Alvaro Parker 4fd7fe5511 Update axum-server (#4970) 2025-11-19 12:57:33 -08:00
Soheil Alizadeh 49234deacf Add aria-hidden="true" when hiding the dev toast (#4990) 2025-11-19 12:55:57 -08:00
Evan Almloff 6df20ef3f7 Fix default with optional props (#4995)
* fix default with optional props

* fix core macro tests
2025-11-19 12:33:49 -08:00
Evan Almloff 6e952f27a7 Fix drag and drop serialization (#4997)
* fix drag and drop serialization

* rebuild js
2025-11-19 12:08:18 -08:00
Juan Vásquez b084432a8a Fixed API Docs link (#4974) 2025-11-17 08:09:41 -06:00
Evan Almloff bd2d1de873 Fix marking nodes as dirty when inserting into an existing hashmap entry (#4959)
* Fix marking nodes as dirty when inserting into an existing hashmap entry

* remove logs
2025-11-12 23:13:56 -03:00
Himmelschmidt 317abedece fix: check HTTP status in FileStream::from_response (#4947) (#4948) 2025-11-11 16:56:36 -03:00
Rafael Bachmann 4bd49ab989 Add use_drop to prelude (#4939) 2025-11-11 12:47:38 -03:00
Jonathan Kelley 57e3543c64 fix a few small bugs (#4955)
* add `Patch` endpoint

* fix stack overflow on loader

* add timeout to playwright

* 45 min

* remove macos x86 from runners
2025-11-11 12:37:19 -03:00
Nathan Essex 2a515a3fc9 Use tokio 1.48 in Cargo.toml (#4941) 2025-11-10 12:45:13 +00:00
Jonathan Kelley 03ab7fa482 Release v0.7.1 2025-11-06 16:39:25 -03:00
Jonathan Kelley 50a7757259 fix: use cfg window close behavior (#4928) 2025-11-06 16:12:15 -03:00
Evan Almloff b252dc0620 Fix adding nodes to nested fragments (#4929)
* Fix adding nodes to nested fragments

* add note about test
2025-11-06 15:48:11 -03:00
Jonathan Kelley 1236296ea6 feat: use async fd when using tokio (#4927)
* feat: use async fd when using tokio

* whoops fix ios
2025-11-06 14:55:59 -03:00
Jonathan Kelley 75bb61ea67 fix: use dioxus query, not axum (#4926) 2025-11-06 14:47:27 -03:00