@glissade/core 0.19.0-pre.4 → 0.19.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/dist/index.d.ts CHANGED
@@ -298,13 +298,18 @@ interface TimelineBuilder {
298
298
  /**
299
299
  * Build-time bridge for the CLIP tier (Isuo8Gxn): inject pre-built `Track[]`
300
300
  * (the `{ tracks }` returned by `presence`/`clip`/`each`/`morph` on
301
- * `@glissade/core/clips`) straight into the document. The tracks carry their
302
- * OWN absolute keyframe times they land as ordinary track rows through the
303
- * same finalize→coalesce path `add()` uses for child tracks (same-target rows
304
- * coalesce, later wins). Scoped to raw absolute-time tracks: no cursor-offset
305
- * or rebasing wrapper (deferred). Does NOT move the cursor.
301
+ * `@glissade/core/clips`) straight into the document. Accepts EITHER a raw
302
+ * `Track[]` OR a clip-tier result object (`{ tracks: Track[] }`) so
303
+ * `tl.tracks(presence(...))` works without reaching for `.tracks` yourself
304
+ * (the common footgun: a bare result threw "{} is not iterable"). The tracks
305
+ * carry their OWN absolute keyframe times they land as ordinary track rows
306
+ * through the same finalize→coalesce path `add()` uses for child tracks
307
+ * (same-target rows coalesce, later wins). Scoped to raw absolute-time tracks:
308
+ * no cursor-offset or rebasing wrapper (deferred). Does NOT move the cursor.
306
309
  */
307
- tracks(tracks: Track[]): TimelineBuilder;
310
+ tracks(tracks: Track[] | {
311
+ tracks: Track[];
312
+ }): TimelineBuilder;
308
313
  /** Hold key: the value snaps at the resolved position (§2.6). */
309
314
  set<T>(target: TweenTarget, value: T, opts?: {
310
315
  at?: Position;
package/dist/index.js CHANGED
@@ -745,7 +745,8 @@ function buildTimeline(build, init = {}) {
745
745
  return builder;
746
746
  },
747
747
  tracks(tracks) {
748
- for (const tr of tracks) injectedTracks.push(tr);
748
+ const rows = Array.isArray(tracks) ? tracks : tracks.tracks;
749
+ for (const tr of rows) injectedTracks.push(tr);
749
750
  return builder;
750
751
  },
751
752
  label(name, at) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@glissade/core",
3
- "version": "0.19.0-pre.4",
3
+ "version": "0.19.0",
4
4
  "description": "glissade core: signals, tracks, timeline document, evaluation, easing, springs, seeded RNG. Zero DOM/Node dependencies.",
5
5
  "license": "Apache-2.0",
6
6
  "engines": {