Packages
corex
0.1.1
0.1.2
0.1.1
0.1.0
0.1.0-rc.1
0.1.0-rc.0
0.1.0-beta.5
0.1.0-beta.4
0.1.0-beta.3
0.1.0-beta.2
0.1.0-beta.1
0.1.0-alpha.33
0.1.0-alpha.32
0.1.0-alpha.31
0.1.0-alpha.30
0.1.0-alpha.29
0.1.0-alpha.28
0.1.0-alpha.27
0.1.0-alpha.26
0.1.0-alpha.25
0.1.0-alpha.24
0.1.0-alpha.23
0.1.0-alpha.22
0.1.0-alpha.21
0.1.0-alpha.20
0.1.0-alpha.19
0.1.0-alpha.18
0.1.0-alpha.17
0.1.0-alpha.16
0.1.0-alpha.15
0.1.0-alpha.14
0.1.0-alpha.13
0.1.0-alpha.12
0.1.0-alpha.11
0.1.0-alpha.10
0.1.0-alpha.9
0.1.0-alpha.8
0.1.0-alpha.7
0.1.0-alpha.6
0.1.0-alpha.5
0.1.0-alpha.4
0.1.0-alpha.3
0.1.0-alpha.2
0.1.0-alpha.1
Accessible and unstyled UI components library written in Elixir and TypeScript that integrates Zag.js state machines into the Phoenix Framework.
Current section
Files
Jump to
Current section
Files
priv/static/chunks/chunk-GFGOJ2RY.mjs
import {
__privateAdd,
__privateGet,
__publicField
} from "./chunk-2GQRP3FN.mjs";
// ../node_modules/.pnpm/@zag-js+utils@1.40.0/node_modules/@zag-js/utils/dist/timers.mjs
var currentTime = () => performance.now();
var _tick;
var Timer = class {
constructor(onTick) {
__publicField(this, "onTick", onTick);
__publicField(this, "frameId", null);
__publicField(this, "pausedAtMs", null);
__publicField(this, "context");
__publicField(this, "cancelFrame", () => {
if (this.frameId === null) return;
cancelAnimationFrame(this.frameId);
this.frameId = null;
});
__publicField(this, "setStartMs", (startMs) => {
this.context.startMs = startMs;
});
__publicField(this, "start", () => {
if (this.frameId !== null) return;
const now = currentTime();
if (this.pausedAtMs !== null) {
this.context.startMs += now - this.pausedAtMs;
this.pausedAtMs = null;
} else {
this.context.startMs = now;
}
this.frameId = requestAnimationFrame(__privateGet(this, _tick));
});
__publicField(this, "pause", () => {
if (this.frameId === null) return;
this.cancelFrame();
this.pausedAtMs = currentTime();
});
__publicField(this, "stop", () => {
if (this.frameId === null) return;
this.cancelFrame();
this.pausedAtMs = null;
});
__privateAdd(this, _tick, (now) => {
this.context.now = now;
this.context.deltaMs = now - this.context.startMs;
const shouldContinue = this.onTick(this.context);
if (shouldContinue === false) {
this.stop();
return;
}
this.frameId = requestAnimationFrame(__privateGet(this, _tick));
});
this.context = { now: 0, startMs: currentTime(), deltaMs: 0 };
}
get elapsedMs() {
if (this.pausedAtMs !== null) {
return this.pausedAtMs - this.context.startMs;
}
return currentTime() - this.context.startMs;
}
};
_tick = /* @__PURE__ */ new WeakMap();
function setRafInterval(fn, intervalMs) {
const timer = new Timer(({ now, deltaMs }) => {
if (deltaMs >= intervalMs) {
const startMs = intervalMs > 0 ? now - deltaMs % intervalMs : now;
timer.setStartMs(startMs);
fn({ startMs, deltaMs });
}
});
timer.start();
return () => timer.stop();
}
function setRafTimeout(fn, delayMs) {
const timer = new Timer(({ deltaMs }) => {
if (deltaMs >= delayMs) {
fn();
return false;
}
});
timer.start();
return () => timer.stop();
}
export {
setRafInterval,
setRafTimeout
};