Mike Tunik
6a89a8f482
chore: optimize `get_amount_class_specificity_increased` ( #9853 )
...
* Optimaze
* pnpm format
---------
Co-authored-by: Mike <prince-poley@yandex.ru>
2 years ago
Jirawat Boonkumnerd
acf73104b5
feat: add GamepadEventHandler type ( #9861 )
...
Add GamepadEventHandler type for window.addEventListener `gamepadconnected` and `gamepaddisconnected`
2 years ago
Dominic Gannaway
cb529fc666
chore: improve each block fast-path heuristic ( #9855 )
...
* chore: improve each block fast-path heuristic
* chore: improve each block fast-path heuristic
2 years ago
github-actions[bot]
b90b14645b
Version Packages (next) ( #9847 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2 years ago
Dominic Gannaway
56d8c0fd3a
fix: ensure action function returns object ( #9848 )
2 years ago
Dominic Gannaway
4717d2ad23
fix: handle event hoisting props referencing ( #9846 )
...
* fix: handle event hoisting props referencing
2 years ago
Dominic Gannaway
fd78acfec9
fix: support dynamic transition functions ( #9844 )
...
* fix: support dynamic transition functions
* add test
* lint
* load dynamic code lazily
load dynamic code lazily
load dynamic code lazily
2 years ago
github-actions[bot]
ab21253073
Version Packages (next) ( #9833 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2 years ago
Simon H
df5105ef2e
breaking: change `$inspect` API ( #9838 )
...
* breaking: change `$inspect` API
`$inspect` now takes 1-n arguments, and inspections modification happens through `.with(..)`
closes #9737
* lint
2 years ago
Rich Harris
26c6d6f95d
chore: avoid creating unnecessary thunks ( #9841 )
...
Co-authored-by: Rich Harris <rich.harris@vercel.com>
2 years ago
Dominic Gannaway
8dfb2894b4
fix: improve each key animations ( #9842 )
2 years ago
Dominic Gannaway
08d93a2f5f
fix: improve each block with animate ( #9839 )
2 years ago
Dominic Gannaway
388e3e68fc
fix: improve signal consumer removal logic ( #9837 )
2 years ago
Dominic Gannaway
e2dcdc2887
fix: ensure computed props are wrapped in derived ( #9835 )
2 years ago
Dominic Gannaway
d9c250a4bf
fix: better handle unowned derived signals ( #9832 )
...
* fix: better handle unowned derived signals
* format
---------
Co-authored-by: Simon H <5968653+dummdidumm@users.noreply.github.com>
2 years ago
Rich Harris
b20b4617c0
chore: rethink props ( #9826 )
...
Cleaned up prop_source and renamed it to prop. Updated tests accordingly
2 years ago
gtmnayan
c9c2bde5e7
chore: do not emit invalidate_effect for select synchronization ( #9830 )
...
in runes mode
2 years ago
github-actions[bot]
384e3a42b3
Version Packages (next) ( #9807 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2 years ago
Rich Harris
fb853106a9
chore: skip READONLY_SYBOL check in prod ( #9825 )
...
Co-authored-by: Rich Harris <rich.harris@vercel.com>
2 years ago
Rich Harris
481df0e64a
fix: correctly apply scope on component children ( #9824 )
...
Co-authored-by: Rich Harris <rich.harris@vercel.com>
2 years ago
Rich Harris
5797bb34ce
fix: reuse proxy between objects ( #9821 )
...
* chore: reuse proxy between objects
* lint
---------
Co-authored-by: Rich Harris <rich.harris@vercel.com>
2 years ago
Rich Harris
3fb917dc6d
chore: remove unused check ( #9817 )
...
Co-authored-by: Rich Harris <rich.harris@vercel.com>
2 years ago
Rich Harris
548ffdd3bd
chore: code golf text_effect a bit ( #9814 )
...
Co-authored-by: Rich Harris <rich.harris@vercel.com>
2 years ago
Rich Harris
c0150b0bd3
chore: tweak readonly error message ( #9816 )
...
* tweak readonly error message
* update tests
---------
Co-authored-by: Rich Harris <rich.harris@vercel.com>
2 years ago
Rich Harris
1e4af19404
chore: use `$$props` directly where possible ( #9813 )
...
* use $$props directly in runes mode
* this makes no sense
* use $$props directly in runes mode
* tidy up
* typo
* remove unreachable code
---------
Co-authored-by: Rich Harris <rich.harris@vercel.com>
2 years ago
Simon H
074615d7fd
fix: prevent infinite loops stemming from invalidation method ( #9811 )
...
* fix: prevent infinite loops stemming from invalidation method
The logic was flawed: the captured signals where always added to the previous captured no matter what, which meant a) memory leak b) that when another one runs afterwards, it will falsely contain the signals from the previous run
fixes #9788
* fix lint
2 years ago
Михаил Туник
edc569e73b
chore: refactor is_promise function ( #9794 )
...
* Refactor is_promise function
* Update packages/svelte/src/internal/common.js
---------
Co-authored-by: Mike <prince-poley@yandex.ru>
Co-authored-by: Rich Harris <hello@rich-harris.dev>
2 years ago
Simon Holthausen
dcdd645480
fix: adjust children snippet default type
...
Needs to be void so that zero args are passed to it
fixes #9744
2 years ago
Simon H
5667785903
fix: better readonly checks for proxies ( #9808 )
...
- Expect the thing that's checked to be wrapped with the proxy already, so that we can just check for the state symbol
- Make error message more descriptive
2 years ago
Dominic Gannaway
d5167e75b9
fix: improve non state referenced warning ( #9809 )
...
* fix: improve non state referenced warning
* add test
2 years ago
Dominic Gannaway
d793d570e2
fix: improve consistency issues around binding invalidation ( #9810 )
...
* co
* Add comment
2 years ago
Rich Harris
01a2117330
chore: use proxy instead of signal in createRoot ( #9799 )
...
* use proxy instead of signal in createRoot
* DRY
* remove for now
* lint
* chore: use proxies instead of signals for spread/rest props (#9801 )
* use proxies instead of signals for spread/rest
* fix some spread attribute stuff
* remove is_signal calls
* simplify some more
* more
* remove some unnecessary unwrapping
* another
* simplify
* simplify
* simplify
* remove another MaybeSignal
* more
* remove more unwraps
* code-golf, docs
---------
Co-authored-by: Rich Harris <rich.harris@vercel.com>
Co-authored-by: Simon Holthausen <simon.holthausen@vercel.com>
* add missing jsdoc annotation
---------
Co-authored-by: Rich Harris <rich.harris@vercel.com>
Co-authored-by: Simon Holthausen <simon.holthausen@vercel.com>
2 years ago
Simon H
3c2e656187
fix: tweak css nth regex ( #9806 )
...
fixes #9795
2 years ago
Rich Harris
4b76c6998b
chore: simplify await blocks ( #9802 )
...
We never pass a signal to await blocks currently, so the "is_signal" check is unnecessary
2 years ago
github-actions[bot]
f552a4b2ea
Version Packages (next) ( #9771 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2 years ago
Dominic Gannaway
e6b5ccd29a
fix: tweak invalid dollar prefix rules around function args ( #9792 )
2 years ago
Rich Harris
62c9292947
feat: make fallback prop values readonly ( #9789 )
...
* WIP
* update tests
* only make readonly in runes mode
* remove this for now
* changeset
* ugh
* add reassignment test
* tweak message
---------
Co-authored-by: Rich Harris <rich.harris@vercel.com>
2 years ago
Rich Harris
bd8f7db754
check runtime errors ( #9791 )
...
Co-authored-by: Rich Harris <rich.harris@vercel.com>
2 years ago
Dominic Gannaway
3b15e32a91
fix: ensure generate guards against keywords ( #9790 )
...
* fix: ensure generate guards against keywords
* changeset
* lint
* Update .changeset/old-flies-jog.md
---------
Co-authored-by: Rich Harris <richard.a.harris@gmail.com>
2 years ago
Simon H
9c3516dd3d
feat: runes globals error ( #9773 )
...
* feat: runes globals error
throw descriptive error for using runes globals outside of Svelte-compiled files
* less hacky/more future-proof treeshaking check
* tweak
---------
Co-authored-by: Rich Harris <rich.harris@vercel.com>
2 years ago
Rich Harris
24777c335a
feat: disallow fallback values with bindings in runes mode ( #9784 )
...
* disallow fallback values with bindings in runes mode
* on second thoughts
---------
Co-authored-by: Rich Harris <rich.harris@vercel.com>
2 years ago
Dominic Gannaway
c7e626ebbb
feat: add unstate utility function ( #9776 )
...
* feat: add unstate utility function
* Update packages/svelte/src/internal/client/proxy/proxy.js
Co-authored-by: Simon H <5968653+dummdidumm@users.noreply.github.com>
* update docs
* add class support
* oops
* lint
* fix docs
* remove symbol and class support
---------
Co-authored-by: Simon H <5968653+dummdidumm@users.noreply.github.com>
Co-authored-by: Rich Harris <richard.a.harris@gmail.com>
2 years ago
Dominic Gannaway
f1954d034b
fix: ensure proxied array length is updated ( #9782 )
...
* fix: ensure proxied array length is updated
* fix: ensure proxied array length is updated
* add test
* lint
2 years ago
Rich Harris
10aacfa603
chore: remove `exposable` ( #9783 )
...
* use flags for prop_source, this will be useful later
* remove exposable/expose stuff
---------
Co-authored-by: Rich Harris <rich.harris@vercel.com>
2 years ago
Dominic Gannaway
25abca78b2
fix: ensure transitions properly cancel on completion ( #9778 )
2 years ago
Simon H
ef158ff729
fix: apply event attribute validation to elements only ( #9772 )
...
fixes #9755
2 years ago
Rich Harris
ede5dab230
chore: fix compiler-errors test suite ( #9754 )
...
- fix compiler-errors test suite
- handle css nth-selector syntax (fixes #9765 )
---------
Co-authored-by: Rich Harris <rich.harris@vercel.com>
Co-authored-by: Simon Holthausen <simon.holthausen@vercel.com>
2 years ago
Rich Harris
fd4a52c894
add missing changelog entry
2 years ago
github-actions[bot]
e4056107f0
Version Packages (next) ( #9753 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2 years ago
Rich Harris
75fc09a79e
Proxied state ( #9739 )
...
* magic objects
* read length eagerly — triggers reconciliation
* nested magic
* tests
* more tests
* fix array memory leak
* skipped, partially passing array test
* Fix each
revert bad changes
* more 1337
* eliminate closures
* maybe this is unnecessary?
* only create sources for own properties
* more
* rename stuff
* shuffle things around
* emit $.proxy
* remove proxy helper from public API
* only create sources for writable properties
* update test
* get tests passing
* fix
* remove state-not-mutated warning, which is no longer valid
* track reassignments separately from mutations
* update test - effects no longer fire on mutations unnecessarily
* move util into utils file
* move each logic into its own module; breathe sigh of relief
* tweaks
* more tweaks
* improve runtime
* fix mistake
* ensure we proxy when assigning to state
* fix test
* handle frozen
* create sources when reading proxy properties inside deriveds
* only mutate in legacy mode
* add immutable to transform state
* remove unused second argument to derived
* remove unused second argument to source, and runtime immutable option to createRoot (not sure what that was doing there?)
* oops, backwards
* dedicated binding.kind for legacy reactive imports
* avoid using prop_source in more cases. bit hacky, could be tidier, but it works
* distinguish between source and mutable_source
* remove immutable option from mount
* remove unused apparatus around immutable option
* deprecate immutable
* fix
* tweak
* better default value handling
* remove unnecessary exports
* whitespace is free
* remove obsolete symbol from proxy
* cleanup ts
* improve runtime perf by removing version reads in has()
* add missing proxy call
* tune perf of has() more
* ensure we only create sources in effect_active()
* fix proxy of computed fields
* simplify and fix issue with indexed each blocks
* fix compiler errors around exported state
* only create source for state that is reassigned
* temporary fix, we should come up with something better than this
* readonly props
* fix test
* add test for bind:
* make readonly dev-only
* docs
* forbid setPrototypeOf
* lol whoops
---------
Co-authored-by: Rich Harris <rich.harris@vercel.com>
Co-authored-by: Dominic Gannaway <dg@domgan.com>
2 years ago
Dominic Gannaway
f0c47c31bc
fix: allow duplicate snippet declaration names ( #9759 )
...
Fixes #9756
2 years ago
Dominic Gannaway
ef5bcfe542
fix: ensure event handlers containing arguments are not hoisted ( #9758 )
...
* fix: ensure event handlers containing arguments are not hoisted
* add test
* handle rest arguments
2 years ago
Dominic Gannaway
2017af407d
fix: ensure computed props are cached with derived ( #9757 )
...
Fixes #9751
2 years ago
Simon Holthausen
aaa1797ed8
fix: css parser fix
...
when inside a pseudo-class, only `)` is a valid end, and when outside, only `{` is - reflect that in the logic
2 years ago
Simon H
402a322317
chore: more validation errors ( #9723 )
...
* invalid directive on component
* duplicate animation
* invalid animation
* no const assignment
* expected token
* invalid-attribute-name
* fixes
* invalid event modifier
* component name
* slot validation
* fix test
* const validation + fix double declaration bug
* omg this validation is skipped in svelte 4, remove it entirely then
* gah
* unskip
* contenteditable
* invalid css selector
* css global selector + css parser fixes
* export default
* dynamic element
* each block
* html tag
* logic block
* reactive declaration
* duplicate script
* namespace
* module context
* slot
* svelte fragment
* textarea
* title
* transition
* window bindings
* changeset
* svelte head, let directive, tweaks
2 years ago
Ignatius Bagus
d19e622e90
docs: update `create` -> `createRoot` ( #9750 )
2 years ago
github-actions[bot]
61e5e53eee
Version Packages (next) ( #9736 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2 years ago
Rich Harris
765d01d76c
correctly inspect derived values ( #9731 )
...
Co-authored-by: Rich Harris <rich.harris@vercel.com>
2 years ago
github-actions[bot]
1108587f1b
Version Packages (next) ( #9707 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2 years ago
Dominic Gannaway
2fa06447cf
fix: improve template text node serialization ( #9722 )
...
fix: improve template text node serialization
2 years ago
Dominic Gannaway
7eba35b9d1
fix: improve infinite loop capturing ( #9721 )
2 years ago
gtmnayan
8266229c42
fix repl ( #9720 )
2 years ago
Simon H
cb1ea1f2db
fix: ensure `$$slots` exists in runes mode ( #9718 )
...
fixes #9683
2 years ago
Simon H
4a8f0bc7e7
fix: keep fallback value after spread update not setting that prop ( #9717 )
...
fixes #9716
2 years ago
Simon H
65fa717ccd
fix: port over props that were set prior to initialization ( #9704 )
...
Svelte 5 version of #9701
2 years ago
Dominic Gannaway
2e461eb314
chore: remove redundant hydration code ( #9698 )
2 years ago
Simon H
e3dc185a4c
fix: tweak const tag parsing ( #9715 )
...
fixes #9711
2 years ago
Simon H
f88895e955
fix: allow `bind:this` with dynamic type on inputs ( #9713 )
...
fixes #9709
2 years ago
Simon H
1fe0152dd4
fix: delegate events on elements with bind-this ( #9696 )
...
fixes #9688
2 years ago
Simon H
2416587215
fix: ensure implicit children snippet renders correctly ( #9706 )
...
place anchors around render tags, not snippet tags
fixes #9678
2 years ago
Rich Harris
bde42d5676
`$inspect` rune ( #9705 )
...
* feat: add $log rune
* fix issues
* fix issues
* tune
* avoid static state reference validation
* work around unfortunate browser behavior
* call it ExpectedError
* cleanup
* Fix docs
* tweaks
* tweaks
* lint
* repl, dev: true
* repl dev mode
* Update sites/svelte-5-preview/src/lib/Repl.svelte
* squelch static-state-reference warning
* simplify
* remove redundant code
* Update packages/svelte/src/main/ambient.d.ts
Co-authored-by: Rich Harris <richard.a.harris@gmail.com>
* Update packages/svelte/src/main/ambient.d.ts
Co-authored-by: Rich Harris <richard.a.harris@gmail.com>
* Update packages/svelte/src/main/ambient.d.ts
Co-authored-by: Rich Harris <richard.a.harris@gmail.com>
* only pause/trace on change
* Update packages/svelte/src/main/ambient.d.ts
* Update .changeset/chatty-hotels-grin.md
* Update sites/svelte-5-preview/src/routes/docs/content/01-api/02-runes.md
Co-authored-by: Rich Harris <richard.a.harris@gmail.com>
* $log.break and $log.trace no-op during SSR
* Update sites/svelte-5-preview/src/routes/docs/content/01-api/02-runes.md
Co-authored-by: Rich Harris <richard.a.harris@gmail.com>
* update test
* improve break experience
* fix ts
* remove unnecessary if (DEV) checks - log runes are removed in prod
* ensure hoisting doesnt mess up source maps
* check visited for cyclical values
* rename $log to $inspect, remove children
* custom inspect function
* implement custom inspect functions
* changeset
* update docs
* only fire on change
* lint
* make inspect take a single argument
* ugh eslint
* document console.trace trick
* demos
* fix site
---------
Co-authored-by: Dominic Gannaway <dg@domgan.com>
Co-authored-by: Simon Holthausen <simon.holthausen@vercel.com>
Co-authored-by: Rich Harris <rich.harris@vercel.com>
Co-authored-by: Dominic Gannaway <trueadm@users.noreply.github.com>
2 years ago
github-actions[bot]
3e3ae925f3
Version Packages (next) ( #9692 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2 years ago
Simon H
75295ac79f
docs: enhance breaking change section ( #9674 )
...
* docs: enhance breaking change section
- mention createRoot first, explain difference to mount
- mentiond bind:this change
- sub headings
- adjust createRoot type that missed the events property
* Update packages/svelte/src/internal/client/render.js
Co-authored-by: Conduitry <git@chor.date>
* clarify
---------
Co-authored-by: Conduitry <git@chor.date>
Co-authored-by: Rich Harris <rich.harris@vercel.com>
2 years ago
Rich Harris
dd4061bc38
rename dev script, update contributor guide and readme ( #9673 )
...
* rename dev script, update contributor guide and readme
* turns out we can do this!
* increase accuracy
* justify FILTER
---------
Co-authored-by: Rich Harris <rich.harris@vercel.com>
2 years ago
Simon H
f9ba528265
fix: add children to element typings ( #9679 )
...
* fix: add children to element typings
Add this here so that libraries doing `props$<HTMLButtonAttributes>()` don't need a separate interface
fixes #https://github.com/sveltejs/language-tools/issues/2218
* typo
2 years ago
Simon H
aabab263ee
fix: handle ts expressions when dealing with runes ( #9681 )
...
* fix: handle ts expressions when dealing with runes
related to #9639
* docs, more tests
* simplify
---------
Co-authored-by: Rich Harris <rich.harris@vercel.com>
2 years ago
github-actions[bot]
a31b2e1b8e
Version Packages (next) ( #9650 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2 years ago
Dominic Gannaway
81d3e47d1c
feat: add $effect.root rune ( #9638 )
...
* feat: effect-root-rune
feat: add $effect.root rune
update doc
update doc
fix validation
* cleanup logic
* Update sites/svelte-5-preview/src/routes/docs/content/01-api/02-runes.md
* address feedback
---------
Co-authored-by: Rich Harris <richard.a.harris@gmail.com>
2 years ago
Rich Harris
48e78e420f
chore: remove static value handling ( #9571 )
...
The deleted code ensured that a static variable wouldn't update when it's in the same text expression as a reactive variable. We solved this through emitting a warning about this instead, marking it as undefined behavior.
2 years ago
Rich Harris
5836c1cdbd
chore: improve output for `<svelte:element>` ( #9648 )
...
- doesn't add spread_dynamic_element_attributes when there are no attributes — Unnecessary spread_dynamic_element_attributes call #9646
- skips the child render function altogether if there is nothing to do
2 years ago
Rich Harris
6e863e617c
feat: warn on referenced mutated nonstate ( #9669 )
...
Walk the path and warn if this is a mutated normal variable that's referenced inside a function scope
2 years ago
Rich Harris
9c44fd7854
feat: ignore href when hydrating ( #9662 )
...
* ignore href when hydrating
* remove unused export keyword
---------
Co-authored-by: Rich Harris <rich.harris@vercel.com>
2 years ago
Yuichiro Yamashita
da1aa7c4a8
feat: support type annotations in `{@const ...}` tag ( #9609 )
...
* support type for const tag
* use expression directly
* lint
* format
* format
* revert
* legacy mode
* format
* revert and update .prettierignore
2 years ago
Simon H
617d63dd90
fix: take event attributes into account when checking a11y ( #9664 )
...
also adjusted the warning messages slightly so they make sense for both variants of event handlers
fixes #9654
2 years ago
Simon H
83fd001157
fix: prevent reactive snippet from reinitializing unnecessarily ( #9665 )
...
untrack the invocation itself, only track the snippet function
fixes #9652
2 years ago
Rich Harris
405e9da4ff
chore: bump esrap ( #9649 )
...
* bump esrap
* changeset
---------
Co-authored-by: Rich Harris <rich.harris@vercel.com>
2 years ago
github-actions[bot]
66d540d3c5
Version Packages (next) ( #9642 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2 years ago
Simon H
7f237c2e41
fix: omit this bind this arg if we know it's not a signal ( #9635 )
...
fixes #9629
Co-authored-by: Dominic Gannaway <dg@domgan.com>
2 years ago
Dominic Gannaway
dee5bed829
fix: improve each block index handling ( #9644 )
...
* fix: improve each block index handling
* format
2 years ago
Dominic Gannaway
02f3f42981
fix: apply keyed validation only for keyed each ( #9641 )
2 years ago
github-actions[bot]
94afdc8a4b
Version Packages (next) ( #9633 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2 years ago
Simon Holthausen
63e5831846
fix: adjust mount and createRoot types
...
they expect the component constructor, not the instance
2 years ago
Simon Holthausen
a3bc7d5698
fix: type-level back-compat for default slot and children prop
...
If someone has an existing SvelteComponent type definition and using the slot generic to type the default slot, automatically add that slot to the prop type as "children"
2 years ago
Simon Holthausen
cb4b1f0a18
fix: remove constructor overload
...
The original intent was for typing generation tools like svelte2tsx to use the virtual constructor instead, but it does more harm than good. Most notably, the TS error message when props are wrong becomes completely useless. It's better for tooling to silence the deprecation message and switch over to a new virtual constructor once we remove the deprecated one.
2 years ago
github-actions[bot]
b7af2ffabd
Version Packages (next) ( #9607 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2 years ago
Simon H
78a69acfa1
fix: dont error on stores looking like runes when runes explicitly turned off ( #9615 )
2 years ago
Simon H
72d3a2a8ce
fix: better attribute casing logic ( #9626 )
...
- don't lowercase attributes on svg and custom element elements, fixes #9605
- better lowercasing + property alias checking for spreads, fixes #9305
2 years ago
Dominic Gannaway
ef68b66dee
fix: improve member expression mutation logic ( #9625 )
...
* fix: improve member expression mutation logic
* cleanup
* Update .changeset/moody-frogs-exist.md
---------
Co-authored-by: Simon H <5968653+dummdidumm@users.noreply.github.com>
2 years ago
Yuichiro Yamashita
c7121aa38c
feat: add type of `$effect.active` ( #9624 )
2 years ago
Dominic Gannaway
d8d9be39d3
fix: apply correct snippet scope ( #9623 )
2 years ago