{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "zap-1",
  "type": "registry:block",
  "title": "Zap 1",
  "author": "Kenney <https://kenney.nl>",
  "description": "A distinct, short electrical zap sound effect, suitable for laser gun firing, energy pulses, or interactive element feedback.",
  "files": [
    {
      "path": "registry/soundcn/sounds/zap-1/zap-1.ts",
      "content": "import type { SoundAsset } from \"@/lib/sound-types\";\n\nexport const zap1Sound: SoundAsset = {\n  name: \"zap-1\",\n  dataUri: \"data:audio/mpeg;base64,SUQzBAAAAAAAIlRTU0UAAAAOAAADTGF2ZjYyLjMuMTAwAAAAAAAAAAAAAAD/+1DAAAAAAAAAAAAAAAAAAAAAAABJbmZvAAAADwAAACgAACF3AAwMEhIYGBgfHyUlJSsrMTExODg+Pj5EREpKSlFRV1dXXV1jY2NqanBwcHZ2fHx8g4OJiYmPj5WVlZycoqKiqKiurq61tbu7u8HBx8fHzs7U1NTa2uDg4Ofn7e3t8/P5+fn//wAAAABMYXZjNjIuMTEAAAAAAAAAAAAAAAAkAkAAAAAAAAAhd1HXksIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//tQxAADwAABpAAAACFqMJtAkajxTE4CCRcEyISAejzivH0pk8SI5tRnt/9zGPQnRtR+JA1EwWxUIS7UZG9DS55meZRh4aToYejH9UY+hckX//VTzFdv/ex//7kBUnPRv//6mCWIIPg+AvAUESLaRZgkgxAk5TrDST9uZ14uE38BUObnKzqd9MwKxwk1Etr4l3H8rPA12Nn1/Dtqjgr1Rib/t5/DlAiXdnR/7FZJn//UAIiggAc0x7R9migk8zY5h9PUOWbJuKQHhv/WOeW5TP/7UsQwAhF1iO4HpnxBvjEhZPMpeFkEEMybIn/8h47xW5X/8piFx3pivjSDFYsf///nhXwNNwGaFIdQGAwByCq8q32gBOwgYx1RdijxGfUsPXtpIY2l15bG2d/ZDvcRuzu9omrZEgHF78qF0DSAuBOHSVTzDUc5j30H5EprFGPQ0sXY5qnHzOVLYu/W5jZq1cYSM5j3mehhhAPz//UjeMDm7T3//9DQkBXCQLIKBEoSKhUF2FscbILBvEGZkw0hrOX3shjDd3xx/DK//7tMlm5+//tSxBAADjWJJUWY/oFyMKl00Z6/2n7Yykh2HE7/81XDdEB+ZsZBxR3P+/ezyZO3T6dhZO30Wm6b7/mdu37ZzEybKvU9cgIABnPzeyH/MVZMyn9LG5leefHG//8fJhAAIAAAwSBwtLbYLbbYm0iQMkL8OYhBzzUlSial9fs12W7Ul6LtiPHgsfVXqPnqRFf//BA6m6CXhU8/5GzlecSNpZPp5RE/vPTSGDaNjvCwwb8b+KIZrftROe3qddv//WcwRuRHVS5ZbbbHQkQAIkVtReb/+1LEBoAMAYctrBjrwWiwpfTxqXityiHbUfjs5iIxzkai6MWY3s2Lh3pTa2MQ1+DI0lOveenzSpM1Spjuc77Zj7Z7JVF1VaN6fOmNRN7IhiDqNNXt6zN/6/XrbX5/q/PqxgFwBAPHjVM5rNZGwmQAAfoGdCS4Hva8DUM4RQxp0WYGjiOPBhTFLlyFnSRwRpSSf/coRNVlstPSyFHy6zDkZXWiOq5v7mnZ+9qOWKW+jfu19bbdm77/7eQdS/Jx0CchH6ouSRyRxsppAFxZ9xBhov/7UsQHAAwVgzm08oARfhzvdx8AAteS7OdmDwpm0VqiAgRRxYxRr2iYkWUhFZlVmFSMUyIxm/qoxNNko7Pe8THkO6lWkoswodkVdztSezVUp0kMtYuQcitRP////////ZSBxDzN3rEegzGiyWpFQiEAQFIgDE/IGI3KTy90MHGr7U5lx08dTKIOXxpE0zRO4YrGmZEM+XEhZg4FlEey79AhhEHUcKRTU/6BgXEy4hfU3+hoIN//5/RJs3LgL10fnCgYeX//6PXVzC3qzntvUkhd//tSxASAC5jdfbz2gCFqL+49hjTojfaCfPRZjEeJyaZJNagOumkNHYUi+TUkS80qIZGmowAwaKKVMcoXw2eaI6SSYdC0wV9FEfhOv9Idwc4Tn/zR/+YKRf+dN36nBz7un2xDlMNs8d5THAIdhMwU9iMOCCteayodQhW69cikHpNJTRKEs5iG7B89uusxYf083MvH0gAcUslj/ckQkQXEfB0QV8YgZDX/hRr/6iz/zjK/6H/nf9tvo1Pb///1f+ibK/59lbYAZqGAA115ZOlQ5aL/+1LEBoAL2X1lzLVRQXAtLDmmlqhjtmt2LVxRNd23AZGrukbrp63Cchq09W1nUkg8Ckzoo9SYPQLelWXX86EGYqb+Xw8/XuBYEbf5Qf/9RBv/0Grf8eF/VuUb6eT/+rfM92/8z/yGSAGhgMg2gEC2gNGvQwlSoynoWVS2+uh50OK9G7vNUlKbDz2Ofl+dzOIEJKYxV+mS4Ce/5kHAHvWv0A+hOy3/UGgw/6iOn/ywef/GCb/8JE9W6fr5W/9v/X/476nxAHuAgRTAgANMtzyOOv/7UsQHAAuAx2Xu6UHBga+rfbUKqEtTqCgFFw1IZak+xRrxpEpDQQXMYBITkjYClfLH+svhISIiKj8FsIbfh6DaBG39RWEUNv9xVIn9OVDEWX/6mf8iIvh31/Z9n2/f4hd0DbUAJVAyCPJggo4w9EJU2FD5AiFI9HeIROTu4xeXvAzuiSfQTM0c2/q3yrurTjgHK7yovUeAPgJG/wMgoG4rlv49KhxP8Ygsk//Ud/9yN/oN/5Df9B//V//T/0/8EX/qGSqUBni8t5jIBokTrzKh//tSxAaAC4VpWay1VMF+pyr9vDS4c4+DB+58n7idySujPSbroi5iklixqlXJYg1RPtouAx6yk31CFAiEf6zgTw2/1CqI2r/hh/0A2JQ9/1EQW/4uN/8ib/y////t/6/+UL/QCjEAJDgTBJhGwU4rZY40dDoCb4sg+7KH4VEpYpBy2UTZAYyBZu597rh5ww8XagjFFM0F/TGIAjVf5gCFDYn/oiRf1dEJcbX/yaMlv9ZJr/3JxD/8r/+l///1Hvu2VP8uPtQdcbXI40SEoTiRo6r/+1LEBoAKPSFxp6m08UQbr/z2qpaixg8ZwlBINjuOyKzduEuWEfz3cDci9WCGeldmv9QyAj/6gPn7/PDIAcv+sFNX/6P/on/+oj/+XD//Wv/yZ8h89sqd6B0MCM0m7rv5Uk4hpnLsoMlSIewJ9nQxNpEuA38JMfwlBmOdaqmGufkKlb0n/GYJEn/Y+AnQRpBX9A0b/OBgU///8p/8m+e9b/LvuyPzG2rVlhvsBpiwzuRxJnEKVtM/NoFACymVcNqa2XFe2jwEKAsoUwx2asGoWP/7UsQTAApU82msPaWRQJustZA2ghtS+pQjgvY8E/6ggih/oDjBUof8ljb/qGxvfyTPKV/K0f/OfJ/O/+X15HboZkA3BKxHG2UjDgZjcgt6AvwyyndiMP87DeS+MbghWFf6/7GbWa8Yfb+ISnk7nwEe/+wWsovUr4moXN/+SB7/kQev/jhf/nTf5/1/7ch93q+tSAZYcQpvSJQ0rj0dmInrqN0udAkxhHpRjliosHPu621nIyLdkQiSD/wS4Lcbq6HWJK+tfyKJU/q6ITsYF+T2//tSxB+ACgzdWaZlo4FLoa909p6O5kR3/6T/86W/Dfr+U+z/7vK+h7c7/2aRpQTxIN52ZGSHW8Leoy+Tr7Ir/lVGoqL/KVvB8IW1V9/e5KgSxHx/oBgu1b4nAN/6gJL+zcwJv/IP/sFQk/85/+pfuln1ZT7MlvqfgdVmAGWCWG7taQDCNl5MYMGwthraHmizOOUDCfxdcJkYhkDF6o5AOjpODeL/68fhKUOSCD7ArR5/86CNn+c9QxD/q92/8yb/nS67zn//o/8u6l8s0A3A3qn/+1LEK4AKPN1z57GucVAvrDWoFfM0mm2sQbEG5t0AspHCnZw/kDMsVBL4xnHEzRUifQ9NIhwB4Fmiq/o5wUf1/LrdTdZQFifl+b/4P/41vRuIj//N/6//Gv6t//xZv+pev4gyQAIgLISSjDMalrvFwTdZUHdKroRMceCIVZoxCBAPxLo0jV2dC5wNwSH+omxPy+c/UPLco3hQHDc7443/KgW+z6r9G4+Q/8xvb1Jbf8Sb8x630dTqBs8m7t9dZG7ETkNSZMEf8BD2c0I5xoQh/v/7UsQ2gApdDU+NyO1BTi+v/PUJ/+YwajBZ9ClgC4mu0jOJNAMgQN6dQxfnFvFYGlvP6hfjX/hW+nhX9G4ML538O3p//5f/Vf/X//7eO3WnAIaTrD2viSdLxp0u8sWNGixFKdKdFqYtodMkuCpIQhwTKqemg6V6lqBkn5Vy3GIFH5/guDurDnkCezeIn/1J92R21nvK5Fkj81urPenXsxepgpDAjLCTLf7WtygZD1Uhd8GEBYfoYyP2RUR4n0TUUR+yNZO+2pH7HwltPKOJ4lhU//tSxEEACmyvY+w9R2FCle/88SqGfRDPAWToTvygaNzTvHSf/kIiquG/X3V/Z9Gypvo05rTuFpAIqt1z6LOvQO6oNGTHEiLaMRcQW4t0GTKYQ9CBfOMMCBHThMsJRnr5gae32bx+X6iJ+vUCqJ328jwth357y7tt9bHzG6lnodRq9ThQiAFVTlT8qIAKd2pE24IzmQU4KO3cRXYmyxd792O8iSVwQiVDActZaahqUJr5wgIO4ZBQ8qUJ+gDQmdL9B5836j3qfRivdRqlW2/I4z//+1LETQAJmK9ljD1HcUcQKr22Kdz7r9gu1VQAVFeIiOWSRsW5Oq40YQEgQ7SDXbciVbb4ekkIes7pCDU3YepgzT9ibE+hus3Uonh/hhm/0v7m7/t1KboO3p9S6lP4xYiTEB6Laf9Gr3cclwCO7bWX2NotrdaQX3gAA5JIU6YjOIffxplvncEIQLcoAEXxULiOo1Y7oQ8eXqKeeRfoNzwWnfqBFFdAIK24JlOFdEmefEUsybVPfO6uv7P/a9UgAhPW6VRpELGac/qwxgAHmp6Sav/7UsRbgAoRAW3nhFQxRxXsNZOJ9oB6BxHJhSl2Fye2lRRVmOU0W01NFZ9LaiUGpJoXC14GBP/6KzfqSBWq9DH6mp/zf26tb/t6FE/s//b/2ihIBKVAErrkBDADEGlo2BcFmYpmZRCKYCg7lu4w9x7HfrtDcWmx/KBv40JPFYi/zDyG39hXHCryMg3//lGJ+rcrnf6E/mkc9vNf87//////R/2KrCMAQ1WQAXSVtFiVK7SmLpGZoNPTrHoNhppKxabHT4rGL4NRa3//ysYL3VXy//tSxGgACh0DRa49RxFMMCk1wCoTl/zMLcv85WXKg0VOAU/xbE/JBn/+b4VArI2Cf/9/5f0b//0/qCmKAbbo42kkbKpZWwALgIiAjQcgBNC6zBgJAIimWoZZb5IoeSWIKX50lzBv6higuL8xQTDwp/qLBRhN/2X0f1FaP/J/maT/1/RGp/9v/X/2///67jVqIgBDRXeRrI0kFVo1DLDmkmZqieYGVC3ZwVVmJWctzKap0rt6aRsBk4VTX/LAmiX00ax/X/zxQY+B3SwblAoy4jz/+1LEdAAKSYFb7LRPOVAwabW2lardWSTk9t5cQK+RHcgT9H/3DmAAEo2UattoBBmtDatgFCpoqymfQqXwQfXexBTNl9jtY6l0pGr9VAAphsf9BoEAuTVlFSGQDA/t8eJkS9kO8plipBbvNV/t33vFP////WtZCgAACfqNVZGgFwQxZUXtMDQ2M6IoPpLAcKvNHXaUpBBJsXhaE0cf0wNm/5OwmNrU27ETv/mHtkTL++ar22bv6H9P7+rfqmSFE/+2v/+n8z///5YYQWwCW9t9nf/7UsR+gApUhVXtYmUxP5ModcadmrIwIxtpacgFCUqDNZIFKjju5GI3DDkW+ZiTJIW/5buAlC+98VdsHaYIsrk52WwAEML/mBq2N5w0uhHtkj2JznN1/R//ubhzhj1f/3//XUQAZFaAfbWyMBFyJMpQyiIBnQttF+V5OytJl1nsfRRGUaq/UOIpVz2MgYVPUr4WBDIT8olRQxyt7NNPf7GdV8i+R/o/i27sQvQKKdn6f///4qmAlNxvtbZGUj5hh5ahaZpNYY/fhib/v44bE7He//tSxIsACoGBO67tRIlOoCm1tYmqTCxR4j1/6aj9QmHirrVWWw/RnozjFcqv4weEBYFZPoe1JmtL1fzq3N/+3lr0YQRq+39H/+B1KAiTo2sdkaCU0MrmLciMCM6zDQwBpoYDKUuUpSBMv0gbQtZ//0dEBt3lI0qtZFY5GROvby0ERBDwrw+Q08c/OjUfHOP+rP/+4/omQsc7//9//bFEwG5MNvpbIyW7n2GFq1oGpzB0R+y4iwi70qF2W+VAiUz+ZOnPH5+gsIsjqqbOd2g1of//+1LElQAKLQNb7LRM8UigKfWkFeL17O6g4yQMDkOWKUqCr58pKV92hbgmdsnf/9xP/lBZRABkaIB/tJGiAIQ4zKUBUAgXEaBtF0VzOSuZAdFcrxCGowsO7nzHYTDM4sE5ohmBzukyLdv2OHYdvV6zfN7dAT+8/dsJ/UhjrL6v/7f+gVMkgEuQW2uRsAtHGH/YYgnNOpQNHsEYm/7+OGzux2SIeV/wlC2dIQQUIxjMKSPMGNoDs//ZAbmX/FS5H8NeYUYGQ9kfa67JptC9uuV////7UsShAApw60etpKtRRRBptaUZkv/Fz6pICNy3W2SOIF+HxaUhNQRGSVQKXndQWZyuovaBl7vgF6v8YDDwg9TidivcXUcqIPiasis38PsAY79bsjuhOk2VC/Zf+zd/q6pmYOiY5T8l//t/8cCAS3RbIpI0G/6/jD0TDV6Y0oAWuxB/IbcBhlvmDSLfuZyOUiC7lpc2cqaXZifqMGO3Q7yM7OrVfYiqIyNPqLsfJsZXGZfrtqoUvVd6/R5T/xZEAGVogI/8tjRW5KoZZFMiN7Nc//tSxKyACgzbV+ykTjE/Fei1to2SmGv8/K5mnWe8wXIw/icGcimCkFigRUEzKlQc4Gy//3BE54qAxMCo1BJYHIlA6mWGqIpUtb9ukHeEf/p9P/JCI0AENWcI2skaIR/kDlpiSsxXHhziYbW4w+7t2P+SPKSf8kMiQIwTruyN7o8I4ntOcz/2TAMnUTJNUVULKAk60nSaXE8SZWuAT+Uto/dp/+2NKAqmw2+ltgLqblTot2MBIEg1KoE4q4xD17vE4Jyj/uhBTsUhgatFo4YQRpf/+1LEugAKbQVHrbCqUUagaHWzlYqU4y/kBhyOtGVGXZGWl7Uo8zK9MhlqajhdW0e/TKCV1TBbd///qxUAAhHXbU2RgDwNMxhnYACDm/Y5IEEgMTA0E+bicv8GL+szpOZnPQkyopC6sZFr9JBrvuw3Vas/96If2Rc5dV3fX3Pt5jjenq9v///////M0HC2H0UCdnmAj/3WRkNFiP0c0EDeFy+HyhRkj1Emi7pDT1foBmOJoQxzGdSR2Lg+iuot8pGortBmKbSullVqI/fa63q3V//7UsTFgApQg13sBG5xQhCqvYON1iSL5BIN68s+1TPn7tH/iigEm4G9skSAXdx/1BJeYnkQ7Cm7W3YXmrfSZ/XXD/uyHIJIRj4jiSUPtIWdHZXSz38wgEBp1aVGSZyksWlVdEIkrtbe37t9HOTqcE/0//9n/GkFAAhekutDjQBuWy1rSRoNFRmT+GeRIg6ns2rjLtZLPc7MM7Nf0Wcc7mJHRhmocY5Qgx09XS6/mlx5Wq62erNs6ujGnKzoxzmTls31mLZtjWR5qasNyP999U////tSxNIACmEDT60wSJFLsKc1t5TQ//z///zBqFhW0JFAWV3CJ/9tjRIMtpohdAvg8RwTg3E+XQnkf+5evISjkkE2VYsOPR4IHgmoXDLjQy7/DEMi9L/0K95nxX1BpvMvtQ8o2ZfWoEQVfp0f/1f9glUEBg2ZZ0tsAGCgCxJmIjAIQBWYzweY3BOictl7oFcqBr38bG/Hef9rlPO/cthJgi4lKfqGnRSI//TMUDGTBn8r38t3NG2nvFjNdnfJd0LNMbNf6Z5R3+n/+n/0b9v//x7/+1LE3QAKJQNh54RPcUmgKnWDid4NBYqXBAAUcfdCSABgkFQEy9BQwaETfUlN1h0MCidbW3AWDdPD/qtQP8LQTdXNAYCamc1Mw0ABMp6GU9M0qcfV+q1ZU6Ndn3u2fd9qaHHbto/2OaVv9f+2l0Xp+3///9QtB6GBMgAGVZtrBIiAYEA8MvEoaFxMZM8hl8WJesKe11mIvLf52CHh/v/lR94xiFSisMxcEIlLr1jt5//g2GHH/+ZnopCKjzzNzPMjcn7XXa72Xv3tRjX+6//bv//7UsTpAAyJhTOscOGJRRbrvPKN5v/9f//5UWgYFiAABMatlgTQAFSKKOorswgGPh+gfMBwmj4wxpaii8KfX5Nn5/+rA+HTZka6uYRQgzOUn2nl/+QUEY/88jPOcIjVSsVzmynKyMbZqO26KtX/o5Tfsn/2Vrf6Nf6P//+w4BkVyWoABKaWy0JIACIO14BWCCwfMg7cyQF1Mnpk7asSWdO949bZMu09UK5z1KXQ2OtSJRV+F/HihqdO2yNR8+846cizDtLrvO6LN+i9mKs7/9+2//tSxOwADIGFMa6M84GCsKX1wano//6vb//9X+UUKDd0YBRHdofayRokcVNLXCAW0VSI9h343KIDXnSb/FoO/wMgVMZk7WOjkS0YpS1ttVf3KGEt+9XvkPWs+pj1dz2Zn3XJY0ZKM9PUSl//f/+3///+r/RwqtUIBBOSxsNEAAUFYmocIgNEIUGHEIGMoWJotUhEDOK3t/n0GJsj3OKLr0x6jusyQiMpdrAhq/1OKli1PV9nzFRSqspt7fMp0s1kaiNVmr5xQo//p7enV/8r////+1LE54AMHYUxrgzzgYmwpfWxqjg0d0MaOhkIAmCAIkkjcCQAAgCo2yQvWGCB6NceEACwelY1h92eMwr6/NofLk7gOl/Cvv6m7GbNKyLNRUIEf8qM5a+9XV1OtrVDptnNc1nNa/ZKfTq37mHpV/S/9P2b/2//9DtRPYqgMgvEinQO7tvvVbGgCRNiSwIyEEgCBcswoBgJJ9ochfp5r3foZokNjSGbDEiTcowpYOGQ67uX6L/GKbG7IhLnu7dpmvYjbvb3XNmpkX9asm/rb+n////7UsTjgAtRhTGuDO9BVrAqvYMJ37///8dUEAZZYBN22uokQAEBSHW3T4R/PtdCb6oHHhuIN3ePDf8XAYQ1+VMATdkYgerKggDTtrlW/+Pjhz2fRXosqfojJZE0zLr93tU+6NPf93OKJ/X/b//9v///yhEBIrL1CAQUMcTCZABh0TtmUWGAWMigxN6jGooUNZ5AkKfl5b/OySiNvEoCMpKQ4Mci+ZMOZAmXZlxp/KDI55T5in2NzzrqTEqmtTPX+ujJObPY5l9HJSNG/Nf+bX/3//tSxOkADFGFLa6NT0GHsKW1saog03///8RbjIRYGguR10Cza+7aW2AmATvsURHpC3yWFtAYuSA2eM8r6+40//ymeUJv74Zq+4c95G769tjHuou/ocGDpmO3yEpMiIbZ3d3Qh01c5zOqCmimPQ9xyuvnHIN+v////////TcbKgAIkpYowkgAYfALWINYUOBkwfgTEgZXkoe27ytOhV7/3Tc5hfv6yrKpJZylB0hoSgzeynnb//EDqmDL/Pz59qc1vV5VrmRDqVnSyPKVXL1PPQr/+1LE5IALFYE5rYyvQWcwpnWhnegZ+n/pr271od///+OspcDAoEEmKBFdr98pIgE8brroiM3OYhIx7QFL3DiD1wXr/42abDHxlMQxswfmZQWHZaTGzGICigf8eFqKMXnV6I10Z9L5HqrnRzrKq2J7F/9zlGk/P////3////qOAUTKhgwLdt79lbEQqLGPM9VmGI4vFEXQij3Oq9t/n3Ir6xiYXmzUQMSjhYp5XHTaS4+X5xLGGY2RFbHKc6EIlbqe0qGXlZ3spnrm1Jt6uyN/r//7UsTpAAzRhSuuDU9BdLApdYMV6///6X////oMGDlyUAju1u1ckbJSRlgp5gGoEROPw/G9IJDPy3GtkKE5hi9ztZgd048gcLN5aOrR7DJIJ/KOCCo171uAQiSVcoG0VpHAA2KkGPEQUObgKoh5rV3c8rU7/UBQ3QgNLdr7C3EAXTwgloxYAxnLBAHBiabT3ybZ873eV7X0EzgoZXr5GkB2DtulyHMoSSlo/RkMFBZ6vsrURGPr2nK72Q50MeXZx1THd7HGPou09T3Ij7f81mf///tSxOUADJ2JLa4M88FrsKa1oZXp///o2r//7hOIwiFwgL9r/9VK2QmpQfAjjgdkfbeRXbtluCqKBbQsgsu3rOo1KiaynalfiWHvLZ2VWr6sg+KD6vvapFaxW6OrGZWqjbUqt1oqyFvzpPHs47+t0////9G7//6mAUyqBAf3+2tDjQBQPQW8TMU/Bi0LfRl/GcIel7W1d7B+Y8/s1E43WnK+s0XphwrAVCOS14JY0EFGZXF8/8SHV/7Dmbnl7dSukZp6bmey+Ymks12r080eZv7/+1LE4wALIYU5rYxPSV6QKPT0CeptP+f//+b///lRYFh8WkCgHNZddXJIC4M++jOLK4mOU7pw6oG3xAQHAYisO90wW7LHNEt44ChIDRYIauh4shPFo9k84ERYJZP3YQAUDeC/9/ZYm+ic6+hZx3id86WueXjf8Llef1M9ftIOiqOW1X///wCSdQD6olq4HiJJKIsF0AShEBXCFj1aYUNXCuSAJGxJE4lZuNkVskcOqGerw6epTaqYlM6VCQVKiIRMEpGtpErh10JDpbw4lF1wNP/7UsTogAyRhTOtjPEBaLBm9ZQVcVZ0Rf/2e/2iERAqAFpBQYmaErndB9DiHPBI89qeokqq5QCb+BiDMoCsNaJUmFHjpEFTsjlZLqPf/+IsRD3f//WGj2oKhpsGg6dWEgKqTEFNRTMuMTAwqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq//tSxOcADJmHM62M84GToCl1hg3iqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqr/+1LE4AAKXHEvJ5htAQUM4xjzDMiqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqg==\",\n  duration: 1.019,\n  format: \"mp3\",\n  license: \"CC0\",\n  author: \"Kenney\",\n};\n",
      "type": "registry:lib"
    },
    {
      "path": "registry/soundcn/lib/sound-types.ts",
      "content": "export interface SoundAsset {\r\n  /** Unique identifier for the sound */\r\n  name: string;\r\n  /** Base64-encoded data URI (data:audio/mpeg;base64,...) */\r\n  dataUri: string;\r\n  /** Duration in seconds */\r\n  duration: number;\r\n  /** Audio format */\r\n  format: \"mp3\" | \"wav\" | \"ogg\";\r\n  /** License identifier */\r\n  license: \"CC0\" | \"OGA-BY\" | \"MIT\";\r\n  /** Original author/creator */\r\n  author: string;\r\n}\r\n\r\nexport interface UseSoundOptions {\r\n  /** Volume level from 0 to 1. Default: 1 */\r\n  volume?: number;\r\n  /** Playback speed multiplier. Default: 1 */\r\n  playbackRate?: number;\r\n  /** If true, calling play() stops current playback first. Default: false */\r\n  interrupt?: boolean;\r\n  /** If false, play() does nothing. Useful for user preferences. Default: true */\r\n  soundEnabled?: boolean;\r\n  /** Called when playback starts */\r\n  onPlay?: () => void;\r\n  /** Called when playback ends naturally */\r\n  onEnd?: () => void;\r\n  /** Called when pause() is called */\r\n  onPause?: () => void;\r\n  /** Called when stop() is called */\r\n  onStop?: () => void;\r\n}\r\n\r\nexport type PlayFunction = (overrides?: {\r\n  volume?: number;\r\n  playbackRate?: number;\r\n}) => void;\r\n\r\nexport interface SoundControls {\r\n  stop: () => void;\r\n  pause: () => void;\r\n  isPlaying: boolean;\r\n  duration: number | null;\r\n  sound: SoundAsset;\r\n}\r\n\r\nexport type UseSoundReturn = readonly [PlayFunction, SoundControls];\r\n",
      "type": "registry:lib"
    },
    {
      "path": "registry/soundcn/lib/sound-engine.ts",
      "content": "let audioContext: AudioContext | null = null;\nconst bufferCache = new Map<string, AudioBuffer>();\n\nexport function getAudioContext(): AudioContext {\n  if (!audioContext) {\n    audioContext = new AudioContext();\n  }\n  return audioContext;\n}\n\nexport async function decodeAudioData(dataUri: string): Promise<AudioBuffer> {\n  const cached = bufferCache.get(dataUri);\n  if (cached) return cached;\n\n  const ctx = getAudioContext();\n  const base64 = dataUri.split(\",\")[1];\n  const binaryString = atob(base64);\n  const bytes = new Uint8Array(binaryString.length);\n  for (let i = 0; i < binaryString.length; i++) {\n    bytes[i] = binaryString.charCodeAt(i);\n  }\n\n  const audioBuffer = await ctx.decodeAudioData(bytes.buffer.slice(0));\n  bufferCache.set(dataUri, audioBuffer);\n  return audioBuffer;\n}\n\nexport interface PlaySoundOptions {\n  volume?: number;\n  playbackRate?: number;\n  onEnd?: () => void;\n}\n\nexport interface SoundPlayback {\n  stop: () => void;\n}\n\nexport async function playSound(\n  dataUri: string,\n  options: PlaySoundOptions = {}\n): Promise<SoundPlayback> {\n  const { volume = 1, playbackRate = 1, onEnd } = options;\n  const ctx = getAudioContext();\n  if (ctx.state === \"suspended\") {\n    await ctx.resume();\n  }\n\n  const buffer = await decodeAudioData(dataUri);\n  const source = ctx.createBufferSource();\n  const gain = ctx.createGain();\n\n  source.buffer = buffer;\n  source.playbackRate.value = playbackRate;\n  gain.gain.value = volume;\n\n  source.connect(gain);\n  gain.connect(ctx.destination);\n\n  source.onended = () => {\n    onEnd?.();\n  };\n\n  source.start(0);\n\n  return {\n    stop: () => {\n      try {\n        source.stop();\n      } catch {\n        // No-op if already stopped.\n      }\n    },\n  };\n}\n",
      "type": "registry:lib"
    }
  ],
  "meta": {
    "duration": 1.019,
    "format": "mp3",
    "sizeKb": 8,
    "license": "CC0",
    "tags": [
      "zap",
      "1"
    ],
    "keywords": [
      "zap",
      "electrical",
      "laser",
      "energy",
      "sci-fi",
      "power",
      "short",
      "crisp",
      "futuristic",
      "game",
      "UI",
      "feedback",
      "action",
      "fire",
      "pulse",
      "quick",
      "sharp",
      "digital",
      "effect",
      "synthetic"
    ]
  },
  "categories": [
    "zap"
  ]
}