{"_id":"@bascanada/allumette-web","_rev":"7-0ee280948e1baa8cf8e2356c54885eb9","name":"@bascanada/allumette-web","dist-tags":{"latest":"0.0.10"},"versions":{"0.0.3":{"name":"@bascanada/allumette-web","version":"0.0.3","keywords":["svelte"],"_id":"@bascanada/allumette-web@0.0.3","maintainers":[{"name":"berlingoqc","email":"william95quintalwilliam@outlook.com"}],"dist":{"shasum":"32d3fcf7ea32fe4e4bee0502c3e57c51ff7f88e1","tarball":"https://registry.npmjs.org/@bascanada/allumette-web/-/allumette-web-0.0.3.tgz","fileCount":24,"integrity":"sha512-vFMBFmuOV+oxxf2sNwSrIZHzfeicKCxthBwTrYZurHJ1E3agETzu6OiDfUfPtgPYblSnFkhEga3533gyiJpBAA==","signatures":[{"sig":"MEQCIGdgNs8eLFPoBxbievbSMNI07U0Bxl7hYq56FUZC8NoaAiAmf5+bnBGxwidbPOXkOPdrHwDuIjJZBG1bpv/Xjk6g3w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1511234},"type":"module","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"},"./web-components":{"import":"./dist/web-components/allumette-web.es.js","require":"./dist/web-components/allumette-web.umd.js"}},"gitHead":"50844b745ea4b8f7d13b25e1d564dd5433592bee","scripts":{"dev":"vite dev","build":"vite build && svelte-kit sync && svelte-package","prepack":"npm run build:all","prepare":"svelte-kit sync || echo ''","preview":"vite preview","build:all":"npm run build && npm run build:webcomponents && publint","build:webcomponents":"vite build --config vite.config.webcomponents.js && cp test.html dist/"},"_npmUser":{"name":"berlingoqc","email":"william95quintalwilliam@outlook.com"},"_npmVersion":"10.8.2","description":"UI components for the Allumette matchmaking server.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.19.6","dependencies":{"bip39":"^3.1.0","ethers":"^6.15.0","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@zerodevx/svelte-toast":"^0.9.6"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.1.7","svelte":"^5.39.5","publint":"^0.3.13","typescript":"^5.9.2","@sveltejs/kit":"^2.43.2","argon2-browser":"^1.18.0","vite-plugin-wasm":"^3.5.0","@sveltejs/package":"^2.5.4","@sveltejs/adapter-auto":"^6.1.0","@sveltejs/vite-plugin-svelte":"^6.2.0"},"peerDependencies":{"svelte":"^5.0.0","argon2-browser":"^1.18.0"},"_npmOperationalInternal":{"tmp":"tmp/allumette-web_0.0.3_1765580866583_0.5006031521287142","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@bascanada/allumette-web","version":"0.0.4","keywords":["svelte"],"license":"GPL-3.0-only","_id":"@bascanada/allumette-web@0.0.4","maintainers":[{"name":"berlingoqc","email":"william95quintalwilliam@outlook.com"}],"dist":{"shasum":"af9019a7b3265312cc131e66c0801794c471eb59","tarball":"https://registry.npmjs.org/@bascanada/allumette-web/-/allumette-web-0.0.4.tgz","fileCount":24,"integrity":"sha512-RGwRgyz8Ux99YS86ZTR97SMco4WSopOaymWlsD9oP7AXj6v3BHg9mT4sWBJ3jKcCka6Bygs7T0tyJ6GW1O37ew==","signatures":[{"sig":"MEUCIFLkJT2NeGvc+u2izhFfbiGAvO6Eahn5WORuABHwCv4DAiEA9fdhFY3H3KpCXln1nrgaufU9A+ZhMtBIgxdzPO/BVEY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1514070},"type":"module","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"},"./web-components":{"import":"./dist/web-components/allumette-web.es.js","require":"./dist/web-components/allumette-web.umd.js"}},"gitHead":"b634fbdaa53194701bbd89454e075a24b558d176","scripts":{"dev":"vite dev","build":"vite build && svelte-kit sync && svelte-package","prepack":"npm run build:all","prepare":"svelte-kit sync || echo ''","preview":"vite preview","build:all":"npm run build && npm run build:webcomponents && publint","build:webcomponents":"vite build --config vite.config.webcomponents.js && cp test.html dist/"},"_npmUser":{"name":"berlingoqc","email":"william95quintalwilliam@outlook.com"},"_npmVersion":"10.8.2","description":"UI components for the Allumette matchmaking server.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.19.6","dependencies":{"bip39":"^3.1.0","ethers":"^6.15.0","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@zerodevx/svelte-toast":"^0.9.6"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.1.7","svelte":"^5.39.5","publint":"^0.3.13","typescript":"^5.9.2","@sveltejs/kit":"^2.43.2","argon2-browser":"^1.18.0","vite-plugin-wasm":"^3.5.0","@sveltejs/package":"^2.5.4","@sveltejs/adapter-auto":"^6.1.0","@sveltejs/vite-plugin-svelte":"^6.2.0"},"peerDependencies":{"svelte":"^5.0.0","argon2-browser":"^1.18.0"},"_npmOperationalInternal":{"tmp":"tmp/allumette-web_0.0.4_1765582496435_0.6782407725142618","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"@bascanada/allumette-web","version":"0.0.6","keywords":["svelte"],"license":"GPL-3.0-only","_id":"@bascanada/allumette-web@0.0.6","maintainers":[{"name":"berlingoqc","email":"william95quintalwilliam@outlook.com"}],"dist":{"shasum":"35ef8e88d46c92b398068bb2b652b09ed53d57e4","tarball":"https://registry.npmjs.org/@bascanada/allumette-web/-/allumette-web-0.0.6.tgz","fileCount":25,"integrity":"sha512-0qp1QpdHAqLy0GRYsprmlQPtzzQqKfNj5q/aRJn3dcQg6unHjBshVBW9INJrbpU7+qpyKjV6LD22/RjCZnER/A==","signatures":[{"sig":"MEUCIE/PHQftX8lU8cuh3sjQ1HJvD5gy5RfASRv8C3mkMNoSAiEAkXLs+CoyGOFJ467Ha3Rv84oqhxjXfQ2yRx4WBIt8G8g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1513412},"type":"module","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"},"./styles":"./dist/styles.css","./web-components":{"import":"./dist/web-components/allumette-web.es.js","require":"./dist/web-components/allumette-web.umd.js"}},"gitHead":"bc1fca41146653c807d9df04eea9939c37dec922","scripts":{"dev":"vite dev","build":"vite build && svelte-kit sync && svelte-package","prepack":"npm run build:all","prepare":"svelte-kit sync || echo ''","preview":"vite preview","build:all":"npm run build && npm run build:webcomponents && publint","build:webcomponents":"vite build --config vite.config.webcomponents.js && cp test.html dist/"},"_npmUser":{"name":"berlingoqc","email":"william95quintalwilliam@outlook.com"},"_npmVersion":"10.8.2","description":"UI components for the Allumette matchmaking server.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.19.6","dependencies":{"bip39":"^3.1.0","ethers":"^6.15.0","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@zerodevx/svelte-toast":"^0.9.6"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.1.7","svelte":"^5.39.5","postcss":"^8.5.6","publint":"^0.3.13","typescript":"^5.9.2","tailwindcss":"^4.1.0","autoprefixer":"^10.4.23","@sveltejs/kit":"^2.43.2","argon2-browser":"^1.18.0","vite-plugin-wasm":"^3.5.0","@sveltejs/package":"^2.5.4","@tailwindcss/forms":"^0.5.10","@tailwindcss/postcss":"^4.1.18","@sveltejs/adapter-auto":"^6.1.0","@sveltejs/vite-plugin-svelte":"^6.2.0","@skeletonlabs/skeleton-svelte":"^1.2.1"},"peerDependencies":{"svelte":"^5.0.0","argon2-browser":"^1.18.0"},"_npmOperationalInternal":{"tmp":"tmp/allumette-web_0.0.6_1765829215924_0.4804487328718723","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"@bascanada/allumette-web","version":"0.0.7","keywords":["svelte"],"license":"GPL-3.0-only","_id":"@bascanada/allumette-web@0.0.7","maintainers":[{"name":"berlingoqc","email":"william95quintalwilliam@outlook.com"}],"dist":{"shasum":"9c142c8540ce669abb0951602233a1264e863128","tarball":"https://registry.npmjs.org/@bascanada/allumette-web/-/allumette-web-0.0.7.tgz","fileCount":27,"integrity":"sha512-huQB7cWSneatvYAHAggmIxXaMCewa+FXk8m10FI7AZEtPtfE5Gc20kLw1hUFDStTX2JlKxx/jEBxaN0pPyp9ZQ==","signatures":[{"sig":"MEYCIQCo6aMMFbv1J2YE8DVQtrLl3HCcZD5P8dqJRpakJ2dSEAIhAIBiC+V8DQqwCdr+pP3vNh4tViaUuYgvD85/ouNFpqNB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1518249},"type":"module","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"},"./styles":"./dist/styles.css","./web-components":{"import":"./dist/web-components/allumette-web.es.js","require":"./dist/web-components/allumette-web.umd.js"}},"gitHead":"8376b8d5cd5b938bc764e4a3cf5b6a7758f4949d","scripts":{"dev":"vite dev","build":"vite build && svelte-kit sync && svelte-package","prepack":"npm run build:all","prepare":"svelte-kit sync || echo ''","preview":"vite preview","build:all":"npm run build && npm run build:webcomponents && publint","build:webcomponents":"vite build --config vite.config.webcomponents.js && cp test.html dist/"},"_npmUser":{"name":"berlingoqc","email":"william95quintalwilliam@outlook.com"},"_npmVersion":"10.8.2","description":"UI components for the Allumette matchmaking server.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.19.6","dependencies":{"bip39":"^3.1.0","ethers":"^6.15.0","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@zerodevx/svelte-toast":"^0.9.6"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.1.7","svelte":"^5.39.5","postcss":"^8.5.6","publint":"^0.3.13","typescript":"^5.9.2","tailwindcss":"^4.1.0","autoprefixer":"^10.4.23","@sveltejs/kit":"^2.43.2","argon2-browser":"^1.18.0","vite-plugin-wasm":"^3.5.0","@sveltejs/package":"^2.5.4","@tailwindcss/forms":"^0.5.10","@tailwindcss/postcss":"^4.1.18","@sveltejs/adapter-auto":"^6.1.0","@sveltejs/vite-plugin-svelte":"^6.2.0","@skeletonlabs/skeleton-svelte":"^1.2.1"},"peerDependencies":{"svelte":"^5.0.0","argon2-browser":"^1.18.0"},"_npmOperationalInternal":{"tmp":"tmp/allumette-web_0.0.7_1765906517704_0.6067963106642915","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"@bascanada/allumette-web","version":"0.0.8","keywords":["svelte"],"license":"GPL-3.0-only","_id":"@bascanada/allumette-web@0.0.8","maintainers":[{"name":"berlingoqc","email":"william95quintalwilliam@outlook.com"}],"dist":{"shasum":"e73e31847a055b80b6001e21a771e8456bb67d52","tarball":"https://registry.npmjs.org/@bascanada/allumette-web/-/allumette-web-0.0.8.tgz","fileCount":31,"integrity":"sha512-U78Fibj+YrjilvDg5fLewEqzZp6PyVw24ZCmrQDtOWbaowG0qho5idrkDMQwbftvs9aXdwidGVettsR6fgqAtg==","signatures":[{"sig":"MEYCIQDw0mbUpAuMX/yaRKcDi7NkaKFETCkNTKi3o1R1Y2a4kAIhAO6swW3APpmyGmrccANY//pyQvGPVkdkWB4czbPLzOEO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1614988},"type":"module","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"},"./styles":"./dist/styles.css","./web-components":{"import":"./dist/web-components/allumette-web.es.js","require":"./dist/web-components/allumette-web.umd.js"}},"gitHead":"ef91e90d2dc852a01d0d166f69de87adb993a6f2","scripts":{"dev":"vite dev","build":"vite build && svelte-kit sync && svelte-package","prepack":"npm run build:all","prepare":"svelte-kit sync || echo ''","preview":"vite preview","build:all":"npm run build && npm run build:webcomponents && publint","build:webcomponents":"vite build --config vite.config.webcomponents.js && cp test.html dist/"},"_npmUser":{"name":"berlingoqc","email":"william95quintalwilliam@outlook.com"},"_npmVersion":"10.8.2","description":"UI components for the Allumette matchmaking server.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.19.6","dependencies":{"bip39":"^3.1.0","ethers":"^6.15.0","jdenticon":"^3.3.0","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@zerodevx/svelte-toast":"^0.9.6"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.1.7","svelte":"^5.39.5","postcss":"^8.5.6","publint":"^0.3.13","typescript":"^5.9.2","tailwindcss":"^4.1.0","autoprefixer":"^10.4.23","@sveltejs/kit":"^2.43.2","argon2-browser":"^1.18.0","vite-plugin-wasm":"^3.5.0","@sveltejs/package":"^2.5.4","@tailwindcss/forms":"^0.5.10","@tailwindcss/postcss":"^4.1.18","@sveltejs/adapter-auto":"^6.1.0","@sveltejs/vite-plugin-svelte":"^6.2.0","@skeletonlabs/skeleton-svelte":"^1.2.1"},"peerDependencies":{"svelte":"^5.0.0","argon2-browser":"^1.18.0"},"_npmOperationalInternal":{"tmp":"tmp/allumette-web_0.0.8_1766368415735_0.1463590741665055","host":"s3://npm-registry-packages-npm-production"}},"0.0.9":{"name":"@bascanada/allumette-web","version":"0.0.9","keywords":["svelte"],"license":"GPL-3.0-only","_id":"@bascanada/allumette-web@0.0.9","maintainers":[{"name":"berlingoqc","email":"william95quintalwilliam@outlook.com"}],"dist":{"shasum":"acd2c9bad4b570525925c821092d76e86ba04394","tarball":"https://registry.npmjs.org/@bascanada/allumette-web/-/allumette-web-0.0.9.tgz","fileCount":31,"integrity":"sha512-h4/gGusVQAyKaZ2iY5tXly2m3AHlfSg3e46TIqVTjpj/akigbFNNOIcZ+bf5bIlgwauLzsLvTaYqoH2zwIkoXA==","signatures":[{"sig":"MEYCIQDPq6+mfQMGqvY19C3IBQMmBHHKPnqMISAJ81/v8UWkqQIhAPchkcsb9pqzKRG4v0O5ZHFSkD0avr/mnFmbEgLJ+hIv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1618799},"type":"module","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"},"./styles":"./dist/styles.css","./web-components":{"import":"./dist/web-components/allumette-web.es.js","require":"./dist/web-components/allumette-web.umd.js"}},"gitHead":"6a18b03cbb5a620fa0839638bb8a30cb77de873e","scripts":{"dev":"vite dev","build":"vite build && svelte-kit sync && svelte-package","prepack":"npm run build:all","prepare":"svelte-kit sync || echo ''","preview":"vite preview","build:all":"npm run build && npm run build:webcomponents && publint","build:webcomponents":"vite build --config vite.config.webcomponents.js && cp test.html dist/"},"_npmUser":{"name":"berlingoqc","email":"william95quintalwilliam@outlook.com"},"_npmVersion":"10.8.2","description":"UI components for the Allumette matchmaking server.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.19.6","dependencies":{"bip39":"^3.1.0","ethers":"^6.15.0","jdenticon":"^3.3.0","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@zerodevx/svelte-toast":"^0.9.6"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.1.7","svelte":"^5.39.5","postcss":"^8.5.6","publint":"^0.3.13","typescript":"^5.9.2","tailwindcss":"^4.1.0","autoprefixer":"^10.4.23","@sveltejs/kit":"^2.43.2","argon2-browser":"^1.18.0","vite-plugin-wasm":"^3.5.0","@sveltejs/package":"^2.5.4","@tailwindcss/forms":"^0.5.10","@tailwindcss/postcss":"^4.1.18","@sveltejs/adapter-auto":"^6.1.0","@sveltejs/vite-plugin-svelte":"^6.2.0","@skeletonlabs/skeleton-svelte":"^1.2.1"},"peerDependencies":{"svelte":"^5.0.0","argon2-browser":"^1.18.0"},"_npmOperationalInternal":{"tmp":"tmp/allumette-web_0.0.9_1766369293531_0.6206400164225765","host":"s3://npm-registry-packages-npm-production"}},"0.0.10":{"name":"@bascanada/allumette-web","version":"0.0.10","license":"GPL-3.0-only","scripts":{"dev":"vite dev","build":"vite build && svelte-kit sync && svelte-package","build:webcomponents":"vite build --config vite.config.webcomponents.js && cp test.html dist/","build:all":"npm run build && npm run build:webcomponents && publint","preview":"vite preview","prepare":"svelte-kit sync || echo ''","prepack":"npm run build:all"},"sideEffects":["**/*.css"],"svelte":"./dist/index.js","types":"./dist/index.d.ts","type":"module","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"},"./styles":"./dist/styles.css","./web-components":{"import":"./dist/web-components/allumette-web.es.js","require":"./dist/web-components/allumette-web.umd.js"}},"peerDependencies":{"argon2-browser":"^1.18.0","svelte":"^5.0.0"},"devDependencies":{"@skeletonlabs/skeleton-svelte":"^1.2.1","@sveltejs/adapter-auto":"^6.1.0","@sveltejs/kit":"^2.43.2","@sveltejs/package":"^2.5.4","@sveltejs/vite-plugin-svelte":"^6.2.0","@tailwindcss/forms":"^0.5.10","@tailwindcss/postcss":"^4.1.18","argon2-browser":"^1.18.0","autoprefixer":"^10.4.23","postcss":"^8.5.6","publint":"^0.3.13","svelte":"^5.39.5","tailwindcss":"^4.1.0","typescript":"^5.9.2","vite":"^7.1.7","vite-plugin-wasm":"^3.5.0"},"keywords":["svelte"],"dependencies":{"@noble/ed25519":"^3.0.0","@noble/hashes":"^2.0.1","@zerodevx/svelte-toast":"^0.9.6","bip39":"^3.1.0","ethers":"^6.15.0","jdenticon":"^3.3.0"},"_id":"@bascanada/allumette-web@0.0.10","gitHead":"155130bd9e0687c026532577ef4c9c08a8ff69f9","description":"UI components for the Allumette matchmaking server.","_nodeVersion":"20.19.6","_npmVersion":"10.8.2","dist":{"integrity":"sha512-fj0JplNHIZ0rHcxfRe81lHTzkBq310K6so7BjqbMQUlQrq2TsAfzsAvxagOuzfwjw98iJU7jO2ShoIcm8VEYVw==","shasum":"17d48fab9eca1c7a4b9e181b5da4ff211ec244ea","tarball":"https://registry.npmjs.org/@bascanada/allumette-web/-/allumette-web-0.0.10.tgz","fileCount":31,"unpackedSize":1623007,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAigacihMB05HuqBWjESU5xrDyfcV3jGd6BClFN3vqSqAiEAm2nY/7rBYb7fS4lO0AivLSHruRVc3AEbbsFCAFr38Ws="}]},"_npmUser":{"name":"berlingoqc","email":"william95quintalwilliam@outlook.com"},"directories":{},"maintainers":[{"name":"berlingoqc","email":"william95quintalwilliam@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/allumette-web_0.0.10_1766528274201_0.8519343642572688"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-12T23:07:46.480Z","modified":"2025-12-23T22:17:54.597Z","0.0.3":"2025-12-12T23:07:46.742Z","0.0.4":"2025-12-12T23:34:56.655Z","0.0.6":"2025-12-15T20:06:56.131Z","0.0.7":"2025-12-16T17:35:17.908Z","0.0.8":"2025-12-22T01:53:35.922Z","0.0.9":"2025-12-22T02:08:13.747Z","0.0.10":"2025-12-23T22:17:54.383Z"},"license":"GPL-3.0-only","keywords":["svelte"],"description":"UI components for the Allumette matchmaking server.","maintainers":[{"name":"berlingoqc","email":"william95quintalwilliam@outlook.com"}],"readme":"# Allumette Web Components\n\nUI components for the Allumette matchmaking server.\n\n## Components\n\n### AllumetteLobbies\n\nA component that displays a list of available lobbies and allows users to create, join, and delete lobbies.\n\n#### Props\n\n- `onJoinLobby` (optional): A callback function that will be called when a user clicks the join/start game button. This allows parent components to handle game launching.\n\n#### Callback Signature\n\n```javascript\nonJoinLobby({ lobbyId, token, players, isPrivate, gameId })\n```\n\n**Parameters:**\n- `lobbyId` (string): The UUID of the lobby\n- `token` (string): The JWT authentication token for the current user\n- `players` (array): Array of public keys of players in the lobby\n- `isPrivate` (boolean): Whether the lobby is private\n- `gameId` (string): The ID of the game (e.g. \"chess\", \"poker\")\n\n#### Example Usage\n\n```svelte\n<script>\n  import AllumetteLobbies from '$lib/components/AllumetteLobbies.svelte';\n\n  function handleJoinLobby({ lobbyId, token, players, isPrivate, gameId }) {\n    console.log('Starting game with:', { lobbyId, token, players, isPrivate, gameId });\n    \n    // Launch your game here\n    // For example, connect to the matchbox websocket:\n    // const ws = new WebSocket(`ws://localhost:3536/${token}`);\n    \n    // Or navigate to your game page:\n    // window.location.href = `/game/${gameId}?lobby=${lobbyId}&token=${token}`;\n  }\n</script>\n\n<AllumetteLobbies onJoinLobby={handleJoinLobby} />\n```\n\n#### Using as Web Component\n\n```html\n<script>\n  // Define the callback before the component loads\n  window.handleJoinLobby = function({ lobbyId, token, players, isPrivate }) {\n    console.log('Starting game with:', { lobbyId, token, players, isPrivate });\n    // Your game launch logic here\n  };\n</script>\n\n<matchbox-lobbies on-join-lobby=\"handleJoinLobby\"></matchbox-lobbies>\n```\n\n## Features\n\n### Improved UI\n\n1. **Clear Lobby IDs**: Lobby IDs are now displayed as shortened codes instead of empty input fields\n2. **Player Names**: Players are shown with their usernames (if they're friends) instead of cropped public keys\n3. **Current User Highlighting**: Your own player entry is highlighted in the player list\n4. **Visual Status**: Lobbies you're in are highlighted with a green background\n5. **Smart Actions**: The join button only shows for lobbies you're not in; delete button only shows for lobbies you're in\n\n### Privacy Badges\n\n- 🔒 Private - Yellow badge for private lobbies\n- 🌐 Public - Blue badge for public lobbies\n\n### Player Display\n\n- Current user: **Username (You)** in blue\n- Friends: Username from friends list\n- Others: `Player <pubkey>...`\n\n### Leave vs Delete Lobby\n\nThe system now intelligently handles lobby removal based on ownership:\n\n- **Owner**: When the lobby creator clicks \"🗑️ Delete Lobby\", the entire lobby is destroyed and all players are removed\n- **Members**: When a non-owner player clicks \"🚪 Leave\", only that player is removed from the lobby (lobby continues to exist)\n\nThis provides a better user experience and prevents accidental lobby deletion by non-owners.\n","readmeFilename":"README.md"}