@infinityfx/lively 4.0.5 → 4.0.7
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/dist/layout/layout-group.js +1 -1
- package/{.rollup.cache/F/projects/code/lively/dist → dist}/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/.rollup.cache/F/projects/code/lively/dist/animatable.js +0 -147
- package/.rollup.cache/F/projects/code/lively/dist/animatable.js.map +0 -1
- package/.rollup.cache/F/projects/code/lively/dist/animate.js +0 -26
- package/.rollup.cache/F/projects/code/lively/dist/animate.js.map +0 -1
- package/.rollup.cache/F/projects/code/lively/dist/core/action.js +0 -28
- package/.rollup.cache/F/projects/code/lively/dist/core/action.js.map +0 -1
- package/.rollup.cache/F/projects/code/lively/dist/core/cache.js +0 -55
- package/.rollup.cache/F/projects/code/lively/dist/core/cache.js.map +0 -1
- package/.rollup.cache/F/projects/code/lively/dist/core/clip.js +0 -71
- package/.rollup.cache/F/projects/code/lively/dist/core/clip.js.map +0 -1
- package/.rollup.cache/F/projects/code/lively/dist/core/link.js +0 -39
- package/.rollup.cache/F/projects/code/lively/dist/core/link.js.map +0 -1
- package/.rollup.cache/F/projects/code/lively/dist/core/timeline.js +0 -107
- package/.rollup.cache/F/projects/code/lively/dist/core/timeline.js.map +0 -1
- package/.rollup.cache/F/projects/code/lively/dist/core/track.js +0 -147
- package/.rollup.cache/F/projects/code/lively/dist/core/track.js.map +0 -1
- package/.rollup.cache/F/projects/code/lively/dist/core/utils.js +0 -95
- package/.rollup.cache/F/projects/code/lively/dist/core/utils.js.map +0 -1
- package/.rollup.cache/F/projects/code/lively/dist/hooks/use-audio.js +0 -63
- package/.rollup.cache/F/projects/code/lively/dist/hooks/use-audio.js.map +0 -1
- package/.rollup.cache/F/projects/code/lively/dist/hooks/use-link.js +0 -7
- package/.rollup.cache/F/projects/code/lively/dist/hooks/use-link.js.map +0 -1
- package/.rollup.cache/F/projects/code/lively/dist/hooks/use-path.js +0 -15
- package/.rollup.cache/F/projects/code/lively/dist/hooks/use-path.js.map +0 -1
- package/.rollup.cache/F/projects/code/lively/dist/hooks/use-reduced-motion.js +0 -14
- package/.rollup.cache/F/projects/code/lively/dist/hooks/use-reduced-motion.js.map +0 -1
- package/.rollup.cache/F/projects/code/lively/dist/hooks/use-scroll.js +0 -21
- package/.rollup.cache/F/projects/code/lively/dist/hooks/use-scroll.js.map +0 -1
- package/.rollup.cache/F/projects/code/lively/dist/hooks/use-spring.js +0 -37
- package/.rollup.cache/F/projects/code/lively/dist/hooks/use-spring.js.map +0 -1
- package/.rollup.cache/F/projects/code/lively/dist/hooks/use-trigger.js +0 -15
- package/.rollup.cache/F/projects/code/lively/dist/hooks/use-trigger.js.map +0 -1
- package/.rollup.cache/F/projects/code/lively/dist/hooks/use-viewport.js +0 -27
- package/.rollup.cache/F/projects/code/lively/dist/hooks/use-viewport.js.map +0 -1
- package/.rollup.cache/F/projects/code/lively/dist/hooks/use-visible.js +0 -26
- package/.rollup.cache/F/projects/code/lively/dist/hooks/use-visible.js.map +0 -1
- package/.rollup.cache/F/projects/code/lively/dist/hooks.js +0 -11
- package/.rollup.cache/F/projects/code/lively/dist/hooks.js.map +0 -1
- package/.rollup.cache/F/projects/code/lively/dist/index.js +0 -4
- package/.rollup.cache/F/projects/code/lively/dist/index.js.map +0 -1
- package/.rollup.cache/F/projects/code/lively/dist/layout/layout-group.js +0 -209
- package/.rollup.cache/F/projects/code/lively/dist/layout/layout-group.js.map +0 -1
- package/.rollup.cache/F/projects/code/lively/dist/layout/morph.js +0 -48
- package/.rollup.cache/F/projects/code/lively/dist/layout/morph.js.map +0 -1
- package/.rollup.cache/F/projects/code/lively/dist/layout/typable.js +0 -21
- package/.rollup.cache/F/projects/code/lively/dist/layout/typable.js.map +0 -1
- package/.rollup.cache/F/projects/code/lively/dist/layout.js +0 -5
- package/.rollup.cache/F/projects/code/lively/dist/layout.js.map +0 -1
- /package/{.rollup.cache/F/projects/code/lively/dist → dist}/types/animatable.d.ts +0 -0
- /package/{.rollup.cache/F/projects/code/lively/dist → dist}/types/animate.d.ts +0 -0
- /package/{.rollup.cache/F/projects/code/lively/dist → dist}/types/core/action.d.ts +0 -0
- /package/{.rollup.cache/F/projects/code/lively/dist → dist}/types/core/cache.d.ts +0 -0
- /package/{.rollup.cache/F/projects/code/lively/dist → dist}/types/core/clip.d.ts +0 -0
- /package/{.rollup.cache/F/projects/code/lively/dist → dist}/types/core/link.d.ts +0 -0
- /package/{.rollup.cache/F/projects/code/lively/dist → dist}/types/core/timeline.d.ts +0 -0
- /package/{.rollup.cache/F/projects/code/lively/dist → dist}/types/core/track.d.ts +0 -0
- /package/{.rollup.cache/F/projects/code/lively/dist → dist}/types/core/utils.d.ts +0 -0
- /package/{.rollup.cache/F/projects/code/lively/dist → dist}/types/hooks/use-audio.d.ts +0 -0
- /package/{.rollup.cache/F/projects/code/lively/dist → dist}/types/hooks/use-link.d.ts +0 -0
- /package/{.rollup.cache/F/projects/code/lively/dist → dist}/types/hooks/use-path.d.ts +0 -0
- /package/{.rollup.cache/F/projects/code/lively/dist → dist}/types/hooks/use-reduced-motion.d.ts +0 -0
- /package/{.rollup.cache/F/projects/code/lively/dist → dist}/types/hooks/use-scroll.d.ts +0 -0
- /package/{.rollup.cache/F/projects/code/lively/dist → dist}/types/hooks/use-spring.d.ts +0 -0
- /package/{.rollup.cache/F/projects/code/lively/dist → dist}/types/hooks/use-trigger.d.ts +0 -0
- /package/{.rollup.cache/F/projects/code/lively/dist → dist}/types/hooks/use-viewport.d.ts +0 -0
- /package/{.rollup.cache/F/projects/code/lively/dist → dist}/types/hooks/use-visible.d.ts +0 -0
- /package/{.rollup.cache/F/projects/code/lively/dist → dist}/types/hooks.d.ts +0 -0
- /package/{.rollup.cache/F/projects/code/lively/dist → dist}/types/index.d.ts +0 -0
- /package/{.rollup.cache/F/projects/code/lively/dist → dist}/types/layout/layout-group.d.ts +0 -0
- /package/{.rollup.cache/F/projects/code/lively/dist → dist}/types/layout/morph.d.ts +0 -0
- /package/{.rollup.cache/F/projects/code/lively/dist → dist}/types/layout/typable.d.ts +0 -0
- /package/{.rollup.cache/F/projects/code/lively/dist → dist}/types/layout.d.ts +0 -0
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { useEffect, useRef } from "react";
|
|
3
|
-
import useTrigger from "./use-trigger";
|
|
4
|
-
import useViewport from "./use-viewport";
|
|
5
|
-
export default function useVisible({ enter = 1, exit = false, threshold = .5 } = {}) {
|
|
6
|
-
const [ref, link] = useViewport(threshold);
|
|
7
|
-
const visible = useRef(false);
|
|
8
|
-
const enters = useTrigger();
|
|
9
|
-
const exits = useTrigger();
|
|
10
|
-
useEffect(() => {
|
|
11
|
-
function linkupdate() {
|
|
12
|
-
const [x, y] = link();
|
|
13
|
-
const intersecting = x > 0 && x < 1 && y > 0 && y < 1;
|
|
14
|
-
if (!visible.current && intersecting && enters.called < (enter === true ? Infinity : +enter))
|
|
15
|
-
enters();
|
|
16
|
-
if (visible.current && !intersecting && exits.called < (exit === true ? Infinity : +exit))
|
|
17
|
-
exits();
|
|
18
|
-
visible.current = intersecting;
|
|
19
|
-
}
|
|
20
|
-
linkupdate();
|
|
21
|
-
link.subscribe(linkupdate);
|
|
22
|
-
return () => link.unsubscribe(linkupdate);
|
|
23
|
-
}, [enters, exits]);
|
|
24
|
-
return [ref, enters, exits];
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=use-visible.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-visible.js","sourceRoot":"","sources":["../../src/hooks/use-visible.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,UAAuB,MAAM,eAAe,CAAC;AACpD,OAAO,WAAW,MAAM,gBAAgB,CAAC;AAEzC,MAAM,CAAC,OAAO,UAAU,UAAU,CAA0B,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,SAAS,GAAG,EAAE,KAIjG,EAAE;IACF,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC;IAE3B,SAAS,CAAC,GAAG,EAAE;QACX,SAAS,UAAU;YACf,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC;YACtB,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAEtD,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,YAAY,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBAAE,MAAM,EAAE,CAAC;YACvG,IAAI,OAAO,CAAC,OAAO,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAAE,KAAK,EAAE,CAAC;YAEnG,OAAO,CAAC,OAAO,GAAG,YAAY,CAAC;QACnC,CAAC;QAED,UAAU,EAAE,CAAC;QACb,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAE3B,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IAEpB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AAChC,CAAC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import useLink from "./hooks/use-link";
|
|
2
|
-
import useTrigger from "./hooks/use-trigger";
|
|
3
|
-
import useReducedMotion from "./hooks/use-reduced-motion";
|
|
4
|
-
import useScroll from "./hooks/use-scroll";
|
|
5
|
-
import usePath from "./hooks/use-path";
|
|
6
|
-
import useViewport from "./hooks/use-viewport";
|
|
7
|
-
import useVisible from "./hooks/use-visible";
|
|
8
|
-
import useAudio from "./hooks/use-audio";
|
|
9
|
-
import useSpring from "./hooks/use-spring";
|
|
10
|
-
export { useLink, useTrigger, useReducedMotion, useScroll, usePath, useViewport, useVisible, useAudio, useSpring };
|
|
11
|
-
//# sourceMappingURL=hooks.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAC7C,OAAO,gBAAgB,MAAM,4BAA4B,CAAC;AAC1D,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAC3C,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,WAAW,MAAM,sBAAsB,CAAC;AAC/C,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAC7C,OAAO,QAAQ,MAAM,mBAAmB,CAAC;AACzC,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EACH,OAAO,EACP,UAAU,EACV,gBAAgB,EAChB,SAAS,EACT,OAAO,EACP,WAAW,EACX,UAAU,EACV,QAAQ,EACR,SAAS,EACZ,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,OAAO,MAAM,WAAW,CAAC;AAEhC,OAAO,EACH,UAAU,EACV,OAAO,EACV,CAAC"}
|
|
@@ -1,209 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
-
import { Children, cloneElement, isValidElement, useLayoutEffect, useRef, useState } from "react";
|
|
4
|
-
import Animatable from "../animatable";
|
|
5
|
-
import { Groups } from "./morph";
|
|
6
|
-
function traverseTree(tree, callback, partialIndex = []) {
|
|
7
|
-
const array = 'nodes' in tree ? tree.nodes : tree;
|
|
8
|
-
for (let i = 0; i < array.length; i++) {
|
|
9
|
-
const index = [...partialIndex, i];
|
|
10
|
-
let returnValue = callback(array[i], index);
|
|
11
|
-
if (!returnValue)
|
|
12
|
-
returnValue = traverseTree(array[i].nodes, callback, index);
|
|
13
|
-
if (returnValue)
|
|
14
|
-
return returnValue;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
// find a node tree index based on a component key
|
|
18
|
-
function findIndex(tree, key) {
|
|
19
|
-
return traverseTree(tree, (node, index) => {
|
|
20
|
-
if (node.key === key)
|
|
21
|
-
return index;
|
|
22
|
-
}) || null;
|
|
23
|
-
}
|
|
24
|
-
// get a node from a node tree based on an index
|
|
25
|
-
function getNode(tree, index) {
|
|
26
|
-
let node = tree[index[0]];
|
|
27
|
-
for (let i = 1; i < index.length; i++) {
|
|
28
|
-
if (!node)
|
|
29
|
-
break;
|
|
30
|
-
node = node.nodes[index[i]];
|
|
31
|
-
}
|
|
32
|
-
return node;
|
|
33
|
-
}
|
|
34
|
-
// delete/replace/insert a node into a node tree based on an index
|
|
35
|
-
function spliceNode(tree, index, deleteCount, insert) {
|
|
36
|
-
const i = index[index.length - 1];
|
|
37
|
-
const nodes = index.length > 1 ? getNode(tree, index.slice(0, -1))?.nodes : tree;
|
|
38
|
-
if (nodes)
|
|
39
|
-
insert ? nodes.splice(i, deleteCount, insert) : nodes.splice(i, deleteCount);
|
|
40
|
-
}
|
|
41
|
-
// compare a node tree with a react component tree
|
|
42
|
-
// and take note of new components that are mounting
|
|
43
|
-
function compareTree({ tree, nodes, mounting, partialIndex = [], keys = new Set(), parent = ['', 0] }) {
|
|
44
|
-
Children.forEach(nodes, (child, i) => {
|
|
45
|
-
const isElement = isValidElement(child);
|
|
46
|
-
const hasElements = isElement && (Array.isArray(child.props.children) || isValidElement(child.props.children));
|
|
47
|
-
const isValidLively = isElement && child.type.isLively && 'id' in child.props;
|
|
48
|
-
const shouldTraverse = hasElements && (!child.type.isLively || child.props.traverseLayout);
|
|
49
|
-
const index = [...partialIndex, i];
|
|
50
|
-
const node = hasElements && !child.type.isLively ?
|
|
51
|
-
cloneElement(child, undefined, []) :
|
|
52
|
-
child;
|
|
53
|
-
const [pkey, poffset] = parent;
|
|
54
|
-
const key = isValidLively ? child.props.id : `$l.${pkey ? pkey + '.' : ''}${index.slice(-poffset).join('')}`;
|
|
55
|
-
const renderedIndex = findIndex(tree, key);
|
|
56
|
-
const target = renderedIndex ? getNode(tree, renderedIndex) : undefined;
|
|
57
|
-
if (!target || (!isValidLively && !target.key.startsWith('$l.'))) {
|
|
58
|
-
mounting.set(key, {
|
|
59
|
-
node,
|
|
60
|
-
index
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
if (renderedIndex && renderedIndex.join('') !== index.join('')) {
|
|
65
|
-
spliceNode(tree, renderedIndex, 1);
|
|
66
|
-
spliceNode(tree, index, 0, target);
|
|
67
|
-
}
|
|
68
|
-
target.node = node;
|
|
69
|
-
}
|
|
70
|
-
if (shouldTraverse)
|
|
71
|
-
compareTree({
|
|
72
|
-
tree,
|
|
73
|
-
nodes: child.props.children,
|
|
74
|
-
mounting,
|
|
75
|
-
partialIndex: index,
|
|
76
|
-
keys,
|
|
77
|
-
parent: isValidLively ?
|
|
78
|
-
[key, 1] :
|
|
79
|
-
poffset ?
|
|
80
|
-
[pkey, poffset + 1] :
|
|
81
|
-
undefined
|
|
82
|
-
});
|
|
83
|
-
keys.add(key);
|
|
84
|
-
});
|
|
85
|
-
return keys;
|
|
86
|
-
}
|
|
87
|
-
// convert a node tree to a react component tree
|
|
88
|
-
function renderTree(tree) {
|
|
89
|
-
const array = tree.map(node => {
|
|
90
|
-
if (!isValidElement(node.node))
|
|
91
|
-
return node.node;
|
|
92
|
-
return node.nodes.length ?
|
|
93
|
-
cloneElement(node.node, { key: node.key }, renderTree(node.nodes)) :
|
|
94
|
-
cloneElement(node.node, { key: node.key });
|
|
95
|
-
});
|
|
96
|
-
return array.length > 1 ? array : array[0];
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Animate layout changes or unmounts.
|
|
100
|
-
*
|
|
101
|
-
* @see {@link https://lively.infinityfx.dev/docs/components/layout-group}
|
|
102
|
-
*/
|
|
103
|
-
export default function LayoutGroup({ children, transition, initialMount = true }) {
|
|
104
|
-
const preventMount = useRef(!initialMount);
|
|
105
|
-
const ref = useRef(null);
|
|
106
|
-
const [_, forceUpdate] = useState({});
|
|
107
|
-
const rendered = useRef([]);
|
|
108
|
-
const mounting = useRef(new Map());
|
|
109
|
-
const timeout = useRef(undefined);
|
|
110
|
-
const unmountDelay = useRef(0);
|
|
111
|
-
const unmounting = useRef(new Set());
|
|
112
|
-
// get keys of current render passes' children
|
|
113
|
-
// and register any newly mounted nodes
|
|
114
|
-
const keys = compareTree({
|
|
115
|
-
tree: rendered.current,
|
|
116
|
-
nodes: children,
|
|
117
|
-
mounting: mounting.current
|
|
118
|
-
});
|
|
119
|
-
// filter out newly mounted nodes that aren't animatables
|
|
120
|
-
mounting.current.forEach((_, key) => {
|
|
121
|
-
if (!keys.has(key))
|
|
122
|
-
mounting.current.delete(key);
|
|
123
|
-
});
|
|
124
|
-
// register any nodes that have unmounted compared to the currently rendered nodes
|
|
125
|
-
traverseTree(rendered.current, node => {
|
|
126
|
-
if (!keys.has(node.key))
|
|
127
|
-
unmounting.current.add(node.key);
|
|
128
|
-
});
|
|
129
|
-
if (unmounting.current.size && ref.current) {
|
|
130
|
-
// loop over nodes to check for nodes that need to be unmounted
|
|
131
|
-
for (const child of ref.current.children) {
|
|
132
|
-
const id = child.current?.id, isUnmounting = unmounting.current.has(id);
|
|
133
|
-
if (!child.current)
|
|
134
|
-
continue;
|
|
135
|
-
// if node remounted during unmount animation, then cancel the unmounting
|
|
136
|
-
// and replay mount animation
|
|
137
|
-
if (isUnmounting && keys.has(id)) {
|
|
138
|
-
unmounting.current.delete(id);
|
|
139
|
-
child.current.trigger('mount', { immediate: true });
|
|
140
|
-
child.current.timeline.mounted = true;
|
|
141
|
-
continue;
|
|
142
|
-
}
|
|
143
|
-
// if node needs to be unmounted and is animatable, try to play unmount animation and register animation duration
|
|
144
|
-
if (isUnmounting && child.current.timeline.mounted) {
|
|
145
|
-
const ends = Date.now() + child.current.trigger('unmount', { immediate: true }) * 1000;
|
|
146
|
-
unmountDelay.current = Math.max(unmountDelay.current, ends);
|
|
147
|
-
if (child.current.group) {
|
|
148
|
-
const morph = Groups[child.current.group].get(child.current.timeline);
|
|
149
|
-
if (morph)
|
|
150
|
-
morph.state = 'unmounted';
|
|
151
|
-
}
|
|
152
|
-
child.current.timeline.mounted = false;
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
const delay = unmountDelay.current - Date.now();
|
|
156
|
-
clearTimeout(timeout.current);
|
|
157
|
-
// removes unmounted nodes from the rendered nodes tree
|
|
158
|
-
const afterUnmount = (update = true) => {
|
|
159
|
-
unmounting.current.forEach(key => {
|
|
160
|
-
const index = findIndex(rendered.current, key);
|
|
161
|
-
if (index)
|
|
162
|
-
spliceNode(rendered.current, index, 1);
|
|
163
|
-
});
|
|
164
|
-
unmounting.current.clear();
|
|
165
|
-
if (update)
|
|
166
|
-
forceUpdate({});
|
|
167
|
-
};
|
|
168
|
-
if (delay > 0) {
|
|
169
|
-
timeout.current = setTimeout(afterUnmount, delay);
|
|
170
|
-
}
|
|
171
|
-
else {
|
|
172
|
-
afterUnmount(false);
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
// only mount new nodes when no old nodes need to be unmounted
|
|
176
|
-
if (!unmounting.current.size && mounting.current.size) { // maybe do this simultanously with unmount (requires unmounts to happen with position absolute..)
|
|
177
|
-
mounting.current.forEach(({ node, index }, key) => {
|
|
178
|
-
spliceNode(rendered.current, index, 0, {
|
|
179
|
-
key,
|
|
180
|
-
node,
|
|
181
|
-
nodes: []
|
|
182
|
-
});
|
|
183
|
-
});
|
|
184
|
-
mounting.current.clear();
|
|
185
|
-
}
|
|
186
|
-
// observe any changes inbetween renders
|
|
187
|
-
useLayoutEffect(() => {
|
|
188
|
-
if (!ref.current)
|
|
189
|
-
return;
|
|
190
|
-
let child, children = ref.current.children.slice();
|
|
191
|
-
// loop over all animatable children
|
|
192
|
-
while (child = children.pop()) {
|
|
193
|
-
if (preventMount.current && child.current)
|
|
194
|
-
child.current.timeline.mounted = true;
|
|
195
|
-
// if child can't be compared to the rendered tree or should not adaptively animate, then skip this child
|
|
196
|
-
if (!child.current?.id ||
|
|
197
|
-
!child.current.timeline.mounted ||
|
|
198
|
-
!child.current.adaptive ||
|
|
199
|
-
findIndex(rendered.current, child.current.id) === null)
|
|
200
|
-
continue;
|
|
201
|
-
// else we transition between the old and new layout of this child
|
|
202
|
-
child.current.timeline.transition(undefined, transition);
|
|
203
|
-
children.push(...child.current.children);
|
|
204
|
-
}
|
|
205
|
-
preventMount.current = false;
|
|
206
|
-
});
|
|
207
|
-
return _jsx(Animatable, { ref: ref, passthrough: true, cachable: [], children: renderTree(rendered.current) });
|
|
208
|
-
}
|
|
209
|
-
//# sourceMappingURL=layout-group.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"layout-group.js","sourceRoot":"","sources":["../../src/layout/layout-group.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
-
import { use, useLayoutEffect, useRef } from "react";
|
|
4
|
-
import Animatable, { AnimatableContext } from "../animatable";
|
|
5
|
-
import { combineRefs } from "../core/utils";
|
|
6
|
-
export const Groups = {};
|
|
7
|
-
/**
|
|
8
|
-
* Peform layout morphs between components when one mounts and unmount.
|
|
9
|
-
*
|
|
10
|
-
* @see {@link https://lively.infinityfx.dev/docs/components/morph}
|
|
11
|
-
*/
|
|
12
|
-
export default function Morph({ children, group, transition, ...props }) {
|
|
13
|
-
const parent = use(AnimatableContext);
|
|
14
|
-
const id = parent?.group ? `${parent.group}.${group}` : group;
|
|
15
|
-
if (!(id in Groups))
|
|
16
|
-
Groups[id] = new Map();
|
|
17
|
-
const ref = useRef(null);
|
|
18
|
-
useLayoutEffect(() => {
|
|
19
|
-
const timeline = ref.current?.timeline;
|
|
20
|
-
if (!timeline)
|
|
21
|
-
return;
|
|
22
|
-
if (!Groups[id].has(timeline)) {
|
|
23
|
-
Groups[id].set(timeline, { state: 'mounted' });
|
|
24
|
-
}
|
|
25
|
-
else {
|
|
26
|
-
const entry = Groups[id].get(timeline);
|
|
27
|
-
entry.state = 'mounted';
|
|
28
|
-
}
|
|
29
|
-
const targets = Array.from(Groups[id].entries());
|
|
30
|
-
const target = targets.find(([_, data]) => data.state === 'unmounted');
|
|
31
|
-
if (target && !timeline.mounted) {
|
|
32
|
-
timeline.transition(target[0], transition);
|
|
33
|
-
target[1].state = 'collected';
|
|
34
|
-
}
|
|
35
|
-
else if (!timeline.mounted) {
|
|
36
|
-
ref.current?.trigger('mount');
|
|
37
|
-
}
|
|
38
|
-
timeline.mounted = true;
|
|
39
|
-
return () => {
|
|
40
|
-
const entry = Groups[id].get(timeline);
|
|
41
|
-
entry.state = 'unmounted';
|
|
42
|
-
setTimeout(() => entry.state = 'collected', 1);
|
|
43
|
-
};
|
|
44
|
-
}, []);
|
|
45
|
-
return _jsx(Animatable, { ...props, group: id, manual: true, ref: combineRefs(ref, props.ref), children: children });
|
|
46
|
-
}
|
|
47
|
-
Morph.isLively = true;
|
|
48
|
-
//# sourceMappingURL=morph.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"morph.js","sourceRoot":"","sources":["../../src/layout/morph.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACrD,OAAO,UAAU,EAAE,EAAE,iBAAiB,EAAmC,MAAM,eAAe,CAAC;AAC/F,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,MAAM,CAAC,MAAM,MAAM,GAIf,EAAE,CAAC;AAEP;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,KAAK,EAMlD;IACf,MAAM,MAAM,GAAG,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACtC,MAAM,EAAE,GAAG,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9D,IAAI,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC;QAAE,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;IAE5C,MAAM,GAAG,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IAEhD,eAAe,CAAC,GAAG,EAAE;QACjB,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC;QACvC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACnD,CAAC;aAAM,CAAC;YACJ,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAQ,CAAC;YAC9C,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC;QAC5B,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC;QAEvE,IAAI,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YAC9B,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;YAC3C,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,WAAW,CAAC;QAClC,CAAC;aACG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACpB,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;QAEL,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;QAExB,OAAO,GAAG,EAAE;YACR,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAQ,CAAC;YAC9C,KAAK,CAAC,KAAK,GAAG,WAAW,CAAC;YAC1B,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,WAAW,EAAE,CAAC,CAAC,CAAC;QACnD,CAAC,CAAC;IACN,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,KAAC,UAAU,OAAK,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,QAAC,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,YAC3E,QAAQ,GACA,CAAC;AAClB,CAAC;AAED,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
-
import { Children } from "react";
|
|
4
|
-
import Animatable from "../animatable";
|
|
5
|
-
/**
|
|
6
|
-
* Wrap around text to animate it.
|
|
7
|
-
*
|
|
8
|
-
* @see {@link https://lively.infinityfx.dev/docs/components/typable}
|
|
9
|
-
*/
|
|
10
|
-
export default function Typable({ children, stagger = 1, staggerLimit = Number.MAX_VALUE, ...props }) {
|
|
11
|
-
return _jsx(Animatable, { ...props, stagger: stagger * -1, staggerLimit: staggerLimit, children: Children.map(children, child => {
|
|
12
|
-
if (typeof child !== 'string' && typeof child !== 'number')
|
|
13
|
-
return child;
|
|
14
|
-
return child
|
|
15
|
-
.toString()
|
|
16
|
-
.split('')
|
|
17
|
-
.map(char => _jsx("span", { style: { whiteSpace: char === ' ' ? 'pre-wrap' : undefined }, children: char }));
|
|
18
|
-
}) });
|
|
19
|
-
}
|
|
20
|
-
Typable.isLively = true;
|
|
21
|
-
//# sourceMappingURL=typable.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"typable.js","sourceRoot":"","sources":["../../src/layout/typable.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,UAA+B,MAAM,eAAe,CAAC;AAE5D;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,EAAE,QAAQ,EAAE,OAAO,GAAG,CAAC,EAAE,YAAY,GAAG,MAAM,CAAC,SAAS,EAAE,GAAG,KAAK,EAAmB;IAEjH,OAAO,KAAC,UAAU,OAAK,KAAK,EAAE,OAAO,EAAE,OAAO,GAAG,CAAC,CAAC,EAAE,YAAY,EAAE,YAAY,YAC1E,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE;YAC5B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAE,OAAO,KAAK,CAAC;YAEzE,OAAO,KAAK;iBACP,QAAQ,EAAE;iBACV,KAAK,CAAC,EAAE,CAAC;iBACT,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,eAAM,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EAAE,YAAG,IAAI,GAAQ,CAAC,CAAC;QACxG,CAAC,CAAC,GACO,CAAC;AAClB,CAAC;AAED,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"layout.js","sourceRoot":"","sources":["../src/layout.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAChD,OAAO,KAAK,MAAM,gBAAgB,CAAC;AACnC,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAEvC,OAAO,EACH,WAAW,EACX,KAAK,EACL,OAAO,EACV,CAAC"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/{.rollup.cache/F/projects/code/lively/dist → dist}/types/hooks/use-reduced-motion.d.ts
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|