@infinityfx/lively 4.0.4 → 4.0.6

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.
Files changed (96) hide show
  1. package/.rollup.cache/F/projects/code/lively/dist/animatable.js +147 -0
  2. package/.rollup.cache/F/projects/code/lively/dist/animatable.js.map +1 -0
  3. package/.rollup.cache/F/projects/code/lively/dist/animate.js +26 -0
  4. package/.rollup.cache/F/projects/code/lively/dist/animate.js.map +1 -0
  5. package/.rollup.cache/F/projects/code/lively/dist/core/action.js +28 -0
  6. package/.rollup.cache/F/projects/code/lively/dist/core/action.js.map +1 -0
  7. package/.rollup.cache/F/projects/code/lively/dist/core/cache.js +55 -0
  8. package/.rollup.cache/F/projects/code/lively/dist/core/cache.js.map +1 -0
  9. package/.rollup.cache/F/projects/code/lively/dist/core/clip.js +71 -0
  10. package/.rollup.cache/F/projects/code/lively/dist/core/clip.js.map +1 -0
  11. package/.rollup.cache/F/projects/code/lively/dist/core/link.js +39 -0
  12. package/.rollup.cache/F/projects/code/lively/dist/core/link.js.map +1 -0
  13. package/.rollup.cache/F/projects/code/lively/dist/core/timeline.js +107 -0
  14. package/.rollup.cache/F/projects/code/lively/dist/core/timeline.js.map +1 -0
  15. package/.rollup.cache/F/projects/code/lively/dist/core/track.js +147 -0
  16. package/.rollup.cache/F/projects/code/lively/dist/core/track.js.map +1 -0
  17. package/.rollup.cache/F/projects/code/lively/dist/core/utils.js +95 -0
  18. package/.rollup.cache/F/projects/code/lively/dist/core/utils.js.map +1 -0
  19. package/.rollup.cache/F/projects/code/lively/dist/hooks/use-audio.js +63 -0
  20. package/.rollup.cache/F/projects/code/lively/dist/hooks/use-audio.js.map +1 -0
  21. package/.rollup.cache/F/projects/code/lively/dist/hooks/use-link.js +7 -0
  22. package/.rollup.cache/F/projects/code/lively/dist/hooks/use-link.js.map +1 -0
  23. package/.rollup.cache/F/projects/code/lively/dist/hooks/use-path.js +15 -0
  24. package/.rollup.cache/F/projects/code/lively/dist/hooks/use-path.js.map +1 -0
  25. package/.rollup.cache/F/projects/code/lively/dist/hooks/use-reduced-motion.js +14 -0
  26. package/.rollup.cache/F/projects/code/lively/dist/hooks/use-reduced-motion.js.map +1 -0
  27. package/.rollup.cache/F/projects/code/lively/dist/hooks/use-scroll.js +21 -0
  28. package/.rollup.cache/F/projects/code/lively/dist/hooks/use-scroll.js.map +1 -0
  29. package/.rollup.cache/F/projects/code/lively/dist/hooks/use-spring.js +37 -0
  30. package/.rollup.cache/F/projects/code/lively/dist/hooks/use-spring.js.map +1 -0
  31. package/.rollup.cache/F/projects/code/lively/dist/hooks/use-trigger.js +15 -0
  32. package/.rollup.cache/F/projects/code/lively/dist/hooks/use-trigger.js.map +1 -0
  33. package/.rollup.cache/F/projects/code/lively/dist/hooks/use-viewport.js +27 -0
  34. package/.rollup.cache/F/projects/code/lively/dist/hooks/use-viewport.js.map +1 -0
  35. package/.rollup.cache/F/projects/code/lively/dist/hooks/use-visible.js +26 -0
  36. package/.rollup.cache/F/projects/code/lively/dist/hooks/use-visible.js.map +1 -0
  37. package/.rollup.cache/F/projects/code/lively/dist/hooks.js +11 -0
  38. package/.rollup.cache/F/projects/code/lively/dist/hooks.js.map +1 -0
  39. package/.rollup.cache/F/projects/code/lively/dist/index.js +4 -0
  40. package/.rollup.cache/F/projects/code/lively/dist/index.js.map +1 -0
  41. package/.rollup.cache/F/projects/code/lively/dist/layout/layout-group.js +209 -0
  42. package/.rollup.cache/F/projects/code/lively/dist/layout/layout-group.js.map +1 -0
  43. package/.rollup.cache/F/projects/code/lively/dist/layout/morph.js +48 -0
  44. package/.rollup.cache/F/projects/code/lively/dist/layout/morph.js.map +1 -0
  45. package/.rollup.cache/F/projects/code/lively/dist/layout/typable.js +21 -0
  46. package/.rollup.cache/F/projects/code/lively/dist/layout/typable.js.map +1 -0
  47. package/.rollup.cache/F/projects/code/lively/dist/layout.js +5 -0
  48. package/.rollup.cache/F/projects/code/lively/dist/layout.js.map +1 -0
  49. package/.rollup.cache/F/projects/code/lively/dist/tsconfig.tsbuildinfo +1 -0
  50. package/.rollup.cache/F/projects/code/lively/dist/types/animatable.d.ts +112 -0
  51. package/.rollup.cache/F/projects/code/lively/dist/types/animate.d.ts +19 -0
  52. package/.rollup.cache/F/projects/code/lively/dist/types/core/action.d.ts +15 -0
  53. package/.rollup.cache/F/projects/code/lively/dist/types/core/cache.d.ts +23 -0
  54. package/.rollup.cache/F/projects/code/lively/dist/types/core/clip.d.ts +52 -0
  55. package/.rollup.cache/F/projects/code/lively/dist/types/core/link.d.ts +14 -0
  56. package/.rollup.cache/F/projects/code/lively/dist/types/core/timeline.d.ts +41 -0
  57. package/.rollup.cache/F/projects/code/lively/dist/types/core/track.d.ts +32 -0
  58. package/.rollup.cache/F/projects/code/lively/dist/types/core/utils.d.ts +39 -0
  59. package/.rollup.cache/F/projects/code/lively/dist/types/hooks/use-audio.d.ts +7 -0
  60. package/.rollup.cache/F/projects/code/lively/dist/types/hooks/use-link.d.ts +1 -0
  61. package/.rollup.cache/F/projects/code/lively/dist/types/hooks/use-path.d.ts +1 -0
  62. package/.rollup.cache/F/projects/code/lively/dist/types/hooks/use-reduced-motion.d.ts +1 -0
  63. package/.rollup.cache/F/projects/code/lively/dist/types/hooks/use-scroll.d.ts +9 -0
  64. package/.rollup.cache/F/projects/code/lively/dist/types/hooks/use-spring.d.ts +6 -0
  65. package/.rollup.cache/F/projects/code/lively/dist/types/hooks/use-trigger.d.ts +4 -0
  66. package/.rollup.cache/F/projects/code/lively/dist/types/hooks/use-viewport.d.ts +2 -0
  67. package/.rollup.cache/F/projects/code/lively/dist/types/hooks/use-visible.d.ts +6 -0
  68. package/.rollup.cache/F/projects/code/lively/dist/types/hooks.d.ts +10 -0
  69. package/.rollup.cache/F/projects/code/lively/dist/types/index.d.ts +3 -0
  70. package/.rollup.cache/F/projects/code/lively/dist/types/layout/layout-group.d.ts +16 -0
  71. package/.rollup.cache/F/projects/code/lively/dist/types/layout/morph.d.ts +24 -0
  72. package/.rollup.cache/F/projects/code/lively/dist/types/layout/typable.d.ts +11 -0
  73. package/.rollup.cache/F/projects/code/lively/dist/types/layout.d.ts +4 -0
  74. package/dist/animatable.js +1 -1
  75. package/dist/animate.js +1 -1
  76. package/dist/core/action.js +1 -1
  77. package/dist/core/action.js.map +1 -1
  78. package/dist/core/cache.js +1 -1
  79. package/dist/core/cache.js.map +1 -1
  80. package/dist/core/clip.js +1 -1
  81. package/dist/core/clip.js.map +1 -1
  82. package/dist/core/timeline.js +1 -1
  83. package/dist/core/timeline.js.map +1 -1
  84. package/dist/core/track.js +1 -1
  85. package/dist/core/track.js.map +1 -1
  86. package/dist/core/utils.js +1 -1
  87. package/dist/core/utils.js.map +1 -1
  88. package/dist/hooks/use-audio.js +1 -1
  89. package/dist/hooks/use-scroll.js +1 -1
  90. package/dist/layout/layout-group.js +1 -1
  91. package/dist/layout/morph.js +1 -1
  92. package/dist/layout/typable.js +1 -1
  93. package/dist/tsconfig.tsbuildinfo +1 -0
  94. package/dist/types/core/utils.d.ts +1 -0
  95. package/package.json +1 -1
  96. package/tsconfig.json +4 -2
