@jingx/three-dice-roll 1.0.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/style.css ADDED
@@ -0,0 +1 @@
1
+ .casino-stage{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;isolation:isolate}.casino-stage__sprite{background-image:var(--atlas-image);background-repeat:no-repeat;background-size:var(--atlas-size);background-position:var(--atlas-position)}.casino-stage__table{position:absolute;left:49%;top:50%;width:max(100vw,140vh);aspect-ratio:700 / 500;transform:translate(-50%,-50%);filter:saturate(1.04);z-index:1}.casino-stage__plate{position:absolute;left:50%;top:60%;width:min(40vw,22rem);aspect-ratio:365 / 500;transform:translate(-50%,-50%);filter:drop-shadow(0 1.4rem 2rem rgba(0,0,0,.38));z-index:2}.casino-stage__felt{position:absolute;left:50%;top:50%;width:48%;aspect-ratio:1 / 1;transform:translate(-50%,-44%);border-radius:50%;background:radial-gradient(circle at 50% 42%,rgba(255,255,255,.08),transparent 44%),radial-gradient(circle at 50% 50%,#133a1df2,#07120cf2);box-shadow:inset 0 0 1.4rem #0006,0 0 0 .18rem #00000029;z-index:1}.casino-stage__dome{position:absolute;left:50%;top:53%;width:min(44vw,26rem);aspect-ratio:.82 / 1;transform:translate(-50%,-50%);border-radius:50% 50% 45% 45%/58% 58% 42% 45%;background:linear-gradient(90deg,#ffffff05,#ffffff29,#ffffff05),radial-gradient(circle at 50% 8%,#ffffff59,#fff0 28%),radial-gradient(circle at 50% 50%,#ffffff0f,#ffffff04 65%,#ffffff17);border:.1rem solid rgba(255,255,255,.18);box-shadow:inset 0 0 2rem #ffffff0d,0 .7rem 2rem #0000001f;opacity:.9;pointer-events:none;z-index:5}.casino-stage__countdown{position:absolute;left:10%;top:10%;min-width:7.2rem;padding:.5rem .9rem .65rem;transform:translate(-50%,-50%);border-radius:1rem;background:linear-gradient(180deg,#f3d992,#c79a33 52%,#8d6020);box-shadow:0 .55rem 1.2rem #00000042,inset 0 .12rem #fffceab8,inset 0 -.18rem #5732075c;text-align:center;pointer-events:none;transform-origin:center}.casino-stage__countdown:before{content:"";position:absolute;top:.28rem;right:.28rem;bottom:.28rem;left:.28rem;border-radius:.78rem;background:linear-gradient(180deg,#261a09e0,#0c0a08f5);box-shadow:inset 0 0 0 .08rem #ffdb8f2e,inset 0 .22rem .6rem #ffce7414}.casino-stage__countdown-label,.casino-stage__countdown-value{position:relative;z-index:1}.casino-stage__countdown-label{font-size:.56rem;font-weight:800;letter-spacing:.28em;color:#f3d89c;opacity:.95}.casino-stage__countdown-value{margin-top:.1rem;font-size:2rem;line-height:1;font-weight:900;color:#ffefb8;text-shadow:0 0 .2rem rgba(255,214,111,.65),0 0 .85rem rgba(255,147,37,.22);font-variant-numeric:tabular-nums}.casino-stage__countdown.is-paused .casino-stage__countdown-value{opacity:.46}.casino-stage__dice-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;pointer-events:none}.casino-stage__button{position:absolute;left:clamp(2.5rem,9vw,7rem);top:clamp(4rem,15vh,8rem);width:clamp(5rem,8vw,6.5rem);aspect-ratio:1 / 1;border:0;background:transparent;padding:0;cursor:pointer;z-index:7}.casino-stage__button-base,.casino-stage__button-cap{position:absolute;left:68%;transform:translate(-50%);display:block;transition:transform var(--button-press-ms, .15s) cubic-bezier(.2,.8,.25,1)}.casino-stage__button-base{bottom:-55px;width:88px;height:64px}.casino-stage__button-cap{bottom:-25px;width:96px;height:78px}.casino-stage__hand{position:absolute;left:clamp(5rem,12vw,10rem);top:clamp(1rem,4vh,2rem);width:150px;height:210px;transform:translateZ(0) rotate(7deg);transform-origin:78% 12%;transition:transform var(--hand-return-ms, .34s) cubic-bezier(.2,.7,.2,1),filter .18s ease;filter:drop-shadow(0 .35rem .4rem rgba(0,0,0,.14));pointer-events:none;z-index:8}.casino-stage.is-hand-approach .casino-stage__hand{transition-duration:var(--hand-approach-ms, .42s);transition-timing-function:cubic-bezier(.22,.84,.28,1);transform:translate3d(var(--hand-approach-x, 0px),var(--hand-approach-y, 0px),0) rotate(-11deg) scale(1.01)}.casino-stage.is-hand-press .casino-stage__hand{transition-duration:var(--hand-press-ms, .15s);transition-timing-function:cubic-bezier(.18,.8,.24,1);transform:translate3d(var(--hand-press-x, 0px),var(--hand-press-y, 0px),0) rotate(-15deg) scale(.995);filter:drop-shadow(0 .2rem .28rem rgba(0,0,0,.1))}.casino-stage.is-hand-return .casino-stage__hand{transition-duration:var(--hand-return-ms, .34s);transition-timing-function:cubic-bezier(.25,.68,.18,1);transform:translateZ(0) rotate(5deg)}.casino-stage.is-button-press .casino-stage__button-cap{transform:translate(-50%) translateY(.38rem) scaleY(.92)}@media (max-width: 900px){.casino-stage__plate{width:min(56vw,20rem);top:64%}.casino-stage__dome{width:min(64vw,22rem);top:57%}.casino-stage__hand{transform-origin:85% 14%;scale:.88}}
package/package.json ADDED
@@ -0,0 +1,59 @@
1
+ {
2
+ "name": "@jingx/three-dice-roll",
3
+ "version": "1.0.0",
4
+ "description": "Reusable Three.js dice roll component with deterministic final face results.",
5
+ "type": "module",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+ssh://git@gitlab.com/spacex3303439/npm-sicbo.git"
9
+ },
10
+ "main": "./dist/index.cjs",
11
+ "module": "./dist/index.js",
12
+ "types": "./dist/index.d.ts",
13
+ "sideEffects": [
14
+ "**/*.css"
15
+ ],
16
+ "files": [
17
+ "dist"
18
+ ],
19
+ "exports": {
20
+ ".": {
21
+ "types": "./dist/index.d.ts",
22
+ "import": "./dist/index.js",
23
+ "require": "./dist/index.cjs",
24
+ "default": "./dist/index.js"
25
+ },
26
+ "./style.css": "./dist/style.css"
27
+ },
28
+ "publishConfig": {
29
+ "access": "public"
30
+ },
31
+ "engines": {
32
+ "node": ">=18.18.0"
33
+ },
34
+ "keywords": [
35
+ "three",
36
+ "threejs",
37
+ "dice",
38
+ "component",
39
+ "3d",
40
+ "animation"
41
+ ],
42
+ "scripts": {
43
+ "dev": "vite",
44
+ "build": "npm run build:lib",
45
+ "build:demo": "vite build --outDir demo-dist",
46
+ "build:lib": "vite build --config vite.lib.config.js && node -e \"require('node:fs').copyFileSync('src/lib/index.d.ts', 'dist/index.d.ts')\"",
47
+ "preview": "vite preview",
48
+ "prepack": "npm run build:lib",
49
+ "prepublishOnly": "npm run build:lib",
50
+ "publish:dry-run": "npm run build:lib && npm pack --dry-run"
51
+ },
52
+ "peerDependencies": {
53
+ "three": "^0.181.1"
54
+ },
55
+ "devDependencies": {
56
+ "three": "^0.181.1",
57
+ "vite": "^5.4.19"
58
+ }
59
+ }