pixi-effects 0.17.0 → 0.18.1
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 +32 -0
- package/README.md +6 -6
- package/ai/CHAT.md +3 -0
- package/ai/SKILL.md +2 -2
- package/ai/chat-template.html +8 -4
- package/ai/reference/cheatsheet.md +3 -1
- package/ai/reference/pitfalls.md +1 -1
- package/ai/template.html +5 -5
- package/ai/tools/check.mjs +25 -109
- package/ai/tools/render.mjs +1 -0
- package/dist/Composition-6JMXWNVV.cjs +14 -0
- package/dist/{Composition-LMVEASHF.cjs.map → Composition-6JMXWNVV.cjs.map} +1 -1
- package/dist/Composition-MLBHYYFF.js +5 -0
- package/dist/{Composition-HYAOYPAX.js.map → Composition-MLBHYYFF.js.map} +1 -1
- package/dist/Controller.d.cts +1 -1
- package/dist/Controller.d.ts +1 -1
- package/dist/{Movie-DHJRrUfI.d.ts → Movie-DlHQ9C02.d.ts} +46 -2
- package/dist/{Movie-CoxF2Z7t.d.cts → Movie-K2YuVAdg.d.cts} +46 -2
- package/dist/Presenter.d.cts +1 -1
- package/dist/Presenter.d.ts +1 -1
- package/dist/{chunk-LBJRXU7N.cjs → chunk-ANO5R2E6.cjs} +14 -4
- package/dist/chunk-ANO5R2E6.cjs.map +1 -0
- package/dist/{chunk-ETAIVOHP.cjs → chunk-JW67MDHQ.cjs} +26 -26
- package/dist/{chunk-ETAIVOHP.cjs.map → chunk-JW67MDHQ.cjs.map} +1 -1
- package/dist/{chunk-ORTYBA42.js → chunk-SG3Y66FN.js} +14 -4
- package/dist/chunk-SG3Y66FN.js.map +1 -0
- package/dist/{chunk-Q3IVBYT7.js → chunk-UXDR3ZDU.js} +3 -3
- package/dist/{chunk-Q3IVBYT7.js.map → chunk-UXDR3ZDU.js.map} +1 -1
- package/dist/index.cjs +152 -31
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +129 -8
- package/dist/index.js.map +1 -1
- package/dist/loader.css +1 -1
- package/dist/three.cjs +5 -5
- package/dist/three.js +1 -1
- package/llms-full.txt +6 -3
- package/package.json +1 -1
- package/dist/Composition-HYAOYPAX.js +0 -5
- package/dist/Composition-LMVEASHF.cjs +0 -14
- package/dist/chunk-LBJRXU7N.cjs.map +0 -1
- package/dist/chunk-ORTYBA42.js.map +0 -1
|
@@ -86,8 +86,40 @@ interface FontReport {
|
|
|
86
86
|
layer: string;
|
|
87
87
|
family: string;
|
|
88
88
|
}>;
|
|
89
|
-
/** Web fonts (`@font-face`) whose file could not be loaded. */
|
|
89
|
+
/** Web fonts (`@font-face`) whose file could not be loaded and that a text layer uses. */
|
|
90
90
|
failed: string[];
|
|
91
|
+
/** Web fonts whose file could not be loaded but no text layer uses (an unused face: worth a look, not a fault). */
|
|
92
|
+
failedUnused: string[];
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/** One kind of issue, with how many frames it was seen in. Issues that differ only by numbers are one kind. */
|
|
96
|
+
interface IssueGroup {
|
|
97
|
+
message: string;
|
|
98
|
+
count: number;
|
|
99
|
+
firstFrame: number;
|
|
100
|
+
lastFrame: number;
|
|
101
|
+
}
|
|
102
|
+
interface ReviewOptions {
|
|
103
|
+
/** Moments to resolve and report: `3.5`, `50%`, `f120`, `title@end` (comma-separated). */
|
|
104
|
+
at?: string;
|
|
105
|
+
/** Every layout issue is a problem (by default text overlaps are only listed for review). */
|
|
106
|
+
strict?: boolean;
|
|
107
|
+
}
|
|
108
|
+
interface ReviewReport {
|
|
109
|
+
/** How many frames were inspected. */
|
|
110
|
+
frames: number;
|
|
111
|
+
/** Text cut off by an edge, outside the canvas, or with no size (with `strict`: every issue). */
|
|
112
|
+
problems: IssueGroup[];
|
|
113
|
+
/** Text overlaps and fonts that are not available: often intentional, look at them on the contact sheet. */
|
|
114
|
+
review: IssueGroup[];
|
|
115
|
+
fonts: FontReport;
|
|
116
|
+
/** The sound as numbers (`movie.inspectAudio()`), or null for a movie with no audio. */
|
|
117
|
+
audio: AudioReport | null;
|
|
118
|
+
/** The moments of `at`, as frames with a label that is safe as a file name. */
|
|
119
|
+
at: Array<{
|
|
120
|
+
label: string;
|
|
121
|
+
frame: number;
|
|
122
|
+
}>;
|
|
91
123
|
}
|
|
92
124
|
|
|
93
125
|
interface Rect {
|
|
@@ -149,6 +181,8 @@ interface TimelineRow {
|
|
|
149
181
|
start: number;
|
|
150
182
|
end: number;
|
|
151
183
|
}>;
|
|
184
|
+
/** With `parts`: the name of each layer the row stands for, in the same order (so `render({ range: 'pop-3' })` can find it). */
|
|
185
|
+
partNames?: string[];
|
|
152
186
|
/** A short text for the tooltip (a text layer's words, an asset name). */
|
|
153
187
|
detail?: string;
|
|
154
188
|
}
|
|
@@ -522,6 +556,16 @@ declare class Movie {
|
|
|
522
556
|
* The soundtrack, measured: when every audio layer plays, how loud the mix is over time, and `issues`
|
|
523
557
|
* (limiting, inaudible layers, sounds cut off by the end). Use it to CHECK sound you cannot hear.
|
|
524
558
|
*/
|
|
559
|
+
/** The pictures to look at for moments such as `3.5`, `50%`, `f120`, `title@end` (comma-separated). A mistake says what could not be read. */
|
|
560
|
+
resolveAt(list: string): Array<{
|
|
561
|
+
label: string;
|
|
562
|
+
frame: number;
|
|
563
|
+
}>;
|
|
564
|
+
/**
|
|
565
|
+
* One call that looks at everything `pixi-effects-check` looks at inside the page: layout issues over the whole timeline (every
|
|
566
|
+
* scene's first and last frame and a frame every 0.25 s), fonts and the sound. See `ReviewReport`. Page warnings are in `window.__logs`. The movie is left as it was.
|
|
567
|
+
*/
|
|
568
|
+
review(opts?: ReviewOptions): Promise<ReviewReport>;
|
|
525
569
|
/**
|
|
526
570
|
* The fonts of the text layers: `missing` lists layers none of whose `fontFamily` entries is available in this browser (they are
|
|
527
571
|
* drawn in a fallback font), `failed` lists web fonts (`@font-face`) whose file could not be loaded.
|
|
@@ -589,4 +633,4 @@ declare class Movie {
|
|
|
589
633
|
destroy(): Promise<void>;
|
|
590
634
|
}
|
|
591
635
|
|
|
592
|
-
export { type AudioInspectOptions as A, type ContactSheetOptions as C, type FontReport as F, type InspectOptions as I, type LayerInfo as L, type MotionBlurOptions as M, type OnionSkinOptions as O, type ProgressEvent as P, type RenderOptions as R, type SnapshotOptions as S, type TimelineData as T, type VolumeEvent as V, type AudioReport as a, type AudioSourceReport as b, type FrameEvent as c, type InspectReport as d, type
|
|
636
|
+
export { type AudioInspectOptions as A, type ContactSheetOptions as C, type FontReport as F, type InspectOptions as I, type LayerInfo as L, type MotionBlurOptions as M, type OnionSkinOptions as O, type ProgressEvent as P, type RenderOptions as R, type SnapshotOptions as S, type TimelineData as T, type VolumeEvent as V, type AudioReport as a, type AudioSourceReport as b, type FrameEvent as c, type InspectReport as d, type IssueGroup as e, type LoaderOption as f, type MotionBlurSpec as g, Movie as h, type MovieErrorEvent as i, type MovieOptions as j, type ReviewOptions as k, type ReviewReport as l, type SoundMeasure as m, type StopEvent as n, type StopImage as o, type StopImagesOptions as p, type TimelineHtmlOptions as q, type TimelineRow as r, type TimelineSvgOptions as s, type TimelineTransition as t, dismissLoader as u, failLoader as v, resolveLoader as w };
|
package/dist/Presenter.d.cts
CHANGED
package/dist/Presenter.d.ts
CHANGED
|
@@ -314,9 +314,19 @@ var FAMILIES = ["power1", "power2", "power3", "power4", "back", "elastic", "boun
|
|
|
314
314
|
var EASE_NAMES = ["none", ...FAMILIES.flatMap((f) => [`${f}.in`, `${f}.out`, `${f}.inOut`])];
|
|
315
315
|
var warned = /* @__PURE__ */ new Set();
|
|
316
316
|
function checkEase(ease, where) {
|
|
317
|
-
if (typeof ease !== "string"
|
|
317
|
+
if (typeof ease !== "string") return;
|
|
318
|
+
const found = gsap.gsap.parseEase(ease);
|
|
319
|
+
if (typeof found === "function") return;
|
|
318
320
|
if (warned.has(ease)) return;
|
|
319
321
|
warned.add(ease);
|
|
322
|
+
if (ease === "") {
|
|
323
|
+
console.warn(`pixi-effects: ${where}: an empty ease (GSAP would run its default, power1.out): write 'none' for no easing, or a name such as 'power2.out'`);
|
|
324
|
+
return;
|
|
325
|
+
}
|
|
326
|
+
if (found && /^power[1-4]$/i.test(ease)) {
|
|
327
|
+
console.warn(`pixi-effects: ${where}: "${ease}" is a family, not an ease \u2014 write ${ease.toLowerCase()}.out, ${ease.toLowerCase()}.in or ${ease.toLowerCase()}.inOut`);
|
|
328
|
+
return;
|
|
329
|
+
}
|
|
320
330
|
const guess = chunkUQBGW5DO_cjs.suggestName(ease, EASE_NAMES);
|
|
321
331
|
console.warn(`pixi-effects: ${where}: unknown ease "${ease}"${guess ? ` \u2014 did you mean "${guess}"?` : ""} (GSAP would run it as its default ease, power1.out). Examples: ${EASE_NAMES.slice(0, 7).join(", ")}, back.out(1.7), elastic.out(1, 0.3), steps(8)`);
|
|
322
332
|
}
|
|
@@ -2765,7 +2775,7 @@ function numOrZero(v, scope) {
|
|
|
2765
2775
|
var _CompositionSequence = null;
|
|
2766
2776
|
async function getCompositionSequence() {
|
|
2767
2777
|
if (!_CompositionSequence) {
|
|
2768
|
-
_CompositionSequence = (await import('./Composition-
|
|
2778
|
+
_CompositionSequence = (await import('./Composition-6JMXWNVV.cjs')).CompositionSequence;
|
|
2769
2779
|
}
|
|
2770
2780
|
return _CompositionSequence;
|
|
2771
2781
|
}
|
|
@@ -2829,5 +2839,5 @@ exports.random = random;
|
|
|
2829
2839
|
exports.registerSequenceType = registerSequenceType;
|
|
2830
2840
|
exports.resolveAt = resolveAt;
|
|
2831
2841
|
exports.summarizeWarnings = summarizeWarnings;
|
|
2832
|
-
//# sourceMappingURL=chunk-
|
|
2833
|
-
//# sourceMappingURL=chunk-
|
|
2842
|
+
//# sourceMappingURL=chunk-ANO5R2E6.cjs.map
|
|
2843
|
+
//# sourceMappingURL=chunk-ANO5R2E6.cjs.map
|