Commit Graph
363 Commits
Author SHA1 Message Date
Jonathan Kelley 90e988cbdb remove some latent todos!() 2025-10-30 19:29:53 -07:00
Jonathan Kelley 281f68faf5 use CapturedError as dioxus::Ok() so resources still function as expected (#4851) 2025-10-27 15:06:21 -07:00
Amos Wenger 5018074a12 Elements: add autocorrect attribute to <input> and <textarea> (#4797)
See https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/autocorrect
2025-10-19 15:03:39 -04:00
Jonathan Kelley 0aa7351473 datatransfer object, drag_and_drop example, fix drag-and-drop (#4789)
* wip: implement datatransfer

* Editable kanban contents

* desktop sorta works without crashing

* lint
2025-10-15 01:06:13 -07:00
Jonathan Kelley 7102bc3b6a more fullstack cleanups: loaders serialize, ServeConfig only (#4785)
* some opinionated cleanups in dioxus-server

* add serialize to loader

* add `result` to Resource

* clippy

* fix

* writable memos, resources, `onmount`, `.pending`, and `.value()` on actions

* fix compile issues

* fix typo
2025-10-14 17:34:52 -07:00
Jonathan Kelley 92792aded9 More fullstack fixes (#4737)
* allow `--server` only builds!

* rollback example

* capture `/:route` routes

* fix: properly implement file uploads in forms

* implement desktop form uploads

* Performant serialization of form bytes

* finish up file stuff

* cleanups

* add request headers to streaming context

* remove some unwraps
2025-10-07 23:07:43 -07:00
Timur GainullinandJonathan Kelley f48aec7eff fix: use floats for pointer events (#4708)
* fix: use f64 for PointerInteraction

* make clippy happy on beta

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2025-10-03 19:39:00 -07:00
Jonathan Kelley f2b1c6d97f codify "platform" into resolution logic, server-fn/fullstack overhaul (#4596)
overhaul dioxus fullstack using a new implementation of server_fn

This PR is a complete rewrite of dioxus fullstack designed to improve compatibility with axum and to fix a number of compilation errors based on feature flag unification plumbing through macros.
2025-10-03 18:26:19 -07:00
Damien CORLERandJonathan Kelley 8d617080b1 Add cancel event (#4476)
* feat: add cancel event

* feat: provide cancel event

* feat: insert cancel event in web

* fix: typo

* feat: propagate implementation of cancel event

* fix merge conflicts / tests

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2025-08-20 11:09:24 -07:00
Jonathan Kelley 4f1d039bad clean up prelude (#4416)
* clear away prelude on dioxus

* clippy

* wip - drop prelude from dioxus-html

* docs clippy

* wip

* more fixe

* delete all preludes

* doc...

* better export

* merge some imports

* fewer global imports

* global incremental renderer

* fix cargo doc
2025-07-16 16:04:13 -07:00
navyansh007andJonathan Kelley 097bc1d1c8 Remove invalid global data attribute (#4270)
* Remove invalid global data attribute

Removes the non-existent global 'data' attribute from HTML global
attributes that was referencing broken MDN documentation. HTML
specification only supports data-* custom attributes and the
<data> element, not a global 'data' attribute.

Fixes #4241

* fix other attributes using datas

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2025-06-20 11:24:41 -07:00
Evan AlmloffandJonathan Kelley af6fc3a542 Switch to owned listener type (#4289)
* Switch to owned listener type

* remove html event workaround

* fix event conversion

* keep track of the origin scope

* fix clippy

* fix docs

* Use "ListenerCallback" instead of "ListenerCb"

* Add a small example

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2025-06-18 16:06:52 -07:00
Evan Almloff 77d10a40e3 Fix the toggle event (#4206) 2025-05-27 10:27:05 +02:00
Evan Almloff ee3b45af49 Restore docs CI checks and fix all doc lints (#4204) 2025-05-26 19:50:51 +01:00
Gerald E ButlerandJonathan Kelley f9d89b0ac1 adhoc: Fix Clippy lints in const-serialize etc. (#3880)
* adhox: Fix Clippy lints in const-serialize etc.

Fix the clippy lints that were preventing building:

   * const-serialize/src/lib.rs
   * core/src/nodes.rs
   * fullstack/src/serve_config.rs

* adhoc: Change the way to satisfy the lint for 1.85

The lint for pointer comparison is only in 1.85. The solution
uses a mechanism that was only stabilized with 1.85. Instead
of using that solution, will just allow the lint on this
function for now. Once the MSRV of Dioxus is updated to 1.85
or above, this can be changed to use the recommeneded solution.

* adhoc: Fix the 'cargo make test' tests

There were a number of tests failing to compile and/or run.
Fixed those that could be meaningfully fixed. Those that were
incomplete examples that could not be fixed are marked as
'ignore'.

* adhoc: GitIgnore test results in playwright tests

* fix wry rollback

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2025-05-07 13:58:37 -07:00
Otger RoglaandJonathan Kelley 28d38307a2 Support scrollIntoView alignment options (#3952)
Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2025-05-07 13:09:17 -07:00
Youn MéloisandJonathan Kelley 85b373deff feat(html): add scroll method to MountedData (#3722)
* feat(html): add `scroll` method to MountedData

* feat(desktop): implement `scroll` method for DesktopElement

* feat(liveview): implement `scroll` method for LiveviewElement

* feat(web): implement `scroll` method for web_sys::Element

* docs(examples): add new example for `scroll` method

* fix(web): remove unncecessary f64 cast (clippy)

* fix(interpreter): return missing boolean from js

* docs(example): unwrap result instead of discarding its error

* docs(examples): create scroll restoring example on routing

* fix clippy

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2025-05-07 12:45:47 -07:00
Mahmoud cefb9ec640 fix: add missing img attrs (#4073) 2025-05-07 11:58:16 -07:00
Henry c9ca9f32ad Add Missing Fields From Scroll Event (#4022)
* Add onscroll field data

* Add bun 1.2.10 generated file changes

* Improve error messaging when bun is not installed
2025-05-07 11:57:32 -07:00
Clouds 6733e43cc2 fix FormData::valid (#4027) 2025-04-22 18:01:23 -07:00
Casey Kneale 9e09bcf3f7 trivial fix for documentation example for onclick handler of buttons (#3882) 2025-03-16 16:25:17 -07:00
Youn Mélois ab91965cc0 fix onload and onerror parsing error (#3707)
regression error induced by 299b123 where serde default got removed from `load_error` attribute of `ImageData`.

```diff
pub struct ImageData {
-     #[cfg_attr(feature = "serialize", derive(serde::Serialize, serde::Deserialize))]
-     pub load_error: bool,
+     inner: Box<dyn HasImageData>,
}

// ...

+ struct SerializedImageData {
+     load_error: bool,
+ }
```
2025-02-07 16:08:00 -08:00
Jonathan Kelley 343c48f5ad fix: viewBox translation by not accidentally stringifying literals (#3527)
* fix: don't double stringify lits

* also split off namespaces in translation
2025-01-08 16:12:48 -08:00
Evan Almloff 19ca7075d6 Fix the event handler memory leak (#3508)
* Fix the event handler memory leak

* Add a regression test for memory leaks

* add a component to the memory leak test
2025-01-07 11:44:54 -08:00
Evan Almloff aab1258f0e remove the file engine feature in the html crate (#3392) 2024-12-20 12:00:03 -08:00
79a2f023e7 Add the onvisible event handler to Element (#2911)
* Add the `onvisible` event using the IntersectionObserver

* Add a visible example

This example is based on https://codepen.io/ryanfinni/pen/VwZeGxN

* Remove web-sys CustomEvent feature for html package

* update js bindings and hash

* Use dioxus doc instead of lorem ipsum

* Fix clippy warning

* Add get_target method to the event data

* Make `get_time` return an Instant instead of a f64

* fix merge conflicts, compilinga

* remove target

* small nits

* serialzie as time_ms

* fix timing, works on desktop

* remove latent nits, fix hash

* box size clippy

* fix browserlist cargo.lock

---------

Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2024-12-02 13:51:27 -08:00
Evan AlmloffandJonathan Kelley 519ec9d294 Move the document trait into a separate crate (#3035)
* 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>
2024-10-14 10:33:37 -07:00
Evan AlmloffandJonathan Kelley baf5a95cae Fix cloned rsx double drop (#2839)
* 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>
2024-10-14 09:23:09 -07:00
Evan Almloff cda8bb24f1 Remove native and web features from dioxus-html (#3006)
* remove native and web features from dioxus-html

* Fix downcasting web events

* Fix desktop with tokio disabled
2024-10-10 13:35:59 -07:00
Evan Almloff 1053943073 Fix special characters in head elements (#3031) 2024-10-09 13:48:58 -05:00
Evan Almloff 95976d9a17 Extend head components with global attributes (#2888)
* Fix hot reloading components with keys

* include component formatted segment keys, but not dynamic component value

* extend each head component with the corresponding element

* Allow spreading custom attributes into components

* Fix component_literal_dyn_idx index

* add a new test for hot reloading components with keys

* FIx script without body warning and rendering styles with a href set

* fix clippy
2024-10-01 10:24:22 -05:00
Jonathan Kelley fd9229a768 Change file-engine to be file_engine for consistency 2024-09-17 17:49:06 -07:00
Jonathan Kelley 463e67cd12 Improve compile times by splitting out rsx-hotreload from rsx (#2971)
* fix imports, migrate over rsx-hotreload
2024-09-16 17:35:05 -07:00
Jonathan Kelley 143ad749ea Split out isrg from ssr and reorient build graph to make interpreter build 2x faster (#2969)
* split out isrg and core-types to speed up interpreter build
2024-09-16 16:49:06 -07:00
Chung b20db13e84 add disabled, form and name attributes to fieldset (#2947) 2024-09-10 15:21:58 -05:00
ASR-ASU ffb5c98449 Add aspect-ratio property (#2916) 2024-09-03 08:38:01 -05:00
Evan Almloff e5696cd72f Fix script component src attribute (#2887) 2024-08-28 18:52:36 -05:00
ASR-ASUandEvan Almloff 2f49a89638 Add the onresize event handler to Element (#2479)
* 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>
2024-08-15 01:23:49 +00:00
Evan Almloff 959ab67624 Fix templates merging in debug mode in macros (#2828)
* Fix templates merging in debug mode in macros

* Fix clippy

* Fix web-sys scroll to deprecated warning
2024-08-13 20:18:54 +00:00
Evan Almloff cab573eefd Synchronous prevent default (#2792)
* 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
2024-08-13 11:57:54 -07:00
Miles Murgaw 0acfe37398 revision: make EvalError impl Error (#2768) 2024-08-02 10:46:43 -07:00
Matt Hunzinger 4bf71111c8 Refactor WebEventExt (#2707)
* Create WebEventExt::try_as_web_event and refactor
* Inline and adjust error message
* Inline downcast methods
2024-07-31 13:01:25 -07:00
Evan Almloff 34bdcd15cf Switch to a pool of dynamic values for hot reloading (#2705)
* 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
2024-07-30 17:16:27 +00:00
Adam Kundrát 4e338accad implement HasMouseData for WheelEvent (#2728) 2024-07-29 12:28:06 -07:00
Jonathan Kelley 1a66987245 Fix: enable dangerous_inner_html for svgs (#2717) 2024-07-26 23:29:24 +00:00
Evan AlmloffandJonathan Kelley c6a2e5b6c8 Use head elements and new manganis syntax in examples (#2688)
* use head elements and new manganis syntax in examples
* only enable desktop workspace example scraping during a dioxus release

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2024-07-25 21:58:00 +00:00
Evan Almloff bd484842bd Fix playwright tests (#2695) 2024-07-24 12:48:30 -07:00
Tristan F.andJonathan Kelley 9167cd9dec fix most typos, add crate-ci/typos to CI (#2653)
* fix most typos, add crate-ci/typos to CI

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2024-07-23 17:49:33 -07:00
Wesley McCannandEvan Almloff 5bdb147afd Handle deserialize errors without panic (#2664)
* Handle deserialize errors rather than panic

* don't clone event data for deserialization in debug or release mode

---------

Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
2024-07-22 12:20:15 -05:00
Evan Almloff 9fb92f30a6 Fix trailing comma in head doctest 2024-07-18 11:25:23 -07:00