@pixerate/flair 0.24.0 → 0.26.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/CHANGELOG.md +27 -0
- package/README.md +1 -0
- package/dist/catalog/index.js +2 -2
- package/dist/{chunk-WAMA45G3.js → chunk-5USSDEQL.js} +77 -21
- package/dist/chunk-5USSDEQL.js.map +1 -0
- package/dist/{chunk-GTIAOYOK.js → chunk-74ZLCZOG.js} +13 -10
- package/dist/chunk-74ZLCZOG.js.map +1 -0
- package/dist/{chunk-NGKNI3QX.js → chunk-CK6EV37I.js} +19 -495
- package/dist/chunk-CK6EV37I.js.map +1 -0
- package/dist/chunk-DBTLCXKY.js +332 -0
- package/dist/chunk-DBTLCXKY.js.map +1 -0
- package/dist/chunk-G2B5L234.js +414 -0
- package/dist/chunk-G2B5L234.js.map +1 -0
- package/dist/{chunk-VP6IEWIK.js → chunk-H6L67KHI.js} +1 -1
- package/dist/chunk-H6VDFBIO.js +498 -0
- package/dist/chunk-H6VDFBIO.js.map +1 -0
- package/dist/{chunk-OQ4EWZ3B.js → chunk-HVXWNGTW.js} +83 -6
- package/dist/{chunk-OQ4EWZ3B.js.map → chunk-HVXWNGTW.js.map} +1 -1
- package/dist/chunk-JL6TI6II.js +724 -0
- package/dist/chunk-JL6TI6II.js.map +1 -0
- package/dist/{chunk-OHW7UG6D.js → chunk-ORAFCHX3.js} +26 -2
- package/dist/{chunk-OHW7UG6D.js.map → chunk-ORAFCHX3.js.map} +1 -1
- package/dist/{chunk-ARKC7LDW.js → chunk-RDU63CDO.js} +2 -331
- package/dist/chunk-RDU63CDO.js.map +1 -0
- package/dist/{chunk-LVPIIWPP.js → chunk-STKEKXCK.js} +18 -8
- package/dist/chunk-STKEKXCK.js.map +1 -0
- package/dist/chunk-UCZ43ARE.js +902 -0
- package/dist/chunk-UCZ43ARE.js.map +1 -0
- package/dist/chunk-YBGRXVAE.js +407 -0
- package/dist/chunk-YBGRXVAE.js.map +1 -0
- package/dist/cli.js +74 -11
- package/dist/cli.js.map +1 -1
- package/dist/editor/index.d.ts +1 -1
- package/dist/editor/index.js +14 -12
- package/dist/editor/index.js.map +1 -1
- package/dist/effect-GGH3OSOT.js +47 -0
- package/dist/embed/index.d.ts +215 -0
- package/dist/embed/index.js +21 -0
- package/dist/{export-DH2HMACO.js → export-QVW474KM.js} +3 -3
- package/dist/export-QVW474KM.js.map +1 -0
- package/dist/frames-VEcqa40g.d.ts +161 -0
- package/dist/index.d.ts +47 -164
- package/dist/index.js +102 -80
- package/dist/index.js.map +1 -1
- package/dist/node.d.ts +167 -7
- package/dist/node.js +25 -3
- package/dist/react/index.d.ts +33 -2
- package/dist/react/index.js +54 -9
- package/dist/react/index.js.map +1 -1
- package/dist/recorder-CDPPTJMG.js +31 -0
- package/dist/recorder-CDPPTJMG.js.map +1 -0
- package/dist/{renderer-C2P1qGzP.d.ts → renderer-teaa98RE.d.ts} +1 -1
- package/dist/svelte/index.d.ts +33 -4
- package/dist/svelte/index.js +51 -9
- package/dist/svelte/index.js.map +1 -1
- package/dist/vector/index.d.ts +52 -1
- package/dist/vector/index.js +8 -4
- package/package.json +1 -1
- package/dist/chunk-ARKC7LDW.js.map +0 -1
- package/dist/chunk-GTIAOYOK.js.map +0 -1
- package/dist/chunk-LVPIIWPP.js.map +0 -1
- package/dist/chunk-NGKNI3QX.js.map +0 -1
- package/dist/chunk-UP6QQVRS.js +0 -331
- package/dist/chunk-UP6QQVRS.js.map +0 -1
- package/dist/chunk-WAMA45G3.js.map +0 -1
- package/dist/recorder-HKFFHQES.js +0 -10
- /package/dist/{chunk-VP6IEWIK.js.map → chunk-H6L67KHI.js.map} +0 -0
- /package/dist/{export-DH2HMACO.js.map → effect-GGH3OSOT.js.map} +0 -0
- /package/dist/{recorder-HKFFHQES.js.map → embed/index.js.map} +0 -0
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
morphPaths,
|
|
3
|
-
morphSequence
|
|
4
|
-
} from "./chunk-OHW7UG6D.js";
|
|
5
1
|
import {
|
|
6
2
|
getTransitionGLSL
|
|
7
3
|
} from "./chunk-EHDJ3CPJ.js";
|
|
@@ -13,6 +9,10 @@ import {
|
|
|
13
9
|
parseControls,
|
|
14
10
|
rgbToHex
|
|
15
11
|
} from "./chunk-VYOMXE6I.js";
|
|
12
|
+
import {
|
|
13
|
+
morphPaths,
|
|
14
|
+
morphSequence
|
|
15
|
+
} from "./chunk-ORAFCHX3.js";
|
|
16
16
|
|
|
17
17
|
// src/catalog/inputs.ts
|
|
18
18
|
var EFFECT_INPUTS = ["image", "video", "svg", "text", "mask", "path"];
|
|
@@ -12108,6 +12108,82 @@ ${BACKDROP_CONTROLS}`,
|
|
|
12108
12108
|
{ name: "Crisp", values: { uEdge: 0.015, uScale: 5 } }
|
|
12109
12109
|
]
|
|
12110
12110
|
};
|
|
12111
|
+
var transitionWhipPan = {
|
|
12112
|
+
kind: "shader",
|
|
12113
|
+
id: "transition-whip-pan",
|
|
12114
|
+
name: "Whip pan",
|
|
12115
|
+
description: "A beat-cut whip pan or zoom punch: the first image flies off in a motion blur that peaks at the cut, and the next one lands from the other side.",
|
|
12116
|
+
category: "transition",
|
|
12117
|
+
video: "transition",
|
|
12118
|
+
tags: ["transition", "whip", "pan", "zoom", "motion blur", "image", "cut"],
|
|
12119
|
+
loop: 4,
|
|
12120
|
+
source: glsl(
|
|
12121
|
+
`// Whip pan: From accelerates away under a motion blur (directional, or radial in zoom mode), swaps at mid-progress, and To decelerates in.
|
|
12122
|
+
${pair(SAMPLE_IMAGES.landscape, SAMPLE_IMAGES.city)}
|
|
12123
|
+
uniform int uMode; // @control min=0 max=1 default=0 label="Mode (0 whip, 1 zoom)"
|
|
12124
|
+
uniform float uAngle; // @control min=0 max=360 default=0 label="Direction (\xB0)"
|
|
12125
|
+
uniform float uStrength; // @control min=0 max=1 default=0.6 label="Blur strength"
|
|
12126
|
+
uniform float uPunch; // @control min=0 max=1 default=0.15 label="Scale punch"
|
|
12127
|
+
${BACKDROP_CONTROLS}`,
|
|
12128
|
+
PICTURE,
|
|
12129
|
+
COMMON,
|
|
12130
|
+
`// Mirrored at the frame edges, so a moving image never runs out of picture.
|
|
12131
|
+
vec4 folded(sampler2D tex, vec2 uv) {
|
|
12132
|
+
return coverRGBA(tex, 1.0 - abs(1.0 - mod(uv, 2.0)));
|
|
12133
|
+
}
|
|
12134
|
+
|
|
12135
|
+
// 24 taps spread len along dir, centred on uv: a directional motion blur.
|
|
12136
|
+
vec4 smear(sampler2D tex, vec2 uv, vec2 dir, float len) {
|
|
12137
|
+
vec4 sum = vec4(0.0);
|
|
12138
|
+
for (int i = 0; i < 24; i++) {
|
|
12139
|
+
sum += folded(tex, uv + dir * len * ((float(i) + 0.5) / 24.0 - 0.5));
|
|
12140
|
+
}
|
|
12141
|
+
return sum / 24.0;
|
|
12142
|
+
}
|
|
12143
|
+
|
|
12144
|
+
// 24 taps from uv towards the centre, a zoom blur.
|
|
12145
|
+
vec4 zoomSmear(sampler2D tex, vec2 uv, float len) {
|
|
12146
|
+
vec4 sum = vec4(0.0);
|
|
12147
|
+
for (int i = 0; i < 24; i++) {
|
|
12148
|
+
float k = 1.0 - len * (float(i) + 0.5) / 24.0;
|
|
12149
|
+
sum += folded(tex, 0.5 + (uv - 0.5) * k);
|
|
12150
|
+
}
|
|
12151
|
+
return sum / 24.0;
|
|
12152
|
+
}
|
|
12153
|
+
|
|
12154
|
+
void mainImage(out vec4 fragColor, in vec2 fragCoord) {
|
|
12155
|
+
vec2 uv = fragCoord / iResolution.xy;
|
|
12156
|
+
float t = progress();
|
|
12157
|
+
bool second = t >= 0.5;
|
|
12158
|
+
// Each half runs 0 at its far end to 1 at the cut; travel eases in (u\xB3), so speed (u\xB2) peaks at the cut.
|
|
12159
|
+
float u = second ? 2.0 - 2.0 * t : 2.0 * t;
|
|
12160
|
+
float travel = u * u * u;
|
|
12161
|
+
float speed = u * u;
|
|
12162
|
+
vec4 col;
|
|
12163
|
+
if (uMode == 0) {
|
|
12164
|
+
vec2 dir = vec2(cos(radians(uAngle)), sin(radians(uAngle))) * vec2(iResolution.y / iResolution.x, 1.0);
|
|
12165
|
+
// From leaves along dir; To arrives from behind, so it is offset back along dir.
|
|
12166
|
+
vec2 shift = dir * travel * (0.4 + 0.6 * uStrength) * (second ? -1.0 : 1.0);
|
|
12167
|
+
vec2 p = 0.5 + (uv - 0.5) / (1.0 + uPunch * speed) - shift;
|
|
12168
|
+
float len = uStrength * 0.6 * speed;
|
|
12169
|
+
col = second ? smear(uTo, p, dir, len) : smear(uFrom, p, dir, len);
|
|
12170
|
+
} else {
|
|
12171
|
+
vec2 p = 0.5 + (uv - 0.5) / (1.0 + 4.0 * uPunch * travel + 0.2 * uStrength * travel);
|
|
12172
|
+
float len = uStrength * 0.5 * speed;
|
|
12173
|
+
col = second ? zoomSmear(uTo, p, len) : zoomSmear(uFrom, p, len);
|
|
12174
|
+
}
|
|
12175
|
+
// A touch of exposure at the cut sells the speed.
|
|
12176
|
+
col.rgb *= 1.0 + 0.25 * uStrength * speed * speed;
|
|
12177
|
+
fragColor = col;
|
|
12178
|
+
}`
|
|
12179
|
+
),
|
|
12180
|
+
presets: [
|
|
12181
|
+
{ name: "Whip left", values: { uMode: 0, uAngle: 180 } },
|
|
12182
|
+
{ name: "Whip up", values: { uMode: 0, uAngle: 90 } },
|
|
12183
|
+
{ name: "Zoom punch", values: { uMode: 1, uStrength: 0.7, uPunch: 0.4 } },
|
|
12184
|
+
{ name: "Hard whip", values: { uMode: 0, uAngle: 0, uStrength: 1, uPunch: 0.3 } }
|
|
12185
|
+
]
|
|
12186
|
+
};
|
|
12111
12187
|
var morphShaders = [
|
|
12112
12188
|
featureMorph,
|
|
12113
12189
|
silhouetteMorph,
|
|
@@ -12115,7 +12191,8 @@ var morphShaders = [
|
|
|
12115
12191
|
transitionDisplacement,
|
|
12116
12192
|
transitionLuma,
|
|
12117
12193
|
transitionParticleSwap,
|
|
12118
|
-
transitionInkBleed
|
|
12194
|
+
transitionInkBleed,
|
|
12195
|
+
transitionWhipPan
|
|
12119
12196
|
];
|
|
12120
12197
|
|
|
12121
12198
|
// src/catalog/shaders/overlay.ts
|
|
@@ -21017,4 +21094,4 @@ export {
|
|
|
21017
21094
|
effectControls,
|
|
21018
21095
|
effectDefaults
|
|
21019
21096
|
};
|
|
21020
|
-
//# sourceMappingURL=chunk-
|
|
21097
|
+
//# sourceMappingURL=chunk-HVXWNGTW.js.map
|