@@ -0,0 +1,209 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout-group.js","sourceRoot":"","sources":["../../src/layout/layout-group.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,21 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,5 @@
1
+ import LayoutGroup from "./layout/layout-group";
2
+ import Morph from "./layout/morph";
3
+ import Typable from "./layout/typable";
4
+ export { LayoutGroup, Morph, Typable };
5
+ //# sourceMappingURL=layout.js.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1 @@
1
+ {"program":{"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.es2021.d.ts","../node_modules/typescript/lib/lib.es2022.d.ts","../node_modules/typescript/lib/lib.es2023.d.ts","../node_modules/typescript/lib/lib.esnext.d.ts","../node_modules/typescript/lib/lib.dom.d.ts","../node_modules/typescript/lib/lib.dom.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2016.intl.d.ts","../node_modules/typescript/lib/lib.es2017.date.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.es2021.promise.d.ts","../node_modules/typescript/lib/lib.es2021.string.d.ts","../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../node_modules/typescript/lib/lib.es2021.intl.d.ts","../node_modules/typescript/lib/lib.es2022.array.d.ts","../node_modules/typescript/lib/lib.es2022.error.d.ts","../node_modules/typescript/lib/lib.es2022.intl.d.ts","../node_modules/typescript/lib/lib.es2022.object.d.ts","../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2022.string.d.ts","../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../node_modules/typescript/lib/lib.es2023.array.d.ts","../node_modules/typescript/lib/lib.es2023.collection.d.ts","../node_modules/typescript/lib/lib.es2023.intl.d.ts","../node_modules/typescript/lib/lib.esnext.array.d.ts","../node_modules/typescript/lib/lib.esnext.collection.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../node_modules/typescript/lib/lib.esnext.string.d.ts","../node_modules/typescript/lib/lib.esnext.promise.d.ts","../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../node_modules/typescript/lib/lib.esnext.object.d.ts","../node_modules/typescript/lib/lib.esnext.regexp.d.ts","../node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../node_modules/tslib/tslib.d.ts","../node_modules/@types/react/global.d.ts","../node_modules/csstype/index.d.ts","../node_modules/@types/react/index.d.ts","../node_modules/@types/react/jsx-runtime.d.ts","../src/core/cache.ts","../src/core/utils.ts","../src/core/track.ts","../src/core/action.ts","../src/core/link.ts","../src/core/clip.ts","../src/hooks/use-trigger.ts","../src/core/timeline.ts","../src/animatable.tsx","../src/animate.tsx","../src/hooks/use-link.ts","../src/hooks/use-reduced-motion.ts","../src/hooks/use-scroll.ts","../src/hooks/use-path.ts","../src/hooks/use-viewport.ts","../src/hooks/use-visible.ts","../src/hooks/use-audio.ts","../src/hooks/use-spring.ts","../src/hooks.ts","../src/index.ts","../src/layout/morph.tsx","../src/layout/layout-group.tsx","../src/layout/typable.tsx","../src/layout.ts","../node_modules/@types/estree/index.d.ts","../node_modules/@types/node/assert.d.ts","../node_modules/@types/node/assert/strict.d.ts","../node_modules/@types/node/globals.d.ts","../node_modules/@types/node/async_hooks.d.ts","../node_modules/@types/node/buffer.d.ts","../node_modules/@types/node/child_process.d.ts","../node_modules/@types/node/cluster.d.ts","../node_modules/@types/node/console.d.ts","../node_modules/@types/node/constants.d.ts","../node_modules/@types/node/crypto.d.ts","../node_modules/@types/node/dgram.d.ts","../node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/@types/node/dns.d.ts","../node_modules/@types/node/dns/promises.d.ts","../node_modules/@types/node/domain.d.ts","../node_modules/@types/node/events.d.ts","../node_modules/@types/node/fs.d.ts","../node_modules/@types/node/fs/promises.d.ts","../node_modules/@types/node/http.d.ts","../node_modules/@types/node/http2.d.ts","../node_modules/@types/node/https.d.ts","../node_modules/@types/node/inspector.d.ts","../node_modules/@types/node/module.d.ts","../node_modules/@types/node/net.d.ts","../node_modules/@types/node/os.d.ts","../node_modules/@types/node/path.d.ts","../node_modules/@types/node/perf_hooks.d.ts","../node_modules/@types/node/process.d.ts","../node_modules/@types/node/punycode.d.ts","../node_modules/@types/node/querystring.d.ts","../node_modules/@types/node/readline.d.ts","../node_modules/@types/node/repl.d.ts","../node_modules/@types/node/stream.d.ts","../node_modules/@types/node/stream/promises.d.ts","../node_modules/@types/node/stream/consumers.d.ts","../node_modules/@types/node/stream/web.d.ts","../node_modules/@types/node/string_decoder.d.ts","../node_modules/@types/node/test.d.ts","../node_modules/@types/node/timers.d.ts","../node_modules/@types/node/timers/promises.d.ts","../node_modules/@types/node/tls.d.ts","../node_modules/@types/node/trace_events.d.ts","../node_modules/@types/node/tty.d.ts","../node_modules/@types/node/url.d.ts","../node_modules/@types/node/util.d.ts","../node_modules/@types/node/v8.d.ts","../node_modules/@types/node/vm.d.ts","../node_modules/@types/node/wasi.d.ts","../node_modules/@types/node/worker_threads.d.ts","../node_modules/@types/node/zlib.d.ts","../node_modules/@types/node/globals.global.d.ts","../node_modules/@types/node/index.d.ts","../node_modules/@types/minimatch/index.d.ts","../node_modules/@types/glob/index.d.ts","../node_modules/@types/react-dom/index.d.ts","../node_modules/@types/resolve/index.d.ts"],"fileInfos":[{"version":"44e584d4f6444f58791784f1d530875970993129442a847597db702a073ca68c","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","17edc026abf73c5c2dd508652d63f68ec4efd9d4856e3469890d27598209feb5",{"version":"4af6b0c727b7a2896463d512fafd23634229adf69ac7c00e2ae15a09cb084fad","affectsGlobalScope":true},{"version":"9c00a480825408b6a24c63c1b71362232927247595d7c97659bc24dc68ae0757","affectsGlobalScope":true},{"version":"6920e1448680767498a0b77c6a00a8e77d14d62c3da8967b171f1ddffa3c18e4","affectsGlobalScope":true},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true},{"version":"ae37d6ccd1560b0203ab88d46987393adaaa78c919e51acf32fb82c86502e98c","affectsGlobalScope":true},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"5e07ed3809d48205d5b985642a59f2eba47c402374a7cf8006b686f79efadcbd","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"479553e3779be7d4f68e9f40cdb82d038e5ef7592010100410723ceced22a0f7","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"d3d7b04b45033f57351c8434f60b6be1ea71a2dfec2d0a0c3c83badbb0e3e693","affectsGlobalScope":true},{"version":"956d27abdea9652e8368ce029bb1e0b9174e9678a273529f426df4b3d90abd60","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true},{"version":"d8670852241d4c6e03f2b89d67497a4bbefe29ecaa5a444e2c11a9b05e6fccc6","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true},{"version":"08a58483392df5fcc1db57d782e87734f77ae9eab42516028acbfe46f29a3ef7","affectsGlobalScope":true},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true},{"version":"0b11f3ca66aa33124202c80b70cd203219c3d4460cfc165e0707aa9ec710fc53","affectsGlobalScope":true},{"version":"6a3f5a0129cc80cf439ab71164334d649b47059a4f5afca90282362407d0c87f","affectsGlobalScope":true},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true},{"version":"15b98a533864d324e5f57cd3cfc0579b231df58c1c0f6063ea0fcb13c3c74ff9","affectsGlobalScope":true},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},"4a882ffbb4ed09d9b7734f784aebb1dfe488d63725c40759165c5d9c657ca029",{"version":"36a2e4c9a67439aca5f91bb304611d5ae6e20d420503e96c230cf8fcdc948d94","affectsGlobalScope":true},"8a8eb4ebffd85e589a1cc7c178e291626c359543403d58c9cd22b81fab5b1fb9","a305ee2f90e34e9e70aba9a9e9a154ce20c4d5cd1499cd21b8dc3617e1e5c810","42c169fb8c2d42f4f668c624a9a11e719d5d07dacbebb63cbcf7ef365b0a75b3","6a72b3d16fadf637354af566b7a3116bd9ae1bf82fa85748194b3882e20c9872","52c1a3fdd80165b67812bceca098e2db1813d95a5608b18210b68184562342e7","1825af831be2fe27a3fa623856a83ff35157198bc09280cd84ee00c25e780a76","8452afbcac66e3f8db08aab3219468c89bead4225ae22f7bda79651460cfba26","39644538dbe46560bb25c9b6790905fe59e913c4a501c77d447d8b9b21c9081f","a5c68267225c3b6f3071a915d4ccd162951aae82261dad851a958d67ea75452e","46ac9c11b5e6212e5156bb535756b60477ac624fc3bb532e551de6e6c46aa9ac","5ba6ee52b56c32cab54ddf22f9df9f3d7fe77c89b39d9a856df5b7fe78bc168d","c484a1f31d668a5251eaae8793d4c8f5178fceb79e4f79c04b652cffb679b481","b0fcfb391f7c9be72769287279ee7abec02afe97ea1c3d5149bf75a3584d94a9","689fd50b4138b903d4d8da8dc8f1bed8774cdbfc5e88126b45b14127bc6efcba","2e9d408dec35668f3826e2727dbe2d00911bf7a20098bc4c9d14100edab3f491","786ad2486cb2ade3053ed5a26156b0959948ee980e94e6abec39b1083bdd74f5","1395307a4ebd06ac6a42d5601212bcf6fafd04224aef2d768c6c08d1a984dd90","9cb80606efae65c3becb06fb24e807dd0a13189018a0f08ce6efd50814590608","beef36f7445ee01729a0fa35cd9a1b7e8be09e90bd9505308db48fa588afd924","f0e7ead8f0fa3e6fd8e388ca2a296f19a882c6ed878b3b495710ac7ecd675b2d","a45aeec17b5236108953988910bba0a01aa89d4f5445ef81636e7cbae5349357","af61ce607434278e95414e782453447cec403851a8beb0e3dc02e8d8a209d77d","d7dcf8f20df9be3094d0cb73a8e5cbf3e5a69615b1d794fe121f4d6be70aeefc","27fc90c97940f3dba18af3fa5df35a2974d440902fef3c6e7cb50778b7a797f9","4ad1d3c33ada1561eb545b889c51e5f1fa5d302048733fa304f1b78fc1df8c7c","56efa6c25db1b4e7d363f2f945e54a78ba3c2b6e7a3263b29fe77b64fc00a0f1","60944089907f8fb7c2ff36faeef7a2078a5d6ce0ed09f02981edcfea4ed29893","785b9d575b49124ce01b46f5b9402157c7611e6532effa562ac6aebec0074dfc","9122ed7070e054b73ebab37c2373a196def2d90e7d1a9a7fcd9d46b0e51fae78","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"77f0b5c6a193a699c9f7d7fb0578e64e562d271afa740783665d2a827104a873","affectsGlobalScope":true},"21a167fec8f933752fb8157f06d28fab6817af3ad9b0bdb1908a10762391eab9",{"version":"3e4624c306340ad303cc536a07004e81336c3f088308a9e4a9f4c957a3cda2fd","affectsGlobalScope":true},"0c0cee62cb619aed81133b904f644515ba3064487002a7da83fd8aa07b1b4abd","5a94487653355b56018122d92392beb2e5f4a6c63ba5cef83bbe1c99775ef713",{"version":"d5135ad93b33adcce80b18f8065087934cdc1730d63db58562edcf017e1aad9b","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","025fc13211ed47d2798269017af3ec869122a050d5431a6ad3c1997900e65c58","bb9c4ffa5e6290c6980b63c815cdd1625876dadb2efaf77edbe82984be93e55e","75ecef44f126e2ae018b4abbd85b6e8a2e2ba1638ebec56cc64274643ce3567b","f30bb836526d930a74593f7b0f5c1c46d10856415a8f69e5e2fc3db80371e362","14b5aa23c5d0ae1907bc696ac7b6915d88f7d85799cc0dc2dcf98fbce2c5a67c","5c439dafdc09abe4d6c260a96b822fa0ba5be7203c71a63ab1f1423cd9e838ea",{"version":"249a2b90439cdfd51709539fbfa4dfe0791cbae6efce1e9b327ba8f8cd703f49","affectsGlobalScope":true},"40b991dc3365179e1365643589e168d7ea0588b4dd5bbb3a974ffefa7cb05e7f","bf057bb805c5e1c0e795ac7c759d40ebbe0e9894df9be3413bbdd8d1a2fc229e","74f2bb83d1ccf390f48681be57a30c09e85b4c7a801267746e382b2386fc667e","7bac475dcdd9f7e4e9da934d32c305bc889c4ce3c8ac0ef45a93a8d670fff607","5d357e7965026197a3152fa4e990fa7a4cbaf1578a17dff920ff1a71a325e198","8acf99b1c8682276a63ea5bb68433782715892726b97e4604a415e4e56bce41c",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"3b145a2351f5cf16abf999c8d5f4481c74dffdc54ec1e9a89992e2622e1226c5","a907bf91df26df2400858ef75f749498fb5cf00062bf90a737ac3949cc07978d","d270fd4b565eda11a0a737c181892316b7a1ace06c7988d0246219c3df11db06","70caef0271088abc5f5ae7ff6d84421d35bb192b690fbaa1b2ecf2b0ef01deb6",{"version":"59a638a504490fecaacf0020b9814b6abee37edb66047eb1ab9f7c2274bf1da0","affectsGlobalScope":true},"5153a2fd150e46ce57bb3f8db1318d33f6ad3261ed70ceeff92281c0608c74a3","d1a78a3c5708807e8de3e399f91df4797c62e44b02195eefc2209b2e713e54ee","8c4c1a64db28930732033c31418f817dcb9d09d706766707ae6d38f23faf0c53","25846d43937c672bab7e8195f3d881f93495df712ee901860effc109918938cc","12a70315c8281e46d65696086dd25827408e967b305a22276ae2779fe519e0fe","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","23b89798789dffbd437c0c423f5d02d11f9736aea73d6abf16db4f812ff36eda","29d613c3964ea75b2b4e0d17098245c34529282e9cc72b7e4eeb2a7b12c27cb7",{"version":"970a90f76d4d219ad60819d61f5994514087ba94c985647a3474a5a3d12714ed","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","a381f079c4804442f179d742fdb2e495fe28d67a47cac673485f75ae2e77aeca","3c13ef48634e7b5012fcf7e8fce7496352c2d779a7201389ca96a2a81ee4314d","5d0a25ec910fa36595f85a67ac992d7a53dd4064a1ba6aea1c9f14ab73a023f2",{"version":"bfe39beb986d2a2e512c091cbe924f1c415bc65de54de0e2f6a0dc6f84c183d9","affectsGlobalScope":true},"2af17363f8a062e3a8cd1b26030af0058b3f86e783f4fc6aa9f57247f240ebaa","06d7c42d256f0ce6afe1b2b6cfbc97ab391f29dadb00dd0ae8e8f23f5bc916c3","dfe08140492cdc135fb7fd9c4a652c05207b61a436906079b87da1d3111314bf","e59a892d87e72733e2a9ca21611b9beb52977be2696c7ba4b216cbbb9a48f5aa","089e1f8603cbc35ab977c8dcc662eb754b82fca32ed1dfb16bd682726c2d5432","8a300fa9b698845a1f9c41ecbe2c5966634582a8e2020d51abcace9b55aa959e",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"82fc37849846a3a0264047621d5beb6ce2ddeb2f83bdee2c79523af3c3282d97","8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","fd326577c62145816fe1acc306c734c2396487f76719d3785d4e825b34540b33","df1f0af64d4087d4032c57bf23d3d6199b9e276a29a6ad89794f0d2442d6b85e","8baa5d0febc68db886c40bf341e5c90dc215a90cd64552e47e8184be6b7e3358"],"root":[[79,102]],"options":{"allowSyntheticDefaultImports":true,"declaration":true,"declarationDir":"./types","emitDeclarationOnly":false,"esModuleInterop":true,"importHelpers":true,"jsx":4,"module":99,"noEmitHelpers":true,"noUncheckedIndexedAccess":false,"outDir":"./","skipLibCheck":true,"sourceMap":true,"strict":true,"target":7},"fileIdsList":[[148],[119,120,148,155,156],[104,148],[107,148],[108,113,148],[109,119,120,127,136,147,148],[109,110,119,127,148],[111,148],[112,113,120,128,148],[113,136,144,148],[114,116,119,127,148],[115,148],[116,117,148],[118,119,148],[119,148],[119,120,121,136,147,148],[119,120,121,136,139,148],[148,152],[122,127,136,147,148],[119,120,122,123,127,136,144,147,148],[122,124,136,144,147,148],[104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154],[119,125,148],[126,147,148],[116,119,127,136,148],[128,148],[129,148],[107,130,148],[131,146,148,152],[132,148],[133,148],[119,134,148],[134,135,148,150],[119,136,137,138,139,148],[136,138,148],[136,137,148],[139,148],[140,148],[119,142,143,148],[142,143,148],[113,127,136,144,148],[145,148],[127,146,148],[108,122,133,147,148],[113,148],[136,148,149],[148,150],[148,151],[108,113,119,121,130,136,147,148,150,152],[136,148,153],[77,148],[75,76,148],[74,77,78,79,80,84,85,86,148],[74,77,78,84,87,148],[74,78,81,84,148],[74,78,80,81,82,83,148],[74,78,84,148],[74,78,79,80,81,83,84,148],[74,78,79,80,82,84,148],[74,78,85,89,90,91,92,93,94,95,96,148],[74,77,78,83,89,148],[74,77,78,83,148],[74,77,78,148],[74,77,78,89,148],[74,77,78,85,93,148],[74,78,87,88,148],[74,78,99,100,101,148],[74,77,78,81,87,99,148],[74,77,78,80,81,86,87,148],[74,77,78,87,148]],"referencedMap":[[103,1],[157,2],[156,1],[104,3],[105,3],[107,4],[108,5],[109,6],[110,7],[111,8],[112,9],[113,10],[114,11],[115,12],[116,13],[117,13],[118,14],[119,15],[120,16],[121,17],[106,18],[154,1],[122,19],[123,20],[124,21],[155,22],[125,23],[126,24],[127,25],[128,26],[129,27],[130,28],[131,29],[132,30],[133,31],[134,32],[135,33],[136,34],[138,35],[137,36],[139,37],[140,38],[141,1],[142,39],[143,40],[144,41],[145,42],[146,43],[147,44],[148,45],[149,46],[150,47],[151,48],[152,49],[153,50],[158,51],[75,1],[77,52],[78,51],[159,1],[76,1],[74,1],[72,1],[73,1],[12,1],[13,1],[15,1],[14,1],[2,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[22,1],[23,1],[3,1],[24,1],[4,1],[25,1],[29,1],[26,1],[27,1],[28,1],[30,1],[31,1],[32,1],[5,1],[33,1],[34,1],[35,1],[36,1],[6,1],[40,1],[37,1],[38,1],[39,1],[41,1],[7,1],[42,1],[47,1],[48,1],[43,1],[44,1],[45,1],[46,1],[8,1],[52,1],[49,1],[50,1],[51,1],[53,1],[9,1],[54,1],[55,1],[56,1],[59,1],[57,1],[58,1],[60,1],[61,1],[10,1],[62,1],[1,1],[63,1],[64,1],[11,1],[69,1],[66,1],[65,1],[70,1],[68,1],[71,1],[67,1],[87,53],[88,54],[82,55],[79,55],[84,56],[83,57],[86,58],[81,59],[80,55],[97,60],[95,61],[89,62],[92,63],[90,63],[91,64],[96,64],[85,63],[93,61],[94,65],[98,66],[102,67],[100,68],[99,69],[101,70]]},"version":"5.5.2"}
@@ -0,0 +1,112 @@
1
+ import Clip, { AnimatableInitials, ClipProperties } from "./core/clip";
2
+ import { Trigger } from "./hooks/use-trigger";
3
+ import Timeline, { PlayOptions } from "./core/timeline";
4
+ import { CachableKey } from "./core/cache";
5
+ type StaticTrigger = 'mount' | 'unmount';
6
+ export type AnimatableType<T extends string = any> = {
7
+ play: (animation: T | 'animate', options?: PlayOptions, layer?: number) => number;
8
+ trigger: (trigger: StaticTrigger, options?: PlayOptions) => number;
9
+ timeline: Timeline;
10
+ children: React.RefObject<AnimatableType | null>[];
11
+ inherit: boolean | undefined;
12
+ adaptive: boolean;
13
+ group: string | undefined;
14
+ id: string;
15
+ };
16
+ type SharedProps<T extends string = any> = {
17
+ group?: string;
18
+ animations?: {
19
+ [key in T]: ClipProperties | Clip;
20
+ };
21
+ triggers?: ({
22
+ name?: T | 'animate';
23
+ on: Trigger | boolean | StaticTrigger;
24
+ } & PlayOptions)[];
25
+ animate?: ClipProperties | Clip;
26
+ initial?: AnimatableInitials;
27
+ /**
28
+ * How much to stagger child elements' animations by in seconds.
29
+ *
30
+ * @default 0.1
31
+ */
32
+ stagger?: number;
33
+ /**
34
+ * Integer number, after which child elements no longer stagger their animation, but play all at once.
35
+ *
36
+ * @default 10
37
+ */
38
+ staggerLimit?: number;
39
+ /**
40
+ * Whether scale animations will cause artifacting to `border-radius` and/or child elements.
41
+ *
42
+ * @default true
43
+ */
44
+ deform?: boolean;
45
+ disabled?: boolean;
46
+ paused?: boolean;
47
+ };
48
+ export type AnimatableProps<T extends string = any> = {
49
+ ref?: React.Ref<AnimatableType>;
50
+ children: React.ReactNode;
51
+ /**
52
+ * A unique identifier within a [`LayoutGroup`](https://lively.infinityfx.dev/docs/components/layout-group) parent.
53
+ */
54
+ id?: string;
55
+ /**
56
+ * Where in the order of a cascade animation this component should play it's animations.
57
+ */
58
+ order?: number;
59
+ /**
60
+ * Whether to participate in cascade animations and inherit animation properties from a parent.
61
+ *
62
+ * @default false
63
+ */
64
+ inherit?: boolean;
65
+ /**
66
+ * Whether to **not** participate in cascading animations.
67
+ *
68
+ * @default false
69
+ */
70
+ passthrough?: boolean;
71
+ /**
72
+ * Whether to animate layout changes when this component is a child of a [`LayoutGroup`](https://lively.infinityfx.dev/docs/components/layout-group).
73
+ *
74
+ * @default false
75
+ */
76
+ adaptive?: boolean;
77
+ /**
78
+ * Which properties to keep track of for layout change animations.
79
+ *
80
+ * @default ['x', 'y', 'sx', 'sy', 'rotate', 'color', 'backgroundColor', 'borderRadius', 'opacity']
81
+ */
82
+ cachable?: CachableKey[];
83
+ /**
84
+ * Whether to disable automatic mount/unmount triggering.
85
+ *
86
+ * @default false
87
+ */
88
+ manual?: boolean;
89
+ onAnimationEnd?: (animation: T | 'animate') => void;
90
+ /**
91
+ * Whether to observe layout changes within children, when this component is a child of a [`LayoutGroup`](https://lively.infinityfx.dev/docs/components/layout-group).
92
+ *
93
+ * @default false
94
+ */
95
+ traverseLayout?: boolean;
96
+ } & SharedProps<T>;
97
+ type AnimatableContext = {
98
+ index?: number;
99
+ add: (child: React.RefObject<AnimatableType | null>) => void;
100
+ remove: (child: React.RefObject<AnimatableType | null>) => void;
101
+ } & SharedProps;
102
+ export declare const AnimatableContext: import("react").Context<AnimatableContext | null>;
103
+ /**
104
+ * Wrap around a react component to animate it.
105
+ *
106
+ * @see {@link https://lively.infinityfx.dev/docs/components/animatable}
107
+ */
108
+ declare function Animatable<T extends string>(props: AnimatableProps<T>): import("react/jsx-runtime").JSX.Element;
109
+ declare namespace Animatable {
110
+ var isLively: boolean;
111
+ }
112
+ export default Animatable;
@@ -0,0 +1,19 @@
1
+ import { AnimatableProps } from "./animatable";
2
+ import Clip, { ClipProperties } from "./core/clip";
3
+ type AnimateProps = {
4
+ animations?: (ClipProperties | Clip)[];
5
+ /**
6
+ * The number of levels to cascade down animations.
7
+ */
8
+ levels?: number;
9
+ } & Omit<AnimatableProps, 'animations' | 'animate' | 'order'>;
10
+ /**
11
+ * Automated cascade animations.
12
+ *
13
+ * @see {@link https://lively.infinityfx.dev/docs/components/animate}
14
+ */
15
+ declare function Animate({ children, animations, levels, ...props }: AnimateProps): import("react/jsx-runtime").JSX.Element;
16
+ declare namespace Animate {
17
+ var isLively: boolean;
18
+ }
19
+ export default Animate;
@@ -0,0 +1,15 @@
1
+ import type { CompositeType, DynamicProperties } from "./clip";
2
+ import type Track from "./track";
3
+ export default class Action {
4
+ composite: CompositeType;
5
+ commit: boolean;
6
+ track: Track;
7
+ animation: Animation;
8
+ dynamic: DynamicProperties;
9
+ onfinish: (() => void) | null;
10
+ constructor(track: Track, keyframes: Keyframe[] | PropertyIndexedKeyframes, config: Omit<KeyframeAnimationOptions, 'composite'> & {
11
+ composite: CompositeType;
12
+ }, dynamic?: DynamicProperties);
13
+ finish(): void;
14
+ step(index: number): void;
15
+ }
@@ -0,0 +1,23 @@
1
+ import Clip, { AnimatableKey } from "./clip";
2
+ import { TransitionOptions } from "./track";
3
+ type PartialCachableKey = Exclude<AnimatableKey, 'scale' | 'translate'>;
4
+ export type CachableKey = PartialCachableKey | 'x' | 'y' | 'sx' | 'sy';
5
+ type CacheData = {
6
+ [key in PartialCachableKey]?: string;
7
+ } & {
8
+ x: number;
9
+ y: number;
10
+ sx: number;
11
+ sy: number;
12
+ };
13
+ export declare class StyleCache {
14
+ element: HTMLElement | SVGElement;
15
+ data: CacheData;
16
+ computed: CSSStyleDeclaration;
17
+ include: CachableKey[];
18
+ constructor(element: HTMLElement | SVGElement, include?: CachableKey[]);
19
+ read(): CacheData;
20
+ update(): void;
21
+ difference(from: CacheData | undefined, { duration, easing, reverse }: TransitionOptions): Clip[];
22
+ }
23
+ export {};
@@ -0,0 +1,52 @@
1
+ import { Link } from "./link";
2
+ import type Track from "./track";
3
+ export type Easing = 'linear' | 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out' | 'step-start' | 'step-end' | (string & {});
4
+ export type AnimatableKey = keyof React.CSSProperties | 'strokeLength';
5
+ export type AnimatableKeyframe = string | number | null | {
6
+ value?: string | number;
7
+ after?: string | number;
8
+ offset?: number;
9
+ };
10
+ type AnimatableProperties = {
11
+ [key in AnimatableKey]?: Link<any> | ((progress: number, index: number) => any) | AnimatableKeyframe | AnimatableKeyframe[];
12
+ };
13
+ export type AnimatableInitials = React.CSSProperties & {
14
+ strokeLength?: number | string;
15
+ };
16
+ export type CompositeType = 'none' | 'override' | 'combine';
17
+ export type ClipConfig = {
18
+ duration?: number;
19
+ delay?: number;
20
+ repeat?: number;
21
+ alternate?: boolean;
22
+ easing?: Easing;
23
+ reverse?: boolean;
24
+ composite?: CompositeType;
25
+ };
26
+ export type ClipProperties = ClipConfig & AnimatableProperties;
27
+ export type DynamicProperties = {
28
+ [key in AnimatableKey]?: (progress: number, index: number) => any;
29
+ };
30
+ export default class Clip {
31
+ keyframes: Keyframe[];
32
+ initial: React.CSSProperties;
33
+ dynamic: DynamicProperties;
34
+ duration: number;
35
+ delay: number;
36
+ repeat: number;
37
+ alternate: boolean;
38
+ easing: string;
39
+ reverse: boolean;
40
+ composite: CompositeType;
41
+ isEmpty: boolean;
42
+ constructor({ duration, delay, repeat, alternate, easing, reverse, composite, ...properties }: ClipProperties, initial?: AnimatableInitials);
43
+ static from(data?: ClipProperties | Clip, initial?: AnimatableInitials): Clip;
44
+ unique(config: ClipConfig): Clip;
45
+ play(track: Track, { composite, reverse, commit, delay }: {
46
+ composite?: CompositeType;
47
+ reverse?: boolean;
48
+ delay?: number;
49
+ commit?: boolean;
50
+ }): void;
51
+ }
52
+ export {};
@@ -0,0 +1,14 @@
1
+ import { ClipConfig } from "./clip";
2
+ type Computed<P> = (index: number) => P;
3
+ export type Computation<T, P> = (value: T, index: number) => P;
4
+ type LinkCallback = (options: ClipConfig) => void;
5
+ export type Link<T> = {
6
+ (index?: number): T;
7
+ <P>(computation: Computation<T, P>): Link<ReturnType<typeof computation>>;
8
+ set(value: T, options?: ClipConfig): void;
9
+ subscribe(callback: LinkCallback): void;
10
+ unsubscribe(callback: LinkCallback): void;
11
+ };
12
+ export declare function createLink<T, P>(initial: T, computed?: Computed<P>): Link<T>;
13
+ export declare function isLink<T>(val: any): val is Link<T>;
14
+ export {};