{"_id":"@dotted-labs/ngx-tailwind-modal","_rev":"16-73bc87f166fcdd001053ec23f27cd7b3","name":"@dotted-labs/ngx-tailwind-modal","dist-tags":{"latest":"0.1.2"},"versions":{"0.0.1":{"name":"@dotted-labs/ngx-tailwind-modal","version":"0.0.1","keywords":["@dotted-labs/ngx-tailwind-modal","ngx-tailwind-modal","daisy-modal","typescript","angular"],"author":{"name":"Dotted Labs","email":"info@dottedlabs.dev"},"license":"MIT","_id":"@dotted-labs/ngx-tailwind-modal@0.0.1","maintainers":[{"name":"luismdev","email":"lm.torresrivera@gmail.com"}],"homepage":"https://github.com/dotted-labs/ngx-tailwind-modal","bugs":{"url":"https://github.com/dotted-labs/ngx-tailwind-modal/issues"},"dist":{"shasum":"47f48f7820b84e27c9190f4a239ddd42f822cff0","tarball":"https://registry.npmjs.org/@dotted-labs/ngx-tailwind-modal/-/ngx-tailwind-modal-0.0.1.tgz","fileCount":16,"integrity":"sha512-9GEI4uwA3n8LLVozd+5bGGuLAQaNMDedyLE+WDYBdVfVhLxgSofQwcCsKPUCSkURhmh1nFgWHWUNXM9Rgmta5w==","signatures":[{"sig":"MEUCIQCxaLFfCgkauPZTmO+nLHLkflZ/a1nX/xwA/97o4U3h5QIgVu/ipV1atVg7YAbvgLi7MP6p5/iGWDI15/ns8yGt5Y0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":124857},"module":"fesm2022/dotted-labs-ngx-tailwind-modal.mjs","exports":{".":{"types":"./index.d.ts","default":"./fesm2022/dotted-labs-ngx-tailwind-modal.mjs"},"./styles":{"css":"./styles/ngx-tailwind-modal.css"},"./package.json":{"default":"./package.json"}},"gitHead":"065c554e120a69aaa4d6ba31099287d07b54da94","private":false,"typings":"index.d.ts","_npmUser":{"name":"luismdev","email":"lm.torresrivera@gmail.com"},"repository":{"url":"git+https://github.com/dotted-labs/ngx-tailwind-modal.git","type":"git"},"_npmVersion":"10.8.2","description":"Daisy and Tailwind CSS modal handler to manage modals and data everywhere in Angular apps.","directories":{},"sideEffects":false,"_nodeVersion":"20.18.3","dependencies":{"tslib":"^2.6.2"},"_hasShrinkwrap":false,"peerDependencies":{"zone.js":">=0.15.0","@angular/core":">=19.0.0","@angular/common":">=19.0.0","@angular/platform-browser":">=19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ngx-tailwind-modal_0.0.1_1748333131381_0.5016954074672784","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@dotted-labs/ngx-tailwind-modal","version":"0.0.2","keywords":["@dotted-labs/ngx-tailwind-modal","ngx-tailwind-modal","daisy-modal","typescript","angular"],"author":{"name":"Dotted Labs","email":"info@dottedlabs.dev"},"license":"MIT","_id":"@dotted-labs/ngx-tailwind-modal@0.0.2","maintainers":[{"name":"luismdev","email":"lm.torresrivera@gmail.com"}],"homepage":"https://github.com/dotted-labs/ngx-tailwind-modal","bugs":{"url":"https://github.com/dotted-labs/ngx-tailwind-modal/issues"},"dist":{"shasum":"adba1fc707de812d327e53f624f53ba1bd448d39","tarball":"https://registry.npmjs.org/@dotted-labs/ngx-tailwind-modal/-/ngx-tailwind-modal-0.0.2.tgz","fileCount":17,"integrity":"sha512-+fXxfo0E39NNVpBJpZsabWjG1F2jgS/O/KE+icM6HVkhc4De/xFRxBGZYSfD0ACOW7qhpSRWvN7/9rYjjufIIQ==","signatures":[{"sig":"MEUCIQCx+J99kMH3XNo/pGRqLbxJ0u82N+fSQ7dxly3tz10qKgIgeK/+aNp40FqrsL/CbAe5hUDF6ng2lN4QPpaJfMJo5vk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":126012},"module":"fesm2022/dotted-labs-ngx-tailwind-modal.mjs","exports":{".":{"types":"./index.d.ts","default":"./fesm2022/dotted-labs-ngx-tailwind-modal.mjs"},"./styles":{"css":"./styles/ngx-tailwind-modal.css"},"./package.json":{"default":"./package.json"}},"gitHead":"bd2e379d48197c254db34ab3e80e36b898f98da8","private":false,"typings":"index.d.ts","_npmUser":{"name":"luismdev","email":"lm.torresrivera@gmail.com"},"repository":{"url":"git+https://github.com/dotted-labs/ngx-tailwind-modal.git","type":"git"},"_npmVersion":"10.8.2","description":"Daisy and Tailwind CSS modal handler to manage modals and data everywhere in Angular apps.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.1","dependencies":{"tslib":"^2.6.2"},"_hasShrinkwrap":false,"peerDependencies":{"zone.js":">=0.15.0","@angular/core":">=19.0.0","@angular/common":">=19.0.0","@angular/platform-browser":">=19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ngx-tailwind-modal_0.0.2_1748336150390_0.4820194282739707","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@dotted-labs/ngx-tailwind-modal","version":"0.0.3","keywords":["@dotted-labs/ngx-tailwind-modal","ngx-tailwind-modal","daisy-modal","typescript","angular"],"author":{"name":"Dotted Labs","email":"info@dottedlabs.dev"},"license":"MIT","_id":"@dotted-labs/ngx-tailwind-modal@0.0.3","maintainers":[{"name":"luismdev","email":"lm.torresrivera@gmail.com"}],"homepage":"https://github.com/dotted-labs/ngx-tailwind-modal","bugs":{"url":"https://github.com/dotted-labs/ngx-tailwind-modal/issues"},"dist":{"shasum":"706379ecd432643431d8f54f2252e25c2e8b0f99","tarball":"https://registry.npmjs.org/@dotted-labs/ngx-tailwind-modal/-/ngx-tailwind-modal-0.0.3.tgz","fileCount":17,"integrity":"sha512-sZ3vBF9FB5iOaXrZCykYCOjRqC/dh7RzCbwP5dLwqkn6gCRvWth7ZTjnvXSCg/7V9/h11ulCI/yRlWTcUThWYA==","signatures":[{"sig":"MEQCIG/5KE/YsN2fbtqkuZLKozAVxKvkDhGTCjOKnCOCkV5FAiA9ouU35jLGelsRYkLuOIM2iAJKXo3L1Pebj5DUvAI8cQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":126382},"module":"fesm2022/dotted-labs-ngx-tailwind-modal.mjs","exports":{".":{"types":"./index.d.ts","default":"./fesm2022/dotted-labs-ngx-tailwind-modal.mjs"},"./styles":{"css":"./styles/ngx-tailwind-modal.css"},"./package.json":{"default":"./package.json"}},"gitHead":"699c68dd2ffe888fb9cd1eb7fc2833ce529bf680","private":false,"typings":"index.d.ts","_npmUser":{"name":"luismdev","email":"lm.torresrivera@gmail.com"},"repository":{"url":"git+https://github.com/dotted-labs/ngx-tailwind-modal.git","type":"git"},"_npmVersion":"10.8.2","description":"Daisy and Tailwind CSS modal handler to manage modals and data everywhere in Angular apps.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.1","dependencies":{"tslib":"^2.6.2"},"_hasShrinkwrap":false,"peerDependencies":{"zone.js":">=0.15.0","@angular/core":">=19.0.0","@angular/common":">=19.0.0","@angular/platform-browser":">=19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ngx-tailwind-modal_0.0.3_1748345266913_0.8880757039885852","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@dotted-labs/ngx-tailwind-modal","version":"0.0.4","keywords":["@dotted-labs/ngx-tailwind-modal","ngx-tailwind-modal","daisy-modal","typescript","angular"],"author":{"name":"Dotted Labs","email":"info@dottedlabs.dev"},"license":"MIT","_id":"@dotted-labs/ngx-tailwind-modal@0.0.4","maintainers":[{"name":"luismdev","email":"lm.torresrivera@gmail.com"}],"homepage":"https://github.com/dotted-labs/ngx-tailwind-modal","bugs":{"url":"https://github.com/dotted-labs/ngx-tailwind-modal/issues"},"dist":{"shasum":"b116767d0685c1c45558e87ca1f647edf445247d","tarball":"https://registry.npmjs.org/@dotted-labs/ngx-tailwind-modal/-/ngx-tailwind-modal-0.0.4.tgz","fileCount":17,"integrity":"sha512-MYdq9Ib8V1h393H3qazov2d6aRMPa5JXzt/OK26z6PVm3OfJLxWJnga71tx5lKkP5aFbZOGx43GyF+I8o3oQ+Q==","signatures":[{"sig":"MEQCIFByrNcQjeRGR3X1ZIzFQngjee3CLbM7uWWNqM8CVo4eAiBMqc2TSRul6fM1IpZfTEqw2zZtnJ0GYiRSGd+sAYXlIg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":126392},"module":"fesm2022/dotted-labs-ngx-tailwind-modal.mjs","exports":{".":{"types":"./index.d.ts","default":"./fesm2022/dotted-labs-ngx-tailwind-modal.mjs"},"./styles":{"css":"./styles/ngx-tailwind-modal.css"},"./package.json":{"default":"./package.json"}},"gitHead":"500d6c5d395f0934f425a5588bc5f0c82ca75a20","private":false,"typings":"index.d.ts","_npmUser":{"name":"luismdev","email":"lm.torresrivera@gmail.com"},"repository":{"url":"git+https://github.com/dotted-labs/ngx-tailwind-modal.git","type":"git"},"_npmVersion":"10.8.2","description":"Daisy and Tailwind CSS modal handler to manage modals and data everywhere in Angular apps.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.1","dependencies":{"tslib":"^2.6.2"},"_hasShrinkwrap":false,"peerDependencies":{"zone.js":">=0.15.0","@angular/core":">=19.0.0","@angular/common":">=19.0.0","@angular/platform-browser":">=19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ngx-tailwind-modal_0.0.4_1748345314570_0.9261775147960993","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@dotted-labs/ngx-tailwind-modal","version":"0.0.5","keywords":["@dotted-labs/ngx-tailwind-modal","ngx-tailwind-modal","daisy-modal","typescript","angular"],"author":{"name":"Dotted Labs","email":"info@dottedlabs.dev"},"license":"MIT","_id":"@dotted-labs/ngx-tailwind-modal@0.0.5","maintainers":[{"name":"luismdev","email":"lm.torresrivera@gmail.com"}],"homepage":"https://github.com/dotted-labs/ngx-tailwind-modal","bugs":{"url":"https://github.com/dotted-labs/ngx-tailwind-modal/issues"},"dist":{"shasum":"d0d059debd1adf12cb0c5afdc8547c13b36238cd","tarball":"https://registry.npmjs.org/@dotted-labs/ngx-tailwind-modal/-/ngx-tailwind-modal-0.0.5.tgz","fileCount":18,"integrity":"sha512-xaFpbGq4JaNZ6P/dGp8krlxhSk11ei4t9evbtm6rPDRkj2sUW0D5k5TgSQnkbT56MM9RD9mU03sbrQTOX57FpA==","signatures":[{"sig":"MEUCIHRgu1tkx/PPgk6GIo0ntl6MwwyCIHX2K5q5oigOpQ3NAiEAoOWbUaayPD5L7PFKDk8RnqJIOrDwbZ96go4UZBvYY8k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128695},"module":"fesm2022/dotted-labs-ngx-tailwind-modal.mjs","exports":{".":{"types":"./index.d.ts","default":"./fesm2022/dotted-labs-ngx-tailwind-modal.mjs"},"./styles":{"css":"./styles/ngx-tailwind-modal.css"},"./package.json":{"default":"./package.json"}},"gitHead":"cd889bbb7c7a3b84894f53a18b02f9d59138c530","private":false,"typings":"index.d.ts","_npmUser":{"name":"luismdev","email":"lm.torresrivera@gmail.com"},"repository":{"url":"git+https://github.com/dotted-labs/ngx-tailwind-modal.git","type":"git"},"_npmVersion":"10.8.2","description":"Daisy and Tailwind CSS modal handler to manage modals and data everywhere in Angular apps.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.1","dependencies":{"tslib":"^2.6.2"},"_hasShrinkwrap":false,"peerDependencies":{"zone.js":">=0.15.0","@angular/core":">=19.0.0","@angular/common":">=19.0.0","@angular/platform-browser":">=19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ngx-tailwind-modal_0.0.5_1748345962811_0.32922857198210287","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"@dotted-labs/ngx-tailwind-modal","version":"0.0.6","keywords":["@dotted-labs/ngx-tailwind-modal","ngx-tailwind-modal","daisy-modal","typescript","angular"],"author":{"name":"Dotted Labs","email":"info@dottedlabs.dev"},"license":"MIT","_id":"@dotted-labs/ngx-tailwind-modal@0.0.6","maintainers":[{"name":"luismdev","email":"lm.torresrivera@gmail.com"}],"homepage":"https://github.com/dotted-labs/ngx-tailwind-modal","bugs":{"url":"https://github.com/dotted-labs/ngx-tailwind-modal/issues"},"dist":{"shasum":"f157dd04e9edbea79ef0faa5a62022db35c05890","tarball":"https://registry.npmjs.org/@dotted-labs/ngx-tailwind-modal/-/ngx-tailwind-modal-0.0.6.tgz","fileCount":18,"integrity":"sha512-sq+4v96GEjNF6CRb6YSrdtEuEgoOj5RnH2/3FcFiVBDmLUy5BeTrlx3pUJgZETiifdjVRhSYdbbjC+pdCtUO6g==","signatures":[{"sig":"MEYCIQC1dMp3tNfO5WsPZPaOXv11fUCSkwWqQQzyaR/hQDg23gIhAMtewu4a6ZJ+BGrBQ0+27WzyWcwGoXrm8MuNiwrpOZBi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128858},"module":"fesm2022/dotted-labs-ngx-tailwind-modal.mjs","exports":{".":{"types":"./index.d.ts","default":"./fesm2022/dotted-labs-ngx-tailwind-modal.mjs"},"./styles":{"css":"./styles/ngx-tailwind-modal.css"},"./package.json":{"default":"./package.json"}},"gitHead":"a2d320af57ade1f246db1389bb4a6175ec1ae4f8","private":false,"typings":"index.d.ts","_npmUser":{"name":"luismdev","email":"lm.torresrivera@gmail.com"},"repository":{"url":"git+https://github.com/dotted-labs/ngx-tailwind-modal.git","type":"git"},"_npmVersion":"10.8.2","description":"Daisy and Tailwind CSS modal handler to manage modals and data everywhere in Angular apps.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.1","dependencies":{"tslib":"^2.6.2"},"_hasShrinkwrap":false,"peerDependencies":{"zone.js":">=0.15.0","@angular/core":">=19.0.0","@angular/common":">=19.0.0","@angular/platform-browser":">=19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ngx-tailwind-modal_0.0.6_1748349364939_0.853515129858448","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"@dotted-labs/ngx-tailwind-modal","version":"0.0.8","keywords":["@dotted-labs/ngx-tailwind-modal","ngx-tailwind-modal","daisy-modal","typescript","angular"],"author":{"name":"Dotted Labs","email":"info@dottedlabs.dev"},"license":"MIT","_id":"@dotted-labs/ngx-tailwind-modal@0.0.8","maintainers":[{"name":"luismdev","email":"lm.torresrivera@gmail.com"}],"homepage":"https://github.com/dotted-labs/ngx-tailwind-modal","bugs":{"url":"https://github.com/dotted-labs/ngx-tailwind-modal/issues"},"dist":{"shasum":"8c19afe66f37f45a5e0a5b19d547a51720a9943e","tarball":"https://registry.npmjs.org/@dotted-labs/ngx-tailwind-modal/-/ngx-tailwind-modal-0.0.8.tgz","fileCount":17,"integrity":"sha512-7J3DsO+YHI4dlYGMmrEXgSHgFV1xFMSSvDjUrUNdYBpfoyrdZo8IZXzEzsCg+yXhCs4CmOsuVvguEFZTcV4KIA==","signatures":[{"sig":"MEUCIQD2vstMxcsmDorQWDUzDKcUzFe7ugEQfNl3H12QRsvZgwIgKS96Zgp0rlLOVYNz2AMb3unY7UT3t+omvcnl3GYu78M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":127139},"module":"fesm2022/dotted-labs-ngx-tailwind-modal.mjs","exports":{".":{"types":"./index.d.ts","default":"./fesm2022/dotted-labs-ngx-tailwind-modal.mjs"},"./styles":{"css":"./styles/ngx-tailwind-modal.css"},"./package.json":{"default":"./package.json"}},"gitHead":"4c7a761a0fe6a9b0944617b63a3b23a78d0bd5a7","private":false,"typings":"index.d.ts","_npmUser":{"name":"luismdev","email":"lm.torresrivera@gmail.com"},"repository":{"url":"git+https://github.com/dotted-labs/ngx-tailwind-modal.git","type":"git"},"_npmVersion":"10.8.2","description":"Daisy and Tailwind CSS modal handler to manage modals and data everywhere in Angular apps.","directories":{},"sideEffects":false,"_nodeVersion":"20.18.3","dependencies":{"tslib":"^2.6.2"},"_hasShrinkwrap":false,"peerDependencies":{"zone.js":">=0.15.0","@angular/core":">=19.0.0","@angular/common":">=19.0.0","@angular/platform-browser":">=19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ngx-tailwind-modal_0.0.8_1748350513470_0.7880980506778879","host":"s3://npm-registry-packages-npm-production"}},"0.0.9":{"name":"@dotted-labs/ngx-tailwind-modal","version":"0.0.9","keywords":["@dotted-labs/ngx-tailwind-modal","ngx-tailwind-modal","daisy-modal","typescript","angular"],"author":{"name":"Dotted Labs","email":"info@dottedlabs.dev"},"license":"MIT","_id":"@dotted-labs/ngx-tailwind-modal@0.0.9","maintainers":[{"name":"luismdev","email":"lm.torresrivera@gmail.com"}],"homepage":"https://github.com/dotted-labs/ngx-tailwind-modal","bugs":{"url":"https://github.com/dotted-labs/ngx-tailwind-modal/issues"},"dist":{"shasum":"8b2a4efeab5aec71f3fb4a37b360667067ad4a8d","tarball":"https://registry.npmjs.org/@dotted-labs/ngx-tailwind-modal/-/ngx-tailwind-modal-0.0.9.tgz","fileCount":17,"integrity":"sha512-+BcG/GANIBqOXLop9SkFnobAbL1bbn360vqrFisYOoE0mf6L5bJ9Xuvou8iWhsE701o6QxApoRd0j8QUHWXlmw==","signatures":[{"sig":"MEQCIDpA6G/c+0KrERghKjMlMWW/6D9v31nKcgoS+kDkqwPZAiAQWn53tXUS/zJh0QBe0bNF2jSe3RlHcuCBYnpivt21Bw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128873},"module":"fesm2022/dotted-labs-ngx-tailwind-modal.mjs","exports":{".":{"types":"./index.d.ts","default":"./fesm2022/dotted-labs-ngx-tailwind-modal.mjs"},"./styles":{"css":"./styles/ngx-tailwind-modal.css"},"./package.json":{"default":"./package.json"}},"gitHead":"4c7a761a0fe6a9b0944617b63a3b23a78d0bd5a7","private":false,"typings":"index.d.ts","_npmUser":{"name":"luismdev","email":"lm.torresrivera@gmail.com"},"repository":{"url":"git+https://github.com/dotted-labs/ngx-tailwind-modal.git","type":"git"},"_npmVersion":"10.8.2","description":"Daisy and Tailwind CSS modal handler to manage modals and data everywhere in Angular apps.","directories":{},"sideEffects":false,"_nodeVersion":"20.18.3","dependencies":{"tslib":"^2.6.2"},"_hasShrinkwrap":false,"peerDependencies":{"zone.js":">=0.15.0","@angular/core":">=19.0.0","@angular/common":">=19.0.0","@angular/platform-browser":">=19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ngx-tailwind-modal_0.0.9_1748351464475_0.6247492439172451","host":"s3://npm-registry-packages-npm-production"}},"0.0.10":{"name":"@dotted-labs/ngx-tailwind-modal","version":"0.0.10","keywords":["@dotted-labs/ngx-tailwind-modal","ngx-tailwind-modal","daisy-modal","typescript","angular"],"author":{"name":"Dotted Labs","email":"info@dottedlabs.dev"},"license":"MIT","_id":"@dotted-labs/ngx-tailwind-modal@0.0.10","maintainers":[{"name":"luismdev","email":"lm.torresrivera@gmail.com"}],"homepage":"https://github.com/dotted-labs/ngx-tailwind-modal","bugs":{"url":"https://github.com/dotted-labs/ngx-tailwind-modal/issues"},"dist":{"shasum":"20d842b3fc4124ebfae120e4b2ac35ebd8ae26e5","tarball":"https://registry.npmjs.org/@dotted-labs/ngx-tailwind-modal/-/ngx-tailwind-modal-0.0.10.tgz","fileCount":18,"integrity":"sha512-sepfd8XQUUWiRK75L6TDUefFpNnHiOCDo5oeuOYkvnEYtSJmrebbC3ca953HGeaZEjaOE//a4boVpxRsTMDxRg==","signatures":[{"sig":"MEQCIFAS6ZAL1b2Dp4ieRMVGDPJBf8NvTen5QNU0MwhOEP3OAiBWZq3ycPWkE+p7dONevS1nh1/PoJS1Mlohsc7EQEPhew==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":131962},"module":"fesm2022/dotted-labs-ngx-tailwind-modal.mjs","exports":{".":{"types":"./index.d.ts","default":"./fesm2022/dotted-labs-ngx-tailwind-modal.mjs"},"./styles":{"css":"./styles/ngx-tailwind-modal.css"},"./package.json":{"default":"./package.json"}},"gitHead":"4c7a761a0fe6a9b0944617b63a3b23a78d0bd5a7","private":false,"typings":"index.d.ts","_npmUser":{"name":"luismdev","email":"lm.torresrivera@gmail.com"},"repository":{"url":"git+https://github.com/dotted-labs/ngx-tailwind-modal.git","type":"git"},"_npmVersion":"10.8.2","description":"Daisy and Tailwind CSS modal handler to manage modals and data everywhere in Angular apps.","directories":{},"sideEffects":false,"_nodeVersion":"20.18.3","dependencies":{"tslib":"^2.6.2"},"_hasShrinkwrap":false,"peerDependencies":{"zone.js":">=0.15.0","@angular/core":">=19.0.0","@angular/common":">=19.0.0","@angular/platform-browser":">=19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ngx-tailwind-modal_0.0.10_1748354722670_0.8040492190371245","host":"s3://npm-registry-packages-npm-production"}},"0.0.11":{"name":"@dotted-labs/ngx-tailwind-modal","version":"0.0.11","keywords":["@dotted-labs/ngx-tailwind-modal","ngx-tailwind-modal","daisy-modal","typescript","angular"],"author":{"name":"Dotted Labs","email":"info@dottedlabs.dev"},"license":"MIT","_id":"@dotted-labs/ngx-tailwind-modal@0.0.11","maintainers":[{"name":"luismdev","email":"lm.torresrivera@gmail.com"}],"homepage":"https://github.com/dotted-labs/ngx-tailwind-modal","bugs":{"url":"https://github.com/dotted-labs/ngx-tailwind-modal/issues"},"dist":{"shasum":"d34e1a65f9a5606a1e151b8f4d9b785b20e559d2","tarball":"https://registry.npmjs.org/@dotted-labs/ngx-tailwind-modal/-/ngx-tailwind-modal-0.0.11.tgz","fileCount":18,"integrity":"sha512-45sxy75+QfKDDgCyL5QYDWiThSGLkoCuRn/IOupEZYzzi5JiH6DA1TmkJpZafaETmHabrJJlFQN6eyKAttvKZg==","signatures":[{"sig":"MEYCIQCUxpvuDFS2wPvd9n3d9mVVBivxzN0vRxx0mhH0DPRTPQIhAJh3yS/dgqEx+UKK3Mjw2MXAdEo1qbcbaf6xY3WYUnqv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128432},"module":"fesm2022/dotted-labs-ngx-tailwind-modal.mjs","exports":{".":{"types":"./index.d.ts","default":"./fesm2022/dotted-labs-ngx-tailwind-modal.mjs"},"./styles":{"css":"./styles/ngx-tailwind-modal.css"},"./package.json":{"default":"./package.json"}},"gitHead":"4c7a761a0fe6a9b0944617b63a3b23a78d0bd5a7","private":false,"typings":"index.d.ts","_npmUser":{"name":"luismdev","email":"lm.torresrivera@gmail.com"},"repository":{"url":"git+https://github.com/dotted-labs/ngx-tailwind-modal.git","type":"git"},"_npmVersion":"10.8.2","description":"Daisy and Tailwind CSS modal handler to manage modals and data everywhere in Angular apps.","directories":{},"sideEffects":false,"_nodeVersion":"20.18.3","dependencies":{"tslib":"^2.6.2"},"_hasShrinkwrap":false,"peerDependencies":{"zone.js":">=0.15.0","@angular/core":">=19.0.0","@angular/common":">=19.0.0","@angular/platform-browser":">=19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ngx-tailwind-modal_0.0.11_1748354928476_0.874268173096761","host":"s3://npm-registry-packages-npm-production"}},"0.0.12":{"name":"@dotted-labs/ngx-tailwind-modal","version":"0.0.12","keywords":["@dotted-labs/ngx-tailwind-modal","ngx-tailwind-modal","daisy-modal","typescript","angular"],"author":{"name":"Dotted Labs","email":"info@dottedlabs.dev"},"license":"MIT","_id":"@dotted-labs/ngx-tailwind-modal@0.0.12","maintainers":[{"name":"luismdev","email":"lm.torresrivera@gmail.com"}],"homepage":"https://github.com/dotted-labs/ngx-tailwind-modal","bugs":{"url":"https://github.com/dotted-labs/ngx-tailwind-modal/issues"},"dist":{"shasum":"8499c5894f003b7217fc5224248517aa639cd872","tarball":"https://registry.npmjs.org/@dotted-labs/ngx-tailwind-modal/-/ngx-tailwind-modal-0.0.12.tgz","fileCount":19,"integrity":"sha512-KiX6ykd0fvQmWJP/fVSxVKETsHv2XFOwGLjhhea90bi58JZH/W8BXtOJFbawQsGHHRbm2zIyntuQMeY9h9keuQ==","signatures":[{"sig":"MEUCIQCSZfB+l0jRtIQWTZrbxfHTwTn0ac1iENaPbECPR+ce0AIgFm9Br2rMW58mEoC6PBRPX9wYhB4sr/iISnRdHneZUzU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128885},"module":"fesm2022/dotted-labs-ngx-tailwind-modal.mjs","exports":{".":{"types":"./index.d.ts","default":"./fesm2022/dotted-labs-ngx-tailwind-modal.mjs"},"./styles":{"css":"./styles/ngx-tailwind-modal.css"},"./package.json":{"default":"./package.json"}},"gitHead":"c62aa86af44af7ee4ff4bf7e25138f20bcfc8e41","private":false,"typings":"index.d.ts","_npmUser":{"name":"luismdev","email":"lm.torresrivera@gmail.com"},"repository":{"url":"git+https://github.com/dotted-labs/ngx-tailwind-modal.git","type":"git"},"_npmVersion":"10.8.2","description":"Daisy and Tailwind CSS modal handler to manage modals and data everywhere in Angular apps.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.1","dependencies":{"tslib":"^2.6.2"},"_hasShrinkwrap":false,"peerDependencies":{"zone.js":">=0.15.0","@angular/core":">=19.0.0","@angular/common":">=19.0.0","@angular/platform-browser":">=19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ngx-tailwind-modal_0.0.12_1748359922424_0.4317714103723984","host":"s3://npm-registry-packages-npm-production"}},"0.0.13":{"name":"@dotted-labs/ngx-tailwind-modal","version":"0.0.13","keywords":["@dotted-labs/ngx-tailwind-modal","ngx-tailwind-modal","daisy-modal","typescript","angular"],"author":{"name":"Dotted Labs","email":"info@dottedlabs.dev"},"license":"MIT","_id":"@dotted-labs/ngx-tailwind-modal@0.0.13","maintainers":[{"name":"luismdev","email":"lm.torresrivera@gmail.com"}],"homepage":"https://github.com/dotted-labs/ngx-tailwind-modal","bugs":{"url":"https://github.com/dotted-labs/ngx-tailwind-modal/issues"},"dist":{"shasum":"4c640bac65f9894b011cd60bfb2af73c37418682","tarball":"https://registry.npmjs.org/@dotted-labs/ngx-tailwind-modal/-/ngx-tailwind-modal-0.0.13.tgz","fileCount":19,"integrity":"sha512-ZXDZZy68FBHVw7HBW8Iojbr8cMe6Iq181rBJXFPOhn9zULkpo1mmkxkkSKhOtza5/H6WqmpjDOgFDIPBHmlJlg==","signatures":[{"sig":"MEUCIQDxR9QWdfeXG3IOJv956wZbjS/LS2+ILwqWnXJyjNwyRgIgeFfCQT/GM8qSBlSF4anySTJO9IhVoGiDw7WVzybZ7Mc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128858},"module":"fesm2022/dotted-labs-ngx-tailwind-modal.mjs","exports":{".":{"types":"./index.d.ts","default":"./fesm2022/dotted-labs-ngx-tailwind-modal.mjs"},"./styles":{"css":"./styles/ngx-tailwind-modal.css"},"./package.json":{"default":"./package.json"}},"gitHead":"9e196a67dc0a57d62c5ca9513e25140324005ad4","private":false,"typings":"index.d.ts","_npmUser":{"name":"luismdev","email":"lm.torresrivera@gmail.com"},"repository":{"url":"git+https://github.com/dotted-labs/ngx-tailwind-modal.git","type":"git"},"_npmVersion":"10.8.2","description":"Daisy and Tailwind CSS modal handler to manage modals and data everywhere in Angular apps.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.1","dependencies":{"tslib":"^2.6.2"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/core":">=19.0.0","@angular/common":">=19.0.0","@angular/platform-browser":">=19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ngx-tailwind-modal_0.0.13_1749125318524_0.08769572718896401","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@dotted-labs/ngx-tailwind-modal","version":"0.1.0","keywords":["@dotted-labs/ngx-tailwind-modal","ngx-tailwind-modal","daisy-modal","typescript","angular"],"author":{"name":"Dotted Labs","email":"info@dottedlabs.dev"},"license":"MIT","_id":"@dotted-labs/ngx-tailwind-modal@0.1.0","maintainers":[{"name":"luismdev","email":"lm.torresrivera@gmail.com"}],"homepage":"https://github.com/dotted-labs/ngx-tailwind-modal","bugs":{"url":"https://github.com/dotted-labs/ngx-tailwind-modal/issues"},"dist":{"shasum":"229052a04f8a5b0e204dd3e82a2aca20c095d6de","tarball":"https://registry.npmjs.org/@dotted-labs/ngx-tailwind-modal/-/ngx-tailwind-modal-0.1.0.tgz","fileCount":23,"integrity":"sha512-6o/hKN77gbdF1gLpHLT6/QVPPUoTxq8dDZJ6VBRbsHry08Zdfmx258aAuJMDmGAf1ZW9c1RSydC4hsGyHHbAgw==","signatures":[{"sig":"MEYCIQDmELApZaXbzWn17XqKAyV+Lg4h8YudB4lBp4DYB5u2awIhAK3SvclflilKehcVes/ukNenohmTYloI1n0/Zdo/8RWm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":232507},"module":"fesm2022/dotted-labs-ngx-tailwind-modal.mjs","exports":{".":{"types":"./index.d.ts","default":"./fesm2022/dotted-labs-ngx-tailwind-modal.mjs"},"./styles":{"css":"./styles/ngx-tailwind-modal.css"},"./package.json":{"default":"./package.json"}},"gitHead":"4a4d3e8e8d372813a93aa697edafad59935b476e","private":false,"typings":"index.d.ts","_npmUser":{"name":"luismdev","email":"lm.torresrivera@gmail.com"},"repository":{"url":"git+https://github.com/dotted-labs/ngx-tailwind-modal.git","type":"git"},"_npmVersion":"10.9.2","description":"Daisy and Tailwind CSS modal handler to manage modals and data everywhere in Angular apps.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.1","dependencies":{"tslib":"^2.6.2"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/core":">=19.0.0","@angular/common":">=19.0.0","@angular/platform-browser":">=19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ngx-tailwind-modal_0.1.0_1754645620438_0.5761203209255132","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@dotted-labs/ngx-tailwind-modal","version":"0.1.1","keywords":["@dotted-labs/ngx-tailwind-modal","ngx-tailwind-modal","daisy-modal","typescript","angular"],"author":{"name":"Dotted Labs","email":"info@dottedlabs.dev"},"license":"MIT","_id":"@dotted-labs/ngx-tailwind-modal@0.1.1","maintainers":[{"name":"luismdev","email":"lm.torresrivera@gmail.com"}],"homepage":"https://github.com/dotted-labs/ngx-tailwind-modal","bugs":{"url":"https://github.com/dotted-labs/ngx-tailwind-modal/issues"},"dist":{"shasum":"045e552504aa43d4f414ef33fd29075f3aaa3bd4","tarball":"https://registry.npmjs.org/@dotted-labs/ngx-tailwind-modal/-/ngx-tailwind-modal-0.1.1.tgz","fileCount":23,"integrity":"sha512-wKyWdV1q2jZRlcJ/DrG/tmgVmX/Mhgc8SVCDHNhXYc5L8qi4iS2UmwIvtGrinwg8T2pTjENii5lWTAMJBWo+Bw==","signatures":[{"sig":"MEQCIBxDZ+FkX7a5MVqvJyB8gsDNWHKTcjrzmrrd97P742cVAiBsW507n72g9JFfIFn6nAsPYtRRppKQOLYMHU3EsKdtNA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":257885},"module":"fesm2022/dotted-labs-ngx-tailwind-modal.mjs","exports":{".":{"types":"./index.d.ts","default":"./fesm2022/dotted-labs-ngx-tailwind-modal.mjs"},"./styles":{"css":"./styles/ngx-tailwind-modal.css"},"./package.json":{"default":"./package.json"}},"gitHead":"422626c41a2e53a150489abf656e5ea7569cee48","private":false,"typings":"index.d.ts","_npmUser":{"name":"luismdev","email":"lm.torresrivera@gmail.com"},"repository":{"url":"git+https://github.com/dotted-labs/ngx-tailwind-modal.git","type":"git"},"_npmVersion":"10.9.2","description":"Daisy and Tailwind CSS modal handler to manage modals and data everywhere in Angular apps.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.1","dependencies":{"tslib":"^2.6.2"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/core":">=19.0.0","@angular/common":">=19.0.0","@angular/platform-browser":">=19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ngx-tailwind-modal_0.1.1_1755605482166_0.06304294523536003","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@dotted-labs/ngx-tailwind-modal","version":"0.1.2","keywords":["@dotted-labs/ngx-tailwind-modal","ngx-tailwind-modal","daisy-modal","typescript","angular"],"author":{"name":"Dotted Labs","email":"info@dottedlabs.dev"},"license":"MIT","_id":"@dotted-labs/ngx-tailwind-modal@0.1.2","maintainers":[{"name":"luismdev","email":"lm.torresrivera@gmail.com"}],"homepage":"https://github.com/dotted-labs/ngx-tailwind-modal","bugs":{"url":"https://github.com/dotted-labs/ngx-tailwind-modal/issues"},"dist":{"shasum":"ecc80d6a3035024114d02bae8b644632187d608c","tarball":"https://registry.npmjs.org/@dotted-labs/ngx-tailwind-modal/-/ngx-tailwind-modal-0.1.2.tgz","fileCount":23,"integrity":"sha512-gb0LagXlegmO4ZX/sOBvSV08pbdcowzeIygGWwOwCoWXZCN8PwUSUIEGbjtrWxpBflZu99g6hQ5S8Fh9t/KgGQ==","signatures":[{"sig":"MEUCIELxl5cwycNM2m7322PLeHkkO34xHngznWv3ZkVHSrpJAiEAh1a8o21oz0TYfTpGDpf0RnabeO353UzUCfgZA2A/PAA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":258320},"module":"fesm2022/dotted-labs-ngx-tailwind-modal.mjs","exports":{".":{"types":"./index.d.ts","default":"./fesm2022/dotted-labs-ngx-tailwind-modal.mjs"},"./styles":{"css":"./styles/ngx-tailwind-modal.css"},"./package.json":{"default":"./package.json"}},"gitHead":"adca27fe3195c3f8dd8014127549067b7cd2b18e","private":false,"typings":"index.d.ts","_npmUser":{"name":"luismdev","email":"lm.torresrivera@gmail.com"},"repository":{"url":"git+https://github.com/dotted-labs/ngx-tailwind-modal.git","type":"git"},"_npmVersion":"10.9.2","description":"Daisy and Tailwind CSS modal handler to manage modals and data everywhere in Angular apps.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.1","dependencies":{"tslib":"^2.6.2"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/core":">=19.0.0","@angular/common":">=19.0.0","@angular/platform-browser":">=19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ngx-tailwind-modal_0.1.2_1755612716665_0.6665785884820596","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2025-05-27T08:05:31.321Z","modified":"2026-08-04T10:34:21.265Z","0.0.1":"2025-05-27T08:05:31.581Z","0.0.2":"2025-05-27T08:55:50.586Z","0.0.3":"2025-05-27T11:27:47.126Z","0.0.4":"2025-05-27T11:28:34.759Z","0.0.5":"2025-05-27T11:39:23.024Z","0.0.6":"2025-05-27T12:36:05.128Z","0.0.8":"2025-05-27T12:55:13.647Z","0.0.9":"2025-05-27T13:11:04.696Z","0.0.10":"2025-05-27T14:05:22.934Z","0.0.11":"2025-05-27T14:08:48.662Z","0.0.12":"2025-05-27T15:32:02.609Z","0.0.13":"2025-06-05T12:08:38.680Z","0.1.0":"2025-08-08T09:33:40.623Z","0.1.1":"2025-08-19T12:11:22.350Z","0.1.2":"2025-08-19T14:11:56.834Z"},"bugs":{"url":"https://github.com/dotted-labs/ngx-tailwind-modal/issues"},"author":{"name":"Dotted Labs","email":"info@dottedlabs.dev"},"license":"MIT","homepage":"https://github.com/dotted-labs/ngx-tailwind-modal","keywords":["@dotted-labs/ngx-tailwind-modal","ngx-tailwind-modal","daisy-modal","typescript","angular"],"repository":{"url":"git+https://github.com/dotted-labs/ngx-tailwind-modal.git","type":"git"},"description":"Daisy and Tailwind CSS modal handler to manage modals and data everywhere in Angular apps.","maintainers":[{"email":"lm.torresrivera@gmail.com","name":"luismdev"},{"email":"sergio.gundin.rodriguez@gmail.com","name":"gunsr"}],"readme":"# @dotted-labs/ngx-tailwind-modal\r\n\r\n[![npm version](https://badge.fury.io/js/@dotted-labs%2Fngx-tailwind-modal.svg)](https://badge.fury.io/js/@dotted-labs%2Fngx-tailwind-modal)\r\n[![Angular](https://img.shields.io/badge/Angular-19-DD0031.svg)](https://angular.io)\r\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.0%2B-blue.svg)](https://www.typescriptlang.org)\r\n[![MIT License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)\r\n\r\nA modern Angular 19 library for creating beautiful, accessible modals with **zero CSS setup required**. Built with **Tailwind CSS** and **DaisyUI** styling included - just focus on your content, we handle the modal infrastructure!\r\n\r\n## 🌟 Key Features\r\n\r\n- **🎯 Angular 19 Native** - Built with standalone components and modern Angular patterns\r\n- **🎨 Zero Setup Styling** - No CSS required! Pre-styled with Tailwind CSS and DaisyUI\r\n- **⚡ Dynamic Modal Creation** - Programmatically create modals with any Angular component\r\n- **📊 Data Management** - Bidirectional data binding between modal and content\r\n- **♿ Accessibility First** - ARIA attributes, focus management, and keyboard navigation\r\n- **🔄 Event System** - Comprehensive lifecycle events for modal states\r\n- **📱 Responsive Design** - Works seamlessly across all devices and screen sizes\r\n- **🎭 Multiple Themes** - Full support for all DaisyUI themes and customization\r\n- **📋 Generic Modals** - Pre-built confirmation, information, and input modals using Angular signals for optimal performance\r\n\r\n## 🏗️ Architecture Overview\r\n\r\nThe library follows a service-centric architecture with these core concepts:\r\n\r\n- **Service Pattern**: Centralized modal management through `NgxTailwindModalService`\r\n- **Built-in Styling**: Complete modal styling provided - no additional CSS required\r\n- **Stack Management**: Z-index based modal layering with proper focus handling\r\n- **Event System**: Custom browser events for modal lifecycle communication\r\n- **Instance Management**: Modal wrapper class for direct component control\r\n- **Standalone Components**: Angular 19 compatible with tree-shaking support\r\n\r\n## 📦 Installation & Setup\r\n\r\n### 1. Install the library\r\n\r\n```bash\r\nnpm install @dotted-labs/ngx-tailwind-modal\r\n```\r\n\r\n### 2. Install peer dependencies\r\n\r\n```bash\r\nnpm install tailwindcss daisyui\r\n```\r\n\r\n### 3. Configure Tailwind CSS\r\n\r\nAdd the following to your `tailwind.config.js` to include the library's pre-built modal styles:\r\n\r\n```javascript\r\n/** @type {import('tailwindcss').Config} */\r\nmodule.exports = {\r\n  content: [\r\n    \"./src/**/*.{html,ts}\",\r\n    \"./node_modules/@dotted-labs/ngx-tailwind-modal/**/*.{js,ts}\"\r\n  ],\r\n  // These classes provide complete modal styling - no additional CSS needed\r\n  safelist: ['modal', 'modal-backdrop', 'modal-box'], \r\n  plugins: [require('daisyui')]\r\n};\r\n```\r\n\r\n### 4. Configure Angular providers\r\n\r\n```typescript\r\n// app.config.ts\r\nimport { ApplicationConfig } from '@angular/core';\r\nimport { provideNgxTailwindModal } from '@dotted-labs/ngx-tailwind-modal';\r\n\r\nexport const appConfig: ApplicationConfig = {\r\n  providers: [\r\n    // ... other providers\r\n    provideNgxTailwindModal()\r\n  ]\r\n};\r\n```\r\n\r\n### 5. Import components\r\n\r\n```typescript\r\nimport { Component } from '@angular/core';\r\nimport { NgxTailwindModalComponent } from '@dotted-labs/ngx-tailwind-modal';\r\n\r\n@Component({\r\n  selector: 'app-root',\r\n  standalone: true,\r\n  imports: [NgxTailwindModalComponent],\r\n  templateUrl: './app.component.html'\r\n})\r\nexport class AppComponent {}\r\n```\r\n\r\n## 🚀 Quick Start\r\n\r\n> **💡 No CSS Required!** The library provides complete modal styling out of the box. Just focus on your content - we handle the modal backdrop, positioning, animations, and responsive design.\r\n\r\n### Basic Modal Component\r\n\r\n```typescript\r\nimport { Component } from '@angular/core';\r\nimport { NgxTailwindModalViewComponent } from '@dotted-labs/ngx-tailwind-modal';\r\n\r\n@Component({\r\n  selector: 'app-example-modal',\r\n  standalone: true,\r\n  template: `\r\n    <!-- Only content styling needed - modal structure is automatic -->\r\n    <div class=\"modal-box\">\r\n      <h3 class=\"font-bold text-lg\">Welcome!</h3>\r\n      <p class=\"py-4\">Focus on your content - the modal backdrop, positioning, and animations are handled automatically!</p>\r\n      <div class=\"modal-action\">\r\n        <button class=\"btn btn-ghost\" (click)=\"closeModal()\">Cancel</button>\r\n        <button class=\"btn btn-primary\" (click)=\"confirmAction()\">Confirm</button>\r\n      </div>\r\n    </div>\r\n  `\r\n})\r\nexport class ExampleModalComponent extends NgxTailwindModalViewComponent {\r\n  closeModal() {\r\n    this.modalInstance.close();\r\n  }\r\n  \r\n  confirmAction() {\r\n    // Perform action then close\r\n    console.log('Action confirmed!');\r\n    this.modalInstance.close();\r\n  }\r\n}\r\n```\r\n\r\n### Opening Modals Programmatically\r\n\r\n```typescript\r\nimport { Component, inject, ViewContainerRef } from '@angular/core';\r\nimport { NgxTailwindModalService } from '@dotted-labs/ngx-tailwind-modal';\r\nimport { ExampleModalComponent } from './example-modal.component';\r\n\r\n@Component({\r\n  selector: 'app-demo',\r\n  standalone: true,\r\n  template: `\r\n    <div class=\"space-y-4 p-8\">\r\n      <button class=\"btn btn-primary\" (click)=\"openSimpleModal()\">\r\n        Open Simple Modal\r\n      </button>\r\n      \r\n      <button class=\"btn btn-secondary\" (click)=\"openModalWithData()\">\r\n        Open Modal with Data\r\n      </button>\r\n    </div>\r\n  `\r\n})\r\nexport class DemoComponent {\r\n  private readonly modalService = inject(NgxTailwindModalService);\r\n  private readonly vcr = inject(ViewContainerRef);\r\n\r\n  openSimpleModal() {\r\n    this.modalService\r\n      .create('example-modal', ExampleModalComponent, this.vcr, {\r\n        dismissable: true,\r\n        escapable: true\r\n      })\r\n      .open();\r\n  }\r\n  \r\n  openModalWithData() {\r\n    this.modalService\r\n      .create('data-modal', ExampleModalComponent, this.vcr)\r\n      .setData({ message: 'Hello from parent!', timestamp: Date.now() })\r\n      .open();\r\n  }\r\n}\r\n```\r\n\r\n## 🔧 Core API Reference\r\n\r\n### NgxTailwindModalService\r\n\r\nThe primary service for managing modals throughout your application.\r\n\r\n#### Modal Creation & Management\r\n\r\n```typescript\r\n// Create and immediately open a modal\r\nthis.modalService.create('modal-id', ComponentClass, viewContainerRef, options).open();\r\n\r\n// Basic modal operations\r\nthis.modalService.open('modal-id');          // Open modal\r\nthis.modalService.close('modal-id');         // Close modal  \r\nthis.modalService.toggle('modal-id');        // Toggle modal state\r\nthis.modalService.closeAll();                // Close all open modals\r\n\r\n// Data management\r\nthis.modalService.setModalData(data, 'modal-id');  // Pass data to modal\r\nconst data = this.modalService.getModalData('modal-id');  // Get modal data\r\nthis.modalService.resetModalData('modal-id'); // Clear modal data\r\n\r\n// Modal inspection\r\nconst modal = this.modalService.getModal('modal-id');     // Get modal instance\r\nconst stack = this.modalService.getModalStack();          // Get all modals\r\nconst opened = this.modalService.getOpenedModals();       // Get open modals\r\nconst topModal = this.modalService.getTopOpenedModal();   // Get top modal\r\n```\r\n\r\n#### Configuration Options\r\n\r\n```typescript\r\ninterface INgxTailwindModalOptions {\r\n  closable?: boolean;         // Show close button (default: true)\r\n  escapable?: boolean;        // Close on Escape key (default: true)\r\n  dismissable?: boolean;      // Close on backdrop click (default: true)\r\n  customClass?: string;       // Additional CSS classes\r\n  backdrop?: boolean;         // Show backdrop (default: true)\r\n  force?: boolean;            // Override existing modal (default: true)\r\n  hideDelay?: number;         // Close animation delay (default: 500)\r\n  autostart?: boolean;        // Auto-open on creation (default: false)\r\n  target?: string;            // Position relative to element\r\n  ariaLabel?: string;         // ARIA accessibility label\r\n  ariaLabelledBy?: string;    // ARIA labelledby reference\r\n  ariaDescribedBy?: string;   // ARIA describedby reference\r\n  refocus?: boolean;          // Return focus after close (default: true)\r\n}\r\n```\r\n\r\n### NgxTailwindModalViewComponent\r\n\r\nExtend this class in your modal content components for direct modal access:\r\n\r\n```typescript\r\nexport class YourModalComponent extends NgxTailwindModalViewComponent {\r\n  ngOnInit() {\r\n    console.log('Modal ID:', this.modalId);\r\n    console.log('Modal data:', this.modalInstance.getData());\r\n  }\r\n  \r\n  closeWithResult(result: any) {\r\n    this.modalInstance.setData(result);\r\n    this.modalInstance.close();\r\n  }\r\n}\r\n```\r\n\r\n**Available Properties:**\r\n- `modalId: string` - Unique modal identifier\r\n- `modalInstance: NgxTailwindModalComponent` - Direct modal control\r\n\r\n### Event System\r\n\r\nListen to modal lifecycle events:\r\n\r\n```typescript\r\n// Component-level events\r\nmodal.onOpen.subscribe(() => console.log('Modal opened'));\r\nmodal.onClose.subscribe(() => console.log('Modal closed'));\r\nmodal.onDataAdded.subscribe(data => console.log('Data added:', data));\r\n\r\n// Global browser events\r\ndocument.addEventListener('ngx-tailwind-modal.open', (e) => {\r\n  console.log('Modal opened:', e.detail);\r\n});\r\n```\r\n\r\n**Available Events:**\r\n- `onOpen` / `onOpenFinished` - Modal opening lifecycle\r\n- `onClose` / `onCloseFinished` - Modal closing lifecycle  \r\n- `onDismiss` / `onDismissFinished` - Modal dismissal (backdrop/escape)\r\n- `onDataAdded` / `onDataRemoved` - Data management events\r\n- `onEscape` - Escape key pressed\r\n\r\n## 📋 Generic Modal Components\r\n\r\nThe library includes pre-built modal components for common use cases, accessible through simple service methods that return promises. All components use Angular signals for optimal performance and reactive state management.\r\n\r\n### Confirmation Modal\r\n\r\nAsk users to confirm or cancel actions with customizable messages and button variants.\r\n\r\n```typescript\r\nimport { NgxTailwindModalService } from '@dotted-labs/ngx-tailwind-modal';\r\n\r\nasync openConfirmation() {\r\n  const result = await this.modalService.showConfirmation({\r\n    title: 'Delete User',\r\n    message: 'Are you sure you want to delete this user? This action cannot be undone.',\r\n    confirmText: 'Delete',\r\n    cancelText: 'Cancel',\r\n    variant: 'danger', // success | danger | warning | info\r\n    icon: 'warning'\r\n  });\r\n\r\n  if (result.confirmed) {\r\n    // User clicked \"Delete\"\r\n    this.deleteUser();\r\n  } else {\r\n    // User clicked \"Cancel\" or closed modal\r\n    console.log('User cancelled deletion');\r\n  }\r\n}\r\n```\r\n\r\n**Configuration Options:**\r\n```typescript\r\ninterface IConfirmationModalData {\r\n  title?: string;                    // Modal title\r\n  message: string;                   // Main message text\r\n  confirmText?: string;              // Confirm button text (default: \"Confirm\")\r\n  cancelText?: string;               // Cancel button text (default: \"Cancel\")\r\n  variant?: 'success' | 'danger' | 'warning' | 'info'; // Button and icon styling\r\n  icon?: string;                     // Optional icon display\r\n}\r\n```\r\n\r\n### Information Modal\r\n\r\nDisplay informational messages with optional auto-close functionality.\r\n\r\n```typescript\r\nasync showSuccess() {\r\n  await this.modalService.showInfo({\r\n    title: 'Success!',\r\n    message: 'Your profile has been updated successfully.',\r\n    buttonText: 'Got it',\r\n    variant: 'success',\r\n    icon: 'success',\r\n    autoCloseTimer: 3000  // Auto-close after 3 seconds\r\n  });\r\n\r\n  console.log('Info modal was closed');\r\n}\r\n```\r\n\r\n**Configuration Options:**\r\n```typescript\r\ninterface IInfoModalData {\r\n  title?: string;                    // Modal title\r\n  message: string;                   // Main message text\r\n  buttonText?: string;               // Button text (default: \"OK\")\r\n  variant?: 'success' | 'error' | 'warning' | 'info'; // Styling variant\r\n  icon?: string;                     // Optional icon display\r\n  autoCloseTimer?: number;           // Auto-close timer in milliseconds\r\n}\r\n```\r\n\r\n### Input Modal\r\n\r\nCollect user input with built-in validation support.\r\n\r\n```typescript\r\nasync getUserInput() {\r\n  const result = await this.modalService.showInput({\r\n    title: 'Enter Your Name',\r\n    message: 'Please provide your full name for the registration.',\r\n    inputLabel: 'Full Name',\r\n    inputPlaceholder: 'Enter your name...',\r\n    confirmText: 'Submit',\r\n    cancelText: 'Cancel',\r\n    inputType: 'text',\r\n    required: true,\r\n    minLength: 2,\r\n    maxLength: 50\r\n  });\r\n\r\n  if (!result.cancelled && result.value) {\r\n    console.log('User entered:', result.value);\r\n    this.processUserName(result.value);\r\n  } else {\r\n    console.log('User cancelled input');\r\n  }\r\n}\r\n```\r\n\r\n**Configuration Options:**\r\n```typescript\r\ninterface IInputModalData {\r\n  title?: string;                    // Modal title\r\n  message: string;                   // Main message text\r\n  inputLabel?: string;               // Input field label\r\n  inputPlaceholder?: string;         // Input placeholder text\r\n  confirmText?: string;              // Confirm button text (default: \"Confirm\")\r\n  cancelText?: string;               // Cancel button text (default: \"Cancel\")\r\n  inputType?: 'text' | 'email' | 'password' | 'number' | 'tel' | 'url'; // Input type\r\n  required?: boolean;                // Whether input is required\r\n  minLength?: number;                // Minimum input length\r\n  maxLength?: number;                // Maximum input length\r\n  pattern?: string;                  // RegExp pattern for validation\r\n  defaultValue?: string;             // Default input value\r\n}\r\n```\r\n\r\n### Advanced Usage Examples\r\n\r\n**Chaining Multiple Modals:**\r\n```typescript\r\nasync confirmDeleteWithInput() {\r\n  // First, get confirmation\r\n  const confirmation = await this.modalService.showConfirmation({\r\n    title: 'Confirm Deletion',\r\n    message: 'Type \"DELETE\" to confirm this action.',\r\n    variant: 'danger'\r\n  });\r\n\r\n  if (confirmation.confirmed) {\r\n    // Then collect confirmation text\r\n    const input = await this.modalService.showInput({\r\n      title: 'Final Confirmation',\r\n      message: 'Type \"DELETE\" exactly to proceed:',\r\n      inputType: 'text',\r\n      required: true,\r\n      pattern: '^DELETE$'\r\n    });\r\n\r\n    if (!input.cancelled && input.value === 'DELETE') {\r\n      // Show success message\r\n      await this.modalService.showInfo({\r\n        title: 'Deleted Successfully',\r\n        message: 'The item has been permanently deleted.',\r\n        variant: 'success',\r\n        autoCloseTimer: 2000\r\n      });\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n**Custom Modal Options:**\r\n```typescript\r\nconst result = await this.modalService.showConfirmation(\r\n  {\r\n    title: 'Custom Styled Confirmation',\r\n    message: 'This modal uses custom options.',\r\n    variant: 'warning'\r\n  },\r\n  {\r\n    escapable: false,        // Disable escape key\r\n    backdrop: false,         // Remove backdrop\r\n    customClass: 'my-modal', // Add custom CSS class\r\n    hideDelay: 200          // Faster close animation\r\n  }\r\n);\r\n```\r\n\r\n## 📋 Usage Patterns\r\n\r\n### Template Declaration\r\n\r\n> **🎨 Styling Made Easy:** The library automatically provides modal backdrop, positioning, z-index management, and animations. You only need to style your content inside `modal-box`.\r\n\r\nDeclare modals directly in your templates:\r\n\r\n```html\r\n<!-- The library handles all modal infrastructure automatically -->\r\n<ngx-tailwind-modal \r\n  identifier=\"settings-modal\"\r\n  [closable]=\"true\"\r\n  [dismissable]=\"true\"\r\n  [escapable]=\"true\">\r\n  \r\n  <!-- Only style your content - backdrop and positioning are automatic -->\r\n  <div class=\"modal-box max-w-2xl\">\r\n    <h3 class=\"font-bold text-lg mb-4\">Application Settings</h3>\r\n    \r\n    <!-- Settings form content -->\r\n    <form class=\"space-y-4\">\r\n      <div class=\"form-control\">\r\n        <label class=\"label\">\r\n          <span class=\"label-text\">Theme</span>\r\n        </label>\r\n        <select class=\"select select-bordered\">\r\n          <option>Light</option>\r\n          <option>Dark</option>\r\n          <option>Auto</option>\r\n        </select>\r\n      </div>\r\n    </form>\r\n    \r\n    <div class=\"modal-action\">\r\n      <button class=\"btn\" (click)=\"closeModal()\">Cancel</button>\r\n      <button class=\"btn btn-primary\" (click)=\"saveSettings()\">Save Changes</button>\r\n    </div>\r\n  </div>\r\n</ngx-tailwind-modal>\r\n\r\n<!-- Open the modal using the service -->\r\n<button class=\"btn btn-outline\" (click)=\"openSettings()\">\r\n  Open Settings\r\n</button>\r\n```\r\n\r\n### Data Communication\r\n\r\n```typescript\r\n// Parent component passing data\r\nexport class ParentComponent {\r\n  openUserModal(user: User) {\r\n    this.modalService\r\n      .create('user-modal', UserModalComponent, this.vcr)\r\n      .setData({ user, mode: 'edit' })\r\n      .open();\r\n  }\r\n}\r\n\r\n// Modal component receiving data\r\nexport class UserModalComponent extends NgxTailwindModalViewComponent implements OnInit {\r\n  user!: User;\r\n  mode!: 'view' | 'edit';\r\n  \r\n  ngOnInit() {\r\n    const data = this.modalInstance.getData() as { user: User, mode: string };\r\n    this.user = data.user;\r\n    this.mode = data.mode as 'view' | 'edit';\r\n  }\r\n  \r\n  saveUser() {\r\n    // Update user data\r\n    this.modalInstance.setData({ user: this.user, result: 'saved' });\r\n    this.modalInstance.close();\r\n  }\r\n}\r\n```\r\n\r\n### Modal Stacking\r\n\r\n```typescript\r\n// Open multiple modals in sequence\r\nopenConfirmationFlow() {\r\n  // First modal\r\n  const userModal = this.modalService.create('user-form', UserFormComponent, this.vcr);\r\n  \r\n  userModal.onClose.subscribe(() => {\r\n    // Open confirmation modal on top\r\n    this.modalService\r\n      .create('confirm-save', ConfirmationComponent, this.vcr, {\r\n        backdrop: false  // Don't block the previous modal\r\n      })\r\n      .open();\r\n  });\r\n  \r\n  userModal.open();\r\n}\r\n```\r\n\r\n### Responsive Modal Sizes\r\n\r\n> **📱 Built-in Responsive Design:** The library automatically handles responsive positioning and sizing. You only need to specify content dimensions.\r\n\r\n```typescript\r\n// The library handles modal positioning - you only style content dimensions\r\n@Component({\r\n  template: `\r\n    <!-- Library provides responsive modal backdrop and positioning -->\r\n    <div class=\"modal-box w-11/12 max-w-5xl lg:max-w-3xl md:max-w-2xl sm:max-w-sm\">\r\n      <!-- Focus only on your content layout -->\r\n      <h3 class=\"font-bold text-lg\">Responsive Content</h3>\r\n      <p>The modal backdrop, positioning, and z-index are handled automatically!</p>\r\n    </div>\r\n  `\r\n})\r\nexport class ResponsiveModalComponent {}\r\n```\r\n\r\n## ♿ Accessibility Features\r\n\r\n- **ARIA Support**: Full ARIA attributes for screen readers\r\n- **Focus Management**: Automatic focus trapping and restoration\r\n- **Keyboard Navigation**: Escape key, Tab navigation support\r\n- **Semantic HTML**: Proper role assignments and structure\r\n- **Screen Reader Compatible**: Optimized announcements and descriptions\r\n\r\n```typescript\r\n// Example with accessibility options\r\nthis.modalService.create('accessible-modal', ContentComponent, this.vcr, {\r\n  ariaLabel: 'User profile settings dialog',\r\n  ariaLabelledBy: 'modal-title',\r\n  ariaDescribedBy: 'modal-description',\r\n  refocus: true  // Return focus to trigger element\r\n});\r\n```\r\n\r\n## 🎨 Theming & Customization\r\n\r\n> **🎭 No CSS Setup Required:** The library automatically applies DaisyUI modal styling including backdrop, animations, and responsive behavior. You only customize the content inside `modal-box`.\r\n\r\n### DaisyUI Themes\r\n\r\nAll DaisyUI themes work automatically without additional setup:\r\n\r\n```html\r\n<!-- Apply theme at document level - modal backdrop styles automatically -->\r\n<html data-theme=\"dark\">\r\n\r\n<!-- Or apply theme to specific modal content -->\r\n<div data-theme=\"cyberpunk\" class=\"modal-box\">\r\n  <!-- Only content needs theme styling - modal structure is automatic -->\r\n  <h3 class=\"font-bold text-lg\">Cyberpunk Modal</h3>\r\n  <p>Backdrop and positioning are handled by the library!</p>\r\n</div>\r\n```\r\n\r\n### Custom Content Styling\r\n\r\n> **Focus on Content:** The library manages all modal infrastructure. Customize only your content styling.\r\n\r\n```typescript\r\n// Add custom classes to your modal content\r\nthis.modalService.create('styled-modal', Component, this.vcr, {\r\n  customClass: 'custom-content-styles'\r\n});\r\n```\r\n\r\n```css\r\n/* Style only your modal content - library handles the rest */\r\n.custom-content-styles .modal-box {\r\n  @apply bg-gradient-to-r from-purple-500 to-pink-500;\r\n  @apply text-white shadow-xl;\r\n  /* No need to style backdrop, positioning, or z-index */\r\n}\r\n```\r\n\r\n## 🧪 Development & Testing\r\n\r\n### Development Commands\r\n\r\n```bash\r\n# Build library for production\r\nng build @dotted-labs/ngx-tailwind-modal\r\n\r\n# Build library in watch mode\r\nng build @dotted-labs/ngx-tailwind-modal --watch --configuration development\r\n\r\n# Run tests\r\nng test @dotted-labs/ngx-tailwind-modal\r\n\r\n# Run linting\r\nng lint @dotted-labs/ngx-tailwind-modal\r\n\r\n# Start demo application\r\nng serve demo\r\n```\r\n\r\n### Testing Integration\r\n\r\n```typescript\r\n// Test modal service in your unit tests\r\nimport { TestBed } from '@angular/core/testing';\r\nimport { NgxTailwindModalService } from '@dotted-labs/ngx-tailwind-modal';\r\n\r\ndescribe('Modal Integration', () => {\r\n  let modalService: NgxTailwindModalService;\r\n  \r\n  beforeEach(() => {\r\n    TestBed.configureTestingModule({\r\n      providers: [NgxTailwindModalService]\r\n    });\r\n    modalService = TestBed.inject(NgxTailwindModalService);\r\n  });\r\n  \r\n  it('should create and open modal', () => {\r\n    const modal = modalService.create('test-modal', TestComponent, vcr);\r\n    modal.open();\r\n    expect(modal.isVisible()).toBe(true);\r\n  });\r\n});\r\n```\r\n\r\n## 📦 Library Structure\r\n\r\n```\r\nprojects/ngx-tailwind-modal/\r\n├── src/\r\n│   ├── lib/\r\n│   │   ├── components/\r\n│   │   │   ├── ngx-tailwind-modal.component.ts\r\n│   │   │   └── ngx-tailwind-modal-view.component.ts\r\n│   │   ├── services/\r\n│   │   │   ├── ngx-tailwind-modal.service.ts\r\n│   │   │   └── ngx-tailwind-modal-stack.service.ts\r\n│   │   ├── interfaces/\r\n│   │   │   └── ngx-tailwind-modal.interface.ts\r\n│   │   ├── classes/\r\n│   │   │   └── modal-instance.ts\r\n│   │   └── providers/\r\n│   │       └── ngx-tailwind-modal.provider.ts\r\n│   └── public-api.ts\r\nprojects/demo/           # Demo application\r\n```\r\n\r\n## 🔗 Dependencies\r\n\r\n> **Minimal Setup:** Only Tailwind CSS and DaisyUI are required - no additional modal CSS frameworks needed!\r\n\r\n- **Angular**: 19.0.0+\r\n- **TypeScript**: 5.0+\r\n- **Tailwind CSS**: 4.0+ (provides utility classes)\r\n- **DaisyUI**: 5.0+ (provides complete modal styling)\r\n- **RxJS**: 7.8+\r\n\r\n**What's Included:** Complete modal system with backdrop, animations, positioning, focus management, and responsive design.\r\n\r\n## 🚀 Demo & Examples\r\n\r\nExplore the comprehensive demo application:\r\n\r\n```bash\r\n# Clone the repository\r\ngit clone https://github.com/dotted-labs/ngx-tailwind-modal.git\r\ncd ngx-tailwind-modal\r\n\r\n# Install dependencies\r\nnpm install\r\n\r\n# Start demo application\r\nng serve demo\r\n```\r\n\r\nVisit `http://localhost:4200` to see live examples with:\r\n- Multiple modal types and configurations (no CSS required!)\r\n- Theme switching demonstrations\r\n- Accessibility features showcase\r\n- Advanced usage patterns with zero modal styling setup\r\n\r\n## 🤝 Contributing\r\n\r\nWe welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.\r\n\r\n1. Fork the repository\r\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\r\n3. Commit your changes (`git commit -m 'Add amazing feature'`)\r\n4. Push to the branch (`git push origin feature/amazing-feature`)\r\n5. Open a Pull Request\r\n\r\n## 📄 License\r\n\r\nMIT License - see the [LICENSE](LICENSE) file for details.\r\n\r\n## 🙏 Acknowledgments\r\n\r\n- **[ngx-smart-modal](https://github.com/maximelafarie/ngx-smart-modal)** - Original inspiration and architecture patterns\r\n- **[Tailwind CSS](https://tailwindcss.com/)** - Modern utility-first CSS framework\r\n- **[DaisyUI](https://daisyui.com/)** - Beautiful component library for Tailwind\r\n- **[Angular Team](https://angular.io/)** - Fantastic framework and standalone component architecture\r\n\r\n---\r\n\r\n<p align=\"center\">\r\n  <a href=\"https://github.com/dotted-labs/ngx-tailwind-modal\">⭐ Star this repository</a> if it helped you!\r\n</p>\r\n","readmeFilename":"README.md"}