@digilogiclabs/saas-factory-ui 2.8.0 → 2.8.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/dist/index.d.mts +7 -2
- package/dist/index.d.ts +7 -2
- package/dist/index.js +119 -66
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +119 -66
- package/dist/index.mjs.map +1 -1
- package/dist/web/index.d.mts +7 -2
- package/dist/web/index.d.ts +7 -2
- package/dist/web/index.js +119 -66
- package/dist/web/index.js.map +1 -1
- package/dist/web/index.mjs +119 -66
- package/dist/web/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/web/index.d.mts
CHANGED
|
@@ -5148,7 +5148,9 @@ declare function TiltCard({ accent, accentSecondary, topLabel, icon, title, subt
|
|
|
5148
5148
|
* Features:
|
|
5149
5149
|
* - 1 to 6 dice; d6 renders as a full 3D cube (six faces, CSS
|
|
5150
5150
|
* transforms, standard layout — opposite faces sum to 7); d4/d8/
|
|
5151
|
-
* d10/d12/d20 render as
|
|
5151
|
+
* d10/d12/d20 render as two-sided 3D polyhedron cards (numeral
|
|
5152
|
+
* front + shaded back, hidden backfaces) that tumble on every
|
|
5153
|
+
* axis with the same chaos-snap-then-settle motion as the cube
|
|
5152
5154
|
* - Displayed face is structurally guaranteed to match the recorded
|
|
5153
5155
|
* value: the d6 landing rotation is DERIVED as the inverse of the
|
|
5154
5156
|
* face placement (one source of truth), and non-cube dice render
|
|
@@ -6462,7 +6464,10 @@ interface ScoreboardProps {
|
|
|
6462
6464
|
onBeforeNewGame?: () => boolean;
|
|
6463
6465
|
/** Max characters accepted in a team-name input. Unlimited by default. */
|
|
6464
6466
|
nameMaxLength?: number;
|
|
6465
|
-
/** Lower clamp for scores driven by the +/− buttons. Default −9999.
|
|
6467
|
+
/** Lower clamp for scores driven by the +/− buttons. Default −9999.
|
|
6468
|
+
* Seeded/resumed scores are NOT rewritten at init — an out-of-range
|
|
6469
|
+
* restored score renders as-is and snaps into range on the first
|
|
6470
|
+
* button press. Changing the bounds does not reset current scores. */
|
|
6466
6471
|
scoreMin?: number;
|
|
6467
6472
|
/** Upper clamp for scores driven by the +/− buttons. Default 9999. */
|
|
6468
6473
|
scoreMax?: number;
|
package/dist/web/index.d.ts
CHANGED
|
@@ -5148,7 +5148,9 @@ declare function TiltCard({ accent, accentSecondary, topLabel, icon, title, subt
|
|
|
5148
5148
|
* Features:
|
|
5149
5149
|
* - 1 to 6 dice; d6 renders as a full 3D cube (six faces, CSS
|
|
5150
5150
|
* transforms, standard layout — opposite faces sum to 7); d4/d8/
|
|
5151
|
-
* d10/d12/d20 render as
|
|
5151
|
+
* d10/d12/d20 render as two-sided 3D polyhedron cards (numeral
|
|
5152
|
+
* front + shaded back, hidden backfaces) that tumble on every
|
|
5153
|
+
* axis with the same chaos-snap-then-settle motion as the cube
|
|
5152
5154
|
* - Displayed face is structurally guaranteed to match the recorded
|
|
5153
5155
|
* value: the d6 landing rotation is DERIVED as the inverse of the
|
|
5154
5156
|
* face placement (one source of truth), and non-cube dice render
|
|
@@ -6462,7 +6464,10 @@ interface ScoreboardProps {
|
|
|
6462
6464
|
onBeforeNewGame?: () => boolean;
|
|
6463
6465
|
/** Max characters accepted in a team-name input. Unlimited by default. */
|
|
6464
6466
|
nameMaxLength?: number;
|
|
6465
|
-
/** Lower clamp for scores driven by the +/− buttons. Default −9999.
|
|
6467
|
+
/** Lower clamp for scores driven by the +/− buttons. Default −9999.
|
|
6468
|
+
* Seeded/resumed scores are NOT rewritten at init — an out-of-range
|
|
6469
|
+
* restored score renders as-is and snaps into range on the first
|
|
6470
|
+
* button press. Changing the bounds does not reset current scores. */
|
|
6466
6471
|
scoreMin?: number;
|
|
6467
6472
|
/** Upper clamp for scores driven by the +/− buttons. Default 9999. */
|
|
6468
6473
|
scoreMax?: number;
|
package/dist/web/index.js
CHANGED
|
@@ -30754,17 +30754,13 @@ function DiceRoller({
|
|
|
30754
30754
|
const starts = currentPositionsRef.current ?? defaultPositions(w, h, clampedCount);
|
|
30755
30755
|
const frames = simulateDice(w, h, effectiveSize, starts, clampedCount);
|
|
30756
30756
|
for (let i = 0; i < clampedCount; i++) {
|
|
30757
|
-
|
|
30758
|
-
|
|
30759
|
-
|
|
30760
|
-
|
|
30761
|
-
|
|
30762
|
-
|
|
30763
|
-
|
|
30764
|
-
);
|
|
30765
|
-
} else {
|
|
30766
|
-
writeCubeRotation(i, 0, 0, (Math.random() - 0.5) * 720, false);
|
|
30767
|
-
}
|
|
30757
|
+
writeCubeRotation(
|
|
30758
|
+
i,
|
|
30759
|
+
(Math.random() - 0.5) * 720,
|
|
30760
|
+
(Math.random() - 0.5) * 720,
|
|
30761
|
+
(Math.random() - 0.5) * 720,
|
|
30762
|
+
false
|
|
30763
|
+
);
|
|
30768
30764
|
const el = dieWrapperRefs.current[i];
|
|
30769
30765
|
if (el) el.style.transition = "none";
|
|
30770
30766
|
const shadow = shadowRefs.current[i];
|
|
@@ -30825,8 +30821,10 @@ function DiceRoller({
|
|
|
30825
30821
|
const lz = (Math.random() > 0.5 ? 1 : -1) * 360;
|
|
30826
30822
|
writeCubeRotation(i, lx, ly, lz, true, tilt);
|
|
30827
30823
|
} else {
|
|
30824
|
+
const lx = (Math.random() > 0.5 ? 1 : -1) * 720;
|
|
30825
|
+
const ly = (Math.random() > 0.5 ? 1 : -1) * 360;
|
|
30828
30826
|
const lz = (Math.random() > 0.5 ? 1 : -1) * 720 + tilt;
|
|
30829
|
-
writeCubeRotation(i,
|
|
30827
|
+
writeCubeRotation(i, lx, ly, lz, true);
|
|
30830
30828
|
}
|
|
30831
30829
|
}
|
|
30832
30830
|
});
|
|
@@ -30985,60 +30983,115 @@ function DiceRoller({
|
|
|
30985
30983
|
)) : (() => {
|
|
30986
30984
|
const shape = POLY_SHAPES[sides];
|
|
30987
30985
|
const shown = results?.[d] ?? sides;
|
|
30988
|
-
|
|
30989
|
-
"
|
|
30990
|
-
|
|
30991
|
-
|
|
30992
|
-
|
|
30993
|
-
|
|
30994
|
-
|
|
30995
|
-
|
|
30996
|
-
|
|
30997
|
-
|
|
30998
|
-
|
|
30999
|
-
|
|
31000
|
-
|
|
31001
|
-
|
|
31002
|
-
|
|
31003
|
-
|
|
31004
|
-
|
|
31005
|
-
|
|
31006
|
-
|
|
31007
|
-
|
|
31008
|
-
|
|
31009
|
-
|
|
31010
|
-
|
|
31011
|
-
|
|
31012
|
-
|
|
31013
|
-
|
|
31014
|
-
|
|
31015
|
-
|
|
31016
|
-
|
|
31017
|
-
|
|
31018
|
-
|
|
31019
|
-
|
|
31020
|
-
|
|
31021
|
-
|
|
31022
|
-
|
|
31023
|
-
|
|
31024
|
-
|
|
31025
|
-
|
|
31026
|
-
|
|
31027
|
-
|
|
31028
|
-
|
|
31029
|
-
|
|
31030
|
-
|
|
31031
|
-
|
|
31032
|
-
|
|
31033
|
-
|
|
31034
|
-
|
|
31035
|
-
|
|
31036
|
-
|
|
31037
|
-
|
|
31038
|
-
|
|
31039
|
-
|
|
31040
|
-
|
|
31041
|
-
|
|
30986
|
+
const cardFaceStyle = {
|
|
30987
|
+
position: "absolute",
|
|
30988
|
+
inset: 0,
|
|
30989
|
+
display: "block",
|
|
30990
|
+
overflow: "visible",
|
|
30991
|
+
backfaceVisibility: "hidden"
|
|
30992
|
+
};
|
|
30993
|
+
return /* @__PURE__ */ (0, import_jsx_runtime113.jsxs)(import_jsx_runtime113.Fragment, { children: [
|
|
30994
|
+
/* @__PURE__ */ (0, import_jsx_runtime113.jsxs)(
|
|
30995
|
+
"svg",
|
|
30996
|
+
{
|
|
30997
|
+
viewBox: "0 0 100 100",
|
|
30998
|
+
width: "100%",
|
|
30999
|
+
height: "100%",
|
|
31000
|
+
style: cardFaceStyle,
|
|
31001
|
+
"aria-hidden": "true",
|
|
31002
|
+
children: [
|
|
31003
|
+
/* @__PURE__ */ (0, import_jsx_runtime113.jsx)(
|
|
31004
|
+
"polygon",
|
|
31005
|
+
{
|
|
31006
|
+
points: shape.points,
|
|
31007
|
+
fill: colors.face,
|
|
31008
|
+
stroke: colors.faceBorder,
|
|
31009
|
+
strokeWidth: 2.5,
|
|
31010
|
+
strokeLinejoin: "round",
|
|
31011
|
+
style: { transition: "fill 0.3s, stroke 0.3s" }
|
|
31012
|
+
}
|
|
31013
|
+
),
|
|
31014
|
+
/* @__PURE__ */ (0, import_jsx_runtime113.jsx)(
|
|
31015
|
+
"polygon",
|
|
31016
|
+
{
|
|
31017
|
+
points: shape.points,
|
|
31018
|
+
fill: "none",
|
|
31019
|
+
stroke: colors.faceBorder,
|
|
31020
|
+
strokeWidth: 1.5,
|
|
31021
|
+
strokeLinejoin: "round",
|
|
31022
|
+
opacity: 0.55,
|
|
31023
|
+
transform: "translate(50 50) scale(0.76) translate(-50 -50)"
|
|
31024
|
+
}
|
|
31025
|
+
),
|
|
31026
|
+
/* @__PURE__ */ (0, import_jsx_runtime113.jsx)(
|
|
31027
|
+
"text",
|
|
31028
|
+
{
|
|
31029
|
+
ref: getNumeralSetter(d),
|
|
31030
|
+
x: 50,
|
|
31031
|
+
y: shape.textY,
|
|
31032
|
+
textAnchor: "middle",
|
|
31033
|
+
dominantBaseline: "central",
|
|
31034
|
+
fontSize: 100 * shape.fontScale,
|
|
31035
|
+
fontWeight: 800,
|
|
31036
|
+
fill: colors.pip,
|
|
31037
|
+
style: {
|
|
31038
|
+
fontVariantNumeric: "tabular-nums",
|
|
31039
|
+
transition: "fill 0.3s",
|
|
31040
|
+
userSelect: "none"
|
|
31041
|
+
},
|
|
31042
|
+
children: formatDieValue(shown, sides)
|
|
31043
|
+
}
|
|
31044
|
+
)
|
|
31045
|
+
]
|
|
31046
|
+
}
|
|
31047
|
+
),
|
|
31048
|
+
/* @__PURE__ */ (0, import_jsx_runtime113.jsxs)(
|
|
31049
|
+
"svg",
|
|
31050
|
+
{
|
|
31051
|
+
viewBox: "0 0 100 100",
|
|
31052
|
+
width: "100%",
|
|
31053
|
+
height: "100%",
|
|
31054
|
+
style: {
|
|
31055
|
+
...cardFaceStyle,
|
|
31056
|
+
transform: "rotateY(180deg)"
|
|
31057
|
+
},
|
|
31058
|
+
"aria-hidden": "true",
|
|
31059
|
+
children: [
|
|
31060
|
+
/* @__PURE__ */ (0, import_jsx_runtime113.jsx)(
|
|
31061
|
+
"polygon",
|
|
31062
|
+
{
|
|
31063
|
+
points: shape.points,
|
|
31064
|
+
fill: colors.face,
|
|
31065
|
+
stroke: colors.faceBorder,
|
|
31066
|
+
strokeWidth: 2.5,
|
|
31067
|
+
strokeLinejoin: "round",
|
|
31068
|
+
style: { transition: "fill 0.3s, stroke 0.3s" }
|
|
31069
|
+
}
|
|
31070
|
+
),
|
|
31071
|
+
/* @__PURE__ */ (0, import_jsx_runtime113.jsx)(
|
|
31072
|
+
"polygon",
|
|
31073
|
+
{
|
|
31074
|
+
points: shape.points,
|
|
31075
|
+
fill: "none",
|
|
31076
|
+
stroke: colors.faceBorder,
|
|
31077
|
+
strokeWidth: 1.5,
|
|
31078
|
+
strokeLinejoin: "round",
|
|
31079
|
+
opacity: 0.55,
|
|
31080
|
+
transform: "translate(50 50) scale(0.76) translate(-50 -50)"
|
|
31081
|
+
}
|
|
31082
|
+
),
|
|
31083
|
+
/* @__PURE__ */ (0, import_jsx_runtime113.jsx)(
|
|
31084
|
+
"polygon",
|
|
31085
|
+
{
|
|
31086
|
+
points: shape.points,
|
|
31087
|
+
fill: "#000",
|
|
31088
|
+
opacity: 0.14
|
|
31089
|
+
}
|
|
31090
|
+
)
|
|
31091
|
+
]
|
|
31092
|
+
}
|
|
31093
|
+
)
|
|
31094
|
+
] });
|
|
31042
31095
|
})()
|
|
31043
31096
|
}
|
|
31044
31097
|
)
|