Commit Graph

1316 Commits (f8bf2826ab8b1c443363fb90d22613713501b396)

Author SHA1 Message Date
Paolo Ricciuti d1cac703c0
fix: don't print errors on migration errors (#13754)
11 months ago
Simon H a6e416da8c
fix: mark `:has` selectors with multiple preceding selectors as used (#13750)
11 months ago
adiGuba ad578a5da5
fix: @debug does not work with proxied-state (#13690)
11 months ago
Simon H 28c8d2b95d
fix: do not comment out unused selectors that are inside an unused selector (#13746)
11 months ago
Simon H a08f063b37
fix: more accurately detect `$derived` migration use cases (#13740)
11 months ago
Simon H 8a06d051e8
fix: do not add jsdoc if no types found (#13738)
11 months ago
Dominic Gannaway be02b7e54c
event_context (#13737)
11 months ago
Simon H 8251bae8db
fix: better children snippet / default slot interop (#13734)
11 months ago
Paolo Ricciuti e43176906f
fix: don't blank css on migration error (#13703)
11 months ago
Paolo Ricciuti 6ad017ffc5
fix: use typedef for JSDoc props and maintain comments (#13698)
11 months ago
Dominic Gannaway 2ca9a81679
fix: ensure user effects are correctly executed on initialisation (#13697)
11 months ago
Dominic Gannaway ae10f4d37c
breaking: state mutations inside the template are no longer allowed (#13660)
11 months ago
Paolo Ricciuti 18c5a5ba2d
fix: bail out if slot name changes and $$slots assigned to variable (#13678)
11 months ago
Paolo Ricciuti ab9eeb46fe
fix: migrated snippet shadowing prop and let directive removal (#13679)
11 months ago
Dominic Gannaway 61391c8704
fix: ensure migrate correctly handles named slots (#13676)
11 months ago
Dominic Gannaway c9d85c2d52
fix: migrate reactive statements with inner blocks (#13675)
11 months ago
Dominic Gannaway f398929fdd
fix: correct migration of uninitialised state (#13673)
11 months ago
Paolo Ricciuti 0598f2bbe1
fix: reset `reset_element` in `render` to prevent runtime error (#13669)
11 months ago
Paolo Ricciuti 9f930f4e9b
feat: tell users of `@migration-task` (#13668)
11 months ago
Paolo Ricciuti 969e6aa750
feat: add `migration-task` for impossible to migrate slots (#13658)
11 months ago
Paolo Ricciuti 0dcd4f6c6e
feat: add `migration-task` comment after errors (#13659)
11 months ago
Paolo Ricciuti b352f08e9d
fix: migrating rest props type includes props types (#13632)
11 months ago
Dominic Gannaway 193cc37f7a
fix: correctly applies autofocus to static elements (#13648)
11 months ago
Dominic Gannaway e21e624fff
chore: avoid reporting inspections when an exception occurs (#13601)
11 months ago
adiGuba bb245445fc
fix : $.component() break transition (#13646)
11 months ago
Paolo Ricciuti 372884cf99
fix: use `internal_set` in `await` block (#13642)
11 months ago
Paolo Ricciuti 440017d442
fix: better migration for leading and trailing comments (#13630)
11 months ago
Dominic Gannaway 2070c8a166
breaking: disallow state mutations in logic block expression (#13625)
11 months ago
Dominic Gannaway 75fecf82a6
fix: ensure each block consistency to internal mutations to the collection (#13614)
11 months ago
Dominic Gannaway ed790ee166
fix: ensure await block scope transforms are isolated (#13622)
11 months ago
Dominic Gannaway 6a38bbe8a3
chore: improve derived ownership model (#13623)
11 months ago
Paolo Ricciuti 48f0bfc73f
fix: ensure inserted code is preserved during migration (#13617)
11 months ago
Dominic Gannaway 68a2263415
fix: ensure local prop value is read during teardown (#13611)
11 months ago
Simon H 829be3d611
fix: take snippets into account when scoping CSS (#13589)
11 months ago
Simon H 6f03561ae4
breaking: scope :not(...) selectors (#13568)
11 months ago
Simon H 81f28ccf5d
fix: handle leading combinators within `:has(...)` (#13606)
11 months ago
Simon H eb6488cd90
breaking: scope `:has(...)` selectors (#13567)
11 months ago
Dominic Gannaway a2ece29b6e
fix: ensure proxied arrays correctly update their length upon deletions (#13549)
11 months ago
Dominic Gannaway 4dcac41c10
fix: cleanup non-branch effects created inside block effects (#13600)
11 months ago
Dominic Gannaway 7e6d93d1c3
fix: ensure effects destroy owned deriveds upon teardown (#13563)
11 months ago
Dominic Gannaway d220edd754
fix: strip BOM character from beginning of input (#13548)
11 months ago
adiGuba 531ff6243c
fix: do no rerun the each block when array change from empty to empty (#13553)
11 months ago
Rich Harris a0a31ed0d0
fix: use `analysis.name` when migrating `<svelte:self>` (#13544)
11 months ago
Simon H 06c9e5864b
fix: exclude custom elements from HTML tree validation (#13540)
11 months ago
Simon H 6ed3ca380b
fix: make immutable option work more correctly (#13526)
11 months ago
Dominic Gannaway 0466e40680
breaking: use `<svelte-css-wrapper>` instead of `<div>` for style props (#13499)
11 months ago
Dominic Gannaway 7ac0d8e7cd
fix: ensure set_text applies coercion to objects before diff (#13542)
11 months ago
Paolo Ricciuti 8148e63ced
fix: apply class/style directives after attributes (#13535)
11 months ago
Paolo Ricciuti 3d30067370
fix: mark custom element with virtual class attribute as dynamic (#13435)
11 months ago
Dominic Gannaway 765ca030d6
fix: further improve reconciliation of inert each block rows (#13527)
11 months ago
Paolo Ricciuti db305a07f2
fix: allow imports from `svelte/legacy` in SSR (#13523)
11 months ago
Paolo Ricciuti 14ecedf33b
feat: migrate `svelte:self` (#13504)
12 months ago
Simon H 687d9dbef2
feat: migrate slot usages (#13500)
12 months ago
Paolo Ricciuti aa3f002465
feat: better migration of single-assignment labeled statements (#13461)
12 months ago
Paolo Ricciuti 49a09081f0
fix: correctly migrate `$$slots` with bracket member expressions & slots with static props (#13468)
12 months ago
Dominic Gannaway 3ce0384e9e
fix: strip internal properties from rest props during SSR (#13492)
12 months ago
Simon H e8508526e7
feat: enable snippets to fill slots (#13427)
12 months ago
Simon H 5675067e2b
fix: allow combinator at start of nested CSS selector (#13440)
12 months ago
Rich Harris d77905d788
fix: exclude type-only props from instance exports when migrating (#13485)
12 months ago
Simon H 6c1e462927
fix: mark nesting selectors of global parents as used (#13445)
12 months ago
Paolo Ricciuti c716329806
feat: fix accessors and support migration of accessors (#13456)
12 months ago
Paolo Ricciuti dfe0138e0d
fix: various `svelte:component` migration bugs (#13473)
12 months ago
Paolo Ricciuti a51b3df4aa
feat: support migration of self closing tags (#13479)
12 months ago
Paolo Ricciuti 073ef17028
fix: move labeled statements that need reordering after props insertion point (#13480)
12 months ago
Paolo Ricciuti 344808a719
fix: migrate `$$Props` without creating non existent props (#13484)
12 months ago
Paolo Ricciuti b665425e5d
feat: support migration of `svelte:component` (#13437)
12 months ago
Paolo Ricciuti 33ee958087
chore: refactor migration composition logic (#13424)
12 months ago
Dominic Gannaway 2531658046
fix: ensure use directives execute in the correct sequence (#13384)
12 months ago
Paolo Ricciuti d4230049da
fix: avoid migrating slots in custom elements (#13406)
12 months ago
Paolo Ricciuti 30c438c279
fix: don't consider children of rules when checking whether they are used or not (#13410)
12 months ago
Rich Harris e3e8f22a6f
fix: treat `<img>` alt attribute as content for a11y labelling purposes (#13411)
12 months ago
Simon H 505e8caa23
fix: blank CSS contents while migrating (#13403)
12 months ago
adiGuba 9627426f7f
fix: ensure single script and scripts in loops execute properly (#13386)
12 months ago
Paolo Ricciuti b73052f590
fix: make ownership widening more robust to userland proxies (#13377)
12 months ago
Dominic Gannaway 3ee8e0b14c
fix: validation should not fail on anonymous declarations (#13393)
12 months ago
Dominic Gannaway d309023cb2
fix: improve reconciliation of inert each block rows (#13379)
12 months ago
Dominic Gannaway 0b3fd4e42d
fix: properly remove root anchor node on unmount (#13381)
12 months ago
Paolo Ricciuti 0f6cc2b1ed
fix: migrate events to be more inline with svelte 4 (#13362)
12 months ago
Paolo Ricciuti c5fa0b46e1
fix: missing space when importing run as in migration (#13361)
1 year ago
Rich Harris 9e511b141c
fix: make each items reassignable (#12257)
1 year ago
Rich Harris b3f3915180
fix: set strings as attributes, non-strings as properties if property exists (#13327)
1 year ago
Rich Harris 2553932c2c
fix: only warn on context="module" in runes mode (#13332)
1 year ago
Rich Harris d6ab12ae76
feat: deprecate `<svelte:self>` in runes mode (#13333)
1 year ago
Dominic Gannaway db6545d173
fix: keep bound inputs in sync in runes mode (#13328)
1 year ago
Rich Harris 5d56c592ff
fix: delete transformers shadowed by unreassigned state (#13316)
1 year ago
Rich Harris 1d1e4aeeb1
fix: attach effects-inside-deriveds to the parent of the derived (#13309)
1 year ago
Simon H b23516121b
fix: handle `$$Props` interface during migration (#13305)
1 year ago
Simon H d338e8083f
fix: simplify and robustify appending styles (#13303)
1 year ago
Paolo Ricciuti e3c56fab4f
fix: correctly migrate sequence expressions (#13291)
1 year ago
Dominic Gannaway 09527fd190
fix: avoid disconnecting deriveds that are still active (#13292)
1 year ago
James Glenn c229e0f80b
feat: a11y warning for `<button>` / `<a>` without aria-label and content (#13130)
1 year ago
Maxime LUCE 5210ae2610
fix: allow component to be mounted in iframe (#13225)
1 year ago
Dominic Gannaway b624380c45
fix: ensure correct parent effect is associated with render effects (#13274)
1 year ago
Paolo Ricciuti 3864229418
fix: separate `template_effect` for dynamic class/style directive with dynamic attributes (#13171)
1 year ago
Dominic Gannaway 36a73fa794
fix: avoid flushing sync with $inspect (#13239)
1 year ago
Dominic Gannaway 3c97c0a1a1
fix: ensure function calls to identifiers are made reactive (#13264)
1 year ago
Simon H 9864138022
fix: escape more template-literal-related characters (#13262)
1 year ago
Simon H d9369d8e30
fix: tighten up `$` prefix validation (#13261)
1 year ago
Rich Harris 355730cc2c
chore: add missing test for #13158 (#13255)
1 year ago
Leon Radley 6ed45db20f
fix: add document and window to svelte/events on types. (#13260)
1 year ago
wackbyte e3ad1acc90
fix: follow spec for `customElement` option (#13247)
1 year ago
adiGuba 501f415190
fix: disable promise callback when {#await} is destroyed (#13241)
1 year ago
Simon H 47918328d7
fix: migrate `$$slots.default` correctly (#13238)
1 year ago
Ben McCann dffeef179e
perf: inline module variables into template (#13075)
1 year ago
Simon H a6df4ebfcc
feat: add infinite loop effect callstack (#13231)
1 year ago
Lucas Garron 80e30f7001
fix: support hydrating elements with properties whose getters throw (#13211)
1 year ago
Simon H 1a9d8a509c
fix: allow `&` to appear at the top when inside a `:global(...)` (#13215)
1 year ago
Paolo Ricciuti 09dff9bde2
fix: allow custom element events on slot to bubble inside custom element (#13222)
1 year ago
Simon H 804b714096
fix: correctly validate nested if block tags (#13218)
1 year ago
Simon H 7998f4ce54
fix: allow more characters in the unicode range as component identifiers (#13198)
1 year ago
Paolo Ricciuti 3d5702aa8f
fix: avoid creating unnnecessary deriveds for text nodes with call (#13206)
1 year ago
Dominic Gannaway 93f8329b1b
fix: ensure $inspect effects are fine-grain (#13199)
1 year ago
Dominic Gannaway a7a477804e
fix: ensure StyleDirective and ClassDirective are marked as dynamic (#13205)
1 year ago
Paolo Ricciuti e9dc118eb7
fix: allow for nesting selector in pseudoclasses (#13209)
1 year ago
Dominic Gannaway 363f4a06c8
fix: ensure locally mutated bindable props persist with spreading props (#13190)
1 year ago
Dominic Gannaway 56f41e1d96
fix: ensure signal graph is consistent before triggering $inspect signals (#13153)
1 year ago
Paolo Ricciuti 941f83b5a8
fix: don't show `state_referenced_locally` warning on types (#13177)
1 year ago
Simon H 3808935f51
fix: widen ownership upon property access if necessary (#13175)
1 year ago
Dominic Gannaway fd7e8b70cf
fix: ensure unowned derived signals correctly re-connect to graph (#13184)
1 year ago
Simon H c372dd864d
fix: ensure inner script tags are properly removed (#13152)
1 year ago
Paolo Ricciuti 53a90fb8c7
fix: visit expression for `svelte:component` references (#13151)
1 year ago
Dominic Gannaway 3b88b88886
fix: prevent nullish snippet for rendering empty content (#13083)
1 year ago
Rich Harris dfe23a1233
fix: revert #13048 (#13132)
1 year ago
Rich Harris 2b362ddc63
Revert "fix: hoist imports on top (#13082)" (#13131)
1 year ago
Dominic Gannaway 2d37826ee1
fix: ensure $host rune correctly compiles in variable declarations (#13127)
1 year ago
Paolo Ricciuti 71c1227513
fix: remove unnecessary update assignments (#13113)
1 year ago
Rich Harris 194570dc70
fix: error at compile time on unsupported TypeScript language features (#12982)
1 year ago
Paolo Ricciuti 81b32d8b5a
fix: hoist imports on top (#13082)
1 year ago
Paolo Ricciuti 0d51474e29
fix: error on duplicate style and class directive (#13097)
1 year ago
Dominic Gannaway 6f855e627f
fix: ensure reactivity system remains consistent with removals (#13087)
1 year ago
Dominic Gannaway b70d12c2e3
fix: render undefined html as the empty string (#13092)
1 year ago
Simon H d776e522d2
fix: ensure reactive graph is fully traversed in the marking phase for non-runes mode (#13059)
1 year ago
Rich Harris 0203eb319b
fix: insert comment before text in an each block, to prevent glued nodes (#13073)
1 year ago
Rich Harris 588d636ad6
feat: better generated each block code in SSR mode (#13060)
1 year ago
Rich Harris 77096a1f30
fix: error on invalid element name (#13057)
1 year ago
Ben McCann 5facd5b476
chore: put module variables above template for later inlining (#13048)
1 year ago
Rich Harris a1d1012e9d
chore: tidy up parser (#13045)
1 year ago
Dominic Gannaway 9cb9692aea
fix: ensure event currentTarget is reset after propagation logic (#13042)
1 year ago
Rich Harris e73e63ed11
fix: use WAAPI to control timing of JS-based animations (#13018)
1 year ago
Rich Harris 93ffb4dbeb
chore: squelch warnings, robustify (#13034)
1 year ago
Rich Harris 8cda791d5a
fix: prevent binding to imports (#13035)
1 year ago
Simon H e03dae95da
fix: repair `href` attribute mismatches (#13032)
1 year ago
Simon H c4b721584a
chore: repo cleanup (#13029)
1 year ago
Rich Harris bc1624ffc8
chore: configure knip (#13016)
1 year ago
Rich Harris 96117fa44d
fix: join text nodes separated by comments (#13009)
1 year ago
Rich Harris ae27f27810
make internal sources ownerless (#13013)
1 year ago
Dominic Gannaway 975918c602
fix: ensure assignments to state field inside constructor trigger effect (#12985)
1 year ago
Simon H 72b066b7fd
feat: allow non-synchronous legacy component instantiation (#12970)
1 year ago
Dominic Gannaway 21081d0fa5
fix: ensure $inspect works with SvelteMap and SvelteSet (#12994)
1 year ago
Rich Harris b4382e422d
fix: properly transform destructured `$derived.by` declarations (#12984)
1 year ago
Dominic Gannaway 5bdf71639e
fix: correctly hydrate empty raw blocks (#12979)
1 year ago
Rich Harris cadc0dceca
feat: only traverse trailing static nodes during hydration (#12935)
1 year ago
Simon H 75759dbeae
fix: allow deleting non-existent `$$restProps` properties (#12971)
1 year ago
Rich Harris 8c1d439a36
fix: remove buggy `validate_dynamic_component` check (#12960)
1 year ago
Simon H 01d32e53a9
fix: more robust handling of var declarations (#12949)
1 year ago
Rich Harris 9f962d6f81
breaking: remove `$state.link` (#12943)
1 year ago
Rich Harris af7f90020d
fix: ensure `$store` reads are properly transformed (#12952)
1 year ago
Simon H 732dbf7fa9
breaking: deprecate `context="module"` in favor of `module` (#12948)
1 year ago
Rich Harris 0b51ff04b0
breaking: remove `$state.link` callback (#12942)
1 year ago
Simon H 419546f29b
fix: don't skip custom elements with attributes (#12939)
1 year ago
Gautier Ben Aïm 9c2ca693a5
fix: ensure await scope shadowing is computed in the correct order (#12945)
1 year ago
Dominic Gannaway 63ec2e2e88
feat: adds $state.link rune (#12545)
1 year ago
Paolo Ricciuti 02c86b1973
feat: error on invalid component name (#12821)
1 year ago
Rich Harris 23bce2da20
feat: skip static nodes (#12914)
1 year ago
Rich Harris 0812b10100
breaking: overhaul proxies, remove `$state.is` (#12916)
1 year ago
Rich Harris 78b55c4130
fix: exclude local declarations from non-reactive property warnings (#12909)
1 year ago
Dominic Gannaway aa5c4421cf
fix: ensure nullish expressions render empty text (#12898)
1 year ago
Rich Harris 1f99935b99
feat: more efficient checking for missing SSR text node (#12891)
1 year ago
Dominic Gannaway 7eabce8c96
chore: improve the performance of set_text for single expressions (#12893)
1 year ago
Dominic Gannaway 94ed09628d
fix: correctly ensure prop bindings are reactive when bound (#12879)
1 year ago
Dominic Gannaway 817558828e
chore: refactor internal signal dependency heuristic (#12881)
1 year ago
Paolo Ricciuti 33a159cd61
fix: allow store as initial value for props in ssr (#12885)
1 year ago
Rich Harris 39c559a0d7
feat: better destructuring assignments (#12872)
1 year ago
Rich Harris 6448e07521
breaking: remove foreign namespace (#12869)
1 year ago
Rich Harris d421838272
feat: more efficient text-only fragments (#12864)
1 year ago
Paolo Ricciuti 03945f56b4
fix: hoist reactive imports to the module (#12845)
1 year ago
Rich Harris 50b905a531
fix: skip unnecessary `$$legacy` flag (#12850)
1 year ago
Rich Harris 57a4b5d19c
feat: better compiler warnings for non-reactive dependencies of reactive statements (#12824)
1 year ago
Rich Harris 0a06a3f2b6
feat: skip over static subtrees (#12849)
1 year ago
Rich Harris 6b6f915f9f
fix: omit `$$index` parameter where possible (#12851)
1 year ago
Oscar Dominguez 90334c812c
fix: avoid throwing `store_invalid_subscription_module` for runes (#12848)
1 year ago
Dominic Gannaway dc787be550
chore: improve signal perf by using Set rather than array for reactions (#12831)
1 year ago
Dominic Gannaway 873a184b41
fix: ensure each key validation occurs for updates (#12836)
1 year ago
Rich Harris c51dfcfc00
feat: warn on invalid event handlers (#12818)
1 year ago
Rich Harris dfb6755514
feat: add compiler error when encountering a $-prefixed store value outside a `.svelte` file (#12799)
1 year ago
Rich Harris 7cbd188f80
breaking: replace `$state.frozen` with `$state.raw` (#12808)
1 year ago
Dominic Gannaway fa5d3a9002
fix: ensure inspect effects are skipped from effect parent logic (#12810)
1 year ago
Rich Harris a5d349ebe5
feat: compiler-driven each block reactivity (#12744)
1 year ago
Paolo Ricciuti cbcd7617c4
feat: deprecate `svelte:component` (#12694)
1 year ago
Rich Harris 5094cb9e89
feat: treat tag with `.` as a component, even if lowercase (#12798)
1 year ago
Theodor Steiner 7ae21ea97d
feat: make <svelte:option> customElement configuration's tag property optional (#12751) (#12754)
1 year ago
Dominic Gannaway ba116a1b43
fix: propagate custom element component prop changes (#12774)
1 year ago
Rich Harris 57a7b0cd48
chore: transformers (#12780)
1 year ago
Dominic Gannaway d8954d7add
fix: ensure custom elements do not sync flush on mount (#12787)
1 year ago
Dominic Gannaway 19819d0477
fix: provide more hydration mismatch coverage (#12755)
1 year ago
Dominic Gannaway c32a91891f
fix: ensure event handlers referencing $host are not hoisted (#12775)
1 year ago
ottomated 7de3e3b703
feat: simplify derived object destructuring (#12781)
1 year ago
ottomated d6e26c0953
chore: speed up exclude_from_object (#12783)
1 year ago
Rich Harris ec8a029db4
fix: skip `is_standalone` optimisation for dynamic components (#12767)
1 year ago
Paolo Ricciuti 60148d3352
fix: order of arguments for `push_element` in `svelte:element` (#12763)
1 year ago
Dominic Gannaway 1942f87ed9
fix: improve prop binding warning validation for stores (#12745)
1 year ago
Dominic Gannaway d06174e461
chore: add error for derived self referencing (#12746)
1 year ago
Dominic Gannaway bd9a2d2077
fix: ensure unowned deriveds correctly update (#12747)
1 year ago
Rich Harris 59ea0b9e13
fix: better event handling (#12722)
1 year ago
Dominic Gannaway 76cb89c750
fix: allow deletion of $$restProps properties (#12736)
1 year ago
Rich Harris e66416bec7
feat: more efficient code generation when referencing globals (#12712)
1 year ago
Paolo Ricciuti 93cfa6cd69
fix: add css hash to custom element rendered with `svelte:element` (#12715)
1 year ago
Paolo Ricciuti 3286617e3c
feat: function called as tagged template literal is reactively called (#12692)
1 year ago
Paolo Ricciuti e4e66e237f
feat: allow for `svelte:options` css injected (#12660)
1 year ago
Paolo Ricciuti 70197fe4ca
fix: maintain imports in modules (#12704)
1 year ago
Simon H 9eca3d0736
fix: allow nested `<dt>`/`<dd>` elements if they are within a `<dl>` element (#12681)
1 year ago
Simon H 01e7845180
fix: always synchronously call `bind:this` (#12679)
1 year ago
Paolo Ricciuti 64d2a2e20c
feat: allow ignoring runtime warnings (#12608)
1 year ago
Rich Harris 71c373d0a5
chore: refactor analysis (#12651)
1 year ago
Simon H 8be7dd558b
feat: make `<svelte:component>` unnecessary in runes mode (#12646)
1 year ago
Simon H 00e8ebde1d
fix: widen `ComponentProps` constraint to accept more component shapes (#12666)
1 year ago
Simon Holthausen d20e064674 chore: enhance comment on skipped test
1 year ago
Simon Holthausen 7f558290d8 chore: enhance comment on skipped test
1 year ago
Rich Harris 65234b80c0
chore: unified expression metadata (#12644)
1 year ago
Simon H 363535c849
feat: warn on obvious legacy component instantiation (#12648)
1 year ago
Simon H 85f2f161ed
chore: use queue_microtask on `#await` again (#12647)
1 year ago
Paolo Ricciuti 32c4e47060
fix: always set draggable through `setAttribute` to avoid weird behavior (#12649)
1 year ago
Rich Harris 219ba6a71b
fix: error on `bind:this` to each block parameter (#12638)
1 year ago
Simon H 3bff87ac66
chore: tweak html tree validation (#12618)
1 year ago
Simon H c9e9e90659
fix: always close tags when namespace is foreign (#12623)
1 year ago
Simon H 32af9434bc
fix: never set custom element props as attributes (#12622)
1 year ago
Simon H 0f41689916
chore: unskip more tests (#12621)
1 year ago
Rich Harris 97d5cf178f
chore: simplify assignments in server code (#12614)
1 year ago
Rich Harris c66d2cfcc1
feat: better code generation for `let:` directives in SSR mode (#12611)
1 year ago
Simon H 13d86e9019
feat: allow `:global` in more places (alternative) (#12560)
1 year ago
Dominic Gannaway afa3128d2f
breaking: avoid flushing queued updates on mount/hydrate (#12602)
1 year ago
Dominic Gannaway 7a8cf3a9a1
fix: ensure directives run in sequential order (#12591)
1 year ago
Rich Harris 8d139210b7
Revert "breaking: avoid flushing queued updates on mount/hydrate" (#12593)
1 year ago
Dominic Gannaway 20b879717a
breaking: avoid flushing queued updates on mount/hydrate (#12587)
1 year ago
Dominic Gannaway abaa4413df
fix: tweak element_invalid_self_closing_tag to exclude namespace (#12585)
1 year ago
Dominic Gannaway 37f58cf318
fix: apply dynamic event fixes to OnDirective (#12582)
1 year ago
Simon H c0832fd85d
fix: exclude `bind:this` from reactive state validation (#12566)
1 year ago
Dominic Gannaway 64e9f0e5f6
fix: improve dynamic event handling (#12570)
1 year ago
Dominic Gannaway d17755a8b5
fix: ensure dynamic event handlers are wrapped in a derived (#12563)
1 year ago
Dominic Gannaway d73c5b8434
fix: ensure $state.snapshot correctly clones Date objects (#12564)
1 year ago
Simon H e2b75d1a6e
fix: properly update store values (#12562)
1 year ago
Rich Harris 72f5539f51
fix: remove runtime validation of components/snippets, rely on types instead (#12507)
1 year ago
Dominic Gannaway 90d6f573e3
fix: dynamic event delegation for stateful call expressions (#12549)
1 year ago
Rich Harris 6fdfc537e4
fix: update original source in HMR update (#12547)
1 year ago
Rich Harris 73ac4fe456
fix: only emit binding_property_non_reactive warning in runes mode (#12544)
1 year ago
Rich Harris fd5cfd77d8
fix: correctly set filename on HMR wrappers (#12543)
1 year ago
Dominic Gannaway 346cf96599
fix: bail-out of hydrating head if no anchor is found (#12541)
1 year ago
Dominic Gannaway 518d9854f5
chore: add warning for invalid render function of createRawSnippet (#12535)
1 year ago
Rich Harris ff080cbbdc
fix: improve validation error that occurs when using `{@render ...}` to render default slotted content (#12521)
1 year ago
Rich Harris f402d01454
fix: reset hydrate_node after `hydrate(...)` (#12512)
1 year ago
Simon H e02c90209b
fix: make animations more robust to quick shuffling (#12496)
1 year ago
Dominic Gannaway 20e6508c47
fix: ensure $state proxy invokes set accessor if present (#12503)
1 year ago
Rich Harris 2ce2b7d98b
feat: warn if binding to a non-reactive property (#12500)
1 year ago
Simon H dd9ade7736
fix: ensure `bind:this` happens before transitions and animations (#12497)
1 year ago
Simon H 5d82573dcd
fix: properly assign trailing comments (#12471)
1 year ago
Simon H 35ab21df93
fix: don't add imports to hoisted event parameters (#12493)
1 year ago
Simon H 4b8674fe02
fix: ensure async initial store value is noticed (#12486)
1 year ago
Dominic Gannaway ea22840e8c
breaking: remove deep reactivity from non-bindable props (#12484)
1 year ago
Simon H 32b55eaa93
breaking: warn on quotes single-expression attributes in runes mode (#12479)
1 year ago
Simon H 04da87b599
fix: prevent invalid `:global` usage (#12474)
1 year ago
Simon H bc9907aa1c
fix: hydrate multiple `<svelte:head>` elements correctly (#12475)
1 year ago
Simon H 4fd6d29227
fix: assign correct scope to attributes of named slot (#12476)
1 year ago
Simon H 3c3a542c05
fix: error on snippet rest parameters (#12472)
1 year ago
Rich Harris c287bd503d
Raw snippet alternative (#12425)
1 year ago
Rich Harris 07b0db83c5
feat: move dev-time component properties to private symbols (#12461)
1 year ago
Simon H 3d354f0d5c
fix: ensure previous transitions are properly aborted (#12460)
1 year ago
Simon H 436cc99740
fix: always pass original component to HMR wrapper (#12454)
1 year ago
Simon H d9569d052e
feat: add ability to ignore warnings through compiler option (#12296)
1 year ago
Rich Harris c92620dcbe
feat: skip pending block for already-resolved promises (#12274)
1 year ago
Rich Harris b1cf2ece63
fix: defer animations (#12453)
1 year ago
Simon H 141e3e9f92
fix: prevent whitespaces merging across component boundaries (#12449)
1 year ago
Dominic Gannaway 1179b3212c
chore: add signal test (#12450)
1 year ago
BlueGreenMagick 81ed425b5a
fix: allow leading and trailing comments in mustache tag (#11866)
1 year ago
Rich Harris a8dc96eb43
fix: detect mutations within assignments expressions (alternative approach) (#12429)
1 year ago
Ahmad S 879d88f612
fix: show correct errors for invalid runes in `.svelte.js` files (#12432)
1 year ago
Dominic Gannaway e8453e75c6
chore: tweak test config for hmr test run (#12423)
1 year ago
Simon H 51f12d243d
fix: properly validate snippet/slot interop (#12421)
1 year ago
Simon H 70cec4e40e
fix: cache call expressions in render tag arguments (#12418)
1 year ago
Dominic Gannaway d967780c4f
chore: add support for HMR env flag (#12420)
1 year ago
Simon H 277370a79d
fix: properly delay intro transitions (#12389)
1 year ago
Simon H f846cb4833
fix: disallow using `let:` directives with component render tags (#12400)
1 year ago
Leon Scherer fd7b950e7d
fix: Abort outro when intro starts (#12321)
1 year ago
Lyu, Wei-Da 95422e22b6
fix: handle empty else if block in legacy AST (#12397)
1 year ago
Simon H 42a7a0ecd8
chore: document `@html` and `<img src>` hydration change (#12373)
1 year ago
Paolo Ricciuti 4e8d1c8c52
feat: runtime dev warn for mismatched `@html` (#12396)
1 year ago
Paolo Ricciuti 1d76ccf288
fix: style shorthand not referencing variables (#12392)
1 year ago
Rich Harris f3f4ce5741
feat: simplify HMR logic (#12391)
1 year ago
Dominic Gannaway 125156d7d5
fix: ensure hmr block effects are transparent for transitions (#12384)
1 year ago
Rich Harris a4f6407144
feat: universal injected css (#12374)
1 year ago
Rich Harris 47a073e0db
fix: destroy effect on error (#12376)
1 year ago
Rich Harris bdc45fdf7f
breaking: rename `legacy.componentApi` to `compatibility.componentApi` (#12370)
1 year ago
Simon H 529db97928
fix: handle nested `:global(...)` selectors (#12365)
1 year ago
Rich Harris 2789a3c0ef
feat: single-pass hydration (#12335)
1 year ago
Simon H 3dbb220169
fix: ensure `$$slots` returns a record of booleans (#12359)
1 year ago
Dominic Gannaway 202f1dd819
fix: reconnected deep derived signals to graph (#12350)
1 year ago
Rich Harris 66a184689b
chore: simplify legacy props (#12353)
1 year ago
Dominic Gannaway ee47696986
fix: resolve legacy component props equality for mutations (#12348)
1 year ago
Simon H 63f3ee4ffd
fix: make `<select>` `<option value>` behavior consistent (#12316)
1 year ago
Simon H ba93e5fce3
breaking: play transitions on `mount` by default (#12351)
1 year ago
Simon H e8c3729fc9
fix: make `$state` component exports settable (#12345)
1 year ago
Simon H 14cbb65d85
chore: stricter control flow syntax validation in runes mode (#12342)
1 year ago
Simon H dba4aa3567
chore: align warning and error objects, add frame property (#12326)
1 year ago
Simon H 243c4b78b1
fix: ensure `$effect.root` is ignored on the server (#12332)
1 year ago
Simon H cf16acda32
fix: enable local transitions on `svelte:element` (#12346)
1 year ago
Yuichiro Yamashita 67bf7a8067
fix: correct start of `{:else if}` and `{:else}` (#12043)
1 year ago
Simon H 2ffb55ce7d
fix: reorder reactive statements during migration (#12329)
1 year ago
Rich Harris bbf489504d
feat: better `<svelte:element>` SSR output (#12339)
1 year ago
Rich Harris a59bc99782
chore: tidy up (#12336)
1 year ago
Dominic Gannaway b3c002a703
fix: correctly compile $effect.root in svelte modules (#12315)
1 year ago
Rich Harris b2448dcc5c
fix: ensure `bind:this` works with component with no return value (#12308)
1 year ago
Paolo Ricciuti e42bb61296
fix: ensure components always return an object (#12290)
1 year ago
Rich Harris 445f890cd5
fix: create wrapper template for components in HMR mode (#12304)
1 year ago
Dominic Gannaway 15a8518b91
fix: ensure each blocks properly handle $state.frozen objects in prod (#12305)
1 year ago
Simon H bc32b7c828
fix: ensure rest props access on hoisted event handlers works (#12298)
1 year ago
Dominic Gannaway 80263770f1
fix: bail out of event hoisting when referencing store subscriptions (#12301)
1 year ago
Dominic Gannaway d57491f2ce
chore: add unowned signals test (#12275)
1 year ago
Rich Harris 5ce7599f3d
chore: beef up memory leak test for unowned deriveds (#12265)
1 year ago
Dominic Gannaway d2530ed4a1
fix: handle duplicate signal dependencies gracefully (#12261)
1 year ago
Rich Harris fbb7da7e35
feat: simpler effect DOM boundaries (#12258)
1 year ago
Damian Stasik 84325bf89b
chore: use JSDoc type imports in more files (#12239)
1 year ago
Dominic Gannaway cae5f1ed26
breaking: rename svelte/reactivity helpers to include Svelte prefix (#12248)
1 year ago
Rich Harris 9a293ea8c4
fix: add dummy anchor for dynamic component HMR wrappers (#12252)
1 year ago
Dominic Gannaway 9f51760dc6
fix: avoid duplicate signal dependencies (#12245)
1 year ago
Simon H 0d8330703d
fix: ensure HMR doesn't mess with anchor nodes (#12242)
1 year ago
Dominic Gannaway 434e1adda6
fix: deconflict multiple snippets of the same name (#12221)
1 year ago
Rich Harris 2c807ad88c
fix: store DOM boundaries on effects (#12215)
1 year ago
Dominic Gannaway 7c95c7b662
fix: support contenteditable binding undefined fallback (#12210)
1 year ago
Simon H c42bb04276
fix: disallow accessing internal Svelte props (#12207)
1 year ago
Simon H 33e44ea697
feat: allow `let props = $props()`, optimize prop read access (#12201)
1 year ago
Simon H d959d4afbe
fix: make media bindings more robust (#12206)
1 year ago
Dominic Gannaway 23484d6875
breaking: prevent usage of arguments keyword in certain places (#12191)
1 year ago
Simon H a4e994bdf4
fix: allow slot attribute inside snippets (#12188)
1 year ago
Dominic Gannaway 5811236ba5
fix: improve select handling of dynamic value with placeholders (#12181)
1 year ago
Dominic Gannaway 59f7bd6f9f
fix: improve await block behaviour in non-runes mode (#12179)
1 year ago
Simon H ef50e45aca
fix: migration fixes (#12176)
1 year ago
Simon H ff946812b7
fix: correctly serialize object assignment expressions (#12175)
1 year ago
Simon H 67422c4334
fix: allow whitespace before an after snippet parameters (#12159)
1 year ago
Paolo Ricciuti 8e696b0817
fix: throw compilation error for malformed snippets (#12144)
1 year ago
wackbyte 5b60a0e6ba
fix: prevent `a11y_label_has_associated_control` false positive for component in `<label>` (#12119)
1 year ago
Paolo Ricciuti 965c12f633
fix: allow multiple optional parameters with defaults (#12070)
1 year ago
Simon H afe84450c6
fix: better binding interop between runes/non-runes components (#12123)
1 year ago
Rich Harris 3da2646b10
feat: more accurate `render`/`mount`/`hydrate` options (#12111)
1 year ago
Paolo Ricciuti be9b0a275a
fix: repair each block length even without an else (#12098)
1 year ago
Dominic Gannaway 6a3e293207
fix: wait a microtask for await blocks to reduce UI churn (#11989)
1 year ago
Dominic Gannaway eca1b7fd06
fix: ensure state update expressions are serialised correctly (#12109)
1 year ago
Simon H fcf81b1e1d
fix: preserve component function context (#12089)
1 year ago
Dominic Gannaway 399e464b44
fix: ensure input value is correctly set during hydration (#12083)
1 year ago
Dominic Gannaway 696a4b3dae
fix: improve compiler attribute validation logic (#12081)
1 year ago
Rich Harris 98d90745ad
chore: fix typos (#12078)
1 year ago
Rich Harris 90ce1d5f0b
chore: add unowned derived memory leak test (#12075)
1 year ago
Simon H a94b83b7d4
fix: support function invocation from imported `*.svelte` components (#12061)
1 year ago
Simon H a1b6cc68d9
fix: handle `is` attribute on elements with spread (#12056)
1 year ago
Simon H f1d8ed64fd
fix: better types for `on` (#12053)
1 year ago
Rich Harris f5f38796ba
fix: increment derived versions when updating (#12047)
1 year ago
Dominic Gannaway ccb3c90cd5
breaking: rename $effect.active to $effect.tracking (#12022)
1 year ago
Simon H 9dc2d71a12
fix: relax constraint for ComponentProps (#12026)
1 year ago
Simon H 0119f25125
fix: better event delegation behavior around multiple listeners (#12024)
1 year ago
Simon H bf23f692fe
fix: robustify migration script (#12019)
1 year ago
Dominic Gannaway 50fd94fe61
fix: address event delegation duplication behaviour (#12014)
1 year ago
Paolo Ricciuti e27b8c5cb5
fix: better `render` type (#11997)
1 year ago
gtmnayan 2a8632385c
fix: SSR template escaping (#12007)
1 year ago
Dominic Gannaway 0d51dbae32
fix: ensure bound input content is resumed on hydration (#11986)
1 year ago
Rich Harris c39805d027
feat: detach inert effects (#11955)
1 year ago
Dominic Gannaway 3e1abc0b87
fix: ensure dev validation in dynamic component works as intended (#11985)
1 year ago
Rich Harris f752b1e255
chore: simplify SSR (#11977)
1 year ago
Azat S 088632b06d
fix: fix merge style func (#11971)
1 year ago
wackbyte c9202a8896
feat: sort possible bindings in invalid binding error (#11950)
1 year ago
Rich Harris bd950a0be2
fix: more efficient and correct reactive set (#11967)
1 year ago
Rich Harris 4f12846fdf
feat: more efficient output for attributes in SSR (#11949)
1 year ago
Rich Harris 968bba5e54
feat: simpler string normalization (#11954)
1 year ago
Rich Harris 64ee32c5fe
Revert "fix: lazily create sources for Set (#11946)" (#11966)
1 year ago
Paolo Ricciuti 57ca37d6a1
fix: validate form inside a form (#11947)
1 year ago
Paolo Ricciuti 48fa6587c9
fix: lazily create sources for Set (#11946)
1 year ago
Rich Harris 76388d042c
fix: always assign text.nodeValue (#11944)
1 year ago
Rich Harris 123b5cbecb
chore: simpler `<svelte:element>` hydration (#11773)
1 year ago
Paolo Ricciuti 6655f2c5d2
feat: better dynamic component css props (#11792)
1 year ago
Dominic Gannaway aadf629580
feat: add svelte/events package and export on function (#11912)
1 year ago
Simon H 5b0a843b31
fix: relax `Component` type (#11929)
1 year ago
Simon H 8aa8e699ff
fix: handle TypeScript parameter properties (#11928)
1 year ago
Dominic Gannaway 7714c934fe
chore: deprecate html in favour of body for render() (#11927)
1 year ago
Dominic Gannaway 9f823b95e3
fix: improve consttag ordering in non-runes mode (#11908)
1 year ago
Simon H 380d4454a3
fix: relax slot prop validation on components (#11923)
1 year ago
Simon H 6efd9d6f44
fix: correctly backport `svelte:element` to old AST (#11917)
1 year ago
Paolo Ricciuti 862949d22a
fix: increment version when creating new source in Map.get or Map.has (#11913)
1 year ago
wackbyte c0c1a56675
feat: bind `activeElement` and `pointerLockElement` in `<svelte:document>` (#11879)
1 year ago
Paolo Ricciuti f3c291d8dd
fix: silence `state_referenced_locally` when state is exported (#11905)
1 year ago
Dominic Gannaway 832f8deeec
fix: ensure frozen objects in state are correctly skipped (#11889)
1 year ago
Paolo Ricciuti 5eb8641ac7
fix: keep default values of props a proxy after reassignment (#11860)
1 year ago
Dominic Gannaway 3c87a69999
breaking: removed deferred event updates (#11855)
1 year ago
Paolo Ricciuti c9c4b9d50b
fix: allow for more svelte-ignore to work (#11833)
1 year ago
Paolo Ricciuti 7e762cf481
fix: reevaluate namespace in slots (#11849)
1 year ago
Paolo Ricciuti 82a645f8d0
fix: `$state.is` missing second argument on the server (#11835)
1 year ago
Simon H bcb319310f
fix: prevent false positive ownership warning when reassigning state (#11812)
1 year ago
Dominic Gannaway 5f7bfac59a
chore: cleanup event changes (#11821)
1 year ago
Dominic Gannaway 36b270ef3b
fix: address derived memory leak on disconnection from reactive graph (#11819)
1 year ago
Simon H 538060ebda
fix: ensure visit is called with correct state (#11798)
1 year ago
Simon H 68263c8615
fix: make prop fallback values deeply reactive if needed (#11804)
1 year ago
Simon H 8c66b64e6b
feat: provide new `Component` type that represents the shape of components (#11775)
1 year ago
Simon H 7a1326be06
fix: handle `this` parameter in TypeScript-annotated functions (#11795)
1 year ago
FoHoOV 4fef0eb08f
fix: capture the correct event names when spreading attributes (#11783)
1 year ago
Paolo Ricciuti ee9d5ef850
fix: allow global next to `&` for nesting (#11784)
1 year ago
FoHoOV b963e53fc9
fix: parse ongotpointercapture and onlostpointercapture events correctly (#11790)
1 year ago
Rich Harris d1f5d5d33d
fix: only inject push/pop/$$props in SSR components when necessary (#11771)
1 year ago
Paolo Ricciuti 9084f1796b
fix: allow runelike writable as prop (#11768)
1 year ago
Paolo Ricciuti d856c50092
fix: `array.lastIndexOf` without second argument (#11766)
1 year ago
Paolo Ricciuti 7dacf2c4d4
fix: use svg methods for updating svg attributes too (#11755)
1 year ago
Rich Harris d15fd9556f
chore: better invalid attribute message (#11754)
1 year ago
Paolo Ricciuti 5765752d78
fix: throw on invalid attribute expressions (#11736)
1 year ago
Paolo Ricciuti e73b133b66
fix: don't warn on link without href if aria-disabled (#11737)
1 year ago
Rich Harris 329c10eb6c
chore: update noscript test (#11749)
1 year ago
Dominic Gannaway fe51cde1fa
breaking: event handlers + bindings now yield effect updates (#11706)
1 year ago
Dominic Gannaway 44115840bd
chore: cleanup more tests (#11738)
1 year ago
Simon H 4f9096a5a8
chore: delegate input event (#11732)
1 year ago
Paolo Ricciuti 77f91459b6
fix: update value like attributes in a separate template_effect (#11720)
1 year ago
Simon H d590cd8bea
fix: ignore value attribute on select during SSR (#11724)
1 year ago
Paolo Ricciuti 6d2f1a48b4
fix: allow comments after last selector in css (#11723)
1 year ago
Rich Harris 0128df33da
fix: don't add scoping modifier to nesting selectors (#11713)
1 year ago
Dominic Gannaway 09addad9ae
fix: improve handling of unowned derived signal (#11712)
1 year ago
Paolo Ricciuti f48001ac63
fix: check for invalid bindings on window and document (#11676)
1 year ago
Paolo Ricciuti b788b72862
fix: migrate derivations without semicolons (#11704)
1 year ago
Rich Harris 02520aea48
better tooltips in playground (#11705)
1 year ago
Dominic Gannaway e6f8e95199
chore: tidy up tests to use flushSync (#11703)
1 year ago
Simon H 1784026843
fix: don't require commas between warnings in legacy mode (#11669)
1 year ago
Rich Harris c29b74669d
feat: migrate `<svelte:element this="div">` (#11659)
1 year ago
Rich Harris d288735fa8
breaking: disallow string literal values in `<svelte:element this="...">` (#11454)
1 year ago
Simon H ade6b6e480
chore: add css regression test (#11658)
1 year ago
Simon H c2f75dc7ba
fix: use coarse-grained updates for derived expressions in legacy mode (#11652)
1 year ago
Dominic Gannaway 54083fb9cc
fix: replay load and error events on load during hydration (#11642)
1 year ago
Dominik G dc9b0d08c1
feat: add rootDir option and set __svelte_meta.file like in svelte4 (#11627)
1 year ago
Rich Harris 3bf68b4765
fix: make messages more consistent (#11643)
1 year ago
Dominic Gannaway 053159bf0b
fix: avoid state_referenced_locally warning within type annotations (#11638)
1 year ago
Simon H 4365562228
fix: deduplicate children prop from default slot (#10800)
1 year ago
Simon H 4bedd0e4fb
feat: error on imports to `svelte/internal/*` (#11632)
1 year ago
Dominic Gannaway e5e7ec2404
fix: better handle img loading attribute (#11635)
1 year ago
Paolo Ricciuti 87a420f64d
feat: error when snippet shadows a prop (#11631)
1 year ago
Simon H 573b9f1d74
fix: adjust unknown code warning offset (#11621)
1 year ago
Dominic Gannaway f488a6e84a
feat: add $state.is rune (#11613)
1 year ago
Dominic Gannaway 1087e6fb54
chore: improve SSR invalid element error message (#11585)
1 year ago
Simon H faced066bd
feat: migrate warnings (#11607)
1 year ago
Simon H 2bc39b1de2
chore: better ignore code handling (#11606)
1 year ago
Rich Harris 5cb432b7bd
feat: warn on unknown warning codes in runes mode (#11549)
1 year ago
Simon H d408d20cdd
fix: replicate Svelte 4 props update detection in legacy mode (#11577)
1 year ago
Simon H a0bdac8cd7
fix: correctly handle falsy values of style directives in SSR mode (#11583)
1 year ago
Paolo Ricciuti 81517a506c
fix: allow for non optional chain call expression in render (#11578)
1 year ago
Dominic Gannaway 5497b3d0bc
fix: ensure all effect cleanup functions are untracked (#11567)
1 year ago
Dominic Gannaway fcc72ae2f3
feat: provide better error messages in DEV (#11526)
1 year ago
Simon H 641e411cf1
fix: ensure spread events are always added (#11535)
1 year ago
Simon H 31f8fea22d
fix: don't warn on writes to `$state` (#11540)
1 year ago
Simon H 65223363e9
fix: handle falsy prop aliases correctly (#11539)
1 year ago
Dominic Gannaway 4ea8a5e36b
chore: add derived effect ownership tests (#11538)
1 year ago