Commit graph

288 commits

Author SHA1 Message Date
Muhannad Alrusayni
690efade88 fix: Support Input::<..> style to for generic components
before that, we accepted this style `Input<..>` but to be consistent
with Rust syntax this is dropped now.

> For reference, the two ways of specifying explicit type parameters in
> Rust are:
> // for functions
> let _ = foo::<MyType>();
>
> // for structs
> let _ = Foo::<MyType> { ... };
>
> by @jkelleyrtp
2022-06-04 13:40:50 +03:00
Muhannad Alrusayni
5b079075d7 refactor: clean up commented code. 2022-06-04 13:40:50 +03:00
Muhannad Alrusayni
0b5b7f09db feat: Support generic component with inline_props with some limitation 2022-06-04 13:40:50 +03:00
Muhannad Alrusayni
a55b56b403 feat: Support generic components in rsx!() macro 2022-06-04 13:40:50 +03:00
Evan Almloff
0079f7d18b WIP: expose pipe for desktop 2022-06-02 13:33:08 -05:00
Evan Almloff
3b2ac82e8d fix spelling of interpreter 2022-05-31 12:18:22 -05:00
Evan Almloff
b921dc4eec call error handler when error occurs 2022-05-31 12:06:53 -05:00
Evan Almloff
51b87dafcc derive serde for Errors and Location, and add error handler 2022-05-31 12:03:04 -05:00
Evan Almloff
94448ea4aa handle formatting options 2022-05-30 18:32:57 -05:00
Evan Almloff
2183ecf3fb better error handling 2022-05-29 08:04:08 -05:00
Evan Almloff
06390b9be5 allow rsx to be used outside of a proc_macro context 2022-05-28 12:10:32 -05:00
Evan Almloff
f9713b2fe9 Merge remote-tracking branch 'origin/master' into jk/rsx-refactor 2022-05-27 17:56:50 -05:00
Evan Almloff
94169083f5 use __varibles 2022-05-27 13:09:29 -05:00
Evan Almloff
3c7db0631b handle iterators and nested rsx calls 2022-05-27 12:21:12 -05:00
Evan Almloff
a0c7e4d78a add component support 2022-05-27 09:47:44 -05:00
Evan Almloff
5b0a60c294 handle expressions in attributes 2022-05-26 19:16:51 -05:00
Evan Almloff
62cca95905 update interperter to use CapuredContext 2022-05-26 17:02:36 -05:00
Evan Almloff
871f51f91b It compiles 2022-05-25 14:08:59 -05:00
Evan Almloff
ca10d89670 add RsxTextIndex 2022-05-25 11:20:07 -05:00
Evan Almloff
c7c84da8ab WIP hot reload 2022-05-25 08:58:59 -05:00
Evan Almloff
db1866090a fix broken doc links 2022-05-22 20:44:32 -05:00
Jonathan Kelley
3febd42588 Release dioxus-core v0.2.1, dioxus-core-macro v0.2.1, dioxus-html v0.2.1, dioxus-interpreter-js v0.2.1, dioxus-desktop v0.2.3, dioxus-hooks v0.2.1, dioxus-liveview v0.1.0, dioxus-native-core v0.2.0, dioxus-native-core-macro v0.2.0, dioxus-router v0.2.3, dioxus-ssr v0.2.1, dioxus-tui v0.2.2, dioxus-web v0.2.1, fermi v0.2.1, dioxus v0.2.4 2022-05-02 23:57:20 -04:00
Jonathan Kelley
2a1970b3a9 feat: add prettyplease vendored and get basic test working 2022-04-24 02:55:20 -04:00
Jonathan Kelley
794f43ffee concept: move rsx out to its own crate 2022-04-24 02:35:52 -04:00
Jonathan Kelley
24bca45612 fix: inline props should look for attributes 2022-04-09 19:41:29 -04:00
Jon Kelley
4edaeb0aae
Merge pull request #324 from overlisted/inlineprops-generics
`#[inline_props]` generics
2022-03-20 20:28:06 -04:00
Jon Kelley
d3ac3db296
Merge pull request #315 from Synphonyte/master
Option<...> props are optional by default.
2022-03-20 19:59:35 -04:00
Ilya Maximov
46b7f3b623
feat: basic generic support 2022-03-20 20:59:30 +01:00
Ilya Maximov
334936b276
fix: typos 2022-03-19 21:04:48 +01:00
Ilya Maximov
86159d0b55
fix: wrong type of error 2022-03-19 20:48:54 +01:00
Ilya Maximov
1f065acb4c
refactor: simplify and organize the errors 2022-03-19 20:37:25 +01:00
Ilya Maximov
0be88d20ee
docs: remove capitals and periods from errors 2022-03-19 19:29:57 +01:00
Maccesch
5818da5f70 auto detect optional props 2022-03-15 16:52:45 +00:00
Jonathan Kelley
e7505188d6 release: make a new 0.2.0 release of Dioxus 2022-03-09 14:24:05 -05:00
Jonathan Kelley
56517ef5de fix: merge conflicts 2022-02-26 17:35:23 -05:00
Jonathan Kelley
03feaa446a fix: make clippy happy 2022-02-23 11:37:28 -05:00
Jonathan Kelley
45231651dd fix: quick patch 2022-02-22 16:34:06 -05:00
Jonathan Kelley
185902f935 fix: macro compiles 2022-02-18 23:14:17 -05:00
Jonathan Kelley
b93487282d feat: move files around 2022-02-18 20:54:30 -05:00
Jonathan Kelley
b2472e3cfe Merge branch 'master' into jk/partialexpansion 2022-02-18 15:31:49 -05:00
Jonathan Kelley
3873cd1a60 fix: remove unused depds 2022-02-16 14:40:45 -05:00
Jonathan Kelley
ca7ce46cdb Merge branch 'master' into jk/partialexpansion 2022-02-13 12:36:02 -05:00
Jonathan Kelley
4a3680ee1b chore: remove all warnings 2022-02-10 21:00:15 -05:00
Jonathan Kelley
0820e18d3d feat: make component name accessible 2022-01-31 02:49:37 -05:00
Jonathan Kelley
1b2a0053ef Release dioxus-core-macro v0.1.7 2022-01-29 10:35:54 -05:00
Jonathan Kelley
56f3002aed feat: add changelogs 2022-01-29 10:17:14 -05:00
Dave Rolsky
9e4ec43b1e Fix various typos and grammar nits
I also removed all trailing whitespace from lines since I have Emacs
configured to highlight this.
2022-01-21 21:43:43 -06:00
Jonathan Kelley
174d287062 wip: extract to rsx module 2022-01-17 23:02:36 -05:00
Jonathan Kelley
abfac0d59b wip: move macro lib out of proc macro crate 2022-01-17 16:37:44 -05:00
Jonathan Kelley
47bc4e4a44 feat: add "optional" flag for props 2022-01-16 15:27:41 -05:00
Jonathan Kelley
d2372717bd feat: flatten props attrs 2022-01-10 02:57:03 -05:00
Jonathan Kelley
f4132d1874
Merge pull request #108 from DioxusLabs/jk/fstring-component-fields
Fix: string formatting detection in component fields
2022-01-10 01:20:58 -05:00
Jonathan Kelley
90abd9c9a0 fix: detection of f-string formatting in components 2022-01-10 01:20:03 -05:00
Alexandre Kirszenberg
b6903bf558 Enable clippy 2022-01-08 16:35:26 +01:00
Jonathan Kelley
db0a5bd6ec Release dioxus-core-macro v0.1.6 2022-01-08 02:26:29 -05:00
Jonathan Kelley
40d1f85d0c Release dioxus-core v0.1.7, dioxus-core-macro v0.1.6, dioxus-html v0.1.4, dioxus-desktop v0.1.5, dioxus-hooks v0.1.6, dioxus-mobile v0.0.3, dioxus-router v0.1.0, dioxus-ssr v0.1.2, dioxus-web v0.0.4, dioxus v0.1.7 2022-01-08 02:25:03 -05:00
Jonathan Kelley
c439b0ac7e fix: component pass thru events 2022-01-07 11:51:25 -05:00
Dave Rolsky
51c177be9e Fix typo "misisng" that occurred in several error messages 2022-01-06 16:18:10 -06:00
Dave Rolsky
706b0e21a5 Fix reference to "html!" macro in "rsx!" macro docs 2022-01-06 10:44:05 -06:00
Jonathan Kelley
bd341f5571 fix: tests 2022-01-05 17:30:12 -05:00
Jonathan Kelley
427b126bc1 feat: add prevent default attribute and upgrade router 2022-01-05 16:34:24 -05:00
Jonathan Kelley
cb2782b4bb wip: memoize dom in the prescence of identical components 2022-01-05 00:27:22 -05:00
Jonathan Kelley
4ea5c990d7 publish: new versions of everything 2022-01-03 19:44:04 -05:00
Jonathan Kelley
2481cd05c2 fix: attempt to fix ice 2022-01-03 17:20:22 -05:00
Jonathan Kelley
f9b9bb9c0c publish: update core, core-macro, and html 2022-01-03 02:13:14 -05:00
Jonathan Kelley
cafb7df736 docs: remove all usages of static closure syntax and update readme 2022-01-02 18:35:38 -05:00
Jonathan Kelley
d1560450ba wip: remove runner on hook and then update docs 2022-01-02 02:15:04 -05:00
Jonathan Kelley
4c85bcfdc8 awesome: arbitrary expressions excepted without braces 2021-12-30 03:14:47 -05:00
Jonathan Kelley
14961023f9 wip: polish some more things 2021-12-29 21:28:28 -05:00
Jonathan Kelley
639f9f5322 publish: bump macro crate 2021-12-29 13:31:52 -05:00
Jonathan Kelley
3dc0e59876 fix: readme and examples syntax 2021-12-28 23:48:25 -05:00
Jonathan Kelley
a4f280d163 feat: more API updates 2021-12-28 23:20:01 -05:00
Jonathan Kelley
b3ac2ee3f7 wip: upgrade hooks 2021-12-27 15:03:43 -05:00
Jonathan Kelley
cda759c659 examples: upgrade to new version of dioxus core.
also add the inline_props macro
2021-12-25 17:18:05 -05:00
Jonathan Kelley
b997b8ebbb feat: enable children properly 2021-12-21 00:46:10 -05:00
Jonathan Kelley
2b928372fb Release dioxus-core v0.1.3, dioxus-core-macro v0.1.2, dioxus-html v0.1.0, dioxus-desktop v0.0.0, dioxus-hooks v0.1.3, dioxus-liveview v0.1.0, dioxus-mobile v0.0.0, dioxus-router v0.1.0, dioxus-ssr v0.1.0, dioxus-web v0.0.0, dioxus v0.1.1 2021-12-15 16:07:09 -05:00
Jonathan Kelley
0d480a4c43 Release dioxus-core v0.1.3, dioxus-core-macro v0.1.2, dioxus-html v0.1.0, dioxus-desktop v0.0.0, dioxus-hooks v0.1.3, dioxus-liveview v0.1.0, dioxus-mobile v0.0.0, dioxus-router v0.1.0, dioxus-ssr v0.1.0, dioxus-web v0.0.0, dioxus v0.1.0 2021-12-15 16:06:15 -05:00
Jonathan Kelley
868f6739d2 fix: keyword length 2021-12-15 16:06:13 -05:00
Jonathan Kelley
b32665d721 Release dioxus-core v0.1.3, dioxus-core-macro v0.1.2, dioxus-html v0.1.0, dioxus-desktop v0.0.0, dioxus-hooks v0.1.3, dioxus-liveview v0.1.0, dioxus-mobile v0.0.0, dioxus-router v0.1.0, dioxus-ssr v0.1.0, dioxus-web v0.0.0, dioxus v0.1.0 2021-12-15 16:05:20 -05:00
Jonathan Kelley
a33f7701fc fix: tags 2021-12-15 16:05:18 -05:00
Jonathan Kelley
3a706ac416 Release dioxus-core v0.1.3, dioxus-core-macro v0.1.2, dioxus-html v0.1.0, dioxus-desktop v0.0.0, dioxus-hooks v0.1.3, dioxus-liveview v0.1.0, dioxus-mobile v0.0.0, dioxus-router v0.1.0, dioxus-ssr v0.1.0, dioxus-web v0.0.0, dioxus v0.1.0 2021-12-15 16:04:30 -05:00
Jonathan Kelley
e4c06ce8e8 docs: update cargo tomls 2021-12-15 16:04:27 -05:00
Jonathan Kelley
4de16c4779 docs: update local examples and docs to support new syntaxes 2021-12-15 15:56:53 -05:00
Jonathan Kelley
8814977eee wip: docs 2021-11-30 22:48:05 -05:00
Jonathan Kelley
52c7154897 fix: really big bug around hooks 2021-11-29 11:10:40 -05:00
Jonathan Kelley
36d89beb34 wip: rename 2021-11-28 16:25:42 -05:00
Jonathan Kelley
bab21a0aa1 wip: updates to router 2021-11-22 15:22:42 -05:00
Jonathan Kelley
a5f05d73ac wip: docs and router 2021-11-19 00:49:04 -05:00
Jonathan Kelley
8bf57dc21d chore: polish 2021-11-16 13:09:41 -05:00
Jonathan Kelley
a21020ea57 wip: bubbling in progress 2021-11-11 21:34:20 -05:00
Jonathan Kelley
fd93ee89c1 feat: upgrade syntax 2021-11-10 17:09:52 -05:00
Jonathan Kelley
2933e4bc11 wip: major cleanups to scheduler 2021-11-06 23:11:17 -04:00
Jonathan Kelley
d298b626d3 wip: add router 2021-11-03 00:35:56 -04:00
Jonathan Kelley
2cf90b6903 feat: pull children out of component definition 2021-11-01 13:32:01 -04:00
Jonathan Kelley
27d891934a fix: use annotation method from rust/58052 to fix closure lifetimes 2021-10-30 18:23:28 -04:00
Jonathan Kelley
9ee2bfb010 wip: worked backwards a bit and got it slightly figured out 2021-10-30 17:11:15 -04:00
Jonathan Kelley
ba9e1dbb8f fix: messed up how lifetimes worked, need to render once per component 2021-10-29 21:43:21 -04:00
Jonathan Kelley
0e9d5fc530 wip: move everything over to a stack dst 2021-10-29 17:12:30 -04:00
Jonathan Kelley
e1c858dda5 chore: clippy happy on macro 2021-10-27 17:09:22 -04:00
Jonathan Kelley
339e450027 wip: fix some bugs around the rsx macro 2021-10-27 16:58:20 -04:00
Jonathan Kelley
9f7eb0f600 wip: remove HTML macro and add custom fields 2021-10-27 16:41:00 -04:00
Jonathan Kelley
84fd0c6162 feat: cleanuup 2021-10-20 01:26:52 -04:00
Jonathan Kelley
fcc6738f17 chore: remove bump 2021-10-19 22:40:43 -04:00
Jonathan Kelley
79503f15c5 feat: full html support 2021-10-19 22:39:27 -04:00
Jonathan Kelley
9726a065b0 feat: massage lifetimes 2021-10-16 17:37:28 -04:00
Jonathan Kelley
16dbf4a6f8 wip: book documentation 2021-10-16 17:04:28 -04:00
Jonathan Kelley
6587224deb polish: remove warnings on core macero 2021-09-24 20:51:48 -04:00
Jonathan Kelley
098d3821ed wip: changes to scheduler 2021-09-22 01:25:28 -04:00
Jonathan Kelley
b32e2611e3 polish: clean up warnings 2021-09-21 18:13:09 -04:00
Jonathan Kelley
a2c7d17b05 feat: mvoe away from compound context 2021-09-21 13:42:52 -04:00
Jonathan Kelley
9971ff215d polish: change in cx to cx 2021-09-16 13:20:04 -04:00
Jonathan Kelley
c1afeba1ef wip: groundwork for noderefs 2021-08-09 17:09:33 -04:00
Jonathan Kelley
fac42339c2 feat: mutations 2021-08-08 15:15:16 -04:00
Jonathan Kelley
f2334c17be wip: bottom up dropping 2021-08-05 22:23:41 -04:00
Jonathan Kelley
0a0be95c3e wip: get keyed diffing compiling 2021-07-30 10:35:47 -04:00
Jonathan Kelley
7dfe89c958 feat: wire up event delegator for webview 2021-07-24 02:52:05 -04:00
Jonathan Kelley
dfaf5adee1 Feat: solve some issues regarding listeners 2021-07-24 00:29:23 -04:00
Jonathan Kelley
f644d7c441 wip: move things into a "shared" object 2021-07-23 10:27:43 -04:00
Jonathan Kelley
22f894e6b9 wip: more upgades to html parser 2021-07-22 02:06:49 -04:00
Jonathan Kelley
160d86abbe wip: serious refactor with const generics 2021-07-21 22:55:04 -04:00
Jonathan Kelley
6051b0ec86 wip: fill out the snippets 2021-07-20 19:03:49 -04:00
Jonathan Kelley
4a72b3140b feat: amazingly awesome error handling 2021-07-18 12:39:32 -04:00
Jonathan Kelley
583fdfa561 docs: big updates to the reference 2021-07-16 16:11:25 -04:00
Jonathan Kelley
caf772cf24 wip: docs, html! macro, more 2021-07-16 00:27:06 -04:00
Jonathan Kelley
c52af221f7 wip: basic support for scheduled rendering 2021-07-14 18:19:51 -04:00
Jonathan Kelley
4091846934 feat: add aria 2021-07-13 00:56:39 -04:00
Jonathan Kelley
a85b8c4b6b wip: apply formatting 2021-07-12 13:03:24 -04:00
Jonathan Kelley
68ed1c04e7 wip: ....sigh..... so the diffing algorithm is robust
but it's still not finished.

We need to re-enable the fancier keyed diffing versions some point (soon!).
2021-07-12 03:58:46 -04:00
Jonathan Kelley
304259d818 wip: move examples around 2021-07-11 18:39:45 -04:00
Jonathan Kelley
e4cdb645aa feat: beaf up the use_state hook 2021-07-08 09:29:12 -04:00
Jonathan Kelley
7aec40d57e feat: enable arbitrary body in rsx! macro 2021-07-07 18:17:00 -04:00
Jonathan Kelley
98a09339fd wip: move some examples around 2021-07-07 16:19:10 -04:00
Jonathan Kelley
a38a81e129 wip: fix issues with lifetimes
this commit fixes some lifetime issues regarding having to "move" data into the IntoVNode closure.
2021-07-07 13:51:55 -04:00
Jonathan Kelley
22e659c2bd feat: namespaced attributes
this commit adds namespaced attributes. This lets us support attribute groups, and thus, inline styles.

This namespaced attribute stuff is only available for styles at the moment, though it theoretically could be enabled for any other attributes.
2021-07-06 23:04:33 -04:00
Jonathan Kelley
904b26f711 feat: add edits back! and more webview support!
This commit adds a new type - the DomEdit - for serializing the changes made by the diffing machine. The architecture of how DomEdits fit into the cooperative scheduling is still TBD but it will allow us to build change lists without applying them immediately. This is more performant  and allows us to only render parts of the page at a time.

This commit also adds more infrastructure around webview. Dioxus can now run on the web, generate static pages, run in the desktop, and run on mobile, with a large part of thanks to webview.
2021-07-05 18:37:15 -04:00
Jonathan Kelley
e8f29a8f8a wip: enable more diffing 2021-07-05 01:11:49 -04:00
Jonathan Kelley
b5e5ef171a feat: two calculator examples 2021-07-02 15:48:19 -04:00
Jonathan Kelley
d9e6d0925b docs: examples 2021-07-02 01:30:52 -04:00
Jonathan Kelley
952a91d540 wip 2021-07-01 14:14:59 -04:00
Jonathan Kelley
81382e7044 chore: rename ctx to cx 2021-06-25 21:15:33 -04:00
Jonathan Kelley
daa9bd82c3 docs: more work on docs 2021-06-25 09:31:13 -04:00
Jonathan Kelley
f5683a2346 wip: docs
Worked a bit on adding more examples. Trying out a new "antipattern" example to show how *not* to use Dioxus.
2021-06-23 22:32:54 -04:00
Jonathan Kelley
73047fe956 feat: props memoization is more powerful
This commit solves the memoization , properly memoizing properties that don't have any generic parameters. This is a rough heuristic to prevent non-static lifetimes from creeping into props and breaking our minual lifetime management.

Props that have a generic parameter are opted-out of the `partialeq` requirement and props *without* lifetimes must implement partialeq. We're going to leave manual disabling of memoization for future work.
2021-06-22 17:20:54 -04:00
Jonathan Kelley
62ae5d3bb9 wip: rethinking stack machine 2021-06-19 20:31:25 -04:00
Jonathan Kelley
517d7f1495 Chore: some cleanup and documentation 2021-06-10 01:01:53 -04:00
Jonathan Kelley
fe6938ceb3 wip: pre vnodes instead of vnode 2021-06-08 14:00:29 -04:00
Jonathan Kelley
7790750349 wip: merge in some code from the other branch 2021-06-05 23:47:54 -04:00
Jonathan Kelley
50c8b93aad Feat: move the rsx macro around 2021-06-03 10:42:28 -04:00
Jonathan Kelley
508c560320 Feat: massive changes to definition of components
This change switches back to the original `ctx<props>` syntax for
commponents. This lets lifetime elision to remove the need to match
exactly which lifetime (props or ctx) gets  carried to the output. As
such, `Props` is currently required to be static. It *is* possible to
loosen this restriction, and will be done in the future, though only
through adding metadata about the props through the Props derive
macro. Implementing the IS_STATIC trait is unsafe, so the derive macro
will do it through some heuristics.

For now, this unlocks sharing vnodes from parents to children, enabling
pass-thru components, fragments, portals, etc.
2021-06-01 18:33:15 -04:00
Jonathan Kelley
c1fd848f89 WIP: move to static props 2021-05-31 18:55:56 -04:00