@flight-framework/transitions 0.1.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.
- package/README.md +232 -0
- package/dist/adapters/react/index.d.ts +210 -0
- package/dist/adapters/react/index.js +261 -0
- package/dist/adapters/react/index.js.map +1 -0
- package/dist/adapters/solid/index.d.ts +5 -0
- package/dist/adapters/solid/index.js +9 -0
- package/dist/adapters/solid/index.js.map +1 -0
- package/dist/adapters/svelte/index.d.ts +5 -0
- package/dist/adapters/svelte/index.js +9 -0
- package/dist/adapters/svelte/index.js.map +1 -0
- package/dist/adapters/vue/index.d.ts +5 -0
- package/dist/adapters/vue/index.js +9 -0
- package/dist/adapters/vue/index.js.map +1 -0
- package/dist/chunk-4SF4GHDQ.js +252 -0
- package/dist/chunk-4SF4GHDQ.js.map +1 -0
- package/dist/chunk-7R3FXL3A.js +442 -0
- package/dist/chunk-7R3FXL3A.js.map +1 -0
- package/dist/chunk-BAILQEFB.js +136 -0
- package/dist/chunk-BAILQEFB.js.map +1 -0
- package/dist/chunk-ITLC6KJ4.js +138 -0
- package/dist/chunk-ITLC6KJ4.js.map +1 -0
- package/dist/chunk-JRRJMJDL.js +121 -0
- package/dist/chunk-JRRJMJDL.js.map +1 -0
- package/dist/chunk-UZUZC3MA.js +190 -0
- package/dist/chunk-UZUZC3MA.js.map +1 -0
- package/dist/chunk-W7HSR35B.js +3 -0
- package/dist/chunk-W7HSR35B.js.map +1 -0
- package/dist/chunk-WDXXYC7B.js +70 -0
- package/dist/chunk-WDXXYC7B.js.map +1 -0
- package/dist/chunk-XLVYHPII.js +3 -0
- package/dist/chunk-XLVYHPII.js.map +1 -0
- package/dist/chunk-ZBJ6FSAK.js +438 -0
- package/dist/chunk-ZBJ6FSAK.js.map +1 -0
- package/dist/component/index.d.ts +87 -0
- package/dist/component/index.js +5 -0
- package/dist/component/index.js.map +1 -0
- package/dist/config/index.d.ts +93 -0
- package/dist/config/index.js +5 -0
- package/dist/config/index.js.map +1 -0
- package/dist/core/index.d.ts +107 -0
- package/dist/core/index.js +5 -0
- package/dist/core/index.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/layout/index.d.ts +112 -0
- package/dist/layout/index.js +4 -0
- package/dist/layout/index.js.map +1 -0
- package/dist/page/index.d.ts +87 -0
- package/dist/page/index.js +7 -0
- package/dist/page/index.js.map +1 -0
- package/dist/presets/index.d.ts +192 -0
- package/dist/presets/index.js +3 -0
- package/dist/presets/index.js.map +1 -0
- package/dist/router/index.d.ts +104 -0
- package/dist/router/index.js +7 -0
- package/dist/router/index.js.map +1 -0
- package/dist/transition-manager-CuO0S_Yn.d.ts +62 -0
- package/dist/types-BT3SCjiY.d.ts +272 -0
- package/dist/view-transition-Hp-Q9vWJ.d.ts +97 -0
- package/package.json +110 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { initTransitions, enableCrossDocumentTransitions, getTransitionManager } from './chunk-7R3FXL3A.js';
|
|
2
|
+
|
|
3
|
+
// src/config/config.ts
|
|
4
|
+
var defaultConfig = {
|
|
5
|
+
enabled: true,
|
|
6
|
+
viewTransitions: true,
|
|
7
|
+
pageTransition: "fade",
|
|
8
|
+
layoutTransition: false,
|
|
9
|
+
duration: 200,
|
|
10
|
+
easing: "cubic-bezier(0.4, 0, 0.2, 1)",
|
|
11
|
+
reduceMotion: "respect-system",
|
|
12
|
+
crossDocument: false
|
|
13
|
+
};
|
|
14
|
+
function defineTransitionsConfig(config) {
|
|
15
|
+
return {
|
|
16
|
+
...defaultConfig,
|
|
17
|
+
...config
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
function initializeTransitions(config = {}) {
|
|
21
|
+
const fullConfig = defineTransitionsConfig(config);
|
|
22
|
+
initTransitions(fullConfig);
|
|
23
|
+
if (fullConfig.crossDocument && typeof window !== "undefined") {
|
|
24
|
+
enableCrossDocumentTransitions({ enabled: true });
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
function updateTransitionsConfig(config) {
|
|
28
|
+
const manager = getTransitionManager();
|
|
29
|
+
manager.configure(config);
|
|
30
|
+
}
|
|
31
|
+
function getTransitionsConfig() {
|
|
32
|
+
const manager = getTransitionManager();
|
|
33
|
+
return manager.getConfig();
|
|
34
|
+
}
|
|
35
|
+
function isTransitionPreset(value) {
|
|
36
|
+
const presets = [
|
|
37
|
+
"fade",
|
|
38
|
+
"fade-scale",
|
|
39
|
+
"slide-left",
|
|
40
|
+
"slide-right",
|
|
41
|
+
"slide-up",
|
|
42
|
+
"slide-down",
|
|
43
|
+
"scale",
|
|
44
|
+
"scale-fade",
|
|
45
|
+
"morph",
|
|
46
|
+
"flip",
|
|
47
|
+
"none"
|
|
48
|
+
];
|
|
49
|
+
return typeof value === "string" && presets.includes(value);
|
|
50
|
+
}
|
|
51
|
+
function isCustomTransition(value) {
|
|
52
|
+
return typeof value === "object" && value !== null && ("leave" in value || "enter" in value || "duration" in value);
|
|
53
|
+
}
|
|
54
|
+
function isTransitionsSupported() {
|
|
55
|
+
if (typeof window === "undefined") return false;
|
|
56
|
+
if (!("animate" in Element.prototype)) return false;
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
function getCapabilities() {
|
|
60
|
+
return {
|
|
61
|
+
viewTransitionsApi: typeof document !== "undefined" && "startViewTransition" in document,
|
|
62
|
+
webAnimationsApi: typeof Element !== "undefined" && "animate" in Element.prototype,
|
|
63
|
+
cssViewTransitions: typeof CSS !== "undefined" && CSS.supports?.("view-transition-name", "test"),
|
|
64
|
+
reducedMotion: typeof window !== "undefined" && window.matchMedia?.("(prefers-reduced-motion: reduce)").matches
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export { defaultConfig, defineTransitionsConfig, getCapabilities, getTransitionsConfig, initializeTransitions, isCustomTransition, isTransitionPreset, isTransitionsSupported, updateTransitionsConfig };
|
|
69
|
+
//# sourceMappingURL=chunk-WDXXYC7B.js.map
|
|
70
|
+
//# sourceMappingURL=chunk-WDXXYC7B.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/config/config.ts"],"names":[],"mappings":";;;AAiBO,IAAM,aAAA,GAAmC;AAAA,EAC5C,OAAA,EAAS,IAAA;AAAA,EACT,eAAA,EAAiB,IAAA;AAAA,EACjB,cAAA,EAAgB,MAAA;AAAA,EAChB,gBAAA,EAAkB,KAAA;AAAA,EAClB,QAAA,EAAU,GAAA;AAAA,EACV,MAAA,EAAQ,8BAAA;AAAA,EACR,YAAA,EAAc,gBAAA;AAAA,EACd,aAAA,EAAe;AACnB;AAyBO,SAAS,wBACZ,MAAA,EACiB;AACjB,EAAA,OAAO;AAAA,IACH,GAAG,aAAA;AAAA,IACH,GAAG;AAAA,GACP;AACJ;AAiBO,SAAS,qBAAA,CACZ,MAAA,GAAqC,EAAC,EAClC;AACJ,EAAA,MAAM,UAAA,GAAa,wBAAwB,MAAM,CAAA;AAGjD,EAAA,eAAA,CAAgB,UAAU,CAAA;AAG1B,EAAA,IAAI,UAAA,CAAW,aAAA,IAAiB,OAAO,MAAA,KAAW,WAAA,EAAa;AAC3D,IAAA,8BAAA,CAA+B,EAAE,OAAA,EAAS,IAAA,EAAM,CAAA;AAAA,EACpD;AACJ;AAcO,SAAS,wBACZ,MAAA,EACI;AACJ,EAAA,MAAM,UAAU,oBAAA,EAAqB;AACrC,EAAA,OAAA,CAAQ,UAAU,MAAM,CAAA;AAC5B;AAKO,SAAS,oBAAA,GAA0C;AACtD,EAAA,MAAM,UAAU,oBAAA,EAAqB;AACrC,EAAA,OAAO,QAAQ,SAAA,EAAU;AAC7B;AASO,SAAS,mBAAmB,KAAA,EAA2C;AAC1E,EAAA,MAAM,OAAA,GAA8B;AAAA,IAChC,MAAA;AAAA,IACA,YAAA;AAAA,IACA,YAAA;AAAA,IACA,aAAA;AAAA,IACA,UAAA;AAAA,IACA,YAAA;AAAA,IACA,OAAA;AAAA,IACA,YAAA;AAAA,IACA,OAAA;AAAA,IACA,MAAA;AAAA,IACA;AAAA,GACJ;AACA,EAAA,OAAO,OAAO,KAAA,KAAU,QAAA,IAAY,OAAA,CAAQ,SAAS,KAAyB,CAAA;AAClF;AAKO,SAAS,mBAAmB,KAAA,EAA2C;AAC1E,EAAA,OACI,OAAO,UAAU,QAAA,IACjB,KAAA,KAAU,SACT,OAAA,IAAW,KAAA,IAAS,OAAA,IAAW,KAAA,IAAS,UAAA,IAAc,KAAA,CAAA;AAE/D;AASO,SAAS,sBAAA,GAAkC;AAC9C,EAAA,IAAI,OAAO,MAAA,KAAW,WAAA,EAAa,OAAO,KAAA;AAG1C,EAAA,IAAI,EAAE,SAAA,IAAa,OAAA,CAAQ,SAAA,CAAA,EAAY,OAAO,KAAA;AAE9C,EAAA,OAAO,IAAA;AACX;AAKO,SAAS,eAAA,GAA0C;AACtD,EAAA,OAAO;AAAA,IACH,kBAAA,EAAoB,OAAO,QAAA,KAAa,WAAA,IACpC,qBAAA,IAAyB,QAAA;AAAA,IAC7B,gBAAA,EAAkB,OAAO,OAAA,KAAY,WAAA,IACjC,aAAa,OAAA,CAAQ,SAAA;AAAA,IACzB,oBAAoB,OAAO,GAAA,KAAQ,eAC/B,GAAA,CAAI,QAAA,GAAW,wBAAwB,MAAM,CAAA;AAAA,IACjD,eAAe,OAAO,MAAA,KAAW,eAC7B,MAAA,CAAO,UAAA,GAAa,kCAAkC,CAAA,CAAE;AAAA,GAChE;AACJ","file":"chunk-WDXXYC7B.js","sourcesContent":["/**\r\n * @flight-framework/transitions - Configuration Module\r\n * \r\n * Configuration helpers and defaults for the transitions system.\r\n */\r\n\r\nimport type { TransitionsConfig, TransitionPreset, CustomTransition } from '../core/types';\r\nimport { initTransitions, getTransitionManager } from '../core/transition-manager';\r\nimport { enableCrossDocumentTransitions } from '../core/view-transition';\r\n\r\n// =============================================================================\r\n// DEFAULT CONFIGURATION\r\n// =============================================================================\r\n\r\n/**\r\n * Default transitions configuration\r\n */\r\nexport const defaultConfig: TransitionsConfig = {\r\n enabled: true,\r\n viewTransitions: true,\r\n pageTransition: 'fade',\r\n layoutTransition: false,\r\n duration: 200,\r\n easing: 'cubic-bezier(0.4, 0, 0.2, 1)',\r\n reduceMotion: 'respect-system',\r\n crossDocument: false,\r\n};\r\n\r\n// =============================================================================\r\n// CONFIGURATION HELPERS\r\n// =============================================================================\r\n\r\n/**\r\n * Define transitions configuration\r\n * \r\n * Use this in flight.config.ts to configure transitions globally.\r\n * \r\n * @example\r\n * ```typescript\r\n * // flight.config.ts\r\n * import { defineConfig } from '@flight-framework/core';\r\n * import { defineTransitionsConfig } from '@flight-framework/transitions/config';\r\n * \r\n * export default defineConfig({\r\n * transitions: defineTransitionsConfig({\r\n * pageTransition: 'slide-left',\r\n * duration: 300,\r\n * }),\r\n * });\r\n * ```\r\n */\r\nexport function defineTransitionsConfig(\r\n config: Partial<TransitionsConfig>\r\n): TransitionsConfig {\r\n return {\r\n ...defaultConfig,\r\n ...config,\r\n };\r\n}\r\n\r\n/**\r\n * Initialize the transitions system with configuration\r\n * \r\n * Call this during app initialization to set up transitions.\r\n * \r\n * @example\r\n * ```typescript\r\n * import { initializeTransitions } from '@flight-framework/transitions/config';\r\n * \r\n * initializeTransitions({\r\n * pageTransition: 'fade',\r\n * reduceMotion: 'respect-system',\r\n * });\r\n * ```\r\n */\r\nexport function initializeTransitions(\r\n config: Partial<TransitionsConfig> = {}\r\n): void {\r\n const fullConfig = defineTransitionsConfig(config);\r\n\r\n // Initialize the transition manager\r\n initTransitions(fullConfig);\r\n\r\n // Set up cross-document transitions if enabled\r\n if (fullConfig.crossDocument && typeof window !== 'undefined') {\r\n enableCrossDocumentTransitions({ enabled: true });\r\n }\r\n}\r\n\r\n/**\r\n * Update transitions configuration at runtime\r\n * \r\n * @example\r\n * ```typescript\r\n * // Disable transitions\r\n * updateTransitionsConfig({ enabled: false });\r\n * \r\n * // Change default transition\r\n * updateTransitionsConfig({ pageTransition: 'slide-left' });\r\n * ```\r\n */\r\nexport function updateTransitionsConfig(\r\n config: Partial<TransitionsConfig>\r\n): void {\r\n const manager = getTransitionManager();\r\n manager.configure(config);\r\n}\r\n\r\n/**\r\n * Get the current transitions configuration\r\n */\r\nexport function getTransitionsConfig(): TransitionsConfig {\r\n const manager = getTransitionManager();\r\n return manager.getConfig();\r\n}\r\n\r\n// =============================================================================\r\n// PRESET HELPERS\r\n// =============================================================================\r\n\r\n/**\r\n * Check if a value is a valid transition preset name\r\n */\r\nexport function isTransitionPreset(value: unknown): value is TransitionPreset {\r\n const presets: TransitionPreset[] = [\r\n 'fade',\r\n 'fade-scale',\r\n 'slide-left',\r\n 'slide-right',\r\n 'slide-up',\r\n 'slide-down',\r\n 'scale',\r\n 'scale-fade',\r\n 'morph',\r\n 'flip',\r\n 'none',\r\n ];\r\n return typeof value === 'string' && presets.includes(value as TransitionPreset);\r\n}\r\n\r\n/**\r\n * Check if a value is a custom transition definition\r\n */\r\nexport function isCustomTransition(value: unknown): value is CustomTransition {\r\n return (\r\n typeof value === 'object' &&\r\n value !== null &&\r\n ('leave' in value || 'enter' in value || 'duration' in value)\r\n );\r\n}\r\n\r\n// =============================================================================\r\n// ENVIRONMENT DETECTION\r\n// =============================================================================\r\n\r\n/**\r\n * Check if the current environment supports transitions\r\n */\r\nexport function isTransitionsSupported(): boolean {\r\n if (typeof window === 'undefined') return false;\r\n\r\n // Check for Web Animations API\r\n if (!('animate' in Element.prototype)) return false;\r\n\r\n return true;\r\n}\r\n\r\n/**\r\n * Get browser capability information\r\n */\r\nexport function getCapabilities(): TransitionCapabilities {\r\n return {\r\n viewTransitionsApi: typeof document !== 'undefined' &&\r\n 'startViewTransition' in document,\r\n webAnimationsApi: typeof Element !== 'undefined' &&\r\n 'animate' in Element.prototype,\r\n cssViewTransitions: typeof CSS !== 'undefined' &&\r\n CSS.supports?.('view-transition-name', 'test'),\r\n reducedMotion: typeof window !== 'undefined' &&\r\n window.matchMedia?.('(prefers-reduced-motion: reduce)').matches,\r\n };\r\n}\r\n\r\nexport interface TransitionCapabilities {\r\n /** Browser supports View Transitions API */\r\n viewTransitionsApi: boolean;\r\n /** Browser supports Web Animations API */\r\n webAnimationsApi: boolean;\r\n /** Browser supports CSS view-transition-name */\r\n cssViewTransitions: boolean;\r\n /** User prefers reduced motion */\r\n reducedMotion: boolean;\r\n}\r\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-XLVYHPII.js"}
|
|
@@ -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-ZBJ6FSAK.js.map
|
|
438
|
+
//# sourceMappingURL=chunk-ZBJ6FSAK.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-ZBJ6FSAK.js","sourcesContent":["/**\r\n * @flight-framework/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 * @flight-framework/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 * @flight-framework/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 * @flight-framework/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 * @flight-framework/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"]}
|