{"_id":"@dreamboard-games/ui-sdk","_rev":"7-e6fc3b97eda28267fbe0ed61ec49b266","name":"@dreamboard-games/ui-sdk","dist-tags":{"latest":"0.0.48"},"versions":{"0.0.41":{"name":"@dreamboard-games/ui-sdk","version":"0.0.41","license":"SEE LICENSE IN LICENSE","_id":"@dreamboard-games/ui-sdk@0.0.41","maintainers":[{"name":"ctan1345","email":"ctan1345@uni.sydney.edu.au"}],"homepage":"http://dreamboard.games/","bugs":{"url":"https://github.com/dreamboard-games/dreamboard/issues"},"dist":{"shasum":"8d683034b444ec97e4d595401474687292f510cb","tarball":"https://registry.npmjs.org/@dreamboard-games/ui-sdk/-/ui-sdk-0.0.41.tgz","fileCount":533,"integrity":"sha512-tZI6exjdN/stAQs3xPRxgxCVzX/gWO3oE4Hq8KFBsBBH5E9VGmbp+zTc3MugBe6haR8WjopiGZ4YpojfrxNG1g==","signatures":[{"sig":"MEUCIBRXX7466t8g+OEyvgIcurYgCRmzJpPkCH1B+U1Nb41sAiEA++YHzaFJcS9Ljz6it5SNn8Gdpav4mIfVNwD8KXsMqeI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2512805},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.ts","import":"./dist/index.js"},"./reducer":{"bun":"./src/reducer.ts","types":"./dist/reducer.d.ts","import":"./dist/reducer.js"},"./defaults":{"bun":"./src/defaults/index.ts","types":"./dist/defaults/index.d.ts","import":"./dist/defaults/index.js"},"./internal":{"bun":"./src/internal.ts","types":"./dist/internal.d.ts","import":"./dist/internal.js"},"./components":{"bun":"./src/components/index.ts","types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./primitives":{"bun":"./src/primitives/index.ts","types":"./dist/primitives/index.d.ts","import":"./dist/primitives/index.js"},"./package.json":"./package.json","./plugin-styles.css":"./dist/plugin-styles.css","./types/runtime-api":{"bun":"./src/types/runtime-api.ts","types":"./dist/types/runtime-api.d.ts","import":"./dist/types/runtime-api.js"}},"gitHead":"404337a31fa0cc99d50ec71b188a98bea18f1dd5","scripts":{"dev":"cosmos","lint":"eslint src --ext .ts,.tsx","test":"bun test","build":"rm -rf dist tsconfig.tsbuildinfo && tsc -b && cp src/plugin-styles.css dist/plugin-styles.css && rollup -c rollup.config.js","clean":"rm -rf dist","cosmos":"cosmos","lint:fix":"eslint src --ext .ts,.tsx --fix","postbuild":"echo '✅ Generated ui-sdk.d.ts'","test:unit":"bun test","typecheck":"tsc -b --pretty false","cosmos:export":"cosmos-export"},"_npmUser":{"name":"ctan1345","email":"ctan1345@uni.sydney.edu.au"},"repository":{"url":"git+https://github.com/dreamboard-games/dreamboard.git","type":"git"},"_npmVersion":"11.11.0","description":"UI SDK for dreamboard plugin development","directories":{},"_nodeVersion":"25.8.1","dependencies":{"clsx":"^2.1.1","vaul":"^1.1.2","react":"^19.2.0","zustand":"^5.0.4","tailwindcss":"^4.1.5","lucide-react":"^0.562.0","framer-motion":"^11.15.0","@use-gesture/react":"^10.3.1","@radix-ui/react-slot":"^1.1.2","@dreamboard/sdk-types":"npm:@dreamboard-games/sdk-types@0.1.0","@radix-ui/react-label":"^2.1.6","@radix-ui/react-dialog":"^1.1.14","@radix-ui/react-select":"^2.2.5","@radix-ui/react-tooltip":"^1.2.8","@radix-ui/react-accordion":"^1.2.12"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"zod":"4.4.3","react":"^19.0.0","framer-motion":"^11.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ui-sdk_0.0.41_1779234126932_0.15078552762555542","host":"s3://npm-registry-packages-npm-production"}},"0.0.42":{"name":"@dreamboard-games/ui-sdk","version":"0.0.42","license":"SEE LICENSE IN LICENSE","_id":"@dreamboard-games/ui-sdk@0.0.42","maintainers":[{"name":"ctan1345","email":"ctan1345@uni.sydney.edu.au"}],"homepage":"http://dreamboard.games/","bugs":{"url":"https://github.com/dreamboard-games/dreamboard/issues"},"dist":{"shasum":"3dfbc06e832ab611378d2477d42a738ac4006cd6","tarball":"https://registry.npmjs.org/@dreamboard-games/ui-sdk/-/ui-sdk-0.0.42.tgz","fileCount":533,"integrity":"sha512-GDpkOL+0W9kOVaxQWHWfw2uLz9OuGApVTD4nBf/IyYPAaQP51FMT9Dw3653eSOr+PHRp7EjwdJmUEq3aZIhcFQ==","signatures":[{"sig":"MEQCIHRuFcZP89fd+SJTCOhs2YHjTqblTwhUg+kqZTdQ/cWKAiBh+Rff78wE0RKmTnR5s1jPsZHFH9jcq8VpnaHz1rjEMA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2512805},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.ts","import":"./dist/index.js"},"./reducer":{"bun":"./src/reducer.ts","types":"./dist/reducer.d.ts","import":"./dist/reducer.js"},"./defaults":{"bun":"./src/defaults/index.ts","types":"./dist/defaults/index.d.ts","import":"./dist/defaults/index.js"},"./internal":{"bun":"./src/internal.ts","types":"./dist/internal.d.ts","import":"./dist/internal.js"},"./components":{"bun":"./src/components/index.ts","types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./primitives":{"bun":"./src/primitives/index.ts","types":"./dist/primitives/index.d.ts","import":"./dist/primitives/index.js"},"./package.json":"./package.json","./plugin-styles.css":"./dist/plugin-styles.css","./types/runtime-api":{"bun":"./src/types/runtime-api.ts","types":"./dist/types/runtime-api.d.ts","import":"./dist/types/runtime-api.js"}},"gitHead":"404337a31fa0cc99d50ec71b188a98bea18f1dd5","scripts":{"dev":"cosmos","lint":"eslint src --ext .ts,.tsx","test":"bun test","build":"rm -rf dist tsconfig.tsbuildinfo && tsc -b && cp src/plugin-styles.css dist/plugin-styles.css && rollup -c rollup.config.js","clean":"rm -rf dist","cosmos":"cosmos","lint:fix":"eslint src --ext .ts,.tsx --fix","postbuild":"echo '✅ Generated ui-sdk.d.ts'","test:unit":"bun test","typecheck":"tsc -b --pretty false","cosmos:export":"cosmos-export"},"_npmUser":{"name":"ctan1345","email":"ctan1345@uni.sydney.edu.au"},"repository":{"url":"git+https://github.com/dreamboard-games/dreamboard.git","type":"git"},"_npmVersion":"11.11.0","description":"UI SDK for dreamboard plugin development","directories":{},"_nodeVersion":"25.8.1","dependencies":{"clsx":"^2.1.1","vaul":"^1.1.2","react":"^19.2.0","zustand":"^5.0.4","tailwindcss":"^4.1.5","lucide-react":"^0.562.0","framer-motion":"^11.15.0","@use-gesture/react":"^10.3.1","@radix-ui/react-slot":"^1.1.2","@dreamboard/sdk-types":"npm:@dreamboard-games/sdk-types@0.1.1","@radix-ui/react-label":"^2.1.6","@radix-ui/react-dialog":"^1.1.14","@radix-ui/react-select":"^2.2.5","@radix-ui/react-tooltip":"^1.2.8","@radix-ui/react-accordion":"^1.2.12"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"zod":"4.4.3","react":"^19.0.0","framer-motion":"^11.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ui-sdk_0.0.42_1779234777916_0.7508113261532876","host":"s3://npm-registry-packages-npm-production"}},"0.0.43":{"name":"@dreamboard-games/ui-sdk","version":"0.0.43","license":"SEE LICENSE IN LICENSE","_id":"@dreamboard-games/ui-sdk@0.0.43","maintainers":[{"name":"ctan1345","email":"ctan1345@uni.sydney.edu.au"}],"homepage":"http://dreamboard.games/","bugs":{"url":"https://github.com/dreamboard-games/dreamboard/issues"},"dist":{"shasum":"2afa7df3acb264f728255d4735d882f39c2007ad","tarball":"https://registry.npmjs.org/@dreamboard-games/ui-sdk/-/ui-sdk-0.0.43.tgz","fileCount":533,"integrity":"sha512-pAgAJOzSnXLWIun7lED0ZU4WvS95aCsfB6nOdmj7jf6Q0YOhnJ+1O9WSo1G+0fAHJr/0nYomu/BI1DYAzv2Feg==","signatures":[{"sig":"MEYCIQC9qvu1tRsQ7J0/+EiR44i7el+gh9gO9uKZGqPKQ85zAgIhAPTFhDVjubRvRHH9JqZxzpP2Nos/6c3/C4KjiO14JNQg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2512805},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.ts","import":"./dist/index.js"},"./reducer":{"bun":"./src/reducer.ts","types":"./dist/reducer.d.ts","import":"./dist/reducer.js"},"./defaults":{"bun":"./src/defaults/index.ts","types":"./dist/defaults/index.d.ts","import":"./dist/defaults/index.js"},"./internal":{"bun":"./src/internal.ts","types":"./dist/internal.d.ts","import":"./dist/internal.js"},"./components":{"bun":"./src/components/index.ts","types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./primitives":{"bun":"./src/primitives/index.ts","types":"./dist/primitives/index.d.ts","import":"./dist/primitives/index.js"},"./package.json":"./package.json","./plugin-styles.css":"./dist/plugin-styles.css","./types/runtime-api":{"bun":"./src/types/runtime-api.ts","types":"./dist/types/runtime-api.d.ts","import":"./dist/types/runtime-api.js"}},"gitHead":"ca65bc2d6f69b23416502aa907fb54601eb6daa1","scripts":{"dev":"cosmos","lint":"eslint src --ext .ts,.tsx","test":"bun test","build":"rm -rf dist tsconfig.tsbuildinfo && tsc -b && cp src/plugin-styles.css dist/plugin-styles.css && rollup -c rollup.config.js","clean":"rm -rf dist","cosmos":"cosmos","lint:fix":"eslint src --ext .ts,.tsx --fix","postbuild":"echo '✅ Generated ui-sdk.d.ts'","test:unit":"bun test","typecheck":"tsc -b --pretty false","cosmos:export":"cosmos-export"},"_npmUser":{"name":"ctan1345","email":"ctan1345@uni.sydney.edu.au"},"repository":{"url":"git+https://github.com/dreamboard-games/dreamboard.git","type":"git"},"_npmVersion":"11.11.0","description":"UI SDK for dreamboard plugin development","directories":{},"_nodeVersion":"25.8.1","dependencies":{"clsx":"^2.1.1","vaul":"^1.1.2","react":"^19.2.0","zustand":"^5.0.4","tailwindcss":"^4.1.5","lucide-react":"^0.562.0","framer-motion":"^11.15.0","@use-gesture/react":"^10.3.1","@radix-ui/react-slot":"^1.1.2","@dreamboard/sdk-types":"npm:@dreamboard-games/sdk-types@0.1.2","@radix-ui/react-label":"^2.1.6","@radix-ui/react-dialog":"^1.1.14","@radix-ui/react-select":"^2.2.5","@radix-ui/react-tooltip":"^1.2.8","@radix-ui/react-accordion":"^1.2.12"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"zod":"4.4.3","react":"^19.0.0","framer-motion":"^11.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ui-sdk_0.0.43_1779257619541_0.17172489880847785","host":"s3://npm-registry-packages-npm-production"}},"0.0.45":{"name":"@dreamboard-games/ui-sdk","version":"0.0.45","license":"SEE LICENSE IN LICENSE","_id":"@dreamboard-games/ui-sdk@0.0.45","maintainers":[{"name":"ctan1345","email":"ctan1345@uni.sydney.edu.au"}],"homepage":"http://dreamboard.games/","bugs":{"url":"https://github.com/dreamboard-games/dreamboard/issues"},"dist":{"shasum":"42a464c06ca95e86eb216d0afacacee873c35c98","tarball":"https://registry.npmjs.org/@dreamboard-games/ui-sdk/-/ui-sdk-0.0.45.tgz","fileCount":574,"integrity":"sha512-BBb8a9/33iu0VoaLeoLe7A/aIy+hL5YMy/Ms3A+me1chd9GDHky1tdF7YiZ+Ildvpvf90HWAWVv/uViJD8xd/w==","signatures":[{"sig":"MEYCIQCuTwJrJ2En5KE2w8S6XsI4osImIawbFO4fcwMsnXEaYwIhAN+ZAVv1Vq/igPsqJKXgOZM5wU/IumNod9eVmvaQnFxc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2783052},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.ts","import":"./dist/index.js"},"./reducer":{"bun":"./src/reducer.ts","types":"./dist/reducer.d.ts","import":"./dist/reducer.js"},"./defaults":{"bun":"./src/defaults/index.ts","types":"./dist/defaults/index.d.ts","import":"./dist/defaults/index.js"},"./internal":{"bun":"./src/internal.ts","types":"./dist/internal.d.ts","import":"./dist/internal.js"},"./components":{"bun":"./src/components/index.ts","types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./primitives":{"bun":"./src/primitives/index.ts","types":"./dist/primitives/index.d.ts","import":"./dist/primitives/index.js"},"./package.json":"./package.json","./plugin-styles.css":"./dist/plugin-styles.css","./types/runtime-api":{"bun":"./src/types/runtime-api.ts","types":"./dist/types/runtime-api.d.ts","import":"./dist/types/runtime-api.js"}},"gitHead":"ca65bc2d6f69b23416502aa907fb54601eb6daa1","scripts":{"dev":"cosmos","lint":"eslint src --ext .ts,.tsx","test":"bun test","build":"rm -rf dist tsconfig.tsbuildinfo && tsc -b && cp src/plugin-styles.css dist/plugin-styles.css && rollup -c rollup.config.js","clean":"rm -rf dist","cosmos":"cosmos","lint:fix":"eslint src --ext .ts,.tsx --fix","postbuild":"echo '✅ Generated ui-sdk.d.ts'","test:unit":"bun test","typecheck":"tsc -b --pretty false","cosmos:export":"cosmos-export"},"_npmUser":{"name":"ctan1345","email":"ctan1345@uni.sydney.edu.au"},"repository":{"url":"git+https://github.com/dreamboard-games/dreamboard.git","type":"git"},"_npmVersion":"11.11.0","description":"UI SDK for dreamboard plugin development","directories":{},"_nodeVersion":"25.8.1","dependencies":{"clsx":"^2.1.1","vaul":"^1.1.2","react":"^19.2.0","zustand":"^5.0.4","tailwindcss":"^4.1.5","lucide-react":"^0.562.0","framer-motion":"^11.15.0","@use-gesture/react":"^10.3.1","@radix-ui/react-slot":"^1.1.2","@dreamboard/sdk-types":"npm:@dreamboard-games/sdk-types@0.1.2","@radix-ui/react-label":"^2.1.6","@radix-ui/react-dialog":"^1.1.14","@radix-ui/react-select":"^2.2.5","@radix-ui/react-tooltip":"^1.2.8","@radix-ui/react-accordion":"^1.2.12"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"zod":"4.4.3","react":"^19.0.0","framer-motion":"^11.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ui-sdk_0.0.45_1779263566899_0.4647448189827428","host":"s3://npm-registry-packages-npm-production"}},"0.0.46":{"name":"@dreamboard-games/ui-sdk","version":"0.0.46","license":"SEE LICENSE IN LICENSE","_id":"@dreamboard-games/ui-sdk@0.0.46","maintainers":[{"name":"ctan1345","email":"ctan1345@uni.sydney.edu.au"}],"homepage":"http://dreamboard.games/","bugs":{"url":"https://github.com/dreamboard-games/dreamboard/issues"},"dist":{"shasum":"d35fd99d4b7684907f5663e7e7b1164b942a5ee7","tarball":"https://registry.npmjs.org/@dreamboard-games/ui-sdk/-/ui-sdk-0.0.46.tgz","fileCount":580,"integrity":"sha512-06Ui+57QIqc9E8C3u35W1Jmff5HLmOWecLFgnCDqvwgHhGQ2ODDRrEiE0oGJMkgpVXGKCknn6KUCZnq+WJO6lg==","signatures":[{"sig":"MEUCIHjGM8REfwAUW5lLg7PLPNFFH8szNGfuFdVUIi7+F0fRAiEAz58Ry+MXuhQYbtFZb0iuDOR1tmGxfbfDAf3Zh4f+Ri4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2796245},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.ts","import":"./dist/index.js"},"./reducer":{"bun":"./src/reducer.ts","types":"./dist/reducer.d.ts","import":"./dist/reducer.js"},"./defaults":{"bun":"./src/defaults/index.ts","types":"./dist/defaults/index.d.ts","import":"./dist/defaults/index.js"},"./internal":{"bun":"./src/internal.ts","types":"./dist/internal.d.ts","import":"./dist/internal.js"},"./components":{"bun":"./src/components/index.ts","types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./primitives":{"bun":"./src/primitives/index.ts","types":"./dist/primitives/index.d.ts","import":"./dist/primitives/index.js"},"./package.json":"./package.json","./plugin-styles.css":"./dist/plugin-styles.css","./types/runtime-api":{"bun":"./src/types/runtime-api.ts","types":"./dist/types/runtime-api.d.ts","import":"./dist/types/runtime-api.js"}},"gitHead":"ca65bc2d6f69b23416502aa907fb54601eb6daa1","scripts":{"dev":"cosmos","lint":"eslint src --ext .ts,.tsx","test":"bun test","build":"rm -rf dist tsconfig.tsbuildinfo && tsc -b && cp src/plugin-styles.css dist/plugin-styles.css && rollup -c rollup.config.js","clean":"rm -rf dist","cosmos":"cosmos","lint:fix":"eslint src --ext .ts,.tsx --fix","postbuild":"echo '✅ Generated ui-sdk.d.ts'","test:unit":"bun test","typecheck":"tsc -b --pretty false","cosmos:export":"cosmos-export"},"_npmUser":{"name":"ctan1345","email":"ctan1345@uni.sydney.edu.au"},"repository":{"url":"git+https://github.com/dreamboard-games/dreamboard.git","type":"git"},"_npmVersion":"11.11.0","description":"UI SDK for dreamboard plugin development","directories":{},"_nodeVersion":"25.8.1","dependencies":{"clsx":"^2.1.1","vaul":"^1.1.2","react":"^19.2.0","zustand":"^5.0.4","tailwindcss":"^4.1.5","lucide-react":"^0.562.0","framer-motion":"^11.15.0","@use-gesture/react":"^10.3.1","@radix-ui/react-slot":"^1.1.2","@dreamboard/sdk-types":"npm:@dreamboard-games/sdk-types@0.1.2","@radix-ui/react-label":"^2.1.6","@radix-ui/react-dialog":"^1.1.14","@radix-ui/react-select":"^2.2.5","@radix-ui/react-tooltip":"^1.2.8","@radix-ui/react-accordion":"^1.2.12"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"zod":"4.4.3","react":"^19.0.0","framer-motion":"^11.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ui-sdk_0.0.46_1779264218889_0.145361470534771","host":"s3://npm-registry-packages-npm-production"}},"0.0.47":{"name":"@dreamboard-games/ui-sdk","version":"0.0.47","_id":"@dreamboard-games/ui-sdk@0.0.47","maintainers":[{"name":"ctan1345","email":"ctan1345@uni.sydney.edu.au"}],"dist":{"shasum":"ecde413142fdd582b82712b72cb9fb77c275f832","tarball":"https://registry.npmjs.org/@dreamboard-games/ui-sdk/-/ui-sdk-0.0.47.tgz","fileCount":561,"integrity":"sha512-NMxuj+cjOb7VIw7/MPm4GfgRGm7Wre40qu4eZkUBe37PonRGn+U/pwuP9Y/rJCf4KLj1d5eGf3dcwzjiTrq/7Q==","signatures":[{"sig":"MEUCIQDVMMp0Vu823B967qtLGzhloTFnK1rWD7ddZIdBh9YZdwIgISKuNgKNb5dP9HOXtBe8HVhlFAMuqNNswaOFlUxWzUs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2750411},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","dreamboard-source":"./src/index.ts"},"./reducer":{"types":"./dist/reducer.d.ts","import":"./dist/reducer.js","default":"./dist/reducer.js","dreamboard-source":"./src/reducer.ts"},"./defaults":{"types":"./dist/defaults/index.d.ts","import":"./dist/defaults/index.js","default":"./dist/defaults/index.js","dreamboard-source":"./src/defaults/index.ts"},"./internal":{"types":"./dist/internal.d.ts","import":"./dist/internal.js","default":"./dist/internal.js","dreamboard-source":"./src/internal.ts"},"./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","default":"./dist/components/index.js","dreamboard-source":"./src/components/index.ts"},"./primitives":{"types":"./dist/primitives/index.d.ts","import":"./dist/primitives/index.js","default":"./dist/primitives/index.js","dreamboard-source":"./src/primitives/index.ts"},"./package.json":"./package.json","./plugin-styles.css":{"default":"./dist/plugin-styles.css","dreamboard-source":"./src/plugin-styles.css"},"./types/runtime-api":{"types":"./dist/types/runtime-api.d.ts","import":"./dist/types/runtime-api.js","default":"./dist/types/runtime-api.js","dreamboard-source":"./src/types/runtime-api.ts"},"./types/player-state":{"types":"./dist/types/player-state.d.ts","import":"./dist/types/player-state.js","default":"./dist/types/player-state.js","dreamboard-source":"./src/types/player-state.ts"}},"private":false,"scripts":{"dev":"cosmos","lint":"eslint src --ext .ts,.tsx","test":"bun test","build":"rm -rf dist tsconfig.tsbuildinfo && tsc -b && cp src/plugin-styles.css dist/plugin-styles.css && rollup -c rollup.config.js","clean":"rm -rf dist","cosmos":"cosmos","lint:fix":"eslint src --ext .ts,.tsx --fix","postbuild":"echo '✅ Generated ui-sdk.d.ts'","test:unit":"bun test","typecheck":"tsc -b --pretty false","cosmos:export":"cosmos-export"},"_npmUser":{"name":"ctan1345","email":"ctan1345@uni.sydney.edu.au"},"_npmVersion":"10.8.2","description":"UI SDK for dreamboard plugin development","directories":{},"_nodeVersion":"20.19.2","dependencies":{"clsx":"^2.1.1","vaul":"^1.1.2","react":"^19.2.0","zustand":"^5.0.4","tailwindcss":"^4.1.5","lucide-react":"^0.562.0","framer-motion":"^11.15.0","@use-gesture/react":"^10.3.1","@radix-ui/react-slot":"^1.1.2","@dreamboard/sdk-types":"npm:@dreamboard-games/sdk-types@^0.1.2","@radix-ui/react-label":"^2.1.6","@radix-ui/react-dialog":"^1.1.14","@radix-ui/react-select":"^2.2.5","@radix-ui/react-tooltip":"^1.2.8","@radix-ui/react-accordion":"^1.2.12"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{},"peerDependencies":{"zod":"4.4.3","react":"^19.0.0","framer-motion":"^11.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ui-sdk_0.0.47_1779544840839_0.29267281751076535","host":"s3://npm-registry-packages-npm-production"}},"0.0.48":{"name":"@dreamboard-games/ui-sdk","version":"0.0.48","private":false,"description":"UI SDK for dreamboard plugin development","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","dreamboard-source":"./src/index.ts","import":"./dist/index.js","default":"./dist/index.js"},"./reducer":{"types":"./dist/reducer.d.ts","dreamboard-source":"./src/reducer.ts","import":"./dist/reducer.js","default":"./dist/reducer.js"},"./components":{"types":"./dist/components/index.d.ts","dreamboard-source":"./src/components/index.ts","import":"./dist/components/index.js","default":"./dist/components/index.js"},"./defaults":{"types":"./dist/defaults/index.d.ts","dreamboard-source":"./src/defaults/index.ts","import":"./dist/defaults/index.js","default":"./dist/defaults/index.js"},"./internal":{"types":"./dist/internal.d.ts","dreamboard-source":"./src/internal.ts","import":"./dist/internal.js","default":"./dist/internal.js"},"./workspace-contract":{"types":"./dist/workspace-contract.d.ts","dreamboard-source":"./src/workspace-contract.ts","import":"./dist/workspace-contract.js","default":"./dist/workspace-contract.js"},"./types/runtime-api":{"types":"./dist/types/runtime-api.d.ts","dreamboard-source":"./src/types/runtime-api.ts","import":"./dist/types/runtime-api.js","default":"./dist/types/runtime-api.js"},"./types/player-state":{"types":"./dist/types/player-state.d.ts","dreamboard-source":"./src/types/player-state.ts","import":"./dist/types/player-state.js","default":"./dist/types/player-state.js"},"./plugin-styles.css":{"dreamboard-source":"./src/plugin-styles.css","default":"./dist/plugin-styles.css"},"./package.json":"./package.json"},"publishConfig":{"access":"public"},"scripts":{"build":"rm -rf dist tsconfig.tsbuildinfo && tsc -b && cp src/plugin-styles.css dist/plugin-styles.css && rollup -c rollup.config.js","postbuild":"echo '✅ Generated ui-sdk.d.ts'","typecheck":"tsc -b --pretty false","dev":"cosmos","cosmos":"cosmos","cosmos:export":"cosmos-export","lint":"eslint src --ext .ts,.tsx","lint:fix":"eslint src --ext .ts,.tsx --fix","test":"bun test","test:unit":"bun test","clean":"rm -rf dist"},"dependencies":{"@radix-ui/react-accordion":"^1.2.12","@radix-ui/react-dialog":"^1.1.14","@radix-ui/react-label":"^2.1.6","@radix-ui/react-select":"^2.2.5","@radix-ui/react-slot":"^1.1.2","@radix-ui/react-tooltip":"^1.2.8","@use-gesture/react":"^10.3.1","clsx":"^2.1.1","framer-motion":"^11.15.0","lucide-react":"^0.562.0","react":"^19.2.0","tailwindcss":"^4.1.5","vaul":"^1.1.2","zustand":"^5.0.4","@dreamboard/sdk-types":"npm:@dreamboard-games/sdk-types@^0.1.2"},"devDependencies":{},"peerDependencies":{"framer-motion":"^11.0.0","react":"^19.0.0","zod":"4.4.3"},"_id":"@dreamboard-games/ui-sdk@0.0.48","_nodeVersion":"20.19.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-dAi+rZ0niHtUdi2NBiJ3Y07JjVf4ezZNVBnh5B5tCYMNFbKaCnyPZsU5G2B6wRvTn3WNSmq0QGgA7OKwWc6HBw==","shasum":"28c9897d81c3a1046d1ea6a86c69989d151b28a9","tarball":"https://registry.npmjs.org/@dreamboard-games/ui-sdk/-/ui-sdk-0.0.48.tgz","fileCount":554,"unpackedSize":2823322,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDP7ohiS637REAQwnMVpmm7Dnim9gnwdLZoxz651a7qHwIgPgQpLEBPNzFjPV4M3/qEXJLXlflE/eWCeysnCDCPa0Y="}]},"_npmUser":{"name":"ctan1345","email":"ctan1345@uni.sydney.edu.au"},"directories":{},"maintainers":[{"name":"ctan1345","email":"ctan1345@uni.sydney.edu.au"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ui-sdk_0.0.48_1779545715031_0.018512980574602267"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-19T23:42:06.854Z","modified":"2026-05-23T14:15:15.401Z","0.0.41":"2026-05-19T23:42:07.104Z","0.0.42":"2026-05-19T23:52:58.148Z","0.0.43":"2026-05-20T06:13:39.795Z","0.0.45":"2026-05-20T07:52:47.114Z","0.0.46":"2026-05-20T08:03:39.104Z","0.0.47":"2026-05-23T14:00:41.059Z","0.0.48":"2026-05-23T14:15:15.281Z"},"description":"UI SDK for dreamboard plugin development","maintainers":[{"name":"ctan1345","email":"ctan1345@uni.sydney.edu.au"}],"readme":"# @dreamboard/ui-sdk\n\nReducer-native UI SDK for Dreamboard game workspaces. It provides the runtime,\nheadless primitives, visual primitives, default wrappers, and hook escape\nhatches that turn server-authoritative interaction descriptors into playable\nReact UIs.\n\n## API Layers\n\nAuthored game UIs usually import from two layers:\n\n- `@dreamboard/ui-contract`: generated per workspace. Prefer this for\n  workspace-typed primitives and hooks: `Interaction`, `Prompt`, `PromptInbox`,\n  `Zone`, `Board`, `useGameView`, `useInteractionByKey`,\n  `useBoardInteractions`, and typed ids for inputs, prompt options, zones,\n  cards, phases, and board targets.\n- `@dreamboard/ui-sdk`: framework-owned primitives and escape hatches that are\n  not game-specific, such as `Card`, `HexGrid`, `ResourceCounter`,\n  `ToastProvider`, `GameEndDisplay`, `PluginRuntime`, and low-level hooks.\n\nOptional styled defaults live at `@dreamboard/ui-sdk/defaults`.\n\nRule of thumb: if TypeScript should know this game's interaction id, input key,\nzone, card id, phase, or board target, import through\n`@dreamboard/ui-contract`.\n\n## Component-First UI\n\nReducers declare interactions, inputs, prompts, zones, cards, board targets, and\nvalidation. UI components consume those authoritative facts. Reducers should not\nauthor visual placement, salience, labels, icons, dialog presentation, or\nsurface grouping metadata.\n\nThe generated scaffold starts with primitives:\n\n```tsx\nimport { PromptInbox } from \"@dreamboard/ui-contract\";\n\nexport default function App() {\n  return (\n    <main>\n      <PromptInbox.Root>\n        <PromptInbox.Empty>No available prompts.</PromptInbox.Empty>\n        <PromptInbox.Items />\n      </PromptInbox.Root>\n    </main>\n  );\n}\n```\n\nCommon primitive families:\n\n- Generated workspaces use `Interaction.Form` for input-bearing interactions.\n  Low-level interaction collectors remain in `@dreamboard/ui-sdk` for internal\n  primitives and defaults, but are not part of the generated\n  `@dreamboard/ui-contract` authoring surface.\n- `Prompt.Root`, `Prompt.Title`, `Prompt.Message`, `Prompt.Options`,\n  `Prompt.Option`\n- `PromptInbox.Root`, `PromptInbox.Empty`, `PromptInbox.Items`\n- `Zone.Root`, `Zone.List`, `Zone.Item`\n- `Board` typed ids and generated board helpers\n\nDefaults compose those primitives:\n\n```tsx\nimport { DefaultPromptInbox, GameLayout } from \"@dreamboard/ui-sdk/defaults\";\n\nexport default function App() {\n  return (\n    <GameLayout.Root>\n      <GameLayout.Sidebar>\n        <DefaultPromptInbox />\n      </GameLayout.Sidebar>\n    </GameLayout.Root>\n  );\n}\n```\n\n## Hooks\n\nHooks remain available for custom rendering and framework code:\n\n- `useGameView()` / `useGameSelector(...)`\n- `useSeatInbox()`\n- `useInteractionHandle(descriptor)`\n- `useInteractionByKey(key)`\n- `useBoardInteractions()`\n- `useIsMyTurn()`\n- `usePlayerInfo()` / `useMe()`\n- `usePluginSession()`\n\nPrefer the generated re-exports from `@dreamboard/ui-contract` when the hook is\nparameterized by a workspace interaction, view, zone, or board target. Use hooks\nas escape hatches for SVG/canvas boards, advanced gesture layers, or local draft\nstyling; ordinary prompts, actions, card inputs, and zones should be component\ncomposition.\n\n## Board Rendering\n\nFor custom boards, keep reducer-projected eligibility authoritative and route\nclicks through generated `useBoardInteractions()`:\n\n```tsx\nimport { useBoardInteractions } from \"@dreamboard/ui-contract\";\nimport { HexGrid } from \"@dreamboard/ui-sdk\";\n\nfunction Board() {\n  const board = useBoardInteractions();\n  return (\n    <HexGrid\n      interactiveVertices={board.targetLayers.vertex()}\n      interactiveEdges={board.targetLayers.edge()}\n      interactiveSpaces={board.targetLayers.space()}\n    />\n  );\n}\n```\n\n`useBoardInteractions` merges currently projected target domains and submits the\nbest matching descriptor. UI code should not recompute legality.\n\n## Data Model\n\nReducer-native plugins receive:\n\n- the projected reducer view for the controlling seat\n- current phase and active players\n- `availableInteractions`, the authoritative descriptors for actions and\n  prompts\n- zone snapshots for card and collection rendering\n- lobby, history, notifications, and session metadata\n\nPlugins do not receive raw reducer/table internals. Availability, costs, target\neligibility, and validation are authoritative on descriptors and runtime\nresponses.\n\n## Public Package Boundaries\n\n- `@dreamboard/ui-sdk`: headless runtime behavior, primitives, stable types,\n  visual primitives, and hook escape hatches.\n- `@dreamboard/ui-sdk/defaults`: styled default wrappers over primitives.\n- `@dreamboard/ui-contract`: generated workspace-specific typed aliases and\n  registration.\n\nDeprecated shell/surface helpers are not exported from the public component\nbarrel. Existing internal tests may still cover legacy implementation files\nuntil they are deleted, but authored workspaces should not use them.\n\n## References\n\n- [UI scaffolding policy](../../docs/references/ui-scaffolding-policy.md)\n- [SDK design principles](../../docs/references/sdk-design-principles.md)\n- Published examples:\n  - [Hearts](../../examples/published/hearts)\n  - [Sketchbook](../../examples/published/sketchbook)\n  - [Frontier Trails](../../examples/published/frontier-trails)\n","readmeFilename":"README.md"}