@teleporthq/teleport-shared 0.43.70 → 0.43.74

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 (169) hide show
  1. package/__tests__/function-sources.ts +30 -0
  2. package/__tests__/motion-runtime/motion-engine.ts +102 -0
  3. package/__tests__/motion-runtime/scroll-video-engine.ts +28 -0
  4. package/__tests__/scroll-scene/story-lanes.ts +126 -0
  5. package/dist/cjs/index.d.ts +5 -1
  6. package/dist/cjs/index.d.ts.map +1 -1
  7. package/dist/cjs/index.js +9 -1
  8. package/dist/cjs/index.js.map +1 -1
  9. package/dist/cjs/motion-runtime/index.d.ts +3 -0
  10. package/dist/cjs/motion-runtime/index.d.ts.map +1 -0
  11. package/dist/cjs/motion-runtime/index.js +8 -0
  12. package/dist/cjs/motion-runtime/index.js.map +1 -0
  13. package/dist/cjs/motion-runtime/motion-engine-source.d.ts +16 -0
  14. package/dist/cjs/motion-runtime/motion-engine-source.d.ts.map +1 -0
  15. package/dist/cjs/motion-runtime/motion-engine-source.js +20 -0
  16. package/dist/cjs/motion-runtime/motion-engine-source.js.map +1 -0
  17. package/dist/cjs/motion-runtime/scroll-video-engine-source.d.ts +9 -0
  18. package/dist/cjs/motion-runtime/scroll-video-engine-source.d.ts.map +1 -0
  19. package/dist/cjs/motion-runtime/scroll-video-engine-source.js +13 -0
  20. package/dist/cjs/motion-runtime/scroll-video-engine-source.js.map +1 -0
  21. package/dist/cjs/page-transition/index.d.ts +5 -0
  22. package/dist/cjs/page-transition/index.d.ts.map +1 -0
  23. package/dist/cjs/page-transition/index.js +21 -0
  24. package/dist/cjs/page-transition/index.js.map +1 -0
  25. package/dist/cjs/page-transition/morph-source.d.ts +20 -0
  26. package/dist/cjs/page-transition/morph-source.d.ts.map +1 -0
  27. package/dist/cjs/page-transition/morph-source.js +25 -0
  28. package/dist/cjs/page-transition/morph-source.js.map +1 -0
  29. package/dist/cjs/page-transition/variant-sources.generated.d.ts +7 -0
  30. package/dist/cjs/page-transition/variant-sources.generated.d.ts.map +1 -0
  31. package/dist/cjs/page-transition/variant-sources.generated.js +14 -0
  32. package/dist/cjs/page-transition/variant-sources.generated.js.map +1 -0
  33. package/dist/cjs/page-transition/variants.d.ts +87 -0
  34. package/dist/cjs/page-transition/variants.d.ts.map +1 -0
  35. package/dist/cjs/page-transition/variants.js +330 -0
  36. package/dist/cjs/page-transition/variants.js.map +1 -0
  37. package/dist/cjs/page-transition/view-transition-css.d.ts +21 -0
  38. package/dist/cjs/page-transition/view-transition-css.d.ts.map +1 -0
  39. package/dist/cjs/page-transition/view-transition-css.js +188 -0
  40. package/dist/cjs/page-transition/view-transition-css.js.map +1 -0
  41. package/dist/cjs/scroll-scene/chapter-index.d.ts +15 -0
  42. package/dist/cjs/scroll-scene/chapter-index.d.ts.map +1 -0
  43. package/dist/cjs/scroll-scene/chapter-index.js +30 -0
  44. package/dist/cjs/scroll-scene/chapter-index.js.map +1 -0
  45. package/dist/cjs/scroll-scene/controller-source.d.ts +26 -0
  46. package/dist/cjs/scroll-scene/controller-source.d.ts.map +1 -0
  47. package/dist/cjs/scroll-scene/controller-source.js +34 -0
  48. package/dist/cjs/scroll-scene/controller-source.js.map +1 -0
  49. package/dist/cjs/scroll-scene/engine-source.d.ts +2 -0
  50. package/dist/cjs/scroll-scene/engine-source.d.ts.map +1 -0
  51. package/dist/cjs/scroll-scene/engine-source.js +23 -0
  52. package/dist/cjs/scroll-scene/engine-source.js.map +1 -0
  53. package/dist/cjs/scroll-scene/helper-sources.generated.d.ts +9 -0
  54. package/dist/cjs/scroll-scene/helper-sources.generated.d.ts.map +1 -0
  55. package/dist/cjs/scroll-scene/helper-sources.generated.js +16 -0
  56. package/dist/cjs/scroll-scene/helper-sources.generated.js.map +1 -0
  57. package/dist/cjs/scroll-scene/index.d.ts +8 -0
  58. package/dist/cjs/scroll-scene/index.d.ts.map +1 -0
  59. package/dist/cjs/scroll-scene/index.js +24 -0
  60. package/dist/cjs/scroll-scene/index.js.map +1 -0
  61. package/dist/cjs/scroll-scene/moment.d.ts +21 -0
  62. package/dist/cjs/scroll-scene/moment.d.ts.map +1 -0
  63. package/dist/cjs/scroll-scene/moment.js +50 -0
  64. package/dist/cjs/scroll-scene/moment.js.map +1 -0
  65. package/dist/cjs/scroll-scene/points.d.ts +23 -0
  66. package/dist/cjs/scroll-scene/points.d.ts.map +1 -0
  67. package/dist/cjs/scroll-scene/points.js +51 -0
  68. package/dist/cjs/scroll-scene/points.js.map +1 -0
  69. package/dist/cjs/scroll-scene/unclip.d.ts +15 -0
  70. package/dist/cjs/scroll-scene/unclip.d.ts.map +1 -0
  71. package/dist/cjs/scroll-scene/unclip.js +44 -0
  72. package/dist/cjs/scroll-scene/unclip.js.map +1 -0
  73. package/dist/cjs/state-bindings/index.d.ts +74 -0
  74. package/dist/cjs/state-bindings/index.d.ts.map +1 -0
  75. package/dist/cjs/state-bindings/index.js +193 -0
  76. package/dist/cjs/state-bindings/index.js.map +1 -0
  77. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  78. package/dist/esm/index.d.ts +5 -1
  79. package/dist/esm/index.d.ts.map +1 -1
  80. package/dist/esm/index.js +5 -1
  81. package/dist/esm/index.js.map +1 -1
  82. package/dist/esm/motion-runtime/index.d.ts +3 -0
  83. package/dist/esm/motion-runtime/index.d.ts.map +1 -0
  84. package/dist/esm/motion-runtime/index.js +3 -0
  85. package/dist/esm/motion-runtime/index.js.map +1 -0
  86. package/dist/esm/motion-runtime/motion-engine-source.d.ts +16 -0
  87. package/dist/esm/motion-runtime/motion-engine-source.d.ts.map +1 -0
  88. package/dist/esm/motion-runtime/motion-engine-source.js +16 -0
  89. package/dist/esm/motion-runtime/motion-engine-source.js.map +1 -0
  90. package/dist/esm/motion-runtime/scroll-video-engine-source.d.ts +9 -0
  91. package/dist/esm/motion-runtime/scroll-video-engine-source.d.ts.map +1 -0
  92. package/dist/esm/motion-runtime/scroll-video-engine-source.js +9 -0
  93. package/dist/esm/motion-runtime/scroll-video-engine-source.js.map +1 -0
  94. package/dist/esm/page-transition/index.d.ts +5 -0
  95. package/dist/esm/page-transition/index.d.ts.map +1 -0
  96. package/dist/esm/page-transition/index.js +5 -0
  97. package/dist/esm/page-transition/index.js.map +1 -0
  98. package/dist/esm/page-transition/morph-source.d.ts +20 -0
  99. package/dist/esm/page-transition/morph-source.d.ts.map +1 -0
  100. package/dist/esm/page-transition/morph-source.js +21 -0
  101. package/dist/esm/page-transition/morph-source.js.map +1 -0
  102. package/dist/esm/page-transition/variant-sources.generated.d.ts +7 -0
  103. package/dist/esm/page-transition/variant-sources.generated.d.ts.map +1 -0
  104. package/dist/esm/page-transition/variant-sources.generated.js +11 -0
  105. package/dist/esm/page-transition/variant-sources.generated.js.map +1 -0
  106. package/dist/esm/page-transition/variants.d.ts +87 -0
  107. package/dist/esm/page-transition/variants.d.ts.map +1 -0
  108. package/dist/esm/page-transition/variants.js +318 -0
  109. package/dist/esm/page-transition/variants.js.map +1 -0
  110. package/dist/esm/page-transition/view-transition-css.d.ts +21 -0
  111. package/dist/esm/page-transition/view-transition-css.d.ts.map +1 -0
  112. package/dist/esm/page-transition/view-transition-css.js +161 -0
  113. package/dist/esm/page-transition/view-transition-css.js.map +1 -0
  114. package/dist/esm/scroll-scene/chapter-index.d.ts +15 -0
  115. package/dist/esm/scroll-scene/chapter-index.d.ts.map +1 -0
  116. package/dist/esm/scroll-scene/chapter-index.js +26 -0
  117. package/dist/esm/scroll-scene/chapter-index.js.map +1 -0
  118. package/dist/esm/scroll-scene/controller-source.d.ts +26 -0
  119. package/dist/esm/scroll-scene/controller-source.d.ts.map +1 -0
  120. package/dist/esm/scroll-scene/controller-source.js +26 -0
  121. package/dist/esm/scroll-scene/controller-source.js.map +1 -0
  122. package/dist/esm/scroll-scene/engine-source.d.ts +2 -0
  123. package/dist/esm/scroll-scene/engine-source.d.ts.map +1 -0
  124. package/dist/esm/scroll-scene/engine-source.js +19 -0
  125. package/dist/esm/scroll-scene/engine-source.js.map +1 -0
  126. package/dist/esm/scroll-scene/helper-sources.generated.d.ts +9 -0
  127. package/dist/esm/scroll-scene/helper-sources.generated.d.ts.map +1 -0
  128. package/dist/esm/scroll-scene/helper-sources.generated.js +13 -0
  129. package/dist/esm/scroll-scene/helper-sources.generated.js.map +1 -0
  130. package/dist/esm/scroll-scene/index.d.ts +8 -0
  131. package/dist/esm/scroll-scene/index.d.ts.map +1 -0
  132. package/dist/esm/scroll-scene/index.js +8 -0
  133. package/dist/esm/scroll-scene/index.js.map +1 -0
  134. package/dist/esm/scroll-scene/moment.d.ts +21 -0
  135. package/dist/esm/scroll-scene/moment.d.ts.map +1 -0
  136. package/dist/esm/scroll-scene/moment.js +46 -0
  137. package/dist/esm/scroll-scene/moment.js.map +1 -0
  138. package/dist/esm/scroll-scene/points.d.ts +23 -0
  139. package/dist/esm/scroll-scene/points.d.ts.map +1 -0
  140. package/dist/esm/scroll-scene/points.js +45 -0
  141. package/dist/esm/scroll-scene/points.js.map +1 -0
  142. package/dist/esm/scroll-scene/unclip.d.ts +15 -0
  143. package/dist/esm/scroll-scene/unclip.d.ts.map +1 -0
  144. package/dist/esm/scroll-scene/unclip.js +40 -0
  145. package/dist/esm/scroll-scene/unclip.js.map +1 -0
  146. package/dist/esm/state-bindings/index.d.ts +74 -0
  147. package/dist/esm/state-bindings/index.d.ts.map +1 -0
  148. package/dist/esm/state-bindings/index.js +176 -0
  149. package/dist/esm/state-bindings/index.js.map +1 -0
  150. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  151. package/package.json +3 -3
  152. package/src/index.ts +8 -0
  153. package/src/motion-runtime/index.ts +2 -0
  154. package/src/motion-runtime/motion-engine-source.ts +289 -0
  155. package/src/motion-runtime/scroll-video-engine-source.ts +591 -0
  156. package/src/page-transition/index.ts +4 -0
  157. package/src/page-transition/morph-source.ts +86 -0
  158. package/src/page-transition/variant-sources.generated.ts +14 -0
  159. package/src/page-transition/variants.ts +407 -0
  160. package/src/page-transition/view-transition-css.ts +237 -0
  161. package/src/scroll-scene/chapter-index.ts +25 -0
  162. package/src/scroll-scene/controller-source.ts +451 -0
  163. package/src/scroll-scene/engine-source.ts +327 -0
  164. package/src/scroll-scene/helper-sources.generated.ts +18 -0
  165. package/src/scroll-scene/index.ts +13 -0
  166. package/src/scroll-scene/moment.ts +64 -0
  167. package/src/scroll-scene/points.ts +46 -0
  168. package/src/scroll-scene/unclip.ts +44 -0
  169. package/src/state-bindings/index.ts +207 -0
@@ -0,0 +1,87 @@
1
+ /**
2
+ * The three states of a route transition for a preset, and the preset the
3
+ * back button plays. Mirrored VERBATIM from teleport-gui's
4
+ * `constants/primitives/page-transition.ts` — the settings picker demonstrates
5
+ * these exact states. Plain JS inside the bodies on purpose: their compiled
6
+ * source is injected into the generated `TqPageTransition` wrapper with
7
+ * `toString()`, so no template literals, no backticks, no helpers from outside
8
+ * the two functions.
9
+ */
10
+ export interface PageTransitionContext {
11
+ reverse: boolean;
12
+ originX: string;
13
+ originY: string;
14
+ }
15
+ export interface PageTransitionPanel {
16
+ from: Record<string, unknown>;
17
+ cover: Record<string, unknown>;
18
+ away: Record<string, unknown>;
19
+ side?: 'left' | 'right';
20
+ }
21
+ export interface PageTransitionVariants {
22
+ initial: Record<string, unknown>;
23
+ animate: Record<string, unknown>;
24
+ exit: Record<string, unknown>;
25
+ }
26
+ export declare function reversePageTransitionPreset(preset: string): string;
27
+ export interface PageTransitionCustomState {
28
+ opacity: number;
29
+ x: number;
30
+ y: number;
31
+ scale: number;
32
+ blur: number;
33
+ }
34
+ export interface PageTransitionCustom {
35
+ durationSeconds: number;
36
+ easing: string;
37
+ arrive: PageTransitionCustomState;
38
+ leave: PageTransitionCustomState;
39
+ }
40
+ export declare function pageTransitionVariants(preset: string, slidePx: number, context?: PageTransitionContext, options?: Record<string, string>, custom?: PageTransitionCustom): PageTransitionVariants | null;
41
+ export declare function pageTransitionCover(preset: string): PageTransitionPanel[] | null;
42
+ /**
43
+ * The matcher for a route a page opted out of transitions with: exact path,
44
+ * optional trailing slash, and `[param]` segments (how the editor spells a
45
+ * details page) matching any single segment. Injected into the wrapper.
46
+ */
47
+ export declare function pageTransitionSkipPattern(route: string): RegExp;
48
+ /** How far a page travels while sliding, in px — pages move, they do not fly. */
49
+ export declare const PAGE_TRANSITION_SLIDE_PX = 24;
50
+ /**
51
+ * The preset's choices with gaps filled by defaults and unknown words replaced
52
+ * by the default. Mirrored verbatim from teleport-gui; runs at generation time.
53
+ */
54
+ export declare function resolvePageTransitionOptions(preset: string, chosen?: Record<string, string>): Record<string, string>;
55
+ /**
56
+ * A colour a cover panel may carry: a project token id, a hex colour, or
57
+ * rgb/hsl with plain numbers — the value lands verbatim in generated code.
58
+ * Mirrored verbatim from teleport-gui.
59
+ */
60
+ export declare function isPageTransitionColorValue(value: string | undefined): boolean;
61
+ /** The CSS colour a cover-family panel paints with: token → var(), literal as is, words → theme tokens. Mirrored verbatim from teleport-gui. */
62
+ export declare function pageTransitionCoverColor(color: string | undefined): string;
63
+ /** Every custom value inside its range and a known easing; mirrored verbatim from teleport-gui. Runs at generation time. */
64
+ export declare function sanitizePageTransitionCustom(input: Partial<PageTransitionCustom> | undefined): PageTransitionCustom;
65
+ /** What the editor exports under `globals.settings.pageTransition`. */
66
+ export interface PageTransitionConfig {
67
+ preset: string;
68
+ duration: number;
69
+ easing: string;
70
+ skipRoutes?: string[];
71
+ options?: Record<string, string>;
72
+ custom?: {
73
+ arrive?: Record<string, number>;
74
+ leave?: Record<string, number>;
75
+ };
76
+ /** False when the author turned the flying pictures off; absent means they fly. */
77
+ flyingPictures?: boolean;
78
+ }
79
+ /** The same curves the motion widget plays, so a route transition shares the site's motion character. */
80
+ export declare const PAGE_TRANSITION_EASING_CURVES: Record<string, [number, number, number, number]>;
81
+ /** The resolved transition the editor exported, or null when pages switch instantly. */
82
+ export declare const projectPageTransition: (uidl: {
83
+ globals?: {
84
+ settings?: unknown;
85
+ };
86
+ }) => PageTransitionConfig | null;
87
+ //# sourceMappingURL=variants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variants.d.ts","sourceRoot":"","sources":["../../../src/page-transition/variants.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,318 @@
1
+ export function reversePageTransitionPreset(preset) {
2
+ var pairs = {
3
+ 'slide-up': 'slide-down',
4
+ 'slide-down': 'slide-up',
5
+ 'slide-left': 'slide-right',
6
+ 'slide-right': 'slide-left',
7
+ 'zoom-in': 'zoom-out',
8
+ 'zoom-out': 'zoom-in',
9
+ 'wipe-down': 'wipe-up',
10
+ 'wipe-up': 'wipe-down',
11
+ 'wipe-left': 'wipe-right',
12
+ 'wipe-right': 'wipe-left',
13
+ stack: 'unstack',
14
+ unstack: 'stack',
15
+ };
16
+ return pairs[preset] || preset;
17
+ }
18
+ export function pageTransitionVariants(preset, slidePx, context, options, custom) {
19
+ var reverse = context ? context.reverse : false;
20
+ var originX = context ? context.originX : '50%';
21
+ var originY = context ? context.originY : '50%';
22
+ var name = reverse ? reversePageTransitionPreset(preset) : preset;
23
+ var bold = options
24
+ ? options.distance === 'bold' || options.depth === 'bold' || options.amount === 'bold'
25
+ : false;
26
+ var near = bold ? slidePx * 4 : slidePx;
27
+ var far = near * 2;
28
+ var blurPx = options && options.softness === 'heavy' ? 28 : 12;
29
+ var shrink = bold ? 0.85 : 0.94;
30
+ var zoomOut = bold ? 0.85 : 0.96;
31
+ var zoomIn = bold ? 1.15 : 1.04;
32
+ if (name === 'custom') {
33
+ // Neutral in the middle; the two ends are exactly the user's values.
34
+ var c = custom || {
35
+ arrive: { opacity: 0, x: 0, y: 24, scale: 1, blur: 0 },
36
+ leave: { opacity: 0, x: 0, y: -24, scale: 1, blur: 0 },
37
+ };
38
+ return {
39
+ initial: {
40
+ opacity: c.arrive.opacity,
41
+ x: c.arrive.x,
42
+ y: c.arrive.y,
43
+ scale: c.arrive.scale,
44
+ filter: 'blur(' + c.arrive.blur + 'px)',
45
+ },
46
+ animate: { opacity: 1, x: 0, y: 0, scale: 1, filter: 'blur(0px)' },
47
+ exit: {
48
+ opacity: c.leave.opacity,
49
+ x: c.leave.x,
50
+ y: c.leave.y,
51
+ scale: c.leave.scale,
52
+ filter: 'blur(' + c.leave.blur + 'px)',
53
+ },
54
+ };
55
+ }
56
+ if (name === 'fade') {
57
+ return { initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 } };
58
+ }
59
+ if (name === 'crossfade') {
60
+ return {
61
+ initial: { opacity: 0, scale: 1.02 },
62
+ animate: { opacity: 1, scale: 1 },
63
+ exit: { opacity: 0, scale: 0.98 },
64
+ };
65
+ }
66
+ if (name === 'blur') {
67
+ return {
68
+ initial: { opacity: 0, filter: 'blur(' + blurPx + 'px)' },
69
+ animate: { opacity: 1, filter: 'blur(0px)' },
70
+ exit: { opacity: 0, filter: 'blur(' + blurPx + 'px)' },
71
+ };
72
+ }
73
+ if (name === 'slide-up') {
74
+ return {
75
+ initial: { opacity: 0, y: near },
76
+ animate: { opacity: 1, y: 0 },
77
+ exit: { opacity: 0, y: -near },
78
+ };
79
+ }
80
+ if (name === 'slide-down') {
81
+ return {
82
+ initial: { opacity: 0, y: -near },
83
+ animate: { opacity: 1, y: 0 },
84
+ exit: { opacity: 0, y: near },
85
+ };
86
+ }
87
+ if (name === 'slide-left') {
88
+ return {
89
+ initial: { opacity: 0, x: far },
90
+ animate: { opacity: 1, x: 0 },
91
+ exit: { opacity: 0, x: -far },
92
+ };
93
+ }
94
+ if (name === 'slide-right') {
95
+ return {
96
+ initial: { opacity: 0, x: -far },
97
+ animate: { opacity: 1, x: 0 },
98
+ exit: { opacity: 0, x: far },
99
+ };
100
+ }
101
+ if (name === 'stack') {
102
+ return {
103
+ initial: { opacity: 0, y: far },
104
+ animate: { opacity: 1, y: 0, scale: 1 },
105
+ exit: { opacity: 0, scale: shrink },
106
+ };
107
+ }
108
+ if (name === 'unstack') {
109
+ return {
110
+ initial: { opacity: 0, scale: shrink },
111
+ animate: { opacity: 1, y: 0, scale: 1 },
112
+ exit: { opacity: 0, y: far },
113
+ };
114
+ }
115
+ if (name === 'zoom-in') {
116
+ return {
117
+ initial: { opacity: 0, scale: zoomOut },
118
+ animate: { opacity: 1, scale: 1 },
119
+ exit: { opacity: 0, scale: zoomIn },
120
+ };
121
+ }
122
+ if (name === 'zoom-out') {
123
+ return {
124
+ initial: { opacity: 0, scale: zoomIn },
125
+ animate: { opacity: 1, scale: 1 },
126
+ exit: { opacity: 0, scale: zoomOut },
127
+ };
128
+ }
129
+ if (name === 'wipe-down') {
130
+ return {
131
+ initial: { clipPath: 'inset(0 0 100% 0)' },
132
+ animate: { clipPath: 'inset(0 0 0% 0)' },
133
+ exit: { clipPath: 'inset(100% 0 0 0)' },
134
+ };
135
+ }
136
+ if (name === 'wipe-up') {
137
+ return {
138
+ initial: { clipPath: 'inset(100% 0 0 0)' },
139
+ animate: { clipPath: 'inset(0% 0 0 0)' },
140
+ exit: { clipPath: 'inset(0 0 100% 0)' },
141
+ };
142
+ }
143
+ if (name === 'wipe-left') {
144
+ return {
145
+ initial: { clipPath: 'inset(0 0 0 100%)' },
146
+ animate: { clipPath: 'inset(0 0 0 0%)' },
147
+ exit: { clipPath: 'inset(0 100% 0 0)' },
148
+ };
149
+ }
150
+ if (name === 'wipe-right') {
151
+ return {
152
+ initial: { clipPath: 'inset(0 100% 0 0)' },
153
+ animate: { clipPath: 'inset(0 0% 0 0)' },
154
+ exit: { clipPath: 'inset(0 0 0 100%)' },
155
+ };
156
+ }
157
+ if (name === 'circle') {
158
+ var at = ' at ' + originX + ' ' + originY + ')';
159
+ return {
160
+ initial: { clipPath: 'circle(0%' + at },
161
+ animate: { clipPath: 'circle(150%' + at },
162
+ exit: { clipPath: 'circle(0%' + at },
163
+ };
164
+ }
165
+ if (name === 'cover' || name === 'curtain') {
166
+ // The panels do the work; the page itself only has to STAY while it is
167
+ // being covered. An exit that changes nothing would end instantly, so it
168
+ // moves opacity by an invisible amount — that is what keeps the leaving
169
+ // page on screen for exactly one panel sweep.
170
+ return { initial: { opacity: 1 }, animate: { opacity: 1 }, exit: { opacity: 0.999 } };
171
+ }
172
+ return null;
173
+ }
174
+ export function pageTransitionCover(preset) {
175
+ if (preset === 'cover') {
176
+ return [{ from: { y: '100%' }, cover: { y: '0%' }, away: { y: '-100%' } }];
177
+ }
178
+ if (preset === 'curtain') {
179
+ return [
180
+ { from: { x: '-100%' }, cover: { x: '0%' }, away: { x: '-100%' }, side: 'left' },
181
+ { from: { x: '100%' }, cover: { x: '0%' }, away: { x: '100%' }, side: 'right' },
182
+ ];
183
+ }
184
+ return null;
185
+ }
186
+ /**
187
+ * The matcher for a route a page opted out of transitions with: exact path,
188
+ * optional trailing slash, and `[param]` segments (how the editor spells a
189
+ * details page) matching any single segment. Injected into the wrapper.
190
+ */
191
+ export function pageTransitionSkipPattern(route) {
192
+ var escaped = route.replace(/[.*+?^$()|{}\\]/g, '\\$&');
193
+ return new RegExp('^' + escaped.replace(/\[[^\]]+\]/g, '[^/]+') + '/?$');
194
+ }
195
+ /** How far a page travels while sliding, in px — pages move, they do not fly. */
196
+ export var PAGE_TRANSITION_SLIDE_PX = 24;
197
+ /**
198
+ * The preset's choices with gaps filled by defaults and unknown words replaced
199
+ * by the default. Mirrored verbatim from teleport-gui; runs at generation time.
200
+ */
201
+ export function resolvePageTransitionOptions(preset, chosen) {
202
+ var catalog = {
203
+ blur: [['softness', ['light', 'heavy']]],
204
+ 'slide-up': [['distance', ['subtle', 'bold']]],
205
+ 'slide-down': [['distance', ['subtle', 'bold']]],
206
+ 'slide-left': [['distance', ['subtle', 'bold']]],
207
+ 'slide-right': [['distance', ['subtle', 'bold']]],
208
+ stack: [['depth', ['subtle', 'bold']]],
209
+ 'zoom-in': [['amount', ['subtle', 'bold']]],
210
+ 'zoom-out': [['amount', ['subtle', 'bold']]],
211
+ circle: [['origin', ['click', 'center']]],
212
+ cover: [['color', ['brand', 'dark', 'light']]],
213
+ curtain: [['color', ['brand', 'dark', 'light']]],
214
+ };
215
+ var resolved = {};
216
+ var entries = catalog[preset] || [];
217
+ for (var i = 0; i < entries.length; i++) {
218
+ var key = entries[i][0];
219
+ var words = entries[i][1];
220
+ var value = chosen ? chosen[key] : undefined;
221
+ var known = value !== undefined &&
222
+ (words.indexOf(value) >= 0 || (key === 'color' && isPageTransitionColorValue(value)));
223
+ resolved[key] = known ? value : words[0];
224
+ }
225
+ return resolved;
226
+ }
227
+ /**
228
+ * A colour a cover panel may carry: a project token id, a hex colour, or
229
+ * rgb/hsl with plain numbers — the value lands verbatim in generated code.
230
+ * Mirrored verbatim from teleport-gui.
231
+ */
232
+ export function isPageTransitionColorValue(value) {
233
+ if (typeof value !== 'string' || value.length === 0 || value.length > 120) {
234
+ return false;
235
+ }
236
+ return (/^token:[a-z0-9_-]+$/i.test(value) ||
237
+ /^--[a-z0-9_-]+$/i.test(value) ||
238
+ /^#[0-9a-f]{3,8}$/i.test(value) ||
239
+ /^(rgb|rgba|hsl|hsla)\([0-9.,%\s]+\)$/i.test(value));
240
+ }
241
+ /** The CSS colour a cover-family panel paints with: token → var(), literal as is, words → theme tokens. Mirrored verbatim from teleport-gui. */
242
+ export function pageTransitionCoverColor(color) {
243
+ var dark = 'var(--dl-color-theme-neutral-dark, #111111)';
244
+ if (color === 'dark') {
245
+ return dark;
246
+ }
247
+ if (color === 'light') {
248
+ return 'var(--dl-color-theme-neutral-light, #ffffff)';
249
+ }
250
+ if (color &&
251
+ color !== 'brand' &&
252
+ color.indexOf('token:') !== 0 &&
253
+ isPageTransitionColorValue(color)) {
254
+ return color.indexOf('--') === 0 ? 'var(' + color + ', ' + dark + ')' : color;
255
+ }
256
+ return 'var(--dl-color-theme-primary1, ' + dark + ')';
257
+ }
258
+ var CUSTOM_EASINGS = [
259
+ 'ease',
260
+ 'ease-in',
261
+ 'ease-out',
262
+ 'ease-in-out',
263
+ 'linear',
264
+ 'spring',
265
+ 'back',
266
+ 'bounce',
267
+ ];
268
+ var DEFAULT_CUSTOM = {
269
+ durationSeconds: 0.35,
270
+ easing: 'ease-out',
271
+ arrive: { opacity: 0, x: 0, y: 24, scale: 1, blur: 0 },
272
+ leave: { opacity: 0, x: 0, y: -24, scale: 1, blur: 0 },
273
+ };
274
+ var clamp = function (value, min, max, fallback) {
275
+ var n = typeof value === 'number' && Number.isFinite(value) ? value : fallback;
276
+ return Math.min(max, Math.max(min, n));
277
+ };
278
+ var sanitizeCustomState = function (input, fallback) { return ({
279
+ opacity: clamp(input === null || input === void 0 ? void 0 : input.opacity, 0, 1, fallback.opacity),
280
+ x: clamp(input === null || input === void 0 ? void 0 : input.x, -400, 400, fallback.x),
281
+ y: clamp(input === null || input === void 0 ? void 0 : input.y, -400, 400, fallback.y),
282
+ scale: clamp(input === null || input === void 0 ? void 0 : input.scale, 0.25, 2, fallback.scale),
283
+ blur: clamp(input === null || input === void 0 ? void 0 : input.blur, 0, 60, fallback.blur),
284
+ }); };
285
+ /** Every custom value inside its range and a known easing; mirrored verbatim from teleport-gui. Runs at generation time. */
286
+ export function sanitizePageTransitionCustom(input) {
287
+ var easing = typeof (input === null || input === void 0 ? void 0 : input.easing) === 'string' && CUSTOM_EASINGS.indexOf(input.easing) >= 0
288
+ ? input.easing
289
+ : DEFAULT_CUSTOM.easing;
290
+ return {
291
+ durationSeconds: clamp(input === null || input === void 0 ? void 0 : input.durationSeconds, 0.05, 3, DEFAULT_CUSTOM.durationSeconds),
292
+ easing: easing,
293
+ arrive: sanitizeCustomState(input === null || input === void 0 ? void 0 : input.arrive, DEFAULT_CUSTOM.arrive),
294
+ leave: sanitizeCustomState(input === null || input === void 0 ? void 0 : input.leave, DEFAULT_CUSTOM.leave),
295
+ };
296
+ }
297
+ /** The same curves the motion widget plays, so a route transition shares the site's motion character. */
298
+ export var PAGE_TRANSITION_EASING_CURVES = {
299
+ ease: [0.25, 0.1, 0.25, 1],
300
+ 'ease-in': [0.42, 0, 1, 1],
301
+ 'ease-out': [0, 0, 0.58, 1],
302
+ 'ease-in-out': [0.42, 0, 0.58, 1],
303
+ linear: [0, 0, 1, 1],
304
+ spring: [0.34, 1.56, 0.64, 1],
305
+ back: [0.68, -0.6, 0.32, 1.6],
306
+ bounce: [0.22, 1.2, 0.36, 1],
307
+ };
308
+ /** The resolved transition the editor exported, or null when pages switch instantly. */
309
+ export var projectPageTransition = function (uidl) {
310
+ var _a;
311
+ var settings = (((_a = uidl.globals) === null || _a === void 0 ? void 0 : _a.settings) || {});
312
+ var transition = settings.pageTransition;
313
+ if (!transition || !transition.preset || transition.preset === 'none') {
314
+ return null;
315
+ }
316
+ return transition;
317
+ };
318
+ //# sourceMappingURL=variants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variants.js","sourceRoot":"","sources":["../../../src/page-transition/variants.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import * as PageTransition from './variants';
2
+ export declare const BACK_ATTR = "data-tq-nav";
3
+ export declare const ORIGIN_X = "--tq-origin-x";
4
+ export declare const ORIGIN_Y = "--tq-origin-y";
5
+ /** The name of the one image that flies from the leaving page into the arriving page. */
6
+ export declare const MORPH_NAME = "tq-morph";
7
+ export interface ViewTransitionPlan {
8
+ css: string;
9
+ /** The back button plays a different preset, so the page has to tell the stylesheet which way it came. */
10
+ needsDirection: boolean;
11
+ /** The reveal grows from where the visitor pressed, so the page has to hand that point over. */
12
+ needsOrigin: boolean;
13
+ /** A picture flies from the followed link into the next page; off when the author turned it off. */
14
+ flies: boolean;
15
+ /** The arriving page is revealed over the leaving one, which holds (Circle, the Wipes). */
16
+ revealsOver: boolean;
17
+ }
18
+ export declare const viewTransitionPlan: (config: PageTransition.PageTransitionConfig, target?: {
19
+ crossDocument: boolean;
20
+ }) => ViewTransitionPlan | null;
21
+ //# sourceMappingURL=view-transition-css.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view-transition-css.d.ts","sourceRoot":"","sources":["../../../src/page-transition/view-transition-css.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,YAAY,CAAA;AAkC5C,eAAO,MAAM,SAAS,gBAAgB,CAAA;AACtC,eAAO,MAAM,QAAQ,kBAAkB,CAAA;AACvC,eAAO,MAAM,QAAQ,kBAAkB,CAAA;AAiFvC,yFAAyF;AACzF,eAAO,MAAM,UAAU,aAAa,CAAA;AAEpC,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAA;IACX,0GAA0G;IAC1G,cAAc,EAAE,OAAO,CAAA;IACvB,gGAAgG;IAChG,WAAW,EAAE,OAAO,CAAA;IACpB,oGAAoG;IACpG,KAAK,EAAE,OAAO,CAAA;IACd,2FAA2F;IAC3F,WAAW,EAAE,OAAO,CAAA;CACrB;AAED,eAAO,MAAM,kBAAkB,WACrB,eAAe,oBAAoB,WACnC;IAAE,aAAa,EAAE,OAAO,CAAA;CAAE,KACjC,kBAAkB,GAAG,IAqGvB,CAAA"}
@@ -0,0 +1,161 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
13
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
14
+ if (ar || !(i in from)) {
15
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
16
+ ar[i] = from[i];
17
+ }
18
+ }
19
+ return to.concat(ar || Array.prototype.slice.call(from));
20
+ };
21
+ import * as PageTransition from './variants';
22
+ export var BACK_ATTR = 'data-tq-nav';
23
+ export var ORIGIN_X = '--tq-origin-x';
24
+ export var ORIGIN_Y = '--tq-origin-y';
25
+ var hasAny = function (state, keys) {
26
+ return keys.some(function (key) { return state[key] !== undefined; });
27
+ };
28
+ /** One keyframe. Both ends of an animation declare the same properties, so every one of them interpolates. */
29
+ var declarations = function (state, other) {
30
+ var _a, _b, _c, _d, _e, _f;
31
+ var lines = [];
32
+ var both = function (keys) { return hasAny(state, keys) || hasAny(other, keys); };
33
+ if (both(['opacity'])) {
34
+ lines.push("opacity: ".concat((_a = state.opacity) !== null && _a !== void 0 ? _a : 1, ";"));
35
+ }
36
+ if (both(['x', 'y', 'scale'])) {
37
+ lines.push("transform: translate(".concat((_b = state.x) !== null && _b !== void 0 ? _b : 0, "px, ").concat((_c = state.y) !== null && _c !== void 0 ? _c : 0, "px) scale(").concat((_d = state.scale) !== null && _d !== void 0 ? _d : 1, ");"));
38
+ }
39
+ if (both(['filter'])) {
40
+ lines.push("filter: ".concat((_e = state.filter) !== null && _e !== void 0 ? _e : 'blur(0px)', ";"));
41
+ }
42
+ if (both(['clipPath'])) {
43
+ lines.push("clip-path: ".concat((_f = state.clipPath) !== null && _f !== void 0 ? _f : 'inset(0 0 0 0)', ";"));
44
+ }
45
+ return lines;
46
+ };
47
+ var keyframes = function (name, from, to) {
48
+ return "@keyframes ".concat(name, " {\n from { ").concat(declarations(from, to).join(' '), " }\n to { ").concat(declarations(to, from).join(' '), " }\n}");
49
+ };
50
+ /**
51
+ * The cover family in the Next export is one or two coloured panels that close
52
+ * over the leaving page and open on the arriving one. A picture of a page can
53
+ * be clipped, so here the panel is what shows where the picture is clipped
54
+ * away: the colour sits behind both pictures and the clip edge is the panel's
55
+ * leading edge. Same sweep, same colour, no extra element on any page.
56
+ */
57
+ var COVER_CLIPS = {
58
+ // one panel rising from the bottom, then leaving through the top
59
+ cover: { covered: 'inset(0 0 100% 0)', opening: 'inset(100% 0 0 0)' },
60
+ // two panels meeting in the middle, then parting
61
+ curtain: { covered: 'inset(0 50% 0 50%)', opening: 'inset(0 50% 0 50%)' },
62
+ };
63
+ var OPEN = 'inset(0 0 0 0)';
64
+ var animationsFor = function (preset, context, options, custom) {
65
+ var cover = COVER_CLIPS[preset];
66
+ if (cover) {
67
+ return {
68
+ leave: [{ clipPath: OPEN }, { clipPath: cover.covered }],
69
+ arrive: [{ clipPath: cover.opening }, { clipPath: OPEN }],
70
+ };
71
+ }
72
+ var variants = PageTransition.pageTransitionVariants(preset, PageTransition.PAGE_TRANSITION_SLIDE_PX, context, options, custom);
73
+ if (!variants) {
74
+ return null;
75
+ }
76
+ return {
77
+ leave: [variants.animate, variants.exit],
78
+ arrive: [variants.initial, variants.animate],
79
+ };
80
+ };
81
+ /** The name of the one image that flies from the leaving page into the arriving page. */
82
+ export var MORPH_NAME = 'tq-morph';
83
+ export var viewTransitionPlan = function (config, target) {
84
+ var _a, _b;
85
+ if (target === void 0) { target = { crossDocument: true }; }
86
+ var preset = String(config.preset).replace(/[^a-z-]/g, '');
87
+ var chosen = config.options && typeof config.options === 'object'
88
+ ? Object.fromEntries(Object.entries(config.options).filter(function (_a) {
89
+ var value = _a[1];
90
+ return typeof value === 'string';
91
+ }))
92
+ : undefined;
93
+ var options = PageTransition.resolvePageTransitionOptions(preset, chosen);
94
+ var duration = Number.isFinite(config.duration) && config.duration > 0 ? config.duration : 0.35;
95
+ var curve = PageTransition.PAGE_TRANSITION_EASING_CURVES[config.easing] ||
96
+ PageTransition.PAGE_TRANSITION_EASING_CURVES['ease-out'];
97
+ var custom = preset === 'custom'
98
+ ? PageTransition.sanitizePageTransitionCustom({
99
+ durationSeconds: duration,
100
+ easing: config.easing,
101
+ arrive: (_a = config.custom) === null || _a === void 0 ? void 0 : _a.arrive,
102
+ leave: (_b = config.custom) === null || _b === void 0 ? void 0 : _b.leave,
103
+ })
104
+ : undefined;
105
+ var needsOrigin = preset === 'circle' && options.origin !== 'center';
106
+ var origin = needsOrigin
107
+ ? { originX: "var(".concat(ORIGIN_X, ", 50%)"), originY: "var(".concat(ORIGIN_Y, ", 50%)") }
108
+ : { originX: '50%', originY: '50%' };
109
+ var forward = animationsFor(preset, __assign({ reverse: false }, origin), options, custom);
110
+ if (!forward) {
111
+ return null;
112
+ }
113
+ var needsDirection = PageTransition.reversePageTransitionPreset(preset) !== preset;
114
+ var back = needsDirection
115
+ ? animationsFor(preset, { reverse: true, originX: '50%', originY: '50%' }, options, custom)
116
+ : null;
117
+ var timing = "".concat(duration, "s cubic-bezier(").concat(curve.join(', '), ")");
118
+ // A reveal opens the arriving page over the leaving one: only the arrival
119
+ // animates, from the start, and the leaving picture just stays.
120
+ var revealsOver = !COVER_CLIPS[preset] && forward.arrive[1].clipPath !== undefined;
121
+ var arriveTiming = revealsOver ? "".concat(timing, " both") : "".concat(timing, " ").concat(duration, "s both");
122
+ var rules = __spreadArray(__spreadArray(__spreadArray(__spreadArray([], (target.crossDocument ? ['@view-transition {\n navigation: auto;\n}'] : []), true), [
123
+ '::view-transition-old(root),\n::view-transition-new(root) {\n mix-blend-mode: normal;\n}',
124
+ revealsOver
125
+ ? '::view-transition-old(root) {\n animation: none;\n}'
126
+ : "::view-transition-old(root) {\n animation: tq-page-leave ".concat(timing, " both;\n}"),
127
+ "::view-transition-new(root) {\n animation: tq-page-arrive ".concat(arriveTiming, ";\n}")
128
+ ], false), (revealsOver ? [] : [keyframes('tq-page-leave', forward.leave[0], forward.leave[1])]), true), [
129
+ keyframes('tq-page-arrive', forward.arrive[0], forward.arrive[1]),
130
+ ], false);
131
+ if (COVER_CLIPS[preset]) {
132
+ rules.push("::view-transition-group(root) {\n background: ".concat(PageTransition.pageTransitionCoverColor(options.color), ";\n}"));
133
+ }
134
+ if (back) {
135
+ if (!revealsOver) {
136
+ rules.push("html[".concat(BACK_ATTR, "=\"back\"]::view-transition-old(root) {\n animation-name: tq-page-leave-back;\n}"));
137
+ }
138
+ rules.push.apply(rules, __spreadArray(__spreadArray(["html[".concat(BACK_ATTR, "=\"back\"]::view-transition-new(root) {\n animation-name: tq-page-arrive-back;\n}")], (revealsOver ? [] : [keyframes('tq-page-leave-back', back.leave[0], back.leave[1])]), false), [keyframes('tq-page-arrive-back', back.arrive[0], back.arrive[1])], false));
139
+ }
140
+ // The flying image spans both halves (the leaving page's and the arriving
141
+ // page's — one half when the arrival plays over the leaving page), and a
142
+ // card's 4:3 picture grows into a 16:9 hero cropped, never stretched. A
143
+ // picture the arriving page does not show has nowhere to land: it leaves
144
+ // with its page instead of lingering over the next one.
145
+ var flies = config.flyingPictures !== false;
146
+ if (flies) {
147
+ var flight = revealsOver ? duration : duration * 2;
148
+ rules.push("::view-transition-group(".concat(MORPH_NAME, ") {\n animation-duration: ").concat(flight, "s;\n animation-timing-function: cubic-bezier(").concat(curve.join(', '), ");\n}"), "::view-transition-old(".concat(MORPH_NAME, "),\n::view-transition-new(").concat(MORPH_NAME, ") {\n height: 100%;\n object-fit: cover;\n overflow: clip;\n animation-duration: ").concat(flight, "s;\n}"), revealsOver
149
+ ? "::view-transition-old(".concat(MORPH_NAME, "):only-child {\n animation: tq-morph-away ").concat(timing, " both;\n}")
150
+ : "::view-transition-old(".concat(MORPH_NAME, "):only-child {\n animation: tq-page-leave ").concat(timing, " both, tq-morph-away ").concat(timing, " both;\n}"), "::view-transition-new(".concat(MORPH_NAME, "):only-child {\n animation: tq-page-arrive ").concat(arriveTiming, ", tq-morph-in ").concat(arriveTiming, ";\n}"), '@keyframes tq-morph-away {\n to { opacity: 0; }\n}', '@keyframes tq-morph-in {\n from { opacity: 0; }\n}');
151
+ }
152
+ var indented = rules.map(function (rule) { return rule.replace(/^/gm, ' '); }).join('\n');
153
+ return {
154
+ css: "@media (prefers-reduced-motion: no-preference) {\n".concat(indented, "\n}\n"),
155
+ needsDirection: needsDirection,
156
+ needsOrigin: needsOrigin,
157
+ flies: flies,
158
+ revealsOver: revealsOver,
159
+ };
160
+ };
161
+ //# sourceMappingURL=view-transition-css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view-transition-css.js","sourceRoot":"","sources":["../../../src/page-transition/view-transition-css.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Which chapter is ON STAGE at a scene progress: the chapter whose moment is
3
+ * the latest one the visitor has passed (a later chapter wins a tie), -1 before
4
+ * any moment is reached. Moments are read in document order but need not be
5
+ * monotone — an author's "Snap here" can put an early chapter's moment late.
6
+ * The published TqScrollScene announces every change of this index as a
7
+ * `tq-chapter-reached` DOM event on the chapter element — the hook the
8
+ * "A Chapter Is Reached" workflow trigger listens for.
9
+ *
10
+ * Plain JS inside: this function's SOURCE is injected into the generated
11
+ * runtime via toString(), so no TypeScript-only runtime constructs and no
12
+ * template literals.
13
+ */
14
+ export declare function activeChapterIndex(moments: number[], progress: number): number;
15
+ //# sourceMappingURL=chapter-index.d.ts.map