{"_id":"aframe-vartiste-toolkit","_rev":"75-d37165184de4416ceeafc168e5a5c17f","name":"aframe-vartiste-toolkit","dist-tags":{"latest":"1.34.0","pre":"1.30.1"},"versions":{"0.0.1":{"name":"aframe-vartiste-toolkit","version":"0.0.1","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://gitlab.com/zach-geek/vartiste#README","_id":"aframe-vartiste-toolkit@0.0.1","_npmVersion":"5.6.0","_nodeVersion":"9.9.0","_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"dist":{"integrity":"sha512-Y5hkl233uzQylVbN0Pb7eezpH0/+LqsFEOrdcLGdF5O0q1eBbxNP2X9SC2C5+9dU+wyOt3MveWmYJ/M8WkFVLA==","shasum":"6061ca683ef2f28cd891bffce1427ba202d6a34d","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-0.0.1.tgz","fileCount":77,"unpackedSize":24031977,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfIgs0CRA9TVsSAnZWagAASB8P/ilvngnF6rjFe4KjcCdj\n40XvUxDaxjeJAGgER41AHesW+br0phbJ4qm2Dgadp2y/hFNEj9hMNw+GpAds\ngKEFcmfraXTp25nGgx7fr+EfRmPJHgJtavY+9SIAOjEd5UmiBSz33nZSqxBw\nj7k4tq5yoBSW7w5dG49JLeWbaZn7W0JxMR8mZA7qK46b02LJ1M7j7HNREXtf\nqKcqMEGOxNotXEzCndKPmykh5US1G/xVqo62kC0n+ggahxaeuM/gR5ihfg3X\n47/euTR+S66bNcN7hf/Byb8XMI0jn2Ts2v8i2qRvhlRMHUXZO8EJliMqkVVK\n1OoEwbY3LAdF+nSj8Ads8Sg5113g7jUsaUq/u1m62fxttoSHa3trAXAKDkGW\ndhfpzRoNf0kwApz3eVpMBikYPuxf5VrqP4CHGz+/MbD4GywbXZXOCO3zy9ce\nXKnHpwTBlLW8CL2WOxK1FX7k9ozRZFsDc5Rmi9R5e5BO33dpy4PN//SmlJTN\nB9k3CQkrvdRAGkETHMX/btn8e/FqOEbX9eUWhbMYurb19qExlqDmoIoLSM+m\n77BIiKqJEEY+W3KTKJ+snZK4bdj2RAZ2BOEeMdbi3lGP8Oy/Y6vBeBPDvAiZ\nsFMtd1T2tWB7xu7KbFtDkf7L0YpuE2ztIVzv9WfVLKMHCjbvXkJsP149iNZp\nF245\r\n=Pxxy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCjkIsVzdkxrSANM/JtljgE0AO4CkHJKxJ3dhdWvcRiRwIgaM/8F7yp/SDz5cDV/3yMqb2s6ykD3Jw0cyr2V4DaG1s="}]},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_0.0.1_1596066611429_0.31083600819473034"},"_hasShrinkwrap":false},"0.0.2":{"name":"aframe-vartiste-toolkit","version":"0.0.2","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://gitlab.com/zach-geek/vartiste#README","_id":"aframe-vartiste-toolkit@0.0.2","_npmVersion":"5.6.0","_nodeVersion":"9.9.0","_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"dist":{"integrity":"sha512-o5BIiSZb0sQDjDXHay8/RcpXPIgfTca3hGxSzP6Jpm1LhPpT/Zq8nBFk2Z6RRtOImT1fqnKZAgvH/LBN17BPuA==","shasum":"48499e1ec41ec403d5fec8bf34d0517c5b53e318","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-0.0.2.tgz","fileCount":31,"unpackedSize":4257144,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfJhFqCRA9TVsSAnZWagAAMG0P/3gLF+EqO5MNaCPbpa64\nuwqVSIyxRU32fYIaB+vAq3FyhETqd4+3CU5v/uvz1dloQpfsxu9TGu0FoDgK\nld+kkDHJBM8vYNdgna9NGDdVo3KpGVAKxYG96sbUuS3/aFK+xeRzf3rcsCzU\nV/x3yRcAr4dyYNY265/BZwL/mYBLl1czDGPftXSe7iqtiPS2aNjflT8Dlrzw\nAP0+bvnK9yjB2qAKCaUzibQ1dC6VNLZ+5KSngmCwFMDC22uEa1ICgc52OZif\nd2rVs3WwPndUOQsn2FKzVSYlGKzmiQjUwVLMmBTfUkx/0L4hudznys09lz1s\nGUs24I+G0aZ6MsG2GtA6VsjlhnBESZYyQRbgNBkLOFLOzHEOCLtvFoILR2m8\nc52FCv+zUQpqUFJVqOl1/LeUhy15s8N1VpBYS+OqYu2DXSY+pe4QbXQPwBmn\n/vkLWeqXpLf25blWihsFfAU+53l6XcpaA9pPUjtrq0SNxjuXgStYgA3GKL28\nDzXntwxvzVanCQ2wDS8vdGIHot0CRJTX9uNZvtyWP+AGrrRkx+d+ADIPU/w5\n2hYZ2Vf+ZTktLZK2gmw+3jYcYrTsR9JVrOLz11h3VUKcgChSpv//HojzyTy2\nboGOxnkNekl2cGQ5h14gln5zDTtC3gaR8AcaXBoFznOjmOGPHbvcXzneg4pW\nL3kL\r\n=GvqD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCUML1FVzMHeEmAsVAAsY9rUKnyNLazdHvYh355OqPlAQIgc3/ZraNeMU8K8VFlg4Vqj+QWXvTooFpZ8XOZH9wU7VQ="}]},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_0.0.2_1596330345431_0.7854717845291861"},"_hasShrinkwrap":false},"0.0.3":{"name":"aframe-vartiste-toolkit","version":"0.0.3","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://gitlab.com/zach-geek/vartiste#README","_id":"aframe-vartiste-toolkit@0.0.3","_npmVersion":"5.6.0","_nodeVersion":"9.9.0","_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"dist":{"integrity":"sha512-BIq7NIygJnH/TVCansLIj9XqUAlbiIvb6dYkkU7WoY8B/AsqAxBcT9MaBJwyn8WhgmT8EPQNjqIafigQt0HoKA==","shasum":"45d03ea7ecba619bd6ca9ca77ce8570fd2861572","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-0.0.3.tgz","fileCount":31,"unpackedSize":4257978,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfJuGGCRA9TVsSAnZWagAAmagP/10vw990RXtboexuX15Y\nVorNaPECEaO0DeRlCtXnpV/2gHSXhPdU25/O0TpMsPE/uYPpccLb9L8rMmUK\nmfhMcfCkXey0L9WbtofS4e8ocbFq5vGKF8zh7zSRsKKKZpgl//98bqR18Ahg\nWzph6UwUKDXaRTwUA5B4ciO84ll9Pe925yIAEzsoWnrmD8Ye+l7YLjCXEcxt\nHuXGVwgml+y/vJDTEXAccgBBvmjp3lXOn5bpBfacG1rUIoFVDf8FkkbfwVct\nuAt9AvmQPXhUyPInthiwnHCL7B17X6erll9EMS2akNH04aSett9QWUJ7p0ST\nWOE0Ve0sOBb5kkCF+ONLK10CSzVodFPIZBi66xRIGPtyBF5YJiec7lPmht2H\nf0/96+ZU3oiz1SO4ABPX25druOFKbERswJPLp0QZoTD54KJx+WxIKzQYEI6q\nsy4DUIfLlvkhywRKhUGG1nASL9xcyUV4C7PXgpyjBKdcC01Yb+zXI+oyTWYW\nvIAQt0/7baEcjvoUGBmQjTnjZF8tkImVLnBiloVVzS8ZBFXAtNedTyoaAcwM\nGGAJkhadpqELs/9Xmu76sK5NYS0NqWXVBtCszttpOo2fxZGpiUe4jLYWDw1V\n5Wn9kbapUFeOUJsOCSQqxGFpfmGEnHtWrynk723sijGu/TONSXE7nAsORKRP\n4XjL\r\n=rUkM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAHLI5KH6JcxovI1+tmC+SoHOvJh2C4V+iKM1wKiB4u+AiAZGvLyd86dr3wH4Av8ONYz0/0AKyDsaCoWWXhuXxtXVg=="}]},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_0.0.3_1596383622093_0.29027951090896353"},"_hasShrinkwrap":false},"0.1.0":{"name":"aframe-vartiste-toolkit","version":"0.1.0","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://gitlab.com/zach-geek/vartiste#README","_id":"aframe-vartiste-toolkit@0.1.0","_npmVersion":"5.6.0","_nodeVersion":"9.9.0","_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"dist":{"integrity":"sha512-3cnLt6xyIl3NWENnyJMRrS9FB6hY1wWohiEuyqU7UJpECJ7ZX9JWZRX/zKymxb5qbnYDvMoLug9s4NLuGkckDw==","shasum":"9e5c90dc20b2cac9d41c8b4778d04823fd4a1372","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-0.1.0.tgz","fileCount":31,"unpackedSize":4266412,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfJuwvCRA9TVsSAnZWagAAOWgP/3/SNo26bI4doQg9jsB9\nrxupgqaOVtl/hZxpYUgm4adxL5bjVJbsUbBteChv7Zj3ysolaYczb1XzCM0T\nrSOMoRMf9IY1gp4O3b+ujUgZSq+gIs1iJdSt0wCgBC4r1UQOYs0mLiCAIhUt\n0wHGUysDbp0eWTHh6rsPRV8KkC12v/m3G1GgVaEmH9cvoBfNt6fT896adZ+b\nM0exGeY5uKIdcWMmSxVFA+rmm5VmwE0zvxEy4t15Xhc/ULAkjGg2XWCAomP9\nbCAgER0F26lqRoFxExkS9NVmbQBMhtivCm3oLbADE0pnRW8Zfe1VqPvDyw8F\nJsPjl3IBppneIyRZ63s+i3tkd8P1zkrl8HLrlhlEvL3dtSakHHnDvb/qcal9\n1OeZRfQQn8UKSYA6HLGQeRkMZfNc3QfVPOy0TSwVrWQVjrSRAddLgq8El3qL\nIcSwbu+P8VuRI3sknGMXAPjThu13RuGZOE3PlE6b05ImJNH9VrtqYpxkFPSD\nDBRmXbUypZ8Q9eVL+KLuqLWS7vaGlaKG7qYx3NjreUh5jxQRRDhX57cgjiEI\nap7QQuveO4FbG7CkGZ/Q7ZJ49t97KYASUD3abFoAc+C1iOt0L65nBtFb5VhJ\n43kIb/lNq2MBBn51E8/an8nHBX38saXZT5dfcrpnb387ft48CObJcE8HAVWN\nmSND\r\n=fmQL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFjZAZ6X/i4FZVjusc/9t7Is27u5bPPocGJWiyVcAg0LAiAP+oCgZKyn7l4ijVmPF8bdSwhmsqO/xZgcpl0MChB4qw=="}]},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_0.1.0_1596386351049_0.16795792591479963"},"_hasShrinkwrap":false},"0.2.0":{"name":"aframe-vartiste-toolkit","version":"0.2.0","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://gitlab.com/zach-geek/vartiste#README","_id":"aframe-vartiste-toolkit@0.2.0","_npmVersion":"5.6.0","_nodeVersion":"9.9.0","_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"dist":{"integrity":"sha512-9wPd/21FtBXUL1qow2Tz6E2eNTr+rHuV2jPugML1+Rvodlr8y3cjQdIv2kpuNgBGbrPQ97esYmM2PwNLT124ew==","shasum":"3a2b3580566d3b3f2e8273c4121e10b9d0582221","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-0.2.0.tgz","fileCount":32,"unpackedSize":4448466,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfNsSCCRA9TVsSAnZWagAAqBsP/3OWN05oVpDIjp/mpjoS\nZEAipot368iiNFKaFFVtSdMK1+Ww9g1Ig5ZUJ+qtvH2fGiFfEGRogzS24ZHb\nuWBUjih8T45YZAabYgINVKrSJ4iF6/zqR6KcAvDrg00MUWhkPS53Jp3+LgW1\ngcphEgtHPqOz4o9wBlP1fEQM26zGCUmg/P0aSH9TTkyZT4ShGMIoma+RgCjk\nQCdGMtqfm1HA2EiJmje/g/0oJtcgzhW3H41My2Rbh/QYOzhjebt/XgSycviG\n0Zpfb1lzG0Bha8NT7yS1fKGYdVA2ubOZEkm+GKWVJkKrEMUFSk/wdVZ7zQ4Y\nHDIiAJNu0XxiY/ZjKSYUsd4C6He9XX7zgVYRRUink5c/f7zRnDOu1ODnMlUg\nDsFwvtOjp7nq0nXoawr4l2Ph4oDOI2oo4jcqbqRamtM7hzujHsbetahdCbfy\n7DX58bLpN2XYnXkXtknX0z6XDmeiUwDcc5yk1J8BBwGkkl7FpDFTPIi2Nf2U\neO04jNv+WZhvzmwLWUyO4FNhj+A1Lh4jJzpmw14C3nL0hYER7Oy3RNgYdtpw\nlvTTfA4eOcAdag1mPKOQ0FooJzbpX+FKrE+NjxYZEKpztn8oG4j2CSDM0fwz\nyXL1F06zi7Y0OWXGrrDq7n6fqeoPIv7DCF0FbpmyIiPCbdNfuJDvdGMr+cYW\n9Rsn\r\n=lCMh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGZod10CbjaBeWmS+JG9MOZ+O8Bg+zJZd9leNVN0BmZMAiEAuuVZByq1//xc+gb5wu58FqB4lbKD3E3sI++Hkd7Gnso="}]},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_0.2.0_1597424770252_0.4847905341761596"},"_hasShrinkwrap":false},"1.0.0":{"name":"aframe-vartiste-toolkit","version":"1.0.0","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","_id":"aframe-vartiste-toolkit@1.0.0","_npmVersion":"5.6.0","_nodeVersion":"9.9.0","_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"dist":{"integrity":"sha512-cQtqlhtFnpAVVP7RCOUHjpOsbAt7UIEBXGQAjVUH2hoB4j8NhiHj8b5T/V3lb6p5STNvrSwynzSX6ozfQU6lDw==","shasum":"fd3d12908177a1b73e52265fd9d72188da3935c3","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.0.0.tgz","fileCount":41,"unpackedSize":5368758,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfU9p4CRA9TVsSAnZWagAAR3YP/2s1Or1KYy3/CKlh7CuE\nBeftwhvT8yb6Bw6IjfqRAJUxcBGFMUONQWv97+qaowwX50NV9OVy0D4UkQaW\nDcmzotPZCGdN/CdcPgurKSvZjNWpSNh7C69sDJo2NUswVYuV7aefsYt4DCs1\nHHOVQ/8jc344uKuL9VPQUPlDim3EFDcOKdDKknv+yjFRIoigXr7u8suXm/Mx\ntvlDdKZlhTQlzZVtEiedV95EFoIHDhiK+kP/l8yEic70+Po0BZRJAO9HtoRJ\niPmybiiEt45Asw+A4P80yjIuaqGIifpR5dVzKwOzhdOaN3ihirsYgSYTkQNK\nIdSDQruNCNgu5Dew1PBU1VKZanQ2KlyPQkmS0J1wzeGQEF8R+EeRZyhjgKme\noiTxOH/BhEELvdQSo6p8WE8zkowMqVeWlcRNrvpAnoYeNQUe3i7/68yVYllh\nRMGQF4e24YLuJ2Kf7vxgHnA6walrwKkgWFweWQ31EHhIa6Mmx2LjNrbqo6Jk\naDZ3DCFZ8Q9rMBEHaYqVzbjUnngxh+DVp6VxO7mVjVCTlZaynH8+Gl1IW4Ea\nLMabV30HqO6f5m7rHx5yQ5fidJAu7zdOt0WbnZFpGv5zQJ991W5rE9anULsF\nWAFLKU8s8rdpH+Dx6aBSHJ8GU6YYz2TaNFzAD9Ocgm9jiDfKdrVT3Z9WRqz8\nBfLa\r\n=+tlx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHmTmIHidbQ4XZkXfhypmGw3i1+s7nA219rieJ7xdETaAiEAx4C5hHwxWi+icIpbOm5PifM81y6xAAmoj0lOe5gJdcQ="}]},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.0.0_1599330935922_0.7488734305883114"},"_hasShrinkwrap":false},"1.1.0":{"name":"aframe-vartiste-toolkit","version":"1.1.0","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","_id":"aframe-vartiste-toolkit@1.1.0","_npmVersion":"5.6.0","_nodeVersion":"9.9.0","_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"dist":{"integrity":"sha512-eAMr7PoFTZneFZiOvfHIzJoaY7CUo0s0Cq+ajEg+MuGpg2HTHBq9Th7EyrWpD1i+H72nB0zZddCjfgCvOK+MRA==","shasum":"db0f298967730d9105a6ac053182319070cbe090","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.1.0.tgz","fileCount":41,"unpackedSize":6284982,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfZ6ueCRA9TVsSAnZWagAAQUIP/RnI3hp1uzKnBWscKIPy\nWP1X3L9FnY9U+my0F3fBbXoOz5ZPcBwB5WS6OAoCKwza4HByF1D4ruXzNHsa\na3QOZ0RGnUgiTmHETCYxRtT9fXMqZHBw6J0kiS+lslmsUzIeNYZh9o0fx6/U\nZaOTm7ZH5Uc9hI5WDXM8qxu2NGXK9mwU+5HBORhd2nEMWSe0JaTyzVSfROei\ntV3iMCsGCuLQyyjEbQSIjgjGaGtGGa+m88u5wtB5ONvOO/E4nfa9DSV11YA8\nFOPxwINPWk0Dvp++CmVSOsKXqM41PWx/dMrkS36dMg0gCxSfK6j95nFwbdia\nyCzfTvHJtWZ5MzngXJJ5snhi2bPxnwQNPn1ODmlY+i2YvC2zpeY8At7lCkan\nGkBhltK6bJPjsm+9t+IQo/4eXyJwDi+Zo7EFHUW2yZcQwdQICO1ie3KCvMZ2\n0c3xLlxK+ViTavnbSeX0ksy9m+vfbHorcdNj6rqyYCkx8TNl1mnG9dxyaqCN\n2oaVrR58EwKZgvdC9Q4IzoHEqe56fXZaSWhaOm04OdTqzRsypBrnkmweqUai\nudQuAkBWlDOq8NQ74sqifbYy/JcOHjnIsrZXg+Ut3GxJmGjnywUyAYvz4E6/\nN8tRpF1SjNeT4PR692HMWMZusNAWKK0Xh1NgZhC5DOQ/b3SxedXRkJZbxnq2\nH6iV\r\n=+i4u\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCMQoeYDbkXSsf1zIW0sMdSumhg6q8oFVler5ZV0Tm9kAIgbDW+PwmAo6t6lvZ9O/stPp1ShCDNPxtJ2ZDswnl1/pg="}]},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.1.0_1600629662176_0.15947894985604294"},"_hasShrinkwrap":false},"1.2.0":{"name":"aframe-vartiste-toolkit","version":"1.2.0","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","_id":"aframe-vartiste-toolkit@1.2.0","_npmVersion":"5.6.0","_nodeVersion":"9.9.0","_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"dist":{"integrity":"sha512-pwf4H4CYEGCCKSIIUfGneKLbFBGnxkDNxBsCVMm3n3FlXliIaeNVIjvIkPPYtg9fo58/hBchQr3dhffvDpTV4w==","shasum":"0da3b7543a10c56a3762c7c63b85501cf225ae90","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.2.0.tgz","fileCount":52,"unpackedSize":11288477,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfd9hDCRA9TVsSAnZWagAA/X0QAIZaOy8kGvH/EkjDSZGG\nU6PHOFbU5ZhFyxXT8hbhxaomtO9MfNiP+Fu5wYRq/t4SxT4+2d9jr6flfpG8\nFIaJxcrH61NWbHqVvC2HC4aJ2JHOrS3uQkPgM/2pYXjyr6VOn2nIOWW2kqbo\nrBodB3deQvOHOb+H/QDnE7giWHyiSMgIaamRAHxK3gg150nH2XbYOuQ+kMy0\nk9auhT7lzmmAEMhhWjZEc81iKijovbW0PX7G0eLiJ5eKrECI3bffJpRhzIBQ\njSwHlcMa6UstDJin8sp//QIhe9eRXN10GzyNUyazG4kTglLYfSsC1BHZSKU+\nEKRD0w0j4ukvQQDt/yuYsxCGmf/9E4LRahXXb6J5f9rAR+qfkSxKIKenuFIR\nc8jMbUuLkUDvXCE6Ke5KO7nl/XFcAoHaEMo5FV+qGt2ITpSqn/3qI3gyoFhK\n7Byp7A1jggSOcgzsBmv+wVEHk9mbz9Ws9l2C4Q4C2OiWEQS0zTeM8n2h+5OH\nbrBs3O8H3uthjG33B5T05l6gm14aenLyHKzCn6ig3b60ME9o1Z+WsXTH7pJA\n2B3O5mvyuMVMydiEtAgU1ltL6Gn1AMIUf3/5340CbqmUaWBRFPOUBruleYi+\nwhj3t7tILu5PN2YxLmi2n8vvMm8DQFiKKJvpTQ+WwMR+qfHnKOCt9oLoECFy\nmMAM\r\n=3Dsi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBgNaZAepCsw2a3P4VFlkrvYxCL7SDNsSLiPPrUlnizaAiBOwR51/fs6BMJuqa02MieuAUD1x8TLJ8I4ZH0TxGLJ+g=="}]},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.2.0_1601689666255_0.5954834510642519"},"_hasShrinkwrap":false},"1.2.2":{"name":"aframe-vartiste-toolkit","version":"1.2.2","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","_id":"aframe-vartiste-toolkit@1.2.2","_npmVersion":"5.6.0","_nodeVersion":"9.9.0","_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"dist":{"integrity":"sha512-JJYsRSJsURUTnOFLEH+mtGQoqdbNQDGU+chUc0NHwaomH8xf6D/CThwHBdLZP+/TSl2JaXgwOquzyTEaQMGaWQ==","shasum":"0102a810c08905a0a19857fa055d6114547a4a6d","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.2.2.tgz","fileCount":52,"unpackedSize":11297726,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfe7rZCRA9TVsSAnZWagAA5lMP/32vwYpG6Pecw2w/f+vY\n1luDESNWUUad53BkDMSX9LcwsKKQQvOuFUm+2x2uTNaEJIla/cykza4Wz3Dn\nGdfi/Hkr12rORRxiwI0FGI4CrQwbevesT1fkO2A+14XyTk8/3Sa69pDBTvbE\nb+4v/Ua8jeI4oiW3HOng1nBFqG2ieSH6LksO7xHmx9+rt4Ozjmq6/wXCBmX+\nh1mIhhkD8Z7CWQFydKI+ViYaMM+7bdz62Thh5h/GZDMjExhuvdECh7dXoK40\nnfVBXd+ksxKCjNw9TsydTW1Z+XWarJ/HzeCk6KtFsBr3MeWMnjntVoJelYwF\nNcQBg778udVG+m4WmU8qM5UtxZn4y63EiOtg2JLTFyvj/DHXNpsDH8bqpt8e\nEv9tT2Feyq6uHXXWHEbY6n7iiZ9vL8uSO42uCy8M408TKoSWL1cDWCtiFnIF\nyLeKEHQ25hysxypYvkJfV4o9Jy2xPF6jx5aKSF5f3Z2gdDnwMN8QbjLV3N13\n0mIjEfd85wQcaEQGwVL/2AWQrs6Sq7+s7FMyM0xu20qBNyoH5i0Sop5vem14\ntJJ1brp7qR3JDWMgzMEch4seST5aYseMbuA1KXUJZgX2W02RHliTras/y5aK\nhzCX1v+y9hAH/1U12mer88CxLvbl3VcwSn/z6TG70cLIvx72YMSHMs+Ne+50\n/ZmO\r\n=ZlKk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDhJpl7OVftlt0fU4XxfWgH4D93OeAecadXxB5FqbP8iAIgdivoFGb8rQZRhDqJ4UsBcZ5RI3V3FFEoVZp+F4V5yp8="}]},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.2.2_1601944281162_0.25625254989236756"},"_hasShrinkwrap":false},"1.3.0":{"name":"aframe-vartiste-toolkit","version":"1.3.0","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","_id":"aframe-vartiste-toolkit@1.3.0","_npmVersion":"5.6.0","_nodeVersion":"9.9.0","_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"dist":{"integrity":"sha512-p8BJVK6/9W9OBctx0CWJEu3Fv+7v1eCQm34Jdo6zV28zLozb46Xs1pTAvqxICJxXFdyxb4gW0j53oCNs2q/uUQ==","shasum":"0f709ad7e9126b1f3a3be04bead62b39fd9402b7","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.3.0.tgz","fileCount":54,"unpackedSize":11480216,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfiZdCCRA9TVsSAnZWagAAsCYP/1DJBpXBreG+REfF/wmQ\nFaMnYZntbXJOSBgeoIrJYqRhPda5VOhY/QBicrY9e5NrHtbqT41KyYjTB4Js\nlXA4NWSUg8TYBSp7f+USx5Dd2OfXJMC8cmxCtkaf2J1TbiP4TrkuXyow7bB4\nS8xeb4VUC2V56t64p4LNupD1U+/WinZo2JPq/c+V8NIcurpWRFAoNugsEgjm\nIkVfdIB3qAe+ny/aju66ERRLT6sYdBXEb09qKD3yao5wPkrEpBV12ns5ba/d\ncbCm4cPtjnuSUK7kAacKNHbbO/Y0fVM3+5gbY2LesJ+4S0GrXk+YXI3PhcF+\nzyLRXQHTk/cjYyMbGHbqjAQliq57g7JwGZMRFDVxTFdHOVhktB4jmdU1XIV2\ngqxRX6o6bj/XJJrckaAelc1VF7H9okRY60gNrUadC3pwrR/4EBtm8z0aIQ59\n9U3r1AQ3aM2dvWozXWUR3Iq9scN711kv16XjZW0yeUC/ZZ5U0mhYbqq34KEt\nw7YCGkKuL+HHTsOgkDQErUdx969GDb34Qt6Ia9WycbnsanXapwCm/0c6iMdn\nTpg3N9fut8V8w0GKaGkEluz5oTclHv2Rg7+vRQtBiRijnOrRyU9QH4+2C24D\nhb8X/QAZ8mH5yQ/rCsm63ecpdlfddp11dJSFOViz/b01tkxJubmYtb8hbOZa\ncitx\r\n=mZGH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGSXX+j1lklb53+UP0WHP8yRuM1l+gToHaR3WQwRQf8tAiEAw3Gy2LdqtR5zwBCZxNg/nptVTZ/xWZLhiyzWRBoEqqg="}]},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.3.0_1602852674256_0.4578015189518161"},"_hasShrinkwrap":false},"1.4.1":{"name":"aframe-vartiste-toolkit","version":"1.4.1","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","_id":"aframe-vartiste-toolkit@1.4.1","_npmVersion":"5.6.0","_nodeVersion":"9.9.0","_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"dist":{"integrity":"sha512-gmBy8H9gUDqgNdDhImRxdVpFChI4x2CYfxD26fzwBH8iaKWkf5oCG93Oq6DXejAupQNGtE29GzuGIda08FJN7A==","shasum":"6f28a503161d7017e5711a075d40f8ed85ca80eb","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.4.1.tgz","fileCount":54,"unpackedSize":11500131,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfiwbmCRA9TVsSAnZWagAAvrcQAJFSOiBFpConA3Ym/4Td\nlh4rLWmU7UtLdVpCcA6fPQuJGZGn3Hj8ySobT3fmc44+3tG2LYpFVNEDA/O2\ndjdBfvJL1fgc0ziRWjchPZp+VWHnPcgi39apIbRWdJ2wYQHRpz6bQ/TuJsvk\ne845ZRpkfQUxkV7eQbP52KTh1kBQuPEsI/vT8aUHssSsEbvmwVRP3jCY6CGr\nSr1Y/YPgOjec+t2VnFagd/OVkj7VT5f6og/P4R6T12MombbPfwU55WPspTIj\nbF8pBvy5JWlRGYmGx4IvxYRFIJZiY1CqMr2AT6qXY9mSnhT0dPHY868fiGYr\nbN7pD7lSaQ1xq7z1pQvRLQrzDXLCv4x5EE9akiCjVL5xMQNn5UXfyCtPJ5cN\nPaJDm2XRUCMVqk+MTkXWHXUkM5tn0RQU6p30Xf3JlB19jQjKASoKAMb1yrCY\nFpSYNXUi2INBavnEiJoBuceUXo/8utcRzBecLjmzxE2Ua5tTP7mU4Hk8O1e9\nFtfHVAejxKMZtZF3nRo5cB4jdl8brZC96DL4M89voQWFZjj5CQ1MgKZmQlb4\n6IhHr1C9LVWu9wgcYXX4rjNb0o/NbHxa+1R7JN6NZGzDas9zM1TRy23a475a\nXBsamqbVQeVwfSuT88Uog1jlbDzCGE/XaJCYGHY7rKmdC/bD+mlP0aOJINrg\nDDDi\r\n=CUfl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICXwL2Dj3wkLXNgcg2ZjinQGBZWuEnNnxkYzcOOR4T/6AiEAygN+AYlBgGh2vm98zPgWMYjGHlXLZpxI72NXie1t0Es="}]},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.4.1_1602946789979_0.9482662764212477"},"_hasShrinkwrap":false},"1.5.0-pre2":{"name":"aframe-vartiste-toolkit","version":"1.5.0-pre2","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","readme":"# VARTISTE Toolkit\n\nThe VARTISTE toolkit is a collection of components developed while creating\n[VARTISTE](https://vartiste.xyz). I've compiled them into a stand-alone module\nin the hopes that it might be useable to folks to jump start their own projects.\n\n# Installation / Use\n\nThe easiest way to use it is to include the `.js` file from a CDN, such as\nunpkg:\n\n```html\n<html>\n<head>\n  <script src=\"https://unpkg.com/aframe-vartiste-toolkit@latest/vartiste-toolkit.js\"></script>\n</head>\n...\n</html>\n```\n\nIncluding the javascript file automatically registers the components and\nsystems.\n\n## Assets\n\nAssets required for some of the basic component use are automatically included\nby the javascript source file.\n\nIf you want to include *all* VARTISTE assets in your project, you just need an\n`a-asset` with a `vartiste-assets` property, like this:\n\n```html\n<a-scene>\n  <a-assets>\n    <!-- Your assets ... -->\n    <a-asset vartiste-assets=\"\"></a-asset>\n  </a-assets>\n  <!-- Rest of your scene, etc -->\n</a-scene>\n```\n\n## Customization\n\nYou can optionally customize which components and systems are registered by the\naframe-vartiste-toolkit by setting the `VARTISTE_TOOLKIT` variable *before* the vartiste-toolkit.js file is loaded. `VARTISTE_TOOLKIT` should either be `undefined` (default) or be an object having any of the following properties:\n\n- `excludeComponents`: Array of strings specifying which components, systems, or\n  systemComponents specifically to exclude from being registered\n- `includeComponents`: Array of strings specifying which components, systems, or\n  systemComponents to be registered. All other components, systems, and\n  systemComponents will be excluded.\n- `excludeFiles`: Array of strings specifying all aframe-vartiste-toolkit source\n  code files (from [the component reference](https://vartiste.xyz/docs.html)) to\n  exclude entirely from registration. All components, systems, and\n  systemComponents in those files will *not* be registered. Any classes in those\n  files will not be defined.\n- `includeFiles`: Array of strings specifying which aframe-vartiste-toolkit\n  source code files (from [the component\n  reference](https://vartiste.xyz/docs.html)) to include in registration. All\n  components, systems, and systemComponents, and classes in other files will be\n  excluded.\n- `assetUrl`: VARTISTE Toolkit assets will be fetched from\n  `assetUrl/assets/####.###`. Use this option if you want to use webpack and\n  have a custom public-facing URL\n\n# Component Reference\n\nThe full API and component reference can be found at\n[https://vartiste.xyz/docs.html](https://vartiste.xyz/docs.html). Please note\nthat it is still under construction. The source code is available as well at\n[https://gitlab.com/zach-geek/vartiste](https://gitlab.com/zach-geek/vartiste),\nand contributions, both code-wise and documentation-wise are welcome.\n\n# Example Scene\n\n```html\n<!DOCTYPE html>\n<html>\n<head>\n  <title>VARTISTE Toolkit Demo</title>\n  <script src=\"https://aframe.io/releases/1.0.4/aframe.js\"></script>\n\n  <!-- You can specify components / systems, or files to exclude from being registered -->\n  <script>VARTISTE_TOOLKIT = {\n      /*excludeComponents: [\"frame\"], */ // Will exclude \"frame\" component\n      /*includeComponents: [\"shelf\", \"hdri-environment\"], */ // Will include *ONLY* the shelf component and hdri-environment system\n      /*excludeFiles: ['icon-button'], */ // Will exclude all components found in  aframe-vartiste-toolkit source file 'icon-button.js'\n      /*includeFiles: ['icon-button'], */ // Will include *only* the components found in  aframe-vartiste-toolkit source file 'icon-button.js'\n      /*assetUrl: 'https://example.com:8080/', */ // Will load vartiste assets from https://example.com:8080/ rather than the script's location\n    }</script>\n\n  <!--Just include the toolkit js file from a CDN-->\n  <script src=\"https://unpkg.com/aframe-vartiste-toolkit@latest/vartiste-toolkit.js\"></script>\n</head>\n<body>\n  <a-scene icon-button=\"shader: matcap\" renderer=\"colorManagement: true\">\n    <a-assets>\n      <canvas height=\"768\" id=\"draw-canvas-asset\" width=\"1024\"></canvas>\n      <a-asset id=\"hdr\" src=\"asset/studio.hdr\"></a-asset>\n\n      <!--You can use all the default VARTISTE assets with the vartiste-asset\n      component. Otherwise, only the ones needed for other components are\n      included-->\n      <a-asset vartiste-assets=\"\"></a-asset>\n    </a-assets>\n\n    <!-- HDRIs are an easy way to get nice lighting and backgrounds really quickly -->\n    <a-sky color=\"#333\" hdri-environment=\"src: #hdr\"></a-sky>\n\n    <a-entity light=\"type: hemisphere; color: #eee; groundColor: #333; intensity: 0.6\"></a-entity>\n    <a-entity light=\"type: ambient; color: #fff; intensity: 0.6\"></a-entity>\n\n    <!-- vartiste-user-root sets up the default laser pointer / mouse & keyboard\n    interactions. If you want to define your own user setup, you'll want to make\n    sure to include the manipulator components on both of the hand components to\n    ensure that things can be grabbed and resized. -->\n    <a-entity vartiste-user-root=\"\"></a-entity>\n\n    <a-entity position=\"0 0 -2.5\">\n\n      <!--A shelf provides a definitive place to put things. \"grab-root\" ensures\n      that grab-and-move events propogate to the whole shelf-->\n      <a-entity class=\"grab-root\" shelf=\"\">\n        <!--icon-buttons position themselves in a row automatically. So we just\n        position this outer entity where we want the row to start-->\n        <a-entity position=\"-1.5 1.1 0\">\n          <!--Simply pass an asset to icon-button, and boom, you've got an icon\n          button that responds to a wide range of clicks-->\n          <a-entity icon-button=\"#asset-eye\" onclick=\"alert('click')\" tooltip=\"Run Javascript onclick handler\"></a-entity>\n          <!--You can make it a toggle button by adding the toggle-button\n          component-->\n          <a-entity icon-button=\"#asset-oven\" toggle-button=\"\" tooltip=\"Toggle Me\"></a-entity>\n          <!--You can style it, too-->\n          <a-entity button-style=\"color: #ed8607; clickColor: #8607ed; intersectedColor: #07ed86\" icon-button=\"\" tooltip=\"Look at the colors! Woah!\"></a-entity>\n          <!--Add the system-click-action to easily call methods of systems-->\n          <a-entity icon-button=\"#asset-account-voice\" system-click-action=\"system: toolkit-demo; action: speak\" tooltip=\"Speak entered text if enabled\"></a-entity>\n          <!--Or add component properties directly for the toggle buttons to\n          toggle-->\n          <a-entity icon-button=\"#asset-check-outline\" toggle-button=\"target: a-scene; component: speech; property: speak\" tooltip=\"Toggle Speaking Enabled\"></a-entity>\n          <a-entity icon-button=\"#asset-help-circle-outline\" system-click-action=\"system: toolkit-demo; action: help\" tooltip=\"VARTISTE Toolkit Documentation\"></a-entity>\n        </a-entity>\n        <a-entity position=\"0 0.5 0\" text=\"width: 3.4; wrapCount: 35; value: Welcome to the VARTISTE toolkit demo\"></a-entity>\n        <a-entity>\n\n          <!--You can use edit fields which pop up a keyboard-->\n          <a-entity edit-field=\"type: string; tooltip: Edit a string!\" id=\"demo-input\" text=\"width: 2; wrapCount: 20; value: default text\"></a-entity>\n        </a-entity>\n        <a-entity position=\"0 -0.6 0\">\n\n          <!--You can also have a numerical edit field-->\n          <a-entity edit-field=\"type: number; tooltip: Edit a number\" text=\"width: 2; wrapCount: 4\"></a-entity>\n        </a-entity>\n\n        <!-- You can make interactables, like this lever -->\n        <a-entity lever=\"valueRange: 2 0; target: a-sky; component: hdri-environment; property: exposure; initialValue: 0.7\" position=\"-1.621 -0.917 0\" scale=\"2 2 2\"></a-entity>\n      </a-entity>\n    </a-entity>\n\n    <!--You can put a frame around anything with a geometry. The frame can optionally be closeable, or pinnable to your hand-->\n    <a-image frame=\"\" position=\"0 2 -1\" src=\"#asset-vartiste\" tooltip=\"Here's a floating frame!\" tooltip-style=\"offset: 0 0.5 0\"></a-image>\n\n    <!--Adding the clickable class to anything makes it grabbable-->\n    <a-entity class=\"clickable\" position=\"-3.0 0 -2.5\" text=\"width: 2.4; wrapCount: 25; value: Desktop Controls:\\n-Left Click: Click buttons\\n-Right Mouse Buton Drag: Look around\\n-Shift+Left Mouse Button Drag: Move things\\n-WASD: Move around\"></a-entity>\n\n    <!--You can use some of the VARTISTE drawing tools, too!-->\n    <a-entity canvas-updater=\"throttle: 5\" class=\"clickable\"\n              draw-canvas=\"canvas:#draw-canvas-asset\" frame=\"\"\n              geometry=\"primitive: plane; width: 2; height: 1.75\"\n              material=\"shader: flat; src: #draw-canvas-asset; npot: true\"\n              position=\"3.1 0 -2.4\" tooltip=\"Draw Here\" tooltip-style=\"offset: 0 0.75 0\"></a-entity>\n    <a-entity class=\"clickable\" color-picker=\"\" geometry=\"primitive: circle; radius: 1; height: 1.75\" position=\"3.1 2 -2.4\"></a-entity>\n\n    <!-- There's a few handy default constraints to restrict how things can be grabbed -->\n    <a-sphere class=\"clickable\" constrain-to-sphere=\"\" material=\"shader: standard; roughness: 0.3; metalness: 0.7\" position=\"0 0.4 -0.4\" radius=\"0.1\"></a-sphere>\n  </a-scene>\n</body>\n</html>\n```\n\n[View the demo on CodePen](https://codepen.io/zach-capalbo/pen/oNbKagV)\n\n<p class=\"codepen\" data-height=\"330\" data-theme-id=\"light\" data-default-tab=\"html,result\" data-user=\"zach-capalbo\" data-slug-hash=\"oNbKagV\" data-preview=\"true\" style=\"height: 330px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;\" data-pen-title=\"aframe-vartiste-toolkit-demo\">\n  <span>See the Pen <a href=\"https://codepen.io/zach-capalbo/pen/oNbKagV\">\n  aframe-vartiste-toolkit-demo</a> by Zachary Capalbo (<a href=\"https://codepen.io/zach-capalbo\">@zach-capalbo</a>)\n  on <a href=\"https://codepen.io\">CodePen</a>.</span>\n</p>\n<script async src=\"https://static.codepen.io/assets/embed/ei.js\"></script>\n\n\nFor information, you can also read through the source code:\n\n[https://gitlab.com/zach-geek/vartiste/-/blob/release/src/vartiste-toolkit.js](https://gitlab.com/zach-geek/vartiste/-/blob/release/src/vartiste-toolkit.js)\n","readmeFilename":"Readme.md","_id":"aframe-vartiste-toolkit@1.5.0-pre2","_npmVersion":"5.6.0","_nodeVersion":"9.9.0","_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"dist":{"integrity":"sha512-TyckmrPB5ZcdN0mBxdrejMDrXEzmWxHW0wmfgdnkCh305XOBQibDpBjllx871nCfGWmfV1wLEV5qkkpzcV+X2w==","shasum":"15e502d23cdd7012515d959cee31f01fdf533e37","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.5.0-pre2.tgz","fileCount":54,"unpackedSize":11532151,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjMkVCRA9TVsSAnZWagAAXgAQAJhy5bQ0+JnqjLeQEo6C\nhg/yiCi3P4HVC/fu8FHtPQb4fUKBI3b8SlQtjnOMAR7P+3ESt/i0Rmd0lCuX\nfJ7GIZNaCcSGgZjl0/wXGdmWJ1sAH8EdGlhKH1+5yHByuuYTQclf+RWYOOn4\nwRkahGIHxkIS/csLBW9BW13Kfl0kS161lkEtSPIIK74ketglKCukzxnxRQ4X\nHwxdyHBFl0TSQo73Ir6exws/TjBWTBii0onEhPZE8bE0E08k3l7f1Nkn5NKc\nFlLLhEg0VzkVFIBEO7QtIt7APU/ayA4edxbZAWHjyO7+/zt6aGTMCXsa64y9\nA89Nf1mTwvBV9CNtLsLTPytphIlwSkWlkS6p5fhHkDovo6doXGwA60Jq/mml\ngu3+nUhGscqb3bm9aonjDbrV1keobzeQA0WIiA++aXsQLxBuY0AxEfaBSP9f\nMkuiRaHJU8ajH3YKaKLIH84sA13W4VPgyb5Z7Hw6i9rthVDgTckbUlBFkjBq\nUwdYSfDEFn+/OtPFX9AgDDctMGl9BKVOIdeQyU6l0bk/k+P668TcsqvW3wcF\nF7U3zDxOO3pSj7+dseELFGXovKtOFr1lD+ypSrB6m1GioshN9MEoTfwZBSmq\nzwemSyjryNYL2a6uhaGhMWvtsiB33CB/5XCcoBk80XWxtsdaB6sbcq/v6mRd\n2sPF\r\n=6bjk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC5WFC7SZwtePWtCk9iani+PBniV2XNlNvOepA7iDzzFwIhAJD+Hx6g0uz8nEUWTn4tQxRIfpD7OBP4vThVhw2AFcLH"}]},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.5.0-pre2_1603062036287_0.437719069250345"},"_hasShrinkwrap":false},"1.5.1":{"name":"aframe-vartiste-toolkit","version":"1.5.1","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","readme":"# VARTISTE Toolkit\n\nThe VARTISTE toolkit is a collection of components developed while creating\n[VARTISTE](https://vartiste.xyz). I've compiled them into a stand-alone module\nin the hopes that it might be useable to folks to jump start their own projects.\n\n# Installation / Use\n\nThe easiest way to use it is to include the `.js` file from a CDN, such as\nunpkg:\n\n```html\n<html>\n<head>\n  <script src=\"https://unpkg.com/aframe-vartiste-toolkit@latest/vartiste-toolkit.js\"></script>\n</head>\n...\n</html>\n```\n\nIncluding the javascript file automatically registers the components and\nsystems.\n\n## Assets\n\nAssets required for some of the basic component use are automatically included\nby the javascript source file.\n\nIf you want to include *all* VARTISTE assets in your project, you just need an\n`a-asset` with a `vartiste-assets` property, like this:\n\n```html\n<a-scene>\n  <a-assets>\n    <!-- Your assets ... -->\n    <a-asset vartiste-assets=\"\"></a-asset>\n  </a-assets>\n  <!-- Rest of your scene, etc -->\n</a-scene>\n```\n\n## Customization\n\nYou can optionally customize which components and systems are registered by the\naframe-vartiste-toolkit by setting the `VARTISTE_TOOLKIT` variable *before* the vartiste-toolkit.js file is loaded. `VARTISTE_TOOLKIT` should either be `undefined` (default) or be an object having any of the following properties:\n\n- `excludeComponents`: Array of strings specifying which components, systems, or\n  systemComponents specifically to exclude from being registered\n- `includeComponents`: Array of strings specifying which components, systems, or\n  systemComponents to be registered. All other components, systems, and\n  systemComponents will be excluded.\n- `excludeFiles`: Array of strings specifying all aframe-vartiste-toolkit source\n  code files (from [the component reference](https://vartiste.xyz/docs.html)) to\n  exclude entirely from registration. All components, systems, and\n  systemComponents in those files will *not* be registered. Any classes in those\n  files will not be defined.\n- `includeFiles`: Array of strings specifying which aframe-vartiste-toolkit\n  source code files (from [the component\n  reference](https://vartiste.xyz/docs.html)) to include in registration. All\n  components, systems, and systemComponents, and classes in other files will be\n  excluded.\n- `assetUrl`: VARTISTE Toolkit assets will be fetched from\n  `assetUrl/assets/####.###`. Use this option if you want to use webpack and\n  have a custom public-facing URL\n\n# Component Reference\n\nThe full API and component reference can be found at\n[https://vartiste.xyz/docs.html](https://vartiste.xyz/docs.html). Please note\nthat it is still under construction. The source code is available as well at\n[https://gitlab.com/zach-geek/vartiste](https://gitlab.com/zach-geek/vartiste),\nand contributions, both code-wise and documentation-wise are welcome.\n\n# Example Scene\n\n```html\n<!DOCTYPE html>\n<html>\n<head>\n  <title>VARTISTE Toolkit Demo</title>\n  <script src=\"https://aframe.io/releases/1.0.4/aframe.js\"></script>\n\n  <!-- You can specify components / systems, or files to exclude from being registered -->\n  <script>VARTISTE_TOOLKIT = {\n      /*excludeComponents: [\"frame\"], */ // Will exclude \"frame\" component\n      /*includeComponents: [\"shelf\", \"hdri-environment\"], */ // Will include *ONLY* the shelf component and hdri-environment system\n      /*excludeFiles: ['icon-button'], */ // Will exclude all components found in  aframe-vartiste-toolkit source file 'icon-button.js'\n      /*includeFiles: ['icon-button'], */ // Will include *only* the components found in  aframe-vartiste-toolkit source file 'icon-button.js'\n      /*assetUrl: 'https://example.com:8080/', */ // Will load vartiste assets from https://example.com:8080/ rather than the script's location\n    }</script>\n\n  <!--Just include the toolkit js file from a CDN-->\n  <script src=\"https://unpkg.com/aframe-vartiste-toolkit@latest/vartiste-toolkit.js\"></script>\n</head>\n<body>\n  <a-scene icon-button=\"shader: matcap\" renderer=\"colorManagement: true\">\n    <a-assets>\n      <canvas height=\"768\" id=\"draw-canvas-asset\" width=\"1024\"></canvas>\n      <a-asset id=\"hdr\" src=\"asset/studio.hdr\"></a-asset>\n\n      <!--You can use all the default VARTISTE assets with the vartiste-asset\n      component. Otherwise, only the ones needed for other components are\n      included-->\n      <a-asset vartiste-assets=\"\"></a-asset>\n    </a-assets>\n\n    <!-- HDRIs are an easy way to get nice lighting and backgrounds really quickly -->\n    <a-sky color=\"#333\" hdri-environment=\"src: #hdr\"></a-sky>\n\n    <a-entity light=\"type: hemisphere; color: #eee; groundColor: #333; intensity: 0.6\"></a-entity>\n    <a-entity light=\"type: ambient; color: #fff; intensity: 0.6\"></a-entity>\n\n    <!-- vartiste-user-root sets up the default laser pointer / mouse & keyboard\n    interactions. If you want to define your own user setup, you'll want to make\n    sure to include the manipulator components on both of the hand components to\n    ensure that things can be grabbed and resized. -->\n    <a-entity vartiste-user-root=\"\"></a-entity>\n\n    <a-entity position=\"0 0 -2.5\">\n\n      <!--A shelf provides a definitive place to put things. \"grab-root\" ensures\n      that grab-and-move events propogate to the whole shelf-->\n      <a-entity class=\"grab-root\" shelf=\"\">\n        <!--icon-buttons position themselves in a row automatically. So we just\n        position this outer entity where we want the row to start-->\n        <a-entity position=\"-1.5 1.1 0\">\n          <!--Simply pass an asset to icon-button, and boom, you've got an icon\n          button that responds to a wide range of clicks-->\n          <a-entity icon-button=\"#asset-eye\" onclick=\"alert('click')\" tooltip=\"Run Javascript onclick handler\"></a-entity>\n          <!--You can make it a toggle button by adding the toggle-button\n          component-->\n          <a-entity icon-button=\"#asset-oven\" toggle-button=\"\" tooltip=\"Toggle Me\"></a-entity>\n          <!--You can style it, too-->\n          <a-entity button-style=\"color: #ed8607; clickColor: #8607ed; intersectedColor: #07ed86\" icon-button=\"\" tooltip=\"Look at the colors! Woah!\"></a-entity>\n          <!--Add the system-click-action to easily call methods of systems-->\n          <a-entity icon-button=\"#asset-account-voice\" system-click-action=\"system: toolkit-demo; action: speak\" tooltip=\"Speak entered text if enabled\"></a-entity>\n          <!--Or add component properties directly for the toggle buttons to\n          toggle-->\n          <a-entity icon-button=\"#asset-check-outline\" toggle-button=\"target: a-scene; component: speech; property: speak\" tooltip=\"Toggle Speaking Enabled\"></a-entity>\n          <a-entity icon-button=\"#asset-help-circle-outline\" system-click-action=\"system: toolkit-demo; action: help\" tooltip=\"VARTISTE Toolkit Documentation\"></a-entity>\n        </a-entity>\n        <a-entity position=\"0 0.5 0\" text=\"width: 3.4; wrapCount: 35; value: Welcome to the VARTISTE toolkit demo\"></a-entity>\n        <a-entity>\n\n          <!--You can use edit fields which pop up a keyboard-->\n          <a-entity edit-field=\"type: string; tooltip: Edit a string!\" id=\"demo-input\" text=\"width: 2; wrapCount: 20; value: default text\"></a-entity>\n        </a-entity>\n        <a-entity position=\"0 -0.6 0\">\n\n          <!--You can also have a numerical edit field-->\n          <a-entity edit-field=\"type: number; tooltip: Edit a number\" text=\"width: 2; wrapCount: 4\"></a-entity>\n        </a-entity>\n\n        <!-- You can make interactables, like this lever -->\n        <a-entity lever=\"valueRange: 2 0; target: a-sky; component: hdri-environment; property: exposure; initialValue: 0.7\" position=\"-1.621 -0.917 0\" scale=\"2 2 2\"></a-entity>\n      </a-entity>\n    </a-entity>\n\n    <!--You can put a frame around anything with a geometry. The frame can optionally be closeable, or pinnable to your hand-->\n    <a-image frame=\"\" position=\"0 2 -1\" src=\"#asset-vartiste\" tooltip=\"Here's a floating frame!\" tooltip-style=\"offset: 0 0.5 0\"></a-image>\n\n    <!--Adding the clickable class to anything makes it grabbable-->\n    <a-entity class=\"clickable\" position=\"-3.0 0 -2.5\" text=\"width: 2.4; wrapCount: 25; value: Desktop Controls:\\n-Left Click: Click buttons\\n-Right Mouse Buton Drag: Look around\\n-Shift+Left Mouse Button Drag: Move things\\n-WASD: Move around\"></a-entity>\n\n    <!--You can use some of the VARTISTE drawing tools, too!-->\n    <a-entity canvas-updater=\"throttle: 5\" class=\"clickable\"\n              draw-canvas=\"canvas:#draw-canvas-asset\" frame=\"\"\n              geometry=\"primitive: plane; width: 2; height: 1.75\"\n              material=\"shader: flat; src: #draw-canvas-asset; npot: true\"\n              position=\"3.1 0 -2.4\" tooltip=\"Draw Here\" tooltip-style=\"offset: 0 0.75 0\"></a-entity>\n    <a-entity class=\"clickable\" color-picker=\"\" geometry=\"primitive: circle; radius: 1; height: 1.75\" position=\"3.1 2 -2.4\"></a-entity>\n\n    <!-- There's a few handy default constraints to restrict how things can be grabbed -->\n    <a-sphere class=\"clickable\" constrain-to-sphere=\"\" material=\"shader: standard; roughness: 0.3; metalness: 0.7\" position=\"0 0.4 -0.4\" radius=\"0.1\"></a-sphere>\n  </a-scene>\n</body>\n</html>\n```\n\n[View the demo on CodePen](https://codepen.io/zach-capalbo/pen/oNbKagV)\n\n<p class=\"codepen\" data-height=\"330\" data-theme-id=\"light\" data-default-tab=\"html,result\" data-user=\"zach-capalbo\" data-slug-hash=\"oNbKagV\" data-preview=\"true\" style=\"height: 330px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;\" data-pen-title=\"aframe-vartiste-toolkit-demo\">\n  <span>See the Pen <a href=\"https://codepen.io/zach-capalbo/pen/oNbKagV\">\n  aframe-vartiste-toolkit-demo</a> by Zachary Capalbo (<a href=\"https://codepen.io/zach-capalbo\">@zach-capalbo</a>)\n  on <a href=\"https://codepen.io\">CodePen</a>.</span>\n</p>\n<script async src=\"https://static.codepen.io/assets/embed/ei.js\"></script>\n\n\nFor information, you can also read through the source code:\n\n[https://gitlab.com/zach-geek/vartiste/-/blob/release/src/vartiste-toolkit.js](https://gitlab.com/zach-geek/vartiste/-/blob/release/src/vartiste-toolkit.js)\n","readmeFilename":"Readme.md","_id":"aframe-vartiste-toolkit@1.5.1","_npmVersion":"5.6.0","_nodeVersion":"9.9.0","_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"dist":{"integrity":"sha512-6AiPUwxXkM0UB3yFGtj9u1auRI9uEe1TvFkIOA32Utoug4HQFdI99jCMQ0DYZK/nIa8pNjeHdYqNcWfsZvgIyg==","shasum":"3f215d1ba853deeb52ced926c9c02ca3fa295814","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.5.1.tgz","fileCount":54,"unpackedSize":11543480,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfkDWACRA9TVsSAnZWagAA8zkP/05lv6w2Bb8mPwS5ge3U\nrPsmnXJiIjspdpVhMjluZgHfWt9T3IQVBY9kXsJYGgrQgy85/4w0Sa7jMfk+\nL5iymG2U+ixbEuU1tYVQchVxf3vB7dyHsdKQnStdr2fCfkpUjRi+dxtEX4OB\n6hQ7mbrGfSnhTHMZvD8w+qOvVT20C+8eii7XSU+jhQ+odd/eOERxXXCGShzP\nGvqjiafMms7brndD8yj/kkR/iQ/x+QSuuIsANZPAPukwIPMi5+12+rF2lVL8\nWsUpp5AjJadfsThDdw0nBNajJRu+rnG7Y1pp5sD9MQptR2KfJu6F83XM5lP0\ntWKjQ84I3opb7o7623Ex0tQMuvmZC22+qQmJl+kQguLz9QJlzdLeSS9kMwdE\n6KW3/l3rIuB7zccmvhKrS4FHUtbNsj2W9nm5Un1+YgJ4y8dnkby+loVSID+L\nQI4QEXyNJCL81KtCgmHlmtwpGrAJUgJNMy9w6cOcceaeTh2wa3igcE4Q47D3\neqs5ntRRg4yycb1xKtoIxqSbFGlHvRWG7OroIO4tBcENYEnq4cmSEbPOrBW5\nKOMsADRbAPO+a37KCQVWsoMNQehsSLFmUMpip9I874mUCe0xdAlKI0GrSDe4\nTJCXszSPeUbS24QIrkNTDd0IKxj9HUJRRRABCaiw2NKM16BPcgzmH+VdyYkq\njxWO\r\n=pnDe\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICXVeJnJUCp0+j40dWe+wi+PJXth4OkOOAqnpMei/VdpAiEA3RYl2yx3OYCfTEH03ClfGeEJMM0qx3qjYwP67IHsf0k="}]},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.5.1_1603286399297_0.25921918945075495"},"_hasShrinkwrap":false},"1.5.2":{"name":"aframe-vartiste-toolkit","version":"1.5.2","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","_id":"aframe-vartiste-toolkit@1.5.2","_npmVersion":"5.6.0","_nodeVersion":"9.9.0","_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"dist":{"integrity":"sha512-sCNAfiMafX+Ut1a8u68UAc4gs4qTR8nsOPntFna6HZ8X0LZFOOcRFE6xnIEPECRR6znXeEh2ckXG9Yn+fKMkdg==","shasum":"7f031486ac270bf6e6b9a6189eca7cde29bda1c2","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.5.2.tgz","fileCount":54,"unpackedSize":11543707,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfkKMmCRA9TVsSAnZWagAAnWsP/3wPen5ojn0udhtfn5oa\nb0a0tSsCzVSJ3UcxFgVPMumsS8FuVOyvV2jULxdSNVirYc5mGIQ3FRXbhbdO\nekL6mJ+PTjwdXR8hFFngn7+YOxwysLXKgXa5UozaXNumVA29ZvGrPSKV3cuc\nS27WPV1rEIcaK7N152I3HyQbXbG5a1z5uvnCzbQztJR8oHEU59Czuc5UaY3t\njwwVrVE2Rb3/xxxTWyeIKIQgAasyGh6Oo9cufc4GHcUcC/Op5wh3Ud5bU3Gk\nEzSrLjUOKD0TJRiNB/Lehg5F85tB7aZDpldX6tKscZGgdu0TlgGQxNzyOXFA\n3VRBvDXirPYI4FJN5dAkmWoxM6+LkrwJOxBl1k6m0KrY/Ly3nINHQxvEpjGO\n1vX/yCFSBA7+Or8aA4IwRrBEHtBrsPT1Koenl2YbgzTWcNfvbS6IF3EFcPKI\n+U6RyPbnjgX+MTx4zCIgGo7ZhfnA2d8oyeP8eewuPWqjwBCD8soSNCNKxXZ9\nIWD4YhLDPKB/OazSP48Qd26BLaO/EamqWP597RBT7wwyvfsm7hWkvSDu/xym\nelYiDfUNFvWl3wIdCieZPbJMXOXhWp6ZsoZ5ngOeecdKKK/hi+9xzjkhwFDn\nte0lhErbkW+npISr/1fsKiCIq7HWFVhuqw5xexU79TdjRphjotthCSSWgrjs\nW364\r\n=i+N4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDN+QeGyErff2C8/YAmwIed5BcHTYOUzV2Oo+m6f+Ja+AIhAN4HmYcgQ7VuA8wiB9jIp6oc9rgWuBSbe7tJOeFCgvM6"}]},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.5.2_1603314470201_0.5260254121407992"},"_hasShrinkwrap":false},"1.6.0":{"name":"aframe-vartiste-toolkit","version":"1.6.0","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","readme":"# VARTISTE Toolkit\n\nThe VARTISTE toolkit is a collection of components developed while creating\n[VARTISTE](https://vartiste.xyz). I've compiled them into a stand-alone module\nin the hopes that it might be useable to folks to jump start their own projects.\n\n# Installation / Use\n\nThe easiest way to use it is to include the `.js` file from a CDN, such as\nunpkg:\n\n```html\n<html>\n<head>\n  <script src=\"https://unpkg.com/aframe-vartiste-toolkit@latest/vartiste-toolkit.js\"></script>\n</head>\n...\n</html>\n```\n\nIncluding the javascript file automatically registers the components and\nsystems.\n\n## Assets\n\nAssets required for some of the basic component use are automatically included\nby the javascript source file.\n\nIf you want to include *all* VARTISTE assets in your project, you just need an\n`a-asset` with a `vartiste-assets` property, like this:\n\n```html\n<a-scene>\n  <a-assets>\n    <!-- Your assets ... -->\n    <a-asset vartiste-assets=\"\"></a-asset>\n  </a-assets>\n  <!-- Rest of your scene, etc -->\n</a-scene>\n```\n\n## Customization\n\nYou can optionally customize which components and systems are registered by the\naframe-vartiste-toolkit by setting the `VARTISTE_TOOLKIT` variable *before* the vartiste-toolkit.js file is loaded. `VARTISTE_TOOLKIT` should either be `undefined` (default) or be an object having any of the following properties:\n\n- `excludeComponents`: Array of strings specifying which components, systems, or\n  systemComponents specifically to exclude from being registered\n- `includeComponents`: Array of strings specifying which components, systems, or\n  systemComponents to be registered. All other components, systems, and\n  systemComponents will be excluded.\n- `excludeFiles`: Array of strings specifying all aframe-vartiste-toolkit source\n  code files (from [the component reference](https://vartiste.xyz/docs.html)) to\n  exclude entirely from registration. All components, systems, and\n  systemComponents in those files will *not* be registered. Any classes in those\n  files will not be defined.\n- `includeFiles`: Array of strings specifying which aframe-vartiste-toolkit\n  source code files (from [the component\n  reference](https://vartiste.xyz/docs.html)) to include in registration. All\n  components, systems, and systemComponents, and classes in other files will be\n  excluded.\n- `assetUrl`: VARTISTE Toolkit assets will be fetched from\n  `assetUrl/assets/####.###`. Use this option if you want to use webpack and\n  have a custom public-facing URL\n\n# Component Reference\n\nThe full API and component reference can be found at\n[https://vartiste.xyz/docs.html](https://vartiste.xyz/docs.html). Please note\nthat it is still under construction. The source code is available as well at\n[https://gitlab.com/zach-geek/vartiste](https://gitlab.com/zach-geek/vartiste),\nand contributions, both code-wise and documentation-wise are welcome.\n\n# Example Scene\n\n```html\n<!DOCTYPE html>\n<html>\n<head>\n  <title>VARTISTE Toolkit Demo</title>\n  <script src=\"https://aframe.io/releases/1.0.4/aframe.js\"></script>\n\n  <!-- You can specify components / systems, or files to exclude from being registered -->\n  <script>VARTISTE_TOOLKIT = {\n      /*excludeComponents: [\"frame\"], */ // Will exclude \"frame\" component\n      /*includeComponents: [\"shelf\", \"hdri-environment\"], */ // Will include *ONLY* the shelf component and hdri-environment system\n      /*excludeFiles: ['icon-button'], */ // Will exclude all components found in  aframe-vartiste-toolkit source file 'icon-button.js'\n      /*includeFiles: ['icon-button'], */ // Will include *only* the components found in  aframe-vartiste-toolkit source file 'icon-button.js'\n      /*assetUrl: 'https://example.com:8080/', */ // Will load vartiste assets from https://example.com:8080/ rather than the script's location\n    }</script>\n\n  <!--Just include the toolkit js file from a CDN-->\n  <script src=\"https://unpkg.com/aframe-vartiste-toolkit@latest/vartiste-toolkit.js\"></script>\n</head>\n<body>\n  <a-scene icon-button=\"shader: matcap\" renderer=\"colorManagement: true\">\n    <a-assets>\n      <canvas height=\"768\" id=\"draw-canvas-asset\" width=\"1024\"></canvas>\n\n      <!-- You can easily load your own HDRI if you want! -->\n      <a-asset id=\"hdr\" src=\"asset/studio.hdr\"></a-asset>\n\n      <!--You can use all the default VARTISTE assets with the vartiste-asset\n      component. Otherwise, only the ones needed for other components are\n      included-->\n      <a-asset vartiste-assets=\"\"></a-asset>\n    </a-assets>\n\n    <!-- HDRIs are an easy way to get nice lighting and backgrounds really quickly -->\n    <a-sky color=\"#333\" hdri-environment=\"src: #hdr\"></a-sky>\n\n    <a-entity light=\"type: hemisphere; color: #eee; groundColor: #333; intensity: 0.6\"></a-entity>\n    <a-entity light=\"type: ambient; color: #fff; intensity: 0.6\"></a-entity>\n\n    <!-- vartiste-user-root sets up the default laser pointer / mouse & keyboard\n    interactions. If you want to define your own user setup, you'll want to make\n    sure to include the manipulator components on both of the hand components to\n    ensure that things can be grabbed and resized. -->\n    <a-entity vartiste-user-root=\"\"></a-entity>\n\n    <a-entity position=\"0 0 -2.5\">\n\n      <!--A shelf provides a definitive place to put things. \"grab-root\" ensures\n      that grab-and-move events propogate to the whole shelf-->\n      <a-entity class=\"grab-root\" shelf=\"\">\n        <!--icon-buttons position themselves in a row automatically. So we just\n        position this outer entity where we want the row to start-->\n        <a-entity position=\"-1.5 1.1 0\">\n          <!--Simply pass an asset to icon-button, and boom, you've got an icon\n          button that responds to a wide range of clicks-->\n          <a-entity icon-button=\"#asset-eye\" onclick=\"alert('click')\" tooltip=\"Run Javascript onclick handler\"></a-entity>\n          <!--You can make it a toggle button by adding the toggle-button\n          component-->\n          <a-entity icon-button=\"#asset-oven\" toggle-button=\"\" tooltip=\"Toggle Me\"></a-entity>\n          <!--You can style it, too-->\n          <a-entity button-style=\"color: #ed8607; clickColor: #8607ed; intersectedColor: #07ed86\" icon-button=\"\" tooltip=\"Look at the colors! Woah!\" onclick=\"this.sceneEl.systems['canvas-fx'].applyFX('invert', document.getElementById('draw-canvas-asset'))\"></a-entity>\n          <!--Add the system-click-action to easily call methods of systems-->\n          <a-entity icon-button=\"#asset-account-voice\" system-click-action=\"system: toolkit-demo; action: speak\" tooltip=\"Speak entered text if enabled\"></a-entity>\n          <!--Or add component properties directly for the toggle buttons to\n          toggle-->\n          <a-entity icon-button=\"#asset-check-outline\" toggle-button=\"target: a-scene; component: speech; property: speak\" tooltip=\"Toggle Speaking Enabled\"></a-entity>\n\n          <!-- Easily export entities or even the entire scene to a GLB file -->\n          <a-entity icon-button=\"#asset-floppy\" tooltip=\"Download this scene as GLB\" system-click-action=\"system: glb-exporter; action: downloadGLB\"></a-entity>\n\n          <a-entity icon-button=\"#asset-help-circle-outline\" system-click-action=\"system: toolkit-demo; action: help\" tooltip=\"VARTISTE Toolkit Documentation\"></a-entity>\n        </a-entity>\n        <a-entity position=\"0 0.5 0\" text=\"width: 3.4; wrapCount: 35; value: Welcome to the VARTISTE toolkit demo\"></a-entity>\n        <a-entity>\n\n          <!--You can use edit fields which pop up a keyboard-->\n          <a-entity edit-field=\"type: string; tooltip: Edit a string!\" id=\"demo-input\" text=\"width: 2; wrapCount: 20; value: default text\"></a-entity>\n        </a-entity>\n        <a-entity position=\"0 -0.6 0\">\n\n          <!--You can also have a numerical edit field-->\n          <a-entity edit-field=\"type: number; tooltip: Edit a number\" text=\"width: 2; wrapCount: 4\"></a-entity>\n        </a-entity>\n\n        <!-- You can make interactables, like this lever -->\n        <a-entity lever=\"valueRange: 2 0; target: a-sky; component: hdri-environment; property: exposure; initialValue: 0.7\" position=\"-1.621 -0.917 0\" scale=\"2 2 2\" tooltip=\"Adjust Lighting\"></a-entity>\n      </a-entity>\n    </a-entity>\n\n    <!--You can put a frame around anything with a geometry. The frame can optionally be closeable, or pinnable to your hand-->\n    <a-image frame=\"\" position=\"0 2 -1\" src=\"#asset-vartiste\" tooltip=\"Here's a floating frame!\" tooltip-style=\"offset: 0 0.5 0\"></a-image>\n\n    <!--Adding the clickable class to anything makes it grabbable-->\n    <a-entity class=\"clickable\" position=\"-3.0 0 -2.5\" text=\"width: 2.4; wrapCount: 25; value: Desktop Controls:\\n-Left Click: Click buttons\\n-Right Mouse Buton Drag: Look around\\n-Shift+Left Mouse Button Drag: Move things\\n-WASD: Move around\"></a-entity>\n\n    <!--You can use some of the VARTISTE drawing tools, too!-->\n    <a-entity id=\"draw-canvas-demo\" class=\"clickable\"\n              canvas-updater=\"throttle: 5\"\n              draw-canvas=\"canvas:#draw-canvas-asset\" frame=\"\"\n              geometry=\"primitive: plane; width: 2; height: 1.75\"\n              material=\"shader: flat; src: #draw-canvas-asset; npot: true\"\n              position=\"3.1 0 -2.4\" tooltip=\"Draw Here\" tooltip-style=\"offset: 0 0.75 0\"></a-entity>\n    <a-entity class=\"clickable\" color-picker=\"\" geometry=\"primitive: circle; radius: 1; height: 1.75\" position=\"3.1 2 -2.4\"></a-entity>\n\n    <!-- There's a few handy default constraints to restrict how things can be grabbed -->\n    <a-sphere class=\"clickable\"\n              constrain-to-sphere=\"\"\n              manipulator-weight=\"type: slow; weight: 0.9\"\n              material=\"shader: standard; roughness: 0.3; metalness: 0.7\" position=\"0 0.4 -0.4\" radius=\"0.1\"></a-sphere>\n  </a-scene>\n</body>\n</html>\n```\n\n[View the demo on CodePen](https://codepen.io/zach-capalbo/pen/oNbKagV)\n\n<p class=\"codepen\" data-height=\"330\" data-theme-id=\"light\" data-default-tab=\"html,result\" data-user=\"zach-capalbo\" data-slug-hash=\"oNbKagV\" data-preview=\"true\" style=\"height: 330px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;\" data-pen-title=\"aframe-vartiste-toolkit-demo\">\n  <span>See the Pen <a href=\"https://codepen.io/zach-capalbo/pen/oNbKagV\">\n  aframe-vartiste-toolkit-demo</a> by Zachary Capalbo (<a href=\"https://codepen.io/zach-capalbo\">@zach-capalbo</a>)\n  on <a href=\"https://codepen.io\">CodePen</a>.</span>\n</p>\n<script async src=\"https://static.codepen.io/assets/embed/ei.js\"></script>\n\n\nFor information, you can also read through the source code:\n\n[https://gitlab.com/zach-geek/vartiste/-/blob/release/src/vartiste-toolkit.js](https://gitlab.com/zach-geek/vartiste/-/blob/release/src/vartiste-toolkit.js)\n","readmeFilename":"Readme.md","_id":"aframe-vartiste-toolkit@1.6.0","_npmVersion":"5.6.0","_nodeVersion":"9.9.0","_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"dist":{"integrity":"sha512-uTjAPMRreJ6ZwrFXzV0NhXGKM6q8zycEMccN2690vDcKvBCLpZXhrrUB55DAr6nMx+FRVUOOkD9atOeIlJYYgQ==","shasum":"1cf7354152e6e1306eec70e16dedf62b6b85b247","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.6.0.tgz","fileCount":54,"unpackedSize":11775587,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfleIVCRA9TVsSAnZWagAAaHUQAKHOAOR1KzfldeFaezfj\n5PMDF88Unh4ARC0DI1FeIgjZ4bztiaqfKSjy/tdaAiaXrSq9UodTtLpf/U+4\nV6awAGK6eJ7Km8J4C+k2QcoeTnSEabNEZqoMLXNkap7HnG2k8x8eWzXWeHnt\nTXvEaV+laulfVWEklE7bNTkysE3yNWoefXU5+k1t+cwzu/IFltj7sGX2I1O9\ncoJIWhLw+YrEVHv9SYu0gkYBlQKZPvwkyl9QqosiECR/VG6PHMcPgkyj/eFL\nWNNFyWGNE8JQKDZuzoPnF6naQX5hxFjv8jv+rMCgKMZkCbBV7KbRQBA09k1e\n4CQab/j/MOsyn+hcs6xVpIbSQ7FM3KAxghE0dQiNTFAyTgPvpSGdSTkDJWk7\neXJmJmDANYBlqWYLJBK2H7roz/Qs8n6BZVslrCJE/oscNSoQKIAKBjKN9TYH\nuprabY1O6kY3pnxSATdTTtkdXLoybA7MmHTVRFLIRYq9jq1CB5tdNcK7jKeD\nwhlDGHY81+XoLbDVq8P0FdMYzqsswIEjyt4YM1RZEzlpw3DJAzSaG+VSKhYO\nFXH9MeMbU97GaagXs1PpeGIby5i2z5ZYZTofnXbljhGy/0VmNbKxPjeBXqPq\nSfR9wbRT4bWUMj7Dqz5K4ORvezMKiehYtLXYhJ/lQkhHY5NNgecq4ED0MAKo\nYUlm\r\n=hQZz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCUDqMTsLoL2T2gCDNlkdiK8MVQR3dwkobMrOCR/wtErAIhAIJpIICYE1xfxePB+FKqXHJiO47X+I9kmfidNPN5WhTW"}]},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.6.0_1603658261207_0.4235922716245817"},"_hasShrinkwrap":false},"1.7.0":{"name":"aframe-vartiste-toolkit","version":"1.7.0","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","_id":"aframe-vartiste-toolkit@1.7.0","_npmVersion":"5.6.0","_nodeVersion":"9.9.0","_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"dist":{"integrity":"sha512-gqOlEaZMqR/WIb3EznixhjQGV3tXgS86MU2omf8M+GvKVgUbHRJlytYZ2OuvCrqjrMSXzpaiFaAN7RBDfwVTzw==","shasum":"49f85e415321244a9b4ceb253b1b3befdb2a2acc","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.7.0.tgz","fileCount":55,"unpackedSize":12805146,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfn17bCRA9TVsSAnZWagAAIVAP/3kalfxGIUttsFmQ4BVX\nZUDhAiXRSX0LnfHB5EDa2xP/rm4EPxv8zohlK4c/pTwFzE+QF5F49hsYZijb\nOgZ6CMRL6hSb3cdcss4luA0yPxOgxDC+5U+rfPChCFd8uaND6zh4UGxczb5F\nJuKcmJ6+FQQAkM+OUK71BBNu2cZYb7UoQfhkTVVSqPPOESBYmfx5O9usT5yG\nJrQsShkEzT9N+C784vwGh7yE7s07xyRVvX3PJNR0iAXQv5HRCR3422zlitIi\nZNx3AFEho7DyzawOF/uvkwZs1Hd4cigRamCCpVqO8zI01OpNOb/Qj1CDOzZ7\nay5zHmR6fpSc/EP5dttEJUGVUKUQIG1I0jH5lTyzqQdOEGn9Z+j5HNhkqzA0\nNGXXLznV1Pf1xXTWDMZZ0lNiP1v0nDZnmQdFz9zr7TSxAfDRnG9Wx0oT3qy7\nl9PTFzD1xhKIT4aR3hNeD9lnHFuEGXhHVUOf6wpA0AjT/ekbShTGmhrazX+v\nJew7F5I/ZPcIcTIdA+unNrj+N930VOd6fDwr4Ir5HuwrwYmru1jhkwPvTYEq\n3zr+EANZJQRwqoecGsMfX42E8+9Rh9j1SnCO2jy/0MCjjdkOvDm54aZTLLe9\nX814rbOLPMNUAgd4O0RIeENCUfZJK6Z88XzPVXvenQFfQMRxj+hP6rINY1Oz\nWsLg\r\n=18Q2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCMYQaJr7+7kyp51LyBriTC0Nso7b0Qo0kemD4BRMkUcwIgSVKdibGJhKN+66st8oXeYg3FrHS9Re1FMB6tlXePIuI="}]},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.7.0_1604280026995_0.9301400035809451"},"_hasShrinkwrap":false},"1.8.0":{"name":"aframe-vartiste-toolkit","version":"1.8.0","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","_id":"aframe-vartiste-toolkit@1.8.0","_npmVersion":"5.6.0","_nodeVersion":"9.9.0","_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"dist":{"integrity":"sha512-wz/HaZNmNMe2GuRKHTRR9oq5zI86MekQDMBONrVG0aR7w6ApFND4bpBwjUu0tz1iRYI5Fk3w/Ud98c28Kcai9A==","shasum":"887fc81b7dd8e51075bc645e188e5f59c35c17a4","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.8.0.tgz","fileCount":55,"unpackedSize":12831833,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfseYVCRA9TVsSAnZWagAAC8gP/jQ5vGj0aaOJjSwH6StH\nmd4IcvIT6+t1THnt81JBdlWQ196Xp7svzCm0ca0OmI1QZD+ul+X1W+7cOy8K\nRM4PyFdGZ+/ncmdpVOV5LBDA0fkIFRmsqrWc5XvU9uy6UuYlpliTqPYd91ko\nHuOunxIg599h9AxQe8uCfb2zGZuj8j8r/DyqcWEO0U39hUt41RhFXkZvrynv\nmbYBNzet1nvg0ylMKIjZ4ExU2ZSLmDLNYoEgByfbrpj9FV/k7eFb9ck4fM3i\nz9KCd+x0sUcVQwKipE1ALsS0IGaQLbu2WFS+9PRLc9PScyT30RueABacPdRB\nuUxhV3kgk/5GpOnKN3LNmzscEbt6OrpRINlEpPgbh/N84atetH6FbkNiarZg\ne+kaTHLGJSSmPfd7kC9nmzfXV7xeiPR6KNWDgsHU+ZwXk01+nGoCl3KVunKv\n+b021VYLLQhiESBILbVqtB5OAzFG/uB+HPhSU973blBUjthsQQbVwT9KHUg6\n3nTHCcwk98ATxCzAwECsCbc1Ax7ekKni4K07nOE5zcHDmqEq73o89PfXtg4j\nLt3RNd+qovmK1MsZsGogNLPgCBSkAws3hovyRCEq2rfulK+tZQG2CO/sf6qd\nlpp4lHIXJAwWqB5D02W9ZCFF5wRDKa0i4AvRmYe3q+2i9F9ghHvewtgl5VaS\nNE+Q\r\n=xru6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHOZKrCle/KCAj16pe4E4pU4X+AYxOyGTyZ0pghQpr3xAiEA/B3c7w5ciSytOJkM/uW5IjmZYMtcB695iCeDML5C5p8="}]},"directories":{},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.8.0_1605494292365_0.40798397916765894"},"_hasShrinkwrap":false},"1.9.0":{"name":"aframe-vartiste-toolkit","version":"1.9.0","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","readme":"# VARTISTE Toolkit\n\nThe VARTISTE toolkit is a collection of components developed while creating\n[VARTISTE](https://vartiste.xyz). I've compiled them into a stand-alone module\nin the hopes that it might be useable to folks to jump start their own projects.\n\n# Installation / Use\n\nThe easiest way to use it is to include the `.js` file from a CDN, such as\nunpkg:\n\n```html\n<html>\n<head>\n  <script src=\"https://unpkg.com/aframe-vartiste-toolkit@latest/vartiste-toolkit.js\"></script>\n</head>\n...\n</html>\n```\n\nIncluding the javascript file automatically registers the components and\nsystems.\n\n## Assets\n\nAssets required for some of the basic component use are automatically included\nby the javascript source file.\n\nIf you want to include *all* VARTISTE assets in your project, you just need an\n`a-asset` with a `vartiste-assets` property, like this:\n\n```html\n<a-scene>\n  <a-assets>\n    <!-- Your assets ... -->\n    <a-asset vartiste-assets=\"\"></a-asset>\n  </a-assets>\n  <!-- Rest of your scene, etc -->\n</a-scene>\n```\n\n## Customization\n\nYou can optionally customize which components and systems are registered by the\naframe-vartiste-toolkit by setting the `VARTISTE_TOOLKIT` variable *before* the vartiste-toolkit.js file is loaded. `VARTISTE_TOOLKIT` should either be `undefined` (default) or be an object having any of the following properties:\n\n- `excludeComponents`: Array of strings specifying which components, systems, or\n  systemComponents specifically to exclude from being registered\n- `includeComponents`: Array of strings specifying which components, systems, or\n  systemComponents to be registered. All other components, systems, and\n  systemComponents will be excluded.\n- `excludeFiles`: Array of strings specifying all aframe-vartiste-toolkit source\n  code files (from [the component reference](https://vartiste.xyz/docs.html)) to\n  exclude entirely from registration. All components, systems, and\n  systemComponents in those files will *not* be registered. Any classes in those\n  files will not be defined.\n- `includeFiles`: Array of strings specifying which aframe-vartiste-toolkit\n  source code files (from [the component\n  reference](https://vartiste.xyz/docs.html)) to include in registration. All\n  components, systems, and systemComponents, and classes in other files will be\n  excluded.\n- `assetUrl`: VARTISTE Toolkit assets will be fetched from\n  `assetUrl/assets/####.###`. Use this option if you want to use webpack and\n  have a custom public-facing URL\n\n# Component Reference\n\nThe full API and component reference can be found at\n[https://vartiste.xyz/docs.html](https://vartiste.xyz/docs.html). Please note\nthat it is still under construction. The source code is available as well at\n[https://gitlab.com/zach-geek/vartiste](https://gitlab.com/zach-geek/vartiste),\nand contributions, both code-wise and documentation-wise are welcome.\n\n# Example Scene\n\n```html\n<!DOCTYPE html>\n<html>\n<head>\n  <title>VARTISTE Toolkit Demo</title>\n  <script src=\"https://aframe.io/releases/1.0.4/aframe.js\"></script>\n\n  <!-- You can specify components / systems, or files to exclude from being registered -->\n  <script>VARTISTE_TOOLKIT = {\n      /*excludeComponents: [\"frame\"], */ // Will exclude \"frame\" component\n      /*includeComponents: [\"shelf\", \"hdri-environment\"], */ // Will include *ONLY* the shelf component and hdri-environment system\n      /*excludeFiles: ['icon-button'], */ // Will exclude all components found in  aframe-vartiste-toolkit source file 'icon-button.js'\n      /*includeFiles: ['icon-button'], */ // Will include *only* the components found in  aframe-vartiste-toolkit source file 'icon-button.js'\n      /*assetUrl: 'https://example.com:8080/', */ // Will load vartiste assets from https://example.com:8080/ rather than the script's location\n    }</script>\n\n  <!--Just include the toolkit js file from a CDN-->\n  <script src=\"https://unpkg.com/aframe-vartiste-toolkit@latest/vartiste-toolkit.js\"></script>\n</head>\n<body>\n  <a-scene icon-button=\"shader: matcap\" renderer=\"colorManagement: true\">\n    <a-assets>\n      <canvas height=\"768\" id=\"draw-canvas-asset\" width=\"1024\"></canvas>\n\n      <!-- You can easily load your own HDRI if you want! -->\n      <a-asset id=\"hdr\" src=\"asset/studio.hdr\"></a-asset>\n\n      <!--You can use all the default VARTISTE assets with the vartiste-asset\n      component. Otherwise, only the ones needed for other components are\n      included-->\n      <a-asset vartiste-assets=\"\"></a-asset>\n    </a-assets>\n\n    <!-- HDRIs are an easy way to get nice lighting and backgrounds really quickly -->\n    <a-sky color=\"#333\" hdri-environment=\"src: #hdr\"></a-sky>\n\n    <a-entity light=\"type: hemisphere; color: #eee; groundColor: #333; intensity: 0.6\"></a-entity>\n    <a-entity light=\"type: ambient; color: #fff; intensity: 0.6\"></a-entity>\n\n    <!-- vartiste-user-root sets up the default laser pointer / mouse & keyboard\n    interactions. If you want to define your own user setup, you'll want to make\n    sure to include the manipulator components on both of the hand components to\n    ensure that things can be grabbed and resized. -->\n    <a-entity vartiste-user-root=\"\"></a-entity>\n\n    <a-entity position=\"0 0 -2.5\">\n\n      <!--A shelf provides a definitive place to put things. \"grab-root\" ensures\n      that grab-and-move events propogate to the whole shelf-->\n      <a-entity class=\"grab-root\" shelf=\"\">\n        <!--icon-buttons position themselves in a row automatically. So we just\n        position this outer entity where we want the row to start-->\n        <a-entity position=\"-1.5 1.1 0\">\n          <!--Simply pass an asset to icon-button, and boom, you've got an icon\n          button that responds to a wide range of clicks-->\n          <a-entity icon-button=\"#asset-eye\" onclick=\"alert('click')\" tooltip=\"Run Javascript onclick handler\"></a-entity>\n          <!--You can make it a toggle button by adding the toggle-button\n          component-->\n          <a-entity icon-button=\"#asset-oven\" toggle-button=\"\" tooltip=\"Toggle Me\"></a-entity>\n          <!--You can style it, too-->\n          <a-entity button-style=\"color: #ed8607; clickColor: #8607ed; intersectedColor: #07ed86\" icon-button=\"\" tooltip=\"Look at the colors! Woah!\" onclick=\"this.sceneEl.systems['canvas-fx'].applyFX('invert', document.getElementById('draw-canvas-asset'))\"></a-entity>\n          <!--Add the system-click-action to easily call methods of systems-->\n          <a-entity icon-button=\"#asset-account-voice\" system-click-action=\"system: toolkit-demo; action: speak\" tooltip=\"Speak entered text if enabled\"></a-entity>\n          <!--Or add component properties directly for the toggle buttons to\n          toggle-->\n          <a-entity icon-button=\"#asset-check-outline\" toggle-button=\"target: a-scene; component: speech; property: speak\" tooltip=\"Toggle Speaking Enabled\"></a-entity>\n\n          <!-- Easily export entities or even the entire scene to a GLB file -->\n          <a-entity icon-button=\"#asset-floppy\" tooltip=\"Download this scene as GLB\" system-click-action=\"system: glb-exporter; action: downloadGLB\"></a-entity>\n\n          <a-entity icon-button=\"#asset-help-circle-outline\" system-click-action=\"system: toolkit-demo; action: help\" tooltip=\"VARTISTE Toolkit Documentation\"></a-entity>\n        </a-entity>\n        <a-entity position=\"0 0.5 0\" text=\"width: 3.4; wrapCount: 35; value: Welcome to the VARTISTE toolkit demo\"></a-entity>\n        <a-entity>\n\n          <!--You can use edit fields which pop up a keyboard-->\n          <a-entity edit-field=\"type: string; tooltip: Edit a string!\" id=\"demo-input\" text=\"width: 2; wrapCount: 20; value: default text\"></a-entity>\n        </a-entity>\n        <a-entity position=\"0 -0.6 0\">\n\n          <!--You can also have a numerical edit field-->\n          <a-entity edit-field=\"type: number; tooltip: Edit a number\" text=\"width: 2; wrapCount: 4\"></a-entity>\n        </a-entity>\n\n        <!-- You can make interactables, like this lever -->\n        <a-entity lever=\"valueRange: 2 0; target: a-sky; component: hdri-environment; property: exposure; initialValue: 0.7\" position=\"-1.621 -0.917 0\" scale=\"2 2 2\" tooltip=\"Adjust Lighting\"></a-entity>\n      </a-entity>\n    </a-entity>\n\n    <!--You can put a frame around anything with a geometry. The frame can optionally be closeable, or pinnable to your hand-->\n    <a-image frame=\"\" position=\"0 2 -1\" src=\"#asset-vartiste\" tooltip=\"Here's a floating frame!\" tooltip-style=\"offset: 0 0.5 0\"></a-image>\n\n    <!--Adding the clickable class to anything makes it grabbable-->\n    <a-entity class=\"clickable\" position=\"-3.0 0 -2.5\" text=\"width: 2.4; wrapCount: 25; value: Desktop Controls:\\n-Left Click: Click buttons\\n-Right Mouse Buton Drag: Look around\\n-Shift+Left Mouse Button Drag: Move things\\n-WASD: Move around\"></a-entity>\n\n    <!--You can use some of the VARTISTE drawing tools, too!-->\n    <a-entity id=\"draw-canvas-demo\" class=\"clickable\"\n              canvas-updater=\"throttle: 5\"\n              draw-canvas=\"canvas:#draw-canvas-asset\" frame=\"\"\n              geometry=\"primitive: plane; width: 2; height: 1.75\"\n              material=\"shader: flat; src: #draw-canvas-asset; npot: true\"\n              position=\"3.1 0 -2.4\" tooltip=\"Draw Here\" tooltip-style=\"offset: 0 0.75 0\"></a-entity>\n    <a-entity class=\"clickable\" color-picker=\"\" geometry=\"primitive: circle; radius: 1; height: 1.75\" position=\"3.1 2 -2.4\"></a-entity>\n\n    <!-- There's a few handy default constraints to restrict how things can be grabbed -->\n    <a-sphere class=\"clickable\"\n              constrain-to-sphere=\"\"\n              manipulator-weight=\"type: slow; weight: 0.9\"\n              material=\"shader: standard; roughness: 0.3; metalness: 0.7\" position=\"0 0.4 -0.4\" radius=\"0.1\"></a-sphere>\n  </a-scene>\n</body>\n</html>\n```\n\n[View the demo on CodePen](https://codepen.io/zach-capalbo/pen/oNbKagV)\n\n<p class=\"codepen\" data-height=\"330\" data-theme-id=\"light\" data-default-tab=\"html,result\" data-user=\"zach-capalbo\" data-slug-hash=\"oNbKagV\" data-preview=\"true\" style=\"height: 330px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;\" data-pen-title=\"aframe-vartiste-toolkit-demo\">\n  <span>See the Pen <a href=\"https://codepen.io/zach-capalbo/pen/oNbKagV\">\n  aframe-vartiste-toolkit-demo</a> by Zachary Capalbo (<a href=\"https://codepen.io/zach-capalbo\">@zach-capalbo</a>)\n  on <a href=\"https://codepen.io\">CodePen</a>.</span>\n</p>\n<script async src=\"https://static.codepen.io/assets/embed/ei.js\"></script>\n\n\nFor information, you can also read through the source code:\n\n[https://gitlab.com/zach-geek/vartiste/-/blob/release/src/vartiste-toolkit.js](https://gitlab.com/zach-geek/vartiste/-/blob/release/src/vartiste-toolkit.js)\n","readmeFilename":"Readme.md","_id":"aframe-vartiste-toolkit@1.9.0","_npmVersion":"5.6.0","_nodeVersion":"9.9.0","_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"dist":{"integrity":"sha512-Mtt3m5wh4H87fALmm+sH02BZBl2rv1SsAIZyQejk5zKOErlAQ8kxFWpiW8PoLJl22YdEVm572I1ayVAvm9XoyA==","shasum":"1f1d350eb1cf0a3194c8ab1eff02defbbb5ea896","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.9.0.tgz","fileCount":55,"unpackedSize":12876759,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfysTQCRA9TVsSAnZWagAABvAP/3TezaAVka/xXpDaYQ9W\nm0YCwxdkDxM+EClkOANaWVbmnFDig6yFTk70/ro+tIZbB69QcJubypv0caXz\neBya9ayvzShL9EDoBjlgHjkhV9tfkVvTvGf2AreKzVqYdeVyC1hEqlf7DbZI\nsrZ96YujHkQlRIogtXQLp1OhTqu40fRoo7YcrkLqCEy3AWcToKnS2rCVafPN\ngAYfBH60MuOL0d6dhpISMFk7ZgbGeW+VSh1WX4UIp5jlFLTvenbo5UxyDke7\ngWhPpeBaPLVXTdNrPZLSNdEJ/eF2zHD7VyaZ1KxgbLyrTzick6zd1v9lb1Kv\nXD9fcN57/SEnl3BR/NoONP5Mzx5aNhJNQ3QNZkMGzdUY5qKrzcwd3+KAHUc7\njFYOK+Gp4SDyYTfE53qTwaVlkTenXpZSJ3C/X/AxylH1VPZX5F0PKUkoCJ0H\n01XCWriC/dbQIOQOoAeoTDQLebuhCcbzLR2Iv7B9yxyyHK3VqZwpXSn4atqf\nehgBQf9yzVBJASMnDKddOOzkhZfwjeuuGHlod5xj53fm/IHdpv/gleRkHenB\nDfmn9ZKTBsSCmXszMdK7oXDa1a0UvWNiCDUV7pMFTfCEG96tjdsFYJsAjUsk\ntsByLTSh6azQZ1KScgFhwReS4Hv9AEudwnANWUShCoMJoc8o66DT2lE4TgyM\n6nxN\r\n=nFnT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAXAd2mHgNsQdwzBcYz0jv4qKZsHgHVP0/cXOEVCr/o6AiAwA7vGgMMuT7bKclYgrDyrR66vhblT5W5r2XAeWUdrMQ=="}]},"directories":{},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.9.0_1607124175939_0.5589150602022568"},"_hasShrinkwrap":false},"1.9.1":{"name":"aframe-vartiste-toolkit","version":"1.9.1","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","_id":"aframe-vartiste-toolkit@1.9.1","_npmVersion":"5.6.0","_nodeVersion":"9.9.0","_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"dist":{"integrity":"sha512-NLUnkSWeRgPJ9b0PJj40w9k0Xntsm/bq+319O3UXjSiZBS2RBCuFN1j53sPeT8ppcX/EOtHl2F6D9n4RRUuPHQ==","shasum":"ff74494433d58b902253e3ea8102de82afd3fccf","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.9.1.tgz","fileCount":55,"unpackedSize":12876896,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfys5jCRA9TVsSAnZWagAAQwUP/jPvkwupKDcHNf3OdE6c\nUlqCuqCFGV4Ryk7nTh5Qv17JPOAytDI9XxKz81lqeZAZmDug3MaR7nyDCq99\nh+fpDUZQ+o3rcJwJj0tAP2aYIzVy+F8F2Fe8AHVav6DW5dQqgusLTggkPrVR\nDDJ2kpzciQwtME4jwWbEi4CnHEYlyOslK24x6aouEd9DYYWeDIPl5zGJsnUn\nUJmwgOSPFuMtup9ypIJD/S6FHgLa8p0rS68s3s0kZXhRBIDg3aWbX7lvoM1o\nunxnZLl0obcVakSRJs+zNhkxaagi31kGODruUQbMjUg0x06xep6EOL22uLnC\nHpZ3iDAElCMJW24yYTR2eQsTU6ZYGNqLUHhSx3ZDpEQJ6pDk8kxxQ2cBu5wA\nXgzpto0RqWCFaHTJdEVsegw8wxeoNh+yAxHzHKf2kYEccp5FuK7Ba2ZPjctd\nUYVYl3wjlKHKk6XHfDrPNRyPZV2eWqWgFk9X3bJ7GZZwxy/ByNpu32YLK/FC\n0PEHRY9JV8HN5bax0dYtHbF6k3FavJbESLp2RiA0tjm6ZqL961kuj11Sls7T\nQ7oMt+NvnHXcASFkUVi+Bhc7wePTFGl5dzOs/n8JRGt9hizi3Twc4yx56EXX\n73aPetNlk2dorlIaJxaH5TGNBElI/81pEXAO4Cgnf8RVtvhIM9ntSA2OMEQG\nS+I6\r\n=2KBS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICutHo0kvUNWL8QQw6sXo79Fk1KnUHboqEjnahW6MUatAiEA5L9gYoynVGn9pPfSGsMnyhS3ZQ0R1cyEcUrx0lLR2F0="}]},"directories":{},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.9.1_1607126626635_0.6099073364675096"},"_hasShrinkwrap":false},"1.10.0":{"name":"aframe-vartiste-toolkit","version":"1.10.0","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","_id":"aframe-vartiste-toolkit@1.10.0","_npmVersion":"5.6.0","_nodeVersion":"9.9.0","_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"dist":{"integrity":"sha512-a9Sy0Ry24+5K7QekbPp38o1JPdO3iRnvhGIpBCAS+OK/viUSvetiL1wS43OiisdfH5Tz8YHC8eHw05xIbNM78A==","shasum":"e68efe01d9259457a8c7b9ca13bd2359134b1e09","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.10.0.tgz","fileCount":55,"unpackedSize":12924421,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf0B7RCRA9TVsSAnZWagAAmL8P+QEL4ZbAdCOQZ5fkJG8K\nQfscBaA2hNi49dZRlu42oyw8WLrdKQlmwke9VjMY+4fJj4MhDLaJhTNHvDrK\nnb3idamhhwpHjUVO/FWaoU+U8gkten+k/9s7YNp78wlp1dG9vGiAnZ6Bgxqv\neKpFcP+7KbFKc0ofnjl08aFM+3vpaUxKNLqSyFYTPYiwuolKPYlU5IMzWji6\n4cbCsp9YaHbRsBgUe7fpWI0BAOUMs+4Q6uOIOxlSunn0TZJRMUablq2bO+8K\nq/o2zAVxv3EXWwqs4vxC+4+ZshB+mBF+hKuyup2F5dGuMidI8ft03UN7eVrL\nbjxNbRaoLTBlP1D5ucKmUzgZmkkXtsHw9o4tIoJMCr7W78NqAhlVtfmVuOlF\nHkSsMWYJjZFRAMgNhV+0sSg6Bev/mpJvRM5DFeY8hLKJrSjqrP4XNfz9i3wW\nKkS9Luw0llKZGDYrdKCVehvS0UE1mzQrgOHMuTSam24PYKJ4U85CL+V/nujV\nrrcCvrYzJFQ8q80B1f+f8lStHUa/raTqkRujk0eEr81XpYSURd9nJWM/iFOS\n98nuUQt3MBtKRpvqPluiEzjUnzTVa7+lU9yxoRono701o1UWCm4s9vEd1GWX\nFo0N5HoPjzwtbLp/bFPmf2nIugabEXCxf6nB+NY334HHWn5PgSmIvH70XdOR\nlG5S\r\n=MnIq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF8VGlnNZyTyWyMoTBTvt35v3bWA8WS2Vo+ABDequ/OeAiAg512fHScBaGlkCV9V7PNI0DxB/yl7MHWgXN5mOl4QOw=="}]},"directories":{},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.10.0_1607474897149_0.8359519554458752"},"_hasShrinkwrap":false},"1.11.1":{"name":"aframe-vartiste-toolkit","version":"1.11.1","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","_resolved":"","_integrity":"","_from":"file:E:/Downloads/aframe-vartiste-toolkit-1.11.1.tgz","_id":"aframe-vartiste-toolkit@1.11.1","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-VyF11YzyzmWQPCr7I1WuDCqPSHMh3Fsf+UH9GtyDa0QrvK/SxODYHPCv7TCU48IInoSoJSjmaiW42Y3adS3itQ==","shasum":"b40379d226994dddbe5b28488b33e21846518b9a","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.11.1.tgz","fileCount":135,"unpackedSize":34036253,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf0qVCCRA9TVsSAnZWagAAPXAP/RobNk52o8MFXBlQP1qB\nDe8g8NlWaImHmdyrQCqfKBr5xxgsuAefVKK5ft+Y05OODZN6S8WPJIKhDd/7\nTIWoIFGV3abbV3JbpuopHciZBOxTBOoJDjTiOIgilCLrR+JgrSGfiMLmFcaN\nh50AYGFiik3QKcY2K0IoGuAQvTsoANOH7n0JblTWRJSWrTbuKfwcKutsVP3k\nPKDc+p8oxhYPtnvqHWrOsM1ZTFP7Cs+o7rmdKzZ1EYp5Sx0a8iH2aGzf7aeJ\nXUbA79ExGoEG2TOS0CDm6ysyiURIj1xeJK4FZdBVfDk9VYQh6Th7FJM7DzEr\n/2mIgojzyBUH4rQxqULBkBA4d2zQoIHPKCNSFXYQW/p41k+oTUoAOYwleTmU\n1+ayNPtnIj2J1jEbH/dEt4Kf8yjdssEuw9bb41en32m1s1Uhes0LgpbI+bNx\npNgxx+BCrbhWKqdoOWYIOVBrFYVsP5yml8YfBVSsMjSrQSuSmCE4+KUPvqA7\nmJevQFYRloW2pAam4ILyHoYvtNo4NS7x+9cdnAgx2RzurWNLpccW0VEAbuH0\nVO8E645T7NzYICiRUXvjBFMQX1dHwrCvd78BT0DSjUZ+cqzNAxQUfg4sVEDW\nWxpWv2cR0DQLID9iXfBqMx0XFhYrqE6rbzL2j23M1h8vIOQV5rl1L2Q2svUk\nQ1i+\r\n=X8Fz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCev7GrJ9B1uWR5THbb+1RDx0m5YoewpJZ3Io0K1yykPgIgTfXXgGXBpBtb19gPZLPZ6Ol7krg2yN/471e1WQqKMKg="}]},"_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"directories":{},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.11.1_1607640385674_0.865719178219722"},"_hasShrinkwrap":false},"1.12.0":{"name":"aframe-vartiste-toolkit","version":"1.12.0","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","_resolved":"","_integrity":"","_from":"file:E:/Downloads/aframe-vartiste-toolkit-1.12.0.tgz","readme":"# VARTISTE Toolkit\n\nThe VARTISTE toolkit is a collection of components developed while creating\n[VARTISTE](https://vartiste.xyz). I've compiled them into a stand-alone module\nin the hopes that it might be useable to folks to jump start their own projects.\n\n# Installation / Use\n\nThe easiest way to use it is to include the `.js` file from a CDN, such as\nunpkg:\n\n```html\n<html>\n<head>\n  <script src=\"https://unpkg.com/aframe-vartiste-toolkit@latest/vartiste-toolkit.js\"></script>\n</head>\n...\n</html>\n```\n\nIncluding the javascript file automatically registers the components and\nsystems.\n\n## Assets\n\nAssets required for some of the basic component use are automatically included\nby the javascript source file.\n\nIf you want to include *all* VARTISTE assets in your project, you just need an\n`a-asset` with a `vartiste-assets` property, like this:\n\n```html\n<a-scene>\n  <a-assets>\n    <!-- Your assets ... -->\n    <a-asset vartiste-assets=\"\"></a-asset>\n  </a-assets>\n  <!-- Rest of your scene, etc -->\n</a-scene>\n```\n\n## Customization\n\nYou can optionally customize which components and systems are registered by the\naframe-vartiste-toolkit by setting the `VARTISTE_TOOLKIT` variable *before* the vartiste-toolkit.js file is loaded. `VARTISTE_TOOLKIT` should either be `undefined` (default) or be an object having any of the following properties:\n\n- `excludeComponents`: Array of strings specifying which components, systems, or\n  systemComponents specifically to exclude from being registered\n- `includeComponents`: Array of strings specifying which components, systems, or\n  systemComponents to be registered. All other components, systems, and\n  systemComponents will be excluded.\n- `excludeFiles`: Array of strings specifying all aframe-vartiste-toolkit source\n  code files (from [the component reference](https://vartiste.xyz/docs.html)) to\n  exclude entirely from registration. All components, systems, and\n  systemComponents in those files will *not* be registered. Any classes in those\n  files will not be defined.\n- `includeFiles`: Array of strings specifying which aframe-vartiste-toolkit\n  source code files (from [the component\n  reference](https://vartiste.xyz/docs.html)) to include in registration. All\n  components, systems, and systemComponents, and classes in other files will be\n  excluded.\n- `assetUrl`: VARTISTE Toolkit assets will be fetched from\n  `assetUrl/assets/####.###`. Use this option if you want to use webpack and\n  have a custom public-facing URL\n\n# Component Reference\n\nThe full API and component reference can be found at\n[https://vartiste.xyz/docs.html](https://vartiste.xyz/docs.html). Please note\nthat it is still under construction. The source code is available as well at\n[https://gitlab.com/zach-geek/vartiste](https://gitlab.com/zach-geek/vartiste),\nand contributions, both code-wise and documentation-wise are welcome.\n\n# Example Scene\n\n```html\n<!DOCTYPE html>\n<html>\n<head>\n  <title>VARTISTE Toolkit Demo</title>\n  <script src=\"https://aframe.io/releases/1.1.0/aframe.js\"></script>\n\n  <!-- You can specify components / systems, or files to exclude from being registered -->\n  <script>VARTISTE_TOOLKIT = {\n      /*excludeComponents: [\"frame\"], */ // Will exclude \"frame\" component\n      /*includeComponents: [\"shelf\", \"hdri-environment\"], */ // Will include *ONLY* the shelf component and hdri-environment system\n      /*excludeFiles: ['icon-button'], */ // Will exclude all components found in  aframe-vartiste-toolkit source file 'icon-button.js'\n      /*includeFiles: ['icon-button'], */ // Will include *only* the components found in  aframe-vartiste-toolkit source file 'icon-button.js'\n      /*assetUrl: 'https://example.com:8080/', */ // Will load vartiste assets from https://example.com:8080/ rather than the script's location\n    }</script>\n\n  <!--Just include the toolkit js file from a CDN-->\n  <script src=\"https://unpkg.com/aframe-vartiste-toolkit@latest/vartiste-toolkit.js\"></script>\n</head>\n<body>\n  <a-scene icon-button=\"shader: matcap\" renderer=\"colorManagement: true;  physicallyCorrectLights: true\">\n    <a-assets>\n      <canvas height=\"768\" id=\"draw-canvas-asset\" width=\"1024\"></canvas>\n\n      <!-- You can easily load your own HDRI if you want! -->\n      <a-asset id=\"hdr\" src=\"asset/studio.hdr\"></a-asset>\n\n      <!--You can use all the default VARTISTE assets with the vartiste-asset\n      component. Otherwise, only the ones needed for other components are\n      included-->\n      <a-asset vartiste-assets=\"\"></a-asset>\n\n      <!-- You can override some built-in components by defining mixins -->\n      <a-mixin id=\"lever-grip\" material=\"color: #a2c4fa\"></a-mixin>\n      <a-mixin id=\"shelf-bg\" materia=\"shader: standard\"></a-mixin>\n    </a-assets>\n\n    <!-- HDRIs are an easy way to get nice lighting and backgrounds really quickly -->\n    <a-sky color=\"#333\" hdri-environment=\"src: #hdr\"></a-sky>\n\n    <a-entity light=\"type: hemisphere; color: #eee; groundColor: #333; intensity: 0.6\"></a-entity>\n    <a-entity light=\"type: ambient; color: #fff; intensity: 0.6\"></a-entity>\n\n    <!-- vartiste-user-root sets up the default laser pointer / mouse & keyboard\n    interactions. If you want to define your own user setup, you'll want to make\n    sure to include the manipulator components on both of the hand components to\n    ensure that things can be grabbed and resized. -->\n    <a-entity vartiste-user-root=\"\"></a-entity>\n\n    <a-entity position=\"0 0 -2.5\">\n\n      <!--A shelf provides a definitive place to put things. \"grab-root\" ensures\n      that grab-and-move events propogate to the whole shelf-->\n      <a-entity class=\"grab-root\" shelf=\"\">\n        <!--icon-buttons position themselves in a row automatically. So we just\n        position this outer entity where we want the row to start-->\n        <a-entity position=\"-1.5 1.1 0\">\n          <!--Simply pass an asset to icon-button, and boom, you've got an icon\n          button that responds to a wide range of clicks-->\n          <a-entity icon-button=\"#asset-eye\" onclick=\"alert('click')\" tooltip=\"Run Javascript onclick handler\"></a-entity>\n          <!--You can make it a toggle button by adding the toggle-button\n          component-->\n          <a-entity icon-button=\"#asset-oven\" toggle-button=\"\" tooltip=\"Toggle Me\"></a-entity>\n          <!--You can style it, too-->\n          <a-entity button-style=\"color: #ed8607; clickColor: #8607ed; intersectedColor: #07ed86\" icon-button=\"\" tooltip=\"Look at the colors! Woah!\" onclick=\"this.sceneEl.systems['canvas-fx'].applyFX('invert', document.getElementById('draw-canvas-asset'))\"></a-entity>\n          <!--Add the system-click-action to easily call methods of systems-->\n          <a-entity icon-button=\"#asset-account-voice\" system-click-action=\"system: toolkit-demo; action: speak\" tooltip=\"Speak entered text if enabled\"></a-entity>\n          <!--Or add component properties directly for the toggle buttons to\n          toggle-->\n          <a-entity icon-button=\"#asset-check-outline\" toggle-button=\"target: a-scene; component: speech; property: speak\" tooltip=\"Toggle Speaking Enabled\"></a-entity>\n\n          <!-- Easily export entities or even the entire scene to a GLB file -->\n          <a-entity icon-button=\"#asset-floppy\" tooltip=\"Download this scene as GLB\" system-click-action=\"system: glb-exporter; action: downloadGLB\"></a-entity>\n\n          <!-- Use the VARTISTE undo system to easily undo changes, too -->\n          <a-entity icon-button=\"#asset-undo\" tooltip=\"Undo\" onclick=\"VARTISTE.Undo.undo()\"></a-entity>\n\n          <a-entity icon-button=\"#asset-help-circle-outline\" system-click-action=\"system: toolkit-demo; action: help\" tooltip=\"VARTISTE Toolkit Documentation\"></a-entity>\n        </a-entity>\n        <a-entity position=\"0 0.5 0\" text=\"width: 3.4; wrapCount: 35; value: Welcome to the VARTISTE toolkit demo\"></a-entity>\n        <a-entity>\n\n          <!--You can use edit fields which pop up a keyboard-->\n          <a-entity edit-field=\"type: string; tooltip: Edit a string!\" id=\"demo-input\" text=\"width: 2; wrapCount: 20; value: default text\"></a-entity>\n        </a-entity>\n        <a-entity position=\"0 -0.6 0\">\n\n          <!--You can also have a numerical edit field-->\n          <a-entity edit-field=\"type: number; tooltip: Edit a number\" text=\"width: 2; wrapCount: 4\"></a-entity>\n        </a-entity>\n\n        <!-- You can make interactables, like this lever -->\n        <a-entity lever=\"valueRange: 2 0; target: a-sky; component: hdri-environment; property: exposure; initialValue: 0.7\" position=\"-1.621 -0.917 0\" scale=\"2 2 2\" tooltip=\"Adjust Lighting\"></a-entity>\n      </a-entity>\n    </a-entity>\n\n    <!--You can put a frame around anything with a geometry. The frame can optionally be closeable, or pinnable to your hand-->\n    <a-image frame=\"\" position=\"0 2 -1\" src=\"#asset-vartiste\" tooltip=\"Here's a floating frame!\" tooltip-style=\"offset: 0 0.5 0\"></a-image>\n\n    <!--Adding the clickable class to anything makes it grabbable-->\n    <a-entity class=\"clickable\" position=\"-3.0 0 -2.5\" text=\"width: 2.4; wrapCount: 25; value: Desktop Controls:\\n-Left Click: Click buttons\\n-Right Mouse Buton Drag: Look around\\n-Shift+Left Mouse Button Drag: Move things\\n-WASD: Move around\"></a-entity>\n\n    <!--You can use some of the VARTISTE drawing tools, too!-->\n    <a-entity id=\"draw-canvas-demo\" class=\"clickable\"\n              canvas-updater=\"throttle: 5\"\n              draw-canvas=\"canvas:#draw-canvas-asset\" frame=\"\"\n              geometry=\"primitive: plane; width: 2; height: 1.75\"\n              material=\"shader: flat; src: #draw-canvas-asset; npot: true\"\n              position=\"3.1 0 -2.4\" tooltip=\"Draw Here\" tooltip-style=\"offset: 0 0.75 0\"></a-entity>\n    <a-entity class=\"clickable\" color-picker=\"\" geometry=\"primitive: circle; radius: 1; height: 1.75\" position=\"3.1 2 -2.4\"></a-entity>\n\n    <!-- There's a few handy default constraints to restrict how things can be grabbed -->\n    <a-sphere class=\"clickable\"\n              constrain-to-sphere=\"\"\n              manipulator-weight=\"type: slow; weight: 0.9\"\n              material=\"shader: standard; roughness: 0.3; metalness: 0.7\" position=\"0 0.4 -0.4\" radius=\"0.1\"></a-sphere>\n  </a-scene>\n</body>\n</html>\n```\n\n[View the demo on CodePen](https://codepen.io/zach-capalbo/pen/oNbKagV)\n\n<p class=\"codepen\" data-height=\"330\" data-theme-id=\"light\" data-default-tab=\"html,result\" data-user=\"zach-capalbo\" data-slug-hash=\"oNbKagV\" data-preview=\"true\" style=\"height: 330px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;\" data-pen-title=\"aframe-vartiste-toolkit-demo\">\n  <span>See the Pen <a href=\"https://codepen.io/zach-capalbo/pen/oNbKagV\">\n  aframe-vartiste-toolkit-demo</a> by Zachary Capalbo (<a href=\"https://codepen.io/zach-capalbo\">@zach-capalbo</a>)\n  on <a href=\"https://codepen.io\">CodePen</a>.</span>\n</p>\n<script async src=\"https://static.codepen.io/assets/embed/ei.js\"></script>\n\n\nFor information, you can also read through the source code:\n\n[https://gitlab.com/zach-geek/vartiste/-/blob/release/src/vartiste-toolkit.js](https://gitlab.com/zach-geek/vartiste/-/blob/release/src/vartiste-toolkit.js)\n","readmeFilename":"Readme.md","_id":"aframe-vartiste-toolkit@1.12.0","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-duh0uhGW37JDvo/yAx88DjblCmiSdowOGwkz+KT16Aaz531y9tLjGkx4oHlroRL9zC5lFCGgQkEKmrP2PsGwaA==","shasum":"3a5b2f10d6486e7c5c422dc3c41d487d9272294e","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.12.0.tgz","fileCount":71,"unpackedSize":10362415,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf2i7BCRA9TVsSAnZWagAAXVAP/3bNwlMKK6iGx6+Mvr42\n4/v1y3MXGtQ6uV2Vl0ujhSoXebvqCvlHl8/aNt2WITCSqkH571B7hQSwERWG\n2dcgLzYt13Pk4SqfujHvLXrv2MMXS1YieAd6SWYPL1v16SwZ+KZeK6p+Qk8v\nYGtASLiGq4+iPnFtHK2J7QBIKj00wLuoUvZ+Xrk6YNMkSazHarQURMEGo0zo\nSkPzt4WY3r/+iufE8XiIFcjlfnnWsx3gz3KWEzL2umtimeT1kNVMk/GDeu8w\nC33AqqC+JR8moMlAq5tsBYpZgUp+hl1yHqTxw5P8nLYadFhyojmaAWBEf+EI\nMY/+NmtiNqVFpOWLrpwl8yjlcGzu7RNb1oZRTrF2gFVjqjJ694oAgzcEZu4Q\n2ycDavfAQyIpLiC0I5ZrnLbmRHjZGDlepS4EsrtXJPxb/o0o+AG4GfG0KDBF\nZaYp1/DhnOkTaKr5Z5QbTKzTkFgKyntcbzv1SXN99iIbtF5h2v1jInuL5sbj\n3lzzskYkr6m2fVlzyFgoyAjeOlflTxGiU+sEj0xdsd6ZLjpVld4LKuBGxghI\n50X+ebfS+I0HrO8g5XRuaF89kr6s19NDzZ+2HXoLzj3uhEkpisFjWayP/wHK\nLhLKNbADM9QJ+VL2FIQwM8wLt64/f54eze69BdDhijGnjSI+2vfvGOuudFsE\ncIMg\r\n=LbCN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDwbz75cqsIjpqxG4kbq18vQ+Se++/4n2r+nd/P1ujyvgIgY3GIRvZIOTZvn3wpRpkF1gGxWUbO1mULN96hvo2ncE0="}]},"_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"directories":{},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.12.0_1608134336698_0.6309368443391012"},"_hasShrinkwrap":false},"1.12.1":{"name":"aframe-vartiste-toolkit","version":"1.12.1","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","_resolved":"","_integrity":"","_from":"file:E:/Downloads/aframe-vartiste-toolkit-1.12.1.tgz","_id":"aframe-vartiste-toolkit@1.12.1","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-xZpNMI6PykMroSczrCVYjWrUr1/0i95RKVYjotnuX/BSD7RTUM0mJC1FSffl7SxFG8jczjDy5yWknGrMTFd92Q==","shasum":"90d1120770b080969fcdf92e4d2b4d0f483e16bc","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.12.1.tgz","fileCount":71,"unpackedSize":10363421,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf21bhCRA9TVsSAnZWagAA+qEP+QAW435GST1Sy7EoKf4F\niI4cHmA3zdEjLcr3mDpyV8cu6yCpjm8BgRjc+JJ7Z6BMrlF6c3JQ4BSD25IA\nGQCsNlwId7ZmeInR+Jm194y5ct5/Z5fERX5ve/5H1KFwDySzxCvCEfqKnFzz\n290v+aq9srms8jlj2ieEPWvB2w6/p+YDg3kb/UEF0RRAyNgmCoLl+7VGXjey\nY2o/A0kLWTYIk4mASXmAox1drsNG7fhVYs0QA/eD4dTiq5i5KQ6IcTne55mT\n0RnU7XM4MhGd5tman2HJ3r5JVuf7P1VM/Id0SDDAqg6qdwNJs/72STguCkU+\nV1CDJFAI2BYgK171+avYUPGmijTPKMsw3hDFiRU1IF7egiqXrJgnoJ3bZgna\n8GlTEH+1/Pw96lpIjeVloTKFpXXCJrxSE/8ffzqAa4eTOXD6OLWAc/fBNhJa\n3UT2x2JVwGD7MgzHcPTtZP8zFhFTyyx+dyOWakRNb3RClqIVI8aWaiEmtq6s\ny+/HZ8EKqqq03GfU3hCV0AsfTfRsGapbJso5TMOOkhJD9lwuFOMKTrExsVeS\nEE9vkB13aHMCS2vGilu+crBY6inEygC/ocxO644Y519+NqCMkPoyiIAzIxpR\nmSsJm0266RXT5XM/28++JklG71LH6jwj/fOsOt2b1E3UtuOqpchLMHabFBEN\nXTGO\r\n=aitF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGDvl3dmfcD1wWbBi3bmDPfjiiLbZy9P1fg7yhs4G4OZAiBd50egJQPXF5oLvP7bTP8E1FPlmoogHyUCBHBGooqPIQ=="}]},"_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"directories":{},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.12.1_1608210144054_0.10943487950121455"},"_hasShrinkwrap":false},"1.13.0":{"name":"aframe-vartiste-toolkit","version":"1.13.0","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","_resolved":"","_integrity":"","_from":"file:E:/Downloads/aframe-vartiste-toolkit-1.13.0.tgz","_id":"aframe-vartiste-toolkit@1.13.0","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-yochkKZwRlFv4KqLsjgxNLq/oWOwIS+V25XfD+LLOhXSw1t/UuqC8QSS3MQ1L18Da/smlKihSn5xgqnukw5R0A==","shasum":"3cba9e9b6905ff381db6f9fec606191320a9321e","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.13.0.tgz","fileCount":72,"unpackedSize":10389142,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf6bt1CRA9TVsSAnZWagAAhckQAKGgLYbnPHIHxzrf2xB2\nqpqFMklJ/H6P75F9t3vWDka499xmYV7jwSAXbFbmsi9Xf7ywmSFiuXNmkvZj\nYYPWYRj3PU55hkmCMcIEX/nOcJdKi39jzFnhjjeV2S34KDfCIp2AJvq5WMPI\n9OiAuINh8aE/rbL5/Vuoc1zQHwgQjHU9bKWqhhWTdCAz+z2biCUUkqby8vIN\n6KeGYBwBrG3bfSFk+X3kmByJP5MoXG3JwBSgaGYCxL8vhwSaEDFCQDj8Ci3q\nm5vSsxb/T3yaGy5dpc1f+8/zErI3MUtIliuOxS3M1puSXJeIgioWfPiTQZqP\nQeD+iMspbVwhOKdMXPgTUmBrzTnUkpE/UEjJWT1WGt/dzZ4lPGiZyR2C9FkL\nhMQpAF46JlfDoH+Qal0jZQbD38u7xsbEt6IShaOx2pXdpOUXR/YfA3AFiN8B\nRBpBP2/VtZMolnX1SSx/Zpe7PiqSGh0W9N0AvCXVBRzSQVF8iTxCFGfcDwDV\nPHKO9DmicOZ2spFD2gaEMIZJW8uBJg7JS4lVixlxs7hlrJLZC/vsMYTu1CqN\nMd48rZUElPn7QxYAn57Elcn4OV1WdcsXUUeTWcxSCciHj6pbxDVsT3Zsx8HQ\n+mJfKb2JEijfDYVH0tHZ8lt1b5TISEB+bTCETv8dsMw8ie7tsDFKfEoht7r9\nLJtU\r\n=OaIW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCpUzuvMRs/SSn15oZ+5Y/G6qHE4dc0q3uzO/vSi3G0zAIhAKjk8SHOMLIZQeU158/TrEIa4TG3B6qbrqeCAw6lDsao"}]},"_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"directories":{},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.13.0_1609153396511_0.6224023271945405"},"_hasShrinkwrap":false},"1.14.0":{"name":"aframe-vartiste-toolkit","version":"1.14.0","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","_resolved":"","_integrity":"","_from":"file:E:/Downloads/aframe-vartiste-toolkit-1.14.0.tgz","_id":"aframe-vartiste-toolkit@1.14.0","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-7HyJSI5881o8oew/Er1XKjyuYkZi5EYmWCFoE0gzdDheU0Iszf0Q1lzc59xcCh6H+p9N8fuDJtgSMI6BxQmoHA==","shasum":"333e674a5f02171ac15aa0de4584c9e46ca13b3c","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.14.0.tgz","fileCount":72,"unpackedSize":10392665,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf7iaJCRA9TVsSAnZWagAABeEP/0OfrXkG2yIb2wN9Y8Yr\nDZstehKfuWHr2AHofZdHZ1ArIUyn5SBTEJHjtGBQwc7WtAc6UjdQYwXCDRbD\n6Jzmq3NElTjSdF+n3A4H3Dxc5ugQOseWvowPAYciXYYWid7hlNfB3y6bOstG\nHFoHdZCZtf87XhNfV1j3fxGXV2ypLpWvmCGGB3+V6+xXeCFf8+1ajrKrQKVm\nNR6KuqctwEyBw9LnVOfsM2BHv7+jro6v+SgD5c9GFAtwHzMfw6ItEqASQLiR\nJscuEgWGt+x9iOIsQOfxU2snXkJhYRxgXkK2xhhg0KxE+2LN/ibI2dfjnml/\nutAEUdoqCkBZQOIlm8ow16ONDRNA1HHjuI8l5+IZIuUE0yVKobpGdcesTKkW\n8pPScqmUDaIl4dU2BoeICW4ZSUJOlWZAfN6TM6WBlcrX7uwcSbl0JAv64Bpw\ngKWWFIj3RV+ATl7Xi1JT1lYuvUkoxfFQP8TtGo2YzU1hWykFFClI48QSqibG\nGmpyIMZq8GmAwdfHDVD1WgdzZJ2oc0RlOh6Aw3FL9V6mI7hYSCu3Cnwmwm98\nwEeaOy5EViGWCkUFHjpVZb4kcSkZzFfFCV+oXUYN7/gK2/JK6mjCzmwvygjW\ni9ZyZeJUJA1Vvyo9nmfm+YXi8CrwTP0TVLuPmC1oKyilodZV08ujxPkV69hZ\ntsfT\r\n=kt5H\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA/IcZGcPxpFjmXzGzryozS9MDmunRJG2FXxVP9/4+78AiEAlFJz+LT0U6iRTQ9qxkEEBUZYruxI5jtlQ0yl/iHbPdM="}]},"_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"directories":{},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.14.0_1609442953225_0.648593777345901"},"_hasShrinkwrap":false},"1.15.0":{"name":"aframe-vartiste-toolkit","version":"1.15.0","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","_resolved":"","_integrity":"","_from":"file:E:/Downloads/aframe-vartiste-toolkit-1.15.0.tgz","_id":"aframe-vartiste-toolkit@1.15.0","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-2KB1FHh6aPfaG0r9jyBpjNAXfrzB2yR5lEM5dD8qV/4B46O45NEaiBWAa6+tghg12hBqfd54yZ5t6Dh095zT0w==","shasum":"f551f183b48c6237bd4f30628db5e470873818ce","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.15.0.tgz","fileCount":72,"unpackedSize":10409588,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf87NKCRA9TVsSAnZWagAAcJsP/RFVdqChFX8PjK1EHWVs\n1LUbzi/6ZyGCVqNYOeAPous/B+VYFxIkXZkqetLSai7eTmvakpaPaxJkqtgP\nooIKHA+jjS/RCssv2Vr4FDXMBo9w53/dYq/Juc2Nns1dxu0iE/I0CY00wQ+A\nh4AlXvyG40/ZjTwRw+VR027pRcVwdeQ+1uQr2lox7PmMM1Fhdp3AF1xYwFHE\nf6tU7A07OgeHQfaWHmBfT/cm05Vkh3+8JgpurcshSkHz9HCre3RLG+GDuS5K\nLCtuy+x7tmHPjuGERBUyaGP9rIq005TKpeSanVj1yLGVjdEVhSze/zNuPdbf\ngJxjp7WR7Erytf89u/yHqLrRZnZVreQTzbEaxvPb8Pyx+q4lIaFbZbjRolAO\nir9CKRVz0Qu5dOQHIvBakVRiw6dZxx0oekH2wboLb3mhwgMGrSvY0ekl3XrW\nPa4VXTb3ousmAdxW8y5KJ8KORH9/hWgkSUACdOAxkMIeaHK7/QqFloIqYBNG\nbw0bOCCtZ7wOTKr0xx3VqXKBZJpXZx7wAx3cgTd88dWlxySZBbgVsmQjsw0w\nYl4bb2f6jNRUs0jMWpo/NUv+lrXI8SJxNxFSdz1cQpOYLRiFO4N+slejwBJd\nhPbyibvY3vBW+vdeDqjPTB/E1Q7Wfxud562mKG03z6tbKqz8ggMIPoThEgEn\nfLpE\r\n=ZyW0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDT+WAFf7bEyqHHvCAbVXt5AmUoB7fxBQHLbYEKs8o16wIgJBzvTJq8e3W+CLu4EXl2MjY5tHKddRAiodZLsiXEHWM="}]},"_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"directories":{},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.15.0_1609806665527_0.18705269855041817"},"_hasShrinkwrap":false},"1.16.0":{"name":"aframe-vartiste-toolkit","version":"1.16.0","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","_resolved":"","_integrity":"","_from":"file:E:/Downloads/aframe-vartiste-toolkit-1.16.0.tgz","readme":"# VARTISTE Toolkit\n\nThe VARTISTE toolkit is a collection of components developed while creating\n[VARTISTE](https://vartiste.xyz). I've compiled them into a stand-alone module\nin the hopes that it might be useable to folks to jump start their own projects.\n\n# Installation / Use\n\nThe easiest way to use it is to include the `.js` file from a CDN, such as\nunpkg:\n\n```html\n<html>\n<head>\n  <script src=\"https://unpkg.com/aframe-vartiste-toolkit@latest/vartiste-toolkit.js\"></script>\n</head>\n...\n</html>\n```\n\nIncluding the javascript file automatically registers the components and\nsystems.\n\n## Assets\n\nAssets required for some of the basic component use are automatically included\nby the javascript source file.\n\nIf you want to include *all* VARTISTE assets in your project, you just need an\n`a-asset` with a `vartiste-assets` property, like this:\n\n```html\n<a-scene>\n  <a-assets>\n    <!-- Your assets ... -->\n    <a-asset vartiste-assets=\"\"></a-asset>\n  </a-assets>\n  <!-- Rest of your scene, etc -->\n</a-scene>\n```\n\n## Customization\n\nYou can optionally customize which components and systems are registered by the\naframe-vartiste-toolkit by setting the `VARTISTE_TOOLKIT` variable *before* the vartiste-toolkit.js file is loaded. `VARTISTE_TOOLKIT` should either be `undefined` (default) or be an object having any of the following properties:\n\n- `excludeComponents`: Array of strings specifying which components, systems, or\n  systemComponents specifically to exclude from being registered\n- `includeComponents`: Array of strings specifying which components, systems, or\n  systemComponents to be registered. All other components, systems, and\n  systemComponents will be excluded.\n- `excludeFiles`: Array of strings specifying all aframe-vartiste-toolkit source\n  code files (from [the component reference](https://vartiste.xyz/docs.html)) to\n  exclude entirely from registration. All components, systems, and\n  systemComponents in those files will *not* be registered. Any classes in those\n  files will not be defined.\n- `includeFiles`: Array of strings specifying which aframe-vartiste-toolkit\n  source code files (from [the component\n  reference](https://vartiste.xyz/docs.html)) to include in registration. All\n  components, systems, and systemComponents, and classes in other files will be\n  excluded.\n- `assetUrl`: VARTISTE Toolkit assets will be fetched from\n  `assetUrl/assets/####.###`. Use this option if you want to use webpack and\n  have a custom public-facing URL\n\n# Component Reference\n\nThe full API and component reference can be found at\n[https://vartiste.xyz/docs.html](https://vartiste.xyz/docs.html). Please note\nthat it is still under construction. The source code is available as well at\n[https://gitlab.com/zach-geek/vartiste](https://gitlab.com/zach-geek/vartiste),\nand contributions, both code-wise and documentation-wise are welcome.\n\n# Example Scene\n\n```html\n<!DOCTYPE html>\n<html>\n<head>\n  <title>VARTISTE Toolkit Demo</title>\n  <script src=\"https://aframe.io/releases/1.1.0/aframe.js\"></script>\n\n  <!-- You can specify components / systems, or files to exclude from being registered -->\n  <script>VARTISTE_TOOLKIT = {\n      /*excludeComponents: [\"frame\"], */ // Will exclude \"frame\" component\n      /*includeComponents: [\"shelf\", \"hdri-environment\"], */ // Will include *ONLY* the shelf component and hdri-environment system\n      /*excludeFiles: ['icon-button'], */ // Will exclude all components found in  aframe-vartiste-toolkit source file 'icon-button.js'\n      /*includeFiles: ['icon-button'], */ // Will include *only* the components found in  aframe-vartiste-toolkit source file 'icon-button.js'\n      /*assetUrl: 'https://example.com:8080/', */ // Will load vartiste assets from https://example.com:8080/ rather than the script's location\n    }</script>\n\n  <!--Just include the toolkit js file from a CDN-->\n  <script src=\"https://unpkg.com/aframe-vartiste-toolkit@latest/vartiste-toolkit.js\"></script>\n</head>\n<body>\n  <a-scene icon-button=\"shader: matcap\" renderer=\"colorManagement: true;  physicallyCorrectLights: true\">\n    <a-assets>\n      <canvas height=\"768\" id=\"draw-canvas-asset\" width=\"1024\"></canvas>\n\n      <!-- You can easily load your own HDRI if you want! -->\n      <a-asset id=\"hdr\" src=\"asset/studio.hdr\"></a-asset>\n\n      <!--You can use all the default VARTISTE assets with the vartiste-asset\n      component. Otherwise, only the ones needed for other components are\n      included-->\n      <a-asset vartiste-assets=\"\"></a-asset>\n\n      <!-- You can override some built-in components by defining mixins -->\n      <a-mixin id=\"lever-grip\" material=\"color: #a2c4fa\"></a-mixin>\n      <a-mixin id=\"shelf-bg\" materia=\"shader: standard\"></a-mixin>\n    </a-assets>\n\n    <!-- HDRIs are an easy way to get nice lighting and backgrounds really quickly -->\n    <a-sky color=\"#333\" hdri-environment=\"src: #hdr\"></a-sky>\n\n    <a-entity light=\"type: hemisphere; color: #eee; groundColor: #333; intensity: 0.6\"></a-entity>\n    <a-entity light=\"type: ambient; color: #fff; intensity: 0.6\"></a-entity>\n\n    <!-- vartiste-user-root sets up the default laser pointer / mouse & keyboard\n    interactions. If you want to define your own user setup, you'll want to make\n    sure to include the manipulator components on both of the hand components to\n    ensure that things can be grabbed and resized. -->\n    <a-entity vartiste-user-root=\"\"></a-entity>\n\n    <a-entity position=\"0 0 -2.5\">\n\n      <!--A shelf provides a definitive place to put things. \"grab-root\" ensures\n      that grab-and-move events propogate to the whole shelf-->\n      <a-entity class=\"grab-root\" shelf=\"\">\n        <!--icon-buttons position themselves in a row automatically. So we just\n        position this outer entity where we want the row to start-->\n        <a-entity position=\"-1.5 1.1 0\">\n          <!--Simply pass an asset to icon-button, and boom, you've got an icon\n          button that responds to a wide range of clicks-->\n          <a-entity icon-button=\"#asset-eye\" onclick=\"alert('click')\" tooltip=\"Run Javascript onclick handler\"></a-entity>\n          <!--You can make it a toggle button by adding the toggle-button\n          component-->\n          <a-entity icon-button=\"#asset-oven\" toggle-button=\"\" tooltip=\"Toggle Me\"></a-entity>\n          <!--You can style it, too-->\n          <a-entity button-style=\"color: #ed8607; clickColor: #8607ed; intersectedColor: #07ed86\" icon-button=\"\" tooltip=\"Look at the colors! Woah!\" onclick=\"this.sceneEl.systems['canvas-fx'].applyFX('invert', document.getElementById('draw-canvas-asset'))\"></a-entity>\n          <!--Add the system-click-action to easily call methods of systems-->\n          <a-entity icon-button=\"#asset-account-voice\" system-click-action=\"system: toolkit-demo; action: speak\" tooltip=\"Speak entered text if enabled\"></a-entity>\n          <!--Or add component properties directly for the toggle buttons to\n          toggle-->\n          <a-entity icon-button=\"#asset-check-outline\" toggle-button=\"target: a-scene; component: speech; property: speak\" tooltip=\"Toggle Speaking Enabled\"></a-entity>\n\n          <!-- Easily export entities or even the entire scene to a GLB file -->\n          <a-entity icon-button=\"#asset-floppy\" tooltip=\"Download this scene as GLB\" system-click-action=\"system: glb-exporter; action: downloadGLB\"></a-entity>\n\n          <!-- Use the VARTISTE undo system to easily undo changes, too -->\n          <a-entity icon-button=\"#asset-undo\" tooltip=\"Undo\" onclick=\"VARTISTE.Undo.undo()\"></a-entity>\n\n          <a-entity icon-button=\"#asset-help-circle-outline\" system-click-action=\"system: toolkit-demo; action: help\" tooltip=\"VARTISTE Toolkit Documentation\"></a-entity>\n        </a-entity>\n        <a-entity position=\"0 0.5 0\" text=\"width: 3.4; wrapCount: 35; value: Welcome to the VARTISTE toolkit demo\"></a-entity>\n        <a-entity>\n\n          <!--You can use edit fields which pop up a keyboard-->\n          <a-entity edit-field=\"type: string; tooltip: Edit a string!\" id=\"demo-input\" text=\"width: 2; wrapCount: 20; value: default text\"></a-entity>\n        </a-entity>\n        <a-entity position=\"0 -0.6 0\">\n\n          <!--You can also have a numerical edit field-->\n          <a-entity edit-field=\"type: number; tooltip: Edit a number\" text=\"width: 2; wrapCount: 4\"></a-entity>\n        </a-entity>\n\n        <!-- You can make interactables, like this lever -->\n        <a-entity lever=\"valueRange: 2 0; target: a-sky; component: hdri-environment; property: exposure; initialValue: 0.7\" position=\"-1.621 -0.917 0\" scale=\"2 2 2\" tooltip=\"Adjust Lighting\"></a-entity>\n      </a-entity>\n    </a-entity>\n\n    <!--You can put a frame around anything with a geometry. The frame can optionally be closeable, or pinnable to your hand-->\n    <a-image frame=\"\" position=\"0 2 -1\" src=\"#asset-vartiste\" tooltip=\"Here's a floating frame!\" tooltip-style=\"offset: 0 0.5 0\"></a-image>\n\n    <!--Adding the clickable class to anything makes it grabbable-->\n    <a-entity class=\"clickable\" position=\"-3.0 0 -2.5\" text=\"width: 2.4; wrapCount: 25; value: Desktop Controls:\\n-Left Click: Click buttons\\n-Right Mouse Buton Drag: Look around\\n-Shift+Left Mouse Button Drag: Move things\\n-WASD: Move around\"></a-entity>\n\n    <!--You can use some of the VARTISTE drawing tools, too!-->\n    <a-entity id=\"draw-canvas-demo\" class=\"clickable\"\n              canvas-updater=\"throttle: 5\"\n              draw-canvas=\"canvas:#draw-canvas-asset\" frame=\"\"\n              geometry=\"primitive: plane; width: 2; height: 1.75\"\n              material=\"shader: flat; src: #draw-canvas-asset; npot: true\"\n              position=\"3.1 0 -2.4\" tooltip=\"Draw Here\" tooltip-style=\"offset: 0 0.75 0\"></a-entity>\n    <a-entity class=\"clickable\" color-picker=\"\" geometry=\"primitive: circle; radius: 1; height: 1.75\" position=\"3.1 2 -2.4\"></a-entity>\n\n    <!-- There's a few handy default constraints to restrict how things can be grabbed -->\n    <a-sphere class=\"clickable\"\n              constrain-to-sphere=\"\"\n              manipulator-weight=\"type: slow; weight: 0.9\"\n              material=\"shader: standard; roughness: 0.3; metalness: 0.7\" position=\"0 0.4 -0.4\" radius=\"0.1\"></a-sphere>\n  </a-scene>\n</body>\n</html>\n```\n\n[View the demo on CodePen](https://codepen.io/zach-capalbo/pen/oNbKagV)\n\n<p class=\"codepen\" data-height=\"330\" data-theme-id=\"light\" data-default-tab=\"html,result\" data-user=\"zach-capalbo\" data-slug-hash=\"oNbKagV\" data-preview=\"true\" style=\"height: 330px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;\" data-pen-title=\"aframe-vartiste-toolkit-demo\">\n  <span>See the Pen <a href=\"https://codepen.io/zach-capalbo/pen/oNbKagV\">\n  aframe-vartiste-toolkit-demo</a> by Zachary Capalbo (<a href=\"https://codepen.io/zach-capalbo\">@zach-capalbo</a>)\n  on <a href=\"https://codepen.io\">CodePen</a>.</span>\n</p>\n<script async src=\"https://static.codepen.io/assets/embed/ei.js\"></script>\n\n\nFor information, you can also read through the source code:\n\n[https://gitlab.com/zach-geek/vartiste/-/blob/release/src/vartiste-toolkit.js](https://gitlab.com/zach-geek/vartiste/-/blob/release/src/vartiste-toolkit.js)\n","readmeFilename":"Readme.md","_id":"aframe-vartiste-toolkit@1.16.0","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-t9ej82J+EyMGb7baLDOKo6dLMW1Cb8u2zInOj/EB/e8ieh1FAYRpYeZVSfyAVklYlwI394wjEsQ2vzGMZUz0bw==","shasum":"36b6d29a260fcba0eceb7900eb656f732c2fcd60","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.16.0.tgz","fileCount":73,"unpackedSize":10441827,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgEz+ECRA9TVsSAnZWagAAr38P/3NsNbZajcHNIS2WA+n0\nd/bqb+lz1wf9L5zgXmCpgbVl/cDzHi4JHrk0K3e0bxuw9ud0cwDDgGlUtMJt\nE27sRiPQyYGit2dbtjR1s3bHDlwsqU5uswPp167RUWQ15nPNuKpfS+/dzXcy\nJhyNG5Zi+MZYgbiFFuzD2i++uhjczuRZbpHutLdnCQJ59VZFJL4PENGbwx5M\nWzPg+ovHGbo4h6QecV5WNc/0Ra2szBNK//j4YffE2aRB5PVezz+mNuqJ/yp3\nNvWtLkzA+//KHkfYXwE3LNrZSpuFNCvwz1y0PJwZCl9NIDdxBlzDI1AWRl9L\nMqjvWbLlFyNl2V2LMUR0e0qfEXQDQ/3jhpnDh6e3bt2b9sjMs925xAxrirR5\nY7oK8vTrcGWJUa9Exgee28xbiiZuQ5SrkvVmkDH0i2kMFywZxUZAvAQIXEqx\nAgPSlHVPWvMoyhYpY3hx2inkm4NLV7C8W+YR/RO+ZptUb/nI7Fj1o2KUDg1n\noFpRdp0dYTxfeftxOj6rwhVvxVqi/K8MnCWsUmyLSiH781BU1yV2SXh0bXEk\ng+frMPJPSQQeJWlS/s6eEJFYCdlQ772SQgBAxc9O7voRoDZs+nDLxpWAejA6\nxulNSfQCSiem0/6QWBBYKXneYlCVc8XRERzUJoZmm17YkrTJ5AxB2AfwUYYH\nRTg1\r\n=Mk5l\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID59CQPe5Rm+dNGMnBfqUyIR2nvth1ji0/cQsdxtfkitAiBFsvwyLetr+gyaOVfUW6QgQ0T4k+ZYPBy9sLBG7Qi4aw=="}]},"_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"directories":{},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.16.0_1611874179367_0.6634286606427735"},"_hasShrinkwrap":false},"1.16.1":{"name":"aframe-vartiste-toolkit","version":"1.16.1","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","_resolved":"","_integrity":"","_from":"file:E:/Downloads/aframe-vartiste-toolkit-1.16.1.tgz","_id":"aframe-vartiste-toolkit@1.16.1","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-sNoCnmtVmdvLXVRNGlcdhMLD4j2OVzsHj/J9Z6lhOfPwdG/SnX84GwQQs5tRge1rXgSPjoAPU6RtHlGYqEAGrQ==","shasum":"cd3378b44c304e0bcda54b7f04bbcb51523f75c0","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.16.1.tgz","fileCount":73,"unpackedSize":10442776,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgE3DoCRA9TVsSAnZWagAAEFQP/0SCD3MplnPxGEM+rOp3\n8r891kuvHCTt15BkKGaQA1vfFSBDkAgEmHcKC4+MGs7bmdeB5BI+GTSDBBXo\nbENyXLQcC6NMAFztqQRVRj3pQwRRLcZYjNUYMHLwe/Suln7CNR+C2ScgUiRo\n0O3Tyi0S8hn4ov/Cjr70swX/gi+6lbJFJ5QXYb8a0mHgqgo9tunalijq6wd5\n+Jur8Gg4k0QVh9/WVlKGnIGe/+fCvT5RYOOYG8Asfe5VlQDQ3KoFwSCKUY3O\nYQnca5dUBgWgZGUtKtpU5AwfmDcPkcUK53qo/872wgJ0SOipTeqB47Rv80T7\n+ceurqA5dlIZYlSJEHtMTl5LMYxZgqxS8q4AclVOEJKO/5V0sIobcdpGYwMc\nlikJc71FRgfF0ozuSkyTrj0kTinXp747pOWp+AeiOE4I8MBDguKaiD1daNDW\nQouMU3GLcsg79JuerAsk1KM4XfrBaZeZW/w32fpENC6tRc9LgDvOJ2MgOV5o\n4jTbJdariTrK84x/5ZBfrJBooFJwxziLM0i5ThfYXTYltj4tIMhKmf7Sl1F2\nxV25VO8eNeWi0fdVKtndNYyxiBIXCOTAshEWAXMkVE1T2AXCJJfpafgDnb3r\nKiCAd3xQD3xGWeuX4K/vrEAYQ0HK1W0tZtsfmonjw9CIze+sc4p4bWGPffAN\nUxZi\r\n=Aplk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDQ0FR1rwahDqPlLGWt0F474rJjVZ8qxTWQFsClAhVqIAIhALOcea+2AKR1blR3XsUh9dmYtGgFUUGNKiPv19BCqr0U"}]},"_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"directories":{},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.16.1_1611886823412_0.7488978753679494"},"_hasShrinkwrap":false},"1.17.0":{"name":"aframe-vartiste-toolkit","version":"1.17.0","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","_resolved":"","_integrity":"","_from":"file:E:/Downloads/aframe-vartiste-toolkit-1.17.0.tgz","_id":"aframe-vartiste-toolkit@1.17.0","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-g9gQ3ScqWtGw8r5qF62rHk9cnZXrdQgoYFMqbb6VzKcyb2MKZ47OtZO0HLIqQlkW3bJ1fkisKi8WRZpyRtop3A==","shasum":"42576ec7c317b6dbdee7bc2cf146a5b175c8d494","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.17.0.tgz","fileCount":73,"unpackedSize":11200416,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgMWEPCRA9TVsSAnZWagAAsmQP/jVHAKESHMNQ6YGBtk8U\nQ+2Zzq2tMKDNcKJeR8/cnwhNPnu15YOJHYngR2hrjVI5f7AzPqU28tFiS7Y8\neVKZgRmAUIFk0BRW3zwBZqlA35kfx8TceZkZ5YXzVsGFog/xRmrk4lCaoB9/\nS7c3J7lucOw0OsBQmSwavZg4nfX8i/D1XAssB4Ol6SfcwMo/1yRfBFGQOGZD\n5jAHWaDtqJjc41Dq8ZN6BubU28bY9YrGU9LLdqjLyfQw43MUVHCY/FC0DbWS\nsdXKZa3YrZSaBoRMF90oRrTkpTaY656dRyL60FiExj4gjEo8TDnxf8FZYlnX\nHgUuPiM7KUCXA1jmaNMLOR3asxyCALZAe4ttsWWtoVGCgtCtCyDH35E0kEIz\nJhDOwhR9M4uVi01A1TFclkfsUaCGc6bmEROuOecShX2itOX2piaxdef+Iu0z\nCIk+1GWWTCYbxwzV87xxxLaBnvv8K1EE+Fvjixkvt6NOTzxD/K2A0QlhzBOn\ne5vp3S4NipNfBMephf337XUUYraHrn6XZrnlzPgLYmv3btkNtAMDYpWl1QSR\nFQ+RVbMbuqjK+KLX2CZabETCnwZ/EHHKF9vC4oLJJLzVGMbpwwViz6ofwIXw\nF4hzf9LmE/+KD/Zjo9CUSqPYjiWGTaG2vNE1OttSqaDB8RUDpwvBSCQthXB0\nF8YB\r\n=i3kF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBc/cDruBovHf7aJ9h5UhKHeu2hly+z3xgwn8Wpd9pNVAiEApxgXI0EpsKM8tz2D1BRxs4R06rzIeyI9O7PKtlCeQrg="}]},"_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"directories":{},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.17.0_1613848846585_0.813700201114288"},"_hasShrinkwrap":false},"1.18.0":{"name":"aframe-vartiste-toolkit","version":"1.18.0","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","_resolved":"","_integrity":"","_from":"file:E:/Downloads/aframe-vartiste-toolkit-1.18.0.tgz","readme":"# VARTISTE Toolkit\n\nThe VARTISTE toolkit is a collection of components developed while creating\n[VARTISTE](https://vartiste.xyz). I've compiled them into a stand-alone module\nin the hopes that it might be useable to folks to jump start their own projects.\n\n# Installation / Use\n\nThe easiest way to use it is to include the `.js` file from a CDN, such as\nunpkg:\n\n```html\n<html>\n<head>\n  <script src=\"https://unpkg.com/aframe-vartiste-toolkit@latest/vartiste-toolkit.js\"></script>\n</head>\n...\n</html>\n```\n\nIncluding the javascript file automatically registers the components and\nsystems.\n\n## Assets\n\nAssets required for some of the basic component use are automatically included\nby the javascript source file.\n\nIf you want to include *all* VARTISTE assets in your project, you just need an\n`a-asset` with a `vartiste-assets` property, like this:\n\n```html\n<a-scene>\n  <a-assets>\n    <!-- Your assets ... -->\n    <a-asset vartiste-assets=\"\"></a-asset>\n  </a-assets>\n  <!-- Rest of your scene, etc -->\n</a-scene>\n```\n\n## Customization\n\nYou can optionally customize which components and systems are registered by the\naframe-vartiste-toolkit by setting the `VARTISTE_TOOLKIT` variable *before* the vartiste-toolkit.js file is loaded. `VARTISTE_TOOLKIT` should either be `undefined` (default) or be an object having any of the following properties:\n\n- `excludeComponents`: Array of strings specifying which components, systems, or\n  systemComponents specifically to exclude from being registered\n- `includeComponents`: Array of strings specifying which components, systems, or\n  systemComponents to be registered. All other components, systems, and\n  systemComponents will be excluded.\n- `excludeFiles`: Array of strings specifying all aframe-vartiste-toolkit source\n  code files (from [the component reference](https://vartiste.xyz/docs.html)) to\n  exclude entirely from registration. All components, systems, and\n  systemComponents in those files will *not* be registered. Any classes in those\n  files will not be defined.\n- `includeFiles`: Array of strings specifying which aframe-vartiste-toolkit\n  source code files (from [the component\n  reference](https://vartiste.xyz/docs.html)) to include in registration. All\n  components, systems, and systemComponents, and classes in other files will be\n  excluded.\n- `assetUrl`: VARTISTE Toolkit assets will be fetched from\n  `assetUrl/assets/####.###`. Use this option if you want to use webpack and\n  have a custom public-facing URL\n\n# Component Reference\n\nThe full API and component reference can be found at\n[https://vartiste.xyz/docs.html](https://vartiste.xyz/docs.html). Please note\nthat it is still under construction. The source code is available as well at\n[https://gitlab.com/zach-geek/vartiste](https://gitlab.com/zach-geek/vartiste),\nand contributions, both code-wise and documentation-wise are welcome.\n\n# Example Scene\n\n```html\n<!DOCTYPE html>\n<html>\n\n<head>\n  <title>VARTISTE Toolkit Demo</title>\n  <script src=\"https://aframe.io/releases/1.1.0/aframe.js\"></script>\n  <!-- <script src=\"https://aframe.io/releases/1.0.4/aframe.js\"></script> -->\n  <!-- You can specify components / systems, or files to exclude from being registered -->\n  <script>VARTISTE_TOOLKIT = {\n      /*excludeComponents: [\"frame\"], */ // Will exclude \"frame\" component\n      /*includeComponents: [\"shelf\", \"hdri-environment\"], */ // Will include *ONLY* the shelf component and hdri-environment system\n      /*excludeFiles: ['icon-button'], */ // Will exclude all components found in  aframe-vartiste-toolkit source file 'icon-button.js'\n      /*includeFiles: ['icon-button'], */ // Will include *only* the components found in  aframe-vartiste-toolkit source file 'icon-button.js'\n      /*assetUrl: 'https://example.com:8080/', */ // Will load vartiste assets from https://example.com:8080/ rather than the script's location\n    }</script>\n  <!--Just include the toolkit js file-->\n  <script src=\"/vartiste-toolkit.js\"></script>\n  <link rel=\"icon\" href=\"/assets/favicon.png\">\n</head>\n\n<body>\n  <a-scene icon-button=\"shader: matcap\" renderer=\"colorManagement: true; physicallyCorrectLights: true\" xr-controllers-only=\"addUseControllerButton: true\" spectator-camera=\"camera: #spectator-camera; state: SPECTATOR_CAMERA\">\n    <a-assets timeout=\"600000\">\n      <canvas height=\"768\" id=\"draw-canvas-asset\" width=\"1024\"></canvas>\n\n      <!-- You can easily load your own HDRI if you want! -->\n      <a-asset id=\"hdr\" src=\"asset/studio.hdr\"></a-asset>\n\n      <!--You can use all the default VARTISTE assets with the vartiste-asset\n      component. Otherwise, only the ones needed for other components are\n      included-->\n      <a-asset vartiste-assets=\"\"></a-asset>\n\n      <!-- You can override some built-in components by defining mixins -->\n      <a-mixin id=\"lever-grip\" material=\"color: #a2c4fa\"></a-mixin>\n      <a-mixin id=\"shelf-bg\" materia=\"shader: standard\"></a-mixin>\n    </a-assets>\n\n    <!-- HDRIs are an easy way to get nice lighting and backgrounds really quickly -->\n    <a-sky color=\"#333\" hdri-environment=\"src: #hdr\"></a-sky>\n\n    <a-entity light=\"type: hemisphere; color: #eee; groundColor: #333; intensity: 0.6\"></a-entity>\n    <a-entity light=\"type: ambient; color: #fff; intensity: 0.6\"></a-entity>\n\n    <!-- vartiste-user-root sets up the default laser pointer / mouse & keyboard\n    interactions. If you want to define your own user setup, you'll want to make\n    sure to include the manipulator components on both of the hand components to\n    ensure that things can be grabbed and resized. -->\n    <a-entity vartiste-user-root=\"\"></a-entity>\n\n    <a-entity position=\"0 0 -2.5\">\n\n      <!--A shelf provides a definitive place to put things. \"grab-root\" ensures\n      that grab-and-move events propogate to the whole shelf-->\n      <a-entity class=\"grab-root\" shelf=\"\">\n        <!--icon-buttons position themselves in a row automatically. So we just\n        position this outer entity where we want the row to start-->\n        <a-entity position=\"-1.5 1.1 0\" icon-row=\"\">\n          <!--Simply pass an asset to icon-button, and boom, you've got an icon\n          button that responds to a wide range of clicks-->\n          <a-entity icon-button=\"#asset-eye\" onclick=\"alert('click')\" tooltip=\"Run Javascript onclick handler\"></a-entity>\n          <!--You can make it a toggle button by adding the toggle-button\n          component-->\n          <a-entity icon-button=\"#asset-oven\" toggle-button=\"\" tooltip=\"Toggle Me\"></a-entity>\n          <!--You can style it, too-->\n          <a-entity button-style=\"color: #ed8607; clickColor: #8607ed; intersectedColor: #07ed86\" icon-button=\"\" tooltip=\"Look at the colors! Woah!\" onclick=\"this.sceneEl.systems['canvas-fx'].applyFX('invert', document.getElementById('draw-canvas-asset'))\"></a-entity>\n          <!--Add the system-click-action to easily call methods of systems-->\n          <a-entity icon-button=\"#asset-account-voice\" system-click-action=\"system: toolkit-demo; action: speak\" tooltip=\"Speak entered text if enabled\"></a-entity>\n          <!--Or add component properties directly for the toggle buttons to\n          toggle-->\n          <a-entity icon-button=\"#asset-check-outline\" toggle-button=\"target: a-scene; component: speech; property: speak\" tooltip=\"Toggle Speaking Enabled\"></a-entity>\n\n          <!-- Easily export entities or even the entire scene to a GLB file -->\n          <a-entity icon-button=\"#asset-floppy\" tooltip=\"Download this scene as GLB\" system-click-action=\"system: glb-exporter; action: downloadGLB\"></a-entity>\n\n          <!-- Use the VARTISTE undo system to easily undo changes, too -->\n          <a-entity icon-button=\"#asset-undo\" tooltip=\"Undo\" onclick=\"VARTISTE.Undo.undo()\"></a-entity>\n\n          <a-entity icon-button=\"#asset-help-circle-outline\" system-click-action=\"system: toolkit-demo; action: help\" tooltip=\"VARTISTE Toolkit Documentation\"></a-entity>\n        </a-entity>\n        <a-entity position=\"0 0.5 0\" text=\"width: 3.4; wrapCount: 35; value: Welcome to the VARTISTE toolkit demo\"></a-entity>\n        <a-entity>\n\n          <!--You can use edit fields which pop up a keyboard-->\n          <a-entity edit-field=\"type: string; tooltip: Edit a string!\" id=\"demo-input\" text=\"width: 2; wrapCount: 20; value: default text\"></a-entity>\n        </a-entity>\n        <a-entity position=\"0 -0.6 0\">\n\n          <!--You can also have a numerical edit field-->\n          <a-entity edit-field=\"type: number; tooltip: Edit a number\" text=\"width: 2; wrapCount: 4\"></a-entity>\n        </a-entity>\n\n        <!-- You can make interactables, like this lever -->\n        <a-entity lever=\"valueRange: 2 0; target: a-sky; component: hdri-environment; property: exposure; initialValue: 0.724\" position=\"-1.621 -0.917 0\" scale=\"2 2 2\" tooltip=\"Adjust Lighting\"></a-entity>\n      </a-entity>\n    </a-entity>\n\n    <!--You can put a frame around anything with a geometry. The frame can optionally be closeable, or pinnable to your hand-->\n    <a-image frame=\"\" position=\"0 2 -1\" src=\"#asset-vartiste\" tooltip=\"Here's a floating frame!\" tooltip-style=\"offset: 0 0.5 0\"></a-image>\n\n    <!--Adding the clickable class to anything makes it grabbable-->\n    <a-entity class=\"clickable\" position=\"-3.0 0 -2.5\" text=\"width: 2.4; wrapCount: 25; value: Desktop Controls:\\n-Left Click: Click buttons\\n-Right Mouse Buton Drag: Look around\\n-Shift+Left Mouse Button Drag: Move things\\n-WASD: Move around\"></a-entity>\n\n    <!--You can use some of the VARTISTE drawing tools, too!-->\n    <a-entity id=\"draw-canvas-demo\" class=\"clickable\"\n              canvas-updater=\"throttle: 5\"\n              draw-canvas=\"canvas:#draw-canvas-asset\" frame=\"\"\n              geometry=\"primitive: plane; width: 2; height: 1.75\"\n              material=\"shader: flat; src: #draw-canvas-asset; npot: true\"\n              position=\"3.1 0 -2.4\" tooltip=\"Draw Here\" tooltip-style=\"offset: 0 0.75 0\"></a-entity>\n    <a-entity class=\"clickable\" color-picker=\"\" geometry=\"primitive: circle; radius: 1; height: 1.75\" position=\"3.1 2 -2.4\"></a-entity>\n\n    <!-- There's a few handy default constraints to restrict how things can be grabbed -->\n    <a-sphere class=\"clickable\"\n              constrain-to-sphere=\"\"\n              manipulator-weight=\"type: slow; weight: 0.9\"\n              grab-options=\"undoable: true\"\n              material=\"shader: standard; roughness: 0.3; metalness: 0.7\" position=\"0 0.4 -0.4\" radius=\"0.1\"></a-sphere>\n\n    <a-entity id=\"spectator-camera\" camera=\"\" position=\"2 1 1\" rotation=\"0 80 0\" camera-layers=\"layers: spectator\"></a-entity>\n\n    <!-- The toolkit also includes a PhysX-backed physics engine, with lots of nifty utilities. See https://glitch.com/edit/#!/fascinated-hip-period?path=index.html for a full demo! -->\n    <a-box material=\"shader: standard; color: white\" width=\"0.3\" height=\"0.3\" depth=\"0.3\"\n           position=\"-2.276 0.3 0.165\"\n           physx-body=\"type: static\"></a-box>\n    <a-entity icon-button=\"#asset-nudge-brush\" tooltip=\"Start Physics\" system-click-action=\"system: physx; action: startPhysX\" position=\"-2.105 0.3 0.13\" rotation=\"0 90 0\" scale=\"0.6 0.6 0.6\"></a-entity>\n    <a-entity gltf-model=\"#asset-hand\"\n              preactivate-tooltip=\"Press Start Physics below!\"\n              position=\"-2.276 1 0.165\"\n              class=\"clickable\"\n              physx-body=\"type: dynamic\"></a-entity>\n  </a-scene>\n</body>\n</html>\n```\n\n[View the demo on CodePen](https://codepen.io/zach-capalbo/pen/oNbKagV)\n\n<p class=\"codepen\" data-height=\"330\" data-theme-id=\"light\" data-default-tab=\"html,result\" data-user=\"zach-capalbo\" data-slug-hash=\"oNbKagV\" data-preview=\"true\" style=\"height: 330px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;\" data-pen-title=\"aframe-vartiste-toolkit-demo\">\n  <span>See the Pen <a href=\"https://codepen.io/zach-capalbo/pen/oNbKagV\">\n  aframe-vartiste-toolkit-demo</a> by Zachary Capalbo (<a href=\"https://codepen.io/zach-capalbo\">@zach-capalbo</a>)\n  on <a href=\"https://codepen.io\">CodePen</a>.</span>\n</p>\n<script async src=\"https://static.codepen.io/assets/embed/ei.js\"></script>\n\n\nFor information, you can also read through the source code:\n\n[https://gitlab.com/zach-geek/vartiste/-/blob/release/src/vartiste-toolkit.js](https://gitlab.com/zach-geek/vartiste/-/blob/release/src/vartiste-toolkit.js)\n","readmeFilename":"Readme.md","_id":"aframe-vartiste-toolkit@1.18.0","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-r8U8GVTNua061xZ9zcmTB4oJD3OBR6nO5P2uQqkOy0hJK/dIH+spSXnVAKxIyR5ZLuqYKL7NLsXKSAmC/+MxdQ==","shasum":"2ce12f8460abfeca4dc05229d3bcefb9f77d1b57","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.18.0.tgz","fileCount":74,"unpackedSize":13929575,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgO/BeCRA9TVsSAnZWagAAEkgP/2JDEa4mnxolEXAXDht3\nUtPNZpQY70Lzd4c+yz/ItCYXOyRywGTbL95NoGSbbPC7GDkBAOPDCKpPSCJ3\nVMkuPrzVZmUnIdaAobXbCPOqo6QnY40e12G0iT90ug1DjJMSD1A8U3rHyJKn\nxo7TAmoYsqtBxpEYAcXGAhTlyE9hK0grQp7tr/zJ+vpM0PZVzYS0Xp39GXuy\npiwUH7Cv5uTmMv6lW0FGQq1fA9Pk20UN9bgwGi1sBRhtGnCrUK/XHz1NQtlN\noptoewWNy3I0qohdVRGW6G8elXIGTvryEecV3LQnQBtOj9Y1SZznTCubwu97\n8MifMj3FrhKexa44Gzxt3mskvo1jOQUVCWssJG/y8C/3TGiuC+iOhCaGmDEH\nGzb9ZqGmvbId7nTkIMh4zpYvJSAzMHNMHIrx/r9Hk3PR9YIeS4NnYCHiLpOV\nKsw4jN6DXixAFhASrI8gKyjdI+H0w0O/2JzLlJ2+15MPu45BrR6MgwZjpMhg\ne40gTS2KHe//0mULdjbA9dcPncSKWaAbo7EhZBbR+kY3Wqk850n8lnR9o5X0\nI/w9hpHdmhXO9VhO+le++W/Z1SvVa1DrUxNUNC3GwIy5+cuFy0AJOfHZN2PA\nmwMI5lcCdv8PCu3/JzoLAHDDKo0etx8jbYMnShlON8ArH1StAQoAkhNP7LY9\nl0fC\r\n=GLHc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDa9MyPYB5tqy06gDGDB4pYCrPkC9Sl///87qUDvYh7TwIhAPDh0VcoUS6DEK4aBdltlFV7zHgFnEHjEHyvLOA5M33F"}]},"_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"directories":{},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.18.0_1614540893347_0.3732438338373325"},"_hasShrinkwrap":false},"1.20.0":{"name":"aframe-vartiste-toolkit","version":"1.20.0","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","_resolved":"","_integrity":"","_from":"file:E:/Downloads/aframe-vartiste-toolkit-1.20.0.tgz","_id":"aframe-vartiste-toolkit@1.20.0","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-4lXCtgygaDpwAnvPp0TZgGpjFlg8npketXCTlKyV5Z2lnwky5/fyrPi35isFTAjCON+bsxXhGjXQ+kT3rSMzoA==","shasum":"5426104210eb45f21a8a7235803bbae6d5f4dc14","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.20.0.tgz","fileCount":80,"unpackedSize":14414287,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgR28OCRA9TVsSAnZWagAAGT0P/jaZWLsByuvNz0bzFtIm\nO7Rzjpqd1PkPFO6LSGMYDeXpWYIWLfiTYrG8chL9SsZMgya9tbRZvMaG+z8E\nIyp7YJ5wee3GKyubOKZZCoY3V9jvORjedcFod6QYCmZN+KtDnE1m6m2KYNM6\nIP+j/ZRV4IhQn3tJrEgCiuSzIxenAY2ydQ2NjxqwIi9FRBt7wgK6pvqOwlMQ\nSI55RvD306nQMoYzst7eeB0I4luwDoQ+AcGPd7OddQ6YHPWg/4va0PwYQZu6\nefZm3QM7+8J38j+uDPGC8n9+8xYmqSCql55E4assDFeCwvu5PH2RnGubw2b2\nFjNS659LOqQXmdhzCJul3JbwMaUxyLdry2BH9pZAyd3ipO1A73RD5WOpfNd9\nCdEjPX93zubqckFt/Ba+orP5I9QJymlhnFvClNW4YTeNqxKSXkcTeX5GFND7\nJoQug07nqChiyYIaRu20aotutXVO8fk4QPPEi9L219YdlQovGiLrSSSQEqSr\nWscu+WsHXO/TOhASARnWGvmGryYh/jWle9Jt1ci75ENIn3dAhEx9EFiRIQIY\nD/82dfRoqzh8gYp+SAMXVbCobudRZm1VHkxEsPtkPAX8qxwfxBoabEwhLVO9\nlRfgO6vv4S97EJM+ElVa7Y8yF/fpZmJeWJK7OBH+oF33VVv/Eswjmvqylen1\nLCyX\r\n=t2N6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHHCKnspK9yCMycRNjYiSeXwljGLXesWcVLFOEXVyyAKAiEA/3nf57Vnk+RaCY/e7/w7YgzspfK+U0HUNL5Eovutacc="}]},"_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"directories":{},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.20.0_1615294221069_0.23155566033220043"},"_hasShrinkwrap":false},"1.20.1":{"name":"aframe-vartiste-toolkit","version":"1.20.1","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","_resolved":"","_integrity":"","_from":"file:E:/Downloads/aframe-vartiste-toolkit-1.20.1.tgz","_id":"aframe-vartiste-toolkit@1.20.1","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-HGesO4+entRUh8uQCU3kc6G7tPCQO6yXkKwsEgGQwkAhz3eO3kHvj1txTE8zj5eJThl+EK5mqgRJ8gsSuuwD3Q==","shasum":"adaf2a19337a18232035715ab95bf1a5447ac955","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.20.1.tgz","fileCount":82,"unpackedSize":14479996,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgSsKvCRA9TVsSAnZWagAAC6kP/3DyyOrHk/6Xv/TwLet/\nd+6dgG0YoHfgaKIr4m1SHXVWgspodturyIjzCoOPM/vRJu8IwnFQm0sVP64W\nZPFiz+o3KaJYM4cfdlCWDIujSfxhUdvdHM0RcESI5Ra/G4vdzaNANxxU9Fea\nuwM+en4DymHLAJidSYHeC30l7WkZa5YYOtm6tKFtArx78EOud9Fhua5z2ePS\niaVa1BFbVE33LPPGrx/hYGJlr8/HQbmBeWAsuwniBnH3fqZ5ZnodA9QWZ3c1\nFFRBZbXZg9ahW92rUUXoBs8iuQMs/rGmnNlQTHER6RV4hBcnYD+2YKei5fSF\n7PzPLfubd2zzMy14vqSsqIdiOIDHzNoiOa6lSStmgJC3wj+Y9rnMrH63eFM1\njhgeMiQiYHcKvaqXG6CiMPSY9slq5qiKYqPk3hfyrDp224p1INGR1EuIaile\nAMrDSYomIyMHe5M1a0hduIdMWJ65AaFRfqF+lWdFQ12Tw3Dcb8faVAboROwO\nA61beTypXBYNOlvPqyt8qrcj3p7tSzcH1J+mSxZlt2ajQMzSo66RbsnM+Pyl\nJxy5zKIKXFUya2Lk2e/XmpqkqEpTPdSLZYGqvL+LkH1wL1HxqSEuQD4LJCkf\n1KEv5kxSvL0MHu+nxlmACAVtnjD8Ka3zh3JzIXYaak/zRAgTPXHGForm56MG\ncwQY\r\n=71lv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDML0ZmuzyKw8Apzcs2Cq2Nn2UgY5fK+Roj6GSoP12XegIgAuPsfqUyFonHQXTh7uHWtYqWMSmL0BRAWggBFM9lMU0="}]},"_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"directories":{},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.20.1_1615512238475_0.7250365091967257"},"_hasShrinkwrap":false},"1.20.2":{"name":"aframe-vartiste-toolkit","version":"1.20.2","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","_resolved":"","_integrity":"","_from":"file:E:/Downloads/aframe-vartiste-toolkit-1.20.2.tgz","_id":"aframe-vartiste-toolkit@1.20.2","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-3bd6vvvAv2cMmKRihu+caaJa+1kZxGle22XjHQwYV0mtLrU5uSuxG9SQEuoFMOW06a0SLCl56al1R/SFLkq3uQ==","shasum":"a402a6cd8df86bb5fcb6458744778109a5845426","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.20.2.tgz","fileCount":82,"unpackedSize":14480611,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgWnO2CRA9TVsSAnZWagAAzUMP+QFTOF4TGwzls/wycvWz\nM4qCSfqtl6BnhMxpiv9jtJxpUgupWc5KnLl/HxvAkPAGk1HC3X4Dd1AFfmVo\nWVmyC42JYXejqmDE511wdP2ZZg9pPvBlRtS7tS3zvOVTXNZzOMUbV3w8jkoV\nsMy6Far0fJ/h1pi2qASOpQlENygAOF15+GBwhBp3a1VztVuCRmSMpZ0u5AW/\nSUDHZv1S659qm/ETQnW9r5NwUlZ+PQDIZuU88Abx5HuyJ+b4ou7VJ9D83Uvk\nX/lErJ4oTQ4kU39IihoCz/aJyLIoawhdUS8DoAjkz5n6fKT01e0EeYpmVENa\nOkz1AQbfeMWuVjZsK4wVXzd04iirjGcgeSCXKRojMegUzNQSlJwb7tdWkKli\nqaKWU9F2wNxCDRZIRm78WCd7llSrEE2RgroEyyHYj4Xd1KQAyOIOotd9NM9u\n07Tgl0L1CM9R0fIeSxVJ/50JrnZCKQ9mUP9cshu3baFFJz2DcREzn1aS9MoV\nlv6defuDaAdoS480A/kTsRi+eX8BhvnJAg1B+mCfstQZXrU9/FzaB3ooXrX1\nOV+Uyd9PKKQP0pDTjPtDJHBJiUhd8uLWGPHGWuhqX5z7Ypz5z1WePLWMBi1P\nHbCCakUS6xEZg2+jfcrC5QH5S1PsQs2Eq4dW6tsWvn52tAM6ah0FgerOavbj\nhHy5\r\n=mLYp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGuGO7BssuWOm6TbwtYQ5BNGQQw4YHNH34NCVKPjCbccAiAvQRc/tk/lO1pV6rFQbCcOSUqBC+kFw/xAK+o0FFFy4w=="}]},"_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"directories":{},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.20.2_1616540597218_0.28468643799314663"},"_hasShrinkwrap":false},"1.21.0":{"name":"aframe-vartiste-toolkit","version":"1.21.0","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","_resolved":"","_integrity":"","_from":"file:E:/Downloads/aframe-vartiste-toolkit-1.21.0.tgz","_id":"aframe-vartiste-toolkit@1.21.0","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-T9R0GKBz+mAPAs9FNieo/ztiFyJEX1uespPH7l56XPLaWWDpD33v6GkosMzm33b1UBBxd0v4RXRKJqfDWQXiVA==","shasum":"431793d3b834dd188027508dc4b623f3c6ab34c6","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.21.0.tgz","fileCount":84,"unpackedSize":14860781,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgZZpHCRA9TVsSAnZWagAAEOwP/2dAGZ8h7tmQ6bQpMEg3\nNTsf0B9SEPK2VfW+IqHHLbQP5Bjyhr1byeT/fLJ4LFW5NKvPPNBUWOeAh5iY\nMtGIEMiplmFfdjnXHwqik6BQPhN5YKklLQg/fkcFCgKq1pj0s2YsoGQmXeL6\nzKJqCPUJC+lWa97TsNaHLZ4/1ldy4HlNDI33LA333YhfoggIyiShl5/h5gYw\ncNYbPw5FLUPCbPMTK9Kdv8Oob9/8BML/ROwhasCHTWTnC46Z12cSX6JA/toR\nashgykJXmjLWID0LxV7fbr9a6vMWZNjNX1tMV76w3+Q4CLZbFSVTq5jZtRuy\nZfGuAX7Sh/LKCuAkMc/o8+y2hfywaCshB9lnTSbU1b01ld5rxXPpqvO/9wpF\nAt/h88WCb45fl3fBJctklYeK8CNQrTkKPWM/8f192zdMtvbohM1WaVjOjnrU\ne9jgi6kVoavH3XiO72gPSPVUKbqfe2nMZBW3BEwucYzW8BW+Q+07waDktd1X\nkAcm6BL96Du3TJBdNKdIaGZlMxsJXAIYxExuxAGuHRyXVFZjikkIIFiWaXu6\niRoRr/zP/EYBmy9y+UjLeWBdHFIQiwKlmP2MML0rNoBuAapNvfXUfRNf0Hw7\nxZvAHZrjNWB99fAsda2saxutP9AGkVsRFZ9fM0FGgrFS6b0ZWdnfkHh7JGGD\nDchi\r\n=3Ljz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID0lt9xtHyxfzXl2GCjh+5Jd/Zdcf0cV9yvV4RnSf1E9AiEA6qeAR/zVwIFGh4DvwKIxoRUnmsnXqeHdQ9bhDNdV0Kc="}]},"_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"directories":{},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.21.0_1617271366040_0.10771383089525255"},"_hasShrinkwrap":false},"1.22.0":{"name":"aframe-vartiste-toolkit","version":"1.22.0","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","_resolved":"","_integrity":"","_from":"file:E:/Downloads/aframe-vartiste-toolkit-1.22.0.tgz","_id":"aframe-vartiste-toolkit@1.22.0","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-sXnXTkgzg0mEo4Bc6PXrp4+vbDQd9ddmGfWiU2xe0PqShFCEA/anO2vM6e+wfcnPrC2wFP22L2I1KOGG4QXaTw==","shasum":"a9a5eb7a26a79cc36673f237fea662c2911f369e","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.22.0.tgz","fileCount":84,"unpackedSize":14865091,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgbu8lCRA9TVsSAnZWagAAGHIP+waDLlPGnPZfNEYmISXr\nJ9LD4lFC4t5hKiw43JBBaagsdwWiRSE+r6/2IXvmQFHbD8F/HyuuuyYWW7h/\nGvnI+e9a0KIOj96zDM/Wq/ZI0I4eiUB2OvhETI66kWsKNBIfRhc+bubkp4Km\nmn2cOK7voitnBfJ+n5LKWpOczT+eQNFU9r/DZrRHMTFpv0DYzkVYNcQajAJ4\nhh4Xe2cDm9zsGSUStwgIBp4mgG6ipL86Fl0oAfgVX3T/3hmpX93XIvK42e07\n6imsdmFwUfqfG1H2gO6JYlix/se5RNgauIcZpNvh4PdyANF34aMw/5umpmmI\noT50r50t5rVq9gyeQCxvfj15ekuIqnUVadoUWbrwCyUNZrXUjt9SpBjlJeez\nM5HkskHu+TuyNyMRkAPao4yNCJQ7afAxj+Xhqkg96shx+u2oij/+nCPzzUhl\nsssHFpfsBfDzYN2cBO6doNI7eLk70W4DsL+yeUEU46SV2+AbKSV+Njyaz2yI\n1jrOxTaP7oYOf/GqR8xiGV4eHBm2BmCr+R/CD+Saj2yaudNtEEsvi/ZZp6R9\no5Wo7tx8x24ePF6LLPvL9vwGHyBFi0u6K/HP3Ugl8Ucot6RLp/oxdrTY0/um\nBcifbue+kA7QkqQMqZF2PrK4/FTWwTUNj8VBcJnqDJDbdgl4x1xkAchLKwns\nGIHo\r\n=i5cI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH+dLvs5HmRWMAWb6qHHtGbxTdK0HPLU2MvTz/o/SEFsAiEAyWmj63UNDPBDsrYXjneuzYbyYoLIMzTJxSOB0epwZeE="}]},"_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"directories":{},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.22.0_1617882916422_0.5583283599174227"},"_hasShrinkwrap":false},"1.23.0":{"name":"aframe-vartiste-toolkit","version":"1.23.0","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","_resolved":"","_integrity":"","_from":"file:E:/Downloads/aframe-vartiste-toolkit-1.23.0.tgz","_id":"aframe-vartiste-toolkit@1.23.0","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-CVX+s8NQRjxE6ttdW7uk7R3wP+HaLPQuKJzN6FPR6NKgLNG/65i/ExmAY4Rr5KROYGjIJjpsu1ghWVZ4zu8Nnw==","shasum":"fe1cc09e2b8bc5a790c6ccff3369e390f36169eb","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.23.0.tgz","fileCount":84,"unpackedSize":14872430,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgjKUqCRA9TVsSAnZWagAA0kAP/1jtj2Lc479cww8bf/kv\n8Mvqj6E3kpcXdbNimq1A9a66jva1Vui1B6g12lo2nea/oxMyWJVQfWNRBA2g\nPYbvwEptpFJfOszE/BmjJLa21UPm0k2rmWWL0yWvsslCBzYF3CsERU8vUxsq\nvpoTcIengvTyivjfg/StV5r4RpS8AhDqWTIwpgEEBmXOY/mEr9RYcZhh0PmE\n13rZNIW18fFh+ocJWv+alUmonYluVvKoXSiW7IE0x2ykqShk1EPnengQij74\nw28d1aLaA2SDbVsLfWcZEwGAwK7jWmGevYsqmBT0nPDw81h4/wiO1zcIebly\nY/gbcbSS929OxkAAY5Kx3B5EIcOtUIP6m7jah2PJoSD2YPlzo8JSN4B8wqF3\nhodH1IuNOTI7sNi9YsVKKgxEbDkeADDL+nXZxP9THzBCLYGqSTbGlR9fJs8A\nM7tZD2b3DjY0NHCQ9ncU9EKaT5ZnFvnz1SwzcHbNTAn8QMeyjiekbdwSOHul\nnB2NopySMy4uyK7VDvfU7HFilgdPd7IE9klSU500bX6dBHAdbUNRBp2kVxyE\n9OqyAEr+qJPhnNQyk7c0Kl/NMPV8Lv1GURK4fN6cUKUhG2MfUzW1iawyWLUH\nl1hWzxvGSJ97iLtpCOF/jIMJ/6D2sDnHUB4or8LTeWrGFBpqV/lDxLhjew8G\nILVh\r\n=FXl7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDiry6Z93ETHk4cOOn+Pa663ldfQufevNBc+NN8SBIW6AiEA8dhlfiyH9SfZpGsjFQHqrPP5aBkZJWPm2QCEPYUQI8I="}]},"_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"directories":{},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.23.0_1619830057667_0.8402063845873895"},"_hasShrinkwrap":false},"1.24.0":{"name":"aframe-vartiste-toolkit","version":"1.24.0","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","_resolved":"","_integrity":"","_from":"file:E:/Downloads/aframe-vartiste-toolkit-1.24.0.tgz","_id":"aframe-vartiste-toolkit@1.24.0","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-3oVVxy5xrpKibX55t9DV/TmJpYDzfBemYcqOJpGBRyQWReb5+07fpQQNkDLmXPaFObkw1iX6jhe1kfSEJB6LaA==","shasum":"8a88d3673e6d2a6671b12397e66f6b34310ef58f","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.24.0.tgz","fileCount":85,"unpackedSize":14884230,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgma14CRA9TVsSAnZWagAAaycP/3BUhbcqbm6hvan6eoIM\nnFy5pU5Bg+i/TQItrAWHWLAXUM0u/9r6Ex/7DHFVGjdQUgMJ8Q/Jw4HSjt1N\nS5dK+njqlj65BinVMjt1BVPTyplXDpVZ4yzYGrBcs7+OLoATYP56cV2U894d\nqsDMDj7ddZNnGElcqVvoiPvR28SkUjQd/DJfPsIE0bMvjqbsfz0QTKLhx8Ct\nWanUfo68JQrMhiaPkmzBsgA+Y+3m8xBiMeSPGfBieHgaYDx8JNWDm9/5uuSw\nByOaBFTbzYUMSfsHHiB3Jofbc6UzYDejGXXgXz6AhSoMSzVYcGWsivfIv/40\nIK5a7oeeeYbgLbUWTSc/50eBEjliGJzh13sPC8jRKRAAiSDPBBU2BzKR/xBF\nQh2hflYHjtE4NOsnGE5XzVAoqVE0OZexAA6tqkMZLGWYE4evkO+r19Xtslbs\nyhCFVXkhUKmXJaeJnR85gfKQsLUelU86QOnN6irmGzkkCdvs1Iln1CocsGXR\nrDDiEOgiAjjTA+UXCwSHNL4NM75j3016JSAEYAJZfNjttmCCMmHlsERXI+yF\nquA8a3H4afIXicYZHyHe1bCzXsS8ysJ+y14d1vJx6zrVCmZosSz/bvEUcXl3\nOvnFQC5RFpuebU+Z2g0ZPcvKm0FBz9M766eYvLJzMQYqNUucjXeaXI8fiYgd\n4AGr\r\n=T3XX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE3iVa0KRajEm7TGwtBrreGlxruTQA2VIZr+emwH1rsPAiBaoX/6qf9MdNiimpTn/8oXRgE9G6AcXOwuBAp+VebrLA=="}]},"_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"directories":{},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.24.0_1620684152046_0.5596101618661806"},"_hasShrinkwrap":false},"1.25.0":{"name":"aframe-vartiste-toolkit","version":"1.25.0","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","_resolved":"","_integrity":"","_from":"file:E:/Downloads/aframe-vartiste-toolkit-1.25.0.tgz","_id":"aframe-vartiste-toolkit@1.25.0","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-NhEVdJ9ZLupgR7CGB0T2mLHy5FSGzDyBlAFUkXzFSb3F1IEwsE4KPWIKf06n0jwi0oQ7S6bDKeYQpGkHOb2pFw==","shasum":"c357925c58077a5bd86847d742173dc3abd826f9","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.25.0.tgz","fileCount":85,"unpackedSize":14912350,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgnIBGCRA9TVsSAnZWagAAlKgQAJcoyVhN2/ydoIcGCWh6\n4PlS5+jdcxS/KHdAHY083ixVTx8b9wDNUBXADVude5I5o8yMkAlFR8v3U5Aj\nzO9clAAm0uAquj+GSHyYVbrMLdr5sClw9UpRPjQIRWsCpZPcxkanFh8vnax5\njrDuKJ50JceVqj2nXsSXUyQSPNAU+5Gwpuwf3VDPdAkSkeQxYuiTXg0sNuJC\nRbTi1jTGd2CQb4aSNkwj0Zm1jtU7rv0LwyXN8iPWPCD+m5+3ooXmXp3Uc0M7\noXUih2n6WxHcS02IV7TSYYcnscjbETJjhTjH63f6IYlL7hrZTRAsm/wIoBcZ\nKJC/nKICs5JJ+kPvRnqBWD9OhWSeVDGi2NmP6Wlz2h28vD0lvwM9gjCpI0U+\nS//jd/QUDIzkvbra01Z8YtVNz2h6cH9ejAH+xk0ouvwboJrFapLeV3d6YSJx\nnDEaEujCx/C1aHnMvkaK3Gii5wU/ETfhXyd4spyxwrg8RiAdLPN7cKdtdIMQ\nfUuGwghLYlbJpcyVY1mYTRdMslNcHcHKvXEDhDtE1V01WW6VJtqfhZUK6bd7\nT7ftn10txqqeeZpmKHaaHLtjcFtKrH1jPRV8Yg1+6BfMQYTtpEn7ywrUl8ot\nixwB0OGl/0RMXQFzN4WmqcEpeGPEaq8lAswf15oMAvqan6Mp0X+TYou88c21\nVZsF\r\n=dJh9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGhhOv+dQdPAQOMAiPbpAwwOdODja8k+m8j9dGG57zxsAiBE6WQsnBsePql/qMI2czqnIeGoFA60vs8ALg094RHWyw=="}]},"_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"directories":{},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.25.0_1620869189567_0.9774449977392572"},"_hasShrinkwrap":false},"1.26.0":{"name":"aframe-vartiste-toolkit","version":"1.26.0","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","_resolved":"","_integrity":"","_from":"file:E:/Downloads/aframe-vartiste-toolkit-1.26.0.tgz","readme":"# VARTISTE Toolkit\n\nThe VARTISTE toolkit is a collection of components developed while creating\n[VARTISTE](https://vartiste.xyz). I've compiled them into a stand-alone module\nin the hopes that it might be useable to folks to jump start their own projects.\n\n# Installation / Use\n\nThe easiest way to use it is to include the `.js` file from a CDN, such as\nunpkg:\n\n```html\n<html>\n<head>\n  <script src=\"https://unpkg.com/aframe-vartiste-toolkit@latest/vartiste-toolkit.js\"></script>\n</head>\n...\n</html>\n```\n\nIncluding the javascript file automatically registers the components and\nsystems.\n\n**Note:** It is recommended to specify a version instead of using _latest_, in order to avoid unexpected changes. E.g:\n\n```html\n<html>\n<head>\n  <script src=\"https://unpkg.com/aframe-vartiste-toolkit@1.24.0/vartiste-toolkit.js\"></script>\n</head>\n...\n</html>\n```\n\n## New Project vs. Existing Project\n\nIf you're creating a new project, the aframe-vartiste-toolkit has a lot of\nfeatures and functionality, and I recommend pulling in the whole thing. This is\nthe default behavior when including the toolkit script. The components and\nsystems can work together to provide more functionality when everything is\navailable.\n\nIf you're bringing aframe-vartiste-toolkit into an existing project, you can\neither [bring in specific pieces of the toolkit](#customization), or you can\nbring in the whole thing. If possible, I recommend pulling in the whole toolkit,\nsince some components may depend on other components or systems, but if there's\nconcern for naming or functionality conflicts, most components can also operate\non their own.\n\n# Toolkit Overview\n\nThe *aframe-vartiste-toolkit* has a lot of stuff in it. It's built by exporting\nevery little bit and piece of the [VARTISTE](https://vartiste.xyz) app, and so\n[VARTISTE](https://vartiste.xyz) and the [VARTISTE source\ncode](https://gitlab.com/zach-geek/vartiste) are ultimately the best places to\nsee what's available and how it works. Nonetheless, I've written some\ndocumentation as a best-spare-time-effort. Here's some of the key things to get you started.\n\n## Philosophy and Terms\n\nVARTISTE leans pretty heavily into the entity-component-system framework that\na-frame makes available; most things are components, which use systems when\nneeded, and can be attached to entities pretty readily. Plenty of components\nalso spawn their own children entities.\n\nThere are a few notable exceptions in the form of utility classes, such as [`VARTISTE.Util`](#util.js) and [`VARTISTE.Undo`](#undo.js). These utility classes are exposed under the `VARTISTE` global variable.\n\nMost components (but not all) respond correctly to updates via\n`setAttribute`; fewer things respond entirely correctly to `remove()` so if you\nrun into issues, double check the docs here or the source.\n\nOne extension to the ECS framework in VARTISTE is \"component systems\", created\nvia [`VARTISTE.Util.registerComponentSystem`](#util.js). These are basically\ncomponents for the `a-scene` which get automatically attached (like systems do).\nThey have the full schema and update abilities of components, with the\nauto-attach convenience of systems. They are accessible via `sceneEl.systems` *and* `sceneEl.components`.\n\n## UI Components\n\nVARTISTE has a quick-and-dirty user interface, focused around the [`icon-button`](#icon-button), a button with an icon on it. These are usually collected into an [`icon-row`](#icon-row), where they're automatically layed-out horizontally. Most clickable things have a [`tooltip`](#tooltip), which also has the advantage of being able to be ready by the built-in [text-to-speech](#speech.js) system.\n\nIn addition to [`icon-button`s](#icon-button), there are [`edit-field`s](#edit-field) and [`lever`s](#lever) for providing input.\n\nAll of these components are usually arranged on a [`shelf`](#shelf) which provides a background and frame, and allows for easy closing or pinning to the a controller.\n\n## User Rig\n\nVARTISTE is based on a laser-pointer type interface. I've created a user rig\nlayout based on the laser-pointer concept, and you can incorporate it all with\njust the [`vartiste-user-root`](#vartiste-user-root) component. Some of the things it includes:\n\n- Automatic \"Press any key to reset orientation\" when entering VR.\n- Cool \"VR Goggles\" that show up in the spectator camera (but not during normal\n  display)\n- Ultra leap hand tracking\n- [`hand-action-tooltip`](#hand-action-tooltip) context sensitive button help\n  tied to the controllers\n- WebXR controller-only mode. I.e., you can use you controllers without your\n  headset, but just displaying on the desktop. Uses the [`xr-controllers`](#xr-controllers.js) system\n- Controller motion smoothing by default. Really improves experiences for jumpy controllers (*cough*ReverbG2*cough*)\n\nNote this user rig uses the\n[`webxr-motion-controller`](#webxr-motion-controller) and\n[`webxr-laser`](#webxr-laser) components rather than the a-frame built-in\n`laser-controls`. I found the [webxr-input-profiles\nmotion-controllers](https://github.com/immersive-web/webxr-input-profiles) to be\nmore consistent and up-to-date than the components built into a-frame, so I\nbuilt the [`webxr-input-profiles`](#webxr-input-profiles) systen to use that\ninstead.\n\n## Interaction Components\n\nUser interaction is built around laser-control-type raycasting. Interactive\nelements have the `clickable` HTML class set, which makes them visible to the\nraycasters. `click` events are emitted when these elements are clicked.\n\nEvery `clickable` entity, by default, can also be grabbed and moved. Grabbing\nand moving is handled via the [`manipulator`](#manipulator) component, which is installed on the user motion controllers or mouse controls. A lot more info can be found at the documentation for [`manipulator`](#manipulator)\n\nThere's also a bunch of built-in constraints, which can be set on entities to\nrestrict how they move when grabbed. For instance\n[`manipulator-weight`](#manipulator-weight) makes entities feel \"heavy\" by\nslowing down their movement when grabbed.\n\n## Other cool stuff\n\nThere's lots of other nifty components and systems, for instance\n[`canvas-fx`](#canvas-fx), which lets you quickly apply special effects to a\ncanvas, or [`glb-exporter`](#glb-exporter) which will let you download any\narbitrary entity or `THREE.Object3D` as a glb file in a single function call. There's even a PhysX-based [physics system](#physics.js)!\n\nUltimately, the best way to find out everything that's available is to read\nthrough these documents, play around with the examples and VARTISTE itself, and\nfailing that to read the source code.\n\nAlso, VARTISTE uses a bunch of premade environments, these are packaged separately in the [aframe-enviropacks](https://www.npmjs.com/package/aframe-enviropacks) package.\n\n## Assets\n\nAssets required for some of the basic component use are automatically included\nby the javascript source file.\n\nIf you want to include *all* VARTISTE assets in your project, you just need an\n`a-asset` with a `vartiste-assets` property, like this:\n\n```html\n<a-scene>\n  <a-assets>\n    <!-- Your assets ... -->\n    <a-asset vartiste-assets=\"\"></a-asset>\n  </a-assets>\n  <!-- Rest of your scene, etc -->\n</a-scene>\n```\n\n## Customization\n\nYou can optionally customize which components and systems are registered by the\naframe-vartiste-toolkit by setting the `VARTISTE_TOOLKIT` variable *before* the vartiste-toolkit.js file is loaded. `VARTISTE_TOOLKIT` should either be `undefined` (default) or be an object having any of the following properties:\n\n- `excludeComponents`: Array of strings specifying which components, systems, or\n  systemComponents specifically to exclude from being registered\n- `includeComponents`: Array of strings specifying which components, systems, or\n  systemComponents to be registered. All other components, systems, and\n  systemComponents will be excluded.\n- `excludeFiles`: Array of strings specifying all aframe-vartiste-toolkit source\n  code files (from [the component reference](https://vartiste.xyz/docs.html)) to\n  exclude entirely from registration. All components, systems, and\n  systemComponents in those files will *not* be registered. Any classes in those\n  files will not be defined.\n- `includeFiles`: Array of strings specifying which aframe-vartiste-toolkit\n  source code files (from [the component\n  reference](https://vartiste.xyz/docs.html)) to include in registration. All\n  components, systems, and systemComponents, and classes in other files will be\n  excluded.\n- `assetUrl`: VARTISTE Toolkit assets will be fetched from\n  `assetUrl/assets/####.###`. Use this option if you want to use webpack and\n  have a custom public-facing URL\n\n## Component Reference\n\nThe full API and component reference can be found at\n[https://vartiste.xyz/docs.html](https://vartiste.xyz/docs.html). Please note\nthat it is still under construction. The source code is available as well at\n[https://gitlab.com/zach-geek/vartiste](https://gitlab.com/zach-geek/vartiste),\nand contributions, both code-wise and documentation-wise are welcome.\n\n# Examples\n\n## Example Scene\n\n```html\n<!DOCTYPE html>\n<html>\n\n<head>\n  <title>VARTISTE Toolkit Demo</title>\n  <script src=\"https://aframe.io/releases/1.1.0/aframe.js\"></script>\n  <!-- <script src=\"https://aframe.io/releases/1.0.4/aframe.js\"></script> -->\n  <!-- You can specify components / systems, or files to exclude from being registered -->\n  <script>VARTISTE_TOOLKIT = {\n      /*excludeComponents: [\"frame\"], */ // Will exclude \"frame\" component\n      /*includeComponents: [\"shelf\", \"hdri-environment\"], */ // Will include *ONLY* the shelf component and hdri-environment system\n      /*excludeFiles: ['icon-button'], */ // Will exclude all components found in  aframe-vartiste-toolkit source file 'icon-button.js'\n      /*includeFiles: ['icon-button'], */ // Will include *only* the components found in  aframe-vartiste-toolkit source file 'icon-button.js'\n      /*assetUrl: 'https://example.com:8080/', */ // Will load vartiste assets from https://example.com:8080/ rather than the script's location\n    }</script>\n  <!--Just include the toolkit js file-->\n  <script src=\"https://unpkg.com/aframe-vartiste-toolkit@latest/vartiste-toolkit.js\"></script>\n  <link rel=\"icon\" href=\"/assets/favicon.png\">\n</head>\n\n<body>\n  <a-scene icon-button=\"shader: matcap\" renderer=\"colorManagement: true; physicallyCorrectLights: true\" xr-controllers-only=\"addUseControllerButton: true\" spectator-camera=\"camera: #spectator-camera; state: SPECTATOR_CAMERA\">\n    <a-assets timeout=\"600000\">\n      <canvas height=\"768\" id=\"draw-canvas-asset\" width=\"1024\"></canvas>\n\n      <!-- You can easily load your own HDRI if you want! -->\n      <a-asset id=\"hdr\" src=\"asset/studio.hdr\"></a-asset>\n\n      <!--You can use all the default VARTISTE assets with the vartiste-asset\n      component. Otherwise, only the ones needed for other components are\n      included-->\n      <a-asset vartiste-assets=\"\"></a-asset>\n\n      <!-- You can override some built-in components by defining mixins -->\n      <a-mixin id=\"lever-grip\" material=\"color: #a2c4fa\"></a-mixin>\n      <a-mixin id=\"shelf-bg\" materia=\"shader: standard\"></a-mixin>\n    </a-assets>\n\n    <!-- HDRIs are an easy way to get nice lighting and backgrounds really quickly -->\n    <a-sky color=\"#333\" hdri-environment=\"src: #hdr\"></a-sky>\n\n    <a-entity light=\"type: hemisphere; color: #eee; groundColor: #333; intensity: 0.6\"></a-entity>\n    <a-entity light=\"type: ambient; color: #fff; intensity: 0.6\"></a-entity>\n\n    <!-- vartiste-user-root sets up the default laser pointer / mouse & keyboard\n    interactions. If you want to define your own user setup, you'll want to make\n    sure to include the manipulator components on both of the hand components to\n    ensure that things can be grabbed and resized. -->\n    <a-entity vartiste-user-root=\"\"></a-entity>\n\n    <a-entity position=\"0 0 -2.5\">\n\n      <!--A shelf provides a definitive place to put things. \"grab-root\" ensures\n      that grab-and-move events propogate to the whole shelf-->\n      <a-entity class=\"grab-root\" shelf=\"\">\n        <!--icon-buttons position themselves in a row automatically. So we just\n        position this outer entity where we want the row to start-->\n        <a-entity position=\"-1.5 1.1 0\" icon-row=\"\">\n          <!--Simply pass an asset to icon-button, and boom, you've got an icon\n          button that responds to a wide range of clicks-->\n          <a-entity icon-button=\"#asset-eye\" onclick=\"alert('click')\" tooltip=\"Run Javascript onclick handler\"></a-entity>\n          <!--You can make it a toggle button by adding the toggle-button\n          component-->\n          <a-entity icon-button=\"#asset-oven\" toggle-button=\"\" tooltip=\"Toggle Me\"></a-entity>\n          <!--You can style it, too-->\n          <a-entity button-style=\"color: #ed8607; clickColor: #8607ed; intersectedColor: #07ed86\" icon-button=\"\" tooltip=\"Look at the colors! Woah!\" onclick=\"this.sceneEl.systems['canvas-fx'].applyFX('invert', document.getElementById('draw-canvas-asset'))\"></a-entity>\n          <!--Add the system-click-action to easily call methods of systems-->\n          <a-entity icon-button=\"#asset-account-voice\" system-click-action=\"system: toolkit-demo; action: speak\" tooltip=\"Speak entered text if enabled\"></a-entity>\n          <!--Or add component properties directly for the toggle buttons to\n          toggle-->\n          <a-entity icon-button=\"#asset-check-outline\" toggle-button=\"target: a-scene; component: speech; property: speak\" tooltip=\"Toggle Speaking Enabled\"></a-entity>\n\n          <!-- Easily export entities or even the entire scene to a GLB file -->\n          <a-entity icon-button=\"#asset-floppy\" tooltip=\"Download this scene as GLB\" system-click-action=\"system: glb-exporter; action: downloadGLB\"></a-entity>\n\n          <!-- Use the VARTISTE undo system to easily undo changes, too -->\n          <a-entity icon-button=\"#asset-undo\" tooltip=\"Undo\" onclick=\"VARTISTE.Undo.undo()\"></a-entity>\n\n          <a-entity icon-button=\"#asset-help-circle-outline\" system-click-action=\"system: toolkit-demo; action: help\" tooltip=\"VARTISTE Toolkit Documentation\"></a-entity>\n        </a-entity>\n        <a-entity position=\"0 0.5 0\" text=\"width: 3.4; wrapCount: 35; value: Welcome to the VARTISTE toolkit demo\"></a-entity>\n        <a-entity>\n\n          <!--You can use edit fields which pop up a keyboard-->\n          <a-entity edit-field=\"type: string; tooltip: Edit a string!\" id=\"demo-input\" text=\"width: 2; wrapCount: 20; value: default text\"></a-entity>\n        </a-entity>\n        <a-entity position=\"0 -0.6 0\">\n\n          <!--You can also have a numerical edit field-->\n          <a-entity edit-field=\"type: number; tooltip: Edit a number\" text=\"width: 2; wrapCount: 4\"></a-entity>\n        </a-entity>\n\n        <!-- You can make interactables, like this lever -->\n        <a-entity lever=\"valueRange: 2 0; target: a-sky; component: hdri-environment; property: exposure; initialValue: 0.724\" position=\"-1.621 -0.917 0\" scale=\"2 2 2\" tooltip=\"Adjust Lighting\"></a-entity>\n      </a-entity>\n    </a-entity>\n\n    <!--You can put a frame around anything with a geometry. The frame can optionally be closeable, or pinnable to your hand-->\n    <a-image frame=\"\" position=\"0 2 -1\" src=\"#asset-vartiste\" tooltip=\"Here's a floating frame!\" tooltip-style=\"offset: 0 0.5 0\"></a-image>\n\n    <!--Adding the clickable class to anything makes it grabbable-->\n    <a-entity class=\"clickable\" position=\"-3.0 0 -2.5\" text=\"width: 2.4; wrapCount: 25; value: Desktop Controls:\\n-Left Click: Click buttons\\n-Right Mouse Buton Drag: Look around\\n-Shift+Left Mouse Button Drag: Move things\\n-WASD: Move around\"></a-entity>\n\n    <!--You can use some of the VARTISTE drawing tools, too!-->\n    <a-entity id=\"draw-canvas-demo\" class=\"clickable\"\n              canvas-updater=\"throttle: 5\"\n              draw-canvas=\"canvas:#draw-canvas-asset\" frame=\"\"\n              geometry=\"primitive: plane; width: 2; height: 1.75\"\n              material=\"shader: flat; src: #draw-canvas-asset; npot: true\"\n              position=\"3.1 0 -2.4\" tooltip=\"Draw Here\" tooltip-style=\"offset: 0 0.75 0\"></a-entity>\n    <a-entity class=\"clickable\" color-picker=\"\" geometry=\"primitive: circle; radius: 1; height: 1.75\" position=\"3.1 2 -2.4\"></a-entity>\n\n    <!-- There's a few handy default constraints to restrict how things can be grabbed -->\n    <a-sphere class=\"clickable\"\n              constrain-to-sphere=\"\"\n              manipulator-weight=\"type: slow; weight: 0.9\"\n              grab-options=\"undoable: true\"\n              material=\"shader: standard; roughness: 0.3; metalness: 0.7\" position=\"0 0.4 -0.4\" radius=\"0.1\"></a-sphere>\n\n    <a-entity id=\"spectator-camera\" camera=\"\" position=\"2 1 1\" rotation=\"0 80 0\" camera-layers=\"layers: spectator\"></a-entity>\n\n    <!-- The toolkit also includes a PhysX-backed physics engine, with lots of nifty utilities. See https://glitch.com/edit/#!/fascinated-hip-period?path=index.html for a full demo! -->\n    <a-box material=\"shader: standard; color: white\" width=\"0.3\" height=\"0.3\" depth=\"0.3\"\n           position=\"-2.276 0.3 0.165\"\n           physx-body=\"type: static\"></a-box>\n    <a-entity icon-button=\"#asset-nudge-brush\" tooltip=\"Start Physics\" system-click-action=\"system: physx; action: startPhysX\" position=\"-2.105 0.3 0.13\" rotation=\"0 90 0\" scale=\"0.6 0.6 0.6\"></a-entity>\n    <a-entity gltf-model=\"#asset-hand\"\n              preactivate-tooltip=\"Press Start Physics below!\"\n              position=\"-2.276 1 0.165\"\n              class=\"clickable\"\n              physx-body=\"type: dynamic\"></a-entity>\n  </a-scene>\n</body>\n</html>\n```\n\n[View the demo on CodePen](https://codepen.io/zach-capalbo/pen/oNbKagV)\n\n<p class=\"codepen\" data-height=\"330\" data-theme-id=\"light\" data-default-tab=\"html,result\" data-user=\"zach-capalbo\" data-slug-hash=\"oNbKagV\" data-preview=\"true\" style=\"height: 330px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;\" data-pen-title=\"aframe-vartiste-toolkit-demo\">\n  <span>See the Pen <a href=\"https://codepen.io/zach-capalbo/pen/oNbKagV\">\n  aframe-vartiste-toolkit-demo</a> by Zachary Capalbo (<a href=\"https://codepen.io/zach-capalbo\">@zach-capalbo</a>)\n  on <a href=\"https://codepen.io\">CodePen</a>.</span>\n</p>\n<script async src=\"https://static.codepen.io/assets/embed/ei.js\"></script>\n\n## Physics playground\n\nThe [aframe-vartiste-toolkit physics playground](https://glitch.com/edit/#!/fascinated-hip-period?path=index.html%3A1%3A0) is a good example of using the toolkit for things other than painting and drawing, and the best example of the [physics](#physics.js) components so far.\n\n# Source Code\n\nFor information, you can also read through the source code:\n\n[https://gitlab.com/zach-geek/vartiste/-/blob/release/src/vartiste-toolkit.js](https://gitlab.com/zach-geek/vartiste/-/blob/release/src/vartiste-toolkit.js)\n","readmeFilename":"Readme.md","_id":"aframe-vartiste-toolkit@1.26.0","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-Ak7llueWWsxkwB34dzXJahRvHOXVQglFYum/OZ3R0QbUsbwkazTcad31ZpijraSBwMjRZeZmWTXc90PCUwjPnQ==","shasum":"8b87d6ece4e51583188f20951130819b17847cf3","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.26.0.tgz","fileCount":85,"unpackedSize":14940313,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgpt2FCRA9TVsSAnZWagAA51EP/jhyayJb8I5o/u8GZhZo\nr9cKx4BRsLZQaWqj9K3kWjDd4NU0T3pOrx5x0VnPCbA/pbDx4/fyln35k+Pn\nmzsnBvvzplr+VPlXFwxOJA+1KEuEKfmwDYBC+HNBOSwJ0qhqv2YxjVTntM68\n1C5tsOe+mrIhTr4MjEVbTDFJMVqsM8ToKRd9e4fI/dbQW+EK5IzGsmleEI+6\nW5Wfh/L9WVj76YfX6EEeG/9no2jb2n6Pgmu7uTMSAnWK5dePVEO9NYJTKMmQ\nCZcx1oWZUoa6t9wJFUgpHi9Wb8EQ2I1Hh4sTfkt8usP497E5+zAir8Mf3lzZ\nW9Gc1GRAIqh2qk+VgnyTdPJEuJRoDVPTVH8dwvOnU/foZs1MparAQR/BlDYC\nsx9CmO/NfGPrVBSZfoTBiSq1CLwsmNn4Je6JMmonmI4SoQdljI5WuU7IxD4m\nLaO6m4hQwuTqZYII5sTADjxZUGC1tWIS48h24VmA+qByUHoVoyi8HecgAvD5\nGlYnjIFhiLdyDwo6BJY6AM6zf+hK9Ux6nYyMwtkoRMp0i1I2Iz7xxAyhQhX9\nufRpTPWNNFLUZkTwPLLhoszjVY2zXYH/53qM+vEjpI675V9n3DRm558A2kmJ\nc/KSwNS6uqDE+mk16mbInsv0uo/YBlwxghzLaIcEs6RRiRYKQJfEvXU7WljQ\neasw\r\n=aVQy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCHG8F/cKwg2x8oMPsG3cdbJqWu3SM8K/0+eSxRaJ0ECwIgQc53gF9goJ9dCNGCIrq9+EGCSekbgMvE96LpLmw90ro="}]},"_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"directories":{},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.26.0_1621548420412_0.9538082036925402"},"_hasShrinkwrap":false},"1.26.1":{"name":"aframe-vartiste-toolkit","version":"1.26.1","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","_resolved":"","_integrity":"","_from":"file:E:/Downloads/aframe-vartiste-toolkit-1.26.1.tgz","readme":"# VARTISTE Toolkit\n\nThe VARTISTE toolkit is a collection of components developed while creating\n[VARTISTE](https://vartiste.xyz). I've compiled them into a stand-alone module\nin the hopes that it might be useable to folks to jump start their own projects.\n\n# Installation / Use\n\nThe easiest way to use it is to include the `.js` file from a CDN, such as\nunpkg:\n\n```html\n<html>\n<head>\n  <script src=\"https://unpkg.com/aframe-vartiste-toolkit@latest/vartiste-toolkit.js\"></script>\n</head>\n...\n</html>\n```\n\nIncluding the javascript file automatically registers the components and\nsystems.\n\n**Note:** It is recommended to specify a version instead of using _latest_, in order to avoid unexpected changes. E.g:\n\n```html\n<html>\n<head>\n  <script src=\"https://unpkg.com/aframe-vartiste-toolkit@1.24.0/vartiste-toolkit.js\"></script>\n</head>\n...\n</html>\n```\n\n## New Project vs. Existing Project\n\nIf you're creating a new project, the aframe-vartiste-toolkit has a lot of\nfeatures and functionality, and I recommend pulling in the whole thing. This is\nthe default behavior when including the toolkit script. The components and\nsystems can work together to provide more functionality when everything is\navailable.\n\nIf you're bringing aframe-vartiste-toolkit into an existing project, you can\neither [bring in specific pieces of the toolkit](#customization), or you can\nbring in the whole thing. If possible, I recommend pulling in the whole toolkit,\nsince some components may depend on other components or systems, but if there's\nconcern for naming or functionality conflicts, most components can also operate\non their own.\n\n# Toolkit Overview\n\nThe *aframe-vartiste-toolkit* has a lot of stuff in it. It's built by exporting\nevery little bit and piece of the [VARTISTE](https://vartiste.xyz) app, and so\n[VARTISTE](https://vartiste.xyz) and the [VARTISTE source\ncode](https://gitlab.com/zach-geek/vartiste) are ultimately the best places to\nsee what's available and how it works. Nonetheless, I've written some\ndocumentation as a best-spare-time-effort. Here's some of the key things to get you started.\n\n## Philosophy and Terms\n\nVARTISTE leans pretty heavily into the entity-component-system framework that\na-frame makes available; most things are components, which use systems when\nneeded, and can be attached to entities pretty readily. Plenty of components\nalso spawn their own children entities.\n\nThere are a few notable exceptions in the form of utility classes, such as [`VARTISTE.Util`](#util.js) and [`VARTISTE.Undo`](#undo.js). These utility classes are exposed under the `VARTISTE` global variable.\n\nMost components (but not all) respond correctly to updates via\n`setAttribute`; fewer things respond entirely correctly to `remove()` so if you\nrun into issues, double check the docs here or the source.\n\nOne extension to the ECS framework in VARTISTE is \"component systems\", created\nvia [`VARTISTE.Util.registerComponentSystem`](#util.js). These are basically\ncomponents for the `a-scene` which get automatically attached (like systems do).\nThey have the full schema and update abilities of components, with the\nauto-attach convenience of systems. They are accessible via `sceneEl.systems` *and* `sceneEl.components`.\n\n## UI Components\n\nVARTISTE has a quick-and-dirty user interface, focused around the [`icon-button`](#icon-button), a button with an icon on it. These are usually collected into an [`icon-row`](#icon-row), where they're automatically layed-out horizontally. Most clickable things have a [`tooltip`](#tooltip), which also has the advantage of being able to be ready by the built-in [text-to-speech](#speech.js) system.\n\nIn addition to [`icon-button`s](#icon-button), there are [`edit-field`s](#edit-field) and [`lever`s](#lever) for providing input.\n\nAll of these components are usually arranged on a [`shelf`](#shelf) which provides a background and frame, and allows for easy closing or pinning to the a controller.\n\n## User Rig\n\nVARTISTE is based on a laser-pointer type interface. I've created a user rig\nlayout based on the laser-pointer concept, and you can incorporate it all with\njust the [`vartiste-user-root`](#vartiste-user-root) component. Some of the things it includes:\n\n- Automatic \"Press any key to reset orientation\" when entering VR.\n- Cool \"VR Goggles\" that show up in the spectator camera (but not during normal\n  display)\n- Ultra leap hand tracking\n- [`hand-action-tooltip`](#hand-action-tooltip) context sensitive button help\n  tied to the controllers\n- WebXR controller-only mode. I.e., you can use you controllers without your\n  headset, but just displaying on the desktop. Uses the [`xr-controllers`](#xr-controllers.js) system\n- Controller motion smoothing by default. Really improves experiences for jumpy controllers (*cough*ReverbG2*cough*)\n\nNote this user rig uses the\n[`webxr-motion-controller`](#webxr-motion-controller) and\n[`webxr-laser`](#webxr-laser) components rather than the a-frame built-in\n`laser-controls`. I found the [webxr-input-profiles\nmotion-controllers](https://github.com/immersive-web/webxr-input-profiles) to be\nmore consistent and up-to-date than the components built into a-frame, so I\nbuilt the [`webxr-input-profiles`](#webxr-input-profiles) systen to use that\ninstead.\n\n## Interaction Components\n\nUser interaction is built around laser-control-type raycasting. Interactive\nelements have the `clickable` HTML class set, which makes them visible to the\nraycasters. `click` events are emitted when these elements are clicked.\n\nEvery `clickable` entity, by default, can also be grabbed and moved. Grabbing\nand moving is handled via the [`manipulator`](#manipulator) component, which is installed on the user motion controllers or mouse controls. A lot more info can be found at the documentation for [`manipulator`](#manipulator)\n\nThere's also a bunch of built-in constraints, which can be set on entities to\nrestrict how they move when grabbed. For instance\n[`manipulator-weight`](#manipulator-weight) makes entities feel \"heavy\" by\nslowing down their movement when grabbed.\n\n## Other cool stuff\n\nThere's lots of other nifty components and systems, for instance\n[`canvas-fx`](#canvas-fx), which lets you quickly apply special effects to a\ncanvas, or [`glb-exporter`](#glb-exporter) which will let you download any\narbitrary entity or `THREE.Object3D` as a glb file in a single function call. There's even a PhysX-based [physics system](#physics.js)!\n\nUltimately, the best way to find out everything that's available is to read\nthrough these documents, play around with the examples and VARTISTE itself, and\nfailing that to read the source code.\n\nAlso, VARTISTE uses a bunch of premade environments, these are packaged separately in the [aframe-enviropacks](https://www.npmjs.com/package/aframe-enviropacks) package.\n\n## Assets\n\nAssets required for some of the basic component use are automatically included\nby the javascript source file.\n\nIf you want to include *all* VARTISTE assets in your project, you just need an\n`a-asset` with a `vartiste-assets` property, like this:\n\n```html\n<a-scene>\n  <a-assets>\n    <!-- Your assets ... -->\n    <a-asset vartiste-assets=\"\"></a-asset>\n  </a-assets>\n  <!-- Rest of your scene, etc -->\n</a-scene>\n```\n\n## Customization\n\nYou can optionally customize which components and systems are registered by the\naframe-vartiste-toolkit by setting the `VARTISTE_TOOLKIT` variable *before* the vartiste-toolkit.js file is loaded. `VARTISTE_TOOLKIT` should either be `undefined` (default) or be an object having any of the following properties:\n\n- `excludeComponents`: Array of strings specifying which components, systems, or\n  systemComponents specifically to exclude from being registered\n- `includeComponents`: Array of strings specifying which components, systems, or\n  systemComponents to be registered. All other components, systems, and\n  systemComponents will be excluded.\n- `excludeFiles`: Array of strings specifying all aframe-vartiste-toolkit source\n  code files (from [the component reference](https://vartiste.xyz/docs.html)) to\n  exclude entirely from registration. All components, systems, and\n  systemComponents in those files will *not* be registered. Any classes in those\n  files will not be defined.\n- `includeFiles`: Array of strings specifying which aframe-vartiste-toolkit\n  source code files (from [the component\n  reference](https://vartiste.xyz/docs.html)) to include in registration. All\n  components, systems, and systemComponents, and classes in other files will be\n  excluded.\n- `assetUrl`: VARTISTE Toolkit assets will be fetched from\n  `assetUrl/assets/####.###`. Use this option if you want to use webpack and\n  have a custom public-facing URL\n\n## Component Reference\n\nThe full API and component reference can be found at\n[https://vartiste.xyz/docs.html](https://vartiste.xyz/docs.html). Please note\nthat it is still under construction. The source code is available as well at\n[https://gitlab.com/zach-geek/vartiste](https://gitlab.com/zach-geek/vartiste),\nand contributions, both code-wise and documentation-wise are welcome.\n\n# Examples\n\n## Example Scene\n\n```html\n<!DOCTYPE html>\n<html>\n\n<head>\n  <title>VARTISTE Toolkit Demo</title>\n  <script src=\"https://aframe.io/releases/1.1.0/aframe.js\"></script>\n  <!-- <script src=\"https://aframe.io/releases/1.0.4/aframe.js\"></script> -->\n  <!-- You can specify components / systems, or files to exclude from being registered -->\n  <script>VARTISTE_TOOLKIT = {\n      /*excludeComponents: [\"frame\"], */ // Will exclude \"frame\" component\n      /*includeComponents: [\"shelf\", \"hdri-environment\"], */ // Will include *ONLY* the shelf component and hdri-environment system\n      /*excludeFiles: ['icon-button'], */ // Will exclude all components found in  aframe-vartiste-toolkit source file 'icon-button.js'\n      /*includeFiles: ['icon-button'], */ // Will include *only* the components found in  aframe-vartiste-toolkit source file 'icon-button.js'\n      /*assetUrl: 'https://example.com:8080/', */ // Will load vartiste assets from https://example.com:8080/ rather than the script's location\n    }</script>\n  <!--Just include the toolkit js file-->\n  <script src=\"https://unpkg.com/aframe-vartiste-toolkit@latest/vartiste-toolkit.js\"></script>\n  <link rel=\"icon\" href=\"/assets/favicon.png\">\n</head>\n\n<body>\n  <a-scene icon-button=\"shader: matcap\" renderer=\"colorManagement: true; physicallyCorrectLights: true\" xr-controllers-only=\"addUseControllerButton: true\" spectator-camera=\"camera: #spectator-camera; state: SPECTATOR_CAMERA\">\n    <a-assets timeout=\"600000\">\n      <canvas height=\"768\" id=\"draw-canvas-asset\" width=\"1024\"></canvas>\n\n      <!-- You can easily load your own HDRI if you want! -->\n      <a-asset id=\"hdr\" src=\"asset/studio.hdr\"></a-asset>\n\n      <!--You can use all the default VARTISTE assets with the vartiste-asset\n      component. Otherwise, only the ones needed for other components are\n      included-->\n      <a-asset vartiste-assets=\"\"></a-asset>\n\n      <!-- You can override some built-in components by defining mixins -->\n      <a-mixin id=\"lever-grip\" material=\"color: #a2c4fa\"></a-mixin>\n      <a-mixin id=\"shelf-bg\" materia=\"shader: standard\"></a-mixin>\n    </a-assets>\n\n    <!-- HDRIs are an easy way to get nice lighting and backgrounds really quickly -->\n    <a-sky color=\"#333\" hdri-environment=\"src: #hdr\"></a-sky>\n\n    <a-entity light=\"type: hemisphere; color: #eee; groundColor: #333; intensity: 0.6\"></a-entity>\n    <a-entity light=\"type: ambient; color: #fff; intensity: 0.6\"></a-entity>\n\n    <!-- vartiste-user-root sets up the default laser pointer / mouse & keyboard\n    interactions. If you want to define your own user setup, you'll want to make\n    sure to include the manipulator components on both of the hand components to\n    ensure that things can be grabbed and resized. -->\n    <a-entity vartiste-user-root=\"\"></a-entity>\n\n    <a-entity position=\"0 0 -2.5\">\n\n      <!--A shelf provides a definitive place to put things. \"grab-root\" ensures\n      that grab-and-move events propogate to the whole shelf-->\n      <a-entity class=\"grab-root\" shelf=\"\">\n        <!--icon-buttons position themselves in a row automatically. So we just\n        position this outer entity where we want the row to start-->\n        <a-entity position=\"-1.5 1.1 0\" icon-row=\"\">\n          <!--Simply pass an asset to icon-button, and boom, you've got an icon\n          button that responds to a wide range of clicks-->\n          <a-entity icon-button=\"#asset-eye\" onclick=\"alert('click')\" tooltip=\"Run Javascript onclick handler\"></a-entity>\n          <!--You can make it a toggle button by adding the toggle-button\n          component-->\n          <a-entity icon-button=\"#asset-oven\" toggle-button=\"\" tooltip=\"Toggle Me\"></a-entity>\n          <!--You can style it, too-->\n          <a-entity button-style=\"color: #ed8607; clickColor: #8607ed; intersectedColor: #07ed86\" icon-button=\"\" tooltip=\"Look at the colors! Woah!\" onclick=\"this.sceneEl.systems['canvas-fx'].applyFX('invert', document.getElementById('draw-canvas-asset'))\"></a-entity>\n          <!--Add the system-click-action to easily call methods of systems-->\n          <a-entity icon-button=\"#asset-account-voice\" system-click-action=\"system: toolkit-demo; action: speak\" tooltip=\"Speak entered text if enabled\"></a-entity>\n          <!--Or add component properties directly for the toggle buttons to\n          toggle-->\n          <a-entity icon-button=\"#asset-check-outline\" toggle-button=\"target: a-scene; component: speech; property: speak\" tooltip=\"Toggle Speaking Enabled\"></a-entity>\n\n          <!-- Easily export entities or even the entire scene to a GLB file -->\n          <a-entity icon-button=\"#asset-floppy\" tooltip=\"Download this scene as GLB\" system-click-action=\"system: glb-exporter; action: downloadGLB\"></a-entity>\n\n          <!-- Use the VARTISTE undo system to easily undo changes, too -->\n          <a-entity icon-button=\"#asset-undo\" tooltip=\"Undo\" onclick=\"VARTISTE.Undo.undo()\"></a-entity>\n\n          <a-entity icon-button=\"#asset-help-circle-outline\" system-click-action=\"system: toolkit-demo; action: help\" tooltip=\"VARTISTE Toolkit Documentation\"></a-entity>\n        </a-entity>\n        <a-entity position=\"0 0.5 0\" text=\"width: 3.4; wrapCount: 35; value: Welcome to the VARTISTE toolkit demo\"></a-entity>\n        <a-entity>\n\n          <!--You can use edit fields which pop up a keyboard-->\n          <a-entity edit-field=\"type: string; tooltip: Edit a string!\" id=\"demo-input\" text=\"width: 2; wrapCount: 20; value: default text\"></a-entity>\n        </a-entity>\n        <a-entity position=\"0 -0.6 0\">\n\n          <!--You can also have a numerical edit field-->\n          <a-entity edit-field=\"type: number; tooltip: Edit a number\" text=\"width: 2; wrapCount: 4\"></a-entity>\n        </a-entity>\n\n        <!-- You can make interactables, like this lever -->\n        <a-entity lever=\"valueRange: 2 0; target: a-sky; component: hdri-environment; property: exposure; initialValue: 0.724\" position=\"-1.621 -0.917 0\" scale=\"2 2 2\" tooltip=\"Adjust Lighting\"></a-entity>\n      </a-entity>\n    </a-entity>\n\n    <!--You can put a frame around anything with a geometry. The frame can optionally be closeable, or pinnable to your hand-->\n    <a-image frame=\"\" position=\"0 2 -1\" src=\"#asset-vartiste\" tooltip=\"Here's a floating frame!\" tooltip-style=\"offset: 0 0.5 0\"></a-image>\n\n    <!--Adding the clickable class to anything makes it grabbable-->\n    <a-entity class=\"clickable\" position=\"-3.0 0 -2.5\" text=\"width: 2.4; wrapCount: 25; value: Desktop Controls:\\n-Left Click: Click buttons\\n-Right Mouse Buton Drag: Look around\\n-Shift+Left Mouse Button Drag: Move things\\n-WASD: Move around\"></a-entity>\n\n    <!--You can use some of the VARTISTE drawing tools, too!-->\n    <a-entity id=\"draw-canvas-demo\" class=\"clickable\"\n              canvas-updater=\"throttle: 5\"\n              draw-canvas=\"canvas:#draw-canvas-asset\" frame=\"\"\n              geometry=\"primitive: plane; width: 2; height: 1.75\"\n              material=\"shader: flat; src: #draw-canvas-asset; npot: true\"\n              position=\"3.1 0 -2.4\" tooltip=\"Draw Here\" tooltip-style=\"offset: 0 0.75 0\"></a-entity>\n    <a-entity class=\"clickable\" color-picker=\"\" geometry=\"primitive: circle; radius: 1; height: 1.75\" position=\"3.1 2 -2.4\"></a-entity>\n\n    <!-- There's a few handy default constraints to restrict how things can be grabbed -->\n    <a-sphere class=\"clickable\"\n              constrain-to-sphere=\"\"\n              manipulator-weight=\"type: slow; weight: 0.9\"\n              grab-options=\"undoable: true\"\n              material=\"shader: standard; roughness: 0.3; metalness: 0.7\" position=\"0 0.4 -0.4\" radius=\"0.1\"></a-sphere>\n\n    <a-entity id=\"spectator-camera\" camera=\"\" position=\"2 1 1\" rotation=\"0 80 0\" camera-layers=\"layers: spectator\"></a-entity>\n\n    <!-- The toolkit also includes a PhysX-backed physics engine, with lots of nifty utilities. See https://glitch.com/edit/#!/fascinated-hip-period?path=index.html for a full demo! -->\n    <a-box material=\"shader: standard; color: white\" width=\"0.3\" height=\"0.3\" depth=\"0.3\"\n           position=\"-2.276 0.3 0.165\"\n           physx-body=\"type: static\"></a-box>\n    <a-entity icon-button=\"#asset-nudge-brush\" tooltip=\"Start Physics\" system-click-action=\"system: physx; action: startPhysX\" position=\"-2.105 0.3 0.13\" rotation=\"0 90 0\" scale=\"0.6 0.6 0.6\"></a-entity>\n    <a-entity gltf-model=\"#asset-hand\"\n              preactivate-tooltip=\"Press Start Physics below!\"\n              position=\"-2.276 1 0.165\"\n              class=\"clickable\"\n              physx-body=\"type: dynamic\"></a-entity>\n  </a-scene>\n</body>\n</html>\n```\n\n[View the demo on CodePen](https://codepen.io/zach-capalbo/pen/oNbKagV)\n\n<p class=\"codepen\" data-height=\"330\" data-theme-id=\"light\" data-default-tab=\"html,result\" data-user=\"zach-capalbo\" data-slug-hash=\"oNbKagV\" data-preview=\"true\" style=\"height: 330px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;\" data-pen-title=\"aframe-vartiste-toolkit-demo\">\n  <span>See the Pen <a href=\"https://codepen.io/zach-capalbo/pen/oNbKagV\">\n  aframe-vartiste-toolkit-demo</a> by Zachary Capalbo (<a href=\"https://codepen.io/zach-capalbo\">@zach-capalbo</a>)\n  on <a href=\"https://codepen.io\">CodePen</a>.</span>\n</p>\n<script async src=\"https://static.codepen.io/assets/embed/ei.js\"></script>\n\n## Physics playground\n\nThe [aframe-vartiste-toolkit physics playground](https://glitch.com/edit/#!/fascinated-hip-period?path=index.html%3A1%3A0) is a good example of using the toolkit for things other than painting and drawing, and the best example of the [physics](#physics.js) components so far.\n\n# Source Code\n\nFor information, you can also read through the source code:\n\n[https://gitlab.com/zach-geek/vartiste/-/blob/release/src/vartiste-toolkit.js](https://gitlab.com/zach-geek/vartiste/-/blob/release/src/vartiste-toolkit.js)\n","readmeFilename":"Readme.md","_id":"aframe-vartiste-toolkit@1.26.1","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-ZZCtiQB3/PCXyf3qfPMaXUPVQQvzwX7uduFOuDsYodxJtg2pyFsF0FjvJb/bmw45iWhjgTE474vFeD6G/Ep+kw==","shasum":"706db6063a82ba295f59767f8d461cea22c28bee","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.26.1.tgz","fileCount":91,"unpackedSize":16163466,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgpvJWCRA9TVsSAnZWagAA9AYP/0PM1Lt95n4eFEYQHftD\nXH/Xeqn9Hs6AMbHXf5xPPP/SRTmRV4NskcYaaITnSaV8JtqcbXUEEmaTEje9\ntORVwOFPHl+39ILJbWVMNDhXFJmcdAAGScklai9bB++S05B/R1KpkepWn14G\nHyFf/8lITTruDZc7VDP6kgNwdnU4eSPnj5/gEBNQsk1IzZcNdaDlTBofMvd2\nomYWc/5trgbh2QS/+4cvLxnDjklaxUCWI/Y4NolH6i2VnVfwXKQbstQKIKVa\nkPRURaicraCtNh7yzRV609RSGpKIikgIXfSBKIX4PnIU8OeTfjkSkR/Vb+UP\nUlhJ4o3AOQh14DU6WG4RK/2bgpPB9YGtU9hX4HD9H9VXSf/GM/AMfkPQKRk/\nw/Ttbkk13vEPqQKNl5lVue3X7Oe7xdPu5juIJJ9lxCo8N2ee64xbiaHIK6vA\n5WeWW7RIxBQFhYX7oIibGFs8Gm68quV9xyOpqGv7ZMG8r5H7xFwi6IlSGNL0\nF/e9xg1m2O8SpfB71LGhl0mY7FMavAIYw6np6TblMdoQhyIPaZlkUPtI8IIL\nY5FHjIjj33tu+gBNmQHTUlZN2pdshOx80lzB/eCmzENqzfHA3huAgQCEnLMj\n3iL1F6495ieolJ/6FG2q4OEmpz9aSbcxZsXZxmE0wC51XLuMDk/9psgT3uyR\nyvip\r\n=cRSG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHDTThN1yiQ0sv8mQb+cz6h25aPIOFV8tjIZsPAaWySPAiApghQymzz547d8fbmSBhTtLcISqCOgv0ims+qVJ9UoHg=="}]},"_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"directories":{},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.26.1_1621553748082_0.8716721344914491"},"_hasShrinkwrap":false},"1.26.2":{"name":"aframe-vartiste-toolkit","version":"1.26.2","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","_resolved":"","_integrity":"","_from":"file:E:/Downloads/aframe-vartiste-toolkit-1.26.2.tgz","_id":"aframe-vartiste-toolkit@1.26.2","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-PkiUzUhjtBvK9hJpFVS3LT1+kSqQO6MqpaB/HUoSFxpWuvTnOe8pR4HKfi8j71LDxh3QZfNdKarHtoVXSfYtqA==","shasum":"48c8771cf54642475496a0ca631b685be494fa02","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.26.2.tgz","fileCount":91,"unpackedSize":16163483,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgpwEVCRA9TVsSAnZWagAAEUwP/iN9txpI1CUqY0vWrXXl\nOmx7OxfQH/LbOGYQAaDdSC+knwmqu8/aWrcSrGjhE3BlX6/TTupxj1AUtul6\nf/IMj7kDzhmIPhkIK75tMZHXvuw2hX5JHDgvpixMgBffI6layYXZtv6IGBop\nLwxcr5h5krDeFxBnSr5KT3MGDi37IjaZrelqtWCa5SAY33eqoIRfKQtPqOJz\nMOzCxa/jqQS68g3lUIKFSQV1BC9xzMOrtLKGbJDBHeruj4GmLN/JKa5pdW6G\nao/xFfn1GohkVD6jU22FYSQxEhodkXxm524s6XU/55pOYu7rgCG2JMmqD7ra\nekCg/J8A2RJGsnuVnPqwyklYKbU9bXOODdtDNQWnrhZAs31msORwYrzT4DG3\nShK1pYHNEzQfbyZvvXVtS3tO53/x8gB7crsfVK454KRIGENtdStEutxuQbPD\nsMVQoBUaylVZUy+SsjlgTho0I3ChtIdLhsoZOLef9E0AvLJiUSCm3yuR2tji\n6DxbQ8xOnRjiCW71+6NpbOKj+dQiQKpbX3l0ePHwuNgCXWWQlITvDfEKdeMe\nSHdchORXJoUWbpj6rsvcd33YNOAYNncgiATq/osH80CyonAO/yNuk0DR5u5+\nAdHnISFPzhcNZepBXTjiyWqgQXDtv/DctF8okkyGtmOfkeqRSYVXjV51y463\nR8qH\r\n=R9IZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDZFcYmdNNBePPoXmb0KMtjELqekUhTcb9oPdZUCdF7IQIhAMilM7Jk7+r70NViyZoAJHVxkznQI2DA1E3WDsGeJNiM"}]},"_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"directories":{},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.26.2_1621557525022_0.25009218420056567"},"_hasShrinkwrap":false},"1.26.3":{"name":"aframe-vartiste-toolkit","version":"1.26.3","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","_resolved":"","_integrity":"","_from":"file:E:/Downloads/aframe-vartiste-toolkit-1.26.3.tgz","_id":"aframe-vartiste-toolkit@1.26.3","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-qU8fW79mECI4TQ1v/RGRJe3ch/IHFoJdafIHHJ3gA3mZlKtxXbNgJzX565kkOUZWwLUt5oVRjw4O7mqhXd3b7w==","shasum":"eecb5f1efd016af54885f20b16ef68680eaad9b5","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.26.3.tgz","fileCount":91,"unpackedSize":16170908,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgqCFgCRA9TVsSAnZWagAA/fMP/iP72o26Ix3FTXJxbQ2A\nPcgPil1Z6tskpK6StDpRp7Xdnz3Mx7eWoYbRA2KS1qGUex+zsgzAOA8gQLVu\nWRVKy8yDhSHfAWTWKxsK5gifmpgcJ2UMD+O5lBC9/iyfFoFXYauLEfMIa0Wf\n/pF0uWUx3yLw1QkS6KrwPxjNpFVWmlSoEQax8OfrOQ722lJkygJg9wBCafVp\nDWoLSTgHeCpMLcU7OF0DnmJBEpUBqyPPxvQT0mtLiNiEpw0AZI1al53OGw/Q\nGWYF5lCzHR221QF/y1AN3JXtzO8xA35tKUoXvUIncfjFJZKmLjURuFKVnzCh\nJlze02xXbsZbFNdz9e3WO1AzA0YYREsJMiSImClMBTz3+Sgdy+jaitgd2y2w\neN+TXjzgSfwtfP5tUOSeCxFtv7gc50p+sc+ZumaDwqRi1HZgTdgxptIQyd5m\nwiw+DYmhshrenWPT/7Rs6/5IDZYIEMCmcrzjJS89LVnCc561R5hmGF0ySCpT\nA9Z3UewYRVZpBfn3s93siuLrjD15BY6Ux2xYuU5DTm/dFhZOnQjKPld7VY1p\nzm2EMmxsBcbvF+WRFMzaIRhjkpb2VZWNGYf8jf18sgLlV4A9US+ljw+odrCP\nlvL8EjamjWI/FxiUM4iYr98MekYBtC6Cq4/A88vL5Gl+RpSAQcUbzpSED/hl\nh6bn\r\n=j9wt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAohRm/NkHpV8ybelWqVSFRui/BshLkh+CsJang1Pi3RAiB538ACht0TdZakuHbIcSss4v/qsBHEz9ORw8DnuHJPCg=="}]},"_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"directories":{},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.26.3_1621631327251_0.3803274545114357"},"_hasShrinkwrap":false},"1.27.0":{"name":"aframe-vartiste-toolkit","version":"1.27.0","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","_resolved":"","_integrity":"","_from":"file:E:/Downloads/aframe-vartiste-toolkit-1.27.0.tgz","_id":"aframe-vartiste-toolkit@1.27.0","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-fzy9DzBMdprmUsGIjdEy9YPzdglvodaOYYQDp7MRNH3oo7ReSCuAFIy5Xk/rRL0IcWtS1nOyUFbbBa6wAJwmxA==","shasum":"0905907281b45c9d94d49651aff371869d93e62d","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.27.0.tgz","fileCount":91,"unpackedSize":16180087,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgqZb7CRA9TVsSAnZWagAAkiQP/RyeUAOfcqLLwbkKjQ1Q\nUPBQGRbnTjRspaVTC/gspubgOGjxHTtjCbPGz5zYsudtuKym/KYHDCEqheXl\nYgMFl/bYYB/75dy96AEF/mU/m8uBXHUI8OimC3UYvbBuAhhyz1FVyG/3QBvc\neaafu9SnqmtzxWxc0KL1lOLcPHbjgwOFBCZpsnocb9yObbMS6D4ZhAHfhV+S\nhh0ALhekvqH97r4dIFFD1nfviww90S5naFBOUAzhmIqAPKXhsPJnbfM/+UZk\n9YAKDTtOkzdn3T/Pyurp7kC1s//qCnE4hZkzo4Id6AvPqrqWJmxr/WY9tHHF\n4XO0+hsLmMKnukuKzUHgEjxg+/X/wG1JgQbsO6G43pC/2Ba6HeowQ+qYYW9P\neQ2viQvzX8aO8FrFPgYosU8X7hOXaiIPCspGa3iNI3Jl8f0zBUqYW9TRaxZ/\nABIvxLnnSIROKAmOB560DwNrQ4ru829XgavvJXBEkMkAwlVog6/Y6Zc7xxTU\nDo3wtEg7GP14Zd6wkDnhFi8zAykLZ8IwlRA/QOhQrZjY2IiujU/H09EonZTR\nvq5x88PycY3n9pbMnIVeWP/3RRQ7rHbODh3G82wCoEPgHkoVWYcyVkXA8Zrd\nsSj7ZUV+p3zFuvd/e1ukgKn7Zyf+DPc4OKTCt1ctpMmBr1Ptl6zXllIq5zZU\nYkOz\r\n=GF4c\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD03n9A64cYzHPOr3SO+3fBTFIZfImSwPo+ZaybUlHRuAIhAOEIcyFdJ22sQtOS6UqIDVayfYLL8LegtkXMrnbDYy5J"}]},"_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"directories":{},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.27.0_1621726970342_0.07125617896103331"},"_hasShrinkwrap":false},"1.27.1":{"name":"aframe-vartiste-toolkit","version":"1.27.1","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","_resolved":"","_integrity":"","_from":"file:E:/Downloads/aframe-vartiste-toolkit-1.27.1.tgz","_id":"aframe-vartiste-toolkit@1.27.1","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-tn4e1EZ8Q69z+zUIjZZOdtycwn3sRmSyU2R3Yqs7wdgYZYFbWOzqBZOOGODnStcHwAvL+UXsQZ8iorM9jxa/tA==","shasum":"2bd2f922b160efa2023150644588494adfc1ea39","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.27.1.tgz","fileCount":91,"unpackedSize":16180231,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgqaN9CRA9TVsSAnZWagAA4qEP/imgNBV2K4hGzBRq/8RK\nTjWu7GoZszcQhjuJzJ90iNdr9TnSqwRmGY9sbywv20H9ttzLQ7k079EQVW5W\nSNY8pHd1JGl5qkSoEw53t5+Opteuf7B7fvyBLcXGI71WSvseSW0SBPonAbFL\nLiVYaIhvPeicJjW/F8Wt3PstUxHlKCVu74+bctE7dlQrhUibfDw9wSuVusGM\nAvtepyOrnMK9C9LuA9wT6ezq1EgkE5z/Qfui7x952eaE7PVIGK1NG7BTR80u\nCkcVTEItg7k3DRpE80FIPa0sSJwkX919QylFS1zjenibWiHLHSve0Wd0CF89\nsdHZRt9MQHN4dtDtau3X3ZzP6dndJPStSIk4TSjiDxWZcSBLLIutcw6Kbzmu\nduLz9cZbNvSuDJPilQ+BnqG5xHoy469hexta/1q85k4jyYLEd2/+VGw64pQH\noG6HyZJ0HmSPSvIr0qGg2jQSPHVn97AHZ3TfUQHEphIswEDBtFVKeV8ky8Th\nIuq5f6VA6skx8aLrKW8A+cvF0bqa6W8pQVxSxqJvmi5To6HdxSGgE9jn117+\nQkqjVbbAxGy0zdshgbWSZ+kPac9oAr6G1Xtew4nhuJCQXSgO48VXsBrAss+v\nIFCcuu3mTewSh5UeOn7DlsS00B8WsWfwnjwFW72qlElSwEDh4qN7WyJFjkoJ\nLqLt\r\n=Mw2J\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAR+/OrvBYVWjgxtNl1xB3/spFFD6ZTK1yPJ3fdvLeXPAiBGcY/qMA6N/MYztn0+Qnsbf5zXg2E+faUwAKt7GUXYeQ=="}]},"_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"directories":{},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.27.1_1621730173046_0.1051128710424778"},"_hasShrinkwrap":false},"1.28.0":{"name":"aframe-vartiste-toolkit","version":"1.28.0","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","_resolved":"","_integrity":"","_from":"file:E:/Downloads/aframe-vartiste-toolkit-1.28.0.tgz","_id":"aframe-vartiste-toolkit@1.28.0","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-o+HALS951lCUNLPmrYQRuT78B5AqWuSs7A/hwaQa9XGL8gTwpsDXIdBYJylM0YnWoX9F9flyWjSzgn1kltXl1g==","shasum":"f58f202b554479b0cb2c3cbed23fd06f90ca7af4","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.28.0.tgz","fileCount":91,"unpackedSize":16203922,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgtScgCRA9TVsSAnZWagAApyIP/jevy1qmrK438xPMlYDs\nzh6RFIwOOceKG831QyElCt9+K1SlRjXqruud9j9F15My2e9g/xwCvgwylOKU\ngkxsPOf0O8S3+4biylegDPKEtqA9QaLFgUY48+P1QMVf8jHSRadLKmdVVHly\n/o7FHmxdvzuvrhhT9b5pDe9hS0/gHUNsuyEzd1aAaByamVV0RTRY4W5it5Oa\nQqTOiPpTHfHPqBt4jhs8yWjLHd9xsQttHUJKd3ofbtI7V6wODe3J1spPC0TQ\nJKC2PdSA6oxOjjvmultSd0+UepVq15ADwjJL9zCCiNuN7vUH6nGuegGxz34A\nOY8GRDc8jFZbXYiwCOckxCfkjLtni8p5E3sYxKPpM6KRm0W84PVGyLLDVJEb\nGtFkGYLQsjlcVjlxR87TVGuS36wltf+aV3dudoaIOVniK/bjkPu6A1XiHs/u\nIrQyOj9dtGqvpArYn+TMHLLoKsPCOZ62QHDsKi/FEsRlO4+uhXlirIX5YDgv\ntWyHOPD6jUBjdmIKvk3mumKJbsjt5bwVP0QK+SOiKLGVt/whMSesXeGMCE7a\nlWqLBNHlYAx8MlJKjxl8qeTVLxeX0vkPEHBYidWdcyM7xBS3ivG/ah1k7th3\nJByKANRmIXQ1E4im1+Wa2GAyR+1b9NHJT6BKWlkEITJPwcHvS47X6y8bK6+U\njV/r\r\n=cWxp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDQBrLqvcZeNIBkNr1u14EbL+yVDDxTKr0XJdHx19KRcQIgYPeQnUurWw2UOj1KJsd7iM/Jg4Q5vyZpXHJDGCt7sAY="}]},"_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"directories":{},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.28.0_1622484767395_0.984181163236622"},"_hasShrinkwrap":false},"1.28.1":{"name":"aframe-vartiste-toolkit","version":"1.28.1","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","_resolved":"","_integrity":"","_from":"file:E:/Downloads/aframe-vartiste-toolkit-1.28.1.tgz","_id":"aframe-vartiste-toolkit@1.28.1","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-ulOLFZ7eSbKstuABUEUDBmdlI41DynaSFLd4nAgku3BR5ncXEIuh7sOkfh9ElaF7G5rJvEMJ6q148JNcWuXarA==","shasum":"52b9335f8f35ac37c189237a3e5709ab5aabe726","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.28.1.tgz","fileCount":93,"unpackedSize":16314968,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgwAN+CRA9TVsSAnZWagAAnHAP/RYazPz3+2ZX6O2i5OJC\n1er0xTIfoYN3x10GZr0yaq/DeeseLxH8sfb3Ef6VGR23XilmOUXLjWOKQ8TJ\nOALKxsa6Z7pQKEh1z+bSy69puRZ2PPY3R07fYe003DgicDfs0rLIpKyhMJd3\nnnjeyCHQa8kYnsEhHZinuJnh0ooqc4H9aM6tHU3QoFhFeddWNueJcsofWtqj\nAZAiyLL77GtuBIoFZuQjpSYYJHsFJdpWbVxQhm4sXoWqa55hu/+iUpDPy3EY\nMFa2iIGQaSkSuhVuwWmCJXKy2fcvwZNry5Np8vVj1Smedrib8ZF2fo1NjkNu\nOFwsDiF5rNTJHVUCwKqnR8Fssf3pEjQBh2tMdyvM8qH9/hhL8oSDLUuZf95c\nZSAnc9qwDRLwFGhithwchgLu3ZrIwN5R7Oy8u3PfWof0MJDaTEYxv30Vyi8y\nV4Pt3blYqI/z+xM1CmveuTD+7WijXVmLkapcKv6zCiPj/F1CJJLh9bIYTIgk\nks58Rowr6wuXSBDaZZiNLE6DfeMTM/wA5vMLzzmjiUvMzEZWoDJJ/NDfsztF\n4HqFBxwursDTCyrpIFz9ZaUyKD6UtfeB/Y3KUpxOFr0X3pFX8a+qIOTnaqoA\nG6KaG87zvj79zdHDkUrX9Fx3yAFfPMHdcdAVt/zh3qeRT7nCQ1sfZBw2OucA\nUbE4\r\n=QW4o\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBcPNzAtBB1HucMmEcFsZt5wdSQYw6mgXJ+WBE50wHhMAiAxukdo0O2GNtEo/4NhtcR2PX4ohq28LrVbprTEYIGuJg=="}]},"_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"directories":{},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.28.1_1623196541455_0.005381426968157799"},"_hasShrinkwrap":false},"1.28.2":{"name":"aframe-vartiste-toolkit","version":"1.28.2","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","_resolved":"","_integrity":"","_from":"file:E:/Downloads/aframe-vartiste-toolkit-1.28.2.tgz","_id":"aframe-vartiste-toolkit@1.28.2","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-f24Wa4ulV6/K0eVt/Gxsk+JG3ny8GaUrt1cQVNlQT4PNPMVeGo+w/V2Zl8DftilXan6rWMhReGBdd0WvVczrMw==","shasum":"7f43c50187d9cda498d301035c17643ee1ca8f2a","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.28.2.tgz","fileCount":93,"unpackedSize":16315011,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgwA1ICRA9TVsSAnZWagAASWMP/2A7SJgBdbNLoPq0OjjV\nk95DXUW5GFxf2ASOHCtW/sj3U0LFhBOkRslJ/xXlSgFetXGXxE7JkAHLKTO4\n42nurbIvB50EtgIrWdTCeWuB94rHc7DqILJCn9KGmiMPriYPjpszh8GnM6Kr\nRdg1meFaGL1qDbLiaJcxP09xHmh36u3WcQkcljUtcAwhodTOTjtmhi3oaGLx\nZWWaWaRxIH6N+eGs/fHmGq0pJk6l+n5FCi5iBklYcLltRef//oE/L0ij0eya\na1g9IyQEk8RXQAShKlfiGh1VtbUTsEF7/UHgpdN4IpZlHp+NpEN+B3hUcNrq\nO3/X2It18AwehGbXtQhSEou0z5hc3dWm6bFD9xoQS5FnJ7+kNl1FjL1o6gbM\nGhyyaR26i2+9084Xeo1/sG0EREGSMDKqgl8Nb0Uipz9JmOuUjR5RW/IPBFzk\nxLqC/oh4+bIyRO77qyl4dMKjL2gilnCadfrsDBMObpbEtgT8mF0NtNICHM6u\nuAuulCAXR4cyxgeCzFdwQ43ADIpYP1b9291GQtppGGxIs+ngBl2iRRxIeuVh\n9sbEcqFEL3Hr6Iwd+o4+p25AEHfec35Ed0RdxCL+IsZ9KDytemQbaTCBTXkM\n48rq/tPm1faaB7UozRMAiHrwbZhYTLTQAqH/9EbuRDwCGtj1OYhqAUUlu0Pw\nN04r\r\n=2jus\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC0jKm9JVIQNJPLzQYSVoWwE/XIXlJWpv0aixB4GjllBwIgKtzK/dQ7kFiUaq+ZAD7DEcxcV5tK47RUpDLy7Hfuets="}]},"_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"directories":{},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.28.2_1623199048531_0.27260739972586356"},"_hasShrinkwrap":false},"1.29.0":{"name":"aframe-vartiste-toolkit","version":"1.29.0","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","_resolved":"","_integrity":"","_from":"file:E:/Downloads/aframe-vartiste-toolkit-1.29.0.tgz","_id":"aframe-vartiste-toolkit@1.29.0","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-Wha0B7rgVEQ4IOAEB0/S4cNqRvOpeMJB1jil9b70V9QXOaJuggEXbeMcvkSmXT2hDK6RjoV0AfD/5DQlfZs8vQ==","shasum":"7e615d5f23471059118aeeadf638b6e3003827ff","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.29.0.tgz","fileCount":93,"unpackedSize":16316748,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgxBwjCRA9TVsSAnZWagAA0WIP/2JjkBfvNxg1OXioNrbb\nEZFCnoT2b03phZVp+JgPKBRCcE+iN6hu2BEkscXuK61NCUFa+2zJzANe4J63\ncHySDshFTe8eY7a2cv4dbrPwNjTWw77YtwT/hdtvGXSaRTY2wbBuJE3nDg9C\nn2DAaVXQ4p8YUROxRs/GA47y3nk8niLuB+/4uxFhXyYra3uzPZCq1r4oOgap\nxsbB6rspiEIw10kA9f4X0tItO+YDPZEtaJGBqrkNylj36mdDYMxU30x+ugdz\nJZ82cV97cSU6NjRKNSzZJt1kvLzxI5o/jcBf2n31V6k0OWVg9aRH3jbHx+xK\n2LtEeNS8QnTlKISYDtuTmsz/HTSixFesLGbP3IrAD9dpV6ZrlZYrnJNCuWee\n+VY6bVCiuVENLx9U9NKpXnHLcMPtZnCyGVYrUecusDDZ2yGfabtcVtMTiTMS\nd5CQbJzR2m2Pcnq+CKcGYHW0RCQt8hD/CaLnY2VU0lF19cMOdUL8+H12V5ke\nUNvmC6O1vv/j2W5/I+KsIBXojxFwQpPtUSz4FsJYIXsSub7N6h3TErnuOxBx\nCVYY2JMtNwCChdl2SVV5zHlVoUt5GuLRuBh4gAplAW0nen5MJVrNYJEr61f7\nHCb0/2ybk7J9wjU7WNGUbcx3goAIdYAUb1VooYoV+tUHLZSIkh8VOdGIYCby\nVchW\r\n=5wLQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD6nTaUBM5RpykYwO8QPsfCg1NRmqn2XalgmD+CwSsVeAIhAN955rOCS+pBu8m5SnS7iM9K4Zp6HMqELDBiFmfRdC4r"}]},"_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"directories":{},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.29.0_1623464995135_0.04087529026363135"},"_hasShrinkwrap":false},"1.29.1":{"name":"aframe-vartiste-toolkit","version":"1.29.1","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","_resolved":"","_integrity":"","_from":"file:E:/Downloads/aframe-vartiste-toolkit-1.29.1.tgz","_id":"aframe-vartiste-toolkit@1.29.1","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-2LylRKV0I1NVsxn0uvYuLhj3u4C8oW8YZK0Q08/NZj8PyhANFjJdVXTTzZU7BoCjkk2iart1XFvh4Sx8THQWyw==","shasum":"60b3d67aae2897afcba7f338b7a7ba3d76a65896","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.29.1.tgz","fileCount":93,"unpackedSize":16317379,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgxQ5hCRA9TVsSAnZWagAAqWMP/Rn7Qcaw/zARQjdjCexe\n0ZH5rc7eSbI7frI5Kd9dhOnk3iO5gMfVMgaTZ1fZssfKpU6n+fvigbQofl9B\ntUyJun7V+/u/F9f/jUeEUwqhD/5U8w+MlAbBln6INVd1PnVgJLP3rtxhXwZu\n3K2zl6ziXw7Eg9SnhaXURinS6Em1svpxqAm+04tmv53Gbilw+qgQ28uTgPzK\nNwda+Pcee/HL7qL/fIW7mAp4x1xDs29oPxfgTnkBpLDYI1/L1RKgGl/GBzeX\nYtUrACf+W0ltHsluQGYvnrTJSzHH8jqKgGFrEXn50XEvHa46pMT7rQdnF0b/\ncYQKFYg2TyebM2b6zSMSeTiWRQeEK7nV5pAzFQaZT5+w+rM/k1Pg44qrG9nB\nWVoQlMyt85rqh2lI6KNLoJl8GYkEd6skWQMT4WwANtiyAsEF3lNvM//8rxPY\nmtQD8IqMD7S6rIWbYJ+Pgpqo8i16MsO3BJGbOX5irztQZQ3tc2Zv4EL+8C27\n4cdW2OkuiA/j/HToyFN/5nW04IoUpKpoUMrjlnSH74Uj/P8ChDWTOvvmwVa4\nkceaZ1fhYx5Y9asj0iRf4uOokOZcyyjkxOcHtTmOpeYreh0jmCtRF3VAbPrl\nAJnvsg1CoCnbXpyeYEmSZph2jbAUHqafTXD/EkWbQ/kZfD8wRtkWktOM8Tdd\nnH3J\r\n=b/Cq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC1u9VPhxqTfdzhnTmC0yxiWR701CsyHsOkNZ7sLZJ/pwIhAI8h44ZOJtGKyuzzbeXNtdCnYjcxBvOebJu3+APODCNc"}]},"_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"directories":{},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.29.1_1623527007742_0.0789548264476776"},"_hasShrinkwrap":false},"1.30.0":{"name":"aframe-vartiste-toolkit","version":"1.30.0","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","_resolved":"","_integrity":"","_from":"file:E:/Downloads/aframe-vartiste-toolkit-1.30.0.tgz","readme":"# VARTISTE Toolkit\n\nThe VARTISTE toolkit is a collection of components developed while creating\n[VARTISTE](https://vartiste.xyz). I've compiled them into a stand-alone module\nin the hopes that it might be useable to folks to jump start their own projects.\n\n# Installation / Use\n\nThe easiest way to use it is to include the `.js` file from a CDN, such as\nunpkg:\n\n```html\n<html>\n<head>\n  <script src=\"https://unpkg.com/aframe-vartiste-toolkit@latest/vartiste-toolkit.js\"></script>\n</head>\n...\n</html>\n```\n\nIncluding the javascript file automatically registers the components and\nsystems.\n\n**Note:** It is recommended to specify a version instead of using _latest_, in order to avoid unexpected changes. E.g:\n\n```html\n<html>\n<head>\n  <script src=\"https://unpkg.com/aframe-vartiste-toolkit@1.27.1/vartiste-toolkit.js\"></script>\n</head>\n...\n</html>\n```\n\n## New Project vs. Existing Project\n\nIf you're creating a new project, the aframe-vartiste-toolkit has a lot of\nfeatures and functionality, and I recommend pulling in the whole thing. This is\nthe default behavior when including the toolkit script. The components and\nsystems can work together to provide more functionality when everything is\navailable.\n\nIf you're bringing aframe-vartiste-toolkit into an existing project, you can\neither [bring in specific pieces of the toolkit](#customization), or you can\nbring in the whole thing. If possible, I recommend pulling in the whole toolkit,\nsince some components may depend on other components or systems, but if there's\nconcern for naming or functionality conflicts, most components can also operate\non their own.\n\n# Toolkit Overview\n\nThe *aframe-vartiste-toolkit* has a lot of stuff in it. It's built by exporting\nevery little bit and piece of the [VARTISTE](https://vartiste.xyz) app, and so\n[VARTISTE](https://vartiste.xyz) and the [VARTISTE source\ncode](https://gitlab.com/zach-geek/vartiste) are ultimately the best places to\nsee what's available and how it works. Nonetheless, I've written some\ndocumentation as a best-spare-time-effort. Here's some of the key things to get you started.\n\n## Philosophy and Terms\n\nVARTISTE leans pretty heavily into the entity-component-system framework that\na-frame makes available; most things are components, which use systems when\nneeded, and can be attached to entities pretty readily. Plenty of components\nalso spawn their own children entities.\n\nThere are a few notable exceptions in the form of utility classes, such as [`VARTISTE.Util`](#util.js) and [`VARTISTE.Undo`](#undo.js). These utility classes are exposed under the `VARTISTE` global variable.\n\nMost components (but not all) respond correctly to updates via\n`setAttribute`; fewer things respond entirely correctly to `remove()` so if you\nrun into issues, double check the docs here or the source.\n\nOne extension to the ECS framework in VARTISTE is \"component systems\", created\nvia [`VARTISTE.Util.registerComponentSystem`](#util.js). These are basically\ncomponents for the `a-scene` which get automatically attached (like systems do).\nThey have the full schema and update abilities of components, with the\nauto-attach convenience of systems. They are accessible via `sceneEl.systems` *and* `sceneEl.components`.\n\n## UI Components\n\nVARTISTE has a quick-and-dirty user interface, focused around the [`icon-button`](#icon-button), a button with an icon on it. These are usually collected into an [`icon-row`](#icon-row), where they're automatically layed-out horizontally. Most clickable things have a [`tooltip`](#tooltip), which also has the advantage of being able to be ready by the built-in [text-to-speech](#speech.js) system.\n\nIn addition to [`icon-button`s](#icon-button), there are [`edit-field`s](#edit-field) and [`lever`s](#lever) for providing input.\n\nAll of these components are usually arranged on a [`shelf`](#shelf) which provides a background and frame, and allows for easy closing or pinning to the a controller.\n\n## User Rig\n\nVARTISTE is based on a laser-pointer type interface. I've created a user rig\nlayout based on the laser-pointer concept, and you can incorporate it all with\njust the [`vartiste-user-root`](#vartiste-user-root) component. Some of the things it includes:\n\n- Automatic \"Press any key to reset orientation\" when entering VR.\n- Cool \"VR Goggles\" that show up in the spectator camera (but not during normal\n  display)\n- Ultra leap hand tracking\n- [`hand-action-tooltip`](#hand-action-tooltip) context sensitive button help\n  tied to the controllers\n- WebXR controller-only mode. I.e., you can use you controllers without your\n  headset, but just displaying on the desktop. Uses the [`xr-controllers`](#xr-controllers.js) system\n- Controller motion smoothing by default. Really improves experiences for jumpy controllers (*cough*ReverbG2*cough*)\n\nNote this user rig uses the\n[`webxr-motion-controller`](#webxr-motion-controller) and\n[`webxr-laser`](#webxr-laser) components rather than the a-frame built-in\n`laser-controls`. I found the [webxr-input-profiles\nmotion-controllers](https://github.com/immersive-web/webxr-input-profiles) to be\nmore consistent and up-to-date than the components built into a-frame, so I\nbuilt the [`webxr-input-profiles`](#webxr-input-profiles) systen to use that\ninstead.\n\n## Interaction Components\n\nUser interaction is built around laser-control-type raycasting. Interactive\nelements have the `clickable` HTML class set, which makes them visible to the\nraycasters. `click` events are emitted when these elements are clicked.\n\nEvery `clickable` entity, by default, can also be grabbed and moved. Grabbing\nand moving is handled via the [`manipulator`](#manipulator) component, which is installed on the user motion controllers or mouse controls. A lot more info can be found at the documentation for [`manipulator`](#manipulator)\n\nThere's also a bunch of built-in constraints, which can be set on entities to\nrestrict how they move when grabbed. For instance\n[`manipulator-weight`](#manipulator-weight) makes entities feel \"heavy\" by\nslowing down their movement when grabbed.\n\n## Drawing Components\n\n[VARTISTE](https://vartiste.xyz) of course is a drawing and image editing\napplication. I've brought many of the drawing components into the toolkit to\nallow easily adding drawing to other A-Frame applications.\n\nThe easiest way to get started adding drawing to your app is to add the\n[`drawable`](#drawable) component to whatever you want to be able to draw on,\nand the [`hand-draw-tool`](#hand-draw-tool) component to whichever raycasters\nyou want to be able to draw. These are already set up if you use the\n[`vartiste-user-root`](#vartiste-user-root) component. Additionally, you can\ncreate [`pencil-tool`](#pencil-tool) components to create grabbable pencils that\ncan be easier to use in VR.\n\nYou can create your own brushes with the [`set-brush`](#set-brush) component.\nScene-wide drawing parameters are managed by the\n[`paint-system`](#paint-system).\n\n## Other cool stuff\n\nThere's lots of other nifty components and systems, for instance\n[`canvas-fx`](#canvas-fx), which lets you quickly apply special effects to a\ncanvas, or [`glb-exporter`](#glb-exporter) which will let you download any\narbitrary entity or `THREE.Object3D` as a glb file in a single function call. There's even a PhysX-based [physics system](#physics.js)!\n\nUltimately, the best way to find out everything that's available is to read\nthrough these documents, play around with the examples and VARTISTE itself, and\nfailing that to read the source code.\n\nAlso, VARTISTE uses a bunch of premade environments, these are packaged separately in the [aframe-enviropacks](https://www.npmjs.com/package/aframe-enviropacks) package.\n\n## Assets\n\nAssets required for some of the basic component use are automatically included\nby the javascript source file.\n\nIf you want to include *all* VARTISTE assets in your project, you just need an\n`a-asset` with a `vartiste-assets` property, like this:\n\n```html\n<a-scene>\n  <a-assets>\n    <!-- Your assets ... -->\n    <a-asset vartiste-assets=\"\"></a-asset>\n  </a-assets>\n  <!-- Rest of your scene, etc -->\n</a-scene>\n```\n\n## Customization\n\nYou can optionally customize which components and systems are registered by the\naframe-vartiste-toolkit by setting the `VARTISTE_TOOLKIT` variable *before* the vartiste-toolkit.js file is loaded. `VARTISTE_TOOLKIT` should either be `undefined` (default) or be an object having any of the following properties:\n\n- `excludeComponents`: Array of strings specifying which components, systems, or\n  systemComponents specifically to exclude from being registered\n- `includeComponents`: Array of strings specifying which components, systems, or\n  systemComponents to be registered. All other components, systems, and\n  systemComponents will be excluded.\n- `excludeFiles`: Array of strings specifying all aframe-vartiste-toolkit source\n  code files (from [the component reference](https://vartiste.xyz/docs.html)) to\n  exclude entirely from registration. All components, systems, and\n  systemComponents in those files will *not* be registered. Any classes in those\n  files will not be defined.\n- `includeFiles`: Array of strings specifying which aframe-vartiste-toolkit\n  source code files (from [the component\n  reference](https://vartiste.xyz/docs.html)) to include in registration. All\n  components, systems, and systemComponents, and classes in other files will be\n  excluded.\n- `assetUrl`: VARTISTE Toolkit assets will be fetched from\n  `assetUrl/assets/####.###`. Use this option if you want to use webpack and\n  have a custom public-facing URL\n\n## Component Reference\n\nThe full API and component reference can be found at\n[https://vartiste.xyz/docs.html](https://vartiste.xyz/docs.html). Please note\nthat it is still under construction. The source code is available as well at\n[https://gitlab.com/zach-geek/vartiste](https://gitlab.com/zach-geek/vartiste),\nand contributions, both code-wise and documentation-wise are welcome.\n\n# Examples\n\n## Example Scene\n\n```html\n<!DOCTYPE html>\n<html>\n\n<head>\n  <title>VARTISTE Toolkit Demo</title>\n  <script src=\"https://aframe.io/releases/1.1.0/aframe.js\"></script>\n  <!-- <script src=\"https://aframe.io/releases/1.0.4/aframe.js\"></script> -->\n  <!-- You can specify components / systems, or files to exclude from being registered -->\n  <script>VARTISTE_TOOLKIT = {\n      /*excludeComponents: [\"frame\"], */ // Will exclude \"frame\" component\n      /*includeComponents: [\"shelf\", \"hdri-environment\"], */ // Will include *ONLY* the shelf component and hdri-environment system\n      /*excludeFiles: ['icon-button'], */ // Will exclude all components found in  aframe-vartiste-toolkit source file 'icon-button.js'\n      /*includeFiles: ['icon-button'], */ // Will include *only* the components found in  aframe-vartiste-toolkit source file 'icon-button.js'\n      /*assetUrl: 'https://example.com:8080/', */ // Will load vartiste assets from https://example.com:8080/ rather than the script's location\n    }</script>\n  <!--Just include the toolkit js file-->\n  <script src=\"https://unpkg.com/aframe-vartiste-toolkit@latest/vartiste-toolkit.js\"></script>\n  <link rel=\"icon\" href=\"/assets/favicon.png\">\n</head>\n\n<body>\n  <a-scene icon-button=\"shader: matcap\" renderer=\"colorManagement: true; physicallyCorrectLights: true\" xr-controllers-only=\"addUseControllerButton: true\" spectator-camera=\"camera: #spectator-camera; state: SPECTATOR_CAMERA\">\n    <a-assets timeout=\"600000\">\n      <canvas height=\"768\" id=\"draw-canvas-asset\" width=\"1024\"></canvas>\n\n      <!-- You can easily load your own HDRI if you want! -->\n      <a-asset id=\"hdr\" src=\"asset/studio.hdr\"></a-asset>\n\n      <!--You can use all the default VARTISTE assets with the vartiste-asset\n      component. Otherwise, only the ones needed for other components are\n      included-->\n      <a-asset vartiste-assets=\"\"></a-asset>\n\n      <!-- You can override some built-in components by defining mixins -->\n      <a-mixin id=\"lever-grip\" material=\"color: #a2c4fa\"></a-mixin>\n      <a-mixin id=\"shelf-bg\" materia=\"shader: standard\"></a-mixin>\n    </a-assets>\n\n    <!-- HDRIs are an easy way to get nice lighting and backgrounds really quickly -->\n    <a-sky color=\"#333\" hdri-environment=\"src: #hdr\"></a-sky>\n\n    <a-entity light=\"type: hemisphere; color: #eee; groundColor: #333; intensity: 0.6\"></a-entity>\n    <a-entity light=\"type: ambient; color: #fff; intensity: 0.6\"></a-entity>\n\n    <!-- vartiste-user-root sets up the default laser pointer / mouse & keyboard\n    interactions. If you want to define your own user setup, you'll want to make\n    sure to include the manipulator components on both of the hand components to\n    ensure that things can be grabbed and resized. -->\n    <a-entity vartiste-user-root=\"\"></a-entity>\n\n    <a-entity position=\"0 0 -2.5\">\n\n      <!--A shelf provides a definitive place to put things. \"grab-root\" ensures\n      that grab-and-move events propogate to the whole shelf-->\n      <a-entity class=\"grab-root\" shelf=\"\">\n        <!--icon-buttons position themselves in a row automatically. So we just\n        position this outer entity where we want the row to start-->\n        <a-entity position=\"-1.5 1.1 0\" icon-row=\"\">\n          <!--Simply pass an asset to icon-button, and boom, you've got an icon\n          button that responds to a wide range of clicks-->\n          <a-entity icon-button=\"#asset-eye\" onclick=\"alert('click')\" tooltip=\"Run Javascript onclick handler\"></a-entity>\n          <!--You can make it a toggle button by adding the toggle-button\n          component-->\n          <a-entity icon-button=\"#asset-oven\" toggle-button=\"\" tooltip=\"Toggle Me\"></a-entity>\n          <!--You can style it, too-->\n          <a-entity button-style=\"color: #ed8607; clickColor: #8607ed; intersectedColor: #07ed86\" icon-button=\"\" tooltip=\"Look at the colors! Woah!\" onclick=\"this.sceneEl.systems['canvas-fx'].applyFX('invert', document.getElementById('draw-canvas-asset'))\"></a-entity>\n          <!--Add the system-click-action to easily call methods of systems-->\n          <a-entity icon-button=\"#asset-account-voice\" system-click-action=\"system: toolkit-demo; action: speak\" tooltip=\"Speak entered text if enabled\"></a-entity>\n          <!--Or add component properties directly for the toggle buttons to\n          toggle-->\n          <a-entity icon-button=\"#asset-check-outline\" toggle-button=\"target: a-scene; component: speech; property: speak\" tooltip=\"Toggle Speaking Enabled\"></a-entity>\n\n          <!-- Easily export entities or even the entire scene to a GLB file -->\n          <a-entity icon-button=\"#asset-floppy\" tooltip=\"Download this scene as GLB\" system-click-action=\"system: glb-exporter; action: downloadGLB\"></a-entity>\n\n          <!-- Use the VARTISTE undo system to easily undo changes, too -->\n          <a-entity icon-button=\"#asset-undo\" tooltip=\"Undo\" onclick=\"VARTISTE.Undo.undo()\"></a-entity>\n\n          <a-entity icon-button=\"#asset-help-circle-outline\" system-click-action=\"system: toolkit-demo; action: help\" tooltip=\"VARTISTE Toolkit Documentation\"></a-entity>\n        </a-entity>\n        <a-entity position=\"0 0.5 0\" text=\"width: 3.4; wrapCount: 35; value: Welcome to the VARTISTE toolkit demo\"></a-entity>\n        <a-entity>\n\n          <!--You can use edit fields which pop up a keyboard-->\n          <a-entity edit-field=\"type: string; tooltip: Edit a string!\" id=\"demo-input\" text=\"width: 2; wrapCount: 20; value: default text\"></a-entity>\n        </a-entity>\n        <a-entity position=\"0 -0.6 0\">\n\n          <!--You can also have a numerical edit field-->\n          <a-entity edit-field=\"type: number; tooltip: Edit a number\" text=\"width: 2; wrapCount: 4\"></a-entity>\n        </a-entity>\n\n        <!-- You can make interactables, like this lever -->\n        <a-entity lever=\"valueRange: 2 0; target: a-sky; component: hdri-environment; property: exposure; initialValue: 0.724\" position=\"-1.621 -0.917 0\" scale=\"2 2 2\" tooltip=\"Adjust Lighting\"></a-entity>\n      </a-entity>\n    </a-entity>\n\n    <!--You can put a frame around anything with a geometry. The frame can optionally be closeable, or pinnable to your hand-->\n    <a-image frame=\"\" position=\"0 2 -1\" src=\"#asset-vartiste\" tooltip=\"Here's a floating frame!\" tooltip-style=\"offset: 0 0.5 0\"></a-image>\n\n    <!--Adding the clickable class to anything makes it grabbable-->\n    <a-entity class=\"clickable\" position=\"-3.0 0 -2.5\" text=\"width: 2.4; wrapCount: 25; value: Desktop Controls:\\n-Left Click: Click buttons\\n-Right Mouse Buton Drag: Look around\\n-Shift+Left Mouse Button Drag: Move things\\n-WASD: Move around\"></a-entity>\n\n    <!--You can use some of the VARTISTE drawing tools, too!-->\n    <a-entity id=\"draw-canvas-demo\" class=\"clickable\"\n              drawable=\"canvas:#draw-canvas-asset\" frame=\"\"\n              geometry=\"primitive: plane; width: 2; height: 1.75\"\n              material=\"shader: flat; src: #draw-canvas-asset; npot: true\"\n              position=\"3.1 0 -2.4\" tooltip=\"Draw Here\" tooltip-style=\"offset: 0 0.75 0\"></a-entity>\n    <a-entity class=\"clickable\" color-picker=\"\" geometry=\"primitive: circle; radius: 1; height: 1.75\" position=\"3.1 2 -2.4\"></a-entity>\n    <a-entity position=\"4.5 2 -2.4\" icon-button=\"#asset-brush\" tooltip=\"Change brush\" set-brush=\"brushType: ImageBrush; image: #asset-brush; color: blue; scale: 5; activationEvent: click\"></a-entity>\n    <a-entity position=\"3.1 0 -1.4\" rotation=\"90 0 0\" scale=\"2 2 2\" pencil-tool=\"\" tooltip=\"Grabbable Pencil\" set-brush=\"brushType: ImageBrush; image: #asset-lead-pencil; color: green; scale: 5\"></a-entity>\n\n    <!-- There's a few handy default constraints to restrict how things can be grabbed -->\n    <a-sphere class=\"clickable\"\n              constrain-to-sphere=\"\"\n              manipulator-weight=\"type: slow; weight: 0.9\"\n              grab-options=\"undoable: true\"\n              material=\"shader: standard; roughness: 0.3; metalness: 0.7\" position=\"0 0.4 -0.4\" radius=\"0.1\"></a-sphere>\n\n    <a-entity id=\"spectator-camera\" camera=\"\" position=\"2 1 1\" rotation=\"0 80 0\" camera-layers=\"layers: spectator\"></a-entity>\n\n    <!-- The toolkit also includes a PhysX-backed physics engine, with lots of nifty utilities. See https://glitch.com/edit/#!/fascinated-hip-period?path=index.html for a full demo! -->\n    <a-box material=\"shader: standard; color: white\" width=\"0.3\" height=\"0.3\" depth=\"0.3\"\n           position=\"-2.276 0.3 0.165\"\n           physx-body=\"type: static\"></a-box>\n    <a-entity icon-button=\"#asset-nudge-brush\" tooltip=\"Start Physics\" system-click-action=\"system: physx; action: startPhysX\" position=\"-2.105 0.3 0.13\" rotation=\"0 90 0\" scale=\"0.6 0.6 0.6\"></a-entity>\n    <a-entity gltf-model=\"#asset-hand\"\n              preactivate-tooltip=\"Press Start Physics below!\"\n              position=\"-2.276 1 0.165\"\n              class=\"clickable\"\n              physx-body=\"type: dynamic\"></a-entity>\n  </a-scene>\n</body>\n</html>\n```\n\n[View the demo on CodePen](https://codepen.io/zach-capalbo/pen/oNbKagV)\n\n<p class=\"codepen\" data-height=\"330\" data-theme-id=\"light\" data-default-tab=\"html,result\" data-user=\"zach-capalbo\" data-slug-hash=\"oNbKagV\" data-preview=\"true\" style=\"height: 330px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;\" data-pen-title=\"aframe-vartiste-toolkit-demo\">\n  <span>See the Pen <a href=\"https://codepen.io/zach-capalbo/pen/oNbKagV\">\n  aframe-vartiste-toolkit-demo</a> by Zachary Capalbo (<a href=\"https://codepen.io/zach-capalbo\">@zach-capalbo</a>)\n  on <a href=\"https://codepen.io\">CodePen</a>.</span>\n</p>\n<script async src=\"https://static.codepen.io/assets/embed/ei.js\"></script>\n\n## Physics playground\n\nThe [aframe-vartiste-toolkit physics playground](https://glitch.com/edit/#!/fascinated-hip-period?path=index.html%3A1%3A0) is a good example of using the toolkit for things other than painting and drawing, and the best example of the [physics](#physics.js) components so far.\n\n# Source Code\n\nFor information, you can also read through the source code:\n\n[https://gitlab.com/zach-geek/vartiste/-/blob/release/src/vartiste-toolkit.js](https://gitlab.com/zach-geek/vartiste/-/blob/release/src/vartiste-toolkit.js)\n","readmeFilename":"Readme.md","_id":"aframe-vartiste-toolkit@1.30.0","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-OvN96i2cFVoqURBxRYMIRv9gJYnwMJHZRKDQnNi3x9cPj5FJf/9+0M7V9hlEW0t6w0mff6v1JiK/PGUdS2tlJw==","shasum":"fef97b8b2b8b12dcda0696bc2ffcba4aa43b4cdd","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.30.0.tgz","fileCount":95,"unpackedSize":15807248,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhM23/CRA9TVsSAnZWagAAFucP/RlML7KNuc8YiJDY0ikL\nw08WxwqqA3Qad0PSRua2IkB/QvZsNkFK+UqXEhVQyOvvT/Qsmqqf16Md2mr7\nQp2TFMa1lkK8z6EFAOL4b7zQo5muMKa15TLdPREdPpmhhrVTctt11GY0sfBz\nfRiJTrtoWoiTjLbwLLRGsa7CcOLv91kePCjRC574a6RWcGlU8sVlCphfdIpH\nK1KYAfKcjonag9Vp07XeT97mr56SdC+UwWeBbb7iSDvdrmtN1L4lAQ4n9fvA\n4ekC7XJBjNPcQGXzYkJIGT0TSkfDMzDLk7l33grbR8ar4Ep6Ia9wxzrPn2T+\njKW+3wfSr9Z09jXQrkeGpEPZzQsdmakD6gpfyvvJ5gsw8UwxJf0JlcrOpDl3\n4YSu3jdQeM0DveVWdX4kZ357bbYFpg884QGwyWFAlqCtZkLN76HYaa4uKa1G\n3SchonYrJp8KXLP2pS27ON1wl+QHPcku48HfePt8mP7EoXp9mMU4HmoZ7N0T\nKhovIwFD2IdUM9C7fJqKpJ1gBMR6qzTGMTHI09H/jRlniMQUUblWpKBJ1aUn\n7gG+ux7rTU/PRfvZt/qZ4ZrCVkxqWb8PpyfRl7Qr7zp4glcm3M/44tPB51/9\nWFmYqKtH3r6m3vh1ZOoZzmL9FO1KwoLZrvF9vmy+ggRUpojj1TVCfwOqiGim\nYXDU\r\n=4pht\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCfm+KLS5KQd8xSKZ9HY8j8nRke2UiiKYx1y7vuUFzgZgIhAOKAwKeDhQPpODANXhNPhEvpJ24GwEb0QBTGgsrk+uqo"}]},"_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"directories":{},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.30.0_1630760447296_0.5845798958622739"},"_hasShrinkwrap":false},"1.30.1":{"name":"aframe-vartiste-toolkit","version":"1.30.1","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","_resolved":"","_integrity":"","_from":"file:E:/Downloads/aframe-vartiste-toolkit-1.30.1.tgz","readme":"# VARTISTE Toolkit\n\nThe VARTISTE toolkit is a collection of components developed while creating\n[VARTISTE](https://vartiste.xyz). I've compiled them into a stand-alone module\nin the hopes that it might be useable to folks to jump start their own projects.\n\n# Installation / Use\n\nThe easiest way to use it is to include the `.js` file from a CDN, such as\nunpkg:\n\n```html\n<html>\n<head>\n  <script src=\"https://unpkg.com/aframe-vartiste-toolkit@latest/vartiste-toolkit.js\"></script>\n</head>\n...\n</html>\n```\n\nIncluding the javascript file automatically registers the components and\nsystems.\n\n**Note:** It is recommended to specify a version instead of using _latest_, in order to avoid unexpected changes. E.g:\n\n```html\n<html>\n<head>\n  <script src=\"https://unpkg.com/aframe-vartiste-toolkit@1.27.1/vartiste-toolkit.js\"></script>\n</head>\n...\n</html>\n```\n\n## New Project vs. Existing Project\n\nIf you're creating a new project, the aframe-vartiste-toolkit has a lot of\nfeatures and functionality, and I recommend pulling in the whole thing. This is\nthe default behavior when including the toolkit script. The components and\nsystems can work together to provide more functionality when everything is\navailable.\n\nIf you're bringing aframe-vartiste-toolkit into an existing project, you can\neither [bring in specific pieces of the toolkit](#customization), or you can\nbring in the whole thing. If possible, I recommend pulling in the whole toolkit,\nsince some components may depend on other components or systems, but if there's\nconcern for naming or functionality conflicts, most components can also operate\non their own.\n\n# Toolkit Overview\n\nThe *aframe-vartiste-toolkit* has a lot of stuff in it. It's built by exporting\nevery little bit and piece of the [VARTISTE](https://vartiste.xyz) app, and so\n[VARTISTE](https://vartiste.xyz) and the [VARTISTE source\ncode](https://gitlab.com/zach-geek/vartiste) are ultimately the best places to\nsee what's available and how it works. Nonetheless, I've written some\ndocumentation as a best-spare-time-effort. Here's some of the key things to get you started.\n\n## Philosophy and Terms\n\nVARTISTE leans pretty heavily into the entity-component-system framework that\na-frame makes available; most things are components, which use systems when\nneeded, and can be attached to entities pretty readily. Plenty of components\nalso spawn their own children entities.\n\nThere are a few notable exceptions in the form of utility classes, such as [`VARTISTE.Util`](#util.js) and [`VARTISTE.Undo`](#undo.js). These utility classes are exposed under the `VARTISTE` global variable.\n\nMost components (but not all) respond correctly to updates via\n`setAttribute`; fewer things respond entirely correctly to `remove()` so if you\nrun into issues, double check the docs here or the source.\n\nOne extension to the ECS framework in VARTISTE is \"component systems\", created\nvia [`VARTISTE.Util.registerComponentSystem`](#util.js). These are basically\ncomponents for the `a-scene` which get automatically attached (like systems do).\nThey have the full schema and update abilities of components, with the\nauto-attach convenience of systems. They are accessible via `sceneEl.systems` *and* `sceneEl.components`.\n\n## UI Components\n\nVARTISTE has a quick-and-dirty user interface, focused around the [`icon-button`](#icon-button), a button with an icon on it. These are usually collected into an [`icon-row`](#icon-row), where they're automatically layed-out horizontally. Most clickable things have a [`tooltip`](#tooltip), which also has the advantage of being able to be ready by the built-in [text-to-speech](#speech.js) system.\n\nIn addition to [`icon-button`s](#icon-button), there are [`edit-field`s](#edit-field) and [`lever`s](#lever) for providing input.\n\nAll of these components are usually arranged on a [`shelf`](#shelf) which provides a background and frame, and allows for easy closing or pinning to the a controller.\n\n## User Rig\n\nVARTISTE is based on a laser-pointer type interface. I've created a user rig\nlayout based on the laser-pointer concept, and you can incorporate it all with\njust the [`vartiste-user-root`](#vartiste-user-root) component. Some of the things it includes:\n\n- Automatic \"Press any key to reset orientation\" when entering VR.\n- Cool \"VR Goggles\" that show up in the spectator camera (but not during normal\n  display)\n- Ultra leap hand tracking\n- [`hand-action-tooltip`](#hand-action-tooltip) context sensitive button help\n  tied to the controllers\n- WebXR controller-only mode. I.e., you can use you controllers without your\n  headset, but just displaying on the desktop. Uses the [`xr-controllers`](#xr-controllers.js) system\n- Controller motion smoothing by default. Really improves experiences for jumpy controllers (*cough*ReverbG2*cough*)\n\nNote this user rig uses the\n[`webxr-motion-controller`](#webxr-motion-controller) and\n[`webxr-laser`](#webxr-laser) components rather than the a-frame built-in\n`laser-controls`. I found the [webxr-input-profiles\nmotion-controllers](https://github.com/immersive-web/webxr-input-profiles) to be\nmore consistent and up-to-date than the components built into a-frame, so I\nbuilt the [`webxr-input-profiles`](#webxr-input-profiles) systen to use that\ninstead.\n\n## Interaction Components\n\nUser interaction is built around laser-control-type raycasting. Interactive\nelements have the `clickable` HTML class set, which makes them visible to the\nraycasters. `click` events are emitted when these elements are clicked.\n\nEvery `clickable` entity, by default, can also be grabbed and moved. Grabbing\nand moving is handled via the [`manipulator`](#manipulator) component, which is installed on the user motion controllers or mouse controls. A lot more info can be found at the documentation for [`manipulator`](#manipulator)\n\nThere's also a bunch of built-in constraints, which can be set on entities to\nrestrict how they move when grabbed. For instance\n[`manipulator-weight`](#manipulator-weight) makes entities feel \"heavy\" by\nslowing down their movement when grabbed.\n\n## Drawing Components\n\n[VARTISTE](https://vartiste.xyz) of course is a drawing and image editing\napplication. I've brought many of the drawing components into the toolkit to\nallow easily adding drawing to other A-Frame applications.\n\nThe easiest way to get started adding drawing to your app is to add the\n[`drawable`](#drawable) component to whatever you want to be able to draw on,\nand the [`hand-draw-tool`](#hand-draw-tool) component to whichever raycasters\nyou want to be able to draw. These are already set up if you use the\n[`vartiste-user-root`](#vartiste-user-root) component. Additionally, you can\ncreate [`pencil-tool`](#pencil-tool) components to create grabbable pencils that\ncan be easier to use in VR.\n\nYou can create your own brushes with the [`set-brush`](#set-brush) component.\nScene-wide drawing parameters are managed by the\n[`paint-system`](#paint-system).\n\n## Other cool stuff\n\nThere's lots of other nifty components and systems, for instance\n[`canvas-fx`](#canvas-fx), which lets you quickly apply special effects to a\ncanvas, or [`glb-exporter`](#glb-exporter) which will let you download any\narbitrary entity or `THREE.Object3D` as a glb file in a single function call. There's even a PhysX-based [physics system](#physics.js)!\n\nUltimately, the best way to find out everything that's available is to read\nthrough these documents, play around with the examples and VARTISTE itself, and\nfailing that to read the source code.\n\nAlso, VARTISTE uses a bunch of premade environments, these are packaged separately in the [aframe-enviropacks](https://www.npmjs.com/package/aframe-enviropacks) package.\n\n## Assets\n\nAssets required for some of the basic component use are automatically included\nby the javascript source file.\n\nIf you want to include *all* VARTISTE assets in your project, you just need an\n`a-asset` with a `vartiste-assets` property, like this:\n\n```html\n<a-scene>\n  <a-assets>\n    <!-- Your assets ... -->\n    <a-asset vartiste-assets=\"\"></a-asset>\n  </a-assets>\n  <!-- Rest of your scene, etc -->\n</a-scene>\n```\n\n## Customization\n\nYou can optionally customize which components and systems are registered by the\naframe-vartiste-toolkit by setting the `VARTISTE_TOOLKIT` variable *before* the vartiste-toolkit.js file is loaded. `VARTISTE_TOOLKIT` should either be `undefined` (default) or be an object having any of the following properties:\n\n- `excludeComponents`: Array of strings specifying which components, systems, or\n  systemComponents specifically to exclude from being registered\n- `includeComponents`: Array of strings specifying which components, systems, or\n  systemComponents to be registered. All other components, systems, and\n  systemComponents will be excluded.\n- `excludeFiles`: Array of strings specifying all aframe-vartiste-toolkit source\n  code files (from [the component reference](https://vartiste.xyz/docs.html)) to\n  exclude entirely from registration. All components, systems, and\n  systemComponents in those files will *not* be registered. Any classes in those\n  files will not be defined.\n- `includeFiles`: Array of strings specifying which aframe-vartiste-toolkit\n  source code files (from [the component\n  reference](https://vartiste.xyz/docs.html)) to include in registration. All\n  components, systems, and systemComponents, and classes in other files will be\n  excluded.\n- `assetUrl`: VARTISTE Toolkit assets will be fetched from\n  `assetUrl/assets/####.###`. Use this option if you want to use webpack and\n  have a custom public-facing URL\n\n## Component Reference\n\nThe full API and component reference can be found at\n[https://vartiste.xyz/docs.html](https://vartiste.xyz/docs.html). Please note\nthat it is still under construction. The source code is available as well at\n[https://gitlab.com/zach-geek/vartiste](https://gitlab.com/zach-geek/vartiste),\nand contributions, both code-wise and documentation-wise are welcome.\n\n# Examples\n\n## Example Scene\n\n```html\n<!DOCTYPE html>\n<html>\n\n<head>\n  <title>VARTISTE Toolkit Demo</title>\n  <script src=\"https://aframe.io/releases/1.1.0/aframe.js\"></script>\n  <!-- <script src=\"https://aframe.io/releases/1.0.4/aframe.js\"></script> -->\n  <!-- You can specify components / systems, or files to exclude from being registered -->\n  <script>VARTISTE_TOOLKIT = {\n      /*excludeComponents: [\"frame\"], */ // Will exclude \"frame\" component\n      /*includeComponents: [\"shelf\", \"hdri-environment\"], */ // Will include *ONLY* the shelf component and hdri-environment system\n      /*excludeFiles: ['icon-button'], */ // Will exclude all components found in  aframe-vartiste-toolkit source file 'icon-button.js'\n      /*includeFiles: ['icon-button'], */ // Will include *only* the components found in  aframe-vartiste-toolkit source file 'icon-button.js'\n      /*assetUrl: 'https://example.com:8080/', */ // Will load vartiste assets from https://example.com:8080/ rather than the script's location\n    }</script>\n  <!--Just include the toolkit js file-->\n  <script src=\"https://unpkg.com/aframe-vartiste-toolkit@latest/vartiste-toolkit.js\"></script>\n  <link rel=\"icon\" href=\"/assets/favicon.png\">\n</head>\n\n<body>\n  <a-scene icon-button=\"shader: matcap\" renderer=\"colorManagement: true; physicallyCorrectLights: true\" xr-controllers-only=\"addUseControllerButton: true\" spectator-camera=\"camera: #spectator-camera; state: SPECTATOR_CAMERA\">\n    <a-assets timeout=\"600000\">\n      <canvas height=\"768\" id=\"draw-canvas-asset\" width=\"1024\"></canvas>\n\n      <!-- You can easily load your own HDRI if you want! -->\n      <a-asset id=\"hdr\" src=\"asset/studio.hdr\"></a-asset>\n\n      <!--You can use all the default VARTISTE assets with the vartiste-asset\n      component. Otherwise, only the ones needed for other components are\n      included-->\n      <a-asset vartiste-assets=\"\"></a-asset>\n\n      <!-- You can override some built-in components by defining mixins -->\n      <a-mixin id=\"lever-grip\" material=\"color: #a2c4fa\"></a-mixin>\n      <a-mixin id=\"shelf-bg\" materia=\"shader: standard\"></a-mixin>\n    </a-assets>\n\n    <!-- HDRIs are an easy way to get nice lighting and backgrounds really quickly -->\n    <a-sky color=\"#333\" hdri-environment=\"src: #hdr\"></a-sky>\n\n    <a-entity light=\"type: hemisphere; color: #eee; groundColor: #333; intensity: 0.6\"></a-entity>\n    <a-entity light=\"type: ambient; color: #fff; intensity: 0.6\"></a-entity>\n\n    <!-- vartiste-user-root sets up the default laser pointer / mouse & keyboard\n    interactions. If you want to define your own user setup, you'll want to make\n    sure to include the manipulator components on both of the hand components to\n    ensure that things can be grabbed and resized. -->\n    <a-entity vartiste-user-root=\"\"></a-entity>\n\n    <a-entity position=\"0 0 -2.5\">\n\n      <!--A shelf provides a definitive place to put things. \"grab-root\" ensures\n      that grab-and-move events propogate to the whole shelf-->\n      <a-entity class=\"grab-root\" shelf=\"\">\n        <!--icon-buttons position themselves in a row automatically. So we just\n        position this outer entity where we want the row to start-->\n        <a-entity position=\"-1.5 1.1 0\" icon-row=\"\">\n          <!--Simply pass an asset to icon-button, and boom, you've got an icon\n          button that responds to a wide range of clicks-->\n          <a-entity icon-button=\"#asset-eye\" onclick=\"alert('click')\" tooltip=\"Run Javascript onclick handler\"></a-entity>\n          <!--You can make it a toggle button by adding the toggle-button\n          component-->\n          <a-entity icon-button=\"#asset-oven\" toggle-button=\"\" tooltip=\"Toggle Me\"></a-entity>\n          <!--You can style it, too-->\n          <a-entity button-style=\"color: #ed8607; clickColor: #8607ed; intersectedColor: #07ed86\" icon-button=\"\" tooltip=\"Look at the colors! Woah!\" onclick=\"this.sceneEl.systems['canvas-fx'].applyFX('invert', document.getElementById('draw-canvas-asset'))\"></a-entity>\n          <!--Add the system-click-action to easily call methods of systems-->\n          <a-entity icon-button=\"#asset-account-voice\" system-click-action=\"system: toolkit-demo; action: speak\" tooltip=\"Speak entered text if enabled\"></a-entity>\n          <!--Or add component properties directly for the toggle buttons to\n          toggle-->\n          <a-entity icon-button=\"#asset-check-outline\" toggle-button=\"target: a-scene; component: speech; property: speak\" tooltip=\"Toggle Speaking Enabled\"></a-entity>\n\n          <!-- Easily export entities or even the entire scene to a GLB file -->\n          <a-entity icon-button=\"#asset-floppy\" tooltip=\"Download this scene as GLB\" system-click-action=\"system: glb-exporter; action: downloadGLB\"></a-entity>\n\n          <!-- Use the VARTISTE undo system to easily undo changes, too -->\n          <a-entity icon-button=\"#asset-undo\" tooltip=\"Undo\" onclick=\"VARTISTE.Undo.undo()\"></a-entity>\n\n          <a-entity icon-button=\"#asset-help-circle-outline\" system-click-action=\"system: toolkit-demo; action: help\" tooltip=\"VARTISTE Toolkit Documentation\"></a-entity>\n        </a-entity>\n        <a-entity position=\"0 0.5 0\" text=\"width: 3.4; wrapCount: 35; value: Welcome to the VARTISTE toolkit demo\"></a-entity>\n        <a-entity>\n\n          <!--You can use edit fields which pop up a keyboard-->\n          <a-entity edit-field=\"type: string; tooltip: Edit a string!\" id=\"demo-input\" text=\"width: 2; wrapCount: 20; value: default text\"></a-entity>\n        </a-entity>\n        <a-entity position=\"0 -0.6 0\">\n\n          <!--You can also have a numerical edit field-->\n          <a-entity edit-field=\"type: number; tooltip: Edit a number\" text=\"width: 2; wrapCount: 4\"></a-entity>\n        </a-entity>\n\n        <!-- You can make interactables, like this lever -->\n        <a-entity lever=\"valueRange: 2 0; target: a-sky; component: hdri-environment; property: exposure; initialValue: 0.724\" position=\"-1.621 -0.917 0\" scale=\"2 2 2\" tooltip=\"Adjust Lighting\"></a-entity>\n      </a-entity>\n    </a-entity>\n\n    <!--You can put a frame around anything with a geometry. The frame can optionally be closeable, or pinnable to your hand-->\n    <a-image frame=\"\" position=\"0 2 -1\" src=\"#asset-vartiste\" tooltip=\"Here's a floating frame!\" tooltip-style=\"offset: 0 0.5 0\"></a-image>\n\n    <!--Adding the clickable class to anything makes it grabbable-->\n    <a-entity class=\"clickable\" position=\"-3.0 0 -2.5\" text=\"width: 2.4; wrapCount: 25; value: Desktop Controls:\\n-Left Click: Click buttons\\n-Right Mouse Buton Drag: Look around\\n-Shift+Left Mouse Button Drag: Move things\\n-WASD: Move around\"></a-entity>\n\n    <!--You can use some of the VARTISTE drawing tools, too!-->\n    <a-entity id=\"draw-canvas-demo\" class=\"clickable\"\n              drawable=\"canvas:#draw-canvas-asset\" frame=\"\"\n              geometry=\"primitive: plane; width: 2; height: 1.75\"\n              material=\"shader: flat; src: #draw-canvas-asset; npot: true\"\n              position=\"3.1 0 -2.4\" tooltip=\"Draw Here\" tooltip-style=\"offset: 0 0.75 0\"></a-entity>\n    <a-entity class=\"clickable\" color-picker=\"\" geometry=\"primitive: circle; radius: 1; height: 1.75\" position=\"3.1 2 -2.4\"></a-entity>\n    <a-entity position=\"4.5 2 -2.4\" icon-button=\"#asset-brush\" tooltip=\"Change brush\" set-brush=\"brushType: ImageBrush; image: #asset-brush; color: blue; scale: 5; activationEvent: click\"></a-entity>\n    <a-entity position=\"3.1 0 -1.4\" rotation=\"90 0 0\" scale=\"2 2 2\" pencil-tool=\"\" tooltip=\"Grabbable Pencil\" set-brush=\"brushType: ImageBrush; image: #asset-lead-pencil; color: green; scale: 5\"></a-entity>\n\n    <!-- There's a few handy default constraints to restrict how things can be grabbed -->\n    <a-sphere class=\"clickable\"\n              constrain-to-sphere=\"\"\n              manipulator-weight=\"type: slow; weight: 0.9\"\n              grab-options=\"undoable: true\"\n              material=\"shader: standard; roughness: 0.3; metalness: 0.7\" position=\"0 0.4 -0.4\" radius=\"0.1\"></a-sphere>\n\n    <a-entity id=\"spectator-camera\" camera=\"\" position=\"2 1 1\" rotation=\"0 80 0\" camera-layers=\"layers: spectator\"></a-entity>\n\n    <!-- The toolkit also includes a PhysX-backed physics engine, with lots of nifty utilities. See https://glitch.com/edit/#!/fascinated-hip-period?path=index.html for a full demo! -->\n    <a-box material=\"shader: standard; color: white\" width=\"0.3\" height=\"0.3\" depth=\"0.3\"\n           position=\"-2.276 0.3 0.165\"\n           physx-body=\"type: static\"></a-box>\n    <a-entity icon-button=\"#asset-nudge-brush\" tooltip=\"Start Physics\" system-click-action=\"system: physx; action: startPhysX\" position=\"-2.105 0.3 0.13\" rotation=\"0 90 0\" scale=\"0.6 0.6 0.6\"></a-entity>\n    <a-entity gltf-model=\"#asset-hand\"\n              preactivate-tooltip=\"Press Start Physics below!\"\n              position=\"-2.276 1 0.165\"\n              class=\"clickable\"\n              physx-body=\"type: dynamic\"></a-entity>\n  </a-scene>\n</body>\n</html>\n```\n\n[View the demo on CodePen](https://codepen.io/zach-capalbo/pen/oNbKagV)\n\n<p class=\"codepen\" data-height=\"330\" data-theme-id=\"light\" data-default-tab=\"html,result\" data-user=\"zach-capalbo\" data-slug-hash=\"oNbKagV\" data-preview=\"true\" style=\"height: 330px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;\" data-pen-title=\"aframe-vartiste-toolkit-demo\">\n  <span>See the Pen <a href=\"https://codepen.io/zach-capalbo/pen/oNbKagV\">\n  aframe-vartiste-toolkit-demo</a> by Zachary Capalbo (<a href=\"https://codepen.io/zach-capalbo\">@zach-capalbo</a>)\n  on <a href=\"https://codepen.io\">CodePen</a>.</span>\n</p>\n<script async src=\"https://static.codepen.io/assets/embed/ei.js\"></script>\n\n## Physics playground\n\nThe [aframe-vartiste-toolkit physics playground](https://glitch.com/edit/#!/fascinated-hip-period?path=index.html%3A1%3A0) is a good example of using the toolkit for things other than painting and drawing, and the best example of the [physics](#physics.js) components so far.\n\n# Source Code\n\nFor information, you can also read through the source code:\n\n[https://gitlab.com/zach-geek/vartiste/-/blob/release/src/vartiste-toolkit.js](https://gitlab.com/zach-geek/vartiste/-/blob/release/src/vartiste-toolkit.js)\n","readmeFilename":"Readme.md","_id":"aframe-vartiste-toolkit@1.30.1","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-2EzdcoYeeTXWUuAFzG3X+IIY+xQH1zjDrDQIv8ED6C6yx1TYcZvSmVmVlYN6sxg4ea1PBm9R3Zo9Lq/nmAe9hw==","shasum":"f7b18a2589d7c360f79c82214a04baf2c0b8bd1b","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.30.1.tgz","fileCount":95,"unpackedSize":15815582,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhNKaUCRA9TVsSAnZWagAAtlYP/3pNd8LMpBo6i7qY5e4T\ngVbab1aDL/pCJdu6sEJ08IMYHVYNHVs3Y5LtoET1Ch2Yl+Hfz0ZctkAIGejr\nUf/GgQ6aWqxpcvfYAa+LredfYSC8VylQPeYMCiThFrQ411NdqkKIem67Rpx1\nh7IDkvU6yXT6oYIPJMbQiQI7pLHzcg5baxUxOer1P5ufti0Yb8poY4qAaQOS\ndxMMizgCcIyRSeLj7PngNNTW+wRYe+c/io2+KXwN/ctJD/Muj6cJCBuI0c0B\n1oeLkFE8FHTXAnSsN1lMIhPWPw8ET/nrtxgqdIczxb4wogv0o83ab6HbYKGO\nX91fp+s58TeY/kKxfkMZ6VQVhvfU3a2KpfNGvzOaZcB0J54ZfQPPChAxmY8U\nqozsV34KpHB3Pny/EmHvJSNzZDZ5BQfuog+WQA+r4OHHEgIY82l89mewwoxn\nbFk9P3/re/f2/L/W9pGIEDZwH8jTAa16heEMwTiJxWP4ki7D0O2BQnGLV7v+\nTNzrDWITSvB5TJd3G/wv+hOE85vtrP+RnkKmHm84nXNn3ieibi9ow1C/NnKL\nuDzUTTdunxBeJgaAMd3/g0wWtOhTBWAuwyR9B2mCfn07jz6EZ9s1GHlTKUWs\ngNddeHSKouq707DQpPxDhzjgSd4mC1WxNbCAsOYfnmplHuWlnXPZkkZHSkCJ\ntc5E\r\n=OxiQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBhhksEj2odr1iwVAmxtC0RA0sUdpzx+DQ23WeDNnQwNAiEA3937cs6eY+c7XQsbFEqZf3DipVwjofdqueWdnQDFQX4="}]},"_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"directories":{},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.30.1_1630840467766_0.3462027954250333"},"_hasShrinkwrap":false},"1.31.0":{"name":"aframe-vartiste-toolkit","version":"1.31.0","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","_resolved":"","_integrity":"","_from":"file:E:/Downloads/aframe-vartiste-toolkit-1.31.0.tgz","_id":"aframe-vartiste-toolkit@1.31.0","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-Lir6yCxIm9YL25C1dJjnMUs22nlpBCqctn+RWe0jsJCxg6sBgnHkPqQHRd698k0tzLaUUAO637wMoOCku2OqeA==","shasum":"173fe11b7b49fae7130de2218b6fed3ceae85b87","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.31.0.tgz","fileCount":98,"unpackedSize":16086748,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICWdlico3sFXcloqIIrqZn3mpGmsghXnTgsnjbVUbVAwAiB9K9ZL1/PiS+ahKih5xAK0EcvNPhdnfKAux0EgyUSF8w=="}]},"_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"directories":{},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.31.0_1633483455238_0.30430032892816494"},"_hasShrinkwrap":false},"1.32.0":{"name":"aframe-vartiste-toolkit","version":"1.32.0","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","_resolved":"","_integrity":"","_from":"file:E:/Downloads/aframe-vartiste-toolkit-1.32.0.tgz","_id":"aframe-vartiste-toolkit@1.32.0","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-3YzEXJPTfJg34/rZ5GLC+dsaQm6Ac9ZTgbKYNLtQCSoUhOoV/sazzAQxrwW3ZjnITencOsf0nVKxGo9udvydMQ==","shasum":"90fc02afde11c8d605cb2a4a501cf52d96411d9c","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.32.0.tgz","fileCount":99,"unpackedSize":16164090,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhoR3WCRA9TVsSAnZWagAApNsP+wUxIAISzUUe4mIJlJJT\nQrSRlOn1V0wu7S+Tcqgr8aLfmglcVx/cq+6gtCAF3Pnh9qcold0D8xhrkK/b\nE26daja+LKEctVv1YzR67q0MkfLBs5I6Z080LDapO+lJJ04Ex3zrFGKwi14m\nUaZFw5+E9UNwLemRme5sOfOQsfZB3DeTL8EiR0YtARghi68YWLvLcq9ICx0X\nEguoCTa/kzGWRgBHW7K4m1RNoEICTniXJcgAUg/kzjqDwzLn/56sPJBoDlIU\nR58oenXoyMv7mKnJVo3/VhQfBxEd6KnZXrCpSum3XTtSsZplU3WN8So9b1SV\nr5Acb4fjQ4omvZmbGed30Oxd7KsrPWBVy7J3xDFLA5RnsB5X+9QGYkNzmh2R\nNzTePAAYeyGALY3KVov42hdYx9k6YGlOxFHL1doeEAawTBueHP14bUb4pxQ7\n+1tcU2qJXpwP0bT98sMIiP1BFJ7Fplx3PL2eNlSarE9POrwAv+gvnZeCkHvp\n7Iu9QOdoHmCWwHU/S8AYZez5Mq8+Xw/5aZkLYDWNO9evtUtlJ7dOKCpBea3u\nEkOJ0Le2HyBO7r2LwQVmFswKGfqyfQCa6XYHaY3sd4p1yw7PMRwvwGd1QfC5\noKAxF2zunbYq9BpxcrgLnzzBQfgXTHm61VbNaJvdeRLk40dTDexsgOAugY5E\nx71M\r\n=1Psp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDRaeFIKelTNP/+LTcpVVNS1D7GeWy8cEVaJYNf2xTOFAiEAlf8P9bFX6OV9v1OYkvCXnyA2tGO/8cPDfzKFNj4P+8k="}]},"_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"directories":{},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.32.0_1637948885755_0.6599065576974112"},"_hasShrinkwrap":false},"1.33.0":{"name":"aframe-vartiste-toolkit","version":"1.33.0","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","_resolved":"","_integrity":"","_from":"file:C:/Users/zcapalbo/Downloads/aframe-vartiste-toolkit-1.33.0.tgz","_id":"aframe-vartiste-toolkit@1.33.0","_npmVersion":"6.4.0","_nodeVersion":"9.4.0","_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"dist":{"integrity":"sha512-TM65PZ8gsIINbhSajY0yCqgD+NSM/t5Urqfez498VgnE90y+Gl0C21bVKweWkd2QHysWScioTgoM+rEGRoH0Jw==","shasum":"aa447dbdbda103ad9d5118fd023d822cb8d89a83","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.33.0.tgz","fileCount":99,"unpackedSize":16211055,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhxPKUCRA9TVsSAnZWagAA2mwP/jwQxmE+1zQmY2hqVEdZ\nwG/G/VXZqoaFw8xdPQ42bCvErr1x2o/sDrEIw2CDebcjmguEzeKY+myPkt3E\nmj8cPUq51sXyw9JDN32pE0+N1JCC4ezlMFVEyw9swBW6Jq/VroovT8Rz+iIQ\nEKyZ1fyI+PEkgvDjaZt7Np/HadKlQOZQRfTDndgJCCUARZkCMjNrubOtl6Qb\nWlJG4dMACo5HfmJGoKDU4vYNys4SPZlekx2w6t+b+hZ8l7EtCuVh8/Gx3RCZ\nt+FGWUuuNBE0KD7vjss5KaWSPoYjMmf67NK9yfSi68XFsO1CiXU8hD2QXC+L\nrubrV7A0Qcm7Ga5A/69cayt3E8C4SrHKqXMCFIubVHhRkLBTjpbEc1ofHdQK\ngbExqtq00nbDMDhLOkqr6rIlrTeS6Q+1sr3kXDFtHRNys/ajUe3tRRrrvMKT\nz1RojNHWsHtRtKonxmNAXqAti8HyYEHTqHJaSy+aKJ0iseooQuzCV4ssDV85\nJ0VADTWX482dr1CseJSdcGvPQlu4lslO/PPgTuXvZDZk8Pd7Jdkb3BvLJY/U\nziuyYcgASSPqcr8Gj4vK62qAuUcYpfGFEvknds+wvHb+uuhvc7ZBHbwCwCuV\nbmWFla8lK8Qe5qp2jEZwCJTb3jW4AA3VhCoVnsZUnP2M619vuGjg1E4TPXgM\n4O3y\r\n=F+26\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD/RCMLSuixBC7lhli0EzaLnnuG/ZKtHzXlP/IGzD3KFwIhAKHglVBRiDakg7CWTyJ3KBBDU8cGI/WKOmDvVEqBtb94"}]},"directories":{},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.33.0_1640297108525_0.019473792493246433"},"_hasShrinkwrap":false},"1.34.0":{"name":"aframe-vartiste-toolkit","version":"1.34.0","description":"Toolkit to create GUI similar to VARTISTE","main":"vartiste-toolkit.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"keywords":["VR","aframe","vartiste","aframe-component"],"author":{"name":"Zach Capalbo"},"license":"Apache-2.0","bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"homepage":"https://vartiste.xyz/docs.html","_resolved":"","_integrity":"","_from":"file:E:/Downloads/aframe-vartiste-toolkit-1.34.0.tgz","_id":"aframe-vartiste-toolkit@1.34.0","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-gp970LcUh3UKZh+Z1AS4tfaWxoJgHJuoZtF9qY3oLvfMZUFH8Wb/7nzDLQSIxAC+Br0Njqzg4ztVRMkF3Ut39w==","shasum":"0aa2e0dd7b483797f843f3923273ea814143529b","tarball":"https://registry.npmjs.org/aframe-vartiste-toolkit/-/aframe-vartiste-toolkit-1.34.0.tgz","fileCount":178,"unpackedSize":43925547,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCNpO5+jniZDQkjJAjYQ+JHoOseVFhK8s/0iP8D9/4IHQIgSzvRs6q/jm/wlu93IlddHxQ1PsdvO8vmTgjgEsjcveo="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjejbhACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrB4g//YNzgpdqvvfmoJ772Yh86WDjEF2n3gMylh0KL8hPQSrL91zrz\r\njo97JJeTN45NyLnf1srufJgtHFzzRtOY+Us4vNaUwqNedqi6G0jWauHbcyB3\r\np18pNnEpKt7hxYmh8fIs9AikADGZyLI96mhFLdNbxl8cyJgUj8Z3bzC6tnLN\r\nN8cEQa0b1mcSRIt8+PzWwV0/e6XYybRnzv/7koOvAuYDCBSUqthAzbSoax3u\r\nj6wVMlRJ/kQItmigzOOJhltnk3BOXZ19983psPgRllYOO+x24QxkbeJjzx+M\r\nNRP2SSPzSkWwJwubqVOUkGi7aqR6zXISOc6i6TFItvh5eJJoIFq5sDujHenL\r\n9om09InrCxZtmi0DdwE18+2kWrPmkX1yVBZU9E300yNhQss0aZGKnz17GTgd\r\nYObONRsztXfmPTr2PixXRb10UlVfGv9Kh0EFqcfrTv1IDNQMgwAS+oyepprW\r\nMbLQW5hXkNflMtV2AqiOEsh6nwQottxWoXBdtwUjJV7nJ1sMHHsHhq5FjdtM\r\n2anUZDqY9wnk5+HWHZZKOyIC0z92t+y7QWkgOzA9vyh66lGhhPl5Yk1YTQ+Y\r\nmNB18SGGX4G+Rf2PODayEshrs+gUd112crByY7nxXTMrTPDF55d3jyoXMfVK\r\n5uCpaB7/ZaXQvecPwsG1eSY9mHP+1lDmja0=\r\n=0elI\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zach-geek","email":"zach.geek@gmail.com"},"directories":{},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aframe-vartiste-toolkit_1.34.0_1668953824746_0.7276281189089595"},"_hasShrinkwrap":false}},"time":{"created":"2020-07-29T23:50:11.429Z","0.0.1":"2020-07-29T23:50:11.753Z","modified":"2022-11-20T14:17:05.346Z","0.0.2":"2020-08-02T01:05:45.686Z","0.0.3":"2020-08-02T15:53:42.365Z","0.1.0":"2020-08-02T16:39:11.263Z","0.2.0":"2020-08-14T17:06:10.465Z","1.0.0":"2020-09-05T18:35:36.243Z","1.1.0":"2020-09-20T19:21:02.414Z","1.2.0":"2020-10-03T01:47:46.592Z","1.2.1":"2020-10-06T00:13:52.620Z","1.2.2":"2020-10-06T00:31:21.526Z","1.3.0":"2020-10-16T12:51:14.588Z","1.4.0":"2020-10-17T13:50:28.594Z","1.4.1":"2020-10-17T14:59:50.373Z","1.5.0-pre1":"2020-10-18T14:55:51.729Z","1.5.0-pre2":"2020-10-18T23:00:36.598Z","1.5.1":"2020-10-21T13:19:59.713Z","1.5.2":"2020-10-21T21:07:50.536Z","1.6.0":"2020-10-25T20:37:41.458Z","1.7.0":"2020-11-02T01:20:27.285Z","1.8.0":"2020-11-16T02:38:12.645Z","1.9.0":"2020-12-04T23:22:56.400Z","1.9.1":"2020-12-05T00:03:46.994Z","1.10.0":"2020-12-09T00:48:17.465Z","1.11.1":"2020-12-10T22:46:26.306Z","1.12.0":"2020-12-16T15:58:57.101Z","1.12.1":"2020-12-17T13:02:24.383Z","1.13.0":"2020-12-28T11:03:17.099Z","1.14.0":"2020-12-31T19:29:13.602Z","1.15.0":"2021-01-05T00:31:05.936Z","1.16.0":"2021-01-28T22:49:39.673Z","1.16.1":"2021-01-29T02:20:23.718Z","1.17.0":"2021-02-20T19:20:46.923Z","1.18.0":"2021-02-28T19:34:53.801Z","1.20.0":"2021-03-09T12:50:21.592Z","1.20.1":"2021-03-12T01:23:58.914Z","1.20.2":"2021-03-23T23:03:17.694Z","1.21.0":"2021-04-01T10:02:46.519Z","1.22.0":"2021-04-08T11:55:16.733Z","1.23.0":"2021-05-01T00:47:38.054Z","1.24.0":"2021-05-10T22:02:32.419Z","1.25.0":"2021-05-13T01:26:30.095Z","1.26.0":"2021-05-20T22:07:00.769Z","1.26.1":"2021-05-20T23:35:48.895Z","1.26.2":"2021-05-21T00:38:45.344Z","1.26.3":"2021-05-21T21:08:47.598Z","1.27.0":"2021-05-22T23:42:50.676Z","1.27.1":"2021-05-23T00:36:13.369Z","1.28.0":"2021-05-31T18:12:48.294Z","1.28.1":"2021-06-08T23:55:42.672Z","1.28.2":"2021-06-09T00:37:28.958Z","1.29.0":"2021-06-12T02:29:55.609Z","1.29.1":"2021-06-12T19:43:29.740Z","1.30.0":"2021-09-04T13:00:47.717Z","1.30.1":"2021-09-05T11:14:28.120Z","1.31.0":"2021-10-06T01:24:16.054Z","1.32.0":"2021-11-26T17:48:06.072Z","1.33.0":"2021-12-23T22:05:08.914Z","1.34.0":"2022-11-20T14:17:05.254Z"},"maintainers":[{"name":"zach-geek","email":"zach.geek@gmail.com"}],"description":"Toolkit to create GUI similar to VARTISTE","homepage":"https://vartiste.xyz/docs.html","keywords":["VR","aframe","vartiste","aframe-component"],"repository":{"type":"git","url":"git+https://gitlab.com/zach-geek/vartiste.git"},"author":{"name":"Zach Capalbo"},"bugs":{"url":"https://gitlab.com/zach-geek/vartiste/issues"},"license":"Apache-2.0","readme":"# VARTISTE Toolkit\n\nThe VARTISTE toolkit is a collection of components developed while creating\n[VARTISTE](https://vartiste.xyz). I've compiled them into a stand-alone module\nin the hopes that it might help folks to jump start their own projects.\n\n# Installation / Use\n\nThe easiest way to use it is to include the `.js` file from a CDN, such as\nunpkg, specifying the version using _@version_:\n\n```html\n<html>\n<head>\n  <script src=\"https://unpkg.com/aframe-vartiste-toolkit@1.32.0/vartiste-toolkit.js\"></script>\n</head>\n...\n</html>\n```\n\nLatest Version:\n[![NPM Version](https://img.shields.io/npm/v/aframe-vartiste-toolkit.svg?style=for-the-badge&logo=npm&label=)](https://www.npmjs.com/package/aframe-vartiste-toolkit)\n\nIncluding the javascript file automatically registers the components and\nsystems.\n\n**Note:** You can access the most up to date version using _@latest_, but this\nis not recommended as it may cause unexpected changes.\n\n## New Project vs. Existing Project\n\nWhen creating a new project, I recommend pulling the entirety of\naframe-vartiste-toolkit. The toolkit contains a wide variety of features;\nsome components and systems rely on others for full functionality. Including\nthe entire toolkit allows components and systems to work together to their\nfull extent.\n\nIf you're bringing aframe-vartiste-toolkit into an existing project, you can\neither [bring in specific pieces of the toolkit](#customization), or you can\nbring in the whole thing. If possible, I recommend pulling in the whole toolkit,\nsince components may depend on other components or systems. If there's a concern\nfor naming or functionality conflicts, most components can also operate on their\nown.\n\n# Toolkit Overview\n\nThe *aframe-vartiste-toolkit* contains a wide variety of elements. It's built by\nexporting every little bit and piece of the [VARTISTE](https://vartiste.xyz) app.\nExploring [VARTISTE](https://vartiste.xyz) and the [VARTISTE source\ncode](https://gitlab.com/zach-geek/vartiste) is ultimately the best way to\nsee what's available and how it works. Nonetheless, I've written some\ndocumentation as a best-spare-time-effort. Here are some of the essentials to get\nyou started.\n\n## Philosophy and Terms\n\nVARTISTE leans pretty heavily into the entity-component-system framework that\na-frame makes available; it consists mostly of components, which use systems when\nneeded, and can be attached to entities pretty readily. Many components also spawn\ntheir own children entities.\n\nThere are a few notable exceptions in the form of utility classes, such as\n[`VARTISTE.Util`](#util.js) and [`VARTISTE.Undo`](#undo.js). These utility classes\ncan be used when creating components or anywhere you'd like in your Javascript code.\nThey are exposed under the VARTISTE object, which is created as a property in the\nglobal `window`. For instance, to access the\n`whenLoaded` method of [`Util`](#util.js), you can call\n`VARTISTE.Util.whenLoaded(...)` anywhere in your code.\n\nMost components (but not all) respond correctly to updates via\n`setAttribute()`; fewer things respond correctly to `remove()` so if you\nrun into issues, double check the docs here or the source code.\n\nOne extension to the ECS framework in VARTISTE are \"component systems\", created\nvia [`VARTISTE.Util.registerComponentSystem`](#util.js). These are basically\ncomponents for `a-scene` which get automatically attached (like systems do).\nThey have the full schema and update abilities of components, with the\nauto-attach convenience of systems. These are registered as both systems _and_\ncomponents and can be accessed either by the scene `components` object\n(e.g., `sceneEl.components[\"COMPONENT NAME\"]`) or the scene `systems` object\n(e.g., `sceneEl.systems[\"COMPONENT NAME\"]`) within your code.\n\n## UI Components\n\nVARTISTE has a quick-and-dirty user interface, focused around the\n[`icon-button`](#icon-button). These are usually collected into an\n[`icon-row`](#icon-row), where they're automatically laid out\nhorizontally. Most clickable elements have a [`tooltip`](#tooltip),\nwhich are readable by the built-in [text-to-speech](#speech.js)\nsystem.\n\nIn addition to [`icon-button`s](#icon-button), there are [`edit-field`s](#edit-field)\nfor text input and [`lever`s](#lever) for adjusting values.\n\nAll of these components are arranged on a [`shelf`](#shelf) which provides a\nbackground and frame. Shelves can also be closed or pinned to a controller for\neasy workspace management.\n\n## User Rig\n\nI created VARTISTE's user rig layout based on a laser-pointer type interface.\nYou can incorporate the entire rig with the [`vartiste-user-root`](#vartiste-user-root)\ncomponent. It includes:\n\n- Automatic \"Press any key to reset orientation\" when entering VR.\n- Cool \"VR Goggles\" that show up in the spectator camera (but not during normal\n  display)\n- Ultra leap hand tracking\n- [`hand-action-tooltip`](#hand-action-tooltip) context sensitive button help\n  tied to the controllers\n- WebXR controller-only mode. I.e., you can use you controllers without your\n  headset, but just displaying on the desktop. Uses the [`xr-controllers`](#xr-controllers.js) system\n- Controller motion smoothing by default. Really improves experiences for jumpy controllers (*cough*ReverbG2*cough*)\n\nNote this user rig uses the\n[`webxr-motion-controller`](#webxr-motion-controller) and\n[`webxr-laser`](#webxr-laser) components rather than the a-frame built-in\n`laser-controls`. I found the [webxr-input-profiles\nmotion-controllers](https://github.com/immersive-web/webxr-input-profiles) to be\nmore consistent and up-to-date than the built-in a-frame components, so I\nbuilt the [`webxr-input-profiles`](#webxr-input-profiles) system to take advantage\nof that.\n\n## Interaction Components\n\nUser interaction is built around laser-control-type raycasting. Interactive\nelements have the `clickable` HTML class set, which makes them visible to the\nraycasters. `click` events are emitted when these elements are clicked.\n\nEvery `clickable` entity, by default, can also be grabbed and moved. Grabbing\nand moving is handled via the [`manipulator`](#manipulator) component, which\nis installed on the user motion controllers or mouse controls. More info can\nbe found in the documentation for [`manipulator`](#manipulator).\n\nThere are also a bunch of built-in constraints, which can be set on entities to\nrestrict how they move when grabbed. For instance\n[`manipulator-weight`](#manipulator-weight) makes entities feel \"heavy\" by\nslowing down their movement when grabbed.\n\n## Drawing Components\n\n[VARTISTE](https://vartiste.xyz) is, of course, a drawing and image editing\napplication. I've brought many drawing components into the toolkit to\nallow easily adding drawing to other A-Frame applications.\n\nThe easiest way to add drawing to your app is to add the\n[`drawable`](#drawable) component to whatever you want to be able to draw on,\nand the [`hand-draw-tool`](#hand-draw-tool) component to whichever raycasters\nyou want to be able to draw. These are already set up if you use the\n[`vartiste-user-root`](#vartiste-user-root) component. Additionally, you can\ncreate [`pencil-tool`](#pencil-tool) components to create grabbable pencils that\ncan be easier to use in VR.\n\nYou can create your own brushes with the [`set-brush`](#set-brush) component.\nScene-wide drawing parameters are managed by the\n[`paint-system`](#paint-system).\n\n## Other cool stuff\n\nThere are lots of other nifty components and systems, for instance\n[`canvas-fx`](#canvas-fx), which lets you quickly apply special effects to a\ncanvas, or [`glb-exporter`](#glb-exporter) which will let you download any\narbitrary entity or `THREE.Object3D` as a glb file in a single function call.\nThere's even a PhysX-based [physics system](#physics.js)!\n\nUltimately, the best way to find out everything that's available is to read\nthrough these documents, play around with the examples and VARTISTE itself, and\nfailing that, to read the source code.\n\nAlso, VARTISTE uses a bunch of premade environments. These are packaged separately\nin the [aframe-enviropacks](https://www.npmjs.com/package/aframe-enviropacks) package.\n\n## Assets\n\nAssets required for some of the basic component use are automatically included\nby the javascript source file.\n\nIf you want to include *all* VARTISTE assets in your project, you will need an\n`a-asset` with a `vartiste-assets` property, like this:\n\n```html\n<a-scene>\n  <a-assets>\n    <!-- Your assets ... -->\n    <a-asset vartiste-assets=\"\"></a-asset>\n  </a-assets>\n  <!-- Rest of your scene, etc -->\n</a-scene>\n```\n\n## Customization\n\nYou can optionally customize which components and systems are registered by the\naframe-vartiste-toolkit by setting the `VARTISTE_TOOLKIT` variable *before* the\nvartiste-toolkit.js file is loaded. `VARTISTE_TOOLKIT` should either be `undefined`\n(default) or be an object having any of the following properties:\n\n- `excludeComponents`: Array of strings specifying which components, systems, or\n  systemComponents specifically to exclude from being registered\n- `includeComponents`: Array of strings specifying which components, systems, or\n  systemComponents to be registered. All other components, systems, and\n  systemComponents will be excluded.\n- `excludeFiles`: Array of strings specifying all aframe-vartiste-toolkit source\n  code files (from [the component reference](https://vartiste.xyz/docs.html)) to\n  exclude entirely from registration. All components, systems, and\n  systemComponents in those files will *not* be registered. Any classes in those\n  files will not be defined.\n- `includeFiles`: Array of strings specifying which aframe-vartiste-toolkit\n  source code files (from [the component\n  reference](https://vartiste.xyz/docs.html)) to include in registration. All\n  components, systems, and systemComponents, and classes in other files will be\n  excluded.\n- `assetUrl`: VARTISTE Toolkit assets will be fetched from\n  `assetUrl/assets/####.###`. Use this option if you want to use webpack and\n  have a custom public-facing URL\n- `replaceTextWithTroikaText`: If set to `true`, it will completely replace the\n  built-in AFRAME `text` component with a shim that will convert all `text` to\n  `troika-text`. The shim will automatically convert all `text` properties to\n  equivalent `troika-text` properties, and handle updates and removal. No\n  changes to code using the `text` component should be necessary. If set to\n  `false` the `text` component will be left at the AFRAME default. If left at\n  the default value of `'auto'`, the toolkit will try to guess whether you want\n  the shim or not by looking at the `includeComponents` and `excludeComponents`\n  values.\n\n## Component Reference\n\nThe full API and component reference can be found at\n[https://vartiste.xyz/docs.html](https://vartiste.xyz/docs.html). Please note\nthat it is still under construction. The source code is available as well at\n[https://gitlab.com/zach-geek/vartiste](https://gitlab.com/zach-geek/vartiste),\nand contributions, both code-wise and documentation-wise are welcome.\n\n# Examples\n\n## Example Scene\n\n```html\n<!DOCTYPE html>\n<html>\n\n<head>\n  <title>VARTISTE Toolkit Demo</title>\n  <script src=\"https://aframe.io/releases/1.1.0/aframe.js\"></script>\n  <!-- <script src=\"https://aframe.io/releases/1.0.4/aframe.js\"></script> -->\n  <!-- You can specify components / systems, or files to exclude from being registered -->\n  <script>VARTISTE_TOOLKIT = {\n      /*excludeComponents: [\"frame\"], */ // Will exclude \"frame\" component\n      /*includeComponents: [\"shelf\", \"hdri-environment\"], */ // Will include *ONLY* the shelf component and hdri-environment system\n      /*excludeFiles: ['icon-button'], */ // Will exclude all components found in  aframe-vartiste-toolkit source file 'icon-button.js'\n      /*includeFiles: ['icon-button'], */ // Will include *only* the components found in  aframe-vartiste-toolkit source file 'icon-button.js'\n      /*assetUrl: 'https://example.com:8080/', */ // Will load vartiste assets from https://example.com:8080/ rather than the script's location\n    }</script>\n  <!--Just include the toolkit js file-->\n  <script src=\"https://unpkg.com/aframe-vartiste-toolkit@latest/vartiste-toolkit.js\"></script>\n  <link rel=\"icon\" href=\"/assets/favicon.png\">\n</head>\n\n<body>\n  <a-scene icon-button=\"shader: matcap\" renderer=\"colorManagement: true; physicallyCorrectLights: true\" xr-controllers-only=\"addUseControllerButton: true\" spectator-camera=\"camera: #spectator-camera; state: SPECTATOR_CAMERA\">\n    <a-assets timeout=\"600000\">\n      <canvas height=\"768\" id=\"draw-canvas-asset\" width=\"1024\"></canvas>\n\n      <!-- You can easily load your own HDRI if you want! -->\n      <a-asset id=\"hdr\" src=\"asset/studio.hdr\"></a-asset>\n\n      <!--You can use all the default VARTISTE assets with the vartiste-asset\n      component. Otherwise, only the ones needed for other components are\n      included-->\n      <a-asset vartiste-assets=\"\"></a-asset>\n\n      <!-- You can override some built-in components by defining mixins -->\n      <a-mixin id=\"lever-grip\" material=\"color: #a2c4fa\"></a-mixin>\n      <a-mixin id=\"shelf-bg\" materia=\"shader: standard\"></a-mixin>\n    </a-assets>\n\n    <!-- HDRIs are an easy way to get nice lighting and backgrounds really quickly -->\n    <a-sky color=\"#333\" hdri-environment=\"src: #hdr\"></a-sky>\n\n    <a-entity light=\"type: hemisphere; color: #eee; groundColor: #333; intensity: 0.6\"></a-entity>\n    <a-entity light=\"type: ambient; color: #fff; intensity: 0.6\"></a-entity>\n\n    <!-- vartiste-user-root sets up the default laser pointer / mouse & keyboard\n    interactions. If you want to define your own user setup, you'll want to make\n    sure to include the manipulator components on both of the hand components to\n    ensure that things can be grabbed and resized. -->\n    <a-entity vartiste-user-root=\"\"></a-entity>\n\n    <a-entity position=\"0 0 -2.5\">\n\n      <!--A shelf provides a definitive place to put things. \"grab-root\" ensures\n      that grab-and-move events propogate to the whole shelf-->\n      <a-entity class=\"grab-root\" shelf=\"\">\n        <!--icon-buttons position themselves in a row automatically. So we just\n        position this outer entity where we want the row to start-->\n        <a-entity position=\"-1.5 1.1 0\" icon-row=\"\">\n          <!--Simply pass an asset to icon-button, and boom, you've got an icon\n          button that responds to a wide range of clicks-->\n          <a-entity icon-button=\"#asset-eye\" onclick=\"alert('click')\" tooltip=\"Run Javascript onclick handler\"></a-entity>\n          <!--You can make it a toggle button by adding the toggle-button\n          component-->\n          <a-entity icon-button=\"#asset-oven\" toggle-button=\"\" tooltip=\"Toggle Me\"></a-entity>\n          <!--You can style it, too-->\n          <a-entity button-style=\"color: #ed8607; clickColor: #8607ed; intersectedColor: #07ed86\" icon-button=\"\" tooltip=\"Look at the colors! Woah!\" onclick=\"this.sceneEl.systems['canvas-fx'].applyFX('invert', document.getElementById('draw-canvas-asset'))\"></a-entity>\n          <!--Add the system-click-action to easily call methods of systems-->\n          <a-entity icon-button=\"#asset-account-voice\" system-click-action=\"system: toolkit-demo; action: speak\" tooltip=\"Speak entered text if enabled\"></a-entity>\n          <!--Or add component properties directly for the toggle buttons to\n          toggle-->\n          <a-entity icon-button=\"#asset-check-outline\" toggle-button=\"target: a-scene; component: speech; property: speak\" tooltip=\"Toggle Speaking Enabled\"></a-entity>\n\n          <!-- Easily export entities or even the entire scene to a GLB file -->\n          <a-entity icon-button=\"#asset-floppy\" tooltip=\"Download this scene as GLB\" system-click-action=\"system: glb-exporter; action: downloadGLB\"></a-entity>\n\n          <!-- Use the VARTISTE undo system to easily undo changes, too -->\n          <a-entity icon-button=\"#asset-undo\" tooltip=\"Undo\" onclick=\"VARTISTE.Undo.undo()\"></a-entity>\n\n          <a-entity icon-button=\"#asset-help-circle-outline\" system-click-action=\"system: toolkit-demo; action: help\" tooltip=\"VARTISTE Toolkit Documentation\"></a-entity>\n        </a-entity>\n        <a-entity position=\"0 0.5 0\" text=\"width: 3.4; wrapCount: 35; value: Welcome to the VARTISTE toolkit demo\"></a-entity>\n        <a-entity>\n\n          <!--You can use edit fields which pop up a keyboard-->\n          <a-entity edit-field=\"type: string; tooltip: Edit a string!\" id=\"demo-input\" text=\"width: 2; wrapCount: 20; value: default text\"></a-entity>\n        </a-entity>\n        <a-entity position=\"0 -0.6 0\">\n\n          <!--You can also have a numerical edit field-->\n          <a-entity edit-field=\"type: number; tooltip: Edit a number\" text=\"width: 2; wrapCount: 4\"></a-entity>\n        </a-entity>\n\n        <!-- You can make interactables, like this lever -->\n        <a-entity lever=\"valueRange: 2 0; target: a-sky; component: hdri-environment; property: exposure; initialValue: 0.724\" position=\"-1.621 -0.917 0\" scale=\"2 2 2\" tooltip=\"Adjust Lighting\"></a-entity>\n      </a-entity>\n    </a-entity>\n\n    <!--You can put a frame around anything with a geometry. The frame can optionally be closeable, or pinnable to your hand-->\n    <a-image frame=\"\" position=\"0 2 -1\" src=\"#asset-vartiste\" tooltip=\"Here's a floating frame!\" tooltip-style=\"offset: 0 0.5 0\"></a-image>\n\n    <!--Adding the clickable class to anything makes it grabbable-->\n    <a-entity class=\"clickable\" position=\"-3.0 0 -2.5\" text=\"width: 2.4; wrapCount: 25; value: Desktop Controls:\\n-Left Click: Click buttons\\n-Right Mouse Buton Drag: Look around\\n-Shift+Left Mouse Button Drag: Move things\\n-WASD: Move around\"></a-entity>\n\n    <!--You can use some of the VARTISTE drawing tools, too!-->\n    <a-entity id=\"draw-canvas-demo\" class=\"clickable\"\n              drawable=\"canvas:#draw-canvas-asset\" frame=\"\"\n              geometry=\"primitive: plane; width: 2; height: 1.75\"\n              material=\"shader: flat; src: #draw-canvas-asset; npot: true\"\n              position=\"3.1 0 -2.4\" tooltip=\"Draw Here\" tooltip-style=\"offset: 0 0.75 0\"></a-entity>\n    <a-entity class=\"clickable\" color-picker=\"\" geometry=\"primitive: circle; radius: 1; height: 1.75\" position=\"3.1 2 -2.4\"></a-entity>\n    <a-entity position=\"4.5 2 -2.4\" icon-button=\"#asset-brush\" tooltip=\"Change brush\" set-brush=\"brushType: ImageBrush; image: #asset-brush; color: blue; scale: 5; activationEvent: click\"></a-entity>\n    <a-entity position=\"3.1 0 -1.4\" rotation=\"90 0 0\" scale=\"2 2 2\" pencil-tool=\"\" tooltip=\"Grabbable Pencil\" set-brush=\"brushType: ImageBrush; image: #asset-lead-pencil; color: green; scale: 5\"></a-entity>\n\n    <!-- There's a few handy default constraints to restrict how things can be grabbed -->\n    <a-sphere class=\"clickable\"\n              constrain-to-sphere=\"\"\n              manipulator-weight=\"type: slow; weight: 0.9\"\n              grab-options=\"undoable: true\"\n              material=\"shader: standard; roughness: 0.3; metalness: 0.7\" position=\"0 0.4 -0.4\" radius=\"0.1\"></a-sphere>\n\n    <a-entity id=\"spectator-camera\" camera=\"\" position=\"2 1 1\" rotation=\"0 80 0\" camera-layers=\"layers: spectator\"></a-entity>\n\n    <!-- The toolkit also includes a PhysX-backed physics engine, with lots of nifty utilities. See https://glitch.com/edit/#!/fascinated-hip-period?path=index.html for a full demo! -->\n    <a-box material=\"shader: standard; color: white\" width=\"0.3\" height=\"0.3\" depth=\"0.3\"\n           position=\"-2.276 0.3 0.165\"\n           physx-body=\"type: static\"></a-box>\n    <a-entity icon-button=\"#asset-nudge-brush\" tooltip=\"Start Physics\" system-click-action=\"system: physx; action: startPhysX\" position=\"-2.105 0.3 0.13\" rotation=\"0 90 0\" scale=\"0.6 0.6 0.6\"></a-entity>\n    <a-entity gltf-model=\"#asset-hand\"\n              preactivate-tooltip=\"Press Start Physics below!\"\n              position=\"-2.276 1 0.165\"\n              class=\"clickable\"\n              physx-body=\"type: dynamic\"></a-entity>\n  </a-scene>\n</body>\n</html>\n```\n\n[View the demo on CodePen](https://codepen.io/zach-capalbo/pen/oNbKagV)\n\n<p class=\"codepen\" data-height=\"330\" data-theme-id=\"light\" data-default-tab=\"html,result\" data-user=\"zach-capalbo\" data-slug-hash=\"oNbKagV\" data-preview=\"true\" style=\"height: 330px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;\" data-pen-title=\"aframe-vartiste-toolkit-demo\">\n  <span>See the Pen <a href=\"https://codepen.io/zach-capalbo/pen/oNbKagV\">\n  aframe-vartiste-toolkit-demo</a> by Zachary Capalbo (<a href=\"https://codepen.io/zach-capalbo\">@zach-capalbo</a>)\n  on <a href=\"https://codepen.io\">CodePen</a>.</span>\n</p>\n<script async src=\"https://static.codepen.io/assets/embed/ei.js\"></script>\n\n## Physics playground\n\nThe [aframe-vartiste-toolkit physics playground](https://glitch.com/edit/#!/fascinated-hip-period?path=index.html%3A1%3A0) is a good example of using the toolkit for projects other than painting or drawing. It's also the best example of the [physics](#physics.js) components so far.\n\n# Source Code\n\nFor more information, and to better understand VARTISTE, you can also read through the source code:\n\n[https://gitlab.com/zach-geek/vartiste/-/blob/release/src/vartiste-toolkit.js](https://gitlab.com/zach-geek/vartiste/-/blob/release/src/vartiste-toolkit.js)\n","readmeFilename":"Readme.md"}