aboutsummaryrefslogtreecommitdiff
path: root/src/vdom.ffi.mjs
Commit message (Collapse)AuthorAge
* :bug: Fixed a bug where the wrong event target was sometime sused for server ↵Hayleigh Thompson2024-06-11
| | | | component events.
* :bug: Fixed a bug where attributes were set even when they hadn't changed.Hayleigh Thompson2024-06-11
|
* :recycle: Don't re-set a node's property if it hasn't changed.Hayleigh Thompson2024-05-19
|
* :bug: Fixed a bug where setting properties would cause incorrect diffs to apply.Hayleigh Thompson2024-05-11
|
* 🔀 Fix a bug where nested `Map` nodes were not morphed. (#115)Benjamin Rhodes2024-04-26
| | | | | * ensure nested subtrees are morphed * Add a test-app for nested element map bug
* :recycle: Formatting changes.Hayleigh Thompson2024-04-25
|
* 🔀 Add support for element fragments. (#99)Jacob Scearcy2024-04-19
| | | | | | | | | | | | | | | | | | | | | | | | | * #16 add fragment POC * WIP * 16 add fragment support to morph * add keys for fragments * ensure proper fragment order, refactor to handle fragment/element more similarly * fix comment typo, incorrect child typo, simplify key check * fix comment typo * add snapshot tests * flatten fragment using fold right, appending elements * doc update --------- Co-authored-by: Hayleigh Thompson <me@hayleigh.dev>
* :bug: Fixed a bug where the 'selected' attribute was not properly applied in ↵Hayleigh Thompson2024-04-16
| | | | the DOM.
* :bug: Fixed a bug where vdom incorrectly attempted keyed diffs.Hayleigh Thompson2024-04-06
|
* :bug: Fix a sneaky bug where events were gone but not forgotten.Hayleigh Thompson2024-04-04
|
* :bug: Fixed a bug where event handlers would not work on propagated events.Hayleigh Thompson2024-04-01
|
* :bug: Fixed a bug where text nodes were patched even when their content was ↵Hayleigh Thompson2024-04-01
| | | | equal.
* :bug: Fixed a bug where child nodes were incorrectly morphed for disjoint ↵Hayleigh Thompson2024-03-31
| | | | parents.
* :bug: Fixed a bug where invalid property names may be set on a node and ↵Hayleigh Thompson2024-03-31
| | | | cause a crash.
* 🔀 Refactor vdom and add support for keyed vnodes. (#83)Hayleigh Thompson2024-03-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * :truck: Keep around old vdom implementation for reference. * :sparkles: Add a keyed vdom node. * :alembic: Experiment with a different approach for handling component children. * :construction: Here be scary works in progress. * :sparkles: Implement keyed node diffing. * :recycle: Don't use deprecated 'isOk' checks. * :recycle: Remove separate Keyed node and add 'key' field to Element node. * :sparkles: Add support for server components into new vdom. * :bug: Fix broken build script. * :recycle: Don't emit data-lustre-key attributes for server component patches. * :package: Generate server component runtime. * :bug: Fixed a bug where server component keys were ambiguous when double digit. * :package: Generate server component runtime. * :recycle: Refactor 'keyed' element to force all children of a node to be keyed. * :memo: Consistently format '**Note**:'. * :bug: Fixed bug with falsey className/style/innerHTML attributes. * :bug: Fixed a bug not handling undefined 'prev' nodes correctly. * :package: Generate server component runtime.
* :recycle: Additional data attached to server component events is moved to ↵Hayleigh Thompson2024-03-25
| | | | the 'data' property.
* :bug: Fixed bug where empty string attributes did not work at runtime.Hayleigh Thompson2024-03-14
|
* :recycle: Add a 'Map' vdom node for more efficient msg mapping.Hayleigh Thompson2024-03-12
|
* :recycle: Temporarily disable a performance optimisation that caused bugs ↵Hayleigh Thompson2024-01-26
| | | | with input elements.
* ✨ Add universal components that can run on the server (#39)Hayleigh Thompson2024-01-23
* :heavy_plus_sign: Add gleam_erlang gleam_otp and gleam_json dependencies. * :sparkles: Add json encoders for elememnts and attributes. * :sparkles: Add the ability to perform an effect with a custom dispatch function. * :construction: Experiment with a server-side component runtime. * :construction: Expose special server click events. * :construction: Experiment with a server-side component runtime. * :construction: Experiment with a server-side component runtime. * :construction: Experiment with a server-side component runtime. * :construction: Create a basic server component client bundle. * :construction: Create a basic server component demo. * :bug: Fixed a bug where the runtime stopped performing patches. * :refactor: Roll back introduction of shadow dom. * :recycle: Refactor to Custom Element-based approach to encapsulating server components. * :truck: Move some things around. * :sparkles: Add a minified version of the server component runtime. * :wrench: Add lustre/server/* to internal modules. * :recycle: on_attribute_change and on_client_event handlers are now functions not dicts. * :recycle: Refactor server component event handling to no longer need explicit tags. * :fire: Remove unnecessary attempt to stringify events. * :memo: Start documeint lustre/server functions. * :construction: Experiment with a js implementation of the server component backend runtime. * :recycle: Experiment with an API that makes heavier use of conditional complilation. * :recycle: Big refactor to unify server components, client components, and client apps. * :bug: Fixed some bugs with client runtimes. * :recycle: Update examples to new lustre api/ * :truck: Move server demo into examples/ folder/ * :wrench: Add lustre/runtime to internal modules. * :construction: Experiment with a diffing implementation. * :wrench: Hide internal modules from docs. * :heavy_plus_sign: Update deps to latest versions. * :recycle: Move diffing and vdom code into separate internal modules. * :sparkles: Bring server components to feature parity with client components. * :recycle: Update server component demo. * :bug: Fix bug where attribute changes weren't properly broadcast. * :fire: Remove unused 'Patch' type. * :recycle: Stub out empty js implementations so we can build for js. * :memo: Docs for the docs gods. * :recycle: Rename lustre.server_component to lustre.component.