@flightdev/transitions 0.2.0

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 (62) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +86 -0
  3. package/dist/adapters/react/index.d.ts +210 -0
  4. package/dist/adapters/react/index.js +261 -0
  5. package/dist/adapters/react/index.js.map +1 -0
  6. package/dist/adapters/solid/index.d.ts +5 -0
  7. package/dist/adapters/solid/index.js +9 -0
  8. package/dist/adapters/solid/index.js.map +1 -0
  9. package/dist/adapters/svelte/index.d.ts +5 -0
  10. package/dist/adapters/svelte/index.js +9 -0
  11. package/dist/adapters/svelte/index.js.map +1 -0
  12. package/dist/adapters/vue/index.d.ts +5 -0
  13. package/dist/adapters/vue/index.js +9 -0
  14. package/dist/adapters/vue/index.js.map +1 -0
  15. package/dist/chunk-DZC3OLDU.js +121 -0
  16. package/dist/chunk-DZC3OLDU.js.map +1 -0
  17. package/dist/chunk-GEYKSLH6.js +190 -0
  18. package/dist/chunk-GEYKSLH6.js.map +1 -0
  19. package/dist/chunk-N7U5LD4Z.js +70 -0
  20. package/dist/chunk-N7U5LD4Z.js.map +1 -0
  21. package/dist/chunk-OV3U5STU.js +252 -0
  22. package/dist/chunk-OV3U5STU.js.map +1 -0
  23. package/dist/chunk-QSB65CTV.js +438 -0
  24. package/dist/chunk-QSB65CTV.js.map +1 -0
  25. package/dist/chunk-SPUGO5I5.js +138 -0
  26. package/dist/chunk-SPUGO5I5.js.map +1 -0
  27. package/dist/chunk-W7HSR35B.js +3 -0
  28. package/dist/chunk-W7HSR35B.js.map +1 -0
  29. package/dist/chunk-X2A7XWYR.js +442 -0
  30. package/dist/chunk-X2A7XWYR.js.map +1 -0
  31. package/dist/chunk-XLVYHPII.js +3 -0
  32. package/dist/chunk-XLVYHPII.js.map +1 -0
  33. package/dist/chunk-ZI6E7GNQ.js +136 -0
  34. package/dist/chunk-ZI6E7GNQ.js.map +1 -0
  35. package/dist/component/index.d.ts +87 -0
  36. package/dist/component/index.js +5 -0
  37. package/dist/component/index.js.map +1 -0
  38. package/dist/config/index.d.ts +93 -0
  39. package/dist/config/index.js +5 -0
  40. package/dist/config/index.js.map +1 -0
  41. package/dist/core/index.d.ts +107 -0
  42. package/dist/core/index.js +5 -0
  43. package/dist/core/index.js.map +1 -0
  44. package/dist/index.d.ts +10 -0
  45. package/dist/index.js +11 -0
  46. package/dist/index.js.map +1 -0
  47. package/dist/layout/index.d.ts +112 -0
  48. package/dist/layout/index.js +4 -0
  49. package/dist/layout/index.js.map +1 -0
  50. package/dist/page/index.d.ts +87 -0
  51. package/dist/page/index.js +7 -0
  52. package/dist/page/index.js.map +1 -0
  53. package/dist/presets/index.d.ts +192 -0
  54. package/dist/presets/index.js +3 -0
  55. package/dist/presets/index.js.map +1 -0
  56. package/dist/router/index.d.ts +104 -0
  57. package/dist/router/index.js +7 -0
  58. package/dist/router/index.js.map +1 -0
  59. package/dist/transition-manager-QWm4OSFw.d.ts +62 -0
  60. package/dist/types-BA4L37s4.d.ts +272 -0
  61. package/dist/view-transition-LSN_PSbm.d.ts +97 -0
  62. package/package.json +148 -0
@@ -0,0 +1,438 @@
1
+ // src/presets/fade.ts
2
+ var fade = {
3
+ name: "fade",
4
+ leave: {
5
+ from: { opacity: "1" },
6
+ to: { opacity: "0" }
7
+ },
8
+ enter: {
9
+ from: { opacity: "0" },
10
+ to: { opacity: "1" }
11
+ },
12
+ duration: { leave: 150, enter: 150 },
13
+ easing: { leave: "ease-out", enter: "ease-in" },
14
+ fill: "both"
15
+ };
16
+ var fadeScale = {
17
+ name: "fade-scale",
18
+ leave: {
19
+ from: { opacity: "1", transform: "scale(1)" },
20
+ to: { opacity: "0", transform: "scale(0.95)" }
21
+ },
22
+ enter: {
23
+ from: { opacity: "0", transform: "scale(1.02)" },
24
+ to: { opacity: "1", transform: "scale(1)" }
25
+ },
26
+ duration: { leave: 150, enter: 200 },
27
+ easing: {
28
+ leave: "cubic-bezier(0.4, 0, 1, 1)",
29
+ enter: "cubic-bezier(0, 0, 0.2, 1)"
30
+ },
31
+ fill: "both"
32
+ };
33
+ var fadeBlur = {
34
+ name: "fade-blur",
35
+ leave: {
36
+ from: { opacity: "1", filter: "blur(0px)" },
37
+ to: { opacity: "0", filter: "blur(4px)" }
38
+ },
39
+ enter: {
40
+ from: { opacity: "0", filter: "blur(4px)" },
41
+ to: { opacity: "1", filter: "blur(0px)" }
42
+ },
43
+ duration: { leave: 150, enter: 200 },
44
+ easing: "cubic-bezier(0.4, 0, 0.2, 1)",
45
+ fill: "both"
46
+ };
47
+ var fadeSlow = {
48
+ name: "fade-slow",
49
+ leave: {
50
+ from: { opacity: "1" },
51
+ to: { opacity: "0" }
52
+ },
53
+ enter: {
54
+ from: { opacity: "0" },
55
+ to: { opacity: "1" }
56
+ },
57
+ duration: { leave: 300, enter: 400 },
58
+ easing: "cubic-bezier(0.4, 0, 0.2, 1)",
59
+ fill: "both"
60
+ };
61
+ var fadeFast = {
62
+ name: "fade-fast",
63
+ leave: {
64
+ from: { opacity: "1" },
65
+ to: { opacity: "0" }
66
+ },
67
+ enter: {
68
+ from: { opacity: "0" },
69
+ to: { opacity: "1" }
70
+ },
71
+ duration: { leave: 75, enter: 100 },
72
+ easing: "ease-out",
73
+ fill: "both"
74
+ };
75
+
76
+ // src/presets/slide.ts
77
+ var slideLeft = {
78
+ name: "slide-left",
79
+ leave: {
80
+ from: { transform: "translateX(0)", opacity: "1" },
81
+ to: { transform: "translateX(100%)", opacity: "0" }
82
+ },
83
+ enter: {
84
+ from: { transform: "translateX(-100%)", opacity: "0" },
85
+ to: { transform: "translateX(0)", opacity: "1" }
86
+ },
87
+ duration: { leave: 200, enter: 200 },
88
+ easing: "cubic-bezier(0.4, 0, 0.2, 1)",
89
+ fill: "both"
90
+ };
91
+ var slideRight = {
92
+ name: "slide-right",
93
+ leave: {
94
+ from: { transform: "translateX(0)", opacity: "1" },
95
+ to: { transform: "translateX(-100%)", opacity: "0" }
96
+ },
97
+ enter: {
98
+ from: { transform: "translateX(100%)", opacity: "0" },
99
+ to: { transform: "translateX(0)", opacity: "1" }
100
+ },
101
+ duration: { leave: 200, enter: 200 },
102
+ easing: "cubic-bezier(0.4, 0, 0.2, 1)",
103
+ fill: "both"
104
+ };
105
+ var slideUp = {
106
+ name: "slide-up",
107
+ leave: {
108
+ from: { transform: "translateY(0)", opacity: "1" },
109
+ to: { transform: "translateY(100%)", opacity: "0" }
110
+ },
111
+ enter: {
112
+ from: { transform: "translateY(-100%)", opacity: "0" },
113
+ to: { transform: "translateY(0)", opacity: "1" }
114
+ },
115
+ duration: { leave: 200, enter: 200 },
116
+ easing: "cubic-bezier(0.4, 0, 0.2, 1)",
117
+ fill: "both"
118
+ };
119
+ var slideDown = {
120
+ name: "slide-down",
121
+ leave: {
122
+ from: { transform: "translateY(0)", opacity: "1" },
123
+ to: { transform: "translateY(-100%)", opacity: "0" }
124
+ },
125
+ enter: {
126
+ from: { transform: "translateY(100%)", opacity: "0" },
127
+ to: { transform: "translateY(0)", opacity: "1" }
128
+ },
129
+ duration: { leave: 200, enter: 200 },
130
+ easing: "cubic-bezier(0.4, 0, 0.2, 1)",
131
+ fill: "both"
132
+ };
133
+ var slideFade = {
134
+ name: "slide-fade",
135
+ leave: {
136
+ from: { transform: "translateY(0)", opacity: "1" },
137
+ to: { transform: "translateY(-8px)", opacity: "0" }
138
+ },
139
+ enter: {
140
+ from: { transform: "translateY(8px)", opacity: "0" },
141
+ to: { transform: "translateY(0)", opacity: "1" }
142
+ },
143
+ duration: { leave: 150, enter: 200 },
144
+ easing: "cubic-bezier(0.4, 0, 0.2, 1)",
145
+ fill: "both"
146
+ };
147
+ var slideScale = {
148
+ name: "slide-scale",
149
+ leave: {
150
+ from: { transform: "translateX(0) scale(1)", opacity: "1" },
151
+ to: { transform: "translateX(-30%) scale(0.9)", opacity: "0.5" }
152
+ },
153
+ enter: {
154
+ from: { transform: "translateX(100%) scale(1)", opacity: "1" },
155
+ to: { transform: "translateX(0) scale(1)", opacity: "1" }
156
+ },
157
+ duration: { leave: 300, enter: 300 },
158
+ easing: "cubic-bezier(0.4, 0, 0.2, 1)",
159
+ fill: "both"
160
+ };
161
+ var slideOverlay = {
162
+ name: "slide-overlay",
163
+ leave: {
164
+ from: { transform: "translateX(0)" },
165
+ to: { transform: "translateX(0)" }
166
+ },
167
+ enter: {
168
+ from: { transform: "translateX(100%)" },
169
+ to: { transform: "translateX(0)" }
170
+ },
171
+ duration: { leave: 0, enter: 300 },
172
+ easing: { leave: "linear", enter: "cubic-bezier(0.4, 0, 0.2, 1)" },
173
+ fill: "both"
174
+ };
175
+
176
+ // src/presets/scale.ts
177
+ var scale = {
178
+ name: "scale",
179
+ leave: {
180
+ from: { transform: "scale(1)", opacity: "1" },
181
+ to: { transform: "scale(0.9)", opacity: "0" }
182
+ },
183
+ enter: {
184
+ from: { transform: "scale(0.9)", opacity: "0" },
185
+ to: { transform: "scale(1)", opacity: "1" }
186
+ },
187
+ duration: { leave: 150, enter: 200 },
188
+ easing: "cubic-bezier(0.4, 0, 0.2, 1)",
189
+ fill: "both"
190
+ };
191
+ var scaleUp = {
192
+ name: "scale-up",
193
+ leave: {
194
+ from: { transform: "scale(1)", opacity: "1" },
195
+ to: { transform: "scale(1.1)", opacity: "0" }
196
+ },
197
+ enter: {
198
+ from: { transform: "scale(0.8)", opacity: "0" },
199
+ to: { transform: "scale(1)", opacity: "1" }
200
+ },
201
+ duration: { leave: 150, enter: 250 },
202
+ easing: {
203
+ leave: "cubic-bezier(0.4, 0, 1, 1)",
204
+ enter: "cubic-bezier(0.0, 0, 0.2, 1)"
205
+ },
206
+ fill: "both"
207
+ };
208
+ var scaleDown = {
209
+ name: "scale-down",
210
+ leave: {
211
+ from: { transform: "scale(1)", opacity: "1" },
212
+ to: { transform: "scale(0.8)", opacity: "0" }
213
+ },
214
+ enter: {
215
+ from: { transform: "scale(1.1)", opacity: "0" },
216
+ to: { transform: "scale(1)", opacity: "1" }
217
+ },
218
+ duration: { leave: 150, enter: 250 },
219
+ easing: {
220
+ leave: "cubic-bezier(0.4, 0, 1, 1)",
221
+ enter: "cubic-bezier(0.0, 0, 0.2, 1)"
222
+ },
223
+ fill: "both"
224
+ };
225
+ var scaleFade = {
226
+ name: "scale-fade",
227
+ leave: {
228
+ from: { transform: "scale(1)", opacity: "1" },
229
+ to: { transform: "scale(0.98)", opacity: "0" }
230
+ },
231
+ enter: {
232
+ from: { transform: "scale(1.02)", opacity: "0" },
233
+ to: { transform: "scale(1)", opacity: "1" }
234
+ },
235
+ duration: { leave: 100, enter: 150 },
236
+ easing: "cubic-bezier(0.4, 0, 0.2, 1)",
237
+ fill: "both"
238
+ };
239
+ var pop = {
240
+ name: "pop",
241
+ leave: {
242
+ from: { transform: "scale(1)", opacity: "1" },
243
+ to: { transform: "scale(0.8)", opacity: "0" }
244
+ },
245
+ enter: {
246
+ from: { transform: "scale(0.5)", opacity: "0" },
247
+ to: { transform: "scale(1)", opacity: "1" }
248
+ },
249
+ duration: { leave: 100, enter: 300 },
250
+ easing: {
251
+ leave: "cubic-bezier(0.4, 0, 1, 1)",
252
+ enter: "cubic-bezier(0.34, 1.56, 0.64, 1)"
253
+ // Overshoot
254
+ },
255
+ fill: "both"
256
+ };
257
+ var expand = {
258
+ name: "expand",
259
+ leave: {
260
+ from: { transform: "scale(1)", opacity: "1" },
261
+ to: { transform: "scale(0)", opacity: "0" }
262
+ },
263
+ enter: {
264
+ from: { transform: "scale(0)", opacity: "0" },
265
+ to: { transform: "scale(1)", opacity: "1" }
266
+ },
267
+ duration: { leave: 200, enter: 300 },
268
+ easing: "cubic-bezier(0.4, 0, 0.2, 1)",
269
+ fill: "both"
270
+ };
271
+
272
+ // src/presets/special.ts
273
+ var none = {
274
+ name: "none",
275
+ leave: {
276
+ from: { opacity: "1" },
277
+ to: { opacity: "1" }
278
+ },
279
+ enter: {
280
+ from: { opacity: "1" },
281
+ to: { opacity: "1" }
282
+ },
283
+ duration: 0,
284
+ easing: "linear",
285
+ fill: "both"
286
+ };
287
+ var flipX = {
288
+ name: "flip-x",
289
+ leave: {
290
+ from: { transform: "perspective(1000px) rotateY(0deg)", opacity: "1" },
291
+ to: { transform: "perspective(1000px) rotateY(90deg)", opacity: "0" }
292
+ },
293
+ enter: {
294
+ from: { transform: "perspective(1000px) rotateY(-90deg)", opacity: "0" },
295
+ to: { transform: "perspective(1000px) rotateY(0deg)", opacity: "1" }
296
+ },
297
+ duration: { leave: 200, enter: 200 },
298
+ easing: "cubic-bezier(0.4, 0, 0.2, 1)",
299
+ fill: "both"
300
+ };
301
+ var flipY = {
302
+ name: "flip-y",
303
+ leave: {
304
+ from: { transform: "perspective(1000px) rotateX(0deg)", opacity: "1" },
305
+ to: { transform: "perspective(1000px) rotateX(90deg)", opacity: "0" }
306
+ },
307
+ enter: {
308
+ from: { transform: "perspective(1000px) rotateX(-90deg)", opacity: "0" },
309
+ to: { transform: "perspective(1000px) rotateX(0deg)", opacity: "1" }
310
+ },
311
+ duration: { leave: 200, enter: 200 },
312
+ easing: "cubic-bezier(0.4, 0, 0.2, 1)",
313
+ fill: "both"
314
+ };
315
+ var rotate = {
316
+ name: "rotate",
317
+ leave: {
318
+ from: { transform: "rotate(0deg)", opacity: "1" },
319
+ to: { transform: "rotate(90deg)", opacity: "0" }
320
+ },
321
+ enter: {
322
+ from: { transform: "rotate(-90deg)", opacity: "0" },
323
+ to: { transform: "rotate(0deg)", opacity: "1" }
324
+ },
325
+ duration: { leave: 200, enter: 250 },
326
+ easing: "cubic-bezier(0.4, 0, 0.2, 1)",
327
+ fill: "both"
328
+ };
329
+ var swing = {
330
+ name: "swing",
331
+ leave: {
332
+ from: { transform: "perspective(400px) rotateX(0deg)", opacity: "1" },
333
+ to: { transform: "perspective(400px) rotateX(-90deg)", opacity: "0" }
334
+ },
335
+ enter: {
336
+ from: {
337
+ transform: "perspective(400px) rotateX(90deg)",
338
+ "transform-origin": "top center",
339
+ opacity: "0"
340
+ },
341
+ to: {
342
+ transform: "perspective(400px) rotateX(0deg)",
343
+ "transform-origin": "top center",
344
+ opacity: "1"
345
+ }
346
+ },
347
+ duration: { leave: 200, enter: 400 },
348
+ easing: {
349
+ leave: "ease-in",
350
+ enter: "cubic-bezier(0.175, 0.885, 0.32, 1.275)"
351
+ // Bounce
352
+ },
353
+ fill: "both"
354
+ };
355
+ var morph = {
356
+ name: "morph",
357
+ leave: {
358
+ from: { opacity: "1" },
359
+ to: { opacity: "0" }
360
+ },
361
+ enter: {
362
+ from: { opacity: "0" },
363
+ to: { opacity: "1" }
364
+ },
365
+ duration: 300,
366
+ easing: "cubic-bezier(0.4, 0, 0.2, 1)",
367
+ fill: "both"
368
+ };
369
+ var wipeLeft = {
370
+ name: "wipe-left",
371
+ leave: {
372
+ from: { "clip-path": "inset(0 0 0 0)" },
373
+ to: { "clip-path": "inset(0 0 0 100%)" }
374
+ },
375
+ enter: {
376
+ from: { "clip-path": "inset(0 100% 0 0)" },
377
+ to: { "clip-path": "inset(0 0 0 0)" }
378
+ },
379
+ duration: { leave: 250, enter: 250 },
380
+ easing: "cubic-bezier(0.4, 0, 0.2, 1)",
381
+ fill: "both"
382
+ };
383
+ var wipeUp = {
384
+ name: "wipe-up",
385
+ leave: {
386
+ from: { "clip-path": "inset(0 0 0 0)" },
387
+ to: { "clip-path": "inset(0 0 100% 0)" }
388
+ },
389
+ enter: {
390
+ from: { "clip-path": "inset(100% 0 0 0)" },
391
+ to: { "clip-path": "inset(0 0 0 0)" }
392
+ },
393
+ duration: { leave: 250, enter: 250 },
394
+ easing: "cubic-bezier(0.4, 0, 0.2, 1)",
395
+ fill: "both"
396
+ };
397
+ var circleReveal = {
398
+ name: "circle-reveal",
399
+ leave: {
400
+ from: { "clip-path": "circle(100% at 50% 50%)" },
401
+ to: { "clip-path": "circle(0% at 50% 50%)" }
402
+ },
403
+ enter: {
404
+ from: { "clip-path": "circle(0% at 50% 50%)" },
405
+ to: { "clip-path": "circle(100% at 50% 50%)" }
406
+ },
407
+ duration: { leave: 300, enter: 400 },
408
+ easing: "cubic-bezier(0.4, 0, 0.2, 1)",
409
+ fill: "both"
410
+ };
411
+
412
+ // src/presets/index.ts
413
+ var presetMap = {
414
+ "fade": fade,
415
+ "fade-scale": fadeScale,
416
+ "slide-left": slideLeft,
417
+ "slide-right": slideRight,
418
+ "slide-up": slideUp,
419
+ "slide-down": slideDown,
420
+ "scale": scale,
421
+ "scale-fade": scaleFade,
422
+ "morph": morph,
423
+ "flip": flipX,
424
+ "none": none
425
+ };
426
+ function getPreset(name) {
427
+ return presetMap[name];
428
+ }
429
+ function isPresetName(name) {
430
+ return name in presetMap;
431
+ }
432
+ function getPresetNames() {
433
+ return Object.keys(presetMap);
434
+ }
435
+
436
+ export { circleReveal, expand, fade, fadeBlur, fadeFast, fadeScale, fadeSlow, flipX, flipY, getPreset, getPresetNames, isPresetName, morph, none, pop, presetMap, rotate, scale, scaleDown, scaleFade, scaleUp, slideDown, slideFade, slideLeft, slideOverlay, slideRight, slideScale, slideUp, swing, wipeLeft, wipeUp };
437
+ //# sourceMappingURL=chunk-QSB65CTV.js.map
438
+ //# sourceMappingURL=chunk-QSB65CTV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/presets/fade.ts","../src/presets/slide.ts","../src/presets/scale.ts","../src/presets/special.ts","../src/presets/index.ts"],"names":[],"mappings":"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","file":"chunk-QSB65CTV.js","sourcesContent":["/**\r\n * @flightdev/transitions - Fade Presets\r\n * \r\n * Fade transition presets for smooth opacity-based animations.\r\n */\r\n\r\nimport type { CustomTransition } from '../core/types';\r\n\r\n/**\r\n * Simple fade transition\r\n * Elements fade in/out with opacity only\r\n */\r\nexport const fade: CustomTransition = {\r\n name: 'fade',\r\n leave: {\r\n from: { opacity: '1' },\r\n to: { opacity: '0' },\r\n },\r\n enter: {\r\n from: { opacity: '0' },\r\n to: { opacity: '1' },\r\n },\r\n duration: { leave: 150, enter: 150 },\r\n easing: { leave: 'ease-out', enter: 'ease-in' },\r\n fill: 'both',\r\n};\r\n\r\n/**\r\n * Fade with subtle scale\r\n * Elements fade and slightly shrink on exit, grow on enter\r\n */\r\nexport const fadeScale: CustomTransition = {\r\n name: 'fade-scale',\r\n leave: {\r\n from: { opacity: '1', transform: 'scale(1)' },\r\n to: { opacity: '0', transform: 'scale(0.95)' },\r\n },\r\n enter: {\r\n from: { opacity: '0', transform: 'scale(1.02)' },\r\n to: { opacity: '1', transform: 'scale(1)' },\r\n },\r\n duration: { leave: 150, enter: 200 },\r\n easing: {\r\n leave: 'cubic-bezier(0.4, 0, 1, 1)',\r\n enter: 'cubic-bezier(0, 0, 0.2, 1)',\r\n },\r\n fill: 'both',\r\n};\r\n\r\n/**\r\n * Fade with blur effect\r\n * Elements fade and blur on exit, unblur on enter\r\n */\r\nexport const fadeBlur: CustomTransition = {\r\n name: 'fade-blur',\r\n leave: {\r\n from: { opacity: '1', filter: 'blur(0px)' },\r\n to: { opacity: '0', filter: 'blur(4px)' },\r\n },\r\n enter: {\r\n from: { opacity: '0', filter: 'blur(4px)' },\r\n to: { opacity: '1', filter: 'blur(0px)' },\r\n },\r\n duration: { leave: 150, enter: 200 },\r\n easing: 'cubic-bezier(0.4, 0, 0.2, 1)',\r\n fill: 'both',\r\n};\r\n\r\n/**\r\n * Slow fade for dramatic effect\r\n * Longer duration for hero sections or important content\r\n */\r\nexport const fadeSlow: CustomTransition = {\r\n name: 'fade-slow',\r\n leave: {\r\n from: { opacity: '1' },\r\n to: { opacity: '0' },\r\n },\r\n enter: {\r\n from: { opacity: '0' },\r\n to: { opacity: '1' },\r\n },\r\n duration: { leave: 300, enter: 400 },\r\n easing: 'cubic-bezier(0.4, 0, 0.2, 1)',\r\n fill: 'both',\r\n};\r\n\r\n/**\r\n * Fast fade for snappy UI\r\n * Quick transitions for responsive feel\r\n */\r\nexport const fadeFast: CustomTransition = {\r\n name: 'fade-fast',\r\n leave: {\r\n from: { opacity: '1' },\r\n to: { opacity: '0' },\r\n },\r\n enter: {\r\n from: { opacity: '0' },\r\n to: { opacity: '1' },\r\n },\r\n duration: { leave: 75, enter: 100 },\r\n easing: 'ease-out',\r\n fill: 'both',\r\n};\r\n","/**\r\n * @flightdev/transitions - Slide Presets\r\n * \r\n * Slide transition presets for directional page animations.\r\n */\r\n\r\nimport type { CustomTransition } from '../core/types';\r\n\r\n/**\r\n * Slide from left\r\n * New content slides in from the left, old slides out to the right\r\n */\r\nexport const slideLeft: CustomTransition = {\r\n name: 'slide-left',\r\n leave: {\r\n from: { transform: 'translateX(0)', opacity: '1' },\r\n to: { transform: 'translateX(100%)', opacity: '0' },\r\n },\r\n enter: {\r\n from: { transform: 'translateX(-100%)', opacity: '0' },\r\n to: { transform: 'translateX(0)', opacity: '1' },\r\n },\r\n duration: { leave: 200, enter: 200 },\r\n easing: 'cubic-bezier(0.4, 0, 0.2, 1)',\r\n fill: 'both',\r\n};\r\n\r\n/**\r\n * Slide from right\r\n * New content slides in from the right, old slides out to the left\r\n */\r\nexport const slideRight: CustomTransition = {\r\n name: 'slide-right',\r\n leave: {\r\n from: { transform: 'translateX(0)', opacity: '1' },\r\n to: { transform: 'translateX(-100%)', opacity: '0' },\r\n },\r\n enter: {\r\n from: { transform: 'translateX(100%)', opacity: '0' },\r\n to: { transform: 'translateX(0)', opacity: '1' },\r\n },\r\n duration: { leave: 200, enter: 200 },\r\n easing: 'cubic-bezier(0.4, 0, 0.2, 1)',\r\n fill: 'both',\r\n};\r\n\r\n/**\r\n * Slide from top\r\n * New content slides in from the top, old slides out to the bottom\r\n */\r\nexport const slideUp: CustomTransition = {\r\n name: 'slide-up',\r\n leave: {\r\n from: { transform: 'translateY(0)', opacity: '1' },\r\n to: { transform: 'translateY(100%)', opacity: '0' },\r\n },\r\n enter: {\r\n from: { transform: 'translateY(-100%)', opacity: '0' },\r\n to: { transform: 'translateY(0)', opacity: '1' },\r\n },\r\n duration: { leave: 200, enter: 200 },\r\n easing: 'cubic-bezier(0.4, 0, 0.2, 1)',\r\n fill: 'both',\r\n};\r\n\r\n/**\r\n * Slide from bottom\r\n * New content slides in from the bottom, old slides out to the top\r\n * Common for modals and bottom sheets\r\n */\r\nexport const slideDown: CustomTransition = {\r\n name: 'slide-down',\r\n leave: {\r\n from: { transform: 'translateY(0)', opacity: '1' },\r\n to: { transform: 'translateY(-100%)', opacity: '0' },\r\n },\r\n enter: {\r\n from: { transform: 'translateY(100%)', opacity: '0' },\r\n to: { transform: 'translateY(0)', opacity: '1' },\r\n },\r\n duration: { leave: 200, enter: 200 },\r\n easing: 'cubic-bezier(0.4, 0, 0.2, 1)',\r\n fill: 'both',\r\n};\r\n\r\n/**\r\n * Slide with fade (subtle offset)\r\n * Elements slide a small distance while fading\r\n * Less dramatic than full slide\r\n */\r\nexport const slideFade: CustomTransition = {\r\n name: 'slide-fade',\r\n leave: {\r\n from: { transform: 'translateY(0)', opacity: '1' },\r\n to: { transform: 'translateY(-8px)', opacity: '0' },\r\n },\r\n enter: {\r\n from: { transform: 'translateY(8px)', opacity: '0' },\r\n to: { transform: 'translateY(0)', opacity: '1' },\r\n },\r\n duration: { leave: 150, enter: 200 },\r\n easing: 'cubic-bezier(0.4, 0, 0.2, 1)',\r\n fill: 'both',\r\n};\r\n\r\n/**\r\n * Slide with scale (iOS-like)\r\n * Elements slide and scale slightly for depth effect\r\n */\r\nexport const slideScale: CustomTransition = {\r\n name: 'slide-scale',\r\n leave: {\r\n from: { transform: 'translateX(0) scale(1)', opacity: '1' },\r\n to: { transform: 'translateX(-30%) scale(0.9)', opacity: '0.5' },\r\n },\r\n enter: {\r\n from: { transform: 'translateX(100%) scale(1)', opacity: '1' },\r\n to: { transform: 'translateX(0) scale(1)', opacity: '1' },\r\n },\r\n duration: { leave: 300, enter: 300 },\r\n easing: 'cubic-bezier(0.4, 0, 0.2, 1)',\r\n fill: 'both',\r\n};\r\n\r\n/**\r\n * Slide overlay (modal-like)\r\n * New content slides over old content which stays in place\r\n */\r\nexport const slideOverlay: CustomTransition = {\r\n name: 'slide-overlay',\r\n leave: {\r\n from: { transform: 'translateX(0)' },\r\n to: { transform: 'translateX(0)' },\r\n },\r\n enter: {\r\n from: { transform: 'translateX(100%)' },\r\n to: { transform: 'translateX(0)' },\r\n },\r\n duration: { leave: 0, enter: 300 },\r\n easing: { leave: 'linear', enter: 'cubic-bezier(0.4, 0, 0.2, 1)' },\r\n fill: 'both',\r\n};\r\n","/**\r\n * @flightdev/transitions - Scale Presets\r\n * \r\n * Scale transition presets for zoom-based animations.\r\n */\r\n\r\nimport type { CustomTransition } from '../core/types';\r\n\r\n/**\r\n * Scale in/out\r\n * Elements grow on enter, shrink on exit\r\n */\r\nexport const scale: CustomTransition = {\r\n name: 'scale',\r\n leave: {\r\n from: { transform: 'scale(1)', opacity: '1' },\r\n to: { transform: 'scale(0.9)', opacity: '0' },\r\n },\r\n enter: {\r\n from: { transform: 'scale(0.9)', opacity: '0' },\r\n to: { transform: 'scale(1)', opacity: '1' },\r\n },\r\n duration: { leave: 150, enter: 200 },\r\n easing: 'cubic-bezier(0.4, 0, 0.2, 1)',\r\n fill: 'both',\r\n};\r\n\r\n/**\r\n * Scale up (zoom in effect)\r\n * Elements scale from smaller to normal\r\n */\r\nexport const scaleUp: CustomTransition = {\r\n name: 'scale-up',\r\n leave: {\r\n from: { transform: 'scale(1)', opacity: '1' },\r\n to: { transform: 'scale(1.1)', opacity: '0' },\r\n },\r\n enter: {\r\n from: { transform: 'scale(0.8)', opacity: '0' },\r\n to: { transform: 'scale(1)', opacity: '1' },\r\n },\r\n duration: { leave: 150, enter: 250 },\r\n easing: {\r\n leave: 'cubic-bezier(0.4, 0, 1, 1)',\r\n enter: 'cubic-bezier(0.0, 0, 0.2, 1)',\r\n },\r\n fill: 'both',\r\n};\r\n\r\n/**\r\n * Scale down (zoom out effect)\r\n * Elements scale from larger to normal\r\n */\r\nexport const scaleDown: CustomTransition = {\r\n name: 'scale-down',\r\n leave: {\r\n from: { transform: 'scale(1)', opacity: '1' },\r\n to: { transform: 'scale(0.8)', opacity: '0' },\r\n },\r\n enter: {\r\n from: { transform: 'scale(1.1)', opacity: '0' },\r\n to: { transform: 'scale(1)', opacity: '1' },\r\n },\r\n duration: { leave: 150, enter: 250 },\r\n easing: {\r\n leave: 'cubic-bezier(0.4, 0, 1, 1)',\r\n enter: 'cubic-bezier(0.0, 0, 0.2, 1)',\r\n },\r\n fill: 'both',\r\n};\r\n\r\n/**\r\n * Scale fade (subtle)\r\n * Very subtle scale with fade for refined UI\r\n */\r\nexport const scaleFade: CustomTransition = {\r\n name: 'scale-fade',\r\n leave: {\r\n from: { transform: 'scale(1)', opacity: '1' },\r\n to: { transform: 'scale(0.98)', opacity: '0' },\r\n },\r\n enter: {\r\n from: { transform: 'scale(1.02)', opacity: '0' },\r\n to: { transform: 'scale(1)', opacity: '1' },\r\n },\r\n duration: { leave: 100, enter: 150 },\r\n easing: 'cubic-bezier(0.4, 0, 0.2, 1)',\r\n fill: 'both',\r\n};\r\n\r\n/**\r\n * Pop (bouncy scale)\r\n * Elements pop in with overshoot for playful UI\r\n */\r\nexport const pop: CustomTransition = {\r\n name: 'pop',\r\n leave: {\r\n from: { transform: 'scale(1)', opacity: '1' },\r\n to: { transform: 'scale(0.8)', opacity: '0' },\r\n },\r\n enter: {\r\n from: { transform: 'scale(0.5)', opacity: '0' },\r\n to: { transform: 'scale(1)', opacity: '1' },\r\n },\r\n duration: { leave: 100, enter: 300 },\r\n easing: {\r\n leave: 'cubic-bezier(0.4, 0, 1, 1)',\r\n enter: 'cubic-bezier(0.34, 1.56, 0.64, 1)', // Overshoot\r\n },\r\n fill: 'both',\r\n};\r\n\r\n/**\r\n * Expand from center\r\n * Elements expand from center point\r\n */\r\nexport const expand: CustomTransition = {\r\n name: 'expand',\r\n leave: {\r\n from: { transform: 'scale(1)', opacity: '1' },\r\n to: { transform: 'scale(0)', opacity: '0' },\r\n },\r\n enter: {\r\n from: { transform: 'scale(0)', opacity: '0' },\r\n to: { transform: 'scale(1)', opacity: '1' },\r\n },\r\n duration: { leave: 200, enter: 300 },\r\n easing: 'cubic-bezier(0.4, 0, 0.2, 1)',\r\n fill: 'both',\r\n};\r\n","/**\r\n * @flightdev/transitions - Special Presets\r\n * \r\n * Special transition presets for advanced effects.\r\n */\r\n\r\nimport type { CustomTransition } from '../core/types';\r\n\r\n/**\r\n * No transition (instant swap)\r\n * Use when you want to disable transitions for specific pages\r\n */\r\nexport const none: CustomTransition = {\r\n name: 'none',\r\n leave: {\r\n from: { opacity: '1' },\r\n to: { opacity: '1' },\r\n },\r\n enter: {\r\n from: { opacity: '1' },\r\n to: { opacity: '1' },\r\n },\r\n duration: 0,\r\n easing: 'linear',\r\n fill: 'both',\r\n};\r\n\r\n/**\r\n * Flip horizontal (3D rotation)\r\n * Elements flip like a card horizontally\r\n */\r\nexport const flipX: CustomTransition = {\r\n name: 'flip-x',\r\n leave: {\r\n from: { transform: 'perspective(1000px) rotateY(0deg)', opacity: '1' },\r\n to: { transform: 'perspective(1000px) rotateY(90deg)', opacity: '0' },\r\n },\r\n enter: {\r\n from: { transform: 'perspective(1000px) rotateY(-90deg)', opacity: '0' },\r\n to: { transform: 'perspective(1000px) rotateY(0deg)', opacity: '1' },\r\n },\r\n duration: { leave: 200, enter: 200 },\r\n easing: 'cubic-bezier(0.4, 0, 0.2, 1)',\r\n fill: 'both',\r\n};\r\n\r\n/**\r\n * Flip vertical (3D rotation)\r\n * Elements flip like a card vertically\r\n */\r\nexport const flipY: CustomTransition = {\r\n name: 'flip-y',\r\n leave: {\r\n from: { transform: 'perspective(1000px) rotateX(0deg)', opacity: '1' },\r\n to: { transform: 'perspective(1000px) rotateX(90deg)', opacity: '0' },\r\n },\r\n enter: {\r\n from: { transform: 'perspective(1000px) rotateX(-90deg)', opacity: '0' },\r\n to: { transform: 'perspective(1000px) rotateX(0deg)', opacity: '1' },\r\n },\r\n duration: { leave: 200, enter: 200 },\r\n easing: 'cubic-bezier(0.4, 0, 0.2, 1)',\r\n fill: 'both',\r\n};\r\n\r\n/**\r\n * Rotate in/out\r\n * Elements rotate while fading\r\n */\r\nexport const rotate: CustomTransition = {\r\n name: 'rotate',\r\n leave: {\r\n from: { transform: 'rotate(0deg)', opacity: '1' },\r\n to: { transform: 'rotate(90deg)', opacity: '0' },\r\n },\r\n enter: {\r\n from: { transform: 'rotate(-90deg)', opacity: '0' },\r\n to: { transform: 'rotate(0deg)', opacity: '1' },\r\n },\r\n duration: { leave: 200, enter: 250 },\r\n easing: 'cubic-bezier(0.4, 0, 0.2, 1)',\r\n fill: 'both',\r\n};\r\n\r\n/**\r\n * Swing in (pendulum effect)\r\n * Elements swing in from the top\r\n */\r\nexport const swing: CustomTransition = {\r\n name: 'swing',\r\n leave: {\r\n from: { transform: 'perspective(400px) rotateX(0deg)', opacity: '1' },\r\n to: { transform: 'perspective(400px) rotateX(-90deg)', opacity: '0' },\r\n },\r\n enter: {\r\n from: {\r\n transform: 'perspective(400px) rotateX(90deg)',\r\n 'transform-origin': 'top center',\r\n opacity: '0',\r\n },\r\n to: {\r\n transform: 'perspective(400px) rotateX(0deg)',\r\n 'transform-origin': 'top center',\r\n opacity: '1',\r\n },\r\n },\r\n duration: { leave: 200, enter: 400 },\r\n easing: {\r\n leave: 'ease-in',\r\n enter: 'cubic-bezier(0.175, 0.885, 0.32, 1.275)', // Bounce\r\n },\r\n fill: 'both',\r\n};\r\n\r\n/**\r\n * Morph placeholder\r\n * Actual morph is handled by shared element transitions\r\n */\r\nexport const morph: CustomTransition = {\r\n name: 'morph',\r\n leave: {\r\n from: { opacity: '1' },\r\n to: { opacity: '0' },\r\n },\r\n enter: {\r\n from: { opacity: '0' },\r\n to: { opacity: '1' },\r\n },\r\n duration: 300,\r\n easing: 'cubic-bezier(0.4, 0, 0.2, 1)',\r\n fill: 'both',\r\n};\r\n\r\n/**\r\n * Wipe left (reveal effect)\r\n * Content is revealed from right to left using clip-path\r\n */\r\nexport const wipeLeft: CustomTransition = {\r\n name: 'wipe-left',\r\n leave: {\r\n from: { 'clip-path': 'inset(0 0 0 0)' },\r\n to: { 'clip-path': 'inset(0 0 0 100%)' },\r\n },\r\n enter: {\r\n from: { 'clip-path': 'inset(0 100% 0 0)' },\r\n to: { 'clip-path': 'inset(0 0 0 0)' },\r\n },\r\n duration: { leave: 250, enter: 250 },\r\n easing: 'cubic-bezier(0.4, 0, 0.2, 1)',\r\n fill: 'both',\r\n};\r\n\r\n/**\r\n * Wipe up (reveal effect)\r\n * Content is revealed from bottom to top using clip-path\r\n */\r\nexport const wipeUp: CustomTransition = {\r\n name: 'wipe-up',\r\n leave: {\r\n from: { 'clip-path': 'inset(0 0 0 0)' },\r\n to: { 'clip-path': 'inset(0 0 100% 0)' },\r\n },\r\n enter: {\r\n from: { 'clip-path': 'inset(100% 0 0 0)' },\r\n to: { 'clip-path': 'inset(0 0 0 0)' },\r\n },\r\n duration: { leave: 250, enter: 250 },\r\n easing: 'cubic-bezier(0.4, 0, 0.2, 1)',\r\n fill: 'both',\r\n};\r\n\r\n/**\r\n * Circle reveal\r\n * Content is revealed in a circular pattern from center\r\n */\r\nexport const circleReveal: CustomTransition = {\r\n name: 'circle-reveal',\r\n leave: {\r\n from: { 'clip-path': 'circle(100% at 50% 50%)' },\r\n to: { 'clip-path': 'circle(0% at 50% 50%)' },\r\n },\r\n enter: {\r\n from: { 'clip-path': 'circle(0% at 50% 50%)' },\r\n to: { 'clip-path': 'circle(100% at 50% 50%)' },\r\n },\r\n duration: { leave: 300, enter: 400 },\r\n easing: 'cubic-bezier(0.4, 0, 0.2, 1)',\r\n fill: 'both',\r\n};\r\n","/**\r\n * @flightdev/transitions - Presets Module\r\n * \r\n * All transition presets exported for easy consumption.\r\n */\r\n\r\n// Fade presets\r\nexport {\r\n fade,\r\n fadeScale,\r\n fadeBlur,\r\n fadeSlow,\r\n fadeFast,\r\n} from './fade';\r\n\r\n// Slide presets\r\nexport {\r\n slideLeft,\r\n slideRight,\r\n slideUp,\r\n slideDown,\r\n slideFade,\r\n slideScale,\r\n slideOverlay,\r\n} from './slide';\r\n\r\n// Scale presets\r\nexport {\r\n scale,\r\n scaleUp,\r\n scaleDown,\r\n scaleFade,\r\n pop,\r\n expand,\r\n} from './scale';\r\n\r\n// Special presets\r\nexport {\r\n none,\r\n flipX,\r\n flipY,\r\n rotate,\r\n swing,\r\n morph,\r\n wipeLeft,\r\n wipeUp,\r\n circleReveal,\r\n} from './special';\r\n\r\n// =============================================================================\r\n// PRESET MAP\r\n// =============================================================================\r\n\r\nimport type { CustomTransition, TransitionPreset } from '../core/types';\r\n\r\nimport { fade, fadeScale } from './fade';\r\nimport { slideLeft, slideRight, slideUp, slideDown } from './slide';\r\nimport { scale, scaleFade } from './scale';\r\nimport { none, morph, flipX } from './special';\r\n\r\n/**\r\n * Map of preset names to transition definitions\r\n * Used by resolveTransition to look up presets by name\r\n */\r\nexport const presetMap: Record<TransitionPreset, CustomTransition> = {\r\n 'fade': fade,\r\n 'fade-scale': fadeScale,\r\n 'slide-left': slideLeft,\r\n 'slide-right': slideRight,\r\n 'slide-up': slideUp,\r\n 'slide-down': slideDown,\r\n 'scale': scale,\r\n 'scale-fade': scaleFade,\r\n 'morph': morph,\r\n 'flip': flipX,\r\n 'none': none,\r\n};\r\n\r\n/**\r\n * Get a preset transition by name\r\n */\r\nexport function getPreset(name: TransitionPreset): CustomTransition | undefined {\r\n return presetMap[name];\r\n}\r\n\r\n/**\r\n * Check if a string is a valid preset name\r\n */\r\nexport function isPresetName(name: string): name is TransitionPreset {\r\n return name in presetMap;\r\n}\r\n\r\n/**\r\n * Get all available preset names\r\n */\r\nexport function getPresetNames(): TransitionPreset[] {\r\n return Object.keys(presetMap) as TransitionPreset[];\r\n}\r\n"]}
@@ -0,0 +1,138 @@
1
+ import { getPreset } from './chunk-QSB65CTV.js';
2
+ import { getTransitionManager } from './chunk-X2A7XWYR.js';
3
+ import { resolveTransition, prefersReducedMotion } from './chunk-OV3U5STU.js';
4
+
5
+ // src/page/page-transition.ts
6
+ var pageTransitionConfigs = /* @__PURE__ */ new Map();
7
+ function definePageTransition(config) {
8
+ const path = getCurrentPagePath();
9
+ if (path) {
10
+ pageTransitionConfigs.set(path, config);
11
+ }
12
+ }
13
+ function getPageTransition(path) {
14
+ return pageTransitionConfigs.get(path);
15
+ }
16
+ function clearPageTransitions() {
17
+ pageTransitionConfigs.clear();
18
+ }
19
+ async function executePageTransition(options) {
20
+ const manager = getTransitionManager();
21
+ if (!manager.isEnabled()) {
22
+ await options.updateDOM();
23
+ return;
24
+ }
25
+ const { to, from = getCurrentPagePath() ?? "/", updateDOM } = options;
26
+ const toPageConfig = getPageTransition(to);
27
+ const fromPageConfig = getPageTransition(from);
28
+ const direction = options.direction ?? determineDirection(from, to);
29
+ manager.setDirection(direction);
30
+ const transitionInput = resolveTransitionInput(
31
+ options.transition,
32
+ toPageConfig,
33
+ fromPageConfig,
34
+ direction,
35
+ manager.getConfig().pageTransition
36
+ );
37
+ if (transitionInput === false) {
38
+ await updateDOM();
39
+ return;
40
+ }
41
+ const shouldReduce = shouldApplyReducedMotion(
42
+ toPageConfig?.reduceMotion ?? manager.getConfig().reduceMotion
43
+ );
44
+ const resolved = resolveTransitionFromInput(transitionInput, shouldReduce);
45
+ if (!resolved) {
46
+ await updateDOM();
47
+ return;
48
+ }
49
+ await manager.startPageTransition(to, {
50
+ ...toPageConfig,
51
+ default: transitionInput
52
+ });
53
+ }
54
+ function resolveTransitionInput(explicit, toPageConfig, fromPageConfig, direction, globalDefault) {
55
+ if (explicit !== void 0) {
56
+ return explicit;
57
+ }
58
+ if (direction === "back") {
59
+ if (toPageConfig?.backTransition !== void 0) {
60
+ return toPageConfig.backTransition;
61
+ }
62
+ if (fromPageConfig?.backTransition !== void 0) {
63
+ return fromPageConfig.backTransition;
64
+ }
65
+ }
66
+ if (toPageConfig?.default !== void 0) {
67
+ return toPageConfig.default;
68
+ }
69
+ if (globalDefault !== void 0) {
70
+ return globalDefault;
71
+ }
72
+ return "fade";
73
+ }
74
+ function resolveTransitionFromInput(input, reducedMotion) {
75
+ if (typeof input === "string") {
76
+ const preset = getPreset(input);
77
+ if (preset) {
78
+ return resolveTransition(preset, reducedMotion);
79
+ }
80
+ return resolveTransition(input, reducedMotion);
81
+ }
82
+ return resolveTransition(input, reducedMotion);
83
+ }
84
+ function determineDirection(from, to) {
85
+ if (to === "/") {
86
+ return "forward";
87
+ }
88
+ if (from.startsWith(to) && from !== to) {
89
+ return "back";
90
+ }
91
+ if (to.startsWith(from) && from !== to) {
92
+ return "forward";
93
+ }
94
+ return "forward";
95
+ }
96
+ function getCurrentPagePath() {
97
+ if (typeof window === "undefined") {
98
+ return null;
99
+ }
100
+ return window.location.pathname;
101
+ }
102
+ function shouldApplyReducedMotion(behavior) {
103
+ switch (behavior) {
104
+ case "always-reduce":
105
+ return true;
106
+ case "ignore":
107
+ return false;
108
+ case "respect-system":
109
+ default:
110
+ return prefersReducedMotion();
111
+ }
112
+ }
113
+ var lifecycleCallbacks = {
114
+ beforeLeave: /* @__PURE__ */ new Set(),
115
+ afterLeave: /* @__PURE__ */ new Set(),
116
+ beforeEnter: /* @__PURE__ */ new Set(),
117
+ afterEnter: /* @__PURE__ */ new Set()
118
+ };
119
+ function onBeforePageLeave(callback) {
120
+ lifecycleCallbacks.beforeLeave.add(callback);
121
+ return () => lifecycleCallbacks.beforeLeave.delete(callback);
122
+ }
123
+ function onAfterPageLeave(callback) {
124
+ lifecycleCallbacks.afterLeave.add(callback);
125
+ return () => lifecycleCallbacks.afterLeave.delete(callback);
126
+ }
127
+ function onBeforePageEnter(callback) {
128
+ lifecycleCallbacks.beforeEnter.add(callback);
129
+ return () => lifecycleCallbacks.beforeEnter.delete(callback);
130
+ }
131
+ function onAfterPageEnter(callback) {
132
+ lifecycleCallbacks.afterEnter.add(callback);
133
+ return () => lifecycleCallbacks.afterEnter.delete(callback);
134
+ }
135
+
136
+ export { clearPageTransitions, definePageTransition, executePageTransition, getPageTransition, onAfterPageEnter, onAfterPageLeave, onBeforePageEnter, onBeforePageLeave };
137
+ //# sourceMappingURL=chunk-SPUGO5I5.js.map
138
+ //# sourceMappingURL=chunk-SPUGO5I5.js.map