* fix: prevent state runes from being called with spread
* prevent spread arguments for all runes except $inspect
---------
Co-authored-by: Rich Harris <rich.harris@vercel.com>
* fix: allow get_proxied_value to return original value when error
closes#15546
* Update packages/svelte/src/internal/client/proxy.js
---------
Co-authored-by: Rich Harris <hello@rich-harris.dev>
* feat: make deriveds writable
* add optimistic UI example
* add note to when-not-to-use-effect
* add section on deep reactivity
* root-relative URL
* use hash URL
* mention const
* make handler async, move into script block
* Add failing JSDoc property svelte-migrate conversion tests
* Add further test case and remove default value in JSDoc output
* Look for inlined JSDoc comments after a hyphen
* Add changeset
* move parent property onto Signal
* don't self-invalidate when updating a source create inside current reaction
* lazily create deep state with parent reaction
* no need to push_derived_source with mutable_state, as it never coexists with $.derived
* reduce indirection
* remove state_unsafe_local_read error
* changeset
* tests
* fix test
* inelegant fix
* remove arg
* tweak
* some progress
* more
* tidy up
* parent -> p
* tmp
* alternative approach
* tidy up
* reduce diff size
* more
* update comment
Fixes#14072
`:has()` was matching only against descendants or siblings, but not sibling's descendants. This makes the logic be able to go forward or backwards, simplifying a lot of cases along the way.
For instance, specifying a tree-structural pseudo-class to
`::view-transition-new` should still constitute a valid global-like
selector.
Fixes#15312
---------
Co-authored-by: Simon H <5968653+dummdidumm@users.noreply.github.com>
* ix: ensure transient writes to tracked parent effects works as expected
* lint
* format test
* tweak changeset
---------
Co-authored-by: Rich Harris <rich.harris@vercel.com>
Fixes#14579
Although this isn't 100% correct because there's no `group` attribute, there's no better way to make people have components' props just be `HTMLInputAttributes` and allow them to reference `group`
* fix: on teardown, use the last known value for the signal before the se
* fix: on teardown, use the last known value for the signal before the se
* fix: on teardown, use the last known value for the signal before the se
* fix: on teardown, use the last known value for the signal before the se
* fix: on teardown, use the last known value for the signal before the se
* Update packages/svelte/src/internal/client/reactivity/props.js
Co-authored-by: Rich Harris <rich.harris@vercel.com>
* Update packages/svelte/src/internal/client/reactivity/props.js
Co-authored-by: Rich Harris <rich.harris@vercel.com>
* Update packages/svelte/src/internal/client/reactivity/props.js
Co-authored-by: Rich Harris <rich.harris@vercel.com>
* lint
* lint
* lint
* Update .changeset/sharp-elephants-invite.md
---------
Co-authored-by: Rich Harris <rich.harris@vercel.com>
* fix null and warning for local handlers
* test
* changeset
* treat `let handler = () => {...}` the same as `function handler() {...}`
---------
Co-authored-by: Rich Harris <rich.harris@vercel.com>
* add style attribute when needed
* set_style()
* to_style()
* remove `style=""`
* use cssTest for perfs
* base test
* test
* changeset
* revert dom.style.cssText
* format name
* use style.cssText + adapt test
* Apply suggestions from code review
suggestions from dummdidumm
Co-authored-by: Simon H <5968653+dummdidumm@users.noreply.github.com>
* fix priority
* lint
* yawn
* update test
* we can simplify some stuff now
* simplify
* more
* simplify some more
* more
* more
* more
* more
* more
* remove continue
* tweak
* tweak
* tweak
* skip hash argument where possible
* tweak
* tweak
* tweak
* tweak
---------
Co-authored-by: Simon H <5968653+dummdidumm@users.noreply.github.com>
Co-authored-by: Rich Harris <rich.harris@vercel.com>
* style must be set via set_attribute
* test
* changeset
* add empty string and null in test
* explanatory comment
* this is now redundant, set_attribute takes care of it
* drive-by
* tweak changeset
---------
Co-authored-by: Rich Harris <rich.harris@vercel.com>
* set_attributes for <svelte:element>
* changeset
* Update .changeset/wise-hats-wonder.md
Co-authored-by: Simon H <5968653+dummdidumm@users.noreply.github.com>
* add changeset
* remove `chore` changeset — no need for non-user-facing changes to appear in changelog
* Update packages/svelte/src/compiler/phases/3-transform/client/visitors/shared/element.js
* determine element traits inside set_attributes
* unused
* stash lookup
---------
Co-authored-by: adiguba <frederic.martini@gmail.com>
Co-authored-by: Simon H <5968653+dummdidumm@users.noreply.github.com>
* fix: correctly set `is_updating` before flushing root effects
* rename for consistency with update_effect
* use var
---------
Co-authored-by: Rich Harris <rich.harris@vercel.com>