Evan Almloff
0f6eb4fca2
clean up node api
2023-02-08 14:59:47 -06:00
Evan Almloff
997986ecf6
clean up passes code
2023-02-07 21:14:58 -06:00
Evan Almloff
9702ee3e19
remove some unused items and inline common methods
2023-02-07 14:58:38 -06:00
Evan Almloff
4ee8b8b676
create dioxus handler for TUI
2023-02-07 14:51:30 -06:00
Evan Almloff
71e34452da
create driven example for tui renderer
2023-02-07 14:14:04 -06:00
Evan Almloff
c805bc25af
make tui agnostic over framework
2023-02-06 21:28:48 -06:00
Evan Almloff
05b968e8e4
update persistant iterator to work with new system
2023-02-06 14:52:15 -06:00
Evan Almloff
bd07d7754c
create node watcher API
2023-02-06 13:40:22 -06:00
Evan Almloff
e4c7218fe8
make dioxus an optional dependancy
2023-02-04 20:45:29 -06:00
Evan Almloff
6fe00c4f78
make dioxus dependancy optional
2023-02-04 17:56:30 -06:00
Evan Almloff
8dde4e492f
finish migrating tests
2023-02-02 14:48:02 -06:00
Evan Almloff
6cf0274a5b
expose listener methods
2023-02-02 14:26:47 -06:00
Evan Almloff
2f6b8393f8
make parallelism optional
2023-02-02 08:57:23 -06:00
Evan Almloff
687cdf2cac
use thread pool
2023-02-02 07:08:29 -06:00
Evan Almloff
d67b21c0e9
improve performance
2023-02-01 20:45:11 -06:00
Evan Almloff
71a0bdf71d
TUI rendering mostly working
2023-02-01 14:36:56 -06:00
Evan Almloff
39a3db68bd
fix deadlock
2023-02-01 14:15:17 -06:00
Evan Almloff
5eb4ca677d
don't panic when trying to get information about a node that does not exist
2023-02-01 13:59:08 -06:00
Evan Almloff
0058c7ed32
create a way to create states
2023-01-29 20:28:29 -06:00
Evan Almloff
2c205f8ca5
fix some type bounds
2023-01-29 09:17:06 -06:00
Evan Almloff
d53bfb6c56
Merge branch 'upstream' into simplify-native-core
2023-01-28 18:49:19 -06:00
Evan Almloff
9efff74c0c
update TUI renderer to new approach
2023-01-28 14:51:05 -06:00
Evan Almloff
b6c7d44a27
fix clippy
2023-01-27 20:35:46 -06:00
Evan Almloff
ce59ccfd44
enable multithreading
2023-01-23 21:03:28 -06:00
Evan Almloff
3279068569
clean up view code
2023-01-22 21:06:59 -06:00
Evan Almloff
4738352955
remove native-core-macro
2023-01-22 16:41:15 -06:00
Evan Almloff
fb0c6c1b62
Merge branch 'upstream' into simplify-native-core
2023-01-21 18:33:52 -06:00
Evan Almloff
0a5499508a
simplify api and pass clippy
2023-01-21 18:30:42 -06:00
Evan Almloff
adff97036d
clean up some unused code + clippy
2023-01-21 07:44:38 -06:00
Jon Kelley
e686e42cfe
Merge pull request #790 from Demonthos/make-cursor-agnostic-over-storage
...
Make text editing utilities in native core agnostic over the text storage
2023-01-21 00:40:16 -08:00
Jon Kelley
877268737d
Merge pull request #791 from Demonthos/default-to-medium-border-width-when-style-is-set
...
Apply medium width when the border style is not none to match browsers
2023-01-21 00:37:26 -08:00
Evan Almloff
e81f05fe9d
make native core compile
2023-01-20 20:24:44 -06:00
Evan Almloff
20751327f3
apply medium width when the border style is not none to comply with browser behavior
2023-01-20 17:36:41 -06:00
Evan Almloff
d019ada3da
make delete selection public
2023-01-20 17:16:47 -06:00
Evan Almloff
8030ae5581
make text editing utilites agnostic over the text storage
2023-01-20 17:09:19 -06:00
Evan Almloff
dc768fee2f
fix replacing a dynamic text node in native core
2023-01-20 13:31:21 -06:00
Evan Almloff
ebb6300fc7
clean up the API
2023-01-20 13:23:26 -06:00
Evan Almloff
1587b41829
WIP make ECS work with reactive system
2023-01-19 14:40:56 -06:00
Evan Almloff
e36874d86e
use node id
2023-01-18 12:14:59 -06:00
Evan Almloff
91fc594708
ECS based tree data struture
2023-01-16 14:33:11 -06:00
Evan Almloff
5aa3587ea9
Merge branch 'upstream' into simplify-native-core
2023-01-16 13:05:34 -06:00
Evan Almloff
85fdc77880
fix tui
2023-01-08 15:26:30 -06:00
Evan Almloff
ecf4ee275a
Merge branch 'upstream' into simplify-native-core
2023-01-08 14:03:44 -06:00
Evan Almloff
72b2a3ef37
fix tests
2023-01-08 12:02:44 -06:00
Evan Almloff
a934e60fdf
unify dirty nodes
2023-01-08 11:37:54 -06:00
Evan Almloff
3a6d06e205
remove nodes from listener list when the node is removed
2023-01-05 08:21:36 -06:00
Evan Almloff
93a95b82a4
bump lightningcss version
2023-01-04 11:18:32 -06:00
Evan Almloff
52a74214da
don't remove realdom nodes when the element id changes
2023-01-04 09:14:58 -06:00
Jon Kelley
3733ce7332
Merge pull request #711 from Demonthos/realdom-generic-over-custom-types
...
make the real dom generic over custom types
2023-01-03 15:30:13 -05:00
Evan Almloff
bf20b66b38
make the real dom generic over custom types
2023-01-03 12:35:48 -06:00
Evan Almloff
ea43b864db
remove attributes with the None value
2023-01-03 08:51:48 -06:00
Jon Kelley
cb2d672105
Merge pull request #690 from Demonthos/lightning-css-taffy-attributes
...
use lightning css to parse Taffy layout attributes
2023-01-03 00:53:19 -05:00
Evan Almloff
c0f9355648
fix any value dropping
2023-01-02 21:26:12 -06:00
Evan Almloff
51dba50c04
use BumpBox<Any> and FromAnyValue instead of sync bounds
2023-01-02 14:40:25 -06:00
Evan Almloff
64db1def9f
make clippy happy
2023-01-02 12:37:16 -06:00
Evan Almloff
613a7ac55b
add comment about multithreading
2023-01-02 11:52:42 -06:00
Evan Almloff
6d60c483f8
make it pass miri
2023-01-02 11:01:17 -06:00
Evan Almloff
56154d90be
clean up unused code
2023-01-01 19:00:52 -06:00
Evan Almloff
6f6f6c258f
add allow
2023-01-01 18:56:39 -06:00
Evan Almloff
359b4e514b
remove some more unnessisary usages of unsafe
2023-01-01 18:44:54 -06:00
Evan Almloff
4db3d8ff40
fix state
2023-01-01 17:21:34 -06:00
Evan Almloff
2d67dabfe5
require Send for S for resolve_passes multithreaded
2023-01-01 15:48:26 -06:00
Evan Almloff
3c507479cb
update the update_state method
2023-01-01 12:10:19 -06:00
Evan Almloff
bc2925240e
implement macro and update tui
2023-01-01 08:52:59 -06:00
Evan Almloff
9e971fbe11
work on integrating new pass system
2022-12-31 22:34:16 -06:00
Evan Almloff
e76cd63ee3
create new state system
2022-12-30 20:29:28 -06:00
Evan Almloff
c1fc00ed53
remove unsafe sync impl
2022-12-30 15:23:04 -06:00
Evan Almloff
845f2fb7a9
use get2_mut instead of unsafe
2022-12-30 14:19:56 -06:00
Evan Almloff
2da1d8ab27
clean up implementation
2022-12-29 21:34:17 -06:00
Evan Almloff
f6fb6e1d1b
add aspect ratio parsing
2022-12-29 14:14:29 -06:00
Evan Almloff
579d6ce1f9
use lightning css to parse layout attributes for taffy
2022-12-29 13:31:33 -06:00
=
1555500fbd
drop any values correctly
2022-12-26 10:53:25 -06:00
Evan Almloff
738f1b3ce0
Merge branch 'upstream' into fix-non-str-attributes
2022-12-24 12:52:44 -06:00
Evan Almloff
c0d138fc1b
fix persistant iterator test
2022-12-24 11:37:17 -06:00
Evan Almloff
7eac90065a
fix mutations related to keyed lists
2022-12-24 10:58:56 -06:00
Evan Almloff
afd024bcb6
Merge branch 'upstream' into fix-non-str-attributes
2022-12-23 15:53:39 -06:00
Jonathan Kelley
8d7d07db56
chore: make clippy happy in workspace crate
2022-12-19 11:56:44 -08:00
Jonathan Kelley
cc7736302a
Merge branch 'master' into fix-non-str-attributes
2022-12-17 01:51:13 -08:00
Jonathan Kelley
7beb7f0ee4
fix: use and_then
2022-12-13 15:30:40 -08:00
=
73ec4abfdf
Merge remote-tracking branch 'upstream/master' into fix-non-str-attributes
2022-12-11 21:26:38 -06:00
=
74e9d5977a
add sync behind a feature flag
2022-12-11 17:31:15 -06:00
Evan Almloff
0813d531f1
add some utilities around AnyValueRc
2022-12-10 12:50:15 -06:00
Evan Almloff
8a1c96a68c
fix custom attribute value support
2022-12-09 16:18:37 -06:00
Evan Almloff
029255c7ac
widgets
2022-12-07 20:28:01 -06:00
Jonathan Kelley
6184ea500b
chore: also fix native core
2022-12-07 13:20:31 -08:00
Jonathan Kelley
1b14b309e9
chore: clean up desktop
2022-12-06 16:37:28 -08:00
Demonthos
67a6fa9eb8
Implement new mutations with native core ( #630 )
...
* work on seperating tree struture from realdom
* intial update to new mutations
* handle height
* update to taffy 0.2
* add as_varient functions to OwnedAttributeValue
* make get node parent mut optionally return a parent
* work on upward pass
* add more code for parrellel passes
* make resolve passes public
* more work on parallel passes
* fix deadlock and add more tests
* move height into the tree instead of the realdom
* make passes exicute in parallel instead of executing invidual passes in parellel
* fix some warnings
* add up dependant test
* clean up examples
* work on intigrating state with passes
* update to new mutations
* work on implementing macro
* make the macro compile
* more progress on macro
* mark cloned nodes as dirty
* update persistant_iterator utility
* fix mask generation
* update tui with new mutations
* more progress updating tui
* some basic tui examples working
* don't push template nodes onto the stack
* update hover example
* update benchmark
* update more examples
* fix root node layout
* ignore out of bounds renders
* update color picker example
* update all events example
* update remaining examples
* update tests
* tests passing
* move persistant iterator test
* update examples
* fix gaps in layout
* fix formatting
* fix memory leak
2022-12-06 15:38:04 -08:00
Jonathan Kelley
85657d3906
feat: rip out mutations for templates
2022-12-01 00:46:15 -05:00
Jonathan Kelley
3b166c9edd
wip: clean up some things
2022-11-30 23:54:30 -05:00
David Craven
99dafdb8ee
Build failure on master. ( #627 )
...
* Build failure on master.
* Fix ci failure.
* Fix test.
* Ignore broken tests.
* Fix doctests.
2022-11-22 09:56:15 -08:00
Demonthos
3b7b503333
Refactor Mutations and simplify Templates ( #578 )
...
* update mutations to be path based rather than renderer integrated
2022-10-18 14:42:45 -07:00
saicu
e8c48d46cf
replace fxhash crate with rustc-hash ( #588 )
2022-10-12 18:27:26 -07:00
Marc Espín
e98f46bbcc
Remove a Node listeners when it is removed ( #576 )
2022-10-02 14:12:33 -07:00
Demonthos
daeffd4149
pass clippy ( #575 )
2022-10-02 14:12:24 -07:00
Demonthos
047ed1e553
Subtree memorization / reactive templates ( #488 )
...
This commit adds subtree memoization to Dioxus.
Subtree memoization is basically a compile-time step that drastically
reduces the amount of work the diffing engine needs to do at runtime by
extracting non-changing nodes out into a static "template." Templates
are then understood by the various renderers in the ecosystem as a
faster way of rendering the same items.
For example, in the web, templates are simply a set of DOM Nodes created
once and then cloned later. This is the same pattern frameworks like Lithtml
and SolidJS use to achieve near-perfect performance.
Subtree memoization adds an additional level of complexity to Dioxus. The RSX
macro needs to be much smarter to identify changing/nonchanging nodes and
generate a mapping between the Template and its runtime counterparts.
This commit represents a working starter point for this work, adding support
for templates for the web, desktop, liveview, ssr, and native-core renderers.
In the future we will try to shrink code generation, generally improve
performance, and simplify our implementation.
2022-09-30 12:03:06 -07:00
Demonthos
2d08532bad
Improve documentation for the native core and native core macro crates ( #528 )
...
* improve documentation for the native core and native core macro crates
* fix spelling of depenency
2022-09-06 17:25:10 -07:00
Jonathan Kelley
62b9a0593f
chore: use taffy dimension directly
2022-07-15 22:17:00 -04:00
Jon Kelley
d9546d9504
Renderers are now packages, not features. ( #387 )
...
* feat: use synchronous router design
* feat: function to get router out of dom
* chore: restructure workspace to use renderers as packages, not features
2022-07-09 15:15:20 -04:00
Demonthos
4a5ae758ee
Allow Multiple dependencies for states in the RealDom (native core) ( #412 )
...
* WIP multable deps
* WIP: refactor and genralize state macro
* add traversable trait
* update tui to use elementid to index dom
2022-07-07 00:50:22 -04:00
Jonathan Kelley
8be66bd34d
fix: apply some clippy lints and rename the liveview methods to not intersect
2022-06-20 02:24:39 -04:00