@flemo/core 1.15.0 → 1.16.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.
@@ -13,6 +13,7 @@ export interface DriverPolicy {
13
13
  demoted: boolean;
14
14
  };
15
15
  }
16
- export declare const createDriverPolicy: (storage?: DriverPolicyStorage) => DriverPolicy;
16
+ export declare const detectBlinkEngine: () => boolean;
17
+ export declare const createDriverPolicy: (storage?: DriverPolicyStorage, playerByDefault?: boolean) => DriverPolicy;
17
18
  declare const driverPolicy: DriverPolicy;
18
19
  export default driverPolicy;
package/dist/index.mjs CHANGED
@@ -1266,12 +1266,12 @@ var ve = (e, t, n) => {
1266
1266
  ]);
1267
1267
  //#endregion
1268
1268
  //#region src/transition/resolveTransition.ts
1269
- function N(e) {
1269
+ function we(e) {
1270
1270
  return M.get(e) ?? M.get("none");
1271
1271
  }
1272
1272
  //#endregion
1273
1273
  //#region src/transition/decorator/createDecorator.ts
1274
- function we({ name: e, initial: t, idle: n, enter: r, exit: i, options: a }) {
1274
+ function Te({ name: e, initial: t, idle: n, enter: r, exit: i, options: a }) {
1275
1275
  return {
1276
1276
  name: e,
1277
1277
  initial: t,
@@ -1292,7 +1292,7 @@ function we({ name: e, initial: t, idle: n, enter: r, exit: i, options: a }) {
1292
1292
  }
1293
1293
  //#endregion
1294
1294
  //#region src/transition/decorator/createRawDecorator.ts
1295
- function Te({ name: e, initial: t, idle: n, pushOnEnter: r, pushOnExit: i, replaceOnEnter: a, replaceOnExit: o, popOnEnter: s, popOnExit: c, completedOnEnter: l, completedOnExit: u, options: d }) {
1295
+ function Ee({ name: e, initial: t, idle: n, pushOnEnter: r, pushOnExit: i, replaceOnEnter: a, replaceOnExit: o, popOnEnter: s, popOnExit: c, completedOnEnter: l, completedOnExit: u, options: d }) {
1296
1296
  return {
1297
1297
  name: e,
1298
1298
  initial: t,
@@ -1313,30 +1313,30 @@ function Te({ name: e, initial: t, idle: n, pushOnEnter: r, pushOnExit: i, repla
1313
1313
  }
1314
1314
  //#endregion
1315
1315
  //#region src/transition/decorator/overlay.ts
1316
- var P = "rgba(0, 0, 0, 0.2)", Ee = we({
1316
+ var N = "rgba(0, 0, 0, 0.2)", De = Te({
1317
1317
  name: "overlay",
1318
1318
  initial: {
1319
1319
  opacity: 0,
1320
- backgroundColor: P
1320
+ backgroundColor: N
1321
1321
  },
1322
1322
  idle: {
1323
1323
  value: {
1324
1324
  opacity: 0,
1325
- backgroundColor: P
1325
+ backgroundColor: N
1326
1326
  },
1327
1327
  options: { duration: 0 }
1328
1328
  },
1329
1329
  enter: {
1330
1330
  value: {
1331
1331
  opacity: 1,
1332
- backgroundColor: P
1332
+ backgroundColor: N
1333
1333
  },
1334
1334
  options: { duration: .6 }
1335
1335
  },
1336
1336
  exit: {
1337
1337
  value: {
1338
1338
  opacity: 0,
1339
- backgroundColor: P
1339
+ backgroundColor: N
1340
1340
  },
1341
1341
  options: { duration: .6 }
1342
1342
  },
@@ -1345,10 +1345,10 @@ var P = "rgba(0, 0, 0, 0.2)", Ee = we({
1345
1345
  onSwipe: (e, t, { animate: n, prevDecorator: r }) => n(r, { opacity: Math.max(0, 1 - t / 100) }, { duration: 0 }),
1346
1346
  onSwipeEnd: (e, { animate: t, prevDecorator: n }) => t(n, { opacity: +!e }, { duration: .3 })
1347
1347
  }
1348
- }), F = new Map([["overlay", Ee]]);
1348
+ }), P = new Map([["overlay", De]]);
1349
1349
  //#endregion
1350
1350
  //#region src/transition/partTransition/createPartTransition.ts
1351
- function De({ name: e, initial: t, idle: n, enter: r, exit: i, options: a }) {
1351
+ function Oe({ name: e, initial: t, idle: n, enter: r, exit: i, options: a }) {
1352
1352
  return {
1353
1353
  name: e,
1354
1354
  initial: t,
@@ -1369,7 +1369,7 @@ function De({ name: e, initial: t, idle: n, enter: r, exit: i, options: a }) {
1369
1369
  }
1370
1370
  //#endregion
1371
1371
  //#region src/transition/partTransition/createRawPartTransition.ts
1372
- function Oe({ name: e, initial: t, idle: n, pushOnEnter: r, pushOnExit: i, replaceOnEnter: a, replaceOnExit: o, popOnEnter: s, popOnExit: c, completedOnEnter: l, completedOnExit: u, options: d }) {
1372
+ function ke({ name: e, initial: t, idle: n, pushOnEnter: r, pushOnExit: i, replaceOnEnter: a, replaceOnExit: o, popOnEnter: s, popOnExit: c, completedOnEnter: l, completedOnExit: u, options: d }) {
1373
1373
  return {
1374
1374
  name: e,
1375
1375
  initial: t,
@@ -1390,7 +1390,7 @@ function Oe({ name: e, initial: t, idle: n, pushOnEnter: r, pushOnExit: i, repla
1390
1390
  }
1391
1391
  //#endregion
1392
1392
  //#region src/transition/partTransition/partTransition.ts
1393
- var I = /* @__PURE__ */ new Map(), L = {
1393
+ var F = /* @__PURE__ */ new Map(), I = {
1394
1394
  "IDLE-true": "self",
1395
1395
  "IDLE-false": "self",
1396
1396
  "PUSHING-true": "initial",
@@ -1401,17 +1401,17 @@ var I = /* @__PURE__ */ new Map(), L = {
1401
1401
  "POPPING-false": "PUSHING-false",
1402
1402
  "COMPLETED-true": "self",
1403
1403
  "COMPLETED-false": "self"
1404
- }, ke = Object.keys(L), R = (e) => {
1404
+ }, Ae = Object.keys(I), L = (e) => {
1405
1405
  if (!e) return 0;
1406
1406
  let t = e.duration;
1407
1407
  return typeof t == "number" && t >= 0 ? t : 0;
1408
- }, z = (e) => e && typeof e.delay == "number" && e.delay > 0 ? e.delay : 0, Ae = (e, t) => {
1409
- let n = L[t];
1408
+ }, R = (e) => e && typeof e.delay == "number" && e.delay > 0 ? e.delay : 0, je = (e, t) => {
1409
+ let n = I[t];
1410
1410
  return n === "self" ? null : n === "initial" ? e.initial : e.variants[n].value;
1411
- }, B = (e, t) => {
1412
- let n = Ae(e, t);
1411
+ }, z = (e, t) => {
1412
+ let n = je(e, t);
1413
1413
  if (n === null) return null;
1414
- let r = e.variants[t], i = R(r.options), a = z(r.options);
1414
+ let r = e.variants[t], i = L(r.options), a = R(r.options);
1415
1415
  return i <= 0 && a <= 0 ? null : {
1416
1416
  from: n,
1417
1417
  to: r.value,
@@ -1419,7 +1419,7 @@ var I = /* @__PURE__ */ new Map(), L = {
1419
1419
  delay: a,
1420
1420
  ease: r.options?.ease
1421
1421
  };
1422
- }, je = ke, Me = (e) => e.replace(/[^a-zA-Z0-9_-]/g, "_"), Ne = (e) => typeof e == "object" && !!e && !Array.isArray(e), Pe = new Set(/* @__PURE__ */ "opacity.scale.scaleX.scaleY.scaleZ.aspectRatio.columnCount.columns.flex.flexGrow.flexShrink.fontWeight.gridArea.gridColumn.gridColumnEnd.gridColumnStart.gridRow.gridRowEnd.gridRowStart.lineHeight.lineClamp.order.orphans.tabSize.widows.zIndex.zoom.fillOpacity.floodOpacity.stopOpacity.strokeOpacity.strokeDasharray.strokeDashoffset.strokeMiterlimit.strokeWidth".split(".")), Fe = (e, t) => t.startsWith("--") || Pe.has(t) ? `${e}` : t === "rotate" || t === "rotateX" || t === "rotateY" || t === "rotateZ" ? `${e}deg` : `${e}px`, Ie = (e, t) => typeof t == "number" ? Fe(t, e) : typeof t == "string" ? t : "", Le = (e) => e.replace(/[A-Z]/g, (e) => `-${e.toLowerCase()}`), Re = new Set([
1422
+ }, Me = Ae, Ne = (e) => e.replace(/[^a-zA-Z0-9_-]/g, "_"), Pe = (e) => typeof e == "object" && !!e && !Array.isArray(e), Fe = new Set(/* @__PURE__ */ "opacity.scale.scaleX.scaleY.scaleZ.aspectRatio.columnCount.columns.flex.flexGrow.flexShrink.fontWeight.gridArea.gridColumn.gridColumnEnd.gridColumnStart.gridRow.gridRowEnd.gridRowStart.lineHeight.lineClamp.order.orphans.tabSize.widows.zIndex.zoom.fillOpacity.floodOpacity.stopOpacity.strokeOpacity.strokeDasharray.strokeDashoffset.strokeMiterlimit.strokeWidth".split(".")), Ie = (e, t) => t.startsWith("--") || Fe.has(t) ? `${e}` : t === "rotate" || t === "rotateX" || t === "rotateY" || t === "rotateZ" ? `${e}deg` : `${e}px`, Le = (e, t) => typeof t == "number" ? Ie(t, e) : typeof t == "string" ? t : "", Re = (e) => e.replace(/[A-Z]/g, (e) => `-${e.toLowerCase()}`), ze = new Set([
1423
1423
  "x",
1424
1424
  "y",
1425
1425
  "z",
@@ -1430,7 +1430,7 @@ var I = /* @__PURE__ */ new Map(), L = {
1430
1430
  "rotateX",
1431
1431
  "rotateY",
1432
1432
  "rotateZ"
1433
- ]), ze = /^-?0(\.0+)?(px|%|em|rem|vh|vw|vmin|vmax)?$/, Be = /^-?0(\.0+)?(deg|rad|grad|turn)?$/, Ve = /^1(\.0+)?$/, He = (e, t) => e === "scale" || e === "scaleX" || e === "scaleY" ? t === 1 ? !0 : typeof t == "string" ? Ve.test(t.trim()) : !1 : e === "rotate" || e === "rotateX" || e === "rotateY" || e === "rotateZ" ? t === 0 ? !0 : typeof t == "string" ? Be.test(t.trim()) : !1 : t === 0 ? !0 : typeof t == "string" ? ze.test(t.trim()) : !1, Ue = (e, t) => {
1433
+ ]), Be = /^-?0(\.0+)?(px|%|em|rem|vh|vw|vmin|vmax)?$/, Ve = /^-?0(\.0+)?(deg|rad|grad|turn)?$/, He = /^1(\.0+)?$/, Ue = (e, t) => e === "scale" || e === "scaleX" || e === "scaleY" ? t === 1 ? !0 : typeof t == "string" ? He.test(t.trim()) : !1 : e === "rotate" || e === "rotateX" || e === "rotateY" || e === "rotateZ" ? t === 0 ? !0 : typeof t == "string" ? Ve.test(t.trim()) : !1 : t === 0 ? !0 : typeof t == "string" ? Be.test(t.trim()) : !1, We = (e, t) => {
1434
1434
  switch (e) {
1435
1435
  case "x": return `translate3d(${t}, 0, 0)`;
1436
1436
  case "y": return `translate3d(0, ${t}, 0)`;
@@ -1444,16 +1444,16 @@ var I = /* @__PURE__ */ new Map(), L = {
1444
1444
  case "rotateY": return `rotateY(${t})`;
1445
1445
  default: return "";
1446
1446
  }
1447
- }, We = (e) => {
1447
+ }, Ge = (e) => {
1448
1448
  let t = /* @__PURE__ */ new Map(), n = !1, r = /* @__PURE__ */ new Set(), i = (e) => {
1449
- if (!Ne(e)) return;
1449
+ if (!Pe(e)) return;
1450
1450
  let n = [];
1451
1451
  for (let r of Object.keys(e)) {
1452
- let i = e[r], a = Ie(r, i);
1453
- if (a !== "") if (Re.has(r)) n.push(`${r}:${a}`);
1452
+ let i = e[r], a = Le(r, i);
1453
+ if (a !== "") if (ze.has(r)) n.push(`${r}:${a}`);
1454
1454
  else {
1455
- let e = t.get(Le(r)) ?? /* @__PURE__ */ new Set();
1456
- e.add(a), t.set(Le(r), e);
1455
+ let e = t.get(Re(r)) ?? /* @__PURE__ */ new Set();
1456
+ e.add(a), t.set(Re(r), e);
1457
1457
  }
1458
1458
  }
1459
1459
  r.add(n.sort().join("|"));
@@ -1463,13 +1463,13 @@ var I = /* @__PURE__ */ new Map(), L = {
1463
1463
  n = r.size > 1;
1464
1464
  let a = Array.from(t.entries()).filter(([, e]) => e.size > 1).map(([e]) => e);
1465
1465
  return n && a.push("transform"), a;
1466
- }, V = (e) => {
1467
- if (!Ne(e)) return [];
1466
+ }, B = (e) => {
1467
+ if (!Pe(e)) return [];
1468
1468
  let t = [], n = !0, r = [];
1469
1469
  for (let i of Object.keys(e)) {
1470
- let a = e[i], o = Ie(i, a);
1471
- o !== "" && (Re.has(i) ? (t.push(Ue(i, o)), He(i, a) || (n = !1)) : r.push({
1472
- property: Le(i),
1470
+ let a = e[i], o = Le(i, a);
1471
+ o !== "" && (ze.has(i) ? (t.push(We(i, o)), Ue(i, a) || (n = !1)) : r.push({
1472
+ property: Re(i),
1473
1473
  value: o
1474
1474
  }));
1475
1475
  }
@@ -1477,7 +1477,7 @@ var I = /* @__PURE__ */ new Map(), L = {
1477
1477
  property: "transform",
1478
1478
  value: n ? "none" : t.join(" ")
1479
1479
  }), r;
1480
- }, H = (e) => e.map((e) => ` ${e.property}: ${e.value};`).join("\n"), U = (e) => Array.isArray(e) ? e.length === 4 && e.every((e) => typeof e == "number") ? `cubic-bezier(${e.join(", ")})` : "linear" : typeof e == "string" ? {
1480
+ }, V = (e) => e.map((e) => ` ${e.property}: ${e.value};`).join("\n"), H = (e) => Array.isArray(e) ? e.length === 4 && e.every((e) => typeof e == "number") ? `cubic-bezier(${e.join(", ")})` : "linear" : typeof e == "string" ? {
1481
1481
  linear: "linear",
1482
1482
  easeIn: "ease-in",
1483
1483
  easeOut: "ease-out",
@@ -1487,29 +1487,29 @@ var I = /* @__PURE__ */ new Map(), L = {
1487
1487
  backIn: "cubic-bezier(0.31, 0.01, 0.66, -0.59)",
1488
1488
  backOut: "cubic-bezier(0.33, 1.53, 0.69, 0.99)",
1489
1489
  anticipate: "cubic-bezier(0.36, 0, 0.66, -0.56)"
1490
- }[e] ?? "ease" : "ease", Ge = (e, t) => {
1490
+ }[e] ?? "ease" : "ease", Ke = (e, t) => {
1491
1491
  let [n, r] = t.split("-");
1492
1492
  return `[data-flemo-screen][data-flemo-transition="${e}"][data-flemo-status="${n}"][data-flemo-active="${r}"]`;
1493
- }, Ke = (e, t) => {
1493
+ }, qe = (e, t) => {
1494
1494
  let [n, r] = t.split("-");
1495
1495
  return `[data-flemo-decorator][data-flemo-decorator-name="${e}"][data-flemo-status="${n}"][data-flemo-active="${r}"]`;
1496
- }, qe = (e, t) => {
1496
+ }, Je = (e, t) => {
1497
1497
  let [n, r] = t.split("-");
1498
1498
  return `[data-flemo-bar][data-flemo-bar-transition="${e}"][data-flemo-bar-status="${n}"][data-flemo-bar-active="${r}"][data-flemo-bar-riding="true"]`;
1499
- }, Je = (e, t) => {
1499
+ }, Ye = (e, t) => {
1500
1500
  let [n, r] = t.split("-");
1501
1501
  return `[data-flemo-part-name="${e}"][data-flemo-status="${n}"][data-flemo-active="${r}"]`;
1502
- }, Ye = (e, t, n) => `flemo-${e}-${Me(t)}-${n}`, Xe = (e, t, n, r, i, a) => {
1503
- let o = V(r), s = V(i.value), c = R(i.options), l = z(i.options), u = U(i.options?.ease), d = a(t, n), f = e === "screen" ? `${d},\n${qe(t, n)}` : d;
1502
+ }, Xe = (e, t, n) => `flemo-${e}-${Ne(t)}-${n}`, Ze = (e, t, n, r, i, a) => {
1503
+ let o = B(r), s = B(i.value), c = L(i.options), l = R(i.options), u = H(i.options?.ease), d = a(t, n), f = e === "screen" ? `${d},\n${Je(t, n)}` : d;
1504
1504
  if (s.length === 0 && o.length === 0) return "";
1505
- if (c <= 0 && l <= 0) return s.length === 0 ? "" : `${f} {\n${H(s)}\n animation: none;\n}`;
1506
- let p = Ye(e, t, n), m = [
1505
+ if (c <= 0 && l <= 0) return s.length === 0 ? "" : `${f} {\n${V(s)}\n animation: none;\n}`;
1506
+ let p = Xe(e, t, n), m = [
1507
1507
  `@keyframes ${p} {`,
1508
1508
  " from {",
1509
- H(o).replace(/^/gm, " "),
1509
+ V(o).replace(/^/gm, " "),
1510
1510
  " }",
1511
1511
  " to {",
1512
- H(s).replace(/^/gm, " "),
1512
+ V(s).replace(/^/gm, " "),
1513
1513
  " }",
1514
1514
  "}"
1515
1515
  ].join("\n"), h = [
@@ -1519,55 +1519,55 @@ var I = /* @__PURE__ */ new Map(), L = {
1519
1519
  l > 0 ? `${l}s` : null,
1520
1520
  "both"
1521
1521
  ].filter(Boolean).join(" "), g = new Map(o.map((e) => [e.property, e.value])), _ = new Map(s.map((e) => [e.property, e.value])), v = Array.from(new Set([...g.keys(), ..._.keys()])).filter((e) => g.get(e) !== _.get(e)), y = v.length > 0 ? ` will-change: ${v.join(", ")};\n` : "", b = n.split("-")[0];
1522
- return `${m}\n${`${f} {\n animation: ${h};\n${y}${b === "PUSHING" || b === "REPLACING" ? " contain: layout;\n pointer-events: none;\n" : ""}}`}${e === "screen" && n.endsWith("-false") && Ze(r) && s.length > 0 ? `\n${d}[data-flemo-anim-hold="park"] {\n animation: none;\n${H(s)}\n}` : ""}${e === "screen" && n.endsWith("-true") && (n.startsWith("PUSHING") || n.startsWith("REPLACING")) && Ze(r) && s.length > 0 ? `\n${d}[data-flemo-anim-hold="park-under"] {\n animation: none;\n${H(s)}\n}` : ""}`;
1523
- }, Ze = (e) => {
1522
+ return `${m}\n${`${f} {\n animation: ${h};\n${y}${b === "PUSHING" || b === "REPLACING" ? " contain: layout;\n pointer-events: none;\n" : ""}}`}${e === "screen" && n.endsWith("-false") && Qe(r) && s.length > 0 ? `\n${d}[data-flemo-anim-hold="park"] {\n animation: none;\n${V(s)}\n}` : ""}${e === "screen" && n.endsWith("-true") && (n.startsWith("PUSHING") || n.startsWith("REPLACING")) && Qe(r) && s.length > 0 ? `\n${d}[data-flemo-anim-hold="park-under"] {\n animation: none;\n${V(s)}\n}` : ""}`;
1523
+ }, Qe = (e) => {
1524
1524
  if (!e) return !1;
1525
1525
  if (e.opacity === 0) return !0;
1526
1526
  let t = (e) => typeof e == "string" && e.trim().endsWith("%") && Math.abs(parseFloat(e)) >= 100;
1527
1527
  return t(e.x) || t(e.y);
1528
- }, Qe = (e, t, n, r) => {
1529
- let i = V(r.value);
1530
- return i.length === 0 ? "" : `${e(t, n)} {\n${H(i)}\n}`;
1531
- }, $e = (e, t, n = []) => {
1528
+ }, $e = (e, t, n, r) => {
1529
+ let i = B(r.value);
1530
+ return i.length === 0 ? "" : `${e(t, n)} {\n${V(i)}\n}`;
1531
+ }, et = (e, t, n = []) => {
1532
1532
  let r = [];
1533
1533
  for (let t of e) {
1534
1534
  let e = t.name;
1535
- for (let n of ke) {
1536
- let i = t.variants[n], a = L[n];
1535
+ for (let n of Ae) {
1536
+ let i = t.variants[n], a = I[n];
1537
1537
  if (a === "self") {
1538
- r.push(Qe(Ge, e, n, i));
1538
+ r.push($e(Ke, e, n, i));
1539
1539
  continue;
1540
1540
  }
1541
1541
  let o = a === "initial" ? t.initial : t.variants[a].value;
1542
- r.push(Xe("screen", e, n, o, i, Ge));
1542
+ r.push(Ze("screen", e, n, o, i, Ke));
1543
1543
  }
1544
1544
  }
1545
1545
  for (let e of t) {
1546
1546
  let t = e.name;
1547
- for (let n of je) {
1548
- let i = e.variants[n], a = L[n];
1547
+ for (let n of Me) {
1548
+ let i = e.variants[n], a = I[n];
1549
1549
  if (a === "self") {
1550
- r.push(Qe(Ke, t, n, i));
1550
+ r.push($e(qe, t, n, i));
1551
1551
  continue;
1552
1552
  }
1553
1553
  let o = a === "initial" ? e.initial : e.variants[a].value;
1554
- r.push(Xe("decorator", t, n, o, i, Ke));
1554
+ r.push(Ze("decorator", t, n, o, i, qe));
1555
1555
  }
1556
1556
  }
1557
1557
  for (let e of n) {
1558
1558
  let t = e.name;
1559
- for (let n of je) {
1560
- let i = e.variants[n], a = L[n];
1559
+ for (let n of Me) {
1560
+ let i = e.variants[n], a = I[n];
1561
1561
  if (a === "self") {
1562
- r.push(Qe(Je, t, n, i));
1562
+ r.push($e(Ye, t, n, i));
1563
1563
  continue;
1564
1564
  }
1565
1565
  let o = a === "initial" ? e.initial : e.variants[a].value;
1566
- r.push(Xe("part", t, n, o, i, Je));
1566
+ r.push(Ze("part", t, n, o, i, Ye));
1567
1567
  }
1568
1568
  }
1569
- return [...r.filter((e) => e.length > 0), et].join("\n\n");
1570
- }, et = [
1569
+ return [...r.filter((e) => e.length > 0), tt].join("\n\n");
1570
+ }, tt = [
1571
1571
  "[data-flemo-anim-hold=\"true\"],",
1572
1572
  "[data-flemo-anim-hold=\"park\"],",
1573
1573
  "[data-flemo-anim-hold=\"park-under\"],",
@@ -1576,41 +1576,41 @@ var I = /* @__PURE__ */ new Map(), L = {
1576
1576
  "[data-flemo-anim-hold=\"park-under\"] [data-flemo-part-name] {",
1577
1577
  " animation-play-state: paused !important;",
1578
1578
  "}"
1579
- ].join("\n"), tt = (e, t) => {
1580
- let n = L[t];
1579
+ ].join("\n"), nt = (e, t) => {
1580
+ let n = I[t];
1581
1581
  if (n === "self") return !1;
1582
- let r = e.variants[t], i = R(r.options), a = z(r.options);
1582
+ let r = e.variants[t], i = L(r.options), a = R(r.options);
1583
1583
  if (i <= 0 && a <= 0) return !1;
1584
- let o = V(n === "initial" ? e.initial : e.variants[n].value), s = V(r.value);
1584
+ let o = B(n === "initial" ? e.initial : e.variants[n].value), s = B(r.value);
1585
1585
  return o.length > 0 || s.length > 0;
1586
- }, nt = "data-flemo";
1587
- function rt() {
1586
+ }, rt = "data-flemo";
1587
+ function it() {
1588
1588
  if (d()) return;
1589
- let e = $e(M.values(), F.values(), I.values()), t = document.head.querySelector(`style[${nt}]`);
1590
- t || (t = document.createElement("style"), t.setAttribute(nt, ""), document.head.appendChild(t)), t.textContent !== e && (t.textContent = e);
1589
+ let e = et(M.values(), P.values(), F.values()), t = document.head.querySelector(`style[${rt}]`);
1590
+ t || (t = document.createElement("style"), t.setAttribute(rt, ""), document.head.appendChild(t)), t.textContent !== e && (t.textContent = e);
1591
1591
  }
1592
1592
  //#endregion
1593
1593
  //#region src/transition/registerTransitionDefinitions.ts
1594
- var it = /* @__PURE__ */ new Map(), at = /* @__PURE__ */ new Map(), ot = /* @__PURE__ */ new Map(), st = (e, t) => {
1594
+ var at = /* @__PURE__ */ new Map(), ot = /* @__PURE__ */ new Map(), st = /* @__PURE__ */ new Map(), ct = (e, t) => {
1595
1595
  e.set(t, (e.get(t) ?? 0) + 1);
1596
- }, ct = (e, t) => {
1596
+ }, lt = (e, t) => {
1597
1597
  let n = (e.get(t) ?? 1) - 1;
1598
1598
  return n <= 0 ? (e.delete(t), !0) : (e.set(t, n), !1);
1599
1599
  };
1600
- function lt(e, t, n = []) {
1601
- for (let t of e) M.set(t.name, t), st(it, t.name);
1602
- for (let e of t) F.set(e.name, e), st(at, e.name);
1603
- for (let e of n) I.set(e.name, e), st(ot, e.name);
1604
- return rt(), () => {
1605
- for (let t of e) ct(it, t.name) && M.delete(t.name);
1606
- for (let e of t) ct(at, e.name) && F.delete(e.name);
1607
- for (let e of n) ct(ot, e.name) && I.delete(e.name);
1608
- rt();
1600
+ function ut(e, t, n = []) {
1601
+ for (let t of e) M.set(t.name, t), ct(at, t.name);
1602
+ for (let e of t) P.set(e.name, e), ct(ot, e.name);
1603
+ for (let e of n) F.set(e.name, e), ct(st, e.name);
1604
+ return it(), () => {
1605
+ for (let t of e) lt(at, t.name) && M.delete(t.name);
1606
+ for (let e of t) lt(ot, e.name) && P.delete(e.name);
1607
+ for (let e of n) lt(st, e.name) && F.delete(e.name);
1608
+ it();
1609
1609
  };
1610
1610
  }
1611
1611
  //#endregion
1612
1612
  //#region src/transition/enteringInitialStyle.ts
1613
- function ut(e) {
1613
+ function dt(e) {
1614
1614
  let { initial: t, isActive: n, status: r } = e;
1615
1615
  if (!n || r !== "PUSHING" && r !== "REPLACING") return {};
1616
1616
  let i = {};
@@ -1618,16 +1618,16 @@ function ut(e) {
1618
1618
  }
1619
1619
  //#endregion
1620
1620
  //#region src/transition/settleScrub.ts
1621
- var dt = () => ({
1621
+ var ft = () => ({
1622
1622
  request: (e) => requestAnimationFrame(e),
1623
1623
  cancel: (e) => cancelAnimationFrame(e)
1624
- }), ft = (e) => e.replace(/-([a-z])/g, (e, t) => t.toUpperCase()), pt = ((e = dt()) => {
1624
+ }), pt = (e) => e.replace(/-([a-z])/g, (e, t) => t.toUpperCase()), mt = ((e = ft()) => {
1625
1625
  let t = /* @__PURE__ */ new Map(), n = null, r = () => {
1626
1626
  t.size === 0 && n !== null && (e.cancel(n), n = null);
1627
1627
  }, i = (e, n) => {
1628
1628
  let i = t.get(e);
1629
1629
  if (i) {
1630
- if (t.delete(e), clearTimeout(i.backstop), e.isConnected) if (n === "end") for (let e of i.decls) i.writeFinal(e);
1630
+ if (t.delete(e), clearTimeout(i.backstop), e.isConnected && n !== "drop") if (n === "end") for (let e of i.decls) i.writeFinal(e);
1631
1631
  else {
1632
1632
  let t = getComputedStyle(e);
1633
1633
  for (let e of i.decls) {
@@ -1654,7 +1654,7 @@ var dt = () => ({
1654
1654
  if (typeof r.animate != "function") return null;
1655
1655
  i(r, "current");
1656
1656
  let l = {};
1657
- for (let e of o) l[ft(e.property)] = e.value;
1657
+ for (let e of o) l[pt(e.property)] = e.value;
1658
1658
  let u;
1659
1659
  try {
1660
1660
  u = r.animate([l], {
@@ -1681,13 +1681,64 @@ var dt = () => ({
1681
1681
  t.set(r, l), n === null && (n = e.request(a));
1682
1682
  });
1683
1683
  },
1684
- takeover: (e) => i(e, "current")
1684
+ takeover: (e) => i(e, "current"),
1685
+ cancel: (e) => i(e, "drop")
1686
+ };
1687
+ })(), ht = "flemo:motion-driver", gt = "flemo:motion-driver-force", _t = !1, vt = () => {
1688
+ try {
1689
+ if (typeof localStorage > "u") return null;
1690
+ let e = localStorage.getItem(gt);
1691
+ return e !== "css" && e !== "raf" ? null : (!_t && typeof console < "u" && (_t = !0, console.warn(`[flemo] motion driver pinned to "${e}" via localStorage ${gt}; remove the key to restore automatic selection.`)), e);
1692
+ } catch {
1693
+ return null;
1694
+ }
1695
+ }, yt = () => ({
1696
+ read: () => {
1697
+ try {
1698
+ return typeof localStorage < "u" ? localStorage.getItem(ht) : null;
1699
+ } catch {
1700
+ return null;
1701
+ }
1702
+ },
1703
+ write: (e) => {
1704
+ try {
1705
+ typeof localStorage < "u" && localStorage.setItem(ht, e);
1706
+ } catch {}
1707
+ }
1708
+ }), bt = 30, xt = 2, St = 2, Ct = () => typeof navigator < "u" && !!navigator.userAgentData, U = ((e = yt(), t = Ct()) => {
1709
+ let n = e.read() === "css", r = n;
1710
+ n &&= !1;
1711
+ let i = 0, a = 0, o = [];
1712
+ return {
1713
+ playerAllowed: () => {
1714
+ let e = vt();
1715
+ return e ? e === "raf" : t && !n;
1716
+ },
1717
+ beginRun: () => {
1718
+ a = 0, o = [];
1719
+ },
1720
+ reportGap: (e) => {
1721
+ o.push(e), e >= bt && (a += 1);
1722
+ },
1723
+ endRun: () => {
1724
+ let t = a >= xt;
1725
+ if (r) {
1726
+ r = !1, t ? n = !0 : e.write("raf");
1727
+ return;
1728
+ }
1729
+ t && (i += 1, i >= St && !n && (n = !0, e.write("css")));
1730
+ },
1731
+ stats: () => ({
1732
+ runGaps: [...o],
1733
+ strikes: i,
1734
+ demoted: n
1735
+ })
1685
1736
  };
1686
- })(), mt = (e) => typeof HTMLElement < "u" && e instanceof HTMLElement, W = /* @__PURE__ */ new WeakMap(), G = (e, t) => {
1737
+ })(), wt = (e) => typeof HTMLElement < "u" && e instanceof HTMLElement, W = /* @__PURE__ */ new WeakMap(), G = (e, t) => {
1687
1738
  let n = W.get(e);
1688
1739
  n || (n = /* @__PURE__ */ new Set(), W.set(e, n)), n.add(t);
1689
1740
  }, K = (e, t) => {
1690
- if (e.style.transition = "", t) {
1741
+ if (mt.cancel(e), e.style.transition = "", t) {
1691
1742
  let n = W.get(e);
1692
1743
  for (let r of t) e.style.removeProperty(r), n?.delete(r);
1693
1744
  return;
@@ -1700,22 +1751,22 @@ var dt = () => ({
1700
1751
  }
1701
1752
  e.style.removeProperty("transform"), e.style.removeProperty("opacity");
1702
1753
  }, q = (e, t, n = {}) => {
1703
- if (!mt(e)) return Promise.resolve();
1704
- let r = e, i = V(t);
1754
+ if (!wt(e)) return Promise.resolve();
1755
+ let r = e, i = B(t);
1705
1756
  if (i.length === 0) return Promise.resolve();
1706
- let a = typeof n.duration == "number" ? n.duration : 0, o = typeof n.delay == "number" && n.delay > 0 ? n.delay : 0, s = U(n.ease);
1757
+ let a = typeof n.duration == "number" ? n.duration : 0, o = typeof n.delay == "number" && n.delay > 0 ? n.delay : 0, s = H(n.ease);
1707
1758
  if (a <= 0 && o <= 0) {
1708
- pt.takeover(r), r.style.transition = "none";
1759
+ mt.takeover(r), r.style.transition = "none";
1709
1760
  for (let e of i) r.style.setProperty(e.property, e.value), G(r, e.property);
1710
1761
  return Promise.resolve();
1711
1762
  }
1712
- let c = pt.settle(r, i, {
1763
+ let c = U.playerAllowed() ? mt.settle(r, i, {
1713
1764
  durationMs: a * 1e3,
1714
1765
  delayMs: o * 1e3,
1715
1766
  easing: s
1716
1767
  }, (e) => {
1717
1768
  r.style.setProperty(e.property, e.value), G(r, e.property);
1718
- });
1769
+ }) : null;
1719
1770
  if (c) return c;
1720
1771
  let l = i.map((e) => `${e.property} ${a}s ${s} ${o}s`).join(", ");
1721
1772
  r.style.transition = l, r.offsetWidth;
@@ -1728,57 +1779,7 @@ var dt = () => ({
1728
1779
  };
1729
1780
  r.addEventListener("transitionend", i), setTimeout(n, (a + o) * 1e3 + 60);
1730
1781
  });
1731
- }, ht = "flemo:motion-driver", gt = "flemo:motion-driver-force", _t = !1, vt = () => {
1732
- try {
1733
- if (typeof localStorage > "u") return null;
1734
- let e = localStorage.getItem(gt);
1735
- return e !== "css" && e !== "raf" ? null : (!_t && typeof console < "u" && (_t = !0, console.warn(`[flemo] motion driver pinned to "${e}" via localStorage ${gt}; remove the key to restore automatic selection.`)), e);
1736
- } catch {
1737
- return null;
1738
- }
1739
- }, yt = () => ({
1740
- read: () => {
1741
- try {
1742
- return typeof localStorage < "u" ? localStorage.getItem(ht) : null;
1743
- } catch {
1744
- return null;
1745
- }
1746
- },
1747
- write: (e) => {
1748
- try {
1749
- typeof localStorage < "u" && localStorage.setItem(ht, e);
1750
- } catch {}
1751
- }
1752
- }), bt = 30, xt = 2, St = 2, J = ((e = yt()) => {
1753
- let t = e.read() === "css", n = t;
1754
- t &&= !1;
1755
- let r = 0, i = 0, a = [];
1756
- return {
1757
- playerAllowed: () => {
1758
- let e = vt();
1759
- return e ? e === "raf" : !t;
1760
- },
1761
- beginRun: () => {
1762
- i = 0, a = [];
1763
- },
1764
- reportGap: (e) => {
1765
- a.push(e), e >= bt && (i += 1);
1766
- },
1767
- endRun: () => {
1768
- let a = i >= xt;
1769
- if (n) {
1770
- n = !1, a ? t = !0 : e.write("raf");
1771
- return;
1772
- }
1773
- a && (r += 1, r >= St && !t && (t = !0, e.write("css")));
1774
- },
1775
- stats: () => ({
1776
- runGaps: [...a],
1777
- strikes: r,
1778
- demoted: t
1779
- })
1780
- };
1781
- })(), Ct = (e, t, n, r) => {
1782
+ }, Tt = (e, t, n, r) => {
1782
1783
  let i = (t) => 3 * (1 - t) * (1 - t) * t * e + 3 * (1 - t) * t * t * n + t ** 3, a = (e) => 3 * (1 - e) * (1 - e) * e * t + 3 * (1 - e) * e * e * r + e ** 3;
1783
1784
  return (e) => {
1784
1785
  if (e <= 0) return 0;
@@ -1790,7 +1791,7 @@ var dt = () => ({
1790
1791
  }
1791
1792
  return a((t + n) / 2);
1792
1793
  };
1793
- }, wt = (e) => e, Tt = {
1794
+ }, Et = (e) => e, Dt = {
1794
1795
  ease: [
1795
1796
  .25,
1796
1797
  .1,
@@ -1845,16 +1846,16 @@ var dt = () => ({
1845
1846
  .66,
1846
1847
  -.56
1847
1848
  ]
1848
- }, Et = (e) => {
1849
+ }, Ot = (e) => {
1849
1850
  if (Array.isArray(e)) {
1850
1851
  if (e.length === 4 && e.every((e) => typeof e == "number")) {
1851
1852
  let [t, n, r, i] = e;
1852
- return Ct(t, n, r, i);
1853
+ return Tt(t, n, r, i);
1853
1854
  }
1854
- return wt;
1855
+ return Et;
1855
1856
  }
1856
- return typeof e == "string" ? e === "linear" ? wt : Ct(...Tt[e] ?? Tt.ease) : Ct(...Tt.ease);
1857
- }, Dt = [
1857
+ return typeof e == "string" ? e === "linear" ? Et : Tt(...Dt[e] ?? Dt.ease) : Tt(...Dt.ease);
1858
+ }, kt = [
1858
1859
  "x",
1859
1860
  "y",
1860
1861
  "z",
@@ -1865,7 +1866,7 @@ var dt = () => ({
1865
1866
  "rotateX",
1866
1867
  "rotateY",
1867
1868
  "rotateZ"
1868
- ], Ot = new Set(Dt), kt = {
1869
+ ], At = new Set(kt), jt = {
1869
1870
  x: 0,
1870
1871
  y: 0,
1871
1872
  z: 0,
@@ -1876,7 +1877,7 @@ var dt = () => ({
1876
1877
  rotateX: 0,
1877
1878
  rotateY: 0,
1878
1879
  rotateZ: 0
1879
- }, At = (e, t) => {
1880
+ }, Mt = (e, t) => {
1880
1881
  if (typeof t == "number") return {
1881
1882
  value: t,
1882
1883
  unit: e === "x" || e === "y" || e === "z" ? "px" : ""
@@ -1895,26 +1896,26 @@ var dt = () => ({
1895
1896
  value: i,
1896
1897
  unit: a === "" && i === 0 ? "px" : a
1897
1898
  };
1898
- }, Y = /-?\d*\.?\d+/g, jt = (e, t) => {
1899
- let n = e.match(Y) ?? [], r = t.match(Y) ?? [];
1900
- if (n.length !== r.length || e.replace(Y, " ") !== t.replace(Y, " ")) return null;
1899
+ }, J = /-?\d*\.?\d+/g, Nt = (e, t) => {
1900
+ let n = e.match(J) ?? [], r = t.match(J) ?? [];
1901
+ if (n.length !== r.length || e.replace(J, " ") !== t.replace(J, " ")) return null;
1901
1902
  let i = n.map(Number), a = r.map(Number);
1902
1903
  return (t) => {
1903
1904
  let n = 0;
1904
- return e.replace(Y, () => {
1905
+ return e.replace(J, () => {
1905
1906
  let e = n++, r = i[e] + (a[e] - i[e]) * t;
1906
1907
  return `${Math.round(r * 1e3) / 1e3}`;
1907
1908
  });
1908
1909
  };
1909
- }, Mt = (e) => e.replace(/[A-Z]/g, (e) => `-${e.toLowerCase()}`), Nt = (e) => typeof e == "object" && !!e && !Array.isArray(e), Pt = (e) => Nt(e) ? Object.keys(e) : [], Ft = (e, t) => Nt(e) ? e[t] : void 0, It = (e, t) => {
1910
- let n = new Set([...Pt(e.from), ...Pt(e.to)]), r = [], i = null, a = [], o = [];
1910
+ }, Pt = (e) => e.replace(/[A-Z]/g, (e) => `-${e.toLowerCase()}`), Ft = (e) => typeof e == "object" && !!e && !Array.isArray(e), It = (e) => Ft(e) ? Object.keys(e) : [], Lt = (e, t) => Ft(e) ? e[t] : void 0, Rt = (e, t) => {
1911
+ let n = new Set([...It(e.from), ...It(e.to)]), r = [], i = null, a = [], o = [];
1911
1912
  for (let s of n) {
1912
- let n = Ft(e.from, s), c = Ft(e.to, s);
1913
- if (Ot.has(s)) {
1913
+ let n = Lt(e.from, s), c = Lt(e.to, s);
1914
+ if (At.has(s)) {
1914
1915
  let e = s, i = {
1915
- value: kt[e],
1916
+ value: jt[e],
1916
1917
  unit: e === "x" || e === "y" || e === "z" ? "px" : ""
1917
- }, a = n === void 0 ? i : At(e, n), o = c === void 0 ? i : At(e, c);
1918
+ }, a = n === void 0 ? i : Mt(e, n), o = c === void 0 ? i : Mt(e, c);
1918
1919
  if (!a || !o || a.unit !== o.unit && a.value !== 0 && o.value !== 0) return null;
1919
1920
  let l = a.value === 0 && a.unit !== o.unit ? o.unit : a.unit, u = l === "%", d = 0;
1920
1921
  u && t && (d = e === "y" ? t.offsetHeight / 100 : t.offsetWidth / 100), r.push({
@@ -1945,15 +1946,15 @@ var dt = () => ({
1945
1946
  if (typeof l != "string" || typeof u != "string") return null;
1946
1947
  if (l === u) {
1947
1948
  o.push({
1948
- property: Mt(s),
1949
+ property: Pt(s),
1949
1950
  value: l
1950
1951
  });
1951
1952
  continue;
1952
1953
  }
1953
- let d = jt(l, u);
1954
+ let d = Nt(l, u);
1954
1955
  if (!d) return null;
1955
1956
  a.push({
1956
- property: Mt(s),
1957
+ property: Pt(s),
1957
1958
  mix: d
1958
1959
  });
1959
1960
  }
@@ -1963,46 +1964,46 @@ var dt = () => ({
1963
1964
  strings: a,
1964
1965
  constants: o
1965
1966
  };
1966
- }, Lt = 1, Rt = (e, t, n, r) => {
1967
+ }, zt = 1, Bt = (e, t, n, r) => {
1967
1968
  let i = 0, a = 0, o = !1, s = [], c = !0;
1968
- for (let l of Dt) {
1969
+ for (let l of kt) {
1969
1970
  let u = e.find((e) => e.prop === l);
1970
1971
  if (!u) continue;
1971
1972
  let d = u.from.value + (u.to.value - u.from.value) * t;
1972
1973
  if (u.from.unit === "%" && (d *= u.percentBase), l === "x" || l === "y") {
1973
- let e = l === "x" ? r.x : r.y, t = (e === null || Math.abs(d - e) * n >= Lt) && n > 0 ? Math.round(d * n) / n : Math.round(d * 1e3) / 1e3;
1974
+ let e = l === "x" ? r.x : r.y, t = (e === null || Math.abs(d - e) * n >= zt) && n > 0 ? Math.round(d * n) / n : Math.round(d * 1e3) / 1e3;
1974
1975
  l === "x" ? (r.x = d, i = t) : (r.y = d, a = t), o = !0, t !== 0 && (c = !1);
1975
1976
  continue;
1976
1977
  }
1977
- let f = kt[l];
1978
+ let f = jt[l];
1978
1979
  d !== f && (c = !1), l === "z" ? s.push(`translateZ(${d}px)`) : l === "scale" ? s.push(`scale(${d})`) : l === "scaleX" ? s.push(`scaleX(${d})`) : l === "scaleY" ? s.push(`scaleY(${d})`) : l === "rotate" || l === "rotateZ" ? s.push(`rotate(${d}deg)`) : l === "rotateX" ? s.push(`rotateX(${d}deg)`) : l === "rotateY" && s.push(`rotateY(${d}deg)`);
1979
1980
  }
1980
1981
  return !o && s.length === 0 ? "" : c ? "none" : [...o ? [`translate3d(${i}px, ${a}px, 0)`] : [], ...s].join(" ");
1981
- }, zt = (e) => e.replace(/-([a-z])/g, (e, t) => t.toUpperCase()), Bt = (e) => {
1982
+ }, Vt = (e) => e.replace(/-([a-z])/g, (e, t) => t.toUpperCase()), Ht = (e) => {
1982
1983
  let t = {};
1983
- for (let n of V(e)) t[zt(n.property)] = n.value;
1984
+ for (let n of B(e)) t[Vt(n.property)] = n.value;
1984
1985
  return t;
1985
- }, Vt = (e, t) => {
1986
+ }, Ut = (e, t) => {
1986
1987
  if (typeof e.animate != "function") return null;
1987
1988
  try {
1988
- let n = e.animate([Bt(t.from), Bt(t.to)], {
1989
+ let n = e.animate([Ht(t.from), Ht(t.to)], {
1989
1990
  duration: Math.max(0, t.duration * 1e3),
1990
1991
  delay: Math.max(0, t.delay * 1e3),
1991
- easing: U(t.ease),
1992
+ easing: H(t.ease),
1992
1993
  fill: "both"
1993
1994
  });
1994
1995
  return n.pause(), n.currentTime = 0, n;
1995
1996
  } catch {
1996
1997
  return null;
1997
1998
  }
1998
- }, Ht = () => ({
1999
+ }, Wt = () => ({
1999
2000
  request: (e) => requestAnimationFrame(e),
2000
2001
  cancel: (e) => cancelAnimationFrame(e),
2001
2002
  devicePixelRatio: () => typeof window < "u" && window.devicePixelRatio || 1
2002
- }), X = ((e = Ht()) => {
2003
+ }), Y = ((e = Wt()) => {
2003
2004
  let t = /* @__PURE__ */ new Map(), n = {
2004
2005
  join: (n, r) => {
2005
- let i = It(r.motion, r.element), s = i ? null : Vt(r.element, r.motion);
2006
+ let i = Rt(r.motion, r.element), s = i ? null : Ut(r.element, r.motion);
2006
2007
  if (!i && !s) return null;
2007
2008
  let c = t.get(n);
2008
2009
  c || (c = {
@@ -2029,7 +2030,7 @@ var dt = () => ({
2029
2030
  for (let e of i.constants) G(l.element, e.property);
2030
2031
  a(l, 0);
2031
2032
  }
2032
- return r.role === "active" && !c.started && (c.started = !0, J.beginRun(), o(n, c)), () => {
2033
+ return r.role === "active" && !c.started && (c.started = !0, U.beginRun(), o(n, c)), () => {
2033
2034
  l.detached = !0, l.scrub?.cancel(), K(l.element);
2034
2035
  let r = t.get(n);
2035
2036
  r && (r.tracks = r.tracks.filter((e) => e !== l), r.tracks.length === 0 && (r.frameHandle !== null && e.cancel(r.frameHandle), t.delete(n)));
@@ -2045,13 +2046,13 @@ var dt = () => ({
2045
2046
  }
2046
2047
  }, r = /* @__PURE__ */ new WeakMap(), i = (e) => {
2047
2048
  let t = r.get(e);
2048
- return t || (t = Et(e.motion.ease), r.set(e, t)), t;
2049
+ return t || (t = Ot(e.motion.ease), r.set(e, t)), t;
2049
2050
  };
2050
2051
  function a(t, n) {
2051
2052
  let { element: r, parsed: i } = t;
2052
2053
  if (!(!i || !r.isConnected)) {
2053
2054
  if (i.transforms.length > 0) {
2054
- let a = Rt(i.transforms, n, e.devicePixelRatio(), t.snapMemory);
2055
+ let a = Bt(i.transforms, n, e.devicePixelRatio(), t.snapMemory);
2055
2056
  a !== "" && (r.style.transform = a);
2056
2057
  }
2057
2058
  if (i.opacity) {
@@ -2068,7 +2069,7 @@ var dt = () => ({
2068
2069
  });
2069
2070
  }
2070
2071
  function s(e, r, s) {
2071
- r.startTime === null && (r.startTime = s), r.lastTime !== null && (J.reportGap(s - r.lastTime), n.onFrameGap?.(s - r.lastTime)), r.lastTime = s;
2072
+ r.startTime === null && (r.startTime = s), r.lastTime !== null && (U.reportGap(s - r.lastTime), n.onFrameGap?.(s - r.lastTime)), r.lastTime = s;
2072
2073
  let c = !0;
2073
2074
  for (let e of r.tracks) {
2074
2075
  if (e.completed || e.detached) continue;
@@ -2082,14 +2083,14 @@ var dt = () => ({
2082
2083
  a(e, i(e)(l)), l >= 1 ? (e.completed = !0, e.onComplete?.()) : c = !1;
2083
2084
  }
2084
2085
  if (c) {
2085
- J.endRun(), t.delete(e);
2086
+ U.endRun(), t.delete(e);
2086
2087
  return;
2087
2088
  }
2088
2089
  o(e, r);
2089
2090
  }
2090
2091
  return n;
2091
2092
  })();
2092
- X.onFrameGap = (e) => {
2093
+ Y.onFrameGap = (e) => {
2093
2094
  if (typeof window < "u") {
2094
2095
  let t = window.__flemoPlayerGaps ??= [];
2095
2096
  t.push(Math.round(e * 10) / 10), t.length > 600 && t.splice(0, t.length - 600);
@@ -2097,26 +2098,26 @@ X.onFrameGap = (e) => {
2097
2098
  };
2098
2099
  //#endregion
2099
2100
  //#region src/core/engine/types.ts
2100
- var Z = "data-flemo-skip-animation", Q = () => {}, Ut = "data-flemo-part-name", Wt = (e) => {
2101
+ var X = "data-flemo-skip-animation", Z = () => {}, Gt = "data-flemo-part-name", Kt = (e) => {
2101
2102
  let t = e.parentElement ?? e;
2102
- return Array.from(t.querySelectorAll(`[${Ut}]`)).filter((n) => {
2103
+ return Array.from(t.querySelectorAll(`[${Gt}]`)).filter((n) => {
2103
2104
  let r = n.closest("[data-flemo-screen]");
2104
2105
  return !r || r === e || !t.contains(r);
2105
2106
  });
2106
- }, Gt = (e, t) => {
2107
+ }, qt = (e, t) => {
2107
2108
  let [n, r] = t.split("-");
2108
- return Wt(e).filter((e) => e.getAttribute("data-flemo-status") === n && e.getAttribute("data-flemo-active") === r);
2109
+ return Kt(e).filter((e) => e.getAttribute("data-flemo-status") === n && e.getAttribute("data-flemo-active") === r);
2109
2110
  };
2110
- function Kt(e) {
2111
+ function Jt(e) {
2111
2112
  return { driveScreenLifecycle: (t) => {
2112
2113
  let { getElements: n, transitionName: r, prevTransitionName: i, status: a, isActive: s, animHoldReleased: c } = t, l = a === "PUSHING" || a === "POPPING" || a === "REPLACING", u = (t, i, a) => {
2113
2114
  let s = e.getTransitionTaskId();
2114
- if (!s || o.pendingTaskIds.some((e) => e !== s) || !J.playerAllowed()) return null;
2115
+ if (!s || o.pendingTaskIds.some((e) => e !== s) || !U.playerAllowed()) return null;
2115
2116
  let { scope: c, decorator: l, bars: u } = n();
2116
2117
  if (!c) return null;
2117
- let d = N(r), f = B(d, t);
2118
+ let d = we(r), f = z(d, t);
2118
2119
  if (!f) return null;
2119
- let p = [], m = X.join(s, {
2120
+ let p = [], m = Y.join(s, {
2120
2121
  element: c,
2121
2122
  motion: f,
2122
2123
  role: i,
@@ -2126,7 +2127,7 @@ function Kt(e) {
2126
2127
  p.push(m);
2127
2128
  for (let e of u ?? []) {
2128
2129
  if (!e || e.getAttribute("data-flemo-bar-riding") !== "true") continue;
2129
- let t = X.join(s, {
2130
+ let t = Y.join(s, {
2130
2131
  element: e,
2131
2132
  motion: f,
2132
2133
  role: "passive"
@@ -2134,9 +2135,9 @@ function Kt(e) {
2134
2135
  t && p.push(t);
2135
2136
  }
2136
2137
  if (l && d.decoratorName) {
2137
- let e = F.get(d.decoratorName), n = e ? B(e, t) : null;
2138
+ let e = P.get(d.decoratorName), n = e ? z(e, t) : null;
2138
2139
  if (n) {
2139
- let e = X.join(s, {
2140
+ let e = Y.join(s, {
2140
2141
  element: l,
2141
2142
  motion: n,
2142
2143
  role: "passive"
@@ -2144,10 +2145,10 @@ function Kt(e) {
2144
2145
  e && p.push(e);
2145
2146
  }
2146
2147
  }
2147
- for (let e of Gt(c, t)) {
2148
- let n = I.get(e.getAttribute(Ut)), r = n ? B(n, t) : null;
2148
+ for (let e of qt(c, t)) {
2149
+ let n = F.get(e.getAttribute(Gt)), r = n ? z(n, t) : null;
2149
2150
  if (!r) continue;
2150
- let i = X.join(s, {
2151
+ let i = Y.join(s, {
2151
2152
  element: e,
2152
2153
  motion: r,
2153
2154
  role: "passive"
@@ -2161,38 +2162,38 @@ function Kt(e) {
2161
2162
  let { scope: e, decorator: t, bars: r } = n();
2162
2163
  if (e) {
2163
2164
  K(e);
2164
- for (let t of Wt(e)) K(t);
2165
+ for (let t of Kt(e)) K(t);
2165
2166
  }
2166
2167
  t && K(t);
2167
2168
  for (let e of r ?? []) e && K(e);
2168
- return Q;
2169
+ return Z;
2169
2170
  }
2170
2171
  if (a === "REPLACING" && i !== r && e.setReplaceTransitionStatus("PENDING"), l && c) {
2171
2172
  let e = u(`${a}-false`, "passive");
2172
2173
  if (e) return e;
2173
2174
  }
2174
- return Q;
2175
+ return Z;
2175
2176
  }
2176
2177
  if (a === "COMPLETED") {
2177
2178
  e.setDragStatus("IDLE"), e.setReplaceTransitionStatus("IDLE");
2178
2179
  let { scope: t, decorator: r, bars: i } = n();
2179
2180
  if (t) {
2180
- K(t), t.removeAttribute(Z);
2181
- for (let e of Wt(t)) K(e);
2181
+ K(t), t.removeAttribute(X);
2182
+ for (let e of Kt(t)) K(e);
2182
2183
  }
2183
- r && (K(r), r.removeAttribute(Z));
2184
+ r && (K(r), r.removeAttribute(X));
2184
2185
  for (let e of i ?? []) e && (K(e), e.style.removeProperty("will-change"));
2185
- return Q;
2186
+ return Z;
2186
2187
  }
2187
- if (a === "IDLE") return Q;
2188
+ if (a === "IDLE") return Z;
2188
2189
  let { scope: d } = n();
2189
- if (!d) return Q;
2190
+ if (!d) return Z;
2190
2191
  let f = () => {
2191
2192
  let t = e.getTransitionTaskId();
2192
2193
  t && o.resolveTask(t);
2193
- }, p = N(r), m = `${a}-true`, h = d.getAttribute(Z) === "true";
2194
- if (!(!h && tt(p, m))) return queueMicrotask(f), Q;
2195
- let g = B(p, m), _ = !h && !!g, v = Ye("screen", r, m), y = (e) => {
2194
+ }, p = we(r), m = `${a}-true`, h = d.getAttribute(X) === "true";
2195
+ if (!(!h && nt(p, m))) return queueMicrotask(f), Z;
2196
+ let g = z(p, m), _ = !h && !!g, v = Xe("screen", r, m), y = (e) => {
2196
2197
  e.target === d && e.animationName === v && (d.removeEventListener("animationend", y), f());
2197
2198
  };
2198
2199
  d.addEventListener("animationend", y);
@@ -2204,20 +2205,20 @@ function Kt(e) {
2204
2205
  }
2205
2206
  //#endregion
2206
2207
  //#region src/utils/findScrollable.ts
2207
- function qt(e, t) {
2208
- let { direction: n = "x", markerSelector: r = "[data-swipe-at-edge]", depthLimit: i = 24, verifyByScroll: a = !1 } = t ?? {}, o = Jt(e);
2208
+ function Yt(e, t) {
2209
+ let { direction: n = "x", markerSelector: r = "[data-swipe-at-edge]", depthLimit: i = 24, verifyByScroll: a = !1 } = t ?? {}, o = Xt(e);
2209
2210
  if (!o) return {
2210
2211
  element: null,
2211
2212
  hasMarker: !1
2212
2213
  };
2213
2214
  let s = o.closest?.(r);
2214
- if (s instanceof HTMLElement && $(s, n) && (!a || Yt(s, n))) return {
2215
+ if (s instanceof HTMLElement && Q(s, n) && (!a || $(s, n))) return {
2215
2216
  element: s,
2216
2217
  hasMarker: !0
2217
2218
  };
2218
2219
  let c = o, l = 0;
2219
2220
  for (; c && l < i;) {
2220
- if ($(c, n) && (!a || Yt(c, n))) return {
2221
+ if (Q(c, n) && (!a || $(c, n))) return {
2221
2222
  element: c,
2222
2223
  hasMarker: !1
2223
2224
  };
@@ -2228,7 +2229,7 @@ function qt(e, t) {
2228
2229
  hasMarker: !1
2229
2230
  };
2230
2231
  }
2231
- function Jt(e) {
2232
+ function Xt(e) {
2232
2233
  if (!e) return null;
2233
2234
  let t = e, n = typeof t.composedPath == "function" ? t.composedPath() : void 0;
2234
2235
  if (n && n.length) {
@@ -2236,18 +2237,18 @@ function Jt(e) {
2236
2237
  }
2237
2238
  return e instanceof HTMLElement ? e : null;
2238
2239
  }
2239
- function $(e, t) {
2240
+ function Q(e, t) {
2240
2241
  return t === "y" ? e.scrollHeight - e.clientHeight > 1 : e.scrollWidth - e.clientWidth > 1;
2241
2242
  }
2242
- function Yt(e, t) {
2243
- if (!$(e, t) || typeof window > "u") return !1;
2243
+ function $(e, t) {
2244
+ if (!Q(e, t) || typeof window > "u") return !1;
2244
2245
  let n = window.getComputedStyle(e), r = t === "y" ? n.overflowY : n.overflowX;
2245
2246
  return r === "auto" || r === "scroll" || r === "overlay";
2246
2247
  }
2247
2248
  //#endregion
2248
2249
  //#region src/core/engine/createSwipeController.ts
2249
- var Xt = "data-flemo-skip-animation";
2250
- function Zt(e) {
2250
+ var Zt = "data-flemo-skip-animation";
2251
+ function Qt(e) {
2251
2252
  let t = null, n = null, r = {
2252
2253
  current: [],
2253
2254
  prev: []
@@ -2309,7 +2310,7 @@ function Zt(e) {
2309
2310
  current: i,
2310
2311
  prev: s
2311
2312
  };
2312
- let c = We(e.getTransition()).join(", ");
2313
+ let c = Ge(e.getTransition()).join(", ");
2313
2314
  for (let e of i) e.style.willChange = c;
2314
2315
  for (let e of s) e.style.willChange = c;
2315
2316
  }, b = () => {
@@ -2327,7 +2328,7 @@ function Zt(e) {
2327
2328
  };
2328
2329
  }, S = (e, t, n) => {
2329
2330
  let r = (r, i) => {
2330
- let a = I.get(r.getAttribute("data-flemo-part-name"));
2331
+ let a = F.get(r.getAttribute("data-flemo-part-name"));
2331
2332
  if (!a) return;
2332
2333
  let o = {
2333
2334
  animate: q,
@@ -2410,15 +2411,13 @@ function Zt(e) {
2410
2411
  }), S("end", e, 0);
2411
2412
  }
2412
2413
  })) {
2413
- c?.setAttribute(Xt, "true"), l?.setAttribute(Xt, "true");
2414
+ c?.setAttribute(Zt, "true"), l?.setAttribute(Zt, "true");
2414
2415
  for (let e of r.current) e.style.removeProperty("will-change");
2415
2416
  for (let e of r.prev) K(e), e.style.removeProperty("will-change");
2416
2417
  r = {
2417
2418
  current: [],
2418
2419
  prev: []
2419
- };
2420
- for (let e of i.prev) K(e);
2421
- i = {
2420
+ }, i = {
2422
2421
  current: [],
2423
2422
  prev: []
2424
2423
  }, e.back();
@@ -2426,10 +2425,10 @@ function Zt(e) {
2426
2425
  };
2427
2426
  return {
2428
2427
  pointerDown: (t) => {
2429
- e.isReadyForDrag() && (f = qt(t.target, {
2428
+ e.isReadyForDrag() && (f = Yt(t.target, {
2430
2429
  direction: "x",
2431
2430
  verifyByScroll: !0
2432
- }), p = qt(t.target, {
2431
+ }), p = Yt(t.target, {
2433
2432
  direction: "y",
2434
2433
  verifyByScroll: !0
2435
2434
  }), m = t.clientX, h = t.clientY, (!f.element && !p.element || f.element || p.element) && (a = !0));
@@ -2458,7 +2457,7 @@ function Zt(e) {
2458
2457
  }
2459
2458
  //#endregion
2460
2459
  //#region src/screen/computeBarRiding.ts
2461
- function Qt(e) {
2460
+ function $t(e) {
2462
2461
  return !(e.status === "PUSHING" || e.status === "POPPING" || e.status === "REPLACING") || !e.isTopOrTopPrev ? {
2463
2462
  app: !1,
2464
2463
  nav: !1
@@ -2469,24 +2468,24 @@ function Qt(e) {
2469
2468
  }
2470
2469
  //#endregion
2471
2470
  //#region src/screen/animStartAnchor.ts
2472
- function $t(e) {
2471
+ function en(e) {
2473
2472
  return !(e.status === "PUSHING" || e.status === "POPPING" || e.status === "REPLACING") || !e.isTopOrTopPrev ? null : `${e.status}:${e.transitionName}`;
2474
2473
  }
2475
- var en = 300, tn = 20;
2476
- function nn(e) {
2477
- return Array.from(e.querySelectorAll("img")).filter((e) => e.complete && typeof e.decode == "function").slice(0, tn);
2478
- }
2474
+ var tn = 300, nn = 20;
2479
2475
  function rn(e) {
2480
- if (!(!e || typeof e.querySelectorAll != "function")) for (let t of nn(e)) t.decode().catch(() => {});
2476
+ return Array.from(e.querySelectorAll("img")).filter((e) => e.complete && typeof e.decode == "function").slice(0, nn);
2477
+ }
2478
+ function an(e) {
2479
+ if (!(!e || typeof e.querySelectorAll != "function")) for (let t of rn(e)) t.decode().catch(() => {});
2481
2480
  }
2482
- function an(e, t = {}) {
2481
+ function on(e, t = {}) {
2483
2482
  let n = !1, r = 0, i = [], a = () => {
2484
2483
  let r = t.scope;
2485
2484
  if (!r || typeof r.querySelectorAll != "function") {
2486
2485
  e();
2487
2486
  return;
2488
2487
  }
2489
- let i = nn(r);
2488
+ let i = rn(r);
2490
2489
  if (i.length === 0) {
2491
2490
  e();
2492
2491
  return;
@@ -2512,7 +2511,7 @@ function an(e, t = {}) {
2512
2511
  }
2513
2512
  //#endregion
2514
2513
  //#region src/screen/observeBarHeight.ts
2515
- function on(e, t) {
2514
+ function sn(e, t) {
2516
2515
  e.offsetHeight > 0 && t(e.offsetHeight);
2517
2516
  let n = new ResizeObserver(([e]) => {
2518
2517
  e.contentRect.height > 0 && t(e.contentRect.height);
@@ -2523,14 +2522,14 @@ function on(e, t) {
2523
2522
  }
2524
2523
  //#endregion
2525
2524
  //#region src/screen/observeViewportScrollHeight.ts
2526
- var sn = 0;
2527
- function cn(e) {
2525
+ var cn = 0;
2526
+ function ln(e) {
2528
2527
  let t = 0, n = () => {
2529
2528
  cancelAnimationFrame(t), t = requestAnimationFrame(() => {
2530
2529
  let t = document.documentElement.scrollHeight - (window.visualViewport?.height || 0);
2531
2530
  t = t < 0 ? 0 : t;
2532
- let n = t - sn;
2533
- n = n < 0 ? 0 : n, sn ||= t, e(t, n);
2531
+ let n = t - cn;
2532
+ n = n < 0 ? 0 : n, cn ||= t, e(t, n);
2534
2533
  });
2535
2534
  };
2536
2535
  return window.visualViewport?.addEventListener("resize", n), window.visualViewport?.addEventListener("scroll", n), () => {
@@ -2539,7 +2538,7 @@ function cn(e) {
2539
2538
  }
2540
2539
  //#endregion
2541
2540
  //#region src/utils/isOpaqueColor.ts
2542
- function ln(e) {
2541
+ function un(e) {
2543
2542
  let t = e.trim().toLowerCase();
2544
2543
  if (t === "transparent" || t === "") return !1;
2545
2544
  if (t.match(/^rgb\(\s*\d+[\s,]+\d+[\s,]+\d+\s*\)$/)) return !0;
@@ -2550,7 +2549,7 @@ function ln(e) {
2550
2549
  }
2551
2550
  //#endregion
2552
2551
  //#region src/utils/buildRoutePath.ts
2553
- function un(e, n) {
2552
+ function dn(e, n) {
2554
2553
  let i = n ?? {}, a = t(e)(Object.fromEntries(Object.entries(i).map(([e, t]) => [e, String(t)]))), o = (typeof e == "string" ? r(e) : e).tokens.filter((e) => e.type === "param").map((e) => e.name), s = Object.fromEntries(Object.entries(i).filter(([e]) => !o.includes(e))), c = new URLSearchParams(s).toString();
2555
2554
  return {
2556
2555
  pathname: `${a}${c ? `?${c}` : ""}`,
@@ -2558,4 +2557,4 @@ function un(e, n) {
2558
2557
  };
2559
2558
  }
2560
2559
  //#endregion
2561
- export { en as ANIM_HOLD_RELEASE_BACKSTOP_MS, Z as SKIP_ANIMATION_ATTR, o as TaskManger, $t as animHoldKey, q as animateInline, Ye as animationName, oe as appendParamsQuery, rt as applyTransitionStyles, un as buildRoutePath, Yt as canProgrammaticallyScroll, K as clearInlineAnimation, We as collectAnimatedProperties, $e as compileTransitionStyles, Qt as computeBarRiding, ge as computeScreenFreeze, y as consumeSelfInducedPop, h as createBrowserHistoryDriver, we as createDecorator, s as createHistoryStore, b as createHistorySync, ne as createMemoryHistoryDriver, re as createNavigateStore, ie as createNavigationController, De as createPartTransition, Te as createRawDecorator, Oe as createRawPartTransition, _e as createRawTransition, me as createRouterScope, he as createScreenSelector, de as createScreenStore, g as createSelfPopGuard, se as createStepController, Zt as createSwipeController, j as createTransition, Kt as createTransitionEngine, le as createTransitionStore, ye as cupertino, F as decoratorMap, rn as eagerlyDecodeImages, U as easingToCss, ee as ensureScopeHistorySync, f as ensureWindowHistoryState, ut as enteringInitialStyle, qt as findScrollable, c as getMatchedPathPattern, l as getParams, ln as isOpaqueColor, d as isServer, xe as layout, v as markSelfInducedPop, ue as matchesPathname, Se as material, Ce as none, on as observeBarHeight, cn as observeViewportScrollHeight, $ as overflowsAxis, Ee as overlay, I as partTransitionMap, ae as readStepParams, lt as registerTransitionDefinitions, te as releaseScopeHistorySync, N as resolveTransition, an as scheduleAnimHoldRelease, u as seedInitialHistory, p as seedRouterEntry, ce as subscribeStepParamsRestore, V as targetToDecls, M as transitionMap, tt as variantHasAnimation };
2560
+ export { tn as ANIM_HOLD_RELEASE_BACKSTOP_MS, X as SKIP_ANIMATION_ATTR, o as TaskManger, en as animHoldKey, q as animateInline, Xe as animationName, oe as appendParamsQuery, it as applyTransitionStyles, dn as buildRoutePath, $ as canProgrammaticallyScroll, K as clearInlineAnimation, Ge as collectAnimatedProperties, et as compileTransitionStyles, $t as computeBarRiding, ge as computeScreenFreeze, y as consumeSelfInducedPop, h as createBrowserHistoryDriver, Te as createDecorator, s as createHistoryStore, b as createHistorySync, ne as createMemoryHistoryDriver, re as createNavigateStore, ie as createNavigationController, Oe as createPartTransition, Ee as createRawDecorator, ke as createRawPartTransition, _e as createRawTransition, me as createRouterScope, he as createScreenSelector, de as createScreenStore, g as createSelfPopGuard, se as createStepController, Qt as createSwipeController, j as createTransition, Jt as createTransitionEngine, le as createTransitionStore, ye as cupertino, P as decoratorMap, an as eagerlyDecodeImages, H as easingToCss, ee as ensureScopeHistorySync, f as ensureWindowHistoryState, dt as enteringInitialStyle, Yt as findScrollable, c as getMatchedPathPattern, l as getParams, un as isOpaqueColor, d as isServer, xe as layout, v as markSelfInducedPop, ue as matchesPathname, Se as material, Ce as none, sn as observeBarHeight, ln as observeViewportScrollHeight, Q as overflowsAxis, De as overlay, F as partTransitionMap, ae as readStepParams, ut as registerTransitionDefinitions, te as releaseScopeHistorySync, we as resolveTransition, on as scheduleAnimHoldRelease, u as seedInitialHistory, p as seedRouterEntry, ce as subscribeStepParamsRestore, B as targetToDecls, M as transitionMap, nt as variantHasAnimation };
@@ -12,6 +12,7 @@ export type SettleWrite = (decl: CssDecl) => void;
12
12
  export interface SettleScrubber {
13
13
  settle: (element: HTMLElement, decls: CssDecl[], timing: SettleTiming, writeFinal: SettleWrite) => Promise<void> | null;
14
14
  takeover: (element: HTMLElement) => void;
15
+ cancel: (element: HTMLElement) => void;
15
16
  }
16
17
  export declare const createSettleScrubber: (scheduler?: SettleScheduler) => SettleScrubber;
17
18
  declare const settleScrubber: SettleScrubber;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flemo/core",
3
- "version": "1.15.0",
3
+ "version": "1.16.1",
4
4
  "description": "Framework-agnostic primitives for flemo: history, navigation, transitions, task manager.",
5
5
  "main": "./dist/index.mjs",
6
6
  "module": "./dist/index.mjs",