{"_id":"@cybersailor/slauth-ui-vue","_rev":"14-ac453d8c5d387e5f486b2d91573a17df","name":"@cybersailor/slauth-ui-vue","dist-tags":{"latest":"0.10.8"},"versions":{"0.8.1":{"name":"@cybersailor/slauth-ui-vue","version":"0.8.1","keywords":["auth","aira","vue","vue3","ui","components","authentication"],"author":{"name":"CYBERSAILOR PTE.LTD."},"license":"Apache-2.0","_id":"@cybersailor/slauth-ui-vue@0.8.1","maintainers":[{"name":"wanglei917590","email":"flaboy.cn@gmail.com"}],"homepage":"https://github.com/thecybersailor/slauth","dist":{"shasum":"de8777f6d6ad96af7185316069041cc65b588639","tarball":"https://registry.npmjs.org/@cybersailor/slauth-ui-vue/-/slauth-ui-vue-0.8.1.tgz","fileCount":132,"integrity":"sha512-/KRGj00Hey9APG0hwaSuqAG4fda/GR1ussjr+SHVTLAKw57YWFyAJllIidNQAZpC314+Ojn2vBW6VYfZHrMPuA==","signatures":[{"sig":"MEQCIHW/D7eNCgQm8vVa/RVZI4bZ6LzP9Skm5xZYAWn++L4vAiBmSo6u0RwJVWGZDfXFkkHiKUSYwUwOyit/TSkb7fy8tw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":919770},"main":"./dist/index.cjs.js","types":"./dist/index.d.ts","module":"./dist/index.es.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"./style.css":"./dist/@cybersailor/slauth-ui-vue.css","./package.json":"./package.json","./dist/@cybersailor/slauth-ui-vue.css":"./dist/@cybersailor/slauth-ui-vue.css"},"gitHead":"d207d110547ba89d1a65cc801d795a77610cd0d3","scripts":{"dev":"vite","lint":"eslint src/**/*.{ts,vue}","build":"vite build && vue-tsc --emitDeclarationOnly","preview":"vite preview","type-check":"vue-tsc --noEmit","build:watch":"vite build --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"wanglei917590","email":"flaboy.cn@gmail.com"},"workspaces":["../@cybersailor/slauth-ts"],"_npmVersion":"10.7.0","description":"Vue 3 UI components for slauth","directories":{},"_nodeVersion":"20.15.0","dependencies":{"ua-parser-js":"^1.0.41","@cybersailor/slauth-ts":"^0.8.1"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.18","vite":"^5.4.11","eslint":"^8.57.1","vue-tsc":"^3.0.4","typescript":"~5.8.0","@types/node":"^22.16.5","@vue/tsconfig":"^0.7.0","vite-plugin-dts":"^4.3.0","eslint-plugin-vue":"^9.28.0","@vitejs/plugin-vue":"^5.2.4","@types/ua-parser-js":"^0.7.39","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"vue":"^3.3.0"},"_npmOperationalInternal":{"tmp":"tmp/slauth-ui-vue_0.8.1_1759283758640_0.0015401735940501204","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"@cybersailor/slauth-ui-vue","version":"0.8.2","keywords":["auth","aira","vue","vue3","ui","components","authentication"],"author":{"name":"CYBERSAILOR PTE.LTD."},"license":"Apache-2.0","_id":"@cybersailor/slauth-ui-vue@0.8.2","maintainers":[{"name":"wanglei917590","email":"flaboy.cn@gmail.com"}],"homepage":"https://github.com/thecybersailor/slauth","dist":{"shasum":"f45fe311e724f0dd3cd6a5f725b845a87764c66d","tarball":"https://registry.npmjs.org/@cybersailor/slauth-ui-vue/-/slauth-ui-vue-0.8.2.tgz","fileCount":132,"integrity":"sha512-N8vw0dekc3tYPVtC5DiGRYrnqqriuDY/nP1IM9eb/qGJ6grWnW+ko1MF7tVAx0uLIt5LBKjXuvyRQDC1DuW+Dg==","signatures":[{"sig":"MEYCIQDz7OuyUNYawISJCJpkCFayFhe8KNwhPW5tB+pNOZFvmQIhAOukuaRgDHW4CvHtL9rWPQ8VxY6bJCDiqkOMCRfoukPd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":919663},"main":"./dist/index.cjs.js","types":"./dist/index.d.ts","module":"./dist/index.es.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"./style.css":"./dist/style.css","./package.json":"./package.json"},"gitHead":"76094e41f00851d66a505f1d19fd88e4033e0ed3","scripts":{"dev":"vite","lint":"eslint src/**/*.{ts,vue}","build":"vite build && vue-tsc --emitDeclarationOnly","preview":"vite preview","type-check":"vue-tsc --noEmit","build:watch":"vite build --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"wanglei917590","email":"flaboy.cn@gmail.com"},"workspaces":["../@cybersailor/slauth-ts"],"_npmVersion":"10.7.0","description":"Vue 3 UI components for slauth","directories":{},"_nodeVersion":"20.15.0","dependencies":{"ua-parser-js":"^1.0.41","@cybersailor/slauth-ts":"^0.8.1"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.18","vite":"^5.4.11","eslint":"^8.57.1","vue-tsc":"^3.0.4","typescript":"~5.8.0","@types/node":"^22.16.5","@vue/tsconfig":"^0.7.0","vite-plugin-dts":"^4.3.0","eslint-plugin-vue":"^9.28.0","@vitejs/plugin-vue":"^5.2.4","@types/ua-parser-js":"^0.7.39","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"vue":"^3.3.0"},"_npmOperationalInternal":{"tmp":"tmp/slauth-ui-vue_0.8.2_1759288084474_0.9571693259109464","host":"s3://npm-registry-packages-npm-production"}},"0.8.3":{"name":"@cybersailor/slauth-ui-vue","version":"0.8.3","keywords":["auth","aira","vue","vue3","ui","components","authentication"],"author":{"name":"CYBERSAILOR PTE.LTD."},"license":"Apache-2.0","_id":"@cybersailor/slauth-ui-vue@0.8.3","maintainers":[{"name":"wanglei917590","email":"flaboy.cn@gmail.com"}],"homepage":"https://github.com/thecybersailor/slauth","dist":{"shasum":"e5211b7fe51de0d715c52bd8a45d9327f7d679bd","tarball":"https://registry.npmjs.org/@cybersailor/slauth-ui-vue/-/slauth-ui-vue-0.8.3.tgz","fileCount":142,"integrity":"sha512-IsEDBq5WrxjsAT9olWIQqYfAZ989XEVBsDJJuxHbah5/Gf4pHGSy+Ghjrt6o2QVzNBB1bVdXny7upfB8IwgNzw==","signatures":[{"sig":"MEYCIQCGqYDN90/WYE8WmVzesyvN8NmGBmrJnaXInjCNRQnG9wIhALzo5B2fcALndfB2/A93WAj4L+V8qBV+Skq1bvLxRHV9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":986604},"main":"./dist/index.cjs.js","types":"./dist/index.d.ts","module":"./dist/index.es.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"./style.css":"./dist/style.css","./package.json":"./package.json"},"gitHead":"74945d35d520312894b6a1b6d0764adfddc6402a","scripts":{"dev":"vite","lint":"eslint src/**/*.{ts,vue}","build":"vite build && vue-tsc --emitDeclarationOnly","preview":"vite preview","type-check":"vue-tsc --noEmit","build:watch":"vite build --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"wanglei917590","email":"flaboy.cn@gmail.com"},"workspaces":["../@cybersailor/slauth-ts"],"_npmVersion":"10.7.0","description":"Vue 3 UI components for slauth","directories":{},"_nodeVersion":"20.15.0","dependencies":{"ua-parser-js":"^1.0.41","@cybersailor/slauth-ts":"^0.8.3"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.18","vite":"^5.4.11","eslint":"^8.57.1","vue-tsc":"^3.0.4","typescript":"~5.8.0","@types/node":"^22.16.5","@vue/tsconfig":"^0.7.0","vite-plugin-dts":"^4.3.0","eslint-plugin-vue":"^9.28.0","@vitejs/plugin-vue":"^5.2.4","@types/ua-parser-js":"^0.7.39","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"vue":"^3.3.0"},"_npmOperationalInternal":{"tmp":"tmp/slauth-ui-vue_0.8.3_1759991893787_0.5823887250361255","host":"s3://npm-registry-packages-npm-production"}},"0.8.4":{"name":"@cybersailor/slauth-ui-vue","version":"0.8.4","keywords":["auth","aira","vue","vue3","ui","components","authentication"],"author":{"name":"CYBERSAILOR PTE.LTD."},"license":"Apache-2.0","_id":"@cybersailor/slauth-ui-vue@0.8.4","maintainers":[{"name":"wanglei917590","email":"flaboy.cn@gmail.com"}],"homepage":"https://github.com/thecybersailor/slauth","dist":{"shasum":"ef56e1390b8db88dfae70eff061c66c3bc94be26","tarball":"https://registry.npmjs.org/@cybersailor/slauth-ui-vue/-/slauth-ui-vue-0.8.4.tgz","fileCount":142,"integrity":"sha512-9dj76dlYY2AdaK5HPRX9pP1Y6wmsyy8od83LkyHt252DosneJGp7asHbXuI5dETeTqLN0DA7i4JVhZ4sCuFNPg==","signatures":[{"sig":"MEYCIQDFzHZHRwUYtutCHJmJd2M4lGxQToveVZ+318TF9qMrxgIhAJSMMatdspo4dhyrUUyWrpdJ55v2qOTGqOycxG69p3FP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":986604},"main":"./dist/index.cjs.js","types":"./dist/index.d.ts","module":"./dist/index.es.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"./style.css":"./dist/style.css","./package.json":"./package.json"},"gitHead":"74945d35d520312894b6a1b6d0764adfddc6402a","scripts":{"dev":"vite","lint":"eslint src/**/*.{ts,vue}","build":"vite build && vue-tsc --emitDeclarationOnly","preview":"vite preview","type-check":"vue-tsc --noEmit","build:watch":"vite build --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"wanglei917590","email":"flaboy.cn@gmail.com"},"workspaces":["../@cybersailor/slauth-ts"],"_npmVersion":"10.7.0","description":"Vue 3 UI components for slauth","directories":{},"_nodeVersion":"20.15.0","dependencies":{"ua-parser-js":"^1.0.41","@cybersailor/slauth-ts":"^0.8.4"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.18","vite":"^5.4.11","eslint":"^8.57.1","vue-tsc":"^3.0.4","typescript":"~5.8.0","@types/node":"^22.16.5","@vue/tsconfig":"^0.7.0","vite-plugin-dts":"^4.3.0","eslint-plugin-vue":"^9.28.0","@vitejs/plugin-vue":"^5.2.4","@types/ua-parser-js":"^0.7.39","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"vue":"^3.3.0"},"_npmOperationalInternal":{"tmp":"tmp/slauth-ui-vue_0.8.4_1760015861788_0.6658318592826746","host":"s3://npm-registry-packages-npm-production"}},"0.8.5":{"name":"@cybersailor/slauth-ui-vue","version":"0.8.5","keywords":["auth","aira","vue","vue3","ui","components","authentication"],"author":{"name":"CYBERSAILOR PTE.LTD."},"license":"Apache-2.0","_id":"@cybersailor/slauth-ui-vue@0.8.5","maintainers":[{"name":"wanglei917590","email":"flaboy.cn@gmail.com"}],"homepage":"https://github.com/thecybersailor/slauth","dist":{"shasum":"495bcb1cf904f98dc0ff18dfa44ccc53da378fd8","tarball":"https://registry.npmjs.org/@cybersailor/slauth-ui-vue/-/slauth-ui-vue-0.8.5.tgz","fileCount":142,"integrity":"sha512-OViRaabcHTNHttut/S/rFudL23lyRxCAkGi8TPU2vNq40Id7gLMlpB77sd+kW9YlDG1YgmkiIlMr2Xr8ifKFsA==","signatures":[{"sig":"MEQCIBihXo+39a1I4zxfcsHJwxJRyY9vaX+wiZdgyBOPDkQDAiBFI6yKrFp270dMLhCKI6HtRtf8CkeOT/kQOjNBYdBaaQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":983860},"main":"./dist/index.cjs.js","types":"./dist/index.d.ts","module":"./dist/index.es.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"./style.css":"./dist/style.css","./package.json":"./package.json"},"gitHead":"74945d35d520312894b6a1b6d0764adfddc6402a","scripts":{"dev":"vite","lint":"eslint src/**/*.{ts,vue}","build":"vite build && vue-tsc --emitDeclarationOnly","preview":"vite preview","type-check":"vue-tsc --noEmit","build:watch":"vite build --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"wanglei917590","email":"flaboy.cn@gmail.com"},"workspaces":["../@cybersailor/slauth-ts"],"_npmVersion":"10.7.0","description":"Vue 3 UI components for slauth","directories":{},"_nodeVersion":"20.15.0","dependencies":{"ua-parser-js":"^1.0.41","@cybersailor/slauth-ts":"^0.8.5"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.18","vite":"^5.4.11","eslint":"^8.57.1","vue-tsc":"^3.0.4","typescript":"~5.8.0","@types/node":"^22.16.5","@vue/tsconfig":"^0.7.0","vite-plugin-dts":"^4.3.0","eslint-plugin-vue":"^9.28.0","@vitejs/plugin-vue":"^5.2.4","@types/ua-parser-js":"^0.7.39","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"vue":"^3.3.0"},"_npmOperationalInternal":{"tmp":"tmp/slauth-ui-vue_0.8.5_1760020653351_0.5259923120017429","host":"s3://npm-registry-packages-npm-production"}},"0.8.6":{"name":"@cybersailor/slauth-ui-vue","version":"0.8.6","keywords":["auth","aira","vue","vue3","ui","components","authentication"],"author":{"name":"CYBERSAILOR PTE.LTD."},"license":"Apache-2.0","_id":"@cybersailor/slauth-ui-vue@0.8.6","maintainers":[{"name":"wanglei917590","email":"flaboy.cn@gmail.com"}],"homepage":"https://github.com/thecybersailor/slauth","dist":{"shasum":"c179932b81e3b8b925a7d60cf71899c9d1a76640","tarball":"https://registry.npmjs.org/@cybersailor/slauth-ui-vue/-/slauth-ui-vue-0.8.6.tgz","fileCount":142,"integrity":"sha512-IbitrIEyKw8BsCTLhkRDN1XGQmFO93qhYwds27AwKhRgK0JhPaZf/04ZWHuKH590bYOzbiaGX7LKE2wNBPDDuA==","signatures":[{"sig":"MEUCIQD8tDH0NgySr0vf7XCk2o3i7CBpnfVmp1R/iA/buKBSogIgYvfDVuEkQj6QymtziEcmF4qqA9aoDSphAQ9lBYnb8+U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":984107},"main":"./dist/index.cjs.js","types":"./dist/index.d.ts","module":"./dist/index.es.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"./style.css":"./dist/style.css","./package.json":"./package.json"},"gitHead":"d568e65313580419eaa6844c00655affc927621e","scripts":{"dev":"vite","lint":"eslint src/**/*.{ts,vue}","build":"vite build && vue-tsc --emitDeclarationOnly","preview":"vite preview","type-check":"vue-tsc --noEmit","build:watch":"vite build --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"wanglei917590","email":"flaboy.cn@gmail.com"},"workspaces":["../@cybersailor/slauth-ts"],"_npmVersion":"11.6.2","description":"Vue 3 UI components for slauth","directories":{},"_nodeVersion":"25.1.0","dependencies":{"ua-parser-js":"^1.0.41","@cybersailor/slauth-ts":"^0.8.6"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.18","vite":"^5.4.11","eslint":"^8.57.1","vue-tsc":"^3.0.4","typescript":"~5.8.0","@types/node":"^22.16.5","@vue/tsconfig":"^0.7.0","vite-plugin-dts":"^4.3.0","eslint-plugin-vue":"^9.28.0","@vitejs/plugin-vue":"^5.2.4","@types/ua-parser-js":"^0.7.39","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"vue":"^3.3.0"},"_npmOperationalInternal":{"tmp":"tmp/slauth-ui-vue_0.8.6_1763374912066_0.8038533032755986","host":"s3://npm-registry-packages-npm-production"}},"0.8.7":{"name":"@cybersailor/slauth-ui-vue","version":"0.8.7","keywords":["auth","aira","vue","vue3","ui","components","authentication"],"author":{"name":"CYBERSAILOR PTE.LTD."},"license":"Apache-2.0","_id":"@cybersailor/slauth-ui-vue@0.8.7","maintainers":[{"name":"wanglei917590","email":"flaboy.cn@gmail.com"}],"homepage":"https://github.com/thecybersailor/slauth","dist":{"shasum":"d11e6b2a8da6d48ad355b019c8c3c78043377a63","tarball":"https://registry.npmjs.org/@cybersailor/slauth-ui-vue/-/slauth-ui-vue-0.8.7.tgz","fileCount":142,"integrity":"sha512-cjUKdc4sDsKu+7JSjh9bOUX/MO7kU1hHAuurMYx2YcWAqJt6f/XXV2txYESf7QPUmptNsIiwqBkcgth5Xq+F4Q==","signatures":[{"sig":"MEQCIELrLg9tFVF8rZ8YWPeAP3JqYAchul3bLkHnxgr7RblKAiB4MJtH0cR3jPkH8v060BGpEfFqQfC0tge7IMkjxatr3g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":984107},"main":"./dist/index.cjs.js","types":"./dist/index.d.ts","module":"./dist/index.es.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"./style.css":"./dist/style.css","./package.json":"./package.json"},"gitHead":"f4786db2e626158e3c6fa33aff67033135d7bac9","scripts":{"dev":"vite","lint":"eslint src/**/*.{ts,vue}","build":"vite build && vue-tsc --emitDeclarationOnly","preview":"vite preview","type-check":"vue-tsc --noEmit","build:watch":"vite build --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"wanglei917590","email":"flaboy.cn@gmail.com"},"workspaces":["../@cybersailor/slauth-ts"],"_npmVersion":"11.6.2","description":"Vue 3 UI components for slauth","directories":{},"_nodeVersion":"25.1.0","dependencies":{"ua-parser-js":"^1.0.41","@cybersailor/slauth-ts":"^0.8.7"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.18","vite":"^5.4.11","eslint":"^8.57.1","vue-tsc":"^3.0.4","typescript":"~5.8.0","@types/node":"^22.16.5","@vue/tsconfig":"^0.7.0","vite-plugin-dts":"^4.3.0","eslint-plugin-vue":"^9.28.0","@vitejs/plugin-vue":"^5.2.4","@types/ua-parser-js":"^0.7.39","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"vue":"^3.3.0"},"_npmOperationalInternal":{"tmp":"tmp/slauth-ui-vue_0.8.7_1763382641849_0.16686472451962642","host":"s3://npm-registry-packages-npm-production"}},"0.8.8":{"name":"@cybersailor/slauth-ui-vue","version":"0.8.8","keywords":["auth","aira","vue","vue3","ui","components","authentication"],"author":{"name":"CYBERSAILOR PTE.LTD."},"license":"Apache-2.0","_id":"@cybersailor/slauth-ui-vue@0.8.8","maintainers":[{"name":"wanglei917590","email":"flaboy.cn@gmail.com"}],"homepage":"https://github.com/thecybersailor/slauth","dist":{"shasum":"9d15a8ed106bf4f789559b0988c1b9513f4ee08d","tarball":"https://registry.npmjs.org/@cybersailor/slauth-ui-vue/-/slauth-ui-vue-0.8.8.tgz","fileCount":148,"integrity":"sha512-VaCld8Y+0xA3sKgG5bIs2rtY0BlO01f7/UXxJRnAI00FCB3g3zCP5ygZ/HU1ZQgtb/aC5Gwm8vnECirn15zgFw==","signatures":[{"sig":"MEUCIQC10c8vH/JttHNbhfjuSuRiWK59zrUB9Uao2zanAcCxngIgb1vzBtOdbDMDy1hkUMuWhogGcePw/cY+AGFfFztzjik=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1017370},"main":"./dist/index.cjs.js","types":"./dist/index.d.ts","module":"./dist/index.es.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"./style.css":"./dist/style.css","./package.json":"./package.json"},"gitHead":"b478b26594292c22c6f927a798df2b169bcba099","scripts":{"dev":"vite","lint":"eslint src/**/*.{ts,vue}","build":"vite build && vue-tsc --emitDeclarationOnly","preview":"vite preview","type-check":"vue-tsc --noEmit","build:watch":"vite build --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"wanglei917590","email":"flaboy.cn@gmail.com"},"workspaces":["../@cybersailor/slauth-ts"],"_npmVersion":"10.7.0","description":"Vue 3 UI components for slauth","directories":{},"_nodeVersion":"20.15.0","dependencies":{"ua-parser-js":"^1.0.41","@cybersailor/slauth-ts":"^0.8.8"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.18","vite":"^5.4.11","eslint":"^8.57.1","vue-tsc":"^3.0.4","typescript":"~5.8.0","@types/node":"^22.16.5","@vue/tsconfig":"^0.7.0","vite-plugin-dts":"^4.3.0","eslint-plugin-vue":"^9.28.0","@vitejs/plugin-vue":"^5.2.4","@types/ua-parser-js":"^0.7.39","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"vue":"^3.3.0"},"_npmOperationalInternal":{"tmp":"tmp/slauth-ui-vue_0.8.8_1770469601850_0.8975551165309767","host":"s3://npm-registry-packages-npm-production"}},"0.8.9":{"name":"@cybersailor/slauth-ui-vue","version":"0.8.9","keywords":["auth","aira","vue","vue3","ui","components","authentication"],"author":{"name":"CYBERSAILOR PTE.LTD."},"license":"Apache-2.0","_id":"@cybersailor/slauth-ui-vue@0.8.9","maintainers":[{"name":"wanglei917590","email":"flaboy.cn@gmail.com"}],"homepage":"https://github.com/thecybersailor/slauth","dist":{"shasum":"1393096412255b1fcdc277d1bc0fd2d0ca6b1bf2","tarball":"https://registry.npmjs.org/@cybersailor/slauth-ui-vue/-/slauth-ui-vue-0.8.9.tgz","fileCount":148,"integrity":"sha512-iQ3oI+kv0lHgpCJJhX68UnswEH5nRAK9UAs5pncHtW2a0H4qSo0EpFOdMDLUZt1bwcfkxBOdeZ2MwFZu6JkKxw==","signatures":[{"sig":"MEUCIGc3OrsLpcjPCAzupIui1pdGY2wQT9tzSdXUeI7pEjM+AiEAp5j+3ghobjW0r8Hru+1n1WLakZtMJMpBUbZOLoC+XG8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1017371},"main":"./dist/index.cjs.js","types":"./dist/index.d.ts","module":"./dist/index.es.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"./style.css":"./dist/style.css","./package.json":"./package.json"},"gitHead":"39e0dee9056670fbb35c0ca3df4724d0a6ccb339","scripts":{"dev":"vite","lint":"eslint src/**/*.{ts,vue}","build":"vite build && vue-tsc --emitDeclarationOnly","preview":"vite preview","type-check":"vue-tsc --noEmit","build:watch":"vite build --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"wanglei917590","email":"flaboy.cn@gmail.com"},"workspaces":["../@cybersailor/slauth-ts"],"_npmVersion":"10.7.0","description":"Vue 3 UI components for slauth","directories":{},"_nodeVersion":"20.15.0","dependencies":{"ua-parser-js":"^1.0.41","@cybersailor/slauth-ts":"^0.8.9"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.18","vite":"^5.4.11","eslint":"^8.57.1","vue-tsc":"^3.0.4","typescript":"~5.8.0","@types/node":"^22.16.5","@vue/tsconfig":"^0.7.0","vite-plugin-dts":"^4.3.0","eslint-plugin-vue":"^9.28.0","@vitejs/plugin-vue":"^5.2.4","@types/ua-parser-js":"^0.7.39","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"vue":"^3.3.0"},"_npmOperationalInternal":{"tmp":"tmp/slauth-ui-vue_0.8.9_1770482916865_0.5195210963796439","host":"s3://npm-registry-packages-npm-production"}},"0.8.10":{"name":"@cybersailor/slauth-ui-vue","version":"0.8.10","keywords":["auth","aira","vue","vue3","ui","components","authentication"],"author":{"name":"CYBERSAILOR PTE.LTD."},"license":"Apache-2.0","_id":"@cybersailor/slauth-ui-vue@0.8.10","maintainers":[{"name":"wanglei917590","email":"flaboy.cn@gmail.com"}],"homepage":"https://github.com/thecybersailor/slauth","dist":{"shasum":"c1c45ae41015fdfc66d9edaf75c60d4a356992b7","tarball":"https://registry.npmjs.org/@cybersailor/slauth-ui-vue/-/slauth-ui-vue-0.8.10.tgz","fileCount":148,"integrity":"sha512-d7igJfWspMyl3Re9qgOZkg8xa3cnzPszc63DIJNOMeTrBQig1rOCf3g9IFO4ZKB0GJbPytpvbxoK7tmg3RMXfQ==","signatures":[{"sig":"MEQCIGiFxselvenMDZfu0G+82jfODyioscsH6ajiblwDKwscAiBTsX+HjVN0bxRmp/frtNqMzpjW3GQus+J0ZTxIFR3o3A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1017373},"main":"./dist/index.cjs.js","types":"./dist/index.d.ts","module":"./dist/index.es.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"./style.css":"./dist/style.css","./package.json":"./package.json"},"gitHead":"39e0dee9056670fbb35c0ca3df4724d0a6ccb339","scripts":{"dev":"vite","lint":"eslint src/**/*.{ts,vue}","build":"vite build && vue-tsc --emitDeclarationOnly","preview":"vite preview","type-check":"vue-tsc --noEmit","build:watch":"vite build --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"wanglei917590","email":"flaboy.cn@gmail.com"},"workspaces":["../@cybersailor/slauth-ts"],"_npmVersion":"10.7.0","description":"Vue 3 UI components for slauth","directories":{},"_nodeVersion":"20.15.0","dependencies":{"ua-parser-js":"^1.0.41","@cybersailor/slauth-ts":"^0.8.10"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.18","vite":"^5.4.11","eslint":"^8.57.1","vue-tsc":"^3.0.4","typescript":"~5.8.0","@types/node":"^22.16.5","@vue/tsconfig":"^0.7.0","vite-plugin-dts":"^4.3.0","eslint-plugin-vue":"^9.28.0","@vitejs/plugin-vue":"^5.2.4","@types/ua-parser-js":"^0.7.39","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"vue":"^3.3.0"},"_npmOperationalInternal":{"tmp":"tmp/slauth-ui-vue_0.8.10_1770505331244_0.08604336274896607","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@cybersailor/slauth-ui-vue","version":"0.9.0","keywords":["auth","aira","vue","vue3","ui","components","authentication"],"author":{"name":"CYBERSAILOR PTE.LTD."},"license":"Apache-2.0","_id":"@cybersailor/slauth-ui-vue@0.9.0","maintainers":[{"name":"wanglei917590","email":"flaboy.cn@gmail.com"}],"homepage":"https://github.com/thecybersailor/slauth","dist":{"shasum":"0da4d3ae6fd56d777213f74e7ab35b445f0fbbf6","tarball":"https://registry.npmjs.org/@cybersailor/slauth-ui-vue/-/slauth-ui-vue-0.9.0.tgz","fileCount":148,"integrity":"sha512-GThJlBQN3Uk2wSjU43173EZcbxtpBtOfHCbpxJWWZsCn9B/myKEloUmpSX2+XDHi6iCf3Xz1du97aWmDdO61xQ==","signatures":[{"sig":"MEUCIQDQq90R0wMw+aak8EAWejL4OW4WSdrOsiXNMuozbkeUXQIgeEB+odlKzgBnaf+3cILyTPec++snsmXhWsQvote/smk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1017167},"main":"./dist/index.cjs.js","types":"./dist/index.d.ts","module":"./dist/index.es.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"./style.css":"./dist/style.css","./package.json":"./package.json"},"gitHead":"39e0dee9056670fbb35c0ca3df4724d0a6ccb339","scripts":{"dev":"vite","lint":"eslint src/**/*.{ts,vue}","build":"vite build && vue-tsc --emitDeclarationOnly","preview":"vite preview","type-check":"vue-tsc --noEmit","build:watch":"vite build --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"wanglei917590","email":"flaboy.cn@gmail.com"},"workspaces":["../@cybersailor/slauth-ts"],"_npmVersion":"10.7.0","description":"Vue 3 UI components for slauth","directories":{},"_nodeVersion":"20.15.0","dependencies":{"ua-parser-js":"^1.0.41","@cybersailor/slauth-ts":"^0.9.0"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.18","vite":"^5.4.11","eslint":"^8.57.1","vue-tsc":"^3.0.4","typescript":"~5.8.0","@types/node":"^22.16.5","@vue/tsconfig":"^0.7.0","vite-plugin-dts":"^4.3.0","eslint-plugin-vue":"^9.28.0","@vitejs/plugin-vue":"^5.2.4","@types/ua-parser-js":"^0.7.39","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"vue":"^3.3.0"},"_npmOperationalInternal":{"tmp":"tmp/slauth-ui-vue_0.9.0_1770523483323_0.6744951671085173","host":"s3://npm-registry-packages-npm-production"}},"0.10.6":{"name":"@cybersailor/slauth-ui-vue","version":"0.10.6","keywords":["auth","aira","vue","vue3","ui","components","authentication"],"author":{"name":"CYBERSAILOR PTE.LTD."},"license":"Apache-2.0","_id":"@cybersailor/slauth-ui-vue@0.10.6","maintainers":[{"name":"wanglei917590","email":"flaboy.cn@gmail.com"}],"homepage":"https://github.com/thecybersailor/slauth","dist":{"shasum":"2e32c757d43f5b0b369ec12b6d3dc34bcf8ee91d","tarball":"https://registry.npmjs.org/@cybersailor/slauth-ui-vue/-/slauth-ui-vue-0.10.6.tgz","fileCount":148,"integrity":"sha512-31qA4dXSIyf7iSq1gaUCDd6WfbxDL5k40/aH/AHAojHgniZvInAR/pHuSc0766uV4v1/V7NfLrMkh0U0m0WvNQ==","signatures":[{"sig":"MEQCIBDlQpY0EWnLq4XQ7QLMHGeG/F4gvx7RxW1Le2HvFwYOAiA2csT8baAIjO1u3tQqwrx3dfKdvsYsTg+hJL8l7FR75g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1026107},"main":"./dist/index.cjs.js","types":"./dist/index.d.ts","module":"./dist/index.es.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"./style.css":"./dist/style.css","./package.json":"./package.json"},"gitHead":"81158ddcdd61326c7b46cdb547b0d2d30a03e48e","scripts":{"dev":"vite","lint":"eslint src/**/*.{ts,vue}","build":"vite build && vue-tsc --emitDeclarationOnly","preview":"vite preview","type-check":"vue-tsc --noEmit","build:watch":"vite build --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"wanglei917590","email":"flaboy.cn@gmail.com"},"workspaces":["../@cybersailor/slauth-ts"],"_npmVersion":"10.8.2","description":"Vue 3 UI components for slauth","directories":{},"_nodeVersion":"20.19.0","dependencies":{"ua-parser-js":"^1.0.41","@cybersailor/slauth-ts":"^0.10.6"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.18","vite":"^5.4.11","eslint":"^8.57.1","vue-tsc":"^3.0.4","typescript":"~5.8.0","@types/node":"^22.16.5","@vue/tsconfig":"^0.7.0","vite-plugin-dts":"^4.3.0","eslint-plugin-vue":"^9.28.0","@vitejs/plugin-vue":"^5.2.4","@types/ua-parser-js":"^0.7.39","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"vue":"^3.3.0"},"_npmOperationalInternal":{"tmp":"tmp/slauth-ui-vue_0.10.6_1777000354128_0.12103052980681928","host":"s3://npm-registry-packages-npm-production"}},"0.10.7":{"name":"@cybersailor/slauth-ui-vue","version":"0.10.7","keywords":["auth","aira","vue","vue3","ui","components","authentication"],"author":{"name":"CYBERSAILOR PTE.LTD."},"license":"Apache-2.0","_id":"@cybersailor/slauth-ui-vue@0.10.7","maintainers":[{"name":"wanglei917590","email":"flaboy.cn@gmail.com"}],"homepage":"https://github.com/thecybersailor/slauth","dist":{"shasum":"a070174bc02b4bd165db570f0d545f868c5196c3","tarball":"https://registry.npmjs.org/@cybersailor/slauth-ui-vue/-/slauth-ui-vue-0.10.7.tgz","fileCount":148,"integrity":"sha512-96qNWeM2HfC32ekjpA8oibJ7EiCC3TlDizrhkRUlafeZnQsN/LiH90mrQQmcR7r2P9+r8Kjm0cPrLbFz/jArsw==","signatures":[{"sig":"MEQCIEX6XeWPLtzfg/7XSpzGP2TfcULkYsHEj/6m3ggXaO7DAiAmQD74JLrVN8NvPT3JWgrMjB057D5FOvLoztZynUhM5A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1026079},"main":"./dist/index.cjs.js","types":"./dist/index.d.ts","module":"./dist/index.es.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"./style.css":"./dist/style.css","./package.json":"./package.json"},"gitHead":"d638559df5858293ebc8439539eb67cc83b8b822","scripts":{"dev":"vite","lint":"eslint src/**/*.{ts,vue}","build":"vite build && vue-tsc --emitDeclarationOnly","preview":"vite preview","type-check":"vue-tsc --noEmit","build:watch":"vite build --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"wanglei917590","email":"flaboy.cn@gmail.com"},"workspaces":["../@cybersailor/slauth-ts"],"_npmVersion":"10.8.2","description":"Vue 3 UI components for slauth","directories":{},"_nodeVersion":"20.19.0","dependencies":{"ua-parser-js":"^1.0.41","@cybersailor/slauth-ts":"^0.10.7"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.18","vite":"^5.4.11","eslint":"^8.57.1","vue-tsc":"^3.0.4","typescript":"~5.8.0","@types/node":"^22.16.5","@vue/tsconfig":"^0.7.0","vite-plugin-dts":"^4.3.0","eslint-plugin-vue":"^9.28.0","@vitejs/plugin-vue":"^5.2.4","@types/ua-parser-js":"^0.7.39","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"vue":"^3.3.0"},"_npmOperationalInternal":{"tmp":"tmp/slauth-ui-vue_0.10.7_1777781509101_0.44624266733530527","host":"s3://npm-registry-packages-npm-production"}},"0.10.8":{"name":"@cybersailor/slauth-ui-vue","version":"0.10.8","description":"Vue 3 UI components for slauth","keywords":["auth","aira","vue","vue3","ui","components","authentication"],"homepage":"https://github.com/thecybersailor/slauth","license":"Apache-2.0","author":{"name":"CYBERSAILOR PTE.LTD."},"main":"./dist/index.cjs.js","module":"./dist/index.es.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"./style.css":"./dist/style.css","./package.json":"./package.json"},"workspaces":["../@cybersailor/slauth-ts"],"scripts":{"build":"vite build && vue-tsc --emitDeclarationOnly","build:watch":"vite build --watch","dev":"vite","preview":"vite preview","lint":"eslint src/**/*.{ts,vue}","type-check":"vue-tsc --noEmit","prepublishOnly":"npm run build"},"dependencies":{"@cybersailor/slauth-ts":"^0.10.8","ua-parser-js":"^1.0.41"},"peerDependencies":{"vue":"^3.3.0"},"devDependencies":{"@types/node":"^22.16.5","@types/ua-parser-js":"^0.7.39","@typescript-eslint/eslint-plugin":"^8.0.0","@typescript-eslint/parser":"^8.0.0","@vitejs/plugin-vue":"^5.2.4","@vue/tsconfig":"^0.7.0","eslint":"^8.57.1","eslint-plugin-vue":"^9.28.0","typescript":"~5.8.0","vite":"^5.4.11","vite-plugin-dts":"^4.3.0","vue":"^3.5.18","vue-tsc":"^3.0.4"},"engines":{"node":">=18.0.0"},"_id":"@cybersailor/slauth-ui-vue@0.10.8","gitHead":"d0d2c2be7a56874b2e1f38aa672055ea8feba5d6","_nodeVersion":"20.19.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-vbU3bNFJmSbluJGF4jK+udENnn9u/4tmtmMfVu+yu3Mr01+z0vDdGZVO0AYj7xVweOreeA6aekuyiWc1GmwSrw==","shasum":"367b468df740aa9199fae74f1cb0f77ec66053b4","tarball":"https://registry.npmjs.org/@cybersailor/slauth-ui-vue/-/slauth-ui-vue-0.10.8.tgz","fileCount":148,"unpackedSize":1026079,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHcP2dT/MMiPutacd1JCYKjrO99aP4R4ZIrSNL6YjK3UAiEAlTa9znJSvDbWXlQm2j5tMjQvO/2FmT25VzFoeTttGEQ="}]},"_npmUser":{"name":"wanglei917590","email":"flaboy.cn@gmail.com"},"directories":{},"maintainers":[{"name":"wanglei917590","email":"flaboy.cn@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/slauth-ui-vue_0.10.8_1777863956282_0.5607116539195138"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-01T01:55:58.545Z","modified":"2026-05-04T03:05:56.600Z","0.8.1":"2025-10-01T01:55:58.950Z","0.8.2":"2025-10-01T03:08:04.737Z","0.8.3":"2025-10-09T06:38:14.008Z","0.8.4":"2025-10-09T13:17:41.995Z","0.8.5":"2025-10-09T14:37:33.591Z","0.8.6":"2025-11-17T10:21:52.273Z","0.8.7":"2025-11-17T12:30:42.103Z","0.8.8":"2026-02-07T13:06:42.057Z","0.8.9":"2026-02-07T16:48:37.140Z","0.8.10":"2026-02-07T23:02:11.436Z","0.9.0":"2026-02-08T04:04:43.531Z","0.10.6":"2026-04-24T03:12:34.289Z","0.10.7":"2026-05-03T04:11:49.279Z","0.10.8":"2026-05-04T03:05:56.494Z"},"author":{"name":"CYBERSAILOR PTE.LTD."},"license":"Apache-2.0","homepage":"https://github.com/thecybersailor/slauth","keywords":["auth","aira","vue","vue3","ui","components","authentication"],"description":"Vue 3 UI components for slauth","maintainers":[{"name":"wanglei917590","email":"flaboy.cn@gmail.com"}],"readme":"# @cybersailor/slauth-ui-vue\n\nVue 3 UI components for slauth.\n\n## Installation\n\n```bash\nnpm install @cybersailor/slauth-ui-vue @cybersailor/slauth-ts\n```\n\n## Quick Start\n\n```vue\n<template>\n  <div>\n    <Auth\n      :auth-client=\"authClient\"\n      appearance=\"default\"\n      theme=\"light\"\n      :providers=\"['google', 'github']\"\n      redirect-to=\"http://localhost:3000/auth/callback\"\n    />\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { createClient } from '@cybersailor/slauth-ts'\nimport { Auth } from '@cybersailor/slauth-ui-vue'\nimport '@cybersailor/slauth-ui-vue/style.css'\n\nconst authClient = createClient({\n  url: 'http://localhost:8080',\n  apiKey: 'your-api-key'\n})\n</script>\n```\n\n## Components\n\n### Auth\n\nThe main authentication component that provides a complete auth flow.\n\n```vue\n<Auth\n  :auth-client=\"authClient\"\n  appearance=\"default\"\n  theme=\"light\"\n  :providers=\"['google', 'github']\"\n  redirect-to=\"http://localhost:3000/auth/callback\"\n  :localization=\"{\n    sign_up: {\n      email_label: 'Email address',\n      password_label: 'Create a Password'\n    }\n  }\"\n  @event=\"handleAuthEvent\"\n/>\n```\n\n### Props\n\n- `authClient` - slauth client instance\n- `appearance` - UI appearance theme (`'default'` | `'minimal'`)\n- `theme` - Color theme (`'light'` | `'dark'` | `'auto'`)\n- `providers` - OAuth providers to show\n- `redirectTo` - URL to redirect after authentication\n- `localization` - Custom text labels\n- `showLinks` - Show sign up/sign in links\n- `view` - Initial view (`'sign_in'` | `'sign_up'` | `'magic_link'` | `'forgotten_password'`)\n\n### Events\n\n- `@event` - Emitted on auth state changes\n\n## Styling\n\nThe components come with default styling that can be customized:\n\n```css\n/* Import default styles */\n@import '@cybersailor/slauth-ui-vue/style.css';\n\n/* Customize variables */\n:root {\n  --auth-ui-primary: #3b82f6;\n  --auth-ui-primary-hover: #2563eb;\n  --auth-ui-border: #e5e7eb;\n  --auth-ui-background: #ffffff;\n  --auth-ui-text: #111827;\n}\n```\n\n## Features\n\n- ✅ Email/Password Authentication\n- ✅ OAuth Providers (Google, GitHub, etc.)\n- ✅ Magic Link Authentication\n- ✅ Password Recovery\n- ✅ Multi-Factor Authentication (MFA)\n- ✅ Responsive Design\n- ✅ Dark/Light Theme Support\n- ✅ Customizable Styling\n- ✅ TypeScript Support\n- ✅ Vue 3 Composition API\n\n## User Management Security Flows\n\nThe user-management components support both secure and legacy identity-change APIs:\n\n- `PasswordManagement.vue` uses `PUT /password`\n- `EmailManagement.vue` prefers `POST /email/change` and `POST /email/change/verify`\n- `PhoneManagement.vue` prefers `POST /phone/change` and `POST /phone/change/verify`\n- Legacy `PUT /email`, `POST /email/verify`, `PUT /phone`, and `POST /phone/verify` remain supported for compatibility\n\nFor secure email and phone changes, the components keep track of `flow_id`, `session_code`, and verification stage internally so they can continue multi-step verification flows.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}