Rogério Luiz Aques de Amorim
a58d93f8bf
fix: parser error when using semicolon inside quotes in style ( #10221 )
...
* fix error when using semicolon inside quotes in style
* refactor to include { like in the original code
* simplified version of regex
Co-authored-by: navorite <navorite@gmail.com>
* add changeset
* add changeset
* add test
* Update .changeset/seven-hornets-smile.md
Co-authored-by: navorite <navorite@gmail.com>
* undo demo.css change
* fix support-font-face test not passing
* add double quotes
* beef up test
* robustify parsing
* Update .changeset/seven-hornets-smile.md
---------
Co-authored-by: navorite <navorite@gmail.com>
Co-authored-by: Rogerio Luiz Aques de Amorim <Rogerio Amorim>
Co-authored-by: Rich Harris <rich.harris@vercel.com>
Co-authored-by: Rich Harris <hello@rich-harris.dev>
2 years ago
Simon H
005ff894ff
fix: prevent false positive store error in module script ( #10291 )
...
When a variable with the same name was declared in the instance script, the module-no-auto-store-subscription-validation would fail
fixes #10285
2 years ago
Simon H
107ec1c848
fix: handle deep assignments to `$state()` class properties correctly ( #10289 )
...
fixes #10276
2 years ago
Simon H
c8da99646a
fix: `:global()` compound selector validation tweak ( #10287 )
...
Allow type selector in `:global()` when it's at a start of a compound selector
fixes #10286
2 years ago
Dominic Gannaway
fb61f4eb70
fix: correctly cleanup unowned derived dependency memory ( #10280 )
...
* fix: correctly cleanup unowned derived dependency memory
* recursive
* recursive
2 years ago
Simon Holthausen
1538264bd5
fix: don't hoist function when already referenced in module scope
...
fixes #10279
2 years ago
Dominic Gannaway
a476e81e63
chore: improve $state static reference warning heuristics ( #10275 )
...
* chore: improve $state static reference warning heuristics
* fix bug
* update test
* lint
2 years ago
Simon H
14bf4b4b2c
fix: ensure proxy is updated before notifying listeners ( #10267 )
...
fixes #10264
fixes #10265
2 years ago
Simon H
036e88f1f7
fix: allow `:global(..)` in compound selectors ( #10266 )
...
Someone could programmatically add a class to an element and Svelte doesn't see it, so having global be part of a modifier is necessary so that Svelte doesn't mark it as unused
fixes #10210
2 years ago
Simon H
6b0bd8b23a
fix: hydrate controlled each blocks correctly ( #10259 )
...
Controlled each block didn't handle hydration of fallback correctly
fixes #10231
2 years ago
Simon H
434a58711f
fix: sanitize component event names ( #10235 )
...
fixes #9916
2 years ago
Dominic Gannaway
83628c901d
fix main ( #10237 )
...
* fix main
* fix main
2 years ago
Simon Holthausen
776ac3c176
fix: add back `derived` type overload
...
fixes #9866
2 years ago
Simon Holthausen
a6797614ef
fix: clarify error message
...
closes #10109
2 years ago
gtmnayan
0071e0252a
fix: allow ts casts in bindings ( #10181 )
...
fixes #10179
---------
Co-authored-by: Simon Holthausen <simon.holthausen@vercel.com>
2 years ago
Simon Holthausen
2861ad66e0
fix: correct increment/decrement code generation
...
fixes #10226
2 years ago
Simon H
61118835db
chore: bit of code cleanup ( #10218 )
2 years ago
Simon H
9f87f059d2
fix: skip certain slot validations for custom elements ( #10207 )
...
fixes #10196
2 years ago
Dominic Gannaway
2b2bd06d6f
fix: ensure derived signals properly capture consumers ( #10213 )
...
* fix: ensure derived signals properly capture consumers
* fix: ensure derived signals properly capture consumers
2 years ago
Simon Holthausen
1798e58300
chore: fix signals test suite
...
now simulates a component environment more correctly
2 years ago
Dominic Gannaway
c7a7725abd
fix: add compiler error for invalid <p> contents ( #10201 )
...
* fix: add compiler error for invalid <p> contents
* add test
2 years ago
Dominic Gannaway
b04c5bb398
fix: improve invalid nested interactive element error ( #10199 )
...
* fix: improve invalid nested interactive element error
* add test
* revise
2 years ago
Simon H
db8cba3216
fix: react to mutated slot props in legacy mode ( #10197 )
...
If a list is passed to a component and an item of that list is passed as a slot prop back up, then mutating a property of that item did not result in a rerun. The reason was that derived is using object identity equality, resulting in the value not being updated. To fix it, we use safe-equals in this situations instead.
2 years ago
Dominic Gannaway
b94d72bbfb
fix: improve transition outro easing ( #10190 )
...
* fix: improve transition outro easing
* Update tests
2 years ago
Simon H
1b675c0264
fix: transform textarea and contenteditable binding expressions ( #10187 )
...
fixes #10185
2 years ago
Simon H
b3ba25da94
fix: simplify event delegation logic ( #10169 )
...
* fix: simplify event delegation logic
Only delegate event attributes, and don't take into account bindings/actions while determining that. Never delegate `on:` directives. This simplifies the logic and makes it easier to explain, while avoiding any accidental breaking changes when upgrading from Svelte 4 to 5 without changing code.
Fixes #10165
Related to #9714
* update types
2 years ago
Dominic Gannaway
c628904861
fix: ensure topological order for render effects ( #10175 )
...
* fix: ensure topological order for render effects
* optimize
2 years ago
Dominic Gannaway
05bd922f7f
fix: improve nested effect heuristics ( #10171 )
2 years ago
Dominic Gannaway
0eca0ace94
fix: improve event handling compatibility with delegation ( #10168 )
...
* fix: improve event handling compatibility with delegation
* fix
* lint
* add test
2 years ago
Dominic Gannaway
a26012fc62
fix: prevent transition action overfiring ( #10163 )
2 years ago
Ben McCann
aecd47e8df
chore: upgrade prettier to 3.1 ( #10134 )
2 years ago
Dominic Gannaway
ef3e0721fc
fix: improve intro transitions on dynamic mount ( #10162 )
...
* fix: improve intro transitions on dynamic mount
* fix: improve intro transitions on dynamic mount
* fix: improve intro transitions on dynamic mount
2 years ago
Dominic Gannaway
ab13356008
fix: improve code generation ( #10156 )
...
* fix: improve code generation
* format
2 years ago
Dominic Gannaway
ff8dff993d
fix: improve ssr template code generation ( #10151 )
...
* fix: improve ssr template code generation
* lint
2 years ago
Dominic Gannaway
e2fc04d0d5
fix: improve template literal expression output generation ( #10147 )
...
* fix: improve template literal expression output generation
* do not proxy template literal
2 years ago
Dominic Gannaway
08579461b1
fix: improve animation heuristics ( #10119 )
...
* fix: improve animation heuristics
better fix
better fix
* improve-animation
* more fixes
* use rAF
* feedback
* fix absolute positioning
* fix more
* revert
* more fixes
2 years ago
Simon Holthausen
f3265c580c
chore: better test case
...
closes #10129
2 years ago
Simon Holthausen
dda4ad510f
fix: silence false positive state warning
...
the continue was essentially a noop because it targeted the wrong for loop
2 years ago
Simon H
aa5a62396a
fix: legacy reactive dependencies tweak ( #10128 )
...
take into account member expressions when determining legacy reactive dependencies
fixes #9954
2 years ago
Dominic Gannaway
901cfc9f15
fix: improve ssr template literal generation ( #10127 )
2 years ago
navorite
cd2263fdab
fix: infer `svg` namespace correctly ( #10027 )
...
Add recursive check for logic blocks, ignore things such as ConstTags and Comments
closes #10025
---------
Co-authored-by: Simon Holthausen <simon.holthausen@vercel.com>
2 years ago
Dominic Gannaway
f5dc562ee7
fix: ensure nested blocks are inert during outro transitions ( #10126 )
...
* fix: ensure nested blocks are inert during outro transitions
* lint
2 years ago
Simon H
3624a4c2a0
feat: allow modifiying derived props ( #10080 )
...
It's an unnecessary restruction because it can be worked around (hide it behind a getter/setter), already works for bind:x and prevents valid use cases
2 years ago
Nguyen Tran
1ff9c0f2b9
fix: support destructurings containing await ( #9962 )
...
Adds a traversion mechanism to found out if destructured expressions contain await
Fixes #9686
Fixes #9312
Fixes #9982
2 years ago
Dominic Gannaway
d16f17c306
fix: improve signal consumer tracking behavior ( #10121 )
2 years ago
Simon H
527d099a09
fix: transform `{@render ...}` expression ( #10116 )
...
fixes #10059
2 years ago
Dominic Gannaway
05789daff9
fix: allow transition undefined payload + microtask queue handling ( #10117 )
...
* fix: allow transition undefined payload
* cleanup
* cleanup
* add microtask queue handling
2 years ago
Simon H
b3d185da29
fix: correctly call exported state ( #10114 )
...
fixes #10104
also cleans up related code and adds support for destructuring `$state.frozen`
2 years ago
Simon H
92408e1506
fix: get spread + bind working ( #10091 )
...
fixes #10033
2 years ago
Dominic Gannaway
ebbb5dd655
fix: improve internal signal dependency checking logic ( #10111 )
2 years ago
Dominic Gannaway
ddd7926240
fix: improve key block reactivity detection ( #10092 )
2 years ago
Dominic Gannaway
94aab90bd1
fix: improve text node output ( #10081 )
...
* fix: improve text node output
* revert
2 years ago
navorite
3c6977add3
fix: improve style parser whitespace handling ( #10077 )
...
allow whitespace, allow comments
fixes #10073
2 years ago
Simon H
570884eabd
fix: spread attributes reactivity improvements ( #10071 )
...
- the objects could contain getters with reactive values, so we play it safe and assume they're always reactive - fixes #10065
- isolate spreads with call expression similar to how we do it with other effects -fixes #10013
2 years ago
Simon H
2133d7d67a
fix: support TS satisfies operator ( #10068 )
...
fixes #9606
2 years ago
Simon H
15d6308d60
fix: catch delegated events from elements moved outside the container ( #10060 )
...
fixes #9777
2 years ago
Simon H
8a8505928e
fix: deeply unstate objects passed to inspect ( #10056 )
...
When doing `$inspect({ x, y })`, both `x` and `y` are now unstated if they are signals, compared to before where `unstate` was only called on the top level object, leaving the proxies in place which results in a worse debugging experience.
Also improved typings which makes it easier to find related code paths.
2 years ago
Simon H
e46a71e8a3
fix: handle pseudo class elements with content ( #10055 )
...
closes #9398 (the other things in that issue are already addressed)
closes #10019
2 years ago
navorite
6d65b2f8ad
fix: improve parsing of `:nth-of-type(xn+b)` ( #9970 )
...
closes #9969
this also fixes the following along the way:
the + in nth-of-type(+xn-b) would be parsed as a combinator.
invalid cases like these are not allowed anymore:
b(+/-)b
-ax
-ax-b
-b
2 years ago
Dominic Gannaway
1e33ed5bb9
fix: ensure if block is executed in correct order ( #10053 )
...
* fix: ensure if block is executed in correct order
* alternative approach
* improve algo
* optimize
* lint
2 years ago
navorite
d56223b162
fix: improve script `lang` attribute detection ( #10046 )
...
closes #10038
2 years ago
Jeremy Deutsch
346041f454
chore: skip generating $.proxy() calls for more expressions ( #9979 )
...
* chore: skip emitting $.proxy() calls for more expressions
* Update pretty-ties-help.md
---------
Co-authored-by: Dominic Gannaway <trueadm@users.noreply.github.com>
2 years ago
Rich Harris
2ad5e53d53
remove unnecessary test ( #10008 )
...
Co-authored-by: Rich Harris <rich.harris@vercel.com>
2 years ago
Holger Dal Mogensen
8a013c4cc6
fix: transition parameters are not reactive ( #9836 )
...
* test: add tests of transitions in new runtime
* fix: move evaluation of props
* format
* add changeset
2 years ago
Tom
c0a357c262
fix: support hydrating around `<noscript>` ( #9953 )
...
* add test
* fix: support hydrating around `<noscript>`
* changeset
2 years ago
Nguyen Tran
bd34367660
fix: Add some tests to avoid regression on #8559 ( #9956 )
...
* Add some tests to avoid regression
* Add runes test and remove extra tests
2 years ago
Nguyen Tran
b31946eb08
fix: Backtick now displays with templates ( #9973 )
...
* Add a test for backtick in template
* Put sanitize_template_string and use it everywhere
* Prettier
* Add changeset
2 years ago
Nguyen Tran
5dffe715d3
fix: issue with assiging prop values as defaults of other props ( #9985 )
...
* Fix issue on assiging prop values as defaults of other props
* Prettier
* Add changeset
2 years ago
Dominic Gannaway
75cd1e825c
feat: add $state.frozen rune ( #9851 )
...
* feat: add $state.raw rune
fix typo
fix typo
* add more tests, fix example
* add other test
* change to $state.readonly
* fix readme
* fix validation
* fix more
* improve types
* improve REPL
* switch to $state.frozen
* update docs
* update docs
* update docs
* Update .changeset/dry-clocks-grow.md
Co-authored-by: Ben McCann <322311+benmccann@users.noreply.github.com>
* Update packages/svelte/src/internal/client/runtime.js
Co-authored-by: Ben McCann <322311+benmccann@users.noreply.github.com>
* Update packages/svelte/src/internal/client/runtime.js
* docs
* Update sites/svelte-5-preview/src/routes/docs/content/01-api/02-runes.md
Co-authored-by: Ben McCann <322311+benmccann@users.noreply.github.com>
---------
Co-authored-by: Rich Harris <richard.a.harris@gmail.com>
Co-authored-by: Ben McCann <322311+benmccann@users.noreply.github.com>
Co-authored-by: Rich Harris <rich.harris@vercel.com>
2 years ago
Dominic Gannaway
b8f3c49e5f
fix: improve event delegation handler hoisting ( #9929 )
...
* fix: improve event delegation handler hoisting
* fixes
2 years ago
Dominic Gannaway
59c7487f36
fix: better handle array property deletion reactivity ( #9921 )
2 years ago
Dominic Gannaway
2608e621d6
add test ( #9917 )
2 years ago
Dominic Gannaway
b1efd8c4cd
fix: improve each block fallback handling ( #9914 )
2 years ago
Dominic Gannaway
3a4a09102c
fix: improve whitespace handling ( #9912 )
...
revert
2 years ago
navorite
55656f520d
feat: add support for {@const} inside snippet block ( #9904 )
...
* check for snippet block
* change the error msg
* edit tests
* changeset
* test
2 years ago
Dominic Gannaway
b0511a5966
fix: improve attribute directive reactivity detection ( #9907 )
2 years ago
Dominic Gannaway
4e61db7201
chore: improve readonly prop messaging ( #9901 )
2 years ago
Dominic Gannaway
a9a5b11c78
fix: improve props aliasing ( #9900 )
2 years ago
Dominic Gannaway
0236cf87e7
fix: better support for top-level snippet declarations ( #9898 )
2 years ago
Dominic Gannaway
daa19173b1
fix: improve html tag svg behaviour ( #9894 )
2 years ago
Dominic Gannaway
2ca3c87d18
fix: correctly reflect readonly proxy marker ( #9893 )
2 years ago
Dominic Gannaway
7238e1d3ce
fix: improve each block index handling ( #9889 )
2 years ago
Dominic Gannaway
bdd63c8187
fix: ensure class constructor values are proxied ( #9888 )
...
* fix: ensure class constructor values are proxied
* debugger
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
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
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
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
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
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
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
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
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
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 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
Rich Harris
765d01d76c
correctly inspect derived values ( #9731 )
...
Co-authored-by: Rich Harris <rich.harris@vercel.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
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
Simon H
f88895e955
fix: allow `bind:this` with dynamic type on inputs ( #9713 )
...
fixes #9709
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
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
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
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
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
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 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
Dominic Gannaway
d8d9be39d3
fix: apply correct snippet scope ( #9623 )
2 years ago
Dominic Gannaway
509f92d29e
fix: correctly assign bind:this with multiples ( #9617 )
...
* fix: correctly assign bind:this with multiples
* better fix
* better fix
* lint
* lint
* Update packages/svelte/src/internal/client/render.js
---------
Co-authored-by: Simon H <5968653+dummdidumm@users.noreply.github.com>
2 years ago
Dominic Gannaway
8118efd115
fix: handle undefined bubble events ( #9614 )
...
Fixes #9610
2 years ago
Rich Harris
0283e50070
chore: reuse common templates ( #9601 )
...
#9589 - add comment and space as reusable templates to save a few bytes. We can definitely take this idea further, but this is a base to iterate from.
---------
Co-authored-by: Rich Harris <rich.harris@vercel.com>
Co-authored-by: Simon Holthausen <simon.holthausen@vercel.com>
2 years ago
Simon H
13c6c273c6
fix: prevent false positives when detecting runes mode ( #9599 )
...
Move references from module scope to instance scope if we determined that these references are store subscriptions
fixes #9580
2 years ago
Rich Harris
1f4ae5ef45
chore: remove some unused code ( #9593 )
...
Co-authored-by: Rich Harris <rich.harris@vercel.com>
2 years ago
Dominic Gannaway
cf9130613d
feat: add $effect.active rune ( #9591 )
...
* chore: add $effect.active rune
* chore: add $effect.active rune
2 years ago
Rich Harris
13aef5245b
put nested class warning on the declaration, not the usage site ( #9592 )
...
Co-authored-by: Rich Harris <rich.harris@vercel.com>
2 years ago
Dominic Gannaway
eb0b4dc6e5
chore: add inline new class warning ( #9583 )
...
* chore: add inline new class warning
* Address feedback
* address feedback
* more tests
2 years ago
Simon H
1003acccc4
feat: add Snippet type ( #9584 )
...
* feat: add Snippet type
related to #9447
* one more test
2 years ago
Dominic Gannaway
da15806136
fix: adjust event delegation heuristics ( #9581 )
...
Fixes #9561
2 years ago
Theodore Brown
c011db178b
fix: select enabled option with null value when it matches bound value ( #9550 )
...
Fix select binding when matching enabled option has null value
Fix null option being selected when it doesn't match the bound value
Fixes #9545
2 years ago
Rich Harris
1bc89b5eb6
fix: deconflict generated names against globals ( #9570 )
...
fixes #9559
2 years ago
Rich Harris
945a90b56c
fix: disallow static state fields ( #9577 )
...
closes #9547
2 years ago
Rich Harris
1c48d7cbdc
Typescript each indexed ( #9567 )
...
* failing test
* fix undefined index bug
* Update packages/svelte/src/compiler/phases/1-parse/read/context.js
Co-authored-by: Simon H <5968653+dummdidumm@users.noreply.github.com>
---------
Co-authored-by: Rich Harris <rich.harris@vercel.com>
Co-authored-by: Simon H <5968653+dummdidumm@users.noreply.github.com>
2 years ago
Rich Harris
225a5bfe50
set expression end to typeAnnotation end where appropriate ( #9566 )
...
* set expression end to typeAnnotation end where appropriate
* fix
* woops
* lint
---------
Co-authored-by: Rich Harris <rich.harris@vercel.com>
Co-authored-by: Simon H <5968653+dummdidumm@users.noreply.github.com>
2 years ago
Rich Harris
459e4ff006
feat: native TypeScript support ( #9482 )
...
* add typescript support to parser
* fix
* unnecessary
* various
* transform assertions
* tweak
* prettier
* robustify
* fix
* see if this fixes the prettier stuff
* only parse ts in ts mode
* fixes
* fix
* fix
* fix
* fix
* more
* check
* changeset
* allow type annotations on all contexts
---------
Co-authored-by: Rich Harris <rich.harris@vercel.com>
2 years ago
Simon H
9926347ad9
fix: adjust static attribute regex ( #9552 )
...
Svelte 5 version of #9551
2 years ago
gtmnayan
550cecf311
chore: shave off more bytes ( #9540 )
...
* shavings
* dro unused max safe int
* get rid of array_ref and object_ref
* extract STATUS_MASK
* fix test
* revert is_controlled change
* more run_all
2 years ago
Dominic Gannaway
b0588d7888
fix: address intro transition bugs ( #9528 )
...
* fix: address intro transition bugs
* fix: address intro transition bugs
2 years ago
Dominic Gannaway
298da65ed6
chore: more signal fine-tuning ( #9531 )
...
* chore: opt for two signal data-structures to reduce memory usage
2 years ago
Dominic Gannaway
f886bc133e
fix: handle intro global transition propagation correctly ( #9515 )
...
* fix: stop propagating global intros
* fix: stop propagating global intros
* add test
2 years ago
Dominic Gannaway
3b2e6eac9a
fix: address unowned propagation signal issue ( #9510 )
...
* fix: address unowned propagation signal issue
* Add comments
2 years ago
Dominic Gannaway
378093941d
fix: ensure we visit assignments during compilation ( #9511 )
...
* fix: add missing visit for expressions
* fix: add missing visit for expressions
* Add test
2 years ago
Simon H
4418ba6535
fix: add top level snippets to instance scope ( #9467 )
...
fixes #9460
2 years ago
Simon H
1beb5e8dc9
fix: tweak script/style tag parsing/preprocessing logic ( #9502 )
...
Related to sveltejs/language-tools#2204 / sveltejs/language-tools#2039
The Svelte 5 version of #9486 and #9498
---------
Co-authored-by: Rich Harris <richard.a.harris@gmail.com>
Co-authored-by: Rich Harris <rich.harris@vercel.com>
2 years ago
Rich Harris
c827b0c772
fix: only treat instance context exports as accessors ( #9500 )
...
* failing test for #9499
* limit export handling to instance context
* changeset
---------
Co-authored-by: Rich Harris <rich.harris@vercel.com>
2 years ago
Rich Harris
ede1edd314
fix: emit useful error on invalid binding to derived state ( #9497 )
...
closes #9495
2 years ago
Tee Ming
37f249350c
allow setting files ( #9463 )
2 years ago
Dominic Gannaway
60c273eb76
Revert "fix: address bug in before/after update" ( #9480 )
...
* Revert "fix: address bug in before/after update (#9448 )"
This reverts commit 9eb969ddd4
.
* add changeset
2 years ago
Simon H
c1f6ee096d
fix: handle dynamic selects with falsy select values ( #9471 )
...
when options are added later, we need to ensure the select value still stays in sync
fixes #9412
2 years ago
Rich Harris
d749685b0f
fix: rework directive name handling ( #9470 )
...
* move snapshot test to a runtime test
* handle dynamic cases
* huh
---------
Co-authored-by: Rich Harris <rich.harris@vercel.com>
2 years ago
Paolo Ricciuti
6f3dc04c82
fix: allow member access on directives ( #9462 )
...
fixes #9445
2 years ago
Dominic Gannaway
9eb969ddd4
fix: address bug in before/after update ( #9448 )
...
* fix: address bug in before/after update
fix: address bug in before/after update
* Add changeset
* use every instead of filter - more explicit and enables early-exit from the loop
* Update logic and comment
---------
Co-authored-by: Rich Harris <rich.harris@vercel.com>
2 years ago
Rich Harris
6f6c3a0787
fix: only escape attribute values for elements, not components ( #9456 )
...
* only escape attribute values for elements, not components - closes #9454
* changeset
---------
Co-authored-by: Rich Harris <rich.harris@vercel.com>
2 years ago
Paolo Ricciuti
e90ded677e
fix: allow svelte:self in snippets ( #9439 )
...
* fix: allow svelte:self in snippets
* Create funny-wombats-argue.md
2 years ago
Dominic Gannaway
73ae5ef5bc
fix: tighten up event attributes and hoisting logic ( #9433 )
...
- add event delegation to spread_attributes
- add event attributes to spread
- don't delegate when bindings/actions on the same element in order to preserve backwards compatibility of ordering
- don't hoist identifiers when one of them is used in an event that is not delegateable
---------
Co-authored-by: Simon Holthausen <simon.holthausen@vercel.com>
2 years ago
Dominic Gannaway
cf63220a0e
fix: ensure keyed fallback to indexed ( #9441 )
...
Fixes #9408 . Ensures that if we have a key that matches the index, that we fallback to using an indexed each block.
2 years ago
Dominic Gannaway
da37c928ef
fix: support dynamic attributes containing call expressions ( #9443 )
...
Fixes #9403 . We weren't taking into account the containment of call expressions logic before.
2 years ago
Simon H
9aa06bdf9e
fix: check that snippet is not rendered as a component ( #9423 )
...
Co-authored-by: Rich Harris <rich.harris@vercel.com>
2 years ago
Dominic Gannaway
5768df1300
chore: remove selector api ( #9426 )
...
* chore: remove selector api
2 years ago
Dominic Gannaway
17e6c4f834
fix: address runtime effect issues ( #9417 )
...
* Fix runtime effect issues
* Prettier
* Add changeset
* Fix operations
* Update .changeset/khaki-mails-draw.md
* more tweaks
* more tweaks
---------
Co-authored-by: Simon H <5968653+dummdidumm@users.noreply.github.com>
2 years ago
Simon H
9a99554379
breaking: remove Component type, keep using SvelteComponent instead ( #9413 )
...
I came to the conclusion that when we're making up arbitrary types, we might as well keep the old class. That way:
- one less thing to worry about (language tools and other tooling basically can continue to spit out SvelteComponent )
- we can more clearly mark $set , the constructor etc as being deprecated and no longer functioning unless you use that legacy compatibility mode
- much more ergonomic to type for the user:
- const someInstance: SvelteComponent<..> instead of const someInstance: ReturnType<typeof Component<..>>
- If you're using generics, you can do export class MyComponent<T> extends SvelteComponent<{ prop: T }> {} instead of having to type out the whole function in a way that I'm not even sure how to do with generics
2 years ago
gtmnayan
7a84e78b4d
fix: add snippet symbol to children prop ( #9395 )
...
* add snippet symbol to children prop
* fix error message for snippet validation
* changeset
2 years ago
Rich Harris
2aacfad9ae
fix: exclude internal props from spread attributes ( #9384 )
...
* exclude internal props from spread attributes
* changeset
* tighten up
---------
Co-authored-by: Rich Harris <rich.harris@vercel.com>
2 years ago
Simon Holthausen
51394a4834
docs: note more breaking changes
2 years ago
Simon Holthausen
fe8a9ce31d
breaking: init Svelte 5
...
Co-authored-by: Rich Harris <rich.harris@vercel.com>
Co-authored-by: Simon Holthausen <simon.holthausen@vercel.com>
Co-authored-by: Dominic Gannaway <dg@domgan.com>
2 years ago