0
0
mirror of https://github.com/sveltejs/svelte.git synced 2024-12-01 17:30:59 +01:00
Commit Graph

1321 Commits

Author SHA1 Message Date
Simon H
d9698551fb
feat: allow #each to iterate over iterables (#8626)
closes #7425
Uses a new ensure_array_like function to use Array.from in case the variable doesn't have a length property ('length' in 'some string' fails, therefore obj?.length). This ensures other places can stay unmodified. Using for (const x of y) constructs would require large changes across the each block code where it's uncertain that it would work for all cases since the array length is needed in various places.
2023-05-26 13:29:43 +02:00
Simon H
5dd707d4f5
feat: make transitions local by default (#8632)
To make them global, add the |global modifier
This is a breaking change
closes #6686
2023-05-26 13:26:03 +02:00
Simon H
a40af4dd11
chore: unbundled esm (#8613)
- remove esm bundle step
- introduce generated version.js because we can no longer use replace because we don't bundle esm
- remove register hook, cjs compiler output and cjs runtime
- keep umd compiler version for prettier/eslint/browser but without sourcemaps
- move devdependencies to dependencies where necessary
- various cleanup

---------

Co-authored-by: Ben McCann <322311+benmccann@users.noreply.github.com>
Co-authored-by: gtmnayan <50981692+gtm-nayan@users.noreply.github.com>
2023-05-24 15:31:09 +02:00
Simon H
f223bc1c53
feat: change preprocessor ordering, allow attributes modification (#8618)
- change mapping order
- add support to modify attributes of script/style tags
- add source mapping tests to preprocessor tests
2023-05-23 17:39:54 +02:00
Simon Holthausen
418f4c2381 Merge branch 'master' into version-4 2023-05-05 17:13:45 +02:00
Robin Munn
19e163f59d
feat: pass update function to store setup callbacks (#6750)
Fixes #4880.
Fixes #6737.

This will be a breaking change for anyone who uses the StartStopNotifier
type in their / implements custom stores.

---------

Co-authored-by: Simon Holthausen <simon.holthausen@vercel.com>
2023-05-04 15:42:57 +02:00
Simon H
d083f8a3f2
feat: custom elements rework (#8457)
This is an overhaul of custom elements in Svelte. Instead of compiling to a custom element class, the Svelte component class is mostly preserved as-is. Instead a wrapper is introduced which wraps a Svelte component constructor and returns a HTML element constructor. This has a couple of advantages:

- component can be used both as a custom element as well as a regular component. This allows creating one wrapper custom element and using regular Svelte components inside. Fixes #3594, fixes #3128, fixes #4274, fixes #5486, fixes #3422, fixes #2969, helps with https://github.com/sveltejs/kit/issues/4502
- all components are compiled with injected styles (inlined through Javascript), fixes #4274
- the wrapper instantiates the component in `connectedCallback` and disconnects it in `disconnectedCallback` (but only after one tick, because this could be a element move). Mount/destroy works as expected inside, fixes #5989, fixes #8191
- the wrapper forwards `addEventListener` calls to `component.$on`, which allows to listen to custom events, fixes #3119, closes #4142 
- some things are hard to auto-configure, like attribute hyphen preferences or whether or not setting a property should reflect back to the attribute. This is why `<svelte:options customElement={..}>` can also take an object to modify such aspects. This option allows to specify whether setting a prop should be reflected back to the attribute (default `false`), what to use when converting the property to the attribute value and vice versa (through `type`, default `String`, or when `export let prop = false` then `Boolean`), and what the corresponding attribute for the property is (`attribute`, default lowercased prop name). These options are heavily inspired by lit: https://lit.dev/docs/components/properties. Closes #7638, fixes #5705
- adds a `shadowdom` option to control whether or not encapsulate the custom element. Closes #4330, closes #1748 

Breaking changes:
- Wrapped Svelte component now stays as a regular Svelte component (invokeing it like before with `new Component({ target: ..})` won't create a custom element). Its custom element constructor is now a static property named `element` on the class (`Component.element`) and should be regularly invoked through setting it in the html.
- The timing of mount/destroy/update is different. Mount/destroy/updating a prop all happen after a tick, so `shadowRoot.innerHTML` won't immediately reflect the change (Lit does this too). If you rely on it, you need to await a promise
2023-05-02 12:39:23 +02:00
Cas
c4261abfde
feat: document fullscreenElement and visibilityState bindings (#8507) 2023-04-28 10:15:58 +02:00
abirtley
a74caf1381
docs: Clarify when bind:group does not work (#8540)
Clarify documentation around when bind:group does and does not work. See issue #2308
2023-04-27 16:34:23 +02:00
xxkl1
b7359c8361
feat: add window bind devicePixelRatio support (#8534)
closes: #8285

add window bind devicePixelRatio support, change devicePixelRatio on window resize.

---------

Co-authored-by: Simon H <5968653+dummdidumm@users.noreply.github.com>
2023-04-27 16:17:42 +02:00
James Scott-Brown
1770fc140a
docs: clarify statement about initial values for props (#8477) 2023-04-18 16:27:04 +02:00
Nguyen Tran
68bf3e8143 feat: add a11y no-noninteractive-element-interactions (#8391)
#820
2023-04-18 11:12:33 +02:00
James Scott-Brown
cd690e025b
docs: clarify meaning of "this" in a comment (#8478) 2023-04-11 14:05:22 +02:00
Nguyen Tran
fed93ab9e1
feat: add a11y interactive-supports-focus (#8392)
#820
2023-03-20 13:18:54 +01:00
Cavit Ertuğrul Sırt
7e9e78b37c
docs: Tutorial body had <svelte:body /> even though <svelte:document /> was the subject (#8396) 2023-03-19 15:20:20 +09:00
Dave Lunny
f56fe33931
feat: bind:innerText for contenteditable (#4291)
closes #3311

---------

Co-authored-by: Simon Holthausen <simon.holthausen@vercel.com>
2023-03-16 10:58:49 +01:00
Kazuma Oe
a45afd5393
docs: add <svelte:document> example (#8387) 2023-03-16 09:04:26 +01:00
Henrik Giesel
4b0b471ee1
feat: add back <svelte:document> (#7149)
Closes #3310

---------

Co-authored-by: Ben McCann <322311+benmccann@users.noreply.github.com>
Co-authored-by: Simon H <5968653+dummdidumm@users.noreply.github.com>
2023-03-15 16:38:03 +01:00
Bob Fanger
6aee49bad3
feat: css units in fly & blur transitions (#7623)
Closes #6050

---------

Co-authored-by: Bob Fanger <b.fanger@wearetriple.com>
Co-authored-by: Simon H <5968653+dummdidumm@users.noreply.github.com>
Co-authored-by: Ben McCann <322311+benmccann@users.noreply.github.com>
2023-03-15 12:40:49 +01:00
Nguyen Tran
26c38e750c
feat: add a11y no-noninteractive-element-to-interactive-role (#8167)
Part of #820
2023-03-14 10:51:40 +01:00
Brandon McConnell
e2b9df1888
docs: update 06-accessibility-warnings.md (#8342)
Convert recommended events to use Svelte syntax, and include deprecation warning re https://developer.mozilla.org/en-US/docs/Web/API/Element/keypress_event
2023-03-02 12:38:43 +01:00
Brad Dougherty
dd371f58fe
feat: add readyState binding for media elements (#6843)
Closes #6666

---------

Co-authored-by: Simon H <5968653+dummdidumm@users.noreply.github.com>
2023-03-01 11:54:00 +01:00
Tan Li Hau
c611f318d2
feat: add stopImmediatePropagation event modifier (#8341)
Closes #5085

---------

Co-authored-by: Marcin Wicha <23581770+marcin-wicha@users.noreply.github.com>
Co-authored-by: Simon H <5968653+dummdidumm@users.noreply.github.com>
2023-03-01 11:51:40 +01:00
Invader Zim
d4363510fc
docs: add console output instruction to tutorial (#8336) 2023-02-28 09:44:39 +01:00
Theodor Steiner
c7bbe55b9f
feat: introduce axis parameter to allow for horizontal slide transition (#6183)
---------

Co-authored-by: Tan Li Hau <tanhauhau@users.noreply.github.com>
2023-02-27 17:58:23 +01:00
Nguyen Tran
b56dfe51a8
feat: add a11y role-supports-aria-props (#8195)
#820

---------

Co-authored-by: Simon Holthausen <simon.holthausen@vercel.com>
2023-02-27 12:28:59 +01:00
Yuichiro Yamashita
3423bf6b30
add docs (#8326) 2023-02-26 22:40:36 +08:00
Tan Li Hau
d16dd5d7ca
feat: add naturalWidth and naturalHeight bindings (#7857)
Closes #7771
---------

Co-authored-by: Simon H <5968653+dummdidumm@users.noreply.github.com>
Co-authored-by: Simon Holthausen <simon.holthausen@vercel.com>
2023-02-24 14:20:44 +01:00
Mike Randazzo
487fedce6c
docs: describe that bind:value creates a two-way binding (#8311)
---------

Co-authored-by: Simon H <5968653+dummdidumm@users.noreply.github.com>
2023-02-23 13:46:08 +01:00
Alvin Ramskogler
9f89a92d31
feat: add readonly method to convert writable store to readonly (#6518) 2023-02-23 12:17:34 +01:00
ngtr6788
3559997223
feat: implement a11y aria-activedescendant-has-tabindex (#8172)
#820
2023-02-22 17:14:21 +01:00
brunnerh
e3e912ab58
Fix accessibility of options tutorial. (#8308)
Use button instead of non-interactive element (div).
(Removes a Svelte a11y warning.)
2023-02-22 09:51:26 +01:00
Rémi Marche
57d869d028
[docs] move @html tutorial to end (partly fixing #7253) (#7254)
* Move @html tutorial to end

* move debug and html tag into one section

* rename

---------

Co-authored-by: Rémi Marche <35939574+Marr11317@users.noreply.github.com>
Co-authored-by: Simon H <5968653+dummdidumm@users.noreply.github.com>
Co-authored-by: Simon Holthausen <simon.holthausen@vercel.com>
2023-02-21 20:00:15 +01:00
Jhorman Ruswel ㅠㅠ
85f882f23d
docs: update Keyed Each Blocks tutorial (#8188)
log which element is removed

---------

Co-authored-by: Simon H <5968653+dummdidumm@users.noreply.github.com>
2023-02-21 13:13:50 +01:00
Simon H
324b791d81
docs: note #if to wrap text only
taken from #7070
2023-02-21 13:04:12 +01:00
Hyunbin
213049cc2e
docs: update dialog example (#8200)
* feat: update dialog example

* button always autofocusses, allows us to simplify

---------

Co-authored-by: Simon H <5968653+dummdidumm@users.noreply.github.com>
2023-02-21 12:07:33 +01:00
Mike Plummer
7a6eee51e0
docs: Expand testing FAQ section (#8205)
---------

Co-authored-by: Simon H <5968653+dummdidumm@users.noreply.github.com>
Co-authored-by: Ben McCann <322311+benmccann@users.noreply.github.com>
2023-02-21 11:54:00 +01:00
Maxime Dupont
4dd12c0c61
docs: fix fly animation description (#8236) 2023-02-21 11:33:01 +01:00
James Scott-Brown
acba4b72e2
docs: clarify bindings for <select multiple> (#8260)
Co-authored-by: Ben McCann <322311+benmccann@users.noreply.github.com>
2023-02-14 10:04:49 -08:00
Alicia Sykes
0598c989a0
docs: corrects syntax error in transition code sample (#8169)
Co-authored-by: Ben McCann <322311+benmccann@users.noreply.github.com>
2023-02-14 08:57:07 -08:00
Kyrre Gjerstad
d7e4b1c8fc
docs: fix minor typos (#8268)
Co-authored-by: Ben McCann <322311+benmccann@users.noreply.github.com>
2023-02-14 08:25:23 -08:00
James Scott-Brown
ff5c14dc71
docs: format window.navigator.onLine reference as code (#8262) 2023-02-14 08:19:57 -08:00
James Scott-Brown
7706a5f713
docs: link to MDN page on void elements (#8261) 2023-02-14 08:18:06 -08:00
Satvik
6ac24f1d5c
[docs] add missing semicolon (#8190) 2023-02-05 21:00:54 +09:00
Josh
aa98397440
[docs] fix typo (#8180) 2023-01-10 09:38:47 +01:00
wackbyte
094483b397
[fix] say "nonnegative" instead of "positive" tabIndex for a11y-no-noninteractive-tabindex (#8126) 2023-01-02 09:39:55 +08:00
Simon H
b8f32c0b1a
[docs] clear timeout on destroy
backported from https://github.com/sveltejs/learn.svelte.dev/pull/166
2022-12-22 17:47:52 +01:00
Geoff Rich
6a23d9b65f
[docs] fix transition direction options (#8133) 2022-12-22 09:39:36 +09:00
Rich Harris
b8bc1be0a8
remove blog content. it now lives in sites repo (#8117) 2022-12-20 08:09:50 -08:00
gaac510
eef125f6c1
[docs] update outdated SvelteKit release info (#8128)
Co-authored-by: Ben McCann <322311+benmccann@users.noreply.github.com>
2022-12-19 22:47:31 +01:00