@humanspeak/svelte-motion 0.1.3 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +32 -0
- package/dist/components/AnimatePresence.svelte +32 -0
- package/dist/components/AnimatePresence.svelte.d.ts +8 -0
- package/dist/components/MotionConfig.svelte +11 -2
- package/dist/components/MotionConfig.svelte.d.ts +1 -1
- package/dist/components/motionConfig.context.js +1 -1
- package/dist/html/A.svelte +1 -1
- package/dist/html/A.svelte.d.ts +1 -1
- package/dist/html/Abbr.svelte +1 -1
- package/dist/html/Abbr.svelte.d.ts +1 -1
- package/dist/html/Address.svelte +1 -1
- package/dist/html/Address.svelte.d.ts +1 -1
- package/dist/html/Animate.svelte +1 -1
- package/dist/html/Animate.svelte.d.ts +1 -1
- package/dist/html/Animatemotion.svelte +1 -1
- package/dist/html/Animatemotion.svelte.d.ts +1 -1
- package/dist/html/Animatetransform.svelte +1 -1
- package/dist/html/Animatetransform.svelte.d.ts +1 -1
- package/dist/html/Area.svelte +1 -1
- package/dist/html/Area.svelte.d.ts +1 -1
- package/dist/html/Article.svelte +1 -1
- package/dist/html/Article.svelte.d.ts +1 -1
- package/dist/html/Aside.svelte +1 -1
- package/dist/html/Aside.svelte.d.ts +1 -1
- package/dist/html/Audio.svelte +1 -1
- package/dist/html/Audio.svelte.d.ts +1 -1
- package/dist/html/B.svelte +1 -1
- package/dist/html/B.svelte.d.ts +1 -1
- package/dist/html/Base.svelte +1 -1
- package/dist/html/Base.svelte.d.ts +1 -1
- package/dist/html/Bdi.svelte +1 -1
- package/dist/html/Bdi.svelte.d.ts +1 -1
- package/dist/html/Bdo.svelte +1 -1
- package/dist/html/Bdo.svelte.d.ts +1 -1
- package/dist/html/Blockquote.svelte +1 -1
- package/dist/html/Blockquote.svelte.d.ts +1 -1
- package/dist/html/Br.svelte +1 -1
- package/dist/html/Br.svelte.d.ts +1 -1
- package/dist/html/Button.svelte +1 -1
- package/dist/html/Button.svelte.d.ts +1 -1
- package/dist/html/Canvas.svelte +1 -1
- package/dist/html/Canvas.svelte.d.ts +1 -1
- package/dist/html/Caption.svelte +1 -1
- package/dist/html/Caption.svelte.d.ts +1 -1
- package/dist/html/Circle.svelte +1 -1
- package/dist/html/Circle.svelte.d.ts +1 -1
- package/dist/html/Cite.svelte +1 -1
- package/dist/html/Cite.svelte.d.ts +1 -1
- package/dist/html/Clippath.svelte +1 -1
- package/dist/html/Clippath.svelte.d.ts +1 -1
- package/dist/html/Code.svelte +1 -1
- package/dist/html/Code.svelte.d.ts +1 -1
- package/dist/html/Col.svelte +1 -1
- package/dist/html/Col.svelte.d.ts +1 -1
- package/dist/html/Colgroup.svelte +1 -1
- package/dist/html/Colgroup.svelte.d.ts +1 -1
- package/dist/html/Cursor.svelte +1 -1
- package/dist/html/Cursor.svelte.d.ts +1 -1
- package/dist/html/Data.svelte +1 -1
- package/dist/html/Data.svelte.d.ts +1 -1
- package/dist/html/Datalist.svelte +1 -1
- package/dist/html/Datalist.svelte.d.ts +1 -1
- package/dist/html/Dd.svelte +1 -1
- package/dist/html/Dd.svelte.d.ts +1 -1
- package/dist/html/Defs.svelte +1 -1
- package/dist/html/Defs.svelte.d.ts +1 -1
- package/dist/html/Del.svelte +1 -1
- package/dist/html/Del.svelte.d.ts +1 -1
- package/dist/html/Desc.svelte +1 -1
- package/dist/html/Desc.svelte.d.ts +1 -1
- package/dist/html/Details.svelte +1 -1
- package/dist/html/Details.svelte.d.ts +1 -1
- package/dist/html/Dfn.svelte +1 -1
- package/dist/html/Dfn.svelte.d.ts +1 -1
- package/dist/html/Dialog.svelte +1 -1
- package/dist/html/Dialog.svelte.d.ts +1 -1
- package/dist/html/Div.svelte +1 -1
- package/dist/html/Div.svelte.d.ts +1 -1
- package/dist/html/Dl.svelte +1 -1
- package/dist/html/Dl.svelte.d.ts +1 -1
- package/dist/html/Dt.svelte +1 -1
- package/dist/html/Dt.svelte.d.ts +1 -1
- package/dist/html/Ellipse.svelte +1 -1
- package/dist/html/Ellipse.svelte.d.ts +1 -1
- package/dist/html/Em.svelte +1 -1
- package/dist/html/Em.svelte.d.ts +1 -1
- package/dist/html/Embed.svelte +1 -1
- package/dist/html/Embed.svelte.d.ts +1 -1
- package/dist/html/Feblend.svelte +1 -1
- package/dist/html/Feblend.svelte.d.ts +1 -1
- package/dist/html/Fecolormatrix.svelte +1 -1
- package/dist/html/Fecolormatrix.svelte.d.ts +1 -1
- package/dist/html/Fecomponenttransfer.svelte +1 -1
- package/dist/html/Fecomponenttransfer.svelte.d.ts +1 -1
- package/dist/html/Fecomposite.svelte +1 -1
- package/dist/html/Fecomposite.svelte.d.ts +1 -1
- package/dist/html/Feconvolvematrix.svelte +1 -1
- package/dist/html/Feconvolvematrix.svelte.d.ts +1 -1
- package/dist/html/Fediffuselighting.svelte +1 -1
- package/dist/html/Fediffuselighting.svelte.d.ts +1 -1
- package/dist/html/Fedisplacementmap.svelte +1 -1
- package/dist/html/Fedisplacementmap.svelte.d.ts +1 -1
- package/dist/html/Fedistantlight.svelte +1 -1
- package/dist/html/Fedistantlight.svelte.d.ts +1 -1
- package/dist/html/Feflood.svelte +1 -1
- package/dist/html/Feflood.svelte.d.ts +1 -1
- package/dist/html/Fefunca.svelte +1 -1
- package/dist/html/Fefunca.svelte.d.ts +1 -1
- package/dist/html/Fefuncb.svelte +1 -1
- package/dist/html/Fefuncb.svelte.d.ts +1 -1
- package/dist/html/Fefuncg.svelte +1 -1
- package/dist/html/Fefuncg.svelte.d.ts +1 -1
- package/dist/html/Fefuncr.svelte +1 -1
- package/dist/html/Fefuncr.svelte.d.ts +1 -1
- package/dist/html/Fegaussianblur.svelte +1 -1
- package/dist/html/Fegaussianblur.svelte.d.ts +1 -1
- package/dist/html/Feimage.svelte +1 -1
- package/dist/html/Feimage.svelte.d.ts +1 -1
- package/dist/html/Femerge.svelte +1 -1
- package/dist/html/Femerge.svelte.d.ts +1 -1
- package/dist/html/Femergenode.svelte +1 -1
- package/dist/html/Femergenode.svelte.d.ts +1 -1
- package/dist/html/Femorphology.svelte +1 -1
- package/dist/html/Femorphology.svelte.d.ts +1 -1
- package/dist/html/Feoffset.svelte +1 -1
- package/dist/html/Feoffset.svelte.d.ts +1 -1
- package/dist/html/Fepointlight.svelte +1 -1
- package/dist/html/Fepointlight.svelte.d.ts +1 -1
- package/dist/html/Fespecularlighting.svelte +1 -1
- package/dist/html/Fespecularlighting.svelte.d.ts +1 -1
- package/dist/html/Fespotlight.svelte +1 -1
- package/dist/html/Fespotlight.svelte.d.ts +1 -1
- package/dist/html/Fetile.svelte +1 -1
- package/dist/html/Fetile.svelte.d.ts +1 -1
- package/dist/html/Feturbulence.svelte +1 -1
- package/dist/html/Feturbulence.svelte.d.ts +1 -1
- package/dist/html/Fieldset.svelte +1 -1
- package/dist/html/Fieldset.svelte.d.ts +1 -1
- package/dist/html/Figcaption.svelte +1 -1
- package/dist/html/Figcaption.svelte.d.ts +1 -1
- package/dist/html/Figure.svelte +1 -1
- package/dist/html/Figure.svelte.d.ts +1 -1
- package/dist/html/Filter.svelte +1 -1
- package/dist/html/Filter.svelte.d.ts +1 -1
- package/dist/html/Footer.svelte +1 -1
- package/dist/html/Footer.svelte.d.ts +1 -1
- package/dist/html/Foreignobject.svelte +1 -1
- package/dist/html/Foreignobject.svelte.d.ts +1 -1
- package/dist/html/Form.svelte +1 -1
- package/dist/html/Form.svelte.d.ts +1 -1
- package/dist/html/G.svelte +1 -1
- package/dist/html/G.svelte.d.ts +1 -1
- package/dist/html/H1.svelte +1 -1
- package/dist/html/H1.svelte.d.ts +1 -1
- package/dist/html/H2.svelte +1 -1
- package/dist/html/H2.svelte.d.ts +1 -1
- package/dist/html/H3.svelte +1 -1
- package/dist/html/H3.svelte.d.ts +1 -1
- package/dist/html/H4.svelte +1 -1
- package/dist/html/H4.svelte.d.ts +1 -1
- package/dist/html/H5.svelte +1 -1
- package/dist/html/H5.svelte.d.ts +1 -1
- package/dist/html/H6.svelte +1 -1
- package/dist/html/H6.svelte.d.ts +1 -1
- package/dist/html/Header.svelte +1 -1
- package/dist/html/Header.svelte.d.ts +1 -1
- package/dist/html/Hgroup.svelte +1 -1
- package/dist/html/Hgroup.svelte.d.ts +1 -1
- package/dist/html/Hr.svelte +1 -1
- package/dist/html/Hr.svelte.d.ts +1 -1
- package/dist/html/I.svelte +1 -1
- package/dist/html/I.svelte.d.ts +1 -1
- package/dist/html/Iframe.svelte +1 -1
- package/dist/html/Iframe.svelte.d.ts +1 -1
- package/dist/html/Image.svelte +1 -1
- package/dist/html/Image.svelte.d.ts +1 -1
- package/dist/html/Img.svelte +1 -1
- package/dist/html/Img.svelte.d.ts +1 -1
- package/dist/html/Input.svelte +1 -1
- package/dist/html/Input.svelte.d.ts +1 -1
- package/dist/html/Ins.svelte +1 -1
- package/dist/html/Ins.svelte.d.ts +1 -1
- package/dist/html/Kbd.svelte +1 -1
- package/dist/html/Kbd.svelte.d.ts +1 -1
- package/dist/html/Label.svelte +1 -1
- package/dist/html/Label.svelte.d.ts +1 -1
- package/dist/html/Legend.svelte +1 -1
- package/dist/html/Legend.svelte.d.ts +1 -1
- package/dist/html/Li.svelte +1 -1
- package/dist/html/Li.svelte.d.ts +1 -1
- package/dist/html/Line.svelte +1 -1
- package/dist/html/Line.svelte.d.ts +1 -1
- package/dist/html/Lineargradient.svelte +1 -1
- package/dist/html/Lineargradient.svelte.d.ts +1 -1
- package/dist/html/Main.svelte +1 -1
- package/dist/html/Main.svelte.d.ts +1 -1
- package/dist/html/Map.svelte +1 -1
- package/dist/html/Map.svelte.d.ts +1 -1
- package/dist/html/Mark.svelte +1 -1
- package/dist/html/Mark.svelte.d.ts +1 -1
- package/dist/html/Marker.svelte +1 -1
- package/dist/html/Marker.svelte.d.ts +1 -1
- package/dist/html/Mask.svelte +1 -1
- package/dist/html/Mask.svelte.d.ts +1 -1
- package/dist/html/Math.svelte +1 -1
- package/dist/html/Math.svelte.d.ts +1 -1
- package/dist/html/Menu.svelte +1 -1
- package/dist/html/Menu.svelte.d.ts +1 -1
- package/dist/html/Metadata.svelte +1 -1
- package/dist/html/Metadata.svelte.d.ts +1 -1
- package/dist/html/Meter.svelte +1 -1
- package/dist/html/Meter.svelte.d.ts +1 -1
- package/dist/html/Mpath.svelte +1 -1
- package/dist/html/Mpath.svelte.d.ts +1 -1
- package/dist/html/Nav.svelte +1 -1
- package/dist/html/Nav.svelte.d.ts +1 -1
- package/dist/html/Noscript.svelte +1 -1
- package/dist/html/Noscript.svelte.d.ts +1 -1
- package/dist/html/Object.svelte +1 -1
- package/dist/html/Object.svelte.d.ts +1 -1
- package/dist/html/Ol.svelte +1 -1
- package/dist/html/Ol.svelte.d.ts +1 -1
- package/dist/html/Optgroup.svelte +1 -1
- package/dist/html/Optgroup.svelte.d.ts +1 -1
- package/dist/html/Option.svelte +1 -1
- package/dist/html/Option.svelte.d.ts +1 -1
- package/dist/html/Output.svelte +1 -1
- package/dist/html/Output.svelte.d.ts +1 -1
- package/dist/html/P.svelte +1 -1
- package/dist/html/P.svelte.d.ts +1 -1
- package/dist/html/Path.svelte +1 -1
- package/dist/html/Path.svelte.d.ts +1 -1
- package/dist/html/Pattern.svelte +1 -1
- package/dist/html/Pattern.svelte.d.ts +1 -1
- package/dist/html/Picture.svelte +1 -1
- package/dist/html/Picture.svelte.d.ts +1 -1
- package/dist/html/Polygon.svelte +1 -1
- package/dist/html/Polygon.svelte.d.ts +1 -1
- package/dist/html/Polyline.svelte +1 -1
- package/dist/html/Polyline.svelte.d.ts +1 -1
- package/dist/html/Pre.svelte +1 -1
- package/dist/html/Pre.svelte.d.ts +1 -1
- package/dist/html/Progress.svelte +1 -1
- package/dist/html/Progress.svelte.d.ts +1 -1
- package/dist/html/Q.svelte +1 -1
- package/dist/html/Q.svelte.d.ts +1 -1
- package/dist/html/Radialgradient.svelte +1 -1
- package/dist/html/Radialgradient.svelte.d.ts +1 -1
- package/dist/html/Rect.svelte +1 -1
- package/dist/html/Rect.svelte.d.ts +1 -1
- package/dist/html/Rp.svelte +1 -1
- package/dist/html/Rp.svelte.d.ts +1 -1
- package/dist/html/Rt.svelte +1 -1
- package/dist/html/Rt.svelte.d.ts +1 -1
- package/dist/html/Ruby.svelte +1 -1
- package/dist/html/Ruby.svelte.d.ts +1 -1
- package/dist/html/S.svelte +1 -1
- package/dist/html/S.svelte.d.ts +1 -1
- package/dist/html/Samp.svelte +1 -1
- package/dist/html/Samp.svelte.d.ts +1 -1
- package/dist/html/Script.svelte +1 -1
- package/dist/html/Script.svelte.d.ts +1 -1
- package/dist/html/Search.svelte +1 -1
- package/dist/html/Search.svelte.d.ts +1 -1
- package/dist/html/Section.svelte +1 -1
- package/dist/html/Section.svelte.d.ts +1 -1
- package/dist/html/Select.svelte +1 -1
- package/dist/html/Select.svelte.d.ts +1 -1
- package/dist/html/Selectedcontent.svelte +1 -1
- package/dist/html/Selectedcontent.svelte.d.ts +1 -1
- package/dist/html/Set.svelte +1 -1
- package/dist/html/Set.svelte.d.ts +1 -1
- package/dist/html/Slot.svelte +1 -1
- package/dist/html/Slot.svelte.d.ts +1 -1
- package/dist/html/Small.svelte +1 -1
- package/dist/html/Small.svelte.d.ts +1 -1
- package/dist/html/Source.svelte +1 -1
- package/dist/html/Source.svelte.d.ts +1 -1
- package/dist/html/Span.svelte +1 -1
- package/dist/html/Span.svelte.d.ts +1 -1
- package/dist/html/Stop.svelte +1 -1
- package/dist/html/Stop.svelte.d.ts +1 -1
- package/dist/html/Strong.svelte +1 -1
- package/dist/html/Strong.svelte.d.ts +1 -1
- package/dist/html/Style.svelte +1 -1
- package/dist/html/Style.svelte.d.ts +1 -1
- package/dist/html/Sub.svelte +1 -1
- package/dist/html/Sub.svelte.d.ts +1 -1
- package/dist/html/Summary.svelte +1 -1
- package/dist/html/Summary.svelte.d.ts +1 -1
- package/dist/html/Sup.svelte +1 -1
- package/dist/html/Sup.svelte.d.ts +1 -1
- package/dist/html/Svg.svelte +1 -1
- package/dist/html/Svg.svelte.d.ts +1 -1
- package/dist/html/Switch.svelte +1 -1
- package/dist/html/Switch.svelte.d.ts +1 -1
- package/dist/html/Symbol.svelte +1 -1
- package/dist/html/Symbol.svelte.d.ts +1 -1
- package/dist/html/Table.svelte +1 -1
- package/dist/html/Table.svelte.d.ts +1 -1
- package/dist/html/Tbody.svelte +1 -1
- package/dist/html/Tbody.svelte.d.ts +1 -1
- package/dist/html/Td.svelte +1 -1
- package/dist/html/Td.svelte.d.ts +1 -1
- package/dist/html/Template.svelte +1 -1
- package/dist/html/Template.svelte.d.ts +1 -1
- package/dist/html/Text.svelte +1 -1
- package/dist/html/Text.svelte.d.ts +1 -1
- package/dist/html/Textarea.svelte +1 -1
- package/dist/html/Textarea.svelte.d.ts +1 -1
- package/dist/html/Textpath.svelte +1 -1
- package/dist/html/Textpath.svelte.d.ts +1 -1
- package/dist/html/Tfoot.svelte +1 -1
- package/dist/html/Tfoot.svelte.d.ts +1 -1
- package/dist/html/Th.svelte +1 -1
- package/dist/html/Th.svelte.d.ts +1 -1
- package/dist/html/Thead.svelte +1 -1
- package/dist/html/Thead.svelte.d.ts +1 -1
- package/dist/html/Time.svelte +1 -1
- package/dist/html/Time.svelte.d.ts +1 -1
- package/dist/html/Title.svelte +1 -1
- package/dist/html/Title.svelte.d.ts +1 -1
- package/dist/html/Tr.svelte +1 -1
- package/dist/html/Tr.svelte.d.ts +1 -1
- package/dist/html/Track.svelte +1 -1
- package/dist/html/Track.svelte.d.ts +1 -1
- package/dist/html/Tref.svelte +1 -1
- package/dist/html/Tref.svelte.d.ts +1 -1
- package/dist/html/Tspan.svelte +1 -1
- package/dist/html/Tspan.svelte.d.ts +1 -1
- package/dist/html/U.svelte +1 -1
- package/dist/html/U.svelte.d.ts +1 -1
- package/dist/html/Ul.svelte +1 -1
- package/dist/html/Ul.svelte.d.ts +1 -1
- package/dist/html/Use.svelte +1 -1
- package/dist/html/Use.svelte.d.ts +1 -1
- package/dist/html/Var.svelte +1 -1
- package/dist/html/Var.svelte.d.ts +1 -1
- package/dist/html/Video.svelte +1 -1
- package/dist/html/Video.svelte.d.ts +1 -1
- package/dist/html/View.svelte +1 -1
- package/dist/html/View.svelte.d.ts +1 -1
- package/dist/html/Wbr.svelte +1 -1
- package/dist/html/Wbr.svelte.d.ts +1 -1
- package/dist/html/_MotionContainer.svelte +95 -22
- package/dist/html/_MotionContainer.svelte.d.ts +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/types.d.ts +12 -0
- package/dist/utils/animation.d.ts +12 -8
- package/dist/utils/animation.js +20 -10
- package/dist/utils/hover.js +2 -1
- package/dist/utils/layout.d.ts +1 -1
- package/dist/utils/objects.js +1 -3
- package/dist/utils/presence.d.ts +69 -0
- package/dist/utils/presence.js +228 -0
- package/dist/utils/spring.d.ts +15 -2
- package/dist/utils/transform.js +1 -1
- package/package.json +18 -18
package/README.md
CHANGED
|
@@ -50,6 +50,37 @@ Svelte Motion supports minimal layout animations via FLIP using the `layout` pro
|
|
|
50
50
|
- **`layout`**: smoothly animates translation and scale between layout changes (size and position).
|
|
51
51
|
- **`layout="position"`**: only animates translation (no scale).
|
|
52
52
|
|
|
53
|
+
### Exit Animations (AnimatePresence)
|
|
54
|
+
|
|
55
|
+
Animate elements as they leave the DOM using `AnimatePresence`. This mirrors Motion’s React API and docs for exit animations ([reference](https://motion.dev/docs/react)).
|
|
56
|
+
|
|
57
|
+
```svelte
|
|
58
|
+
<script lang="ts">
|
|
59
|
+
import { motion, AnimatePresence } from '$lib'
|
|
60
|
+
let show = $state(true)
|
|
61
|
+
</script>
|
|
62
|
+
|
|
63
|
+
<AnimatePresence>
|
|
64
|
+
{#if show}
|
|
65
|
+
<motion.div
|
|
66
|
+
initial={{ opacity: 0, scale: 0.9 }}
|
|
67
|
+
animate={{ opacity: 1, scale: 1 }}
|
|
68
|
+
exit={{ opacity: 0, scale: 0.9 }}
|
|
69
|
+
transition={{ duration: 0.5 }}
|
|
70
|
+
class="size-24 rounded-md bg-cyan-400"
|
|
71
|
+
/>
|
|
72
|
+
{/if}
|
|
73
|
+
</AnimatePresence>
|
|
74
|
+
|
|
75
|
+
<motion.button whileTap={{ scale: 0.97 }} onclick={() => (show = !show)}>Toggle</motion.button>
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
- The exit animation is driven by `exit` and will play when the element unmounts.
|
|
79
|
+
- Transition precedence (merged before running exit):
|
|
80
|
+
- `exit.transition` (highest precedence)
|
|
81
|
+
- component `transition` (merged with `MotionConfig`)
|
|
82
|
+
- fallback default `{ duration: 0.35 }`
|
|
83
|
+
|
|
53
84
|
#### Current Limitations
|
|
54
85
|
|
|
55
86
|
Some Motion features are not yet implemented:
|
|
@@ -84,6 +115,7 @@ This package carefully selects its dependencies to provide a robust and maintain
|
|
|
84
115
|
| [Fancy Like Button](https://github.com/DRlFTER/fancyLikeButton) | `/tests/random/fancy-like-button` | [View Example](https://svelte.dev/playground/c34b7e53d41c48b0ab1eaf21ca120c6e?version=5.38.10) |
|
|
85
116
|
| [Keyframes (square → circle → square; scale 1→2→1)](https://motion.dev/docs/react-animation#keyframes) | `/tests/motion/keyframes` | [View Example](https://svelte.dev/playground/05595ce0db124c1cbbe4e74fda68d717?version=5.38.10) |
|
|
86
117
|
| [Animated Border Gradient (conic-gradient rotate)](https://www.youtube.com/watch?v=OgQI1-9T6ZA) | `/tests/random/animated-border-gradient` | [View Example](https://svelte.dev/playground/6983a61b4c35441b8aa72a971de01a23?version=5.38.10) |
|
|
118
|
+
| [Exit Animation](https://motion.dev/docs/react#exit-animations) | `/tests/motion/animate-presence` | [View Example](https://svelte.dev/playground/ef277e283d864653ace54e7453801601?version=5.38.10) |
|
|
87
119
|
|
|
88
120
|
## Interactions
|
|
89
121
|
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { Snippet } from 'svelte'
|
|
3
|
+
import { createAnimatePresenceContext, setAnimatePresenceContext } from '../utils/presence'
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Provide `AnimatePresence` context to descendants.
|
|
7
|
+
*
|
|
8
|
+
* Wrap content whose children may be conditionally rendered so exit
|
|
9
|
+
* animations can run after teardown. When a motion element unmounts, a
|
|
10
|
+
* styled clone is animated out before being removed from the DOM.
|
|
11
|
+
*
|
|
12
|
+
* @prop children Slotted content participating in presence.
|
|
13
|
+
* @prop onExitComplete Optional callback invoked once all exits complete.
|
|
14
|
+
*/
|
|
15
|
+
const { children, onExitComplete } = $props<{
|
|
16
|
+
children?: Snippet
|
|
17
|
+
onExitComplete?: () => void
|
|
18
|
+
}>()
|
|
19
|
+
|
|
20
|
+
const context = createAnimatePresenceContext({ onExitComplete })
|
|
21
|
+
setAnimatePresenceContext(context)
|
|
22
|
+
</script>
|
|
23
|
+
|
|
24
|
+
<div class="animate-presence-container">
|
|
25
|
+
{@render children?.()}
|
|
26
|
+
</div>
|
|
27
|
+
|
|
28
|
+
<style>
|
|
29
|
+
.animate-presence-container {
|
|
30
|
+
position: relative;
|
|
31
|
+
}
|
|
32
|
+
</style>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Snippet } from 'svelte';
|
|
2
|
+
type $$ComponentProps = {
|
|
3
|
+
children?: Snippet;
|
|
4
|
+
onExitComplete?: () => void;
|
|
5
|
+
};
|
|
6
|
+
declare const AnimatePresence: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
7
|
+
type AnimatePresence = ReturnType<typeof AnimatePresence>;
|
|
8
|
+
export default AnimatePresence;
|
|
@@ -1,8 +1,17 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import type { Snippet } from 'svelte'
|
|
3
|
-
import type { MotionConfigProps } from '../types
|
|
4
|
-
import { createMotionConfig } from './motionConfig.context
|
|
3
|
+
import type { MotionConfigProps } from '../types'
|
|
4
|
+
import { createMotionConfig } from './motionConfig.context'
|
|
5
5
|
|
|
6
|
+
/**
|
|
7
|
+
* Provide default Motion configuration to descendants.
|
|
8
|
+
*
|
|
9
|
+
* Wraps content and supplies defaults such as `transition` that are merged
|
|
10
|
+
* with per-element props. Descendants can retrieve config via context.
|
|
11
|
+
*
|
|
12
|
+
* @prop transition Default `AnimationOptions` merged with element props.
|
|
13
|
+
* @prop children Slotted content receiving this configuration.
|
|
14
|
+
*/
|
|
6
15
|
let { transition, children }: MotionConfigProps & { children?: Snippet } = $props()
|
|
7
16
|
|
|
8
17
|
let motionConfig = $state<MotionConfigProps>({ transition })
|
package/dist/html/A.svelte
CHANGED
package/dist/html/A.svelte.d.ts
CHANGED
package/dist/html/Abbr.svelte
CHANGED
package/dist/html/Address.svelte
CHANGED
package/dist/html/Animate.svelte
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { HTMLElementProps } from '../types
|
|
1
|
+
import type { HTMLElementProps } from '../types';
|
|
2
2
|
declare const Animatemotion: import("svelte").Component<HTMLElementProps, {}, "">;
|
|
3
3
|
type Animatemotion = ReturnType<typeof Animatemotion>;
|
|
4
4
|
export default Animatemotion;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { HTMLElementProps } from '../types
|
|
1
|
+
import type { HTMLElementProps } from '../types';
|
|
2
2
|
declare const Animatetransform: import("svelte").Component<HTMLElementProps, {}, "">;
|
|
3
3
|
type Animatetransform = ReturnType<typeof Animatetransform>;
|
|
4
4
|
export default Animatetransform;
|
package/dist/html/Area.svelte
CHANGED
package/dist/html/Article.svelte
CHANGED
package/dist/html/Aside.svelte
CHANGED
package/dist/html/Audio.svelte
CHANGED
package/dist/html/B.svelte
CHANGED
package/dist/html/B.svelte.d.ts
CHANGED
package/dist/html/Base.svelte
CHANGED
package/dist/html/Bdi.svelte
CHANGED
package/dist/html/Bdo.svelte
CHANGED
package/dist/html/Br.svelte
CHANGED
package/dist/html/Br.svelte.d.ts
CHANGED
package/dist/html/Button.svelte
CHANGED
package/dist/html/Canvas.svelte
CHANGED
package/dist/html/Caption.svelte
CHANGED
package/dist/html/Circle.svelte
CHANGED
package/dist/html/Cite.svelte
CHANGED
package/dist/html/Code.svelte
CHANGED
package/dist/html/Col.svelte
CHANGED
package/dist/html/Cursor.svelte
CHANGED
package/dist/html/Data.svelte
CHANGED
package/dist/html/Dd.svelte
CHANGED
package/dist/html/Dd.svelte.d.ts
CHANGED
package/dist/html/Defs.svelte
CHANGED