@digilogiclabs/saas-factory-ui 2.9.0 → 2.9.2
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.mts +12 -1
- package/dist/index.d.ts +12 -1
- package/dist/index.js +81 -23
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +81 -23
- package/dist/index.mjs.map +1 -1
- package/dist/web/index.d.mts +12 -1
- package/dist/web/index.d.ts +12 -1
- package/dist/web/index.js +81 -23
- package/dist/web/index.js.map +1 -1
- package/dist/web/index.mjs +81 -23
- package/dist/web/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/web/index.mjs
CHANGED
|
@@ -30549,10 +30549,44 @@ function buildPolyhedron(sides) {
|
|
|
30549
30549
|
})
|
|
30550
30550
|
);
|
|
30551
30551
|
const faceInradius = Math.min(...built.map((f) => edgeDist(f.pts)));
|
|
30552
|
-
const
|
|
30552
|
+
const opposite = built.map((_, i) => oppOf(i));
|
|
30553
|
+
const result = {
|
|
30554
|
+
faces: built,
|
|
30555
|
+
opposite,
|
|
30556
|
+
faceRadius,
|
|
30557
|
+
faceInradius
|
|
30558
|
+
};
|
|
30553
30559
|
polyhedronCache.set(sides, result);
|
|
30554
30560
|
return result;
|
|
30555
30561
|
}
|
|
30562
|
+
function dealFaceValues(geo, sides, rolled) {
|
|
30563
|
+
const n = geo.faces.length;
|
|
30564
|
+
const out = new Array(n).fill(0);
|
|
30565
|
+
const used = /* @__PURE__ */ new Set([rolled]);
|
|
30566
|
+
out[0] = rolled;
|
|
30567
|
+
const opp0 = geo.opposite[0];
|
|
30568
|
+
if (opp0 >= 0) {
|
|
30569
|
+
out[opp0] = sides + 1 - rolled;
|
|
30570
|
+
used.add(sides + 1 - rolled);
|
|
30571
|
+
}
|
|
30572
|
+
const values = [];
|
|
30573
|
+
for (let v = 1; v <= sides; v++) if (!used.has(v)) values.push(v);
|
|
30574
|
+
for (let i = values.length - 1; i > 0; i--) {
|
|
30575
|
+
const j = Math.floor(Math.random() * (i + 1));
|
|
30576
|
+
[values[i], values[j]] = [values[j], values[i]];
|
|
30577
|
+
}
|
|
30578
|
+
for (let fi = 1; fi < n; fi++) {
|
|
30579
|
+
if (out[fi] !== 0) continue;
|
|
30580
|
+
const v = values.shift();
|
|
30581
|
+
out[fi] = v;
|
|
30582
|
+
const o = geo.opposite[fi];
|
|
30583
|
+
if (o >= 0 && out[o] === 0) {
|
|
30584
|
+
out[o] = sides + 1 - v;
|
|
30585
|
+
values.splice(values.indexOf(sides + 1 - v), 1);
|
|
30586
|
+
}
|
|
30587
|
+
}
|
|
30588
|
+
return out;
|
|
30589
|
+
}
|
|
30556
30590
|
function formatDieValue(v, sides) {
|
|
30557
30591
|
return sides > 8 && (v === 6 || v === 9) ? `${v}.` : String(v);
|
|
30558
30592
|
}
|
|
@@ -30738,7 +30772,7 @@ function DiceRoller({
|
|
|
30738
30772
|
const dieWrapperRefs = useRef40([]);
|
|
30739
30773
|
const cubeRefs = useRef40([]);
|
|
30740
30774
|
const shadowRefs = useRef40([]);
|
|
30741
|
-
const
|
|
30775
|
+
const faceTextRefs = useRef40([]);
|
|
30742
30776
|
const currentPositionsRef = useRef40(null);
|
|
30743
30777
|
const rollingRef = useRef40(false);
|
|
30744
30778
|
const dieSetters = useRef40([]);
|
|
@@ -30768,14 +30802,16 @@ function DiceRoller({
|
|
|
30768
30802
|
}
|
|
30769
30803
|
return shadowSetters.current[i];
|
|
30770
30804
|
};
|
|
30771
|
-
const
|
|
30772
|
-
const
|
|
30773
|
-
if (!
|
|
30774
|
-
|
|
30775
|
-
|
|
30805
|
+
const faceTextSetters = useRef40([]);
|
|
30806
|
+
const getFaceTextSetter = (i, fi) => {
|
|
30807
|
+
if (!faceTextSetters.current[i]) faceTextSetters.current[i] = [];
|
|
30808
|
+
if (!faceTextSetters.current[i][fi]) {
|
|
30809
|
+
faceTextSetters.current[i][fi] = (el) => {
|
|
30810
|
+
if (!faceTextRefs.current[i]) faceTextRefs.current[i] = [];
|
|
30811
|
+
faceTextRefs.current[i][fi] = el;
|
|
30776
30812
|
};
|
|
30777
30813
|
}
|
|
30778
|
-
return
|
|
30814
|
+
return faceTextSetters.current[i][fi];
|
|
30779
30815
|
};
|
|
30780
30816
|
const sheenGradientId = useId3();
|
|
30781
30817
|
const timersRef = useRef40([]);
|
|
@@ -30975,22 +31011,48 @@ function DiceRoller({
|
|
|
30975
31011
|
}, capturedStep * stepMs);
|
|
30976
31012
|
timersRef.current.push(timer);
|
|
30977
31013
|
}
|
|
31014
|
+
let dealtAll = null;
|
|
31015
|
+
const writeDealtValues = () => {
|
|
31016
|
+
if (!dealtAll) return;
|
|
31017
|
+
for (let i = 0; i < clampedCount; i++) {
|
|
31018
|
+
const texts = faceTextRefs.current[i];
|
|
31019
|
+
const dealt = dealtAll[i];
|
|
31020
|
+
if (!texts || !dealt) continue;
|
|
31021
|
+
for (let fi = 0; fi < dealt.length; fi++) {
|
|
31022
|
+
const el = texts[fi];
|
|
31023
|
+
if (el) el.textContent = formatDieValue(dealt[fi], sides);
|
|
31024
|
+
}
|
|
31025
|
+
}
|
|
31026
|
+
};
|
|
30978
31027
|
if (sides !== 6) {
|
|
30979
|
-
const
|
|
30980
|
-
|
|
31028
|
+
const geo = buildPolyhedron(sides);
|
|
31029
|
+
dealtAll = vals.map(
|
|
31030
|
+
(v) => dealFaceValues(geo, sides, v)
|
|
31031
|
+
);
|
|
31032
|
+
const finalAt = Math.floor(TUMBLE_MS * 0.72);
|
|
31033
|
+
const flickerTicks = 6;
|
|
31034
|
+
const flickerStep = Math.max(
|
|
31035
|
+
50,
|
|
31036
|
+
Math.floor((finalAt - 60) / flickerTicks)
|
|
31037
|
+
);
|
|
30981
31038
|
for (let f = 1; f <= flickerTicks; f++) {
|
|
30982
31039
|
const t = setTimeout(() => {
|
|
30983
31040
|
for (let i = 0; i < clampedCount; i++) {
|
|
30984
|
-
const
|
|
30985
|
-
if (
|
|
30986
|
-
|
|
30987
|
-
|
|
30988
|
-
|
|
30989
|
-
|
|
31041
|
+
const texts = faceTextRefs.current[i];
|
|
31042
|
+
if (!texts) continue;
|
|
31043
|
+
for (const el of texts) {
|
|
31044
|
+
if (el)
|
|
31045
|
+
el.textContent = formatDieValue(
|
|
31046
|
+
Math.floor(Math.random() * sides) + 1,
|
|
31047
|
+
sides
|
|
31048
|
+
);
|
|
31049
|
+
}
|
|
30990
31050
|
}
|
|
30991
31051
|
}, f * flickerStep);
|
|
30992
31052
|
timersRef.current.push(t);
|
|
30993
31053
|
}
|
|
31054
|
+
const finalTimer = setTimeout(writeDealtValues, finalAt);
|
|
31055
|
+
timersRef.current.push(finalTimer);
|
|
30994
31056
|
}
|
|
30995
31057
|
requestAnimationFrame(() => {
|
|
30996
31058
|
requestAnimationFrame(() => {
|
|
@@ -31012,12 +31074,7 @@ function DiceRoller({
|
|
|
31012
31074
|
});
|
|
31013
31075
|
});
|
|
31014
31076
|
const settleTimer = setTimeout(() => {
|
|
31015
|
-
|
|
31016
|
-
for (let i = 0; i < clampedCount; i++) {
|
|
31017
|
-
const el = numeralRefs.current[i];
|
|
31018
|
-
if (el) el.textContent = formatDieValue(vals[i], sides);
|
|
31019
|
-
}
|
|
31020
|
-
}
|
|
31077
|
+
writeDealtValues();
|
|
31021
31078
|
setResults(vals);
|
|
31022
31079
|
setRolling(false);
|
|
31023
31080
|
rollingRef.current = false;
|
|
@@ -31248,7 +31305,7 @@ function DiceRoller({
|
|
|
31248
31305
|
/* @__PURE__ */ jsx113(
|
|
31249
31306
|
"text",
|
|
31250
31307
|
{
|
|
31251
|
-
ref:
|
|
31308
|
+
ref: getFaceTextSetter(d, fi),
|
|
31252
31309
|
x: S / 2,
|
|
31253
31310
|
y: S / 2,
|
|
31254
31311
|
textAnchor: "middle",
|
|
@@ -44262,6 +44319,7 @@ export {
|
|
|
44262
44319
|
cssAnimations,
|
|
44263
44320
|
d6LandingRotation,
|
|
44264
44321
|
dailyTrendingConfig,
|
|
44322
|
+
dealFaceValues,
|
|
44265
44323
|
detectAuthProvider,
|
|
44266
44324
|
detectDelimiter,
|
|
44267
44325
|
detectHeader,
|