Commit Graph
386 Commits
Author SHA1 Message Date
Evan Almloff 01ebccc269 Assume the virtual dom is not rendering while not diffing components (#3406)
* Invert when the rendering flag is set

* Add a playwright test to make sure effects, and web-sys integration is working

* fix playwright test
2024-12-20 12:08:57 -08:00
Jonathan Kelley c2952a79f8 Release: dioxus 0.6.1 2024-12-17 18:30:08 -08:00
Jonathan Kelley eb76d48eae Fix: unwraps while ignoring log lines (#3370) 2024-12-16 17:13:52 -08:00
Miles MurgawandJonathan Kelley ccf500c77b Feat: CLI wasm-bindgen-cli Installer (#3335)
* feat: wasm-bindgen-cli installer

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2024-12-11 11:27:11 -08:00
Jonathan Kelley 3326e6b2fa bump wasm-bindgen and js-sys 2024-12-07 22:40:07 -08:00
Jonathan Kelley 30f760ca15 Feat: Release Dioxus v0.6 2024-12-06 19:54:08 -08:00
Jonathan Kelley 7d490dc3bd feat: integrate dioxus-logger inline (#3302)
* 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
2024-12-06 16:27:05 -08:00
Miles Murgaw bff5478fdf Feat: Manganis SCSS Support (#3294)
* feat: scss manganis support

* revision: make ScssLogger private
2024-12-05 10:41:44 -08:00
Jonathan Kelley 5bfdc039db Fix performance of wasm-bindgen-cli by bumping walrus 2024-12-04 13:28:08 -08:00
Jonathan Kelley 1a30a2f75f Publish 0.6.0-rc.0 2024-12-02 17:35:25 -08:00
Jonathan Kelley 1cbfcde6cd improve build times by extracting asset opt into its own crate (#3273)
* improve build types by extracing asset opt as a dylib
* dont use dylib, but let regular workspace caching do the heavy lifting
* add prebuild to cli for better lock contention
* hoist deps
* disable slow tests
* re-enable sequential, debug=0 for dev
* use vfs for windows
* dont cache on failure, fix windows vfs caceh
* free disk space re-order
* add clippy + fmt to windows channel
* yoink makefile
* proper rustfmt/clippy on toolchain
* set incremental to zero since cargo-cache disables it
2024-12-02 16:52:40 -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
Jonathan Kelley b114ed39f3 drop reference types due to deprecation, pin browserlist (fix ci) (#3272)
* drop reference types due to deprecation

* also downgrade browserlist
2024-12-02 13:34:14 -08:00
Evan Almloff 3d62fbf021 Fix base path on web and fullstack (#3247)
* 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
2024-11-27 10:40:55 +03:00
1e8693a0e8 wgpu windows (fixed) (#3257)
* Working triangle rendering with wgpu in examples. Resize needs work in order to not reinitialize everything but only the bits needed. Naming of variables and resources are wonky and not the greatest.

* The child window wasn't being resized along with the parent. This works. the abstractions in place should be passed the bounds rect down into the desktopservice to resize as opposed to in the app impl instead of how they are rn.

---------

Co-authored-by: Vineeth Yeevani <vineethyeevani@Vineeths-MacBook-Air.local>
Co-authored-by: Vineeth Yeevani <vineeth.yeevani@gmail.com>
2024-11-26 18:44:53 +01:00
Evan Almloff f9617c8d33 Restore manganis optimizations (#3195)
* 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
* add serializable options for each asset type
* implement the new manganis macro
* optimize assets in the CLI
* Fix assets with dioxus formattable
* reduce fuzzing test limits
* use the new syntax in examples
* fix avif support
* Fix manganis doc tests
* cache asset optimization
* Split out asset and bundled asset
* make hash pointer width independent
* Fix manganis macro docs
* add constvec::is_empty method to fix clippy lint
* remove nasm feature
* simplify test_rsplit_once test so typos passes
* revert example change from clippy fix
* 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
* simplify the linker macro a bit
* add more docs to AssetParser expansion
* add image format helpers
* Split by  both unix and windows path separators and take the smallest one
2024-11-26 18:12:24 +01:00
Andrew Voynov fca5a82e2b Fix (and rewrite) dx init/dx new (#2822)
* fix(cli)!: init subcommand now works correctly
* test(cli): added tests for init subcommands
* chore: moved `init` subcommand tests to its own file
* removed unnecessary arguments from tested command
* refactor(cli)!: new subcommand now behaves like cargo
* moved the hidden cursor workaround into a function
* feat(cli): added `branch` flag for init/new subcommands
* feat(cli): added `revision` and `tag` options
2024-11-16 01:20:59 -05:00
Jonathan Kelley a0e649ad96 Release v0.6.0-alpha.5 2024-11-15 23:46:11 -05:00
Jonathan Kelley fb7c568275 fix: java_home and cli swallowing logs (#3221)
* fix: http examples with android, add more important flags
- set java_home from assumed installations
- fix tracing redirection bug
2024-11-15 23:23:45 -05:00
Evan Almloff 21465390f8 Fix write on render warning with read only signal props (#3194) 2024-11-13 11:48:43 -05:00
Jonathan Kelley ac3e33af46 cli json output, dx bundle fix, dx serve --platform android, race condition, drop ssg platform (#3186)
* clean up logging to avoid random extra trace

* fix race condition with updates

* properly wire up verbose

* fix bundling (macos) and logging

* Add structured output

* clean up clap names

* extract out wire format

* switch structured key to json

* fix random println, fallback to `dioxus/platform`

* clean up logging for run/build

* clean up logging around project

* remove manual exits

* fix tokio runtime for mobile

* rework dog app

* rip out ssg

* Switch dioxus/axum to dioxus/server

* add android template inline

* pre restructure for bundle prep

* add the whole res directory

* Better theme for the app

* remove mobile demo now that most apps work natively

* self-referential android

* only use deep linking for assets

* fix imports for android

* clippy, fixup ios and android

* I'm not boxing compiler message you can't make me

* fix clippy on unix
2024-11-12 09:01:01 -05:00
Evan AlmloffandJonathan Kelley 45a1147ffd Fix subscriptions for read only signals passed as props (#3173)
* 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>
2024-11-10 21:35:33 -05:00
Jonathan Kelley 8b586352a2 Make wasm-bindgen parallel/disable log, speed up 2-10x (#3161)
* wip: pull out incr linker intercept and debug=true for wasm for faster builds

* make walrus parallel

* clean up impl
2024-11-04 18:32:23 -08:00
Jonathan Kelley e0575b3eb5 Release: dioxus v0.6.0-alpha.4 2024-11-01 16:39:02 -07:00
Jonathan Kelley a2e8e1d69e Remove latent dependencies in router 2024-11-01 16:11:24 -07:00
Jonathan Kelley 4a7f669245 fix: pin throbber widgets 2024-11-01 15:45:45 -07:00
Jonathan Kelley e19e8d48fe Fix: race condition in asset resolution 2024-11-01 15:34:48 -07:00
Evan Almloff 412f0b5c44 Fix the current route in ssr fullstack rendering (#3153) 2024-11-01 11:30:52 -07:00
Evan AlmloffandJonathan Kelley 281087469a Move the history provider into the context (#3048)
* 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>
2024-10-31 12:44:04 -07:00
Jonathan Kelley 7ec3453ca3 Fix bundling/path errors, sidecar support, iOS/Android simulator support, asset hotreload fixes, serverfn hotrelad, native tailwind support (#2779)
* 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
2024-10-25 17:23:45 -07:00
Jonathan Kelley 21d7916d56 bump manganis to 0.3 (#3059) 2024-10-14 13:50:50 -07:00
Jonathan Kelley e6fb444047 fix versions and workspace features 2024-10-14 12:37:20 -07:00
Jonathan Kelley d539ef67c0 bump to 0.6.0-alpha.3 2024-10-14 12:30:41 -07:00
Jonathan Kelley 5989b9cf50 bump manganis version (#3058) 2024-10-14 12:29:34 -07:00
Miles Murgaw 0995b5d2c5 Fix: Windows File Drag-N-Drop (#3046)
* fix: windows file drop
* update: tokio + fix eval
2024-10-14 11:00:11 -07: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 6a0c1c392b Improve documentation for the fullstack crate (#2952)
* 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

* Remove redundant server_only inside server function

* Fix isrg config path
2024-10-10 13:40:11 -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
Peter Holloway c6ab2904cd Remove dependency on atty (#3047)
It is no longer maintained and has been replaced by functionality in the
stdlib (std::io::IsTerminal).
2024-10-10 13:24:50 +00:00
Evan Almloff d64df87aba Escape HTML as we translate to rsx (#3038) 2024-10-08 07:02:02 -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 3fb1f739d1 Simplify cli-config, hotreload -> devtools (drop to 0 deps, fast compile times) (#2975)
* simplify cli-config crate
* clean up configs
* add devtools crate, update cargo imports
* fix serve addr, fix websocket proxy issue
* add comment about opt profiles
* rename hot-reload to devtools
2024-09-17 17:18:23 -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
Jonathan Kelley f0d814fede Extract some simple cleanups from 2779 (#2966)
* 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
2024-09-16 16:04:20 -07:00
Jonathan KelleyandEvan Almloff 983fcfc616 Chore: hoist example projects for discoverability (#2959)
* hoist example projects, remove oidc

* move over example projects from the separate repo

* Update ecommerce site to the latest version of dioxus

* update wifi scanner to 0.5

* drop the chatbot example; might be restored in a separate PR

---------

Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
2024-09-16 09:11:33 -05:00
Miles MurgawandJonathan Kelley 8d68886310 CLI Fixes & Tweaks (#2846)
Fixes scrolling on vscode using simple fix
 Adds scroll modifier, scroll at 5 lines per scroll while holding shift key.
 Adds error handling for manganis failure that still lets the build run.
 Revises TUI rendering code.
 Move TUI "info bars" to the bottom of the terminal.
 Revised logging system with tracing
 Working [c] clear keybind. This has been removed.
 Removal of [h] hide keybind text (it does nothing)
 Some opinionated cleanups and renames to make tui logic easier to understand.
 Rolling log file & maybe add some more "internal" logging. Closes CLI Rolling Log File #2764
 Removes log tabs. Closes CLI: Color-code logs and get rid of tabs #2857
 Combines info bars.
 Working and good text selection.
 Print launch URL in console.
 Handle log lines properly and add formatting.
 Move MessageSource to a more reasonable location.
 Add some background styling to powerline (info bar) - Tried this and it doesn't look the greatest.
 Log Filtering
 Final Cleaning & Changes - I could do this forever
 Test Linux

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2024-09-13 01:34:19 -07:00
Evan Almloff eecefb796e bump wry (#2945) 2024-09-09 14:57:59 -05:00
dependabot[bot] 50a707d5b6 Bump gix-path from 0.10.10 to 0.10.11 (#2938)
Bumps [gix-path](https://github.com/Byron/gitoxide) from 0.10.10 to 0.10.11.
- [Release notes](https://github.com/Byron/gitoxide/releases)
- [Changelog](https://github.com/Byron/gitoxide/blob/main/CHANGELOG.md)
- [Commits](https://github.com/Byron/gitoxide/compare/gix-path-v0.10.10...gix-path-v0.10.11)

---
updated-dependencies:
- dependency-name: gix-path
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-07 08:46:23 -05:00