{"_id":"kompozr","_rev":"43-3ccb25cbb3d92a84c0240e1b4045dfba","name":"kompozr","dist-tags":{"latest":"1.5.0"},"versions":{"1.0.0":{"name":"kompozr","version":"1.0.0","keywords":["discord","discord.js","ui","components","interaction","discord-bot","builder","componentsV2"],"author":{"name":"silentadv"},"license":"MIT","_id":"kompozr@1.0.0","maintainers":[{"name":"silentadv","email":"developersilent16@gmail.com"}],"dist":{"shasum":"9014a8f31632d0a6d050eaeeb3d47d1424eb4134","tarball":"https://registry.npmjs.org/kompozr/-/kompozr-1.0.0.tgz","fileCount":23,"integrity":"sha512-hrGgvaWObFFQ+Bqi2o0hXmHRlVC5v58XmPBqNFx5YkcLU58jRBDz7Hbp/QzF0XPzw6GPmLTz2h8aGHZaT/3yJg==","signatures":[{"sig":"MEUCIQDYOgdz7e3IrjhH1HBVPWf/HAYELku+5qMV4FvbPiVPtAIgdTWTbMNqb2/iCBD7K97PBKZL+LKUONAop+Wz1lKDTFI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15675},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"a87d0985af4a92bfc67fe628f4677877f0daa594","scripts":{"dev":"tsup src/index.ts --watch","build":"tsup src/index.ts","clean":"rm -rf dist","prepare":"npm run build"},"_npmUser":{"name":"silentadv","actor":{"name":"silentadv","type":"user","email":"developersilent16@gmail.com"},"email":"developersilent16@gmail.com"},"_npmVersion":"10.9.2","description":"🧩 A clean UI layer for Discord bots using discord.js components","directories":{},"sideEffects":false,"_nodeVersion":"22.16.0","dependencies":{"discord.js":"^14.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.2.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/kompozr_1.0.0_1751747747162_0.31667997202883247","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"kompozr","version":"1.0.1","keywords":["discord","discord.js","ui","components","interaction","discord-bot","builder","componentsV2"],"author":{"name":"silentadv"},"license":"MIT","_id":"kompozr@1.0.1","maintainers":[{"name":"silentadv","email":"developersilent16@gmail.com"}],"dist":{"shasum":"68cd90f254be6c93d7529b185f51cf15cf81750f","tarball":"https://registry.npmjs.org/kompozr/-/kompozr-1.0.1.tgz","fileCount":23,"integrity":"sha512-4VdJKb9+tIxIrC+R4JRojw1y2pz3NQH72CR3jTRJKsz2lx/2OOMSZcdLaCk5sdeTQh0vaNv2SrlKCFymwB0HmQ==","signatures":[{"sig":"MEUCIFSn+WlcHThrY1eBF5ltZolJGcX92zuc7qDjlyC/UpLlAiEA32vSjedCBBRe2yCDmIPo+nrsWMLI1pQLTwOUtQ0sops=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15675},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"b1f3b352376fb8c873987b0ec3ea6d5bf2ff7234","scripts":{"dev":"tsup src/index.ts --watch","build":"tsup src/index.ts","clean":"rm -rf dist","prepare":"npm run build"},"_npmUser":{"name":"silentadv","actor":{"name":"silentadv","type":"user","email":"developersilent16@gmail.com"},"email":"developersilent16@gmail.com"},"_npmVersion":"10.9.2","description":"🧩 A clean UI layer for Discord bots using discord.js components","directories":{},"sideEffects":false,"_nodeVersion":"22.16.0","dependencies":{"discord.js":"^14.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.2.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/kompozr_1.0.1_1751759680754_0.43896245332418005","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"kompozr","version":"1.0.2","keywords":["discord","discord.js","ui","components","interaction","discord-bot","builder","componentsV2"],"author":{"name":"silentadv"},"license":"MIT","_id":"kompozr@1.0.2","maintainers":[{"name":"silentadv","email":"developersilent16@gmail.com"}],"dist":{"shasum":"db9df4343415fd6520ed3b15dfe68b0b58abbac3","tarball":"https://registry.npmjs.org/kompozr/-/kompozr-1.0.2.tgz","fileCount":23,"integrity":"sha512-zeUATdPudWHum6FoICg/KDDW1qBktIuJuAlXeCOp23qhETVJJ9f3jyZs/0HgIU5gCZRlc+VMFej1OQ4E7gabPg==","signatures":[{"sig":"MEQCIGS1/UKtUQIkpiDugPWtCwkJggq8oO04E82KVo7or4I7AiAEGn3dOOMS5oyDe88/TAnkmdTdUe9g3IJZErqxFp5caw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15643},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"b1f3b352376fb8c873987b0ec3ea6d5bf2ff7234","scripts":{"dev":"tsup src/index.ts --watch","build":"tsup src/index.ts","clean":"rm -rf dist"},"_npmUser":{"name":"silentadv","actor":{"name":"silentadv","type":"user","email":"developersilent16@gmail.com"},"email":"developersilent16@gmail.com"},"_npmVersion":"10.9.2","description":"🧩 A clean UI layer for Discord bots using discord.js components","directories":{},"sideEffects":false,"_nodeVersion":"22.16.0","dependencies":{"discord.js":"^14.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.2.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/kompozr_1.0.2_1751759886080_0.7626125051916253","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"kompozr","version":"1.0.3","keywords":["discord","discord.js","ui","components","interaction","discord-bot","builder","componentsV2"],"author":{"name":"silentadv"},"license":"MIT","_id":"kompozr@1.0.3","maintainers":[{"name":"silentadv","email":"developersilent16@gmail.com"}],"dist":{"shasum":"ea4dc04e69232e2c1ffdedaa8dd45fc5752243e4","tarball":"https://registry.npmjs.org/kompozr/-/kompozr-1.0.3.tgz","fileCount":7,"integrity":"sha512-H3oGf9cCvuzFwZKuMDnQqcsmEPXznzJPAmIpHvn+65kjHnXzpKtglVrjobHn1lpBu1ygE+k2bAugt/8/sLiumA==","signatures":[{"sig":"MEUCIGOuzitOLhMsFvRu40I4kQiaoid2tfNRo/zfCfAaFJYUAiEAyiNgHL/9/9SymtX2F9BvQqtiR1Ev34NbirkQQ2AnZVY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2363031},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"b1f3b352376fb8c873987b0ec3ea6d5bf2ff7234","scripts":{"dev":"tsup src/index.ts --watch","build":"tsup src/index.ts","clean":"rm -rf dist"},"_npmUser":{"name":"silentadv","actor":{"name":"silentadv","type":"user","email":"developersilent16@gmail.com"},"email":"developersilent16@gmail.com"},"_npmVersion":"10.9.2","description":"🧩 A clean UI layer for Discord bots using discord.js components","directories":{},"sideEffects":false,"_nodeVersion":"22.16.0","dependencies":{"discord.js":"^14.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.2.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/kompozr_1.0.3_1751762091216_0.6794784607207731","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"kompozr","version":"1.0.4","keywords":["discord","discord.js","ui","components","interaction","discord-bot","builder","componentsV2"],"author":{"name":"silentadv"},"license":"MIT","_id":"kompozr@1.0.4","maintainers":[{"name":"silentadv","email":"developersilent16@gmail.com"}],"dist":{"shasum":"b34acfc8e84862ffb4abf06f024bc157736585ee","tarball":"https://registry.npmjs.org/kompozr/-/kompozr-1.0.4.tgz","fileCount":7,"integrity":"sha512-m2Xk/JsHwxSqszbrd7iuerSnKYM+5OFcoXiK8RS2uqQ0+5fnKCeFztUAVpx67bvYpcQT9HKAsAkzjPV0j+YRfQ==","signatures":[{"sig":"MEUCID+YcPIz/vDec1WFFQsZqmHC0UrLUhMKkvN+SasZvG9gAiEAqLQSMCsLjZ8R/QydYcatrG+o5ju4RWSDpFfDQ12SMpA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2365309},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"b1f3b352376fb8c873987b0ec3ea6d5bf2ff7234","scripts":{"dev":"tsup src/index.ts --watch","build":"tsup src/index.ts","clean":"rm -rf dist"},"_npmUser":{"name":"silentadv","actor":{"name":"silentadv","type":"user","email":"developersilent16@gmail.com"},"email":"developersilent16@gmail.com"},"_npmVersion":"10.9.2","description":"🧩 A clean UI layer for Discord bots using discord.js components","directories":{},"sideEffects":false,"_nodeVersion":"22.16.0","dependencies":{"discord.js":"^14.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.2.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/kompozr_1.0.4_1751766093414_0.44974541097876775","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"kompozr","version":"1.0.6","keywords":["discord","discord.js","ui","components","interaction","discord-bot","builder","componentsV2"],"author":{"name":"silentadv"},"license":"MIT","_id":"kompozr@1.0.6","maintainers":[{"name":"silentadv","email":"developersilent16@gmail.com"}],"dist":{"shasum":"29b9c06042c2e1335adccf6775558dd3b978c57a","tarball":"https://registry.npmjs.org/kompozr/-/kompozr-1.0.6.tgz","fileCount":10,"integrity":"sha512-Cme6BuPgbJunrxaPO6tVCw/KKUuouW/7FQZ4zi8fmaSJjrDLXqTwgyGIH7mQCDgA+3AyVVmGzTDZrGBdFBTTXw==","signatures":[{"sig":"MEUCIHmgdYG5bV03J0SPNTGYsbQt+UynNpF+KXKCJMhv7gENAiEAoR+a3Nj+nbASqP2M/qeaQ7H/Sqjq+U55S+yGYywEnwI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2386234},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"45a70e9604838bfd570878cb5da7eba2579ffcb0","scripts":{"dev":"tsup src/index.ts --watch","build":"tsup src/index.ts","clean":"rm -rf dist"},"_npmUser":{"name":"silentadv","actor":{"name":"silentadv","type":"user","email":"developersilent16@gmail.com"},"email":"developersilent16@gmail.com"},"_npmVersion":"10.9.2","description":"🧩 A clean UI layer for Discord bots using discord.js components","directories":{},"sideEffects":false,"_nodeVersion":"22.16.0","dependencies":{"discord.js":"^14.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.2.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/kompozr_1.0.6_1751998816941_0.8563089140227691","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"kompozr","version":"1.0.7","keywords":["discord","discord.js","ui","components","interaction","discord-bot","builder","componentsV2"],"author":{"name":"silentadv"},"license":"MIT","_id":"kompozr@1.0.7","maintainers":[{"name":"silentadv","email":"developersilent16@gmail.com"}],"dist":{"shasum":"ecbc07df0025198e46c6756903c0f616b8d77e8b","tarball":"https://registry.npmjs.org/kompozr/-/kompozr-1.0.7.tgz","fileCount":9,"integrity":"sha512-m9btWBn1Ca1KUBUVtcTMeL/T8ebpv7oWVU8sMOoceoijP0URj4NJ4qL9fdqu/cRb81nJjsaRPSoOv2B1Xg5KVw==","signatures":[{"sig":"MEQCICO+WDN+3ZnAT5X+kM2C1qnvSIur4RvKhlJyxcfaBP5rAiAU+oRiQI1uDwMzZlpZNlkWhmN5Wb+q7GQa6XKohj7EXQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2374700},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"45a70e9604838bfd570878cb5da7eba2579ffcb0","scripts":{"dev":"tsup src/index.ts --watch","build":"tsup src/index.ts","clean":"rm -rf dist"},"_npmUser":{"name":"silentadv","actor":{"name":"silentadv","type":"user","email":"developersilent16@gmail.com"},"email":"developersilent16@gmail.com"},"_npmVersion":"10.9.2","description":"🧩 A clean UI layer for Discord bots using discord.js components","directories":{},"sideEffects":false,"_nodeVersion":"22.16.0","dependencies":{"discord.js":"^14.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.2.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/kompozr_1.0.7_1751999009619_0.7102665483126942","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"kompozr","version":"1.1.0","keywords":["discord","discord.js","ui","components","interaction","discord-bot","builder","componentsV2"],"author":{"name":"silentadv"},"license":"MIT","_id":"kompozr@1.1.0","maintainers":[{"name":"silentadv","email":"developersilent16@gmail.com"}],"dist":{"shasum":"e4345edd7fb10ad0148091b3e8a706fa3fdd564a","tarball":"https://registry.npmjs.org/kompozr/-/kompozr-1.1.0.tgz","fileCount":9,"integrity":"sha512-fW+2NiNZkfxHX8jecIawWUYbYJgfkuAIOTHar2+x47NHOTBT+unE8K9I4evyNgcndBcnbfrszeLzsBTnoMoryQ==","signatures":[{"sig":"MEQCIFqMfkLWhJ8qurABZBdsve/aJBm3tynz1xeUa4o8yA0eAiAmkxOvfTKhE1HRq4Cb3+Gx3XDtdcUQv0qq/7JtsKXh2A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2388330},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"28bf727e064de31420a1e68bb085762be11862ac","scripts":{"dev":"tsx src/index.ts --watch","build":"tsup src/index.ts","clean":"rm -rf dist"},"_npmUser":{"name":"silentadv","email":"developersilent16@gmail.com"},"_npmVersion":"10.9.2","description":"🧩 A clean UI layer for Discord bots using discord.js components","directories":{},"sideEffects":false,"_nodeVersion":"22.16.0","dependencies":{"discord.js":"^14.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^7.2.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/kompozr_1.1.0_1752262283762_0.3413177695285825","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"kompozr","version":"1.1.1","keywords":["discord","discord.js","ui","components","interaction","discord-bot","builder","componentsV2"],"author":{"name":"silentadv"},"license":"MIT","_id":"kompozr@1.1.1","maintainers":[{"name":"silentadv","email":"developersilent16@gmail.com"}],"dist":{"shasum":"d9776158e840d871028e5a69d089789aa55ee786","tarball":"https://registry.npmjs.org/kompozr/-/kompozr-1.1.1.tgz","fileCount":9,"integrity":"sha512-sO36mdE4bkhXToY0ymXBmLTCRx1y4GlYTziksW9fG1/qXGHcY+Pp5In80SEt05gOYFXbdz/tnQDLQ7O4m8kkNA==","signatures":[{"sig":"MEUCIQDfNmZTC2BlRtVm7+BxJvyD4RvXf+92Lj3WGj0fxv3DJQIgavBdF1bv5ikh6NLTFWZjzUVSJMREFCuzC3yTC9K/X0w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2388326},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"96d554b2091986da3cfc7219a12e8698c842d5af","scripts":{"dev":"tsx src/index.ts --watch","build":"tsup src/index.ts","clean":"rm -rf dist"},"_npmUser":{"name":"silentadv","email":"developersilent16@gmail.com"},"_npmVersion":"10.9.2","description":"🧩 A clean UI layer for Discord bots using discord.js components","directories":{},"sideEffects":false,"_nodeVersion":"22.16.0","dependencies":{"discord.js":"^14.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^7.2.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/kompozr_1.1.1_1752263069031_0.2750478480101972","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"kompozr","version":"1.1.2","keywords":["discord","discord.js","ui","components","interaction","discord-bot","builder","componentsV2"],"author":{"name":"silentadv"},"license":"MIT","_id":"kompozr@1.1.2","maintainers":[{"name":"silentadv","email":"developersilent16@gmail.com"}],"dist":{"shasum":"10343cebd0a10dddb911b37a544c889b11ebbb3d","tarball":"https://registry.npmjs.org/kompozr/-/kompozr-1.1.2.tgz","fileCount":9,"integrity":"sha512-wlhsxR/fk7Vp5+p5g1zp8xROpsK5q+35h5vh4UA4XfFjrdFRInYjmXtJ9C3nXuyaatRxl8uWVFfJf8+yf/dJAQ==","signatures":[{"sig":"MEYCIQDU7bjCLMlsV16xyDmU1cORra1emkE6fQkK97ZResmPowIhAMrXKCbCuYXgsCQZfV1fFWnXNBtUJidHSXUmT6Yz9Lz0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2388024},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"56897d36d38c48fb4dcfe8900f77bbe8cf800153","scripts":{"dev":"tsx src/index.ts --watch","build":"tsup src/index.ts","clean":"rm -rf dist"},"_npmUser":{"name":"silentadv","email":"developersilent16@gmail.com"},"_npmVersion":"10.9.2","description":"🧩 A clean UI layer for Discord bots using discord.js components","directories":{},"sideEffects":false,"_nodeVersion":"22.17.0","dependencies":{"discord.js":"^14.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^7.2.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/kompozr_1.1.2_1756062030406_0.4519807462290828","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"kompozr","version":"1.2.0","keywords":["discord","discord.js","ui","components","interaction","discord-bot","builder","componentsV2"],"author":{"name":"silentadv"},"license":"MIT","_id":"kompozr@1.2.0","maintainers":[{"name":"silentadv","email":"developersilent16@gmail.com"}],"dist":{"shasum":"f5b04e5c46777e3998fcdd3d0662c50217fbb259","tarball":"https://registry.npmjs.org/kompozr/-/kompozr-1.2.0.tgz","fileCount":9,"integrity":"sha512-/9kvDeaF3seuSfawIV175s5Xqw0SBz4IXuXtzAAPZGFTpE95UCKrP+wy2JNZ5Nhx+A8JvNxhx4rFRu8TFBEG6w==","signatures":[{"sig":"MEYCIQCFqQwh+j4rAmm6qsD5j8z8VTndfzHb0XXEt1FtOskkdAIhAOCDd2h0lwdrf9URUsKdEilaTaUihwj5O/ZYCpuT8CJ+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":103297},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"c160306c12e6f11d70fc77a4f14284538de3c3c8","scripts":{"dev":"tsx src/index.ts --watch","build":"tsup src/index.ts","clean":"rm -rf dist"},"_npmUser":{"name":"silentadv","email":"developersilent16@gmail.com"},"_npmVersion":"10.9.3","description":"🧩 A clean UI layer for Discord bots using discord.js components","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{"discord-api-types":"^0.38.26"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^7.2.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/kompozr_1.2.0_1759174617378_0.14522033695552006","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"kompozr","version":"1.2.1","keywords":["discord","discord.js","ui","components","interaction","discord-bot","builder","componentsV2"],"author":{"name":"silentadv"},"license":"MIT","_id":"kompozr@1.2.1","maintainers":[{"name":"silentadv","email":"developersilent16@gmail.com"}],"dist":{"shasum":"411aadcbe6b0230a5fae6e3ee12ee681459aba11","tarball":"https://registry.npmjs.org/kompozr/-/kompozr-1.2.1.tgz","fileCount":9,"integrity":"sha512-CqgOZHUVn3hB1j+0dgyWy54AOxv8XGp9D+zcblrpKu4HI1vlAcKECJdcKYproMspD/BdR6dZgwHWs5I+QySQGA==","signatures":[{"sig":"MEYCIQDElT0kP3UVj3UR3ej798VQyz2nEmfSRsbhoCzN7LQeCAIhANSJe6X6J4TIeuSbSbl1vdRnofKR0Me62orN4CW2LBYT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":103299},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"64220cb543338ec77b7d7f90be5855eedf5b5421","scripts":{"dev":"tsx src/index.ts --watch","build":"tsup src/index.ts","clean":"rm -rf dist"},"_npmUser":{"name":"silentadv","email":"developersilent16@gmail.com"},"_npmVersion":"10.9.3","description":"🧩 A clean UI layer for Discord bots using discord.js components","directories":{},"sideEffects":false,"_nodeVersion":"22.19.0","dependencies":{"discord-api-types":"^0.38.26"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^7.2.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/kompozr_1.2.1_1759771560397_0.6160409005179235","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"kompozr","version":"1.2.2","keywords":["discord","discord.js","ui","components","interaction","discord-bot","builder","componentsV2"],"author":{"name":"silentadv"},"license":"MIT","_id":"kompozr@1.2.2","maintainers":[{"name":"silentadv","email":"developersilent16@gmail.com"}],"dist":{"shasum":"79dfd3d62ed33eac9eeaf108ec77bd51274f1863","tarball":"https://registry.npmjs.org/kompozr/-/kompozr-1.2.2.tgz","fileCount":9,"integrity":"sha512-SX7tGQ3v1871jgJhU5ZoN4un9dK+lpyCeZcs5URFm3fX9ruHMoOtIh91ofplo9VjA7aorJ17o1ezjASK8utWxg==","signatures":[{"sig":"MEUCIQD+Rn6+hxq8p1pt5WeFBTQIYNxFbN8/sr8jGGDqQyOULAIgIxvrR45W11EZ+9xKeiGZsgfq/gwS7wFqMlb/EOpzNy4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":105571},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"64220cb543338ec77b7d7f90be5855eedf5b5421","scripts":{"dev":"tsx src/index.ts --watch","build":"tsup src/index.ts","clean":"rm -rf dist"},"_npmUser":{"name":"silentadv","email":"developersilent16@gmail.com"},"_npmVersion":"10.9.3","description":"🧩 A clean UI layer for Discord bots using discord.js components","directories":{},"sideEffects":false,"_nodeVersion":"22.19.0","dependencies":{"discord-api-types":"^0.38.26"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^7.2.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/kompozr_1.2.2_1759771589676_0.7913631408922832","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"kompozr","version":"1.2.3","keywords":["discord","discord.js","ui","components","interaction","discord-bot","builder","componentsV2"],"author":{"name":"silentadv"},"license":"MIT","_id":"kompozr@1.2.3","maintainers":[{"name":"silentadv","email":"developersilent16@gmail.com"}],"dist":{"shasum":"e6ba0efb46539d50472d8e3a085eac4049cc77e3","tarball":"https://registry.npmjs.org/kompozr/-/kompozr-1.2.3.tgz","fileCount":9,"integrity":"sha512-018z1vehUMDG3MXJjIKeypQh82uhEahN3L7+b1h7AKbzopAzsF6cSyB8OFu5u2dfNUfc7f5xRYKmErx96U2nZA==","signatures":[{"sig":"MEQCIC8/pYyQO30aGg9r0Xj8Uf3TZpyWRA0LRIh5622VMN6cAiAoW40yGu2MtEKM7wgcsHq204XF903Tj5IT3hXLknsXEQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":105441},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"64220cb543338ec77b7d7f90be5855eedf5b5421","scripts":{"dev":"tsx src/index.ts --watch","build":"tsup src/index.ts","clean":"rm -rf dist"},"_npmUser":{"name":"silentadv","email":"developersilent16@gmail.com"},"_npmVersion":"10.9.3","description":"🧩 A clean UI layer for Discord bots using discord.js components","directories":{},"sideEffects":false,"_nodeVersion":"22.19.0","dependencies":{"discord-api-types":"^0.38.26"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^7.2.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/kompozr_1.2.3_1759774779566_0.7079395432539424","host":"s3://npm-registry-packages-npm-production"}},"1.2.4":{"name":"kompozr","version":"1.2.4","keywords":["discord","discord.js","ui","components","interaction","discord-bot","builder","componentsV2"],"author":{"name":"silentadv"},"license":"MIT","_id":"kompozr@1.2.4","maintainers":[{"name":"silentadv","email":"developersilent16@gmail.com"}],"dist":{"shasum":"f0bd1337cefcea4559c98205e1de4cf3ae2044b4","tarball":"https://registry.npmjs.org/kompozr/-/kompozr-1.2.4.tgz","fileCount":9,"integrity":"sha512-SYuObQlwoq0euj5s+4kuFil6PlXNhDKF0ljGtlJHnRJfkeI6AAK5z+ZHxQKl/Z5INdj8ccONSQZudxNxy7bbZQ==","signatures":[{"sig":"MEYCIQDKuCjGVqilxHTi2SKRCwhNyctiUh8efSwJhUYbCniz3AIhAKMc8ZDeTX2IW0KO3DEdoFv7QGTFJk27/Ag4nn29WSn9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106769},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"64220cb543338ec77b7d7f90be5855eedf5b5421","scripts":{"dev":"tsx src/index.ts --watch","build":"tsup src/index.ts","clean":"rm -rf dist"},"_npmUser":{"name":"silentadv","email":"developersilent16@gmail.com"},"_npmVersion":"10.9.3","description":"🧩 A clean UI layer for Discord bots using discord.js components","directories":{},"sideEffects":false,"_nodeVersion":"22.19.0","dependencies":{"discord-api-types":"^0.38.26"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^7.2.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/kompozr_1.2.4_1759976749399_0.981531859205204","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"kompozr","version":"1.3.0","keywords":["discord","discord.js","ui","components","interaction","discord-bot","builder","componentsV2"],"author":{"name":"silentadv"},"license":"MIT","_id":"kompozr@1.3.0","maintainers":[{"name":"silentadv","email":"developersilent16@gmail.com"}],"dist":{"shasum":"80952cae85e1ac96ff41f265e3002c5d05fa79af","tarball":"https://registry.npmjs.org/kompozr/-/kompozr-1.3.0.tgz","fileCount":9,"integrity":"sha512-nCt4F7COUYIfLeNW8ZKg2ucmtwqIdvzyUSOJOoJP9/Dq70jLChUP39pdFCb0BodAODPGq5EaRVZRmVDg1DoB9w==","signatures":[{"sig":"MEYCIQDgKtFeCDmPcRE21HYBk/SG0z9WDGGNUr2K+CYQIPUSxQIhANlFxfYQ+lPTN75Po+E5o2V4Dvtf2N9Hdn2J5vmTt6KF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2501928},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsx src/index.ts --watch","build":"tsup src/index.ts","clean":"rm -rf dist"},"_npmUser":{"name":"silentadv","email":"developersilent16@gmail.com"},"_npmVersion":"10.9.2","description":"🧩 A clean UI layer for Discord bots using discord.js components","directories":{},"sideEffects":false,"_nodeVersion":"22.15.0","dependencies":{"discord.js":"^14.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^7.2.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/kompozr_1.3.0_1768840565127_0.4967331959525849","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"kompozr","version":"1.3.1","keywords":["discord","discord.js","ui","components","interaction","discord-bot","builder","componentsV2"],"author":{"name":"silentadv"},"license":"MIT","_id":"kompozr@1.3.1","maintainers":[{"name":"silentadv","email":"developersilent16@gmail.com"}],"dist":{"shasum":"60bb6da3585386f4d8280926ad11c736611f09ce","tarball":"https://registry.npmjs.org/kompozr/-/kompozr-1.3.1.tgz","fileCount":9,"integrity":"sha512-KnqN9VsbdGfRmsr7qcnZcaGjtaJ5wM3fw+XHqgiuVdZbFYPl7ETZVvZ951cLtjHI/DraZLrk96lDadacW9K1nA==","signatures":[{"sig":"MEYCIQC1ibsAM1WhfWdXaXfqOpBbbOc5j7d5il7njL+UUNNwbgIhAMwf5ojXi7W7YQfPmkpOkRAzVr7taIDTHW2xeDKBVOVV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2501962},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsx src/index.ts --watch","build":"tsup src/index.ts","clean":"rm -rf dist"},"_npmUser":{"name":"silentadv","email":"developersilent16@gmail.com"},"_npmVersion":"10.9.2","description":"🧩 A clean UI layer for Discord bots using discord.js components","directories":{},"sideEffects":false,"_nodeVersion":"22.15.0","dependencies":{"discord.js":"^14.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^7.2.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/kompozr_1.3.1_1768841400787_0.20217417460952203","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"kompozr","version":"1.3.2","keywords":["discord","discord.js","ui","components","interaction","discord-bot","builder","componentsV2"],"author":{"name":"silentadv"},"license":"MIT","_id":"kompozr@1.3.2","maintainers":[{"name":"silentadv","email":"developersilent16@gmail.com"}],"dist":{"shasum":"e15db9f26e3008dee68d5acb0ba6ae4b360a7b34","tarball":"https://registry.npmjs.org/kompozr/-/kompozr-1.3.2.tgz","fileCount":9,"integrity":"sha512-ybYkwGZxIAQ+7jFSFhAp7hsEY/8adGJKQj2TPolGXZgDxp9J7EhWV55Ahl8jqY+OnMeIFU9ib09bKhXyjH+Vyw==","signatures":[{"sig":"MEUCIQCFBdYQ0SRojZJQsLiZbQPD1N9apS/ARd6S73pfo0NcnwIgIgrD+oXJnhdyx0kZ+xa9a/RoGS2dAODbFa/uq3yvFWY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2501828},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsx src/index.ts --watch","build":"tsup src/index.ts","clean":"rm -rf dist"},"_npmUser":{"name":"silentadv","email":"developersilent16@gmail.com"},"_npmVersion":"10.9.2","description":"🧩 A clean UI layer for Discord bots using discord.js components","directories":{},"sideEffects":false,"_nodeVersion":"22.15.0","dependencies":{"discord.js":"^14.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^7.2.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/kompozr_1.3.2_1768842058714_0.5345045308276113","host":"s3://npm-registry-packages-npm-production"}},"1.3.3":{"name":"kompozr","version":"1.3.3","keywords":["discord","discord.js","ui","components","interaction","discord-bot","builder","componentsV2"],"author":{"name":"silentadv"},"license":"MIT","_id":"kompozr@1.3.3","maintainers":[{"name":"silentadv","email":"developersilent16@gmail.com"}],"dist":{"shasum":"fa257c8a72cfdb2c4953ef3bf38402ed40bc96ba","tarball":"https://registry.npmjs.org/kompozr/-/kompozr-1.3.3.tgz","fileCount":9,"integrity":"sha512-++sx/ttxOcpeyYGFjjYlDpdrc7QoTa613ZbSHCgBz3Z/jZxt6sy4Vxh1t75NZDuaS/cpiIsSAY4OZPr8L1z/Eg==","signatures":[{"sig":"MEQCIBdnkvXiC5B6j0jqU+HkpnS7dq1JxqdQxyS+x73Y0pmhAiACqY0SHcm5WMBDySSk64phi0GpupaidQfSaE/pEvjRZA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2503202},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsx src/index.ts --watch","build":"tsup src/index.ts","clean":"rm -rf dist"},"_npmUser":{"name":"silentadv","email":"developersilent16@gmail.com"},"_npmVersion":"10.9.2","description":"🧩 A clean UI layer for Discord bots using discord.js components","directories":{},"sideEffects":false,"_nodeVersion":"22.15.0","dependencies":{"discord.js":"^14.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^7.2.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/kompozr_1.3.3_1768842918791_0.9612280826003154","host":"s3://npm-registry-packages-npm-production"}},"1.3.4":{"name":"kompozr","version":"1.3.4","keywords":["discord","discord.js","ui","components","interaction","discord-bot","builder","componentsV2"],"author":{"name":"silentadv"},"license":"MIT","_id":"kompozr@1.3.4","maintainers":[{"name":"silentadv","email":"developersilent16@gmail.com"}],"dist":{"shasum":"88010e4e7c5441a3a9ac00a6cee161482c513624","tarball":"https://registry.npmjs.org/kompozr/-/kompozr-1.3.4.tgz","fileCount":9,"integrity":"sha512-Qy0nmPKw+VrSFK9ob163/+EdIhquJnh6X93QvJCxlTPy8QVYqmFbyh/cSSeVLVJCdMkSYNPnP4u8JeMjvwrUWw==","signatures":[{"sig":"MEUCIHXjK81Qo67a6+Lr6gc9uwocc9SbVUNIaswDio6UBHo7AiEApuBc8giYruiul4tdQN2RMhh3RDu2r2/JKi1VAHA+QrE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2502349},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsx src/index.ts --watch","build":"tsup src/index.ts","clean":"rm -rf dist"},"_npmUser":{"name":"silentadv","email":"developersilent16@gmail.com"},"_npmVersion":"10.9.2","description":"🧩 A clean UI layer for Discord bots using discord.js components","directories":{},"sideEffects":false,"_nodeVersion":"22.15.0","dependencies":{"discord.js":"^14.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^7.2.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/kompozr_1.3.4_1768843126198_0.5118951765970252","host":"s3://npm-registry-packages-npm-production"}},"1.3.5":{"name":"kompozr","version":"1.3.5","keywords":["discord","discord.js","ui","components","interaction","discord-bot","builder","componentsV2"],"author":{"name":"silentadv"},"license":"MIT","_id":"kompozr@1.3.5","maintainers":[{"name":"silentadv","email":"developersilent16@gmail.com"}],"dist":{"shasum":"8c7e7602a38418ed6f8de170cd30b7a248dccb34","tarball":"https://registry.npmjs.org/kompozr/-/kompozr-1.3.5.tgz","fileCount":9,"integrity":"sha512-LxKLCSu2J43a9k30owulyKdM20OG+Tk4CqNpjibLFl8sAZsS8nqcucA1QhvFvG/m3FjBWJlfAdZsxMq9nyxqZg==","signatures":[{"sig":"MEYCIQCPeJ0ZNd6miALpSMxcodmHvltWXbaTTBh8ip6WvNZAXQIhAM0eXnl3kNAowtXH5isLjMHh7/IKuZBtpGhDG0OpVvsr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2502391},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsx src/index.ts --watch","build":"tsup src/index.ts","clean":"rm -rf dist"},"_npmUser":{"name":"silentadv","email":"developersilent16@gmail.com"},"_npmVersion":"10.9.2","description":"🧩 A clean UI layer for Discord bots using discord.js components","directories":{},"sideEffects":false,"_nodeVersion":"22.15.0","dependencies":{"discord.js":"^14.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^7.2.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/kompozr_1.3.5_1768843680077_0.42306892201569757","host":"s3://npm-registry-packages-npm-production"}},"1.3.6":{"name":"kompozr","version":"1.3.6","keywords":["discord","discord.js","ui","components","interaction","discord-bot","builder","componentsV2"],"author":{"name":"silentadv"},"license":"MIT","_id":"kompozr@1.3.6","maintainers":[{"name":"silentadv","email":"developersilent16@gmail.com"}],"bin":{"k":"dist/index.js"},"dist":{"shasum":"f304e88cf6f1a3929eb37c6af25dba20ac6cc727","tarball":"https://registry.npmjs.org/kompozr/-/kompozr-1.3.6.tgz","fileCount":5,"integrity":"sha512-FGdV4EtMN9leH7+bI5EzvX+hUZH/tojQ/9qVQFmO8KzajSc35PrCSCnJ9v+qAFjaPK3rmmcSpxqEexS15bIfjQ==","signatures":[{"sig":"MEUCIQDULcWcG71Gsv4/ZzeTAcyDqcoQn3oxlgFgJoqZvFf3zgIgPrKJWsw5oiKksmykf98vsL/yKecoDNN/0XUcBStUx48=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1284623},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsx src/index.ts --watch","build":"tsup src/index.ts","clean":"rm -rf dist"},"_npmUser":{"name":"silentadv","email":"developersilent16@gmail.com"},"_npmVersion":"10.9.2","description":"🧩 A clean UI layer for Discord bots using discord.js components","directories":{},"_nodeVersion":"22.15.0","dependencies":{"sharp":"^0.34.5","commander":"^14.0.2","env-paths":"^4.0.0","discord.js":"^14.0.0","@kauzx/logger":"^1.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^7.2.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/kompozr_1.3.6_1769718575774_0.021574155765387015","host":"s3://npm-registry-packages-npm-production"}},"1.3.7":{"name":"kompozr","version":"1.3.7","keywords":["discord","discord.js","ui","components","interaction","discord-bot","builder","componentsV2"],"author":{"name":"silentadv"},"license":"MIT","_id":"kompozr@1.3.7","maintainers":[{"name":"silentadv","email":"developersilent16@gmail.com"}],"bin":{"k":"dist/index.js"},"dist":{"shasum":"2c8a6fb3ec3648ca789e702ba1856bcb5b94cf8a","tarball":"https://registry.npmjs.org/kompozr/-/kompozr-1.3.7.tgz","fileCount":6,"integrity":"sha512-NxelfhpxJir5naYqfD1JUeFqohhUPSvjhmrLdxYn5wWa4vJDNGTrkmNJGWA+5xsIMdzn00ngZ9ROTUdZCfuCRw==","signatures":[{"sig":"MEYCIQCJCMU1w9cNTZFZE8Rrpei4Jo96+JsOkACX7hSNn5WxXQIhALqYDXFXlhOU0ijJpBjVnmB3puiZbMRjfwfJhJNvsS8B","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1295190},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsx src/index.ts --watch","build":"tsup src/index.ts","clean":"rm -rf dist"},"_npmUser":{"name":"silentadv","email":"developersilent16@gmail.com"},"_npmVersion":"10.9.2","description":"🧩 A clean UI layer for Discord bots using discord.js components","directories":{},"_nodeVersion":"22.15.0","dependencies":{"sharp":"^0.34.5","commander":"^14.0.2","env-paths":"^4.0.0","discord.js":"^14.0.0","@kauzx/logger":"^1.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^7.2.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/kompozr_1.3.7_1769718779847_0.29217163950409364","host":"s3://npm-registry-packages-npm-production"}},"1.3.8":{"name":"kompozr","version":"1.3.8","keywords":["discord","discord.js","ui","components","interaction","discord-bot","builder","componentsV2"],"author":{"name":"silentadv"},"license":"MIT","_id":"kompozr@1.3.8","maintainers":[{"name":"silentadv","email":"developersilent16@gmail.com"}],"bin":{"k":"dist/index.js"},"dist":{"shasum":"c3561502bfd505441386cb82d0de1df5083edca8","tarball":"https://registry.npmjs.org/kompozr/-/kompozr-1.3.8.tgz","fileCount":6,"integrity":"sha512-aCrmQfQXv88h5+YWhMyvshzR1sGh60g4e/uZX+mR9fbsPm0ejXtvY4NXGRu84zRMClLpsFZwO370Zwk+3kXnnQ==","signatures":[{"sig":"MEUCIQC2tdnq9SG0zHaqekfl/y/5DHdQ5jBTbu8+Fwk/CR3xIQIgDM4rCGCm49xy2UHD0t9/qB5HkFh0Ajr5GsJeQK66CFI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1296934},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsx src/index.ts --watch","build":"tsup src/index.ts","clean":"rm -rf dist"},"_npmUser":{"name":"silentadv","email":"developersilent16@gmail.com"},"_npmVersion":"10.9.2","description":"🧩 A clean UI layer for Discord bots using discord.js components","directories":{},"_nodeVersion":"22.15.0","dependencies":{"sharp":"^0.34.5","commander":"^14.0.2","env-paths":"^4.0.0","discord.js":"^14.0.0","@kauzx/logger":"^1.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^7.2.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/kompozr_1.3.8_1769718953864_0.44701635641649795","host":"s3://npm-registry-packages-npm-production"}},"1.3.9":{"name":"kompozr","version":"1.3.9","keywords":["discord","discord.js","ui","components","interaction","discord-bot","builder","componentsV2"],"author":{"name":"silentadv"},"license":"MIT","_id":"kompozr@1.3.9","maintainers":[{"name":"silentadv","email":"developersilent16@gmail.com"}],"bin":{"k":"dist/index.js"},"dist":{"shasum":"93dda08c68712298ed4454223d0e15976400a300","tarball":"https://registry.npmjs.org/kompozr/-/kompozr-1.3.9.tgz","fileCount":9,"integrity":"sha512-n4tUWoVNO9G9XvhmJDjNXqsntTCFsMAwWN9gLN/xJLpe6mA9B8aJqBKfc683Qb5pDKkD6eI9N6hCiDuh9a5J7w==","signatures":[{"sig":"MEUCIQCR7JTUW4t/XYg1eJU2Yahhg3NzreF+hs3xOy3JJBWBogIgZzoySw9YhsfA+fNVKidhRUqfUZdht27VCBl5RfcqVvc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2573163},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsx src/index.ts --watch","build":"tsup src/index.ts","clean":"rm -rf dist"},"_npmUser":{"name":"silentadv","email":"developersilent16@gmail.com"},"_npmVersion":"10.9.2","description":"🧩 A clean UI layer for Discord bots using discord.js components","directories":{},"_nodeVersion":"22.15.0","dependencies":{"sharp":"^0.34.5","commander":"^14.0.2","env-paths":"^4.0.0","discord.js":"^14.0.0","@kauzx/logger":"^1.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^7.2.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/kompozr_1.3.9_1769719666519_0.7656030999651169","host":"s3://npm-registry-packages-npm-production"}},"1.3.10":{"name":"kompozr","version":"1.3.10","keywords":["discord","discord.js","ui","components","interaction","discord-bot","builder","componentsV2"],"author":{"name":"silentadv"},"license":"MIT","_id":"kompozr@1.3.10","maintainers":[{"name":"silentadv","email":"developersilent16@gmail.com"}],"bin":{"k":"dist/index.js"},"dist":{"shasum":"dbb978d29b306ed022fc88ab1b1be1fd3b1cbae6","tarball":"https://registry.npmjs.org/kompozr/-/kompozr-1.3.10.tgz","fileCount":9,"integrity":"sha512-1knZISjAgcbZZlSQVmaUPHrcYWbH2U4sO+fGECHLSup01rgCnYXduEEty5gPqREVSHOiQA/nqOdQOC2SXx+uOg==","signatures":[{"sig":"MEUCIQDEcPBVz/Tz9LnNIrUyviCcFzKNi98XxoD8/hjsvjwD3gIgYkILIwvj+wn+JAw4z/zNDg76oHRcXpfaYtiJAVxGuJY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2574822},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsx src/index.ts --watch","build":"tsup src/index.ts","clean":"rm -rf dist"},"_npmUser":{"name":"silentadv","email":"developersilent16@gmail.com"},"_npmVersion":"10.9.2","description":"🧩 A clean UI layer for Discord bots using discord.js components","directories":{},"_nodeVersion":"22.15.0","dependencies":{"sharp":"^0.34.5","commander":"^14.0.2","env-paths":"^4.0.0","discord.js":"^14.0.0","@kauzx/logger":"^1.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^7.2.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/kompozr_1.3.10_1769719991279_0.3743670417033682","host":"s3://npm-registry-packages-npm-production"}},"1.3.11":{"name":"kompozr","version":"1.3.11","keywords":["discord","discord.js","ui","components","interaction","discord-bot","builder","componentsV2"],"author":{"name":"silentadv"},"license":"MIT","_id":"kompozr@1.3.11","maintainers":[{"name":"silentadv","email":"developersilent16@gmail.com"}],"bin":{"k":"dist/cli.js"},"dist":{"shasum":"ee650353cd4106251cc300e3b5bcf4b1b95f0ca7","tarball":"https://registry.npmjs.org/kompozr/-/kompozr-1.3.11.tgz","fileCount":90,"integrity":"sha512-5z3C4OldkrS/TOttJB3/sClP3A2H69bnRhwH+KsnXsBtnDP9mCIpRaDCK8oZnRSIOJ55ME9uxpW5spWJPBYXNQ==","signatures":[{"sig":"MEUCIQCJ66aLkTZl24C+cqMLThWU7RcbT5NmVKAI51lW7f9pcQIgf3kgnvBdV5lGOGxJaqWuUBusbR8YgWIBgttiw6v5wn0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2540049},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsx src/index.ts --watch","build":"tsup src/index.ts","clean":"rm -rf dist"},"_npmUser":{"name":"silentadv","email":"developersilent16@gmail.com"},"_npmVersion":"10.9.2","description":"🧩 A clean UI layer for Discord bots using discord.js components","directories":{},"_nodeVersion":"22.15.0","dependencies":{"sharp":"^0.34.5","commander":"^14.0.2","env-paths":"^4.0.0","discord.js":"^14.0.0","@kauzx/logger":"^1.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^7.2.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/kompozr_1.3.11_1769721009723_0.13473206450756736","host":"s3://npm-registry-packages-npm-production"}},"1.3.12":{"name":"kompozr","version":"1.3.12","keywords":["discord","discord.js","ui","components","interaction","discord-bot","builder","componentsV2"],"author":{"name":"silentadv"},"license":"MIT","_id":"kompozr@1.3.12","maintainers":[{"name":"silentadv","email":"developersilent16@gmail.com"}],"bin":{"k":"dist/cli/cli.mjs"},"dist":{"shasum":"1d5528793fbe9a185bb4d40a83f770fd4135d3f5","tarball":"https://registry.npmjs.org/kompozr/-/kompozr-1.3.12.tgz","fileCount":17,"integrity":"sha512-UZJDdCXlQ8Q8lHGw/nUmKR6r3rrDihnoW9N9ZXhYXuGfxa9NCGpS8U51PzqY3ntxrhJoPkqabCFX5XRVhqcTvw==","signatures":[{"sig":"MEUCIGmWpoAk5eGnQqwqTYrpMSgxlYWpBmkEoRfPcRJYZOa5AiEAklROddTWTlN5PZqqlM9DVsk56bN3pQRyklGgZEDUiB0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2578059},"main":"./dist/src/index.js","types":"./dist/src/index.d.ts","module":"./dist/src/index.mjs","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.mjs","require":"./dist/src/index.js"}},"scripts":{"dev":"tsx src/index.ts --watch","build":"tsup src/index.ts cli/cli.ts","clean":"rm -rf dist"},"_npmUser":{"name":"silentadv","email":"developersilent16@gmail.com"},"_npmVersion":"10.9.2","description":"🧩 A clean UI layer for Discord bots using discord.js components","directories":{},"_nodeVersion":"22.15.0","dependencies":{"sharp":"^0.34.5","commander":"^14.0.2","env-paths":"^4.0.0","discord.js":"^14.0.0","@kauzx/logger":"^1.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^7.2.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/kompozr_1.3.12_1769721428173_0.29044685573582396","host":"s3://npm-registry-packages-npm-production"}},"1.3.13":{"name":"kompozr","version":"1.3.13","keywords":["discord","discord.js","ui","components","interaction","discord-bot","builder","componentsV2"],"author":{"name":"silentadv"},"license":"MIT","_id":"kompozr@1.3.13","maintainers":[{"name":"silentadv","email":"developersilent16@gmail.com"}],"bin":{"k":"dist/cli/cli.mjs"},"dist":{"shasum":"e5200a5ad8771a9b73a3f8f1cd54a41458ea9ac4","tarball":"https://registry.npmjs.org/kompozr/-/kompozr-1.3.13.tgz","fileCount":17,"integrity":"sha512-zbk3ZtJYV/NWKfXAi71ayMQmig03XIaNKuenQfzYs2M4Ja4GieyUCSqhNmVYQDQfFsYc6ApDsZAsgIfDd8JIEw==","signatures":[{"sig":"MEQCIEaK9FfX/ZemHPq4oVPkrX+rul6joTIQMuYepuNKhj7UAiAebyTKJd0V31ssTKdfCdQ0AxlQ118PD5DnEJDI3sicxA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2578183},"main":"./dist/src/index.js","types":"./dist/src/index.d.ts","module":"./dist/src/index.mjs","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.mjs","require":"./dist/src/index.js"}},"scripts":{"dev":"tsx src/index.ts --watch","build":"tsup src/index.ts cli/cli.ts","clean":"rm -rf dist"},"_npmUser":{"name":"silentadv","email":"developersilent16@gmail.com"},"_npmVersion":"10.9.2","description":"🧩 A clean UI layer for Discord bots using discord.js components","directories":{},"_nodeVersion":"22.15.0","dependencies":{"sharp":"^0.34.5","commander":"^14.0.2","env-paths":"^4.0.0","discord.js":"^14.0.0","@kauzx/logger":"^1.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^7.2.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/kompozr_1.3.13_1769722210231_0.5389805232312734","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"kompozr","version":"1.4.0","keywords":["discord","discord.js","ui","components","interaction","discord-bot","builder","componentsV2"],"author":{"name":"silentadv"},"license":"MIT","_id":"kompozr@1.4.0","maintainers":[{"name":"silentadv","email":"developersilent16@gmail.com"}],"bin":{"k":"dist/cli/cli.mjs"},"dist":{"shasum":"c9c8697d5fc7c2994139d4b9a367b431ee1b5e90","tarball":"https://registry.npmjs.org/kompozr/-/kompozr-1.4.0.tgz","fileCount":17,"integrity":"sha512-VYKK3Ont7R36vpwFeaAZEoEwSSwdu1euWwqQ8ygcLAgWw8fneG6cPbrwTxJ8iJbH7ZaYZBsotAyCEvOSDQXFfQ==","signatures":[{"sig":"MEYCIQCe+1U0enn29pDpxxo3n9X+2Fqzb8pjLnfZbUyqeFr1TwIhAKIxidzRHskWrLn9hvcNI878HiVuh3EHEYaNF7B0nYJg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2577574},"main":"./dist/src/index.js","types":"./dist/src/index.d.ts","module":"./dist/src/index.mjs","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.mjs","require":"./dist/src/index.js"}},"scripts":{"dev":"tsx src/index.ts --watch","build":"tsup src/index.ts cli/cli.ts","clean":"rm -rf dist"},"_npmUser":{"name":"silentadv","email":"developersilent16@gmail.com"},"_npmVersion":"10.9.2","description":"🧩 A clean UI layer for Discord bots using discord.js components","directories":{},"_nodeVersion":"22.15.0","dependencies":{"sharp":"^0.34.5","commander":"^14.0.2","env-paths":"^4.0.0","discord.js":"^14.0.0","@kauzx/logger":"^1.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^7.2.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/kompozr_1.4.0_1769722451161_0.6511861217648505","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"kompozr","version":"1.4.1","keywords":["discord","discord.js","ui","components","interaction","discord-bot","builder","componentsV2"],"author":{"name":"silentadv"},"license":"MIT","_id":"kompozr@1.4.1","maintainers":[{"name":"silentadv","email":"developersilent16@gmail.com"}],"bin":{"k":"dist/cli/cli.mjs"},"dist":{"shasum":"8895a9184bb82b26c1c98cfd7ef4b75e60b63126","tarball":"https://registry.npmjs.org/kompozr/-/kompozr-1.4.1.tgz","fileCount":17,"integrity":"sha512-CAQoUo7pIPmXmFsOi2RT3QGmQEzTF9GUbAcf6J/Z8jMZtwqhNzqEuVBG7QD4TC5zTv0/RriHis5OUia0cnw6Pg==","signatures":[{"sig":"MEQCIC+cflVVzwnsjrf5j3X0fAJN0SiHtSULhquNWwRozcNIAiB9YCSQotlg8MSLbNY0QiRbDnrB8JZsnYJ6eWCcol49Yg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2577796},"main":"./dist/src/index.js","types":"./dist/src/index.d.ts","module":"./dist/src/index.mjs","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.mjs","require":"./dist/src/index.js"}},"scripts":{"dev":"tsx src/index.ts --watch","build":"tsup src/index.ts cli/cli.ts","clean":"rm -rf dist"},"_npmUser":{"name":"silentadv","email":"developersilent16@gmail.com"},"_npmVersion":"10.9.2","description":"🧩 A clean UI layer for Discord bots using discord.js components","directories":{},"_nodeVersion":"22.15.0","dependencies":{"sharp":"^0.34.5","commander":"^14.0.2","env-paths":"^4.0.0","discord.js":"^14.0.0","@kauzx/logger":"^1.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^7.2.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/kompozr_1.4.1_1769722649679_0.6503584841849477","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"kompozr","version":"1.4.2","keywords":["discord","discord.js","ui","components","interaction","discord-bot","builder","componentsV2"],"author":{"name":"silentadv"},"license":"MIT","_id":"kompozr@1.4.2","maintainers":[{"name":"silentadv","email":"developersilent16@gmail.com"}],"bin":{"k":"dist/cli/cli.mjs"},"dist":{"shasum":"bc5c29c2d4b9354d28a0c822d237a75a531a7abf","tarball":"https://registry.npmjs.org/kompozr/-/kompozr-1.4.2.tgz","fileCount":17,"integrity":"sha512-CbxrByFV7ymSOYrMzO2ZQtNois8b5ESBOg9d+jllbe2k5QG59bg2zEP14GofcvwV2Zp67DeLnafxnXB0nEAOlw==","signatures":[{"sig":"MEYCIQDDgRNxCSEHQlBFP5k86huaVJs5gEHc69+NbE0cY86SIgIhALyqKsPI3hzAazxokRzK0Igx2jvK7rhV3+6JNcXs3w08","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2575825},"main":"./dist/src/index.js","types":"./dist/src/index.d.ts","module":"./dist/src/index.mjs","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.mjs","require":"./dist/src/index.js"}},"scripts":{"dev":"tsx src/index.ts --watch","build":"tsup src/index.ts cli/cli.ts","clean":"rm -rf dist"},"_npmUser":{"name":"silentadv","email":"developersilent16@gmail.com"},"_npmVersion":"10.9.2","description":"🧩 A clean UI layer for Discord bots using discord.js components","directories":{},"_nodeVersion":"22.15.0","dependencies":{"sharp":"^0.34.5","commander":"^14.0.2","env-paths":"^4.0.0","discord.js":"^14.0.0","@kauzx/logger":"^1.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^7.2.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/kompozr_1.4.2_1769722686425_0.9573006066590388","host":"s3://npm-registry-packages-npm-production"}},"1.4.3":{"name":"kompozr","version":"1.4.3","keywords":["discord","discord.js","ui","components","interaction","discord-bot","builder","componentsV2"],"author":{"name":"silentadv"},"license":"MIT","_id":"kompozr@1.4.3","maintainers":[{"name":"silentadv","email":"developersilent16@gmail.com"}],"bin":{"k":"dist/cli/cli.mjs"},"dist":{"shasum":"b9022381cfdd9eaf060564d4a0c22ae512d3e583","tarball":"https://registry.npmjs.org/kompozr/-/kompozr-1.4.3.tgz","fileCount":17,"integrity":"sha512-VOEc1aMStEZlyA44k3n89UFo59VD7slzd3u0Koo284IUMEhabtfzd3249VQVD0d2AQW7JJzVewD2uHPWXMKRsw==","signatures":[{"sig":"MEQCIFdSoGj1m4LHzHZ/hffiV6lRpqG8i3aN3RXVvLlDBMeOAiAHf9N2vrc2ptlaMVx+SYYq97YfErriQjZ3twX7rXAIHw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2575980},"main":"./dist/src/index.js","types":"./dist/src/index.d.ts","module":"./dist/src/index.mjs","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.mjs","require":"./dist/src/index.js"}},"scripts":{"dev":"tsx src/index.ts --watch","build":"tsup src/index.ts cli/cli.ts","clean":"rm -rf dist"},"_npmUser":{"name":"silentadv","email":"developersilent16@gmail.com"},"_npmVersion":"10.9.2","description":"🧩 A clean UI layer for Discord bots using discord.js components","directories":{},"_nodeVersion":"22.15.0","dependencies":{"sharp":"^0.34.5","kompozr":"^1.4.2","commander":"^14.0.2","env-paths":"^4.0.0","discord.js":"^14.0.0","@kauzx/logger":"^1.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^7.2.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/kompozr_1.4.3_1769722937725_0.5484566997083975","host":"s3://npm-registry-packages-npm-production"}},"1.4.4":{"name":"kompozr","version":"1.4.4","keywords":["discord","discord.js","ui","components","interaction","discord-bot","builder","componentsV2"],"author":{"name":"silentadv"},"license":"MIT","_id":"kompozr@1.4.4","maintainers":[{"name":"silentadv","email":"developersilent16@gmail.com"}],"bin":{"k":"dist/cli/cli.mjs"},"dist":{"shasum":"c9156a26d6d8152719e1d897636712596bdf3f39","tarball":"https://registry.npmjs.org/kompozr/-/kompozr-1.4.4.tgz","fileCount":17,"integrity":"sha512-NK0GuIORorAIPrplNKpK5Cpikg6woHiwJPqcYNtFN04Sss9/OE/zP0/MUJpCKTowqHXolgvYME67CU1TTDD+Ig==","signatures":[{"sig":"MEQCIEmABzGNNJnQLiGaijXHUbaqMo9UxgD+AM4g/N7s0IfjAiAXrmWZVMnXJO9sHoxOuBD2sWkQnD80e0I6a5B9ZJxqPA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2582104},"main":"./dist/src/index.js","types":"./dist/src/index.d.ts","module":"./dist/src/index.mjs","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.mjs","require":"./dist/src/index.js"}},"scripts":{"dev":"tsx src/index.ts --watch","build":"tsup src/index.ts cli/cli.ts","clean":"rm -rf dist"},"_npmUser":{"name":"silentadv","email":"developersilent16@gmail.com"},"_npmVersion":"10.9.2","description":"🧩 A clean UI layer for Discord bots using discord.js components","directories":{},"_nodeVersion":"22.15.0","dependencies":{"sharp":"^0.34.5","kompozr":"^1.4.2","commander":"^14.0.2","env-paths":"^4.0.0","discord.js":"^14.0.0","@kauzx/logger":"^1.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^7.2.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/kompozr_1.4.4_1769803400965_0.4366990217611093","host":"s3://npm-registry-packages-npm-production"}},"1.4.5":{"name":"kompozr","version":"1.4.5","keywords":["discord","discord.js","ui","components","interaction","discord-bot","builder","componentsV2"],"author":{"name":"silentadv"},"license":"MIT","_id":"kompozr@1.4.5","maintainers":[{"name":"silentadv","email":"developersilent16@gmail.com"}],"bin":{"k":"dist/cli/cli.mjs"},"dist":{"shasum":"f84905048eaa678451114ff569f0a254a4eda7f0","tarball":"https://registry.npmjs.org/kompozr/-/kompozr-1.4.5.tgz","fileCount":23,"integrity":"sha512-4e210U8rWKulGdX3LMc7T1wPlTrRKPxPD/ptynj1DHW1ywOTF9FasrYgbLZZPo+N5T1ZppWJi/xvGts/lIs+yg==","signatures":[{"sig":"MEYCIQCaWVVVpK5hBX04KBQma9A1pt1axPeSqrUDqtk+4EOb8gIhAKOykkuDicITjvL7P7GLhViDQdV0AAQCNdoXbgTYEkJR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2640554},"main":"./dist/src/index.js","types":"./dist/src/index.d.ts","module":"./dist/src/index.mjs","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.mjs","require":"./dist/src/index.js"}},"scripts":{"dev":"tsx src/index.ts --watch","build":"tsup src/index.ts cli/cli.ts && cp -r ./kicons ./dist","clean":"rm -rf dist"},"_npmUser":{"name":"silentadv","email":"developersilent16@gmail.com"},"_npmVersion":"10.9.2","description":"🧩 A clean UI layer for Discord bots using discord.js components","directories":{},"_nodeVersion":"22.15.0","dependencies":{"sharp":"^0.34.5","kompozr":"^1.4.2","commander":"^14.0.2","env-paths":"^4.0.0","discord.js":"^14.0.0","@kauzx/logger":"^1.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^7.2.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/kompozr_1.4.5_1769804314455_0.2671870685213791","host":"s3://npm-registry-packages-npm-production"}},"1.4.6":{"name":"kompozr","version":"1.4.6","keywords":["discord","discord.js","ui","components","interaction","discord-bot","builder","componentsV2"],"author":{"name":"silentadv"},"license":"MIT","_id":"kompozr@1.4.6","maintainers":[{"name":"silentadv","email":"developersilent16@gmail.com"}],"bin":{"k":"dist/cli/cli.mjs"},"dist":{"shasum":"f32a827bcb628c02a3baec3c74e887bcfa5347b3","tarball":"https://registry.npmjs.org/kompozr/-/kompozr-1.4.6.tgz","fileCount":23,"integrity":"sha512-PerKCYxqb4PJavv28y61aYEVCJnDzKpOOhDZnZ6sDlE1sc3VvTvNrtlxU3C0L8hLfaSe2RFwfdJqMus3qIyKew==","signatures":[{"sig":"MEYCIQCdORlPbTfOItRgeX663oTHp6O88KEnBVFRZ91T2fzP2AIhAIg4kY1SxZLO3SB+SVng12TbvLg9sqwz+kkXtIQBGGYQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2641952},"main":"./dist/src/index.js","types":"./dist/src/index.d.ts","module":"./dist/src/index.mjs","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.mjs","require":"./dist/src/index.js"}},"scripts":{"dev":"tsx src/index.ts --watch","build":"tsup src/index.ts cli/cli.ts && cp -r ./kicons ./dist","clean":"rm -rf dist"},"_npmUser":{"name":"silentadv","email":"developersilent16@gmail.com"},"_npmVersion":"10.9.2","description":"🧩 A clean UI layer for Discord bots using discord.js components","directories":{},"_nodeVersion":"22.15.0","dependencies":{"sharp":"^0.34.5","kompozr":"^1.4.2","commander":"^14.0.2","env-paths":"^4.0.0","discord.js":"^14.0.0","@kauzx/logger":"^1.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^7.2.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/kompozr_1.4.6_1769805575544_0.855239573669567","host":"s3://npm-registry-packages-npm-production"}},"1.4.7":{"name":"kompozr","version":"1.4.7","keywords":["discord","discord.js","ui","components","interaction","discord-bot","builder","componentsV2"],"author":{"name":"silentadv"},"license":"MIT","_id":"kompozr@1.4.7","maintainers":[{"name":"silentadv","email":"developersilent16@gmail.com"}],"bin":{"k":"dist/cli/cli.mjs"},"dist":{"shasum":"6965183aee1c4a29316621ce3614e4497853cb27","tarball":"https://registry.npmjs.org/kompozr/-/kompozr-1.4.7.tgz","fileCount":23,"integrity":"sha512-sGrZ/7aiwWaWSJFFZbcA1SXPQznMfeU2VU1cwVxcdIteicq/MmAlPgxK9uQ6r3dTr6mrj1+dlxg5n1/mIssU2g==","signatures":[{"sig":"MEUCIQDLcS28L3IlUWn1loh3aANgeH30NafaTsyGk6Odw+0BkwIgUGZtVHMq9x9HfTAH2fYEvb2azrUlCMSOzWK+C4SHE0U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2641960},"main":"./dist/src/index.js","types":"./dist/src/index.d.ts","module":"./dist/src/index.mjs","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.mjs","require":"./dist/src/index.js"}},"scripts":{"dev":"tsx src/index.ts --watch","build":"tsup src/index.ts cli/cli.ts && cp -r ./kicons ./dist","clean":"rm -rf dist"},"_npmUser":{"name":"silentadv","email":"developersilent16@gmail.com"},"_npmVersion":"10.9.2","description":"🧩 A clean UI layer for Discord bots using discord.js components","directories":{},"_nodeVersion":"22.15.0","dependencies":{"sharp":"^0.34.5","kompozr":"^1.4.2","commander":"^14.0.2","env-paths":"^4.0.0","discord.js":"^14.0.0","@kauzx/logger":"^1.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^7.2.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/kompozr_1.4.7_1769805820337_0.02109107942016908","host":"s3://npm-registry-packages-npm-production"}},"1.4.8":{"name":"kompozr","version":"1.4.8","keywords":["discord","discord.js","ui","components","interaction","discord-bot","builder","componentsV2"],"author":{"name":"silentadv"},"license":"MIT","_id":"kompozr@1.4.8","maintainers":[{"name":"silentadv","email":"developersilent16@gmail.com"}],"bin":{"k":"dist/cli/cli.mjs"},"dist":{"shasum":"252d3bf2e145d253d774fd9447557786af326373","tarball":"https://registry.npmjs.org/kompozr/-/kompozr-1.4.8.tgz","fileCount":25,"integrity":"sha512-LHyRtuzI8sn841jzyBb3CcXjX4GBXxkAJhMN8jzGDR/8dWqdln2MSK+FzpXMiXkS3kVpbd1H0RJrrTIRKn1Eog==","signatures":[{"sig":"MEUCID6pbkMinAW7ZmxDyMqd1/utWTjMH/1kb9fW5a5wREKzAiEAhLGSesfgpuME3FK6gk2JypvINGLsIoemN5cVnW3ipZs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2644004},"main":"./dist/src/index.js","types":"./dist/src/index.d.ts","module":"./dist/src/index.mjs","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.mjs","require":"./dist/src/index.js"}},"scripts":{"dev":"tsx src/index.ts --watch","build":"tsup src/index.ts cli/cli.ts && cp -r ./kicons ./dist","clean":"rm -rf dist"},"_npmUser":{"name":"silentadv","email":"developersilent16@gmail.com"},"_npmVersion":"10.9.2","description":"🧩 A clean UI layer for Discord bots using discord.js components","directories":{},"_nodeVersion":"22.15.0","dependencies":{"sharp":"^0.34.5","kompozr":"^1.4.2","commander":"^14.0.2","env-paths":"^4.0.0","discord.js":"^14.0.0","@kauzx/logger":"^1.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^7.2.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/kompozr_1.4.8_1769806203607_0.20553120579709683","host":"s3://npm-registry-packages-npm-production"}},"1.4.9":{"name":"kompozr","version":"1.4.9","keywords":["discord","discord.js","ui","components","interaction","discord-bot","builder","componentsV2"],"author":{"name":"silentadv"},"license":"MIT","_id":"kompozr@1.4.9","maintainers":[{"name":"silentadv","email":"developersilent16@gmail.com"}],"bin":{"k":"dist/cli/cli.mjs"},"dist":{"shasum":"c17c54db697747283ce5366bee65abb4cdb096a0","tarball":"https://registry.npmjs.org/kompozr/-/kompozr-1.4.9.tgz","fileCount":25,"integrity":"sha512-i/mtYvNGKfrnnphkhdB9h9Qo0X5PPHrj2G6K3LNLNjAsFcgLpRcnDNhrIVGT55CZaXKQj732yowDlPauTFQqyw==","signatures":[{"sig":"MEYCIQDMZdshKkgG+H2qO1lCpZ/ULxAGbYiY6398++VUAcosBgIhALGm5QFkfLzBwryXlXTMJDg1VqTgLIMr2sFPfAIkTqfi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2644262},"main":"./dist/src/index.js","types":"./dist/src/index.d.ts","module":"./dist/src/index.mjs","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.mjs","require":"./dist/src/index.js"}},"scripts":{"dev":"tsx src/index.ts --watch","build":"tsup src/index.ts cli/cli.ts && cp -r ./kicons ./dist","clean":"rm -rf dist"},"_npmUser":{"name":"silentadv","email":"developersilent16@gmail.com"},"_npmVersion":"10.9.2","description":"🧩 A clean UI layer for Discord bots using discord.js components","directories":{},"_nodeVersion":"22.15.0","dependencies":{"sharp":"^0.34.5","kompozr":"^1.4.2","commander":"^14.0.2","env-paths":"^4.0.0","discord.js":"^14.0.0","@kauzx/logger":"^1.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^7.2.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/kompozr_1.4.9_1769806396561_0.8628816646369075","host":"s3://npm-registry-packages-npm-production"}},"1.4.10":{"name":"kompozr","version":"1.4.10","keywords":["discord","discord.js","ui","components","interaction","discord-bot","builder","componentsV2"],"author":{"name":"silentadv"},"license":"MIT","_id":"kompozr@1.4.10","maintainers":[{"name":"silentadv","email":"developersilent16@gmail.com"}],"bin":{"k":"dist/cli/cli.mjs"},"dist":{"shasum":"e2b6cf0846e97e16f4709d429474cae60b638941","tarball":"https://registry.npmjs.org/kompozr/-/kompozr-1.4.10.tgz","fileCount":25,"integrity":"sha512-mnPnHC8HiNWgMVvChCrMvINJKinNjqQxAxcYeWqqMCy0SdGA3yLX+Ije0K+/A6owI3L+d6fkr3DIxrAknylgLw==","signatures":[{"sig":"MEUCIQCezh7G/+lFFxPZa3erkPBQjKTNfvq0M7uOnhu+Olgx2wIgX0g9nlrTjGKwedq60W42bYB+WS+UYT5ofWiwCZ/B99I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2644255},"main":"./dist/src/index.js","types":"./dist/src/index.d.ts","module":"./dist/src/index.mjs","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.mjs","require":"./dist/src/index.js"}},"scripts":{"dev":"tsx src/index.ts --watch","build":"tsup src/index.ts cli/cli.ts && cp -r ./kicons ./dist","clean":"rm -rf dist"},"_npmUser":{"name":"silentadv","email":"developersilent16@gmail.com"},"_npmVersion":"10.9.2","description":"🧩 A clean UI layer for Discord bots using discord.js components","directories":{},"_nodeVersion":"22.15.0","dependencies":{"sharp":"^0.34.5","kompozr":"^1.4.2","commander":"^14.0.2","env-paths":"^4.0.0","discord.js":"^14.0.0","@kauzx/logger":"^1.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^7.2.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/kompozr_1.4.10_1769806537427_0.3268844083391853","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"kompozr","version":"1.5.0","description":"🧩 A clean UI layer for Discord bots using discord.js components","author":{"name":"silentadv"},"license":"MIT","main":"./dist/src/index.js","module":"./dist/src/index.mjs","types":"./dist/src/index.d.ts","exports":{".":{"import":"./dist/src/index.mjs","require":"./dist/src/index.js","types":"./dist/src/index.d.ts"}},"bin":{"k":"dist/cli/cli.mjs"},"scripts":{"dev":"tsx src/index.ts --watch","build":"tsup src/index.ts cli/cli.ts && cp -r ./kicons ./dist","clean":"rm -rf dist"},"dependencies":{"@kauzx/logger":"^1.2.2","commander":"^14.0.2","discord.js":"^14.0.0","env-paths":"^4.0.0","kompozr":"^1.4.2","sharp":"^0.34.5"},"devDependencies":{"tsup":"^7.2.0","tsx":"^4.20.3","typescript":"^5.4.0"},"keywords":["discord","discord.js","ui","components","interaction","discord-bot","builder","componentsV2"],"_id":"kompozr@1.5.0","_nodeVersion":"22.15.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-NCvF4LjlX8naIlhT1Hp7LZ8scKM3vDe/kj35ZAIo1523Qg8JqVzD98N3WDRftldBFdlTNq62VEH7LA/t9DpExA==","shasum":"bc396fde57ff939df48660c4ee68b534e9d5f3d3","tarball":"https://registry.npmjs.org/kompozr/-/kompozr-1.5.0.tgz","fileCount":25,"unpackedSize":2644068,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGVtlEt0drDjysP/zC+xPIUrFT6RjoHQl/g0Auf7V4R0AiEA7WAeDwn0efNi3iI8O4ykqbaafyLTg/XFtp3/eXg1VkE="}]},"_npmUser":{"name":"silentadv","email":"developersilent16@gmail.com"},"directories":{},"maintainers":[{"name":"silentadv","email":"developersilent16@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/kompozr_1.5.0_1769806594182_0.7429285109375845"},"_hasShrinkwrap":false}},"time":{"created":"2025-07-05T20:35:47.161Z","modified":"2026-01-30T20:56:34.499Z","1.0.0":"2025-07-05T20:35:47.352Z","1.0.1":"2025-07-05T23:54:40.965Z","1.0.2":"2025-07-05T23:58:06.257Z","1.0.3":"2025-07-06T00:34:51.441Z","1.0.4":"2025-07-06T01:41:33.600Z","1.0.5":"2025-07-08T18:18:26.469Z","1.0.6":"2025-07-08T18:20:17.206Z","1.0.7":"2025-07-08T18:23:29.872Z","1.1.0":"2025-07-11T19:31:23.985Z","1.1.1":"2025-07-11T19:44:29.219Z","1.1.2":"2025-08-24T19:00:30.631Z","1.2.0":"2025-09-29T19:36:57.560Z","1.2.1":"2025-10-06T17:26:00.585Z","1.2.2":"2025-10-06T17:26:29.874Z","1.2.3":"2025-10-06T18:19:39.781Z","1.2.4":"2025-10-09T02:25:49.579Z","1.3.0":"2026-01-19T16:36:05.309Z","1.3.1":"2026-01-19T16:50:00.968Z","1.3.2":"2026-01-19T17:00:58.958Z","1.3.3":"2026-01-19T17:15:19.017Z","1.3.4":"2026-01-19T17:18:46.350Z","1.3.5":"2026-01-19T17:28:00.304Z","1.3.6":"2026-01-29T20:29:35.961Z","1.3.7":"2026-01-29T20:33:00.003Z","1.3.8":"2026-01-29T20:35:54.110Z","1.3.9":"2026-01-29T20:47:46.718Z","1.3.10":"2026-01-29T20:53:11.486Z","1.3.11":"2026-01-29T21:10:09.966Z","1.3.12":"2026-01-29T21:17:08.543Z","1.3.13":"2026-01-29T21:30:10.484Z","1.4.0":"2026-01-29T21:34:11.381Z","1.4.1":"2026-01-29T21:37:29.885Z","1.4.2":"2026-01-29T21:38:06.677Z","1.4.3":"2026-01-29T21:42:17.908Z","1.4.4":"2026-01-30T20:03:21.164Z","1.4.5":"2026-01-30T20:18:34.658Z","1.4.6":"2026-01-30T20:39:35.753Z","1.4.7":"2026-01-30T20:43:40.563Z","1.4.8":"2026-01-30T20:50:03.826Z","1.4.9":"2026-01-30T20:53:16.717Z","1.4.10":"2026-01-30T20:55:37.592Z","1.5.0":"2026-01-30T20:56:34.390Z"},"author":{"name":"silentadv"},"license":"MIT","keywords":["discord","discord.js","ui","components","interaction","discord-bot","builder","componentsV2"],"description":"🧩 A clean UI layer for Discord bots using discord.js components","maintainers":[{"name":"silentadv","email":"developersilent16@gmail.com"}],"readme":"<p align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/primepvi/kompozr/main/assets/kompozr.png\" alt=\"kompozr logo\" width=\"320\" />\n</p>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/kompozr\">\n    <img src=\"https://img.shields.io/npm/v/kompozr.svg?style=flat-square\" alt=\"npm version\" />\n  </a>\n  <a href=\"https://www.npmjs.com/package/kompozr\">\n    <img src=\"https://img.shields.io/npm/dm/kompozr.svg?style=flat-square\" alt=\"npm downloads\" />\n  </a>\n  <a href=\"https://github.com/primepvi/kompozr\">\n    <img src=\"https://img.shields.io/github/stars/primepvi/kompozr?style=flat-square\" alt=\"GitHub stars\" />\n  </a>\n  <a href=\"LICENSE\">\n    <img src=\"https://img.shields.io/badge/License-MIT-green.svg?style=flat-square\" alt=\"License: MIT\" />\n  </a>\n</p>\n\n🧩 **kompozr** is a composable UI layer for\n[discord.js](https://discord.js.org/) bots, providing ergonomic wrapper\nfunctions for building Discord UI components with less boilerplate and a focus\non developer experience.\n\n---\n\n## 📚 Table of Contents\n\n- [About](#about)\n- [Installation](#installation)\n- [Quick Start](#quick-start)\n- [Components & Usage](#components--usage)\n  - [Buttons](#buttons)\n  - [Select Menus](#select-menus)\n  - [Modals & Inputs](#modals--inputs)\n  - [Layout Components](#layout-components)\n  - [Content Components](#content-components)\n  - [Reactive Components](#️-reactive-components)\n- [Full Example](#full-example)\n- [Full Example With Reactive Components](#full-example-with-reactive-components)\n- [API Reference](#api-reference)\n- [TypeScript Support](#typescript-support)\n- [Contributing](#contributing)\n- [License](#license)\n\n---\n\n## ℹ️ About\n\nkompozr was created to **improve the developer experience** when building\nDiscord bots with [discord.js](https://discord.js.org/).  \nThe Discord.js builder API is powerful, but can be verbose and repetitive for\ncommon UI patterns. kompozr introduces a philosophy of **\"less builders\"**:\n\n- Compose UIs with fewer lines of code\n- Use simple, declarative wrappers instead of chaining builder methods\n- Focus on what your UI should do, not how to wire up every builder\n\nkompozr is **open source** and welcomes contributions! If you have ideas,\nimprovements, or new components, feel free to open a PR or issue on\n[GitHub](https://github.com/primepvi/kompozr).\n\n---\n\n## ✨ Features\n\n- **Developer Experience First:** Less boilerplate, more readable code, and a\n  declarative API.\n- **Composable:** Easily combine components and layouts.\n- **All Discord UI Components:** Buttons, select menus (all types), modals,\n  inputs, galleries, files, and more.\n- **Layout Helpers:** Rows, sections, containers, separators, and flexible\n  layouts.\n- **Type-safe:** Written in TypeScript with full type definitions.\n- **Less Builders Philosophy:** No more endless `.addX()` and `.setY()`\n  chains—just describe your UI in objects and arrays.\n- **Reactive Utilities:** Advanced helpers for stateful, memoized, and reusable\n  UI fragments.\n- **Open Source:** Contributions and PRs are welcome!\n\n---\n\n## 🚀 Installation\n\n```sh\nnpm install kompozr\n```\n\n---\n\n## ⚡ Quick Start\n\nImport the main API object:\n\n```ts\nimport { k } from \"kompozr\";\n```\n\n---\n\n## 🛠️ Components & Usage\n\n### Buttons\n\nButtons are interactive components that users can click. With kompozr, you can\neasily create all Discord button styles using a simple and consistent API. Each\nbutton requires a `cid` (custom id) and a `label` or `emoji`. You can also add\nboth and set the button as disabled.\n\n```ts\nconst button = k.button.primary({\n  cid: \"my_button\",\n  label: \"Click me!\",\n  emoji: \"👋\",\n});\n```\n\nOther button styles:\n\n- `k.button.secondary` – Gray button for secondary actions.\n- `k.button.success` – Green button for positive actions.\n- `k.button.danger` – Red button for destructive actions.\n- `k.button.link` – Link button (use `url` instead of `cid`).\n\n#### Example\n\n```ts\nconst linkButton = k.button.link({\n  url: \"https://github.com/silentadv/kompozr\",\n  label: \"GitHub\",\n});\n```\n\n---\n\n### Select Menus\n\nSelect menus allow users to pick one or more options from a dropdown. kompozr\nsupports all Discord select menu types, including string, role, user, channel,\nand mentionable selects. Each select requires a `cid` and an array of options.\n\n> **Default Values:**  \n> For select menus that support default values (user, role, channel,\n> mentionable), use the `defaultValues` property and the helpers:\n>\n> - `k.selectValue.user(id)`\n> - `k.selectValue.role(id)`\n> - `k.selectValue.channel(id)`\n\n```ts\nconst selectMenu = k.select.string({\n  cid: \"my_select\",\n  options: [\n    { value: \"1\", label: \"Option 1\" },\n    { value: \"2\", label: \"Option 2\" },\n  ],\n  placeholder: \"Choose an option\",\n});\n```\n\nOther select types:\n\n- `k.select.role` – Select one or more roles.\n- `k.select.user` – Select one or more users.\n- `k.select.channel` – Select one or more channels.\n- `k.select.mentionable` – Select users or roles.\n\n#### Example: Channel Select\n\n```ts\nconst channelSelect = k.select.channel({\n  cid: \"channel_select\",\n  placeholder: \"Pick a channel\",\n  channelTypes: [ChannelType.GuildText, ChannelType.GuildVoice],\n});\n```\n\n#### Example: User Select with Default Options\n\n```ts\nconst userSelect = k.select.user({\n  cid: \"user_select\",\n  placeholder: \"Pick a user\",\n  defaultValues: [\n    k.selectValue.user(\"user-id-1\"),\n    k.selectValue.user(\"user-id-2\"),\n  ],\n});\n```\n\n---\n\n### Modals & Inputs\n\nModals are pop-up forms that can collect user input. kompozr lets you build\nmodals with short or paragraph text inputs. Each input requires a `cid` and a\n`label`. You can mark inputs as required and set placeholders.\n\n```ts\nconst modal = k.modal({\n  cid: \"feedback_modal\",\n  title: \"Feedback\",\n  inputs: [\n    k.input.short({\n      cid: \"username\",\n      label: \"Your Name\",\n      required: true,\n    }),\n    k.input.paragraph({\n      cid: \"feedback\",\n      label: \"Your Feedback\",\n      required: true,\n    }),\n  ],\n});\n```\n\n---\n\n### Layout Components\n\nkompozr provides helpers to organize your UI components into rows, sections,\ncontainers, and layouts.\n\n#### Action Row\n\nUse `row` only to group buttons. Discord allows only one select menu per row,\nand kompozr's select wrappers already return a row containing the select menu.\n\n```ts\nconst row = k.row(\n  k.button.success({ cid: \"ok\", label: \"OK\" }),\n  k.button.danger({ cid: \"cancel\", label: \"Cancel\" })\n);\n```\n\n#### Section\n\nSections let you combine text and an accessory (like a button or select) in a\nsingle block. Use `section` to align text (max 3 text display) side by side with\nan accessory, such as a button or a thumbnail. The main content can be a plain\nstring or a component created with `k.text`. This makes it easy to display a\nmessage with an interactive element or image next to it.\n\n```ts\nconst section = k.section({\n  components: [\"Welcome to the server!\", k.text(\"Enjoy your stay!\")],\n  accessory: k.button.primary({ cid: \"welcome\", label: \"Say Hi!\" }),\n});\n```\n\n#### Separator\n\nSeparators visually divide content. Choose from different sizes and visibility.\n\n```ts\nk.separator.small; // small spacing\nk.separator.large; // large spacing\nk.separator.smallHidden; // small spacing without divider (only space)\nk.separator.largeHidden; // large spacing without divider (only space)\n```\n\n#### Container\n\nContainers are an layout block for messages, is a component composer, allowing\nyou to group sections, rows, separators, and other components. You can also set\na color for the container.\n\n```ts\nconst container = k.container({\n  components: [\n    section,\n    k.row(\n      k.button.success({ cid: \"ok\", label: \"OK\" }),\n      k.button.danger({ cid: \"cancel\", label: \"Cancel\" })\n    ),\n    k.separator.small,\n    \"good text here.\",\n    k.text(\"line 1\", \"line 2\"),\n  ],\n  color: \"Blurple\", // or [114,137,218], #ff0000, 0xff\n});\n```\n\n#### Layout (Base)\n\nThe `layout` utility is a simple helper that lets you combine any\ncomponents—including plain strings—into a single array. This means you can use\nstrings directly in your layouts without always needing to wrap them with\n`k.text` or a text display builder. It's mainly for convenience and advanced\ncustom layouts, and does not support color like `container`.\n\n```ts\nconst layout = k.layout(\n  k.text(\"Header\"),\n  k.row(\n    k.button.primary({ cid: \"a\", label: \"A\" }),\n    k.button.secondary({ cid: \"b\", label: \"B\" })\n  ),\n  k.separator.small,\n  \"Hello World!\"\n);\n```\n\n---\n\n### Content Components\n\nkompozr also provides helpers for displaying text, images, files, and media\ngalleries.\n\n#### Text Display\n\nDisplay plain or formatted text in your UI.\n\n```ts\nconst text = k.text(\"Hello, world!\");\nconst multiLineText = k.text(\"Line1\", \"Line2\", \"Line3\");\n```\n\n#### Thumbnail\n\nAdd a thumbnail image with an optional description.\n\n```ts\nconst thumbnail = k.thumbnail({\n  url: \"https://example.com/thumb.png\",\n  description: \"A thumbnail\",\n});\n```\n\n#### File\n\nAttach a file to your message, with optional spoiler support.\n\n```ts\nconst file = k.file({\n  url: \"https://example.com/file.pdf\",\n  spoiler: true,\n});\n```\n\n#### Media Gallery\n\nDisplay a gallery of images or media files. Each item can have a description and\nbe marked as a spoiler.\n\n```ts\nconst gallery = k.gallery(\n  { url: \"https://example.com/image1.png\", description: \"First image\" },\n  { url: \"https://example.com/image2.png\", spoiler: true }\n);\n```\n\n---\n\n### Reactive Components\n\nkompozr also provides a set of **reactive utilities** for advanced UI\ncomposition and state management. These are useful for building dynamic,\nstateful, or memoized UI fragments in your Discord bot.\n\n#### When to Use\n\n- When you want to **reuse UI fragments** with different props (like React\n  fragments).\n- When you need to **memoize** expensive UI computations and only update when\n  dependencies change.\n- When you want to **manage local state** for a UI component or section.\n\n---\n\n#### `k.fragment<Props>`\n\nCreates a reusable UI fragment (like a functional component).  \nUse when you want to generate repeated or parameterized UI blocks.\n\n**Example:**\n\n```ts\ninterface User {\n  id: string;\n  username: string;\n}\n\n// type anotation only is necessary in typescript projects.\n// In javascript projects just call k.fragment(...)\n\nconst UserSection = k.fragment<User>((user) =>\n  k.section({\n    components: [`User: ${user.username}`],\n    accessory: k.button.primary({ cid: `user_${user.id}`, label: \"Select\" }),\n  })\n);\n\n// Usage:\nconst users = [\n  { id: \"1\", username: \"Alice\" },\n  { id: \"2\", username: \"Bob\" },\n];\nconst userSections = UserSection(users); // returns an array of sections\n```\n\n**Use case:**  \nReusable UI blocks for lists, cards, or repeated sections.\n\n---\n\n#### `k.memo`\n\nMemoizes a UI fragment, only recomputing when dependencies change.  \nUse when you have expensive UI generation logic and want to avoid unnecessary\nrecomputation.\n\n**Example:**\n\n```ts\ninterface Props {\n  value: number;\n}\n\n// type anotation only is necessary in typescript projects.\n// In javascript projects just use (props) => ... and (props) => [...]\n\nconst ExpensiveSection = k.memo(\n  (props: Props) =>\n    k.section({\n      components: [`Value: ${props.value}`],\n      accessory: k.button.primary({ cid: \"btn\", label: \"Go\" }),\n    }),\n  (props: Props) => [props.value] // dependencies\n);\n\n// Usage:\nconst section = ExpensiveSection({ value: 42 }); // build\n\nExpensiveSection({ value: 42 }); // cached\nExpensiveSection({ value: 44 }); // rebuild because dependencies are changed\nExpensiveSection({ value: 44 }); // cached\nExpensiveSection({ value: 42 }); // rebuild because dependencies are changed\n```\n\n**Use case:**  \nPerformance optimization for dynamic UIs that depend on changing props.\n\n---\n\n#### `k.stateful`\n\nCreates a stateful UI component with local state and an update method.  \nUse when you want to encapsulate state and rendering logic together.\n\n**Example:**\n\n```ts\nconst counter = k.stateful({ count: 0 }, (state) =>\n  k.section({\n    components: [`Count: ${state.count}`],\n    accessory: k.button.primary({ cid: \"inc\", label: \"Increment\" }),\n  })\n);\n\n// Usage:\ncounter.render(); // renders with current state\ncounter.update({ count: counter.state.count + 1 }); // update state\n```\n\n**Use case:**  \nLocal state management for interactive or dynamic UI sections.\n\n---\n\n## Full Example\n\n```ts\nimport { k } from \"kompozr\";\n\nconst button = k.button.success({\n  cid: \"ok_btn\",\n  label: \"OK\",\n});\n\nconst gallery = k.gallery({\n  url: \"https://example.com/cat.png\",\n  description: \"A cute cat\",\n});\n\nconst message = k.container({\n  components: [\n    k.section({\n      components: [\"Check out this gallery!\"],\n      acessory: button,\n    }),\n    gallery,\n    k.separator.small,\n    k.text(\"Thanks for using kompozr!\"),\n  ],\n  color: \"Green\",\n});\n\n// Send `message` as your bot's response\n```\n\n---\n\n## Full Example with Reactive Components\n\n```ts\nconst UserCard = k.fragment<User>((user) =>\n  k.section({\n    components: [`👤 ${user.name}`],\n    accessory: k.button.primary({ cid: `select_${user.id}`, label: \"Select\" }),\n  })\n);\n\nconst userList: User[] = [\n  { id: \"1\", name: \"Alice\" },\n  { id: \"2\", name: \"Bob\" },\n];\n\nconst message = k.container({\n  components: [\n    ...UserCard(userList), // list of sections\n    k.separator.small,\n    k.text(\"Select a user!\"),\n  ],\n});\n```\n\n---\n\n## API Reference\n\nAll builder functions return Discord.js builder instances, ready to be used in\nyour bot's responses.\n\n- **Buttons:** `k.button.primary`, `k.button.secondary`, `k.button.success`,\n  `k.button.danger`, `k.button.link`\n- **Select Menus:** `k.select.string`, `k.select.role`, `k.select.user`,\n  `k.select.channel`, `k.select.mentionable`\n- **Populated Select Menus Values:** `k.selectValue.user`, `k.selectValue.role`,\n  `k.selectValue.channel`\n- **Modals & Inputs:** `k.modal`, `k.input.short`, `k.input.paragraph`\n- **Layout:** `k.row`, `k.section`, `k.container`, `k.separator`, `k.layout`\n- **Content:** `k.text`, `k.thumbnail`, `k.gallery`, `k.file`\n- **Reactive:** `k.memo`, `k.stateful`, `k.fragment`\n\n---\n\n## TypeScript Support\n\nkompozr is written in TypeScript and ships with full type definitions.\n\n---\n\n## Contributing\n\nkompozr is **open source** and contributions are welcome!  \nIf you have suggestions, bug reports, or want to add new features/components,\nplease open an issue or PR on [GitHub](https://github.com/primepvi/kompozr).\n\n---\n\n## License\n\nMIT\n\n---\n\n> Made with ❤️ by [primepvi](https://github.com/primepvi)\n","readmeFilename":"README.md"}