{"_id":"@angularui/theme","_rev":"9-e4c2927a1da4cfb4fbe61b991a77cad6","name":"@angularui/theme","dist-tags":{"latest":"0.1.4"},"versions":{"0.0.1":{"name":"@angularui/theme","version":"0.0.1","keywords":["angular","theme","dark-mode","light-mode","angularui-theme","angularui theme","angular ui theme","angular-theme","angular theme library","angular dark mode","angular light mode","angular theme management","angular theming","angular css variables","angular signals","angular ssr","angular universal","typescript","ui","frontend","css-variables","theme-switcher","theme-toggle","responsive-design"],"author":{"url":"https://x.com/immohammadjaved","name":"Mohammad Javed","email":"mohammadjaved@angularcafe.com"},"license":"MIT","_id":"@angularui/theme@0.0.1","maintainers":[{"name":"immohammadjaved","email":"helpmejaved@gmail.com"}],"homepage":"https://github.com/angularcafe/angularui-theme#readme","bugs":{"url":"https://github.com/angularcafe/angularui-theme/issues"},"dist":{"shasum":"cf156ff3e2cd9fb462961b13ba66f786f79570bc","tarball":"https://registry.npmjs.org/@angularui/theme/-/theme-0.0.1.tgz","fileCount":5,"integrity":"sha512-HRqdqQY2P616r5v2QnHPeIo/qfSj8nX++NxyIKdbbwXtsiVULICLk/ArMHhUZ4BtGSoX5/5q9vTgeozY0IAF+A==","signatures":[{"sig":"MEQCIGJC7mP9P5EyZZ2Bnbv6OOzMFrmZuLfu4sg1F81902PYAiBxihA6tWfNaEovuJzvnf2rgIr4xEw7E4QwPsMcHTSQRg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51650},"main":"index.js","module":"fesm2022/angularui-theme.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./index.d.ts","import":"./index.js","default":"./fesm2022/angularui-theme.mjs","require":"./index.js"},"./package.json":{"default":"./package.json"}},"gitHead":"81a9d3439e41620c965b403d8aa5cce4d27734cc","typings":"index.d.ts","_npmUser":{"name":"immohammadjaved","email":"helpmejaved@gmail.com"},"repository":{"url":"git+https://github.com/angularcafe/angularui-theme.git","type":"git"},"_npmVersion":"11.4.2","description":"Modern Theme Management for Angular - A lightweight, feature-rich theme library with automatic dark mode detection, SSR support, and zero configuration required.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"tslib":"^2.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/core":"^19.0.0 || ^20.1.0","@angular/common":"^19.0.0 || ^20.1.0"},"_npmOperationalInternal":{"tmp":"tmp/theme_0.0.1_1752361883902_0.903768321033714","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@angularui/theme","version":"0.0.2","keywords":["angular","theme","dark-mode","light-mode","angularui-theme","angularui theme","angular ui theme","angular-theme","angular theme library","angular dark mode","angular light mode","angular theme management","angular theming","angular css variables","angular signals","angular ssr","angular universal","typescript","ui","frontend","css-variables","theme-switcher","theme-toggle","responsive-design"],"author":{"url":"https://x.com/immohammadjaved","name":"Mohammad Javed","email":"mohammadjaved@angularcafe.com"},"license":"MIT","_id":"@angularui/theme@0.0.2","maintainers":[{"name":"immohammadjaved","email":"helpmejaved@gmail.com"}],"homepage":"https://github.com/angularcafe/angularui-theme#readme","bugs":{"url":"https://github.com/angularcafe/angularui-theme/issues"},"dist":{"shasum":"210703c5583359371453165e61992234beb7e54e","tarball":"https://registry.npmjs.org/@angularui/theme/-/theme-0.0.2.tgz","fileCount":5,"integrity":"sha512-X9Ra1k51K7+BFqO2AAeV61R3pqzHA0+3viz10YyS3QW518FMc/7QFkQxe8yrPv2Kc7NgQ8wYQ4rILL/fRJ/vGg==","signatures":[{"sig":"MEYCIQCa0YdOilUSo4H92RKMgUpQAYaHusyAX+jj8wMmzRAKowIhAMpn/Q3snPF87Vic33dhWjEiaKQ9z/MWdi6lIqrxOEFf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51694},"main":"fesm2022/angularui-theme.mjs","module":"fesm2022/angularui-theme.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./index.d.ts","import":"./fesm2022/angularui-theme.mjs","default":"./fesm2022/angularui-theme.mjs","require":"./fesm2022/angularui-theme.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"9fdac3ada03fdb9a831252b8e1487be3891ff909","typings":"index.d.ts","_npmUser":{"name":"immohammadjaved","email":"helpmejaved@gmail.com"},"repository":{"url":"git+https://github.com/angularcafe/angularui-theme.git","type":"git"},"_npmVersion":"11.4.2","description":"Modern Theme Management for Angular - A lightweight, feature-rich theme library with automatic dark mode detection, SSR support, and zero configuration required.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"tslib":"^2.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/core":"^19.0.0 || ^20.1.0","@angular/common":"^19.0.0 || ^20.1.0"},"_npmOperationalInternal":{"tmp":"tmp/theme_0.0.2_1752362616344_0.8262112228253666","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@angularui/theme","version":"0.0.3","keywords":["angular","theme","dark-mode","light-mode","angularui-theme","angularui theme","angular ui theme","angular-theme","angular theme library","angular dark mode","angular light mode","angular theme management","angular theming","angular css variables","angular signals","angular ssr","angular universal","typescript","ui","frontend","css-variables","theme-switcher","theme-toggle","responsive-design"],"author":{"url":"https://x.com/immohammadjaved","name":"Mohammad Javed","email":"mohammadjaved@angularcafe.com"},"license":"MIT","_id":"@angularui/theme@0.0.3","maintainers":[{"name":"immohammadjaved","email":"helpmejaved@gmail.com"}],"homepage":"https://github.com/angularcafe/angularui-theme#readme","bugs":{"url":"https://github.com/angularcafe/angularui-theme/issues"},"dist":{"shasum":"effe1dc11ae8c52c74df54513aa78852b59f5a17","tarball":"https://registry.npmjs.org/@angularui/theme/-/theme-0.0.3.tgz","fileCount":4,"integrity":"sha512-Fsrt+lZ1anH2Yv29LRlWEE4OrmLKJe5D1REQsIkHg7Gef5BzK/NmShrhPXVbOb/gCouBDKj1w4FsJh0HDhLXOg==","signatures":[{"sig":"MEYCIQCgZAFMX8497uPYvj1422zK3j4wxoz8Y60oYQXpg5RdQgIhAInDJ1NofUAOPag75cW/k4rN1CKd3mpycNB5ciTxqTao","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27229},"main":"fesm2022/angularui-theme.mjs","module":"fesm2022/angularui-theme.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./index.d.ts","import":"./fesm2022/angularui-theme.mjs","default":"./fesm2022/angularui-theme.mjs","require":"./fesm2022/angularui-theme.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"ce7d9985adee3d4f5a5c130e5a041f790f69475a","typings":"index.d.ts","_npmUser":{"name":"immohammadjaved","email":"helpmejaved@gmail.com"},"repository":{"url":"git+https://github.com/angularcafe/angularui-theme.git","type":"git"},"_npmVersion":"11.4.2","description":"Modern Theme Management for Angular - A lightweight, feature-rich theme library with automatic dark mode detection, SSR support, and zero configuration required.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"tslib":"^2.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/core":"^19.0.0 || ^20.1.0","@angular/common":"^19.0.0 || ^20.1.0"},"_npmOperationalInternal":{"tmp":"tmp/theme_0.0.3_1752397763784_0.5440273807155533","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@angularui/theme","version":"0.0.4","keywords":["angular","theme","dark-mode","light-mode","angularui-theme","angularui theme","angular ui theme","angular-theme","angular theme library","angular dark mode","angular light mode","angular theme management","angular theming","angular css variables","angular signals","angular ssr","angular universal","typescript","ui","frontend","css-variables","theme-switcher","theme-toggle","responsive-design"],"author":{"url":"https://x.com/immohammadjaved","name":"Mohammad Javed","email":"mohammadjaved@angularcafe.com"},"license":"MIT","_id":"@angularui/theme@0.0.4","maintainers":[{"name":"immohammadjaved","email":"helpmejaved@gmail.com"}],"homepage":"https://github.com/angularcafe/angularui-theme#readme","bugs":{"url":"https://github.com/angularcafe/angularui-theme/issues"},"dist":{"shasum":"18724fc41ebcb15fbc8bc1adbeed46d382265d49","tarball":"https://registry.npmjs.org/@angularui/theme/-/theme-0.0.4.tgz","fileCount":4,"integrity":"sha512-HXjq1wy+vrAeRtZcJhWYhkLbBsgqwnWscPl2qIWJ99Squu0BEPwKzZHLcgNXe5ReW69aIclAFNbeea64lumILg==","signatures":[{"sig":"MEQCIBKBm+yOMJ3YHJs7jGgLrG6qy785Gs2kh+KKVvfWMQt6AiB6xh9mATppcqtx08O/gO874xpUjtEKCR6np6oTeivvUA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28244},"main":"fesm2022/angularui-theme.mjs","module":"fesm2022/angularui-theme.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./index.d.ts","import":"./fesm2022/angularui-theme.mjs","default":"./fesm2022/angularui-theme.mjs","require":"./fesm2022/angularui-theme.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"327b8ac56d6811b31ce290ad87a986e077787a9f","typings":"index.d.ts","_npmUser":{"name":"immohammadjaved","email":"helpmejaved@gmail.com"},"repository":{"url":"git+https://github.com/angularcafe/angularui-theme.git","type":"git"},"_npmVersion":"11.4.2","description":"Modern Theme Management for Angular - A lightweight, feature-rich theme library with automatic dark mode detection, SSR support, and zero configuration required.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"tslib":"^2.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/core":"^19.0.0 || ^20.1.0","@angular/common":"^19.0.0 || ^20.1.0"},"_npmOperationalInternal":{"tmp":"tmp/theme_0.0.4_1752399638301_0.9049698968071596","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@angularui/theme","version":"0.1.0","keywords":["angular","theme","dark-mode","light-mode","angularui-theme","angularui theme","angular ui theme","angular-theme","angular theme library","angular dark mode","angular light mode","angular theme management","angular theming","angular css variables","angular signals","angular ssr","angular universal","typescript","ui","frontend","css-variables","theme-switcher","theme-toggle","responsive-design"],"author":{"url":"https://x.com/immohammadjaved","name":"Mohammad Javed","email":"mohammadjaved@angularcafe.com"},"license":"MIT","_id":"@angularui/theme@0.1.0","maintainers":[{"name":"immohammadjaved","email":"helpmejaved@gmail.com"}],"homepage":"https://github.com/angularcafe/angularui-theme#readme","bugs":{"url":"https://github.com/angularcafe/angularui-theme/issues"},"dist":{"shasum":"658cd914aa034a3bbb10372c28bb4985d34d994f","tarball":"https://registry.npmjs.org/@angularui/theme/-/theme-0.1.0.tgz","fileCount":4,"integrity":"sha512-hqCBubiWBUTBrR05Wk8IsDSBsRXdEMMOBOjgehtrEvTHf0aFtuPtK5rui8q5Y/s2ZguyHqKDitvt8VuEyD3qPQ==","signatures":[{"sig":"MEUCIDTawgSalCO6qlwz2APNJeNikr1zK5O9NIcUjphlGnzdAiEAzAS/qgpGyLyAZcTc2eEaG1xnbnrxQ8iuRTCa5lfECUA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28394},"main":"fesm2022/angularui-theme.mjs","module":"fesm2022/angularui-theme.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./index.d.ts","import":"./fesm2022/angularui-theme.mjs","default":"./fesm2022/angularui-theme.mjs","require":"./fesm2022/angularui-theme.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"286f26ab37116b56470cbd571d13b8acb33d9d13","typings":"index.d.ts","_npmUser":{"name":"immohammadjaved","email":"helpmejaved@gmail.com"},"repository":{"url":"git+https://github.com/angularcafe/angularui-theme.git","type":"git"},"_npmVersion":"11.4.2","description":"Modern Theme Management for Angular - A lightweight, feature-rich theme library with automatic dark mode detection, SSR support, and zero configuration required.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"tslib":"^2.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/core":"^19.0.0 || ^20.1.0","@angular/common":"^19.0.0 || ^20.1.0"},"_npmOperationalInternal":{"tmp":"tmp/theme_0.1.0_1752484201056_0.33497861575736465","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@angularui/theme","version":"0.1.1","keywords":["angular","theme","dark-mode","light-mode","angularui-theme","angularui theme","angular ui theme","angular-theme","angular theme library","angular dark mode","angular light mode","angular theme management","angular theming","angular css variables","angular signals","angular ssr","angular universal","typescript","ui","frontend","css-variables","theme-switcher","theme-toggle","responsive-design"],"author":{"url":"https://x.com/immohammadjaved","name":"Mohammad Javed","email":"mohammadjaved@angularcafe.com"},"license":"MIT","_id":"@angularui/theme@0.1.1","maintainers":[{"name":"immohammadjaved","email":"helpmejaved@gmail.com"}],"homepage":"https://github.com/angularcafe/angularui-theme#readme","bugs":{"url":"https://github.com/angularcafe/angularui-theme/issues"},"dist":{"shasum":"02240696e854826813346aad46ffad5a6ec1713b","tarball":"https://registry.npmjs.org/@angularui/theme/-/theme-0.1.1.tgz","fileCount":4,"integrity":"sha512-CKVU7MqcG06wX9ZHbvaZatpsydM5ptGbNnbJah1Dt9jFCBwg8c1UmwATO3vRLByg35v5WBUhc5s4En7wzkgz6g==","signatures":[{"sig":"MEYCIQDPuWAd/FmNPQBWzqinQiDmSH1/ztTARi+xCNZTrQsDMgIhAIbbWpfym4a8aJ1YZ5qRJEmT9pDU5s0JY74MhOS7SBES","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28883},"main":"fesm2022/angularui-theme.mjs","module":"fesm2022/angularui-theme.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./index.d.ts","import":"./fesm2022/angularui-theme.mjs","default":"./fesm2022/angularui-theme.mjs","require":"./fesm2022/angularui-theme.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"d02d76cee9be3998542248b4548cd85266467aa4","typings":"index.d.ts","_npmUser":{"name":"immohammadjaved","email":"helpmejaved@gmail.com"},"repository":{"url":"git+https://github.com/angularcafe/angularui-theme.git","type":"git"},"_npmVersion":"11.4.2","description":"Modern Theme Management for Angular - A lightweight, feature-rich theme library with automatic dark mode detection, SSR support, and zero configuration required.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"tslib":"^2.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/core":"^19.0.0 || ^20.1.0","@angular/common":"^19.0.0 || ^20.1.0"},"_npmOperationalInternal":{"tmp":"tmp/theme_0.1.1_1752486002967_0.12679747699113553","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@angularui/theme","version":"0.1.2","keywords":["angular","theme","dark-mode","light-mode","angularui-theme","angularui theme","angular ui theme","angular-theme","angular theme library","angular dark mode","angular light mode","angular theme management","angular theming","angular css variables","angular signals","angular ssr","angular universal","typescript","ui","frontend","css-variables","theme-switcher","theme-toggle","responsive-design"],"author":{"url":"https://x.com/immohammadjaved","name":"Mohammad Javed","email":"mohammadjaved@angularcafe.com"},"license":"MIT","_id":"@angularui/theme@0.1.2","maintainers":[{"name":"immohammadjaved","email":"helpmejaved@gmail.com"}],"homepage":"https://github.com/angularcafe/angularui-theme#readme","bugs":{"url":"https://github.com/angularcafe/angularui-theme/issues"},"dist":{"shasum":"27196f8f0945f39f791785456e1406b8000c122c","tarball":"https://registry.npmjs.org/@angularui/theme/-/theme-0.1.2.tgz","fileCount":4,"integrity":"sha512-6c3vTWRyPhqLuibCFFepReJskk+dGCxDfmUYTTxIYDV0CJv5YBYZbbOzjtFbRV1mUCVREPlZ137nE3i13O1EjA==","signatures":[{"sig":"MEUCIQCKWkRHi++3MrXHdkVtdkBCVGqg1gVadQE8BXM8ycZ3GwIgHJKkoWwGGZdeMKNRzwv6nlimOUTqLVcJvP3/n9lx+HY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29288},"main":"fesm2022/angularui-theme.mjs","module":"fesm2022/angularui-theme.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./index.d.ts","import":"./fesm2022/angularui-theme.mjs","default":"./fesm2022/angularui-theme.mjs","require":"./fesm2022/angularui-theme.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"c7e8c5cc25331649a4f271ec9bebf955bab319d4","typings":"index.d.ts","_npmUser":{"name":"immohammadjaved","email":"helpmejaved@gmail.com"},"repository":{"url":"git+https://github.com/angularcafe/angularui-theme.git","type":"git"},"_npmVersion":"11.4.2","description":"Modern Theme Management for Angular - A lightweight, feature-rich theme library with automatic dark mode detection, SSR support, and zero configuration required.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"tslib":"^2.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/core":"^19.0.0 || ^20.1.0","@angular/common":"^19.0.0 || ^20.1.0"},"_npmOperationalInternal":{"tmp":"tmp/theme_0.1.2_1752534130514_0.798819858490742","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@angularui/theme","version":"0.1.3","keywords":["angular","theme","dark-mode","light-mode","angularui-theme","angularui theme","angular ui theme","angular-theme","angular theme library","angular dark mode","angular light mode","angular theme management","angular theming","angular css variables","angular signals","angular ssr","angular universal","typescript","ui","frontend","css-variables","theme-switcher","theme-toggle","responsive-design","deprecated"],"author":{"url":"https://x.com/immohammadjaved","name":"Mohammad Javed","email":"mohammadjaved@angularcafe.com"},"license":"MIT","_id":"@angularui/theme@0.1.3","maintainers":[{"name":"immohammadjaved","email":"helpmejaved@gmail.com"}],"homepage":"https://github.com/angularcafe/angularui-theme#readme","bugs":{"url":"https://github.com/angularcafe/angularui-theme/issues"},"dist":{"shasum":"4d7d2049b9c5071d21f92844ccabb45cda95d259","tarball":"https://registry.npmjs.org/@angularui/theme/-/theme-0.1.3.tgz","fileCount":4,"integrity":"sha512-AFz6ZiHX1zyAodnKgzdGjLa7cDH556DqGna9+cgys1wOjZt8Eb3aKoWqNJrjaQcpRXKkTlhkjlq41EPpTWjFKA==","signatures":[{"sig":"MEQCICuWW+uHAvDOM+e5vfs87ait0r8zMrikoriMidSlSi5aAiBYAu1V7kFfKsJknFTusMBbFj4svUQK6nE5W6y791XsWQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30203},"main":"fesm2022/angularui-theme.mjs","module":"fesm2022/angularui-theme.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./index.d.ts","import":"./fesm2022/angularui-theme.mjs","default":"./fesm2022/angularui-theme.mjs","require":"./fesm2022/angularui-theme.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"cc738fa3f8fb52555f0aabebb9ddac62e8009f1a","typings":"index.d.ts","_npmUser":{"name":"immohammadjaved","email":"helpmejaved@gmail.com"},"repository":{"url":"git+https://github.com/angularcafe/angularui-theme.git","type":"git"},"_npmVersion":"10.9.2","description":"⚠️ DEPRECATED: This package has been rebranded to @slateui/theme. Please migrate to the new package. Modern Theme Management for Angular - A lightweight, feature-rich theme library with automatic dark mode detection, SSR support, and zero configuration re","directories":{},"sideEffects":false,"_nodeVersion":"22.17.1","dependencies":{"tslib":"^2.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/core":"^19.0.0 || ^20.1.0","@angular/common":"^19.0.0 || ^20.1.0"},"_npmOperationalInternal":{"tmp":"tmp/theme_0.1.3_1754420019358_0.5848198576421824","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@angularui/theme","version":"0.1.4","description":"⚠️ DEPRECATED: This package has been rebranded to @slateui/theme. Please migrate to the new package. Modern Theme Management for Angular - A lightweight, feature-rich theme library with automatic dark mode detection, SSR support, and zero configuration re","keywords":["angular","theme","dark-mode","light-mode","angularui-theme","angularui theme","angular ui theme","angular-theme","angular theme library","angular dark mode","angular light mode","angular theme management","angular theming","angular css variables","angular signals","angular ssr","angular universal","typescript","ui","frontend","css-variables","theme-switcher","theme-toggle","responsive-design","deprecated"],"author":{"name":"Mohammad Javed","email":"mohammadjaved@angularcafe.com","url":"https://x.com/immohammadjaved"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/angularcafe/angularui-theme.git"},"bugs":{"url":"https://github.com/angularcafe/angularui-theme/issues"},"homepage":"https://github.com/angularcafe/angularui-theme#readme","main":"fesm2022/angularui-theme.mjs","module":"fesm2022/angularui-theme.mjs","typings":"index.d.ts","exports":{".":{"types":"./index.d.ts","import":"./fesm2022/angularui-theme.mjs","require":"./fesm2022/angularui-theme.mjs","default":"./fesm2022/angularui-theme.mjs"},"./package.json":{"default":"./package.json"}},"peerDependencies":{"@angular/common":"^19.0.0 || ^20.1.0","@angular/core":"^19.0.0 || ^20.1.0"},"dependencies":{"tslib":"^2.3.0"},"sideEffects":false,"engines":{"node":">=18.0.0"},"publishConfig":{"access":"public"},"_id":"@angularui/theme@0.1.4","gitHead":"cc738fa3f8fb52555f0aabebb9ddac62e8009f1a","_nodeVersion":"22.17.1","_npmVersion":"10.9.2","dist":{"integrity":"sha512-pC85dkrgL34gSiMEWaQd4gne4uXe8BR9nlWwSBOOIqY5FBBFiMs8YtVETDdXh8ApuLgZbNFBfTa9cKJIHBfrjQ==","shasum":"d60216b66fc04d93489e6601605b7ccad132b1e4","tarball":"https://registry.npmjs.org/@angularui/theme/-/theme-0.1.4.tgz","fileCount":4,"unpackedSize":30195,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIC4xxEOvihEwdQ6Xvn4jZexSXNY9kCWlLK3U2+LPSjR7AiEAkuOWRDpiKJ6LKHRjoUJKQwWKBHrtTzXuKsDMrDmJun4="}]},"_npmUser":{"name":"immohammadjaved","email":"helpmejaved@gmail.com"},"directories":{},"maintainers":[{"name":"immohammadjaved","email":"helpmejaved@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/theme_0.1.4_1754420270265_0.49025391249359673"},"_hasShrinkwrap":false}},"time":{"created":"2025-07-12T23:11:23.724Z","modified":"2025-08-05T18:57:50.615Z","0.0.1":"2025-07-12T23:11:24.081Z","0.0.2":"2025-07-12T23:23:36.523Z","0.0.3":"2025-07-13T09:09:23.950Z","0.0.4":"2025-07-13T09:40:38.478Z","0.1.0":"2025-07-14T09:10:01.211Z","0.1.1":"2025-07-14T09:40:03.145Z","0.1.2":"2025-07-14T23:02:10.701Z","0.1.3":"2025-08-05T18:53:39.557Z","0.1.4":"2025-08-05T18:57:50.437Z"},"bugs":{"url":"https://github.com/angularcafe/angularui-theme/issues"},"author":{"name":"Mohammad Javed","email":"mohammadjaved@angularcafe.com","url":"https://x.com/immohammadjaved"},"license":"MIT","homepage":"https://github.com/angularcafe/angularui-theme#readme","keywords":["angular","theme","dark-mode","light-mode","angularui-theme","angularui theme","angular ui theme","angular-theme","angular theme library","angular dark mode","angular light mode","angular theme management","angular theming","angular css variables","angular signals","angular ssr","angular universal","typescript","ui","frontend","css-variables","theme-switcher","theme-toggle","responsive-design","deprecated"],"repository":{"type":"git","url":"git+https://github.com/angularcafe/angularui-theme.git"},"description":"⚠️ DEPRECATED: This package has been rebranded to @slateui/theme. Please migrate to the new package. Modern Theme Management for Angular - A lightweight, feature-rich theme library with automatic dark mode detection, SSR support, and zero configuration re","maintainers":[{"name":"immohammadjaved","email":"helpmejaved@gmail.com"}],"readme":"# @angularui/theme\n\n[![npm version](https://badge.fury.io/js/%40angularui%2Ftheme.svg)](https://badge.fury.io/js/%40angularui%2Ftheme)\n[![Downloads](https://img.shields.io/npm/dm/@angularui/theme.svg)](https://www.npmjs.com/package/@angularui/theme)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n> **⚠️ DEPRECATED: This package has been rebranded to [@slateui/theme](https://github.com/angularcafe/slateui-theme)**\n> \n> **@angularui/theme is deprecated and will no longer receive updates. Please migrate to the new package:**\n> \n> ```bash\n> npm uninstall @angularui/theme\n> npm install @slateui/theme\n> ```\n> \n\n> \n> **Quick Migration:**\n> - Replace all imports from `@angularui/theme` to `@slateui/theme`\n> - Update provider from `provideUiTheme()` to `provideSlateUiTheme()`\n> - Update your `app.config.ts` and component imports\n> \n> **New Repository:** [https://github.com/angularcafe/slateui-theme](https://github.com/angularcafe/slateui-theme)\n> \n> **Documentation:** [https://github.com/angularcafe/slateui-theme#readme](https://github.angularcafe/slateui-theme#readme)\n\nModern Theme Management for Angular - A lightweight, feature-rich theme library with automatic dark mode detection, SSR-safe, and zero configuration required.\n\n**🌐 [Live Demo](https://angularcafe.github.io/angularui-theme/)**\n\n## 🌟 Features\n\n- **🎨 Automatic Theme Detection** - Supports light, dark, and system themes with OS preference detection\n- **⚡ Angular 20 Signals** - Built with modern Angular signals for optimal performance and reactivity\n- **🖥️ SSR-safe** - No hydration mismatch, works with Angular SSR out of the box\n- **🎯 Zero Configuration** - Works out of the box with sensible defaults\n- **🔧 Flexible Strategy** - Choose between class-based or attribute-based theming\n- **📦 Tiny Bundle** - Lightweight with no unnecessary dependencies\n- **🛡️ Production Ready** - Comprehensive error handling and memory leak prevention\n- **♿ Accessibility Friendly** - Respects user preferences and system settings\n- **🚀 Performance Optimized** - Efficient DOM updates and minimal re-renders\n- **🔒 Type Safe** - Full TypeScript support with strict type checking\n- **🧪 Tested** - Comprehensive test coverage for reliability\n- **📚 Well Documented** - Extensive documentation with real-world examples\n- **⚙️ Modern Architecture** - Uses Angular's app initializer for clean, testable initialization\n\n## 🚀 Quick Start\n\n### Installation\n\n```bash\nnpm install @angularui/theme\n```\n\n### Basic Setup\n\nAdd the theme provider to your `app.config.ts`:\n\n```typescript\nimport { ApplicationConfig } from '@angular/core';\nimport { provideUiTheme } from '@angularui/theme';\n\nexport const appConfig: ApplicationConfig = {\n  providers: [\n    provideUiTheme()\n  ]\n};\n```\n\n### Use in Components\n\n```typescript\nimport { Component, inject } from '@angular/core';\nimport { ThemeService } from '@angularui/theme';\n\n@Component({\n  selector: 'app-header',\n  template: `\n    <header>\n      <h1>My App</h1>\n      <button (click)=\"toggleTheme()\">Toggle Theme</button>\n      <p>Current theme: {{ themeService.theme() }}</p>\n      <p>Resolved theme: {{ themeService.resolvedTheme() }}</p>\n    </header>\n  `\n})\nexport class HeaderComponent {\n  private themeService = inject(ThemeService);\n\n  toggleTheme() {\n    this.themeService.toggle();\n  }\n}\n```\n\n### Add CSS for Theming\n\n```css\n/* Default styles (light theme) */\n:root {\n  --bg-color: #ffffff;\n  --text-color: #000000;\n  --primary-color: #3b82f6;\n}\n\n/* Dark theme styles */\n.dark {\n  --bg-color: #1f2937;\n  --text-color: #f9fafb;\n  --primary-color: #60a5fa;\n}\n\nbody {\n  background-color: var(--bg-color);\n  color: var(--text-color);\n  transition: background-color 0.3s ease, color 0.3s ease;\n}\n```\n\n### How to Prevent Theme Flash (FOUC) with an Inline Script\nAdd this **inline** script to your `index.html` `<head>`:\n```html\n<script>\n(function(){'use strict';try{var t=localStorage.getItem('theme')||'system',e=t==='system'?window.matchMedia('(prefers-color-scheme: dark)').matches?'dark':'light':t==='light'||t==='dark'?t:'light',n=document.documentElement;if(n){n.classList.remove('light','dark'),e==='dark'?(n.classList.add('dark'),n.setAttribute('data-theme','dark')):(n.classList.remove('dark'),n.removeAttribute('data-theme')),n.style.colorScheme=e}}catch(e){try{var n=document.documentElement;n&&(n.classList.remove('light','dark'),n.removeAttribute('data-theme'),n.style.colorScheme='light')}catch(e){}}})();\n</script>\n```\n**Why inline?** Angular does not provide a way to inject scripts into the HTML `<head>` at build time. For true FOUC prevention, the script must run immediately as the HTML is parsed—before any content is rendered. External scripts or Angular providers/services run too late to prevent a flash. This is why the script must be copied directly into your `index.html` head.\n\n**Note:** This approach is SSR-safe: the initial HTML uses the default theme, and the correct theme is applied instantly on page load.\n\n#### FAQ: SSR, LocalStorage, and Theme Flash\n- The SSR HTML always uses the default theme, since user preferences are only available in the browser.\n- The inline script applies the correct theme instantly on page load, so users never see a flash of the wrong theme.\n- This is the standard, SSR-safe approach used by modern theme libraries (like next-themes).\n\n## Why @angularui/theme?\n\n- Native Angular integration: signals, DI, and standalone components\n- TypeScript-first and future-proof (Angular 20+ ready)\n- Clean, testable architecture (app initializer pattern)\n- Consistent, standardized theming across apps\n- Excellent developer experience (autocomplete, IDE support)\n- Performance optimized and tree-shakeable\n- Well-documented, maintainable, and enterprise-ready\n\n## 🏗️ Modern Architecture\n\n### App Initializer Pattern\n\n@angularui/theme uses Angular's `provideAppInitializer()` for clean, testable initialization:\n\n```typescript\n// Traditional approach (other libraries)\nconstructor() {\n  this.initialize(); // Side effects in constructor\n}\n\n// @angularui/theme approach\nprovideAppInitializer(() => {\n  const themeService = inject(ThemeService);\n  themeService.initialize(); // Clean, controlled initialization\n  return Promise.resolve();\n})\n```\n\n### Benefits of This Approach:\n\n- **🔄 Testable** - Can test service without auto-initialization\n- **⚡ Performant** - No constructor side effects\n- **🎯 Controlled** - Can conditionally initialize based on app state\n- **🧹 Clean** - Separation of concerns\n- **🔧 Flexible** - Manual initialization when needed\n- **📚 Modern** - Follows Angular 20+ best practices\n\n## 📖 Configuration Options\n\n```typescript\ninterface ThemeConfig {\n  defaultTheme?: 'light' | 'dark' | 'system';  // Default: 'system'\n  storageKey?: string;                         // Default: 'theme'\n  strategy?: 'attribute' | 'class';            // Default: 'attribute'\n  enableAutoInit?: boolean;                    // Default: true\n  enableColorScheme?: boolean;                 // Default: true\n  enableSystem?: boolean;                      // Default: true\n  forcedTheme?: 'light' | 'dark' | 'system';  // Default: undefined\n}\n```\n\n### Configuration Examples\n\n#### Tailwind CSS Integration\n```typescript\nprovideUiTheme({\n  strategy: 'class'\n})\n```\n\n#### Custom Storage Key\n```typescript\nprovideUiTheme({\n  storageKey: 'my-app-theme'\n})\n```\n\n#### Disable System Detection\n```typescript\nprovideUiTheme({\n  enableSystem: false\n})\n```\n\n#### Forced Theme (for demos)\n```typescript\nprovideUiTheme({\n  forcedTheme: 'dark'\n})\n```\n\n## 🔧 API Reference\n\n### ThemeService\n\nThe main service that manages theme state using Angular signals.\n\n#### Properties\n\n- `theme()` - Readonly signal for current theme setting\n- `systemTheme()` - Readonly signal for system theme preference\n- `resolvedTheme()` - Computed signal for the actual applied theme\n- `initialized` - Boolean property indicating if service is initialized\n- `isForced` - Boolean property indicating if forced theme is active\n\n#### Methods\n\n- `setTheme(theme: 'light' | 'dark' | 'system')` - Set the theme\n- `toggle()` - Cycle through themes (light → dark → system)\n- `isDark()` - Check if current theme is dark\n- `isLight()` - Check if current theme is light\n- `isSystem()` - Check if using system theme\n- `getConfig()` - Get current configuration\n- `cleanup()` - Manual cleanup (automatically called on destroy)\n\n### Example Usage\n\n```typescript\nimport { Component, inject } from '@angular/core';\nimport { ThemeService } from '@angularui/theme';\n\n@Component({\n  selector: 'app-example',\n  template: `\n    <div>\n      <h1>Theme Demo</h1>\n      \n      <div class=\"theme-info\">\n        <p>Current setting: {{ themeService.theme() }}</p>\n        <p>System preference: {{ themeService.systemTheme() }}</p>\n        <p>Applied theme: {{ themeService.resolvedTheme() }}</p>\n        <p>Is dark mode: {{ themeService.isDark() ? 'Yes' : 'No' }}</p>\n      </div>\n\n      <div class=\"theme-controls\">\n        <button (click)=\"themeService.setTheme('light')\">Light</button>\n        <button (click)=\"themeService.setTheme('dark')\">Dark</button>\n        <button (click)=\"themeService.setTheme('system')\">System</button>\n        <button (click)=\"themeService.toggle()\">Toggle</button>\n      </div>\n    </div>\n  `\n})\nexport class ExampleComponent {\n  private themeService = inject(ThemeService);\n}\n```\n\n## 🔄 Lifecycle Management\n\nThe ThemeService automatically handles cleanup when the application is destroyed. However, you can also manually manage the lifecycle:\n\n### Manual Cleanup\n\n```typescript\nimport { Component, inject, OnDestroy } from '@angular/core';\nimport { ThemeService } from '@angularui/theme';\n\n@Component({\n  selector: 'app-example',\n  template: `...`\n})\nexport class ExampleComponent implements OnDestroy {\n  private themeService = inject(ThemeService);\n\n  ngOnDestroy() {\n    // Manual cleanup (optional - automatic cleanup is handled)\n    this.themeService.cleanup();\n  }\n}\n```\n\n### Configuration Access\n\n```typescript\n// Get current configuration\nconst config = this.themeService.getConfig();\nconsole.log('Current config:', config);\n```\n\n## 🎨 Theming Strategies\n\n### Class Strategy (Recommended for Tailwind)\n\n```typescript\nprovideUiTheme({\n  strategy: 'class'\n})\n```\n\n```css\n/* CSS */\n.dark {\n  --bg-color: #1f2937;\n  --text-color: #f9fafb;\n}\n```\n\n```html\n<!-- HTML -->\n<html class=\"dark\">\n  <!-- Dark theme applied -->\n</html>\n```\n\n### Attribute Strategy (CSS Variables)\n\n```typescript\nprovideUiTheme({\n  strategy: 'attribute'\n})\n```\n\n```css\n/* CSS */\n[data-theme=\"dark\"] {\n  --bg-color: #1f2937;\n  --text-color: #f9fafb;\n}\n```\n\n```html\n<!-- HTML -->\n<html data-theme=\"dark\">\n  <!-- Dark theme applied -->\n</html>\n```\n\n## 🖥️ SSR Support\n\nThe package automatically handles SSR scenarios:\n\n- **Server-side rendering** - Uses default values for consistent rendering\n- **Hydration safety** - Prevents mismatches between server and client\n- **Client-side activation** - Loads saved preferences and applies them\n- **No additional configuration** needed for Angular SSR\n\n## 🚀 Advanced Usage\n\n### Manual Initialization\n\n```typescript\nprovideUiTheme({\n  enableAutoInit: false\n})\n\n// In your component\nexport class AppComponent implements OnInit {\n  private themeService = inject(ThemeService);\n  \n  ngOnInit() {\n    // Initialize when ready\n    this.themeService.initialize();\n  }\n}\n```\n\n### Conditional Initialization\n\n```typescript\nprovideUiTheme({\n  enableAutoInit: false\n})\n\n// Initialize based on conditions\nngOnInit() {\n  if (this.shouldInitializeTheme()) {\n    this.themeService.initialize();\n  }\n}\n```\n\n### Custom Theme Detection\n\n```typescript\nimport { effect, inject } from '@angular/core';\nimport { ThemeService } from '@angularui/theme';\n\n// Listen to theme changes\neffect(() => {\n  const themeService = inject(ThemeService);\n  const theme = themeService.resolvedTheme();\n  console.log('Theme changed to:', theme);\n  \n  // Apply custom logic\n  if (theme === 'dark') {\n    // Dark theme specific logic\n  }\n});\n```\n\n## 📦 Bundle Size\n\n- **Core package**: ~13KB (raw) / ~3KB (gzipped)\n- **Zero external dependencies** - Only Angular core and common\n- **Tree-shakeable** - Unused features are removed\n\n## 🤝 Contributing\n\nContributions are welcome! To contribute:\n\n1. **Fork** this repository.\n2. **Create a new branch** for your feature or fix.\n3. **Make your changes** and ensure all tests pass.\n4. **Open a Pull Request** with a clear description of your changes.\n\nPlease review our [Contributing Guide](CONTRIBUTING.md) before submitting your PR.\n\n## 📄 License\n\nMIT License - see [LICENSE](LICENSE) file for details.\n\n## 🙏 Acknowledgments\n\n- Inspired by [next-themes](https://github.com/pacocoursey/next-themes)\n- Built with [Angular](https://angular.io/)\n\n---\n\n**Made with ❤️ for the Angular community**\n\n**Created by [@immohammadjaved](https://x.com/immohammadjaved)**\n","readmeFilename":"README.md"}