{"_id":"@aejkatappaja/phantom-ui","_rev":"37-5b847f4564f6f8062d4be670042c35bf","name":"@aejkatappaja/phantom-ui","dist-tags":{"latest":"1.6.1"},"versions":{"0.1.1":{"name":"@aejkatappaja/phantom-ui","version":"0.1.1","keywords":["skeleton","shimmer","loading","placeholder","web-component","custom-element","lit","framework-agnostic"],"license":"MIT","_id":"@aejkatappaja/phantom-ui@0.1.1","maintainers":[{"name":"aejkatappaja","email":"joverjlj@gmail.com"}],"bin":{"phantom-ui":"src/cli/init.mjs"},"dist":{"shasum":"a660580925d434c8e284c2bd944a39b919c49389","tarball":"https://registry.npmjs.org/@aejkatappaja/phantom-ui/-/phantom-ui-0.1.1.tgz","fileCount":8,"integrity":"sha512-WF4VaP0GrTlOdp0sJ0vCVnY7n/ioR5Rjd7CQi2xygD6oEzn2mkQzVSBoJZUYlg/7OV3tVwNZWZWDrHGH8ltS+Q==","signatures":[{"sig":"MEQCIGI4n8KPq8agryXlqoMSLvyaU7wTL9YP5VmNlGjbTGQgAiASgKo64Dsn4ML7NHzyeLmfONx1r5pyF6V3CH0dEke4qA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54801},"main":"dist/phantom-ui.js","type":"module","types":"dist/phantom-ui.d.ts","module":"dist/phantom-ui.js","exports":{".":{"types":"./dist/phantom-ui.d.ts","import":"./dist/phantom-ui.js"}},"gitHead":"2d6a3a112a189b208c6aaba087a0b707662efd3a","scripts":{"dev":"tsc --watch","lint":"biome check .","build":"npm run build:esm && npm run build:cdn && npm run build:types && cem analyze","format":"biome format --write .","prepare":"husky","lint:fix":"biome check --write .","build:cdn":"esbuild src/phantom-ui.ts --bundle --format=iife --outfile=dist/phantom-ui.cdn.js --minify --target=es2022","build:esm":"esbuild src/phantom-ui.ts --bundle --format=esm --outfile=dist/phantom-ui.js --minify --target=es2022 --packages=external","storybook":"storybook dev -p 6006","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist","build-storybook":"storybook build"},"_npmUser":{"name":"aejkatappaja","email":"joverjlj@gmail.com"},"_npmVersion":"11.5.1","description":"Structure-aware shimmer skeleton loader as a universal Web Component built with Lit. Works with React, Vue, Svelte, Angular, Solid, or vanilla JS.","directories":{},"lint-staged":{"*.{ts,mjs}":["biome check --write --no-errors-on-unmatched"]},"postinstall":"node ./src/cli/init.mjs || true","_nodeVersion":"24.5.0","dependencies":{"lit":"^3.2.0"},"_hasShrinkwrap":false,"customElements":"custom-elements.json","devDependencies":{"husky":"^9.1.7","storybook":"^8.4.0","typescript":"^5.7.0","lint-staged":"^16.4.0","@biomejs/biome":"^1.9.0","@storybook/web-components":"^8.4.0","@storybook/addon-essentials":"^8.4.0","@storybook/web-components-vite":"^8.4.0","@custom-elements-manifest/analyzer":"^0.11.0"},"_npmOperationalInternal":{"tmp":"tmp/phantom-ui_0.1.1_1774886447113_0.9682002258242557","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@aejkatappaja/phantom-ui","version":"0.2.0","keywords":["skeleton","shimmer","loading","placeholder","web-component","custom-element","lit","framework-agnostic"],"license":"MIT","_id":"@aejkatappaja/phantom-ui@0.2.0","maintainers":[{"name":"aejkatappaja","email":"joverjlj@gmail.com"}],"bin":{"phantom-ui":"src/cli/init.mjs"},"dist":{"shasum":"6b61bbf1f42c1e672f1c1a204d32a795ae1391b6","tarball":"https://registry.npmjs.org/@aejkatappaja/phantom-ui/-/phantom-ui-0.2.0.tgz","fileCount":8,"integrity":"sha512-eFJS2f5ulsQ3YP3MgjVdAluq1r7XuiHnPsvo3lPbRNxx8Ecde8kzZu34bEg/EzEY/gcGaDLseYu2xxHwolOSHA==","signatures":[{"sig":"MEUCIFqfaRgvz+/vi/m041KOZf17EVrox03T03/TW0FbOlhcAiEA2kjYLI6bp3sCSF78oeeqMcQatmhRBdvHambuTfpc9YM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55097},"main":"dist/phantom-ui.js","type":"module","types":"dist/phantom-ui.d.ts","module":"dist/phantom-ui.js","exports":{".":{"types":"./dist/phantom-ui.d.ts","import":"./dist/phantom-ui.js"}},"gitHead":"e3223173155e581f0fd45fcb933fd13cdef422a0","scripts":{"dev":"tsc --watch","lint":"biome check .","build":"npm run build:esm && npm run build:cdn && npm run build:types && cem analyze","format":"biome format --write .","prepare":"husky","lint:fix":"biome check --write .","build:cdn":"esbuild src/phantom-ui.ts --bundle --format=iife --outfile=dist/phantom-ui.cdn.js --minify --target=es2022","build:esm":"esbuild src/phantom-ui.ts --bundle --format=esm --outfile=dist/phantom-ui.js --minify --target=es2022 --packages=external","storybook":"storybook dev -p 6006","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist","build-storybook":"storybook build"},"_npmUser":{"name":"aejkatappaja","email":"joverjlj@gmail.com"},"_npmVersion":"11.5.1","description":"Structure-aware shimmer skeleton loader as a universal Web Component built with Lit. Works with React, Vue, Svelte, Angular, Solid, or vanilla JS.","directories":{},"lint-staged":{"*.{ts,mjs}":["biome check --write --no-errors-on-unmatched"]},"postinstall":"node ./src/cli/init.mjs || true","_nodeVersion":"24.5.0","dependencies":{"lit":"^3.2.0"},"_hasShrinkwrap":false,"customElements":"custom-elements.json","devDependencies":{"husky":"^9.1.7","storybook":"^8.4.0","typescript":"^5.7.0","lint-staged":"^16.4.0","@biomejs/biome":"^1.9.0","@storybook/web-components":"^8.4.0","@storybook/addon-essentials":"^8.4.0","@storybook/web-components-vite":"^8.4.0","@custom-elements-manifest/analyzer":"^0.11.0"},"_npmOperationalInternal":{"tmp":"tmp/phantom-ui_0.2.0_1774893570352_0.20274574606115792","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@aejkatappaja/phantom-ui","version":"0.2.2","keywords":["skeleton","shimmer","loading","placeholder","web-component","custom-element","lit","framework-agnostic"],"license":"MIT","_id":"@aejkatappaja/phantom-ui@0.2.2","maintainers":[{"name":"aejkatappaja","email":"joverjlj@gmail.com"}],"homepage":"https://github.com/Aejkatappaja/phantom-ui#readme","bugs":{"url":"https://github.com/Aejkatappaja/phantom-ui/issues"},"bin":{"phantom-ui":"src/cli/init.mjs"},"dist":{"shasum":"35c017d83d91115daee9c4d4322b721892ebbe3b","tarball":"https://registry.npmjs.org/@aejkatappaja/phantom-ui/-/phantom-ui-0.2.2.tgz","fileCount":8,"integrity":"sha512-Zu5R8GnDQuHmkVgvZnlbXD1OP3pylpBAabtGD8ZMQggIJHg24SqkzrX/mvmSCb/GM61xyRy0l+begEVyIK/1zQ==","signatures":[{"sig":"MEQCIFem4wWi9peonymFC1Ha3ybwTz9XtFRjqaXCqoMWVjsiAiBJPDwFVGEjKqrUUI1Dmg3/CmZr5B9uIUoU+L2fxCc5Gg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aejkatappaja%2fphantom-ui@0.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":56387},"main":"dist/phantom-ui.js","type":"module","types":"dist/phantom-ui.d.ts","module":"dist/phantom-ui.js","exports":{".":{"types":"./dist/phantom-ui.d.ts","import":"./dist/phantom-ui.js"}},"gitHead":"4b90b999d56e7ed76d5a9d47be87f61e5127ce54","scripts":{"dev":"tsc --watch","lint":"biome check .","build":"npm run build:esm && npm run build:cdn && npm run build:types && cem analyze","format":"biome format --write .","prepare":"husky","lint:fix":"biome check --write .","build:cdn":"esbuild src/phantom-ui.ts --bundle --format=iife --outfile=dist/phantom-ui.cdn.js --minify --target=es2022","build:esm":"esbuild src/phantom-ui.ts --bundle --format=esm --outfile=dist/phantom-ui.js --minify --target=es2022 --packages=external","storybook":"storybook dev -p 6006","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist","build-storybook":"storybook build"},"_npmUser":{"name":"aejkatappaja","email":"joverjlj@gmail.com"},"repository":{"url":"git+https://github.com/Aejkatappaja/phantom-ui.git","type":"git"},"_npmVersion":"10.9.4","description":"Structure-aware shimmer skeleton loader as a universal Web Component built with Lit. Works with React, Vue, Svelte, Angular, Solid, or vanilla JS.","directories":{},"lint-staged":{"*.{ts,mjs}":["biome check --write --no-errors-on-unmatched"]},"postinstall":"node ./src/cli/init.mjs || true","_nodeVersion":"22.22.1","dependencies":{"lit":"^3.2.0"},"_hasShrinkwrap":false,"customElements":"custom-elements.json","devDependencies":{"husky":"^9.1.7","storybook":"^8.4.0","typescript":"^5.7.0","lint-staged":"^16.4.0","@biomejs/biome":"^1.9.0","@storybook/web-components":"^8.4.0","@storybook/addon-essentials":"^8.4.0","@storybook/web-components-vite":"^8.4.0","@custom-elements-manifest/analyzer":"^0.11.0"},"_npmOperationalInternal":{"tmp":"tmp/phantom-ui_0.2.2_1774895081538_0.11847822878522485","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@aejkatappaja/phantom-ui","version":"0.2.3","keywords":["skeleton","shimmer","loading","placeholder","web-component","custom-element","lit","framework-agnostic"],"license":"MIT","_id":"@aejkatappaja/phantom-ui@0.2.3","maintainers":[{"name":"aejkatappaja","email":"joverjlj@gmail.com"}],"homepage":"https://github.com/Aejkatappaja/phantom-ui#readme","bugs":{"url":"https://github.com/Aejkatappaja/phantom-ui/issues"},"bin":{"phantom-ui":"src/cli/init.mjs"},"dist":{"shasum":"7ad7beb03d5b4d98d03e019ae75b763496ca1256","tarball":"https://registry.npmjs.org/@aejkatappaja/phantom-ui/-/phantom-ui-0.2.3.tgz","fileCount":8,"integrity":"sha512-pu1ZVRQcCLBB+s+ntgSJO12JUmBwrLUkQE56toBxPqSBkWp0dtVZ/5xgqAXZFBE3DXMZ0paSbJAX5xvpX/A6sg==","signatures":[{"sig":"MEUCIQCvjmIlOlmBmuX49iTUsCFj33WlC04dWVPw7/AllaemcAIgSGE2JKHzutncT63t8wbS3r7FKi9OzAY1SN/nyhEMLgs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aejkatappaja%2fphantom-ui@0.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":56063},"main":"dist/phantom-ui.js","type":"module","types":"dist/phantom-ui.d.ts","module":"dist/phantom-ui.js","exports":{".":{"types":"./dist/phantom-ui.d.ts","import":"./dist/phantom-ui.js"}},"gitHead":"a8af777267963ec765d36d2473efae4d33207ceb","scripts":{"dev":"tsc --watch","lint":"biome check .","build":"npm run build:esm && npm run build:cdn && npm run build:types && cem analyze","format":"biome format --write .","prepare":"husky","lint:fix":"biome check --write .","build:cdn":"esbuild src/phantom-ui.ts --bundle --format=iife --outfile=dist/phantom-ui.cdn.js --minify --target=es2022","build:esm":"esbuild src/phantom-ui.ts --bundle --format=esm --outfile=dist/phantom-ui.js --minify --target=es2022 --packages=external","storybook":"storybook dev -p 6006","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist","build-storybook":"storybook build"},"_npmUser":{"name":"aejkatappaja","email":"joverjlj@gmail.com"},"repository":{"url":"git+https://github.com/Aejkatappaja/phantom-ui.git","type":"git"},"_npmVersion":"10.9.7","description":"Structure-aware shimmer skeleton loader as a universal Web Component built with Lit. Works with React, Vue, Svelte, Angular, Solid, or vanilla JS.","directories":{},"lint-staged":{"*.{ts,mjs}":["biome check --write --no-errors-on-unmatched"]},"postinstall":"node ./src/cli/init.mjs || true","_nodeVersion":"22.22.2","dependencies":{"lit":"^3.2.0"},"_hasShrinkwrap":false,"customElements":"custom-elements.json","devDependencies":{"husky":"^9.1.7","storybook":"^8.4.0","typescript":"^5.7.0","lint-staged":"^16.4.0","@biomejs/biome":"^1.9.0","@storybook/web-components":"^8.4.0","@storybook/addon-essentials":"^8.4.0","@storybook/web-components-vite":"^8.4.0","@custom-elements-manifest/analyzer":"^0.11.0"},"_npmOperationalInternal":{"tmp":"tmp/phantom-ui_0.2.3_1775514076551_0.8679367866453005","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@aejkatappaja/phantom-ui","version":"0.2.4","keywords":["skeleton","shimmer","loading","placeholder","web-component","custom-element","lit","framework-agnostic"],"license":"MIT","_id":"@aejkatappaja/phantom-ui@0.2.4","maintainers":[{"name":"aejkatappaja","email":"joverjlj@gmail.com"}],"homepage":"https://github.com/Aejkatappaja/phantom-ui#readme","bugs":{"url":"https://github.com/Aejkatappaja/phantom-ui/issues"},"bin":{"phantom-ui":"src/cli/init.mjs"},"dist":{"shasum":"eb2bb773449761bb5a7dcdc30fcdc9a875a32901","tarball":"https://registry.npmjs.org/@aejkatappaja/phantom-ui/-/phantom-ui-0.2.4.tgz","fileCount":8,"integrity":"sha512-aE58MAIsg11hRiCEBxdEuiXQY4h0XskXMca/6Q4Ru1ZIXO9cMnwjA+NqcmjBdN9f/qNm9aYLGIJEhIYq7SuDCg==","signatures":[{"sig":"MEQCIEwxZD8O4jdBpR5TahQ91adL/mwW7WrYJlTPt3JZ+38yAiB02+BcdL6eDfE2gSsJCvhMkzru+w36jXI/fYsP6AYDjA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aejkatappaja%2fphantom-ui@0.2.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":55707},"main":"dist/phantom-ui.js","type":"module","types":"dist/phantom-ui.d.ts","module":"dist/phantom-ui.js","exports":{".":{"types":"./dist/phantom-ui.d.ts","import":"./dist/phantom-ui.js"}},"gitHead":"e96d7917d0d1f809ad348943fb6749f8e18ba5ac","scripts":{"dev":"tsc --watch","lint":"biome check .","build":"npm run build:esm && npm run build:cdn && npm run build:types && cem analyze","format":"biome format --write .","prepare":"husky","lint:fix":"biome check --write .","build:cdn":"esbuild src/phantom-ui.ts --bundle --format=iife --outfile=dist/phantom-ui.cdn.js --minify --target=es2022","build:esm":"esbuild src/phantom-ui.ts --bundle --format=esm --outfile=dist/phantom-ui.js --minify --target=es2022 --packages=external","storybook":"storybook dev -p 6006","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist","build-storybook":"storybook build"},"_npmUser":{"name":"aejkatappaja","email":"joverjlj@gmail.com"},"repository":{"url":"git+https://github.com/Aejkatappaja/phantom-ui.git","type":"git"},"_npmVersion":"10.9.7","description":"Structure-aware shimmer skeleton loader as a universal Web Component built with Lit. Works with React, Vue, Svelte, Angular, Solid, or vanilla JS.","directories":{},"lint-staged":{"*.{ts,mjs}":["biome check --write --no-errors-on-unmatched"]},"postinstall":"node ./src/cli/init.mjs || true","_nodeVersion":"22.22.2","dependencies":{"lit":"^3.2.0"},"_hasShrinkwrap":false,"customElements":"custom-elements.json","devDependencies":{"husky":"^9.1.7","storybook":"^8.4.0","typescript":"^5.7.0","lint-staged":"^16.4.0","@biomejs/biome":"^1.9.0","@storybook/web-components":"^8.4.0","@storybook/addon-essentials":"^8.4.0","@storybook/web-components-vite":"^8.4.0","@custom-elements-manifest/analyzer":"^0.11.0"},"_npmOperationalInternal":{"tmp":"tmp/phantom-ui_0.2.4_1775546858707_0.43250711322735746","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@aejkatappaja/phantom-ui","version":"0.3.0","keywords":["skeleton","shimmer","loading","placeholder","web-component","custom-element","lit","framework-agnostic"],"license":"MIT","_id":"@aejkatappaja/phantom-ui@0.3.0","maintainers":[{"name":"aejkatappaja","email":"joverjlj@gmail.com"}],"homepage":"https://github.com/Aejkatappaja/phantom-ui#readme","bugs":{"url":"https://github.com/Aejkatappaja/phantom-ui/issues"},"bin":{"phantom-ui":"src/cli/init.mjs"},"dist":{"shasum":"4972c70f55ad2a392a873fbfa12d146265e13e47","tarball":"https://registry.npmjs.org/@aejkatappaja/phantom-ui/-/phantom-ui-0.3.0.tgz","fileCount":8,"integrity":"sha512-QTU/D2k/1ycHnq8q3aZ6uThKOoiF3hff9Y0q/z0xDpvlykSA4DHRZZNHSKjccSe5j1lVmdbfWpYuDsRy0YwxNA==","signatures":[{"sig":"MEQCIA0jkq1p4Aaba2xPBOr2T7QVB5b8UgcR/P0Q/1yHVCn3AiAYVrLs5wKViVQUdRM3fB5eN+K3R+auG95Ab82X5MBVAg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aejkatappaja%2fphantom-ui@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":63457},"main":"dist/phantom-ui.js","type":"module","types":"dist/phantom-ui.d.ts","module":"dist/phantom-ui.js","exports":{".":{"types":"./dist/phantom-ui.d.ts","import":"./dist/phantom-ui.js"}},"gitHead":"a617871ef546ff54e28af9aaf1132ab2eedfeee4","scripts":{"dev":"tsc --watch","lint":"biome check .","build":"npm run build:esm && npm run build:cdn && npm run build:types && cem analyze","format":"biome format --write .","prepare":"husky","lint:fix":"biome check --write .","build:cdn":"esbuild src/phantom-ui.ts --bundle --format=iife --outfile=dist/phantom-ui.cdn.js --minify --target=es2022","build:esm":"esbuild src/phantom-ui.ts --bundle --format=esm --outfile=dist/phantom-ui.js --minify --target=es2022 --packages=external","storybook":"storybook dev -p 6006","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist","build-storybook":"storybook build"},"_npmUser":{"name":"aejkatappaja","email":"joverjlj@gmail.com"},"repository":{"url":"git+https://github.com/Aejkatappaja/phantom-ui.git","type":"git"},"_npmVersion":"10.9.7","description":"Structure-aware shimmer skeleton loader as a universal Web Component built with Lit. Works with React, Vue, Svelte, Angular, Solid, or vanilla JS.","directories":{},"lint-staged":{"*.{ts,mjs}":["biome check --write --no-errors-on-unmatched"]},"postinstall":"node ./src/cli/init.mjs || true","_nodeVersion":"22.22.2","dependencies":{"lit":"^3.2.0"},"_hasShrinkwrap":false,"customElements":"custom-elements.json","devDependencies":{"husky":"^9.1.7","storybook":"^8.4.0","typescript":"^5.7.0","lint-staged":"^16.4.0","@biomejs/biome":"^1.9.0","@storybook/web-components":"^8.4.0","@storybook/addon-essentials":"^8.4.0","@storybook/web-components-vite":"^8.4.0","@custom-elements-manifest/analyzer":"^0.11.0"},"_npmOperationalInternal":{"tmp":"tmp/phantom-ui_0.3.0_1775604265625_0.2933397553688104","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@aejkatappaja/phantom-ui","version":"0.4.0","keywords":["skeleton","shimmer","loading","placeholder","web-component","custom-element","lit","framework-agnostic"],"license":"MIT","_id":"@aejkatappaja/phantom-ui@0.4.0","maintainers":[{"name":"aejkatappaja","email":"joverjlj@gmail.com"}],"homepage":"https://github.com/Aejkatappaja/phantom-ui#readme","bugs":{"url":"https://github.com/Aejkatappaja/phantom-ui/issues"},"bin":{"phantom-ui":"src/cli/init.mjs"},"dist":{"shasum":"95a6322fbef4a66983ab8083d5e0c5daeb0e6210","tarball":"https://registry.npmjs.org/@aejkatappaja/phantom-ui/-/phantom-ui-0.4.0.tgz","fileCount":8,"integrity":"sha512-zneAkrEkZ3jyXf7k+pFR96iTq8Z9FoX0biYoOBkhKuvfpAB5H4UujxW8csHof98zgRZisCah6Xs6ER5X2B/Mxw==","signatures":[{"sig":"MEQCIBk3WCbbAbrBrUyeY64WKnm/i7q3cRuS/x7l2DC0t8pWAiAj8AbkOdYt+C92wdsHv+YiMERDn/accl+tlttmJWPT7w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aejkatappaja%2fphantom-ui@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":67738},"main":"dist/phantom-ui.js","type":"module","types":"dist/phantom-ui.d.ts","module":"dist/phantom-ui.js","exports":{".":{"types":"./dist/phantom-ui.d.ts","import":"./dist/phantom-ui.js"}},"gitHead":"9ca4a93470d9c1c754c4314028eb848a262d66cd","scripts":{"dev":"tsc --watch","lint":"biome check .","build":"npm run build:esm && npm run build:cdn && npm run build:types && cem analyze","format":"biome format --write .","prepare":"husky","lint:fix":"biome check --write .","build:cdn":"esbuild src/phantom-ui.ts --bundle --format=iife --outfile=dist/phantom-ui.cdn.js --minify --target=es2022","build:esm":"esbuild src/phantom-ui.ts --bundle --format=esm --outfile=dist/phantom-ui.js --minify --target=es2022 --packages=external","storybook":"storybook dev -p 6006","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist","build-storybook":"storybook build"},"_npmUser":{"name":"aejkatappaja","email":"joverjlj@gmail.com"},"repository":{"url":"git+https://github.com/Aejkatappaja/phantom-ui.git","type":"git"},"_npmVersion":"10.9.7","description":"Structure-aware shimmer skeleton loader as a universal Web Component built with Lit. Works with React, Vue, Svelte, Angular, Solid, or vanilla JS.","directories":{},"lint-staged":{"*.{ts,mjs}":["biome check --write --no-errors-on-unmatched"]},"postinstall":"node ./src/cli/init.mjs || true","_nodeVersion":"22.22.2","dependencies":{"lit":"^3.2.0"},"_hasShrinkwrap":false,"customElements":"custom-elements.json","devDependencies":{"husky":"^9.1.7","storybook":"^8.4.0","typescript":"^5.7.0","lint-staged":"^16.4.0","@biomejs/biome":"^1.9.0","@storybook/web-components":"^8.4.0","@storybook/addon-essentials":"^8.4.0","@storybook/web-components-vite":"^8.4.0","@custom-elements-manifest/analyzer":"^0.11.0"},"_npmOperationalInternal":{"tmp":"tmp/phantom-ui_0.4.0_1775630262706_0.07694703940690828","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@aejkatappaja/phantom-ui","version":"0.5.0","keywords":["skeleton","shimmer","loading","placeholder","web-component","custom-element","lit","framework-agnostic"],"license":"MIT","_id":"@aejkatappaja/phantom-ui@0.5.0","maintainers":[{"name":"aejkatappaja","email":"joverjlj@gmail.com"}],"homepage":"https://github.com/Aejkatappaja/phantom-ui#readme","bugs":{"url":"https://github.com/Aejkatappaja/phantom-ui/issues"},"bin":{"phantom-ui":"src/cli/init.mjs"},"dist":{"shasum":"bd35b99399c929ae9379372b4ba30036f9043968","tarball":"https://registry.npmjs.org/@aejkatappaja/phantom-ui/-/phantom-ui-0.5.0.tgz","fileCount":8,"integrity":"sha512-EGYPBLF3eQikQy43BiHX/QqaUIs6iCTlubdr5U3MxOdZkyN3s1nIdGMwIegTfjHxkAZxHiwrZfxJlsDMsMXJlw==","signatures":[{"sig":"MEUCIQCR4qHhA2YPjq0IIiNGx71BmSBEppfjdoYYkD1J65nH3AIgSmGgR/Nu8LEBmdy1E/YTHxL1fiHxlb+m/6yg6zc8jJ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aejkatappaja%2fphantom-ui@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":69238},"main":"dist/phantom-ui.js","type":"module","types":"dist/phantom-ui.d.ts","module":"dist/phantom-ui.js","exports":{".":{"types":"./dist/phantom-ui.d.ts","import":"./dist/phantom-ui.js"}},"gitHead":"9d55c52046b9b3cac011043842c25eae37ae4a84","scripts":{"dev":"tsc --watch","lint":"biome check .","test":"web-test-runner","build":"npm run build:esm && npm run build:cdn && npm run build:types && cem analyze","format":"biome format --write .","prepare":"husky","lint:fix":"biome check --write .","test:all":"web-test-runner --all-browsers","build:cdn":"esbuild src/phantom-ui.ts --bundle --format=iife --outfile=dist/phantom-ui.cdn.js --minify --target=es2022","build:esm":"esbuild src/phantom-ui.ts --bundle --format=esm --outfile=dist/phantom-ui.js --minify --target=es2022 --packages=external","storybook":"storybook dev -p 6006","playground":"bunx --bun serve -l 4444 --no-clipboard","test:watch":"web-test-runner --watch","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist","build-storybook":"storybook build"},"_npmUser":{"name":"aejkatappaja","email":"joverjlj@gmail.com"},"repository":{"url":"git+https://github.com/Aejkatappaja/phantom-ui.git","type":"git"},"_npmVersion":"10.9.7","description":"Structure-aware shimmer skeleton loader as a universal Web Component built with Lit. Works with React, Vue, Svelte, Angular, Solid, or vanilla JS.","directories":{},"lint-staged":{"*.{ts,mjs}":["biome check --write --no-errors-on-unmatched"]},"postinstall":"node ./src/cli/init.mjs || true","_nodeVersion":"22.22.2","dependencies":{"lit":"^3.2.0"},"_hasShrinkwrap":false,"customElements":"custom-elements.json","devDependencies":{"husky":"^9.1.7","storybook":"^8.4.0","typescript":"^5.7.0","lint-staged":"^16.4.0","@biomejs/biome":"^1.9.0","@open-wc/testing":"^4.0.0","@web/test-runner":"^0.20.2","@web/dev-server-esbuild":"^1.0.5","@storybook/web-components":"^8.4.0","@storybook/addon-essentials":"^8.4.0","@web/test-runner-playwright":"^0.11.1","@storybook/web-components-vite":"^8.4.0","@custom-elements-manifest/analyzer":"^0.11.0"},"_npmOperationalInternal":{"tmp":"tmp/phantom-ui_0.5.0_1775642701378_0.3124010238569048","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@aejkatappaja/phantom-ui","version":"0.5.1","keywords":["skeleton","shimmer","loading","placeholder","web-component","custom-element","lit","framework-agnostic"],"license":"MIT","_id":"@aejkatappaja/phantom-ui@0.5.1","maintainers":[{"name":"aejkatappaja","email":"joverjlj@gmail.com"}],"homepage":"https://github.com/Aejkatappaja/phantom-ui#readme","bugs":{"url":"https://github.com/Aejkatappaja/phantom-ui/issues"},"bin":{"phantom-ui":"src/cli/init.mjs"},"dist":{"shasum":"2a8b491df23afb48e628b2f0fec245e95214dfa8","tarball":"https://registry.npmjs.org/@aejkatappaja/phantom-ui/-/phantom-ui-0.5.1.tgz","fileCount":8,"integrity":"sha512-i/J0UAWiw9yk7xg+KYo74r+j7OdD2/7h7VSSgEfqMKx/31VEM0sCgzlIL/x3A7vB17MAaI/RfWteaJ09QRXMdw==","signatures":[{"sig":"MEUCIQDfq7WrMmSzfSS6uYHrPMqz1dL2aW2omXAwa0wjZCJ2TwIgH4P/y85d3HDJ0wSkzbu9TiCojFAVtySspe9meJlDQRw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aejkatappaja%2fphantom-ui@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":69098},"main":"dist/phantom-ui.js","type":"module","types":"dist/phantom-ui.d.ts","module":"dist/phantom-ui.js","exports":{".":{"types":"./dist/phantom-ui.d.ts","import":"./dist/phantom-ui.js"}},"gitHead":"a2d90f7f4111929069351227347a7c9c9984e800","scripts":{"dev":"tsc --watch","lint":"biome check .","test":"web-test-runner","build":"npm run build:esm && npm run build:cdn && npm run build:types && cem analyze","format":"biome format --write .","prepare":"husky","lint:fix":"biome check --write .","test:all":"web-test-runner --all-browsers","build:cdn":"esbuild src/phantom-ui.ts --bundle --format=iife --outfile=dist/phantom-ui.cdn.js --minify --target=es2022","build:esm":"esbuild src/phantom-ui.ts --bundle --format=esm --outfile=dist/phantom-ui.js --minify --target=es2022 --packages=external","storybook":"storybook dev -p 6006","playground":"bunx --bun serve -l 4444 --no-clipboard","test:watch":"web-test-runner --watch","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist","build-storybook":"storybook build"},"_npmUser":{"name":"aejkatappaja","email":"joverjlj@gmail.com"},"repository":{"url":"git+https://github.com/Aejkatappaja/phantom-ui.git","type":"git"},"_npmVersion":"10.9.7","description":"Structure-aware shimmer skeleton loader as a universal Web Component built with Lit. Works with React, Vue, Svelte, Angular, Solid, or vanilla JS.","directories":{},"lint-staged":{"*.{ts,mjs}":["biome check --write --no-errors-on-unmatched"]},"postinstall":"node ./src/cli/init.mjs || true","_nodeVersion":"22.22.2","dependencies":{"lit":"^3.2.0"},"_hasShrinkwrap":false,"customElements":"custom-elements.json","devDependencies":{"husky":"^9.1.7","storybook":"^8.4.0","typescript":"^5.7.0","lint-staged":"^16.4.0","@biomejs/biome":"^1.9.0","@open-wc/testing":"^4.0.0","@web/test-runner":"^0.20.2","@web/dev-server-esbuild":"^1.0.5","@storybook/web-components":"^8.4.0","@storybook/addon-essentials":"^8.4.0","@web/test-runner-playwright":"^0.11.1","@storybook/web-components-vite":"^8.4.0","@custom-elements-manifest/analyzer":"^0.11.0"},"_npmOperationalInternal":{"tmp":"tmp/phantom-ui_0.5.1_1775666508384_0.6340085072237149","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@aejkatappaja/phantom-ui","version":"0.5.2","keywords":["skeleton","shimmer","loading","placeholder","web-component","custom-element","lit","framework-agnostic"],"license":"MIT","_id":"@aejkatappaja/phantom-ui@0.5.2","maintainers":[{"name":"aejkatappaja","email":"joverjlj@gmail.com"}],"homepage":"https://github.com/Aejkatappaja/phantom-ui#readme","bugs":{"url":"https://github.com/Aejkatappaja/phantom-ui/issues"},"bin":{"phantom-ui":"src/cli/init.mjs"},"dist":{"shasum":"df03c2552176cd8064e469b154b9dd0c07d4175e","tarball":"https://registry.npmjs.org/@aejkatappaja/phantom-ui/-/phantom-ui-0.5.2.tgz","fileCount":8,"integrity":"sha512-9BT9hAAMovKfV8LXkuf+7Ok+mDqM3J2njRLvfo+SoABjF/xwT2L/XdknFeJYyGIm0GkxXyrRatcazH8DOfU+JA==","signatures":[{"sig":"MEYCIQDW5zy8fIcJA6muPDMw9wymW5xQ783BT1HE71rSNkqYyQIhAKW0rXl2nDS6mnuo3CVEjXnk3HSINH6OmrHNcZ9aHPfC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aejkatappaja%2fphantom-ui@0.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":69402},"main":"dist/phantom-ui.js","type":"module","types":"dist/phantom-ui.d.ts","module":"dist/phantom-ui.js","exports":{".":{"types":"./dist/phantom-ui.d.ts","import":"./dist/phantom-ui.js"}},"gitHead":"b51248e247f4a3b1f6e3768ad3331fb5dfce32ca","scripts":{"dev":"tsc --watch","lint":"biome check .","test":"web-test-runner","build":"npm run build:esm && npm run build:cdn && npm run build:types && cem analyze","format":"biome format --write .","prepare":"husky","lint:fix":"biome check --write .","test:all":"web-test-runner --all-browsers","build:cdn":"esbuild src/phantom-ui.ts --bundle --format=iife --outfile=dist/phantom-ui.cdn.js --minify --target=es2022","build:esm":"esbuild src/phantom-ui.ts --bundle --format=esm --outfile=dist/phantom-ui.js --minify --target=es2022 --packages=external","storybook":"storybook dev -p 6006","playground":"bunx --bun serve -l 4444 --no-clipboard","test:watch":"web-test-runner --watch","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist","build-storybook":"storybook build"},"_npmUser":{"name":"aejkatappaja","email":"joverjlj@gmail.com"},"repository":{"url":"git+https://github.com/Aejkatappaja/phantom-ui.git","type":"git"},"_npmVersion":"10.9.7","description":"Structure-aware shimmer skeleton loader as a universal Web Component built with Lit. Works with React, Vue, Svelte, Angular, Solid, or vanilla JS.","directories":{},"lint-staged":{"*.{ts,mjs}":["biome check --write --no-errors-on-unmatched"]},"postinstall":"node ./src/cli/init.mjs || true","_nodeVersion":"22.22.2","dependencies":{"lit":"^3.2.0"},"_hasShrinkwrap":false,"customElements":"custom-elements.json","devDependencies":{"husky":"^9.1.7","storybook":"^8.4.0","typescript":"^5.7.0","lint-staged":"^16.4.0","@biomejs/biome":"^1.9.0","@open-wc/testing":"^4.0.0","@web/test-runner":"^0.20.2","@web/dev-server-esbuild":"^1.0.5","@storybook/web-components":"^8.4.0","@storybook/addon-essentials":"^8.4.0","@web/test-runner-playwright":"^0.11.1","@storybook/web-components-vite":"^8.4.0","@custom-elements-manifest/analyzer":"^0.11.0"},"_npmOperationalInternal":{"tmp":"tmp/phantom-ui_0.5.2_1775690750218_0.8854221862703575","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@aejkatappaja/phantom-ui","version":"0.6.0","keywords":["skeleton","shimmer","loading","placeholder","web-component","custom-element","lit","framework-agnostic"],"license":"MIT","_id":"@aejkatappaja/phantom-ui@0.6.0","maintainers":[{"name":"aejkatappaja","email":"joverjlj@gmail.com"}],"homepage":"https://github.com/Aejkatappaja/phantom-ui#readme","bugs":{"url":"https://github.com/Aejkatappaja/phantom-ui/issues"},"bin":{"phantom-ui":"src/cli/init.mjs"},"dist":{"shasum":"782f0dce290574e57ac907407533c0a969cf1fef","tarball":"https://registry.npmjs.org/@aejkatappaja/phantom-ui/-/phantom-ui-0.6.0.tgz","fileCount":9,"integrity":"sha512-ocf2YTbawXjnz9L9RnPY+I5TyFtYmMNB9L/w2AhQQ+onrbBky7+lJIX+q8OFsBQ0CgxU0Gf4OmHBhVtJhkw6cg==","signatures":[{"sig":"MEQCIDlovYfTcQ9Txi9QWbnQqWLHkEu0cNpnNeQ9OwDmw+StAiAsw2BQbA3HZwBadKZj8uA7TIDbDBtK/UMmaWmlSAdbLA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aejkatappaja%2fphantom-ui@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":75401},"main":"dist/phantom-ui.js","type":"module","types":"dist/phantom-ui.d.ts","module":"dist/phantom-ui.js","exports":{".":{"types":"./dist/phantom-ui.d.ts","import":"./dist/phantom-ui.js"},"./ssr.css":"./dist/ssr.css"},"gitHead":"cd1e1929cc091ef588c453a5125bca7e9ef22f02","scripts":{"dev":"tsc --watch","lint":"biome check .","test":"web-test-runner","build":"npm run build:esm && npm run build:cdn && npm run build:types && npm run build:ssr && cem analyze","format":"biome format --write .","prepare":"husky","lint:fix":"biome check --write .","test:all":"web-test-runner --all-browsers","test:cli":"bun test test/cli/","build:cdn":"esbuild src/phantom-ui.ts --bundle --format=iife --outfile=dist/phantom-ui.cdn.js --minify --target=es2022","build:esm":"esbuild src/phantom-ui.ts --bundle --format=esm --outfile=dist/phantom-ui.js --minify --target=es2022 --packages=external","build:ssr":"cp src/ssr.css dist/ssr.css","storybook":"storybook dev -p 6006","playground":"bunx --bun serve -l 4444 --no-clipboard","test:watch":"web-test-runner --watch","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist","build-storybook":"storybook build"},"_npmUser":{"name":"aejkatappaja","email":"joverjlj@gmail.com"},"repository":{"url":"git+https://github.com/Aejkatappaja/phantom-ui.git","type":"git"},"_npmVersion":"10.9.7","description":"Structure-aware shimmer skeleton loader as a universal Web Component built with Lit. Works with React, Vue, Svelte, Angular, Solid, or vanilla JS.","directories":{},"lint-staged":{"*.{ts,mjs}":["biome check --write --no-errors-on-unmatched"]},"postinstall":"node ./src/cli/init.mjs || true","_nodeVersion":"22.22.2","dependencies":{"lit":"^3.2.0"},"_hasShrinkwrap":false,"customElements":"custom-elements.json","devDependencies":{"husky":"^9.1.7","storybook":"^8.4.0","typescript":"^5.7.0","lint-staged":"^16.4.0","@biomejs/biome":"^1.9.0","@open-wc/testing":"^4.0.0","@web/test-runner":"^0.20.2","@web/dev-server-esbuild":"^1.0.5","@storybook/web-components":"^8.4.0","@storybook/addon-essentials":"^8.4.0","@web/test-runner-playwright":"^0.11.1","@storybook/web-components-vite":"^8.4.0","@custom-elements-manifest/analyzer":"^0.11.0"},"_npmOperationalInternal":{"tmp":"tmp/phantom-ui_0.6.0_1775730320900_0.7913601785375353","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@aejkatappaja/phantom-ui","version":"0.6.1","keywords":["skeleton","shimmer","loading","placeholder","web-component","custom-element","lit","framework-agnostic"],"license":"MIT","_id":"@aejkatappaja/phantom-ui@0.6.1","maintainers":[{"name":"aejkatappaja","email":"joverjlj@gmail.com"}],"homepage":"https://github.com/Aejkatappaja/phantom-ui#readme","bugs":{"url":"https://github.com/Aejkatappaja/phantom-ui/issues"},"bin":{"phantom-ui":"src/cli/init.mjs"},"dist":{"shasum":"ac648fd3f909c0eb30cdb5311db9f0f48910f971","tarball":"https://registry.npmjs.org/@aejkatappaja/phantom-ui/-/phantom-ui-0.6.1.tgz","fileCount":9,"integrity":"sha512-Z0om237vnHWYmzI7z2T4V4kYPFd+H68RgwnDIhFf/mkOkcAyjSXfddWnl0dNrflGpY34l86Y4vWeVrNgwcVElA==","signatures":[{"sig":"MEQCICdxj2ZBulNwpd+iJRfhnqZH9i09m4ucXno3Hj3VZNw3AiBLV+WrgLhiTvWGzuoNNit0qniTuSnNFB46YBl5gSQYDQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aejkatappaja%2fphantom-ui@0.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":79464},"main":"dist/phantom-ui.js","type":"module","types":"dist/phantom-ui.d.ts","module":"dist/phantom-ui.js","exports":{".":{"types":"./dist/phantom-ui.d.ts","import":"./dist/phantom-ui.js"},"./ssr.css":"./dist/ssr.css"},"gitHead":"bb4af7f7e9823e21a097ba6809b481ba8e047816","scripts":{"dev":"tsc --watch","lint":"biome check .","test":"web-test-runner","build":"npm run build:esm && npm run build:cdn && npm run build:types && npm run build:ssr && cem analyze","format":"biome format --write .","prepare":"husky","lint:fix":"biome check --write .","test:all":"web-test-runner --all-browsers","test:cli":"bun test test/cli/","build:cdn":"esbuild src/phantom-ui.ts --bundle --format=iife --outfile=dist/phantom-ui.cdn.js --minify --target=es2022","build:esm":"esbuild src/phantom-ui.ts --bundle --format=esm --outfile=dist/phantom-ui.js --minify --target=es2022 --packages=external","build:ssr":"cp src/ssr.css dist/ssr.css","storybook":"storybook dev -p 6006","playground":"bunx --bun serve -l 4444 --no-clipboard","test:watch":"web-test-runner --watch","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist","build-storybook":"storybook build"},"_npmUser":{"name":"aejkatappaja","email":"joverjlj@gmail.com"},"repository":{"url":"git+https://github.com/Aejkatappaja/phantom-ui.git","type":"git"},"_npmVersion":"10.9.7","description":"Structure-aware shimmer skeleton loader as a universal Web Component built with Lit. Works with React, Vue, Svelte, Angular, Solid, or vanilla JS.","directories":{},"lint-staged":{"*.{ts,mjs}":["biome check --write --no-errors-on-unmatched"]},"postinstall":"node ./src/cli/init.mjs || true","_nodeVersion":"22.22.2","dependencies":{"lit":"^3.2.0"},"_hasShrinkwrap":false,"customElements":"custom-elements.json","devDependencies":{"husky":"^9.1.7","storybook":"^8.4.0","typescript":"^5.7.0","lint-staged":"^16.4.0","@biomejs/biome":"^1.9.0","@open-wc/testing":"^4.0.0","@web/test-runner":"^0.20.2","@web/dev-server-esbuild":"^1.0.5","@storybook/web-components":"^8.4.0","@storybook/addon-essentials":"^8.4.0","@web/test-runner-playwright":"^0.11.1","@storybook/web-components-vite":"^8.4.0","@custom-elements-manifest/analyzer":"^0.11.0"},"_npmOperationalInternal":{"tmp":"tmp/phantom-ui_0.6.1_1775755972982_0.044298617399991524","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@aejkatappaja/phantom-ui","version":"0.7.0","keywords":["skeleton","shimmer","loading","placeholder","web-component","custom-element","lit","framework-agnostic"],"license":"MIT","_id":"@aejkatappaja/phantom-ui@0.7.0","maintainers":[{"name":"aejkatappaja","email":"joverjlj@gmail.com"}],"homepage":"https://github.com/Aejkatappaja/phantom-ui#readme","bugs":{"url":"https://github.com/Aejkatappaja/phantom-ui/issues"},"bin":{"phantom-ui":"src/cli/init.mjs"},"dist":{"shasum":"54de9a5d72e770447a180c3db39497e8880e6046","tarball":"https://registry.npmjs.org/@aejkatappaja/phantom-ui/-/phantom-ui-0.7.0.tgz","fileCount":9,"integrity":"sha512-pvdRdG8xQv/yqu2MITYiVQU50eghqqNMT+RUgA+dlQXG4WJCHmR/zTGdLY7YScKxVqZ5qlU3GYGqgExkv7mu2A==","signatures":[{"sig":"MEUCIE87w+8CsX0m6WgOXeF51q+2ANHfQkrGpdaF0tgd+YcUAiEA2c7yguMJRJKOK4BMmcyDcZL7gxUkAEvxKiBo7yyzUyo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aejkatappaja%2fphantom-ui@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":79538},"main":"dist/phantom-ui.js","type":"module","types":"dist/phantom-ui.d.ts","module":"dist/phantom-ui.js","exports":{".":{"types":"./dist/phantom-ui.d.ts","import":"./dist/phantom-ui.js"},"./ssr.css":"./dist/ssr.css"},"gitHead":"42008acd9462afd039fe6bccec48fe97dc642496","scripts":{"dev":"tsc --watch","lint":"biome check .","test":"web-test-runner","build":"npm run build:esm && npm run build:cdn && npm run build:types && npm run build:ssr && cem analyze","format":"biome format --write .","prepare":"husky","lint:fix":"biome check --write .","test:all":"web-test-runner --all-browsers","test:cli":"bun test test/cli/","build:cdn":"esbuild src/phantom-ui.ts --bundle --format=iife --outfile=dist/phantom-ui.cdn.js --minify --target=es2022","build:esm":"esbuild src/phantom-ui.ts --bundle --format=esm --outfile=dist/phantom-ui.js --minify --target=es2022 --packages=external","build:ssr":"cp src/ssr.css dist/ssr.css","storybook":"storybook dev -p 6006","playground":"bunx --bun serve -l 4444 --no-clipboard","test:watch":"web-test-runner --watch","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist","build-storybook":"storybook build"},"_npmUser":{"name":"aejkatappaja","email":"joverjlj@gmail.com"},"repository":{"url":"git+https://github.com/Aejkatappaja/phantom-ui.git","type":"git"},"_npmVersion":"10.9.7","description":"Structure-aware shimmer skeleton loader as a universal Web Component built with Lit. Works with React, Vue, Svelte, Angular, Solid, or vanilla JS.","directories":{},"lint-staged":{"*.{ts,mjs}":["biome check --write --no-errors-on-unmatched"]},"postinstall":"node ./src/cli/init.mjs || true","_nodeVersion":"22.22.2","dependencies":{"lit":"^3.2.0"},"_hasShrinkwrap":false,"customElements":"custom-elements.json","devDependencies":{"husky":"^9.1.7","storybook":"^8.4.0","typescript":"^5.7.0","lint-staged":"^16.4.0","@biomejs/biome":"^1.9.0","@open-wc/testing":"^4.0.0","@web/test-runner":"^0.20.2","@web/dev-server-esbuild":"^1.0.5","@storybook/web-components":"^8.4.0","@storybook/addon-essentials":"^8.4.0","@web/test-runner-playwright":"^0.11.1","@storybook/web-components-vite":"^8.4.0","@custom-elements-manifest/analyzer":"^0.11.0"},"_npmOperationalInternal":{"tmp":"tmp/phantom-ui_0.7.0_1775773235432_0.9234781863731132","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"@aejkatappaja/phantom-ui","version":"0.7.1","keywords":["skeleton","shimmer","loading","placeholder","web-component","custom-element","lit","framework-agnostic"],"license":"MIT","_id":"@aejkatappaja/phantom-ui@0.7.1","maintainers":[{"name":"aejkatappaja","email":"joverjlj@gmail.com"}],"homepage":"https://github.com/Aejkatappaja/phantom-ui#readme","bugs":{"url":"https://github.com/Aejkatappaja/phantom-ui/issues"},"bin":{"phantom-ui":"src/cli/init.mjs"},"dist":{"shasum":"21b9e5686fa479d7a117b9ec0cad9f3f0c0eaee9","tarball":"https://registry.npmjs.org/@aejkatappaja/phantom-ui/-/phantom-ui-0.7.1.tgz","fileCount":9,"integrity":"sha512-NIw+y4tpJhAgehBAawt8ZYm224aPsYosspVDyJkKhHQuklYCsY6sVQbdZ2NwGntKdoIadoFRjbl4HvVmWuGSLA==","signatures":[{"sig":"MEQCIDM9HWVRJyvNIGN5ddH+hfKFNtbWV14DJnKuZe3krXi1AiA+1ZkSlfJYimXW04CKD0sTEUfZv6Vwr1u+uZC3qWBV4w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aejkatappaja%2fphantom-ui@0.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":83002},"main":"dist/phantom-ui.js","type":"module","types":"dist/phantom-ui.d.ts","module":"dist/phantom-ui.js","exports":{".":{"types":"./dist/phantom-ui.d.ts","import":"./dist/phantom-ui.js"},"./ssr.css":"./dist/ssr.css"},"gitHead":"8dd9f1d93d25229b810165a07077d65b5b265da3","scripts":{"dev":"tsc --watch","lint":"biome check .","test":"web-test-runner","build":"npm run build:esm && npm run build:cdn && npm run build:types && npm run build:ssr && cem analyze","format":"biome format --write .","prepare":"husky","lint:fix":"biome check --write .","test:all":"web-test-runner --all-browsers","test:cli":"bun test test/cli/","build:cdn":"esbuild src/phantom-ui.ts --bundle --format=iife --outfile=dist/phantom-ui.cdn.js --minify --target=es2022","build:esm":"esbuild src/phantom-ui.ts --bundle --format=esm --outfile=dist/phantom-ui.js --minify --target=es2022 --packages=external","build:ssr":"cp src/ssr.css dist/ssr.css","storybook":"storybook dev -p 6006","playground":"bunx --bun serve -l 4444 --no-clipboard","test:watch":"web-test-runner --watch","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist","build-storybook":"storybook build"},"_npmUser":{"name":"aejkatappaja","email":"joverjlj@gmail.com"},"repository":{"url":"git+https://github.com/Aejkatappaja/phantom-ui.git","type":"git"},"_npmVersion":"10.9.7","description":"Structure-aware shimmer skeleton loader as a universal Web Component built with Lit. Works with React, Vue, Svelte, Angular, Solid, or vanilla JS.","directories":{},"lint-staged":{"*.{ts,mjs}":["biome check --write --no-errors-on-unmatched"]},"postinstall":"node ./src/cli/init.mjs || true","_nodeVersion":"22.22.2","dependencies":{"lit":"^3.2.0"},"_hasShrinkwrap":false,"customElements":"custom-elements.json","devDependencies":{"husky":"^9.1.7","storybook":"^8.4.0","typescript":"^5.7.0","lint-staged":"^16.4.0","@biomejs/biome":"^1.9.0","@open-wc/testing":"^4.0.0","@web/test-runner":"^0.20.2","@web/dev-server-esbuild":"^1.0.5","@storybook/web-components":"^8.4.0","@storybook/addon-essentials":"^8.4.0","@web/test-runner-playwright":"^0.11.1","@storybook/web-components-vite":"^8.4.0","@custom-elements-manifest/analyzer":"^0.11.0"},"_npmOperationalInternal":{"tmp":"tmp/phantom-ui_0.7.1_1775782089396_0.5853002613603357","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@aejkatappaja/phantom-ui","version":"0.8.0","keywords":["skeleton","shimmer","loading","placeholder","web-component","custom-element","lit","framework-agnostic"],"license":"MIT","_id":"@aejkatappaja/phantom-ui@0.8.0","maintainers":[{"name":"aejkatappaja","email":"joverjlj@gmail.com"}],"homepage":"https://github.com/Aejkatappaja/phantom-ui#readme","bugs":{"url":"https://github.com/Aejkatappaja/phantom-ui/issues"},"bin":{"phantom-ui":"src/cli/init.mjs"},"dist":{"shasum":"ce3444e8cc82cdddc5cc1910116f30c6a20fd36a","tarball":"https://registry.npmjs.org/@aejkatappaja/phantom-ui/-/phantom-ui-0.8.0.tgz","fileCount":9,"integrity":"sha512-9ccNyZ5wWnTnHuP7jGDKXGfhnuk9zeExHxFJvbFauT1x0dkySTF0uPzJMOi2jlFzekpNLyKUlfUMpsKLk86ZWw==","signatures":[{"sig":"MEUCIQCtapvZwOaAP7vdJ3raEnSWehQJgPJsPHnktaikkkjjdgIge1lUcAJ6c8VcNaRisPsyKReSkJ6d1zPCKxOddHMuY0U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aejkatappaja%2fphantom-ui@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":85946},"main":"dist/phantom-ui.js","type":"module","types":"dist/phantom-ui.d.ts","module":"dist/phantom-ui.js","exports":{".":{"types":"./dist/phantom-ui.d.ts","import":"./dist/phantom-ui.js"},"./ssr.css":"./dist/ssr.css"},"gitHead":"ab1ba970722c7c0c61f87b6e8106e4a913920fe4","scripts":{"dev":"tsc --watch","lint":"biome check .","test":"web-test-runner","build":"npm run build:esm && npm run build:cdn && npm run build:types && npm run build:ssr && cem analyze","format":"biome format --write .","prepare":"husky","lint:fix":"biome check --write .","test:all":"web-test-runner --all-browsers","test:cli":"bun test test/cli/","build:cdn":"esbuild src/phantom-ui.ts --bundle --format=iife --outfile=dist/phantom-ui.cdn.js --minify --target=es2022","build:esm":"esbuild src/phantom-ui.ts --bundle --format=esm --outfile=dist/phantom-ui.js --minify --target=es2022 --packages=external","build:ssr":"cp src/ssr.css dist/ssr.css","storybook":"storybook dev -p 6006","playground":"bunx --bun serve -l 4444 --no-clipboard","test:watch":"web-test-runner --watch","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist","build-storybook":"storybook build"},"_npmUser":{"name":"aejkatappaja","email":"joverjlj@gmail.com"},"repository":{"url":"git+https://github.com/Aejkatappaja/phantom-ui.git","type":"git"},"_npmVersion":"10.9.7","description":"Structure-aware shimmer skeleton loader as a universal Web Component built with Lit. Works with React, Vue, Svelte, Angular, Solid, or vanilla JS.","directories":{},"lint-staged":{"*.{ts,mjs}":["biome check --write --no-errors-on-unmatched"]},"postinstall":"node ./src/cli/init.mjs || true","_nodeVersion":"22.22.2","dependencies":{"lit":"^3.2.0"},"_hasShrinkwrap":false,"customElements":"custom-elements.json","devDependencies":{"husky":"^9.1.7","storybook":"^8.4.0","typescript":"^5.7.0","lint-staged":"^16.4.0","@biomejs/biome":"^1.9.0","@open-wc/testing":"^4.0.0","@web/test-runner":"^0.20.2","@web/dev-server-esbuild":"^1.0.5","@storybook/web-components":"^8.4.0","@storybook/addon-essentials":"^8.4.0","@web/test-runner-playwright":"^0.11.1","@storybook/web-components-vite":"^8.4.0","@custom-elements-manifest/analyzer":"^0.11.0"},"_npmOperationalInternal":{"tmp":"tmp/phantom-ui_0.8.0_1775786837678_0.9406123355038878","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@aejkatappaja/phantom-ui","version":"0.8.1","keywords":["skeleton","shimmer","loading","placeholder","web-component","custom-element","lit","framework-agnostic"],"license":"MIT","_id":"@aejkatappaja/phantom-ui@0.8.1","maintainers":[{"name":"aejkatappaja","email":"joverjlj@gmail.com"}],"homepage":"https://github.com/Aejkatappaja/phantom-ui#readme","bugs":{"url":"https://github.com/Aejkatappaja/phantom-ui/issues"},"bin":{"phantom-ui":"src/cli/init.mjs"},"dist":{"shasum":"b87462198cfa14c0adaf30f3968102a85911b0ea","tarball":"https://registry.npmjs.org/@aejkatappaja/phantom-ui/-/phantom-ui-0.8.1.tgz","fileCount":12,"integrity":"sha512-iNWJTMHXKTXdrdYNoANjp+n6fPgkFVMj83ng+AKy3QtPtH1jqEZ/53SR6+J2UscoycWkAK1Gpi1kqaS2XK4M+w==","signatures":[{"sig":"MEUCICWAqWugCeO07T2avQ11+GmX78NXuHF0NkWgyKVRCMgzAiEAxzz4ZWFVz8Z8gJ451XY8EDnKXGRRx4fwCzQwy+S/hPs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aejkatappaja%2fphantom-ui@0.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":87452},"main":"dist/phantom-ui.js","type":"module","types":"dist/phantom-ui.d.ts","module":"dist/phantom-ui.js","exports":{".":{"types":"./dist/phantom-ui.d.ts","import":"./dist/phantom-ui.js"},"./ssr.css":"./dist/ssr.css"},"gitHead":"0fcfa476f2a652f16238fc40be78264e4453e558","scripts":{"dev":"tsc --watch","lint":"biome check .","test":"web-test-runner","build":"npm run build:esm && npm run build:cdn && npm run build:types && npm run build:ssr && cem analyze","format":"biome format --write .","prepare":"husky","lint:fix":"biome check --write .","test:all":"web-test-runner --all-browsers","test:cli":"bun test test/cli/","build:cdn":"esbuild src/phantom-ui.ts --bundle --format=iife --outfile=dist/phantom-ui.cdn.js --minify --target=es2022","build:esm":"esbuild src/phantom-ui.ts --bundle --format=esm --outfile=dist/phantom-ui.js --minify --target=es2022 --packages=external","build:ssr":"cp src/ssr.css dist/ssr.css","storybook":"storybook dev -p 6006","playground":"bunx --bun serve -l 4444 --no-clipboard","test:watch":"web-test-runner --watch","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist","build-storybook":"storybook build"},"_npmUser":{"name":"aejkatappaja","email":"joverjlj@gmail.com"},"repository":{"url":"git+https://github.com/Aejkatappaja/phantom-ui.git","type":"git"},"_npmVersion":"10.9.7","description":"Structure-aware shimmer skeleton loader as a universal Web Component built with Lit. Works with React, Vue, Svelte, Angular, Solid, or vanilla JS.","directories":{},"lint-staged":{"*.{ts,mjs}":["biome check --write --no-errors-on-unmatched"]},"postinstall":"node ./src/cli/init.mjs || true","_nodeVersion":"22.22.2","dependencies":{"lit":"^3.2.0"},"_hasShrinkwrap":false,"customElements":"custom-elements.json","devDependencies":{"husky":"^9.1.7","storybook":"^8.4.0","typescript":"^5.7.0","lint-staged":"^16.4.0","@biomejs/biome":"^1.9.0","@open-wc/testing":"^4.0.0","@web/test-runner":"^0.20.2","@web/dev-server-esbuild":"^1.0.5","@storybook/web-components":"^8.4.0","@storybook/addon-essentials":"^8.4.0","@web/test-runner-playwright":"^0.11.1","@storybook/web-components-vite":"^8.4.0","@custom-elements-manifest/analyzer":"^0.11.0"},"_npmOperationalInternal":{"tmp":"tmp/phantom-ui_0.8.1_1775790771941_0.5674323953898914","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@aejkatappaja/phantom-ui","version":"0.9.0","keywords":["skeleton","shimmer","loading","placeholder","web-component","custom-element","lit","framework-agnostic"],"license":"MIT","_id":"@aejkatappaja/phantom-ui@0.9.0","maintainers":[{"name":"aejkatappaja","email":"joverjlj@gmail.com"}],"homepage":"https://github.com/Aejkatappaja/phantom-ui#readme","bugs":{"url":"https://github.com/Aejkatappaja/phantom-ui/issues"},"bin":{"phantom-ui":"src/cli/init.mjs"},"dist":{"shasum":"82463819f635b9399bfe7e32c1cebe123f0b9cd2","tarball":"https://registry.npmjs.org/@aejkatappaja/phantom-ui/-/phantom-ui-0.9.0.tgz","fileCount":12,"integrity":"sha512-Pn0jVIruKjrLASjUS/o+mffCXSchzWgzTR+NRuRkGy0T3uSLUCXHVGKD/zEQQbRcoLh7A5VUXaQsptE0Bv20lw==","signatures":[{"sig":"MEYCIQDZAQltpcDOEo//pXBQ63nbZ8PLgRZTSWU8toLxEO5xlwIhAIcFZOFlmwY5LAN9tMBZMsmuCjRHuAa5LoaCBRXoSEAq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aejkatappaja%2fphantom-ui@0.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91137},"main":"dist/phantom-ui.js","type":"module","types":"dist/phantom-ui.d.ts","module":"dist/phantom-ui.js","exports":{".":{"types":"./dist/phantom-ui.d.ts","import":"./dist/phantom-ui.js"},"./ssr.css":"./dist/ssr.css"},"gitHead":"ca07e4e4a2bc30a69db42f1b1e2b6afeefd4696e","scripts":{"dev":"tsc --watch","lint":"biome check .","test":"web-test-runner","build":"npm run build:esm && npm run build:cdn && npm run build:types && npm run build:ssr && cem analyze","format":"biome format --write .","prepare":"husky","lint:fix":"biome check --write .","test:all":"web-test-runner --all-browsers","test:cli":"bun test test/cli/","build:cdn":"esbuild src/phantom-ui.ts --bundle --format=iife --outfile=dist/phantom-ui.cdn.js --minify --target=es2022","build:esm":"esbuild src/phantom-ui.ts --bundle --format=esm --outfile=dist/phantom-ui.js --minify --target=es2022 --packages=external","build:ssr":"cp src/ssr.css dist/ssr.css","storybook":"storybook dev -p 6006","playground":"bunx --bun serve -l 4444 --no-clipboard","test:watch":"web-test-runner --watch","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist","build-storybook":"storybook build"},"_npmUser":{"name":"aejkatappaja","email":"joverjlj@gmail.com"},"repository":{"url":"git+https://github.com/Aejkatappaja/phantom-ui.git","type":"git"},"_npmVersion":"10.9.7","description":"Structure-aware shimmer skeleton loader as a universal Web Component built with Lit. Works with React, Vue, Svelte, Angular, Solid, or vanilla JS.","directories":{},"lint-staged":{"*.{ts,mjs}":["biome check --write --no-errors-on-unmatched"]},"postinstall":"node ./src/cli/init.mjs || true","_nodeVersion":"22.22.2","dependencies":{"lit":"^3.2.0"},"_hasShrinkwrap":false,"customElements":"custom-elements.json","devDependencies":{"husky":"^9.1.7","storybook":"8.6.18","typescript":"^6.0.2","lint-staged":"^16.4.0","@biomejs/biome":"^2.4.11","@open-wc/testing":"^4.0.0","@web/test-runner":"^0.20.2","@web/dev-server-esbuild":"^1.0.5","@storybook/web-components":"8.6.18","@storybook/addon-essentials":"8.6.18","@web/test-runner-playwright":"^0.11.1","@storybook/web-components-vite":"8.6.18","@custom-elements-manifest/analyzer":"^0.11.0"},"_npmOperationalInternal":{"tmp":"tmp/phantom-ui_0.9.0_1776101905777_0.14301345264273246","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@aejkatappaja/phantom-ui","version":"0.10.0","keywords":["skeleton","shimmer","loading","placeholder","web-component","custom-element","lit","framework-agnostic"],"license":"MIT","_id":"@aejkatappaja/phantom-ui@0.10.0","maintainers":[{"name":"aejkatappaja","email":"joverjlj@gmail.com"}],"homepage":"https://github.com/Aejkatappaja/phantom-ui#readme","bugs":{"url":"https://github.com/Aejkatappaja/phantom-ui/issues"},"bin":{"phantom-ui":"src/cli/init.mjs"},"dist":{"shasum":"3acedf8a7a934215542ac178efbb1706b09f5da9","tarball":"https://registry.npmjs.org/@aejkatappaja/phantom-ui/-/phantom-ui-0.10.0.tgz","fileCount":12,"integrity":"sha512-c1azkaI3iIkBUT3AXNYbDd/RHWSz5uDXu6gkK+vbmUQ1MGhulnDsChQ1cWCi5t9ydKTr0cqYlvh1jx5bFgrYew==","signatures":[{"sig":"MEYCIQCwJ9gsNfrsXf8w2k7tO85h3rXdj7U7tp4f8hV4eppAZAIhAI1I50yrax27MvGW793EaUG8gFsv0bQSaiQPESXXn85r","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aejkatappaja%2fphantom-ui@0.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":94368},"main":"dist/phantom-ui.js","type":"module","types":"dist/phantom-ui.d.ts","module":"dist/phantom-ui.js","exports":{".":{"types":"./dist/phantom-ui.d.ts","import":"./dist/phantom-ui.js"},"./ssr.css":"./dist/ssr.css"},"gitHead":"cafe030682dd07b56cfe614a7e16003f76856fca","scripts":{"dev":"tsc --watch","lint":"biome check .","test":"web-test-runner","build":"npm run build:esm && npm run build:cdn && npm run build:types && npm run build:ssr && cem analyze","format":"biome format --write .","prepare":"husky","lint:fix":"biome check --write .","test:all":"web-test-runner --all-browsers","test:cli":"bun test test/cli/","build:cdn":"esbuild src/phantom-ui.ts --bundle --format=iife --outfile=dist/phantom-ui.cdn.js --minify --target=es2022","build:esm":"esbuild src/phantom-ui.ts --bundle --format=esm --outfile=dist/phantom-ui.js --minify --target=es2022 --packages=external","build:ssr":"cp src/ssr.css dist/ssr.css","storybook":"storybook dev -p 6006","playground":"bunx --bun serve -l 4444 --no-clipboard","test:watch":"web-test-runner --watch","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist","build-storybook":"storybook build"},"_npmUser":{"name":"aejkatappaja","email":"joverjlj@gmail.com"},"repository":{"url":"git+https://github.com/Aejkatappaja/phantom-ui.git","type":"git"},"_npmVersion":"10.9.7","description":"Structure-aware shimmer skeleton loader as a universal Web Component built with Lit. Works with React, Vue, Svelte, Angular, Solid, or vanilla JS.","directories":{},"lint-staged":{"*.{ts,mjs}":["biome check --write --no-errors-on-unmatched"]},"postinstall":"node ./src/cli/init.mjs || true","_nodeVersion":"22.22.2","dependencies":{"lit":"^3.2.0"},"_hasShrinkwrap":false,"customElements":"custom-elements.json","devDependencies":{"husky":"^9.1.7","storybook":"8.6.18","typescript":"^6.0.2","lint-staged":"^16.4.0","@biomejs/biome":"^2.4.11","@open-wc/testing":"^4.0.0","@web/test-runner":"^0.20.2","@web/dev-server-esbuild":"^1.0.5","@storybook/web-components":"8.6.18","@storybook/addon-essentials":"8.6.18","@web/test-runner-playwright":"^0.11.1","@storybook/web-components-vite":"8.6.18","@custom-elements-manifest/analyzer":"^0.11.0"},"_npmOperationalInternal":{"tmp":"tmp/phantom-ui_0.10.0_1777763745046_0.01961440314485352","host":"s3://npm-registry-packages-npm-production"}},"0.10.1":{"name":"@aejkatappaja/phantom-ui","version":"0.10.1","keywords":["skeleton","shimmer","loading","placeholder","web-component","custom-element","lit","framework-agnostic"],"license":"MIT","_id":"@aejkatappaja/phantom-ui@0.10.1","maintainers":[{"name":"aejkatappaja","email":"joverjlj@gmail.com"}],"homepage":"https://github.com/Aejkatappaja/phantom-ui#readme","bugs":{"url":"https://github.com/Aejkatappaja/phantom-ui/issues"},"bin":{"phantom-ui":"src/cli/init.mjs"},"dist":{"shasum":"5af4bac035e0934d1e3ef827ba67e0e85047d432","tarball":"https://registry.npmjs.org/@aejkatappaja/phantom-ui/-/phantom-ui-0.10.1.tgz","fileCount":12,"integrity":"sha512-g6HIw9OjnFR15D+pfP0CxD/UVOH70fj860tXCL+RwQB0H6WqCKTSY/wpq+abd50w1GQH0QAGZ0PFuxkE+nWQwA==","signatures":[{"sig":"MEYCIQC+v6jV9rJKKeP5LaVLFkSSsr+4h8+Nhldv+xCXPOoV+QIhAM1EHP6lUHfYKkjQ3BckGcRPMhpMAd5rSFgItDgi0MSz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aejkatappaja%2fphantom-ui@0.10.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":94921},"main":"dist/phantom-ui.js","type":"module","types":"dist/phantom-ui.d.ts","module":"dist/phantom-ui.js","exports":{".":{"types":"./dist/phantom-ui.d.ts","import":"./dist/phantom-ui.js"},"./ssr.css":"./dist/ssr.css"},"gitHead":"20d76519dc249a4f3f843aa1ed687eb91ff416c8","scripts":{"dev":"tsc --watch","lint":"biome check .","test":"web-test-runner","build":"npm run build:esm && npm run build:cdn && npm run build:types && npm run build:ssr && cem analyze","format":"biome format --write .","prepare":"husky","lint:fix":"biome check --write .","test:all":"web-test-runner --all-browsers","test:cli":"bun test test/cli/","build:cdn":"esbuild src/phantom-ui.ts --bundle --format=iife --outfile=dist/phantom-ui.cdn.js --minify --target=es2022","build:esm":"esbuild src/phantom-ui.ts --bundle --format=esm --outfile=dist/phantom-ui.js --minify --target=es2022 --packages=external","build:ssr":"cp src/ssr.css dist/ssr.css","storybook":"storybook dev -p 6006","playground":"bunx --bun serve -l 4444 --no-clipboard","test:watch":"web-test-runner --watch","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist","build-storybook":"storybook build"},"_npmUser":{"name":"aejkatappaja","email":"joverjlj@gmail.com"},"repository":{"url":"git+https://github.com/Aejkatappaja/phantom-ui.git","type":"git"},"_npmVersion":"10.9.7","description":"Structure-aware shimmer skeleton loader as a universal Web Component built with Lit. Works with React, Vue, Svelte, Angular, Solid, or vanilla JS.","directories":{},"lint-staged":{"*.{ts,mjs}":["biome check --write --no-errors-on-unmatched"]},"postinstall":"node ./src/cli/init.mjs || true","_nodeVersion":"22.22.2","dependencies":{"lit":"^3.2.0"},"_hasShrinkwrap":false,"customElements":"custom-elements.json","devDependencies":{"husky":"^9.1.7","storybook":"8.6.18","typescript":"^6.0.2","lint-staged":"^16.4.0","@biomejs/biome":"^2.4.11","@open-wc/testing":"^4.0.0","@web/test-runner":"^0.20.2","@web/dev-server-esbuild":"^1.0.5","@storybook/web-components":"8.6.18","@storybook/addon-essentials":"8.6.18","@web/test-runner-playwright":"^0.11.1","@storybook/web-components-vite":"8.6.18","@custom-elements-manifest/analyzer":"^0.11.0"},"_npmOperationalInternal":{"tmp":"tmp/phantom-ui_0.10.1_1778103642615_0.406707572689168","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@aejkatappaja/phantom-ui","version":"1.0.0","keywords":["skeleton","shimmer","loading","placeholder","web-component","custom-element","lit","framework-agnostic"],"license":"MIT","_id":"@aejkatappaja/phantom-ui@1.0.0","maintainers":[{"name":"aejkatappaja","email":"joverjlj@gmail.com"}],"homepage":"https://github.com/Aejkatappaja/phantom-ui#readme","bugs":{"url":"https://github.com/Aejkatappaja/phantom-ui/issues"},"bin":{"phantom-ui":"src/cli/init.mjs"},"dist":{"shasum":"de76463c1e814279b8b6c155a885de4e0379369f","tarball":"https://registry.npmjs.org/@aejkatappaja/phantom-ui/-/phantom-ui-1.0.0.tgz","fileCount":12,"integrity":"sha512-4dfO6YXITUIMEeNtvjfKVbPzKpXbrd6n36ewYD6aTwEIuNamSWIW/EMggsBPg8nTrO860288udd5TMhbf0tcpw==","signatures":[{"sig":"MEUCIQDXVI+THfUPPNrTffty+ICXqUWDPcfDc1Paou0lJ/6S5AIgWlWTcKrHltmW7Z0Yc8Hjxv7bLn29ZygUnrkpHZhlalw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":96681},"main":"dist/phantom-ui.js","type":"module","types":"dist/phantom-ui.d.ts","module":"dist/phantom-ui.js","exports":{".":{"types":"./dist/phantom-ui.d.ts","import":"./dist/phantom-ui.js"},"./ssr.css":"./dist/ssr.css"},"gitHead":"0ba76fac3f306849a9cd64b6492226d6c2c5de6f","scripts":{"dev":"tsc --watch","lint":"biome check .","test":"web-test-runner","build":"npm run build:esm && npm run build:cdn && npm run build:types && npm run build:ssr && cem analyze","format":"biome format --write .","prepare":"husky","lint:fix":"biome check --write .","test:all":"web-test-runner --all-browsers","test:cli":"bun test test/cli/","build:cdn":"esbuild src/phantom-ui.ts --bundle --format=iife --outfile=dist/phantom-ui.cdn.js --minify --target=es2022","build:esm":"esbuild src/phantom-ui.ts --bundle --format=esm --outfile=dist/phantom-ui.js --minify --target=es2022 --packages=external","build:ssr":"cp src/ssr.css dist/ssr.css","storybook":"storybook dev -p 6006","playground":"bunx --bun serve -l 4444 --no-clipboard","test:watch":"web-test-runner --watch","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist","build-storybook":"storybook build"},"_npmUser":{"name":"aejkatappaja","email":"joverjlj@gmail.com"},"repository":{"url":"git+https://github.com/Aejkatappaja/phantom-ui.git","type":"git"},"_npmVersion":"11.5.1","description":"Structure-aware shimmer skeleton loader as a universal Web Component built with Lit. Works with React, Vue, Svelte, Angular, Solid, or vanilla JS.","directories":{},"lint-staged":{"*.{ts,mjs}":["biome check --write --no-errors-on-unmatched"]},"postinstall":"node ./src/cli/init.mjs || true","_nodeVersion":"24.5.0","dependencies":{"lit":"^3.2.0"},"_hasShrinkwrap":false,"customElements":"custom-elements.json","devDependencies":{"husky":"^9.1.7","storybook":"8.6.18","typescript":"^6.0.2","lint-staged":"^16.4.0","@biomejs/biome":"^2.4.11","@open-wc/testing":"^4.0.0","@web/test-runner":"^0.20.2","@web/dev-server-esbuild":"^1.0.5","@storybook/web-components":"8.6.18","@storybook/addon-essentials":"8.6.18","@web/test-runner-playwright":"^0.11.1","@storybook/web-components-vite":"8.6.18","@custom-elements-manifest/analyzer":"^0.11.0"},"_npmOperationalInternal":{"tmp":"tmp/phantom-ui_1.0.0_1780309586250_0.790630522014681","host":"s3://npm-registry-packages-npm-production"}},"1.1.0-beta.0":{"name":"@aejkatappaja/phantom-ui","version":"1.1.0-beta.0","keywords":["skeleton","shimmer","loading","placeholder","web-component","custom-element","lit","framework-agnostic"],"license":"MIT","_id":"@aejkatappaja/phantom-ui@1.1.0-beta.0","maintainers":[{"name":"aejkatappaja","email":"joverjlj@gmail.com"}],"homepage":"https://github.com/Aejkatappaja/phantom-ui#readme","bugs":{"url":"https://github.com/Aejkatappaja/phantom-ui/issues"},"bin":{"phantom-ui":"src/cli/init.mjs"},"dist":{"shasum":"44feb37d39c115a29ac8f1e2759c1f60d91840b2","tarball":"https://registry.npmjs.org/@aejkatappaja/phantom-ui/-/phantom-ui-1.1.0-beta.0.tgz","fileCount":12,"integrity":"sha512-8OOTxzC3B7CvuCVGsU486VwgBPHLsn20KbWAsOUlkv1K0xUmFCWzPyzFLlFzmuhjXhGPYxecDkTdCgIMCcblRw==","signatures":[{"sig":"MEQCIATMxZ2atxT3qXSuYww93/ZZW9ifeViWnrj19duYgm9OAiAf5wsfYdS8qKsMaTv4bFLZuGqm6COfhBEbIz7/GT6jdA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":101410},"main":"dist/phantom-ui.js","type":"module","types":"dist/phantom-ui.d.ts","module":"dist/phantom-ui.js","exports":{".":{"types":"./dist/phantom-ui.d.ts","import":"./dist/phantom-ui.js"},"./ssr.css":"./dist/ssr.css"},"gitHead":"d2d46b9cd8b2434a19659c87132c9d7326fc7f2b","scripts":{"dev":"tsc --watch","lint":"biome check .","test":"web-test-runner","build":"npm run build:esm && npm run build:cdn && npm run build:types && npm run build:ssr && cem analyze","format":"biome format --write .","prepare":"husky","lint:fix":"biome check --write .","test:all":"web-test-runner --all-browsers","test:cli":"bun test test/cli/","build:cdn":"esbuild src/phantom-ui.ts --bundle --format=iife --outfile=dist/phantom-ui.cdn.js --minify --target=es2022","build:esm":"esbuild src/phantom-ui.ts --bundle --format=esm --outfile=dist/phantom-ui.js --minify --target=es2022 --packages=external","build:ssr":"cp src/ssr.css dist/ssr.css","storybook":"storybook dev -p 6006","playground":"bunx --bun serve -l 4444 --no-clipboard","test:watch":"web-test-runner --watch","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist","build-storybook":"storybook build"},"_npmUser":{"name":"aejkatappaja","email":"joverjlj@gmail.com"},"repository":{"url":"git+https://github.com/Aejkatappaja/phantom-ui.git","type":"git"},"_npmVersion":"11.5.1","description":"Structure-aware shimmer skeleton loader as a universal Web Component built with Lit. Works with React, Vue, Svelte, Angular, Solid, or vanilla JS.","directories":{},"lint-staged":{"*.{ts,mjs}":["biome check --write --no-errors-on-unmatched"]},"postinstall":"node ./src/cli/init.mjs || true","_nodeVersion":"24.5.0","dependencies":{"lit":"^3.2.0"},"_hasShrinkwrap":false,"customElements":"custom-elements.json","readmeFilename":"README.md","devDependencies":{"husky":"^9.1.7","storybook":"8.6.18","typescript":"^6.0.2","lint-staged":"^16.4.0","@biomejs/biome":"^2.4.11","@open-wc/testing":"^4.0.0","@web/test-runner":"^0.20.2","@web/dev-server-esbuild":"^1.0.5","@storybook/web-components":"8.6.18","@storybook/addon-essentials":"8.6.18","@web/test-runner-playwright":"^0.11.1","@storybook/web-components-vite":"8.6.18","@custom-elements-manifest/analyzer":"^0.11.0"},"_npmOperationalInternal":{"tmp":"tmp/phantom-ui_1.1.0-beta.0_1780321085801_0.30398124078414956","host":"s3://npm-registry-packages-npm-production"}},"1.1.0-beta.1":{"name":"@aejkatappaja/phantom-ui","version":"1.1.0-beta.1","keywords":["skeleton","shimmer","loading","placeholder","web-component","custom-element","lit","framework-agnostic"],"license":"MIT","_id":"@aejkatappaja/phantom-ui@1.1.0-beta.1","maintainers":[{"name":"aejkatappaja","email":"joverjlj@gmail.com"}],"homepage":"https://github.com/Aejkatappaja/phantom-ui#readme","bugs":{"url":"https://github.com/Aejkatappaja/phantom-ui/issues"},"bin":{"phantom-ui":"src/cli/init.mjs"},"dist":{"shasum":"1df7418ce68ccf7964b15510600017261f35620f","tarball":"https://registry.npmjs.org/@aejkatappaja/phantom-ui/-/phantom-ui-1.1.0-beta.1.tgz","fileCount":12,"integrity":"sha512-mwpEGUKW2bJ0vBLrt/jlP5ztThMceHa0eLw/NyHtVfAPTuosm9ktuVzM4cQUMRJLH0KFzBZ/QvHMGcPuJEtIyQ==","signatures":[{"sig":"MEYCIQCTXFuIirpmLhBle2yYCyvXtt4lnX2gUQCxl997xiu3XgIhAN6tmW0CAc8wywN4xBCadE3SllOvI2wcRW85C/LRVPeU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":105488},"main":"dist/phantom-ui.js","type":"module","types":"dist/phantom-ui.d.ts","module":"dist/phantom-ui.js","exports":{".":{"types":"./dist/phantom-ui.d.ts","import":"./dist/phantom-ui.js"},"./ssr.css":"./dist/ssr.css"},"gitHead":"afd6c411c63a034c4d0ed52ebf4a58205204454a","scripts":{"dev":"tsc --watch","lint":"biome check .","test":"web-test-runner","build":"npm run build:esm && npm run build:cdn && npm run build:types && npm run build:ssr && cem analyze","format":"biome format --write .","prepare":"husky","lint:fix":"biome check --write .","test:all":"web-test-runner --all-browsers","test:cli":"bun test test/cli/","build:cdn":"esbuild src/phantom-ui.ts --bundle --format=iife --outfile=dist/phantom-ui.cdn.js --minify --target=es2022","build:esm":"esbuild src/phantom-ui.ts --bundle --format=esm --outfile=dist/phantom-ui.js --minify --target=es2022 --packages=external","build:ssr":"cp src/ssr.css dist/ssr.css","storybook":"storybook dev -p 6006","playground":"bunx --bun serve -l 4444 --no-clipboard","test:watch":"web-test-runner --watch","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist","build-storybook":"storybook build"},"_npmUser":{"name":"aejkatappaja","email":"joverjlj@gmail.com"},"repository":{"url":"git+https://github.com/Aejkatappaja/phantom-ui.git","type":"git"},"_npmVersion":"11.5.1","description":"Structure-aware shimmer skeleton loader as a universal Web Component built with Lit. Works with React, Vue, Svelte, Angular, Solid, or vanilla JS.","directories":{},"lint-staged":{"*.{ts,mjs}":["biome check --write --no-errors-on-unmatched"]},"postinstall":"node ./src/cli/init.mjs || true","_nodeVersion":"24.5.0","dependencies":{"lit":"^3.2.0"},"_hasShrinkwrap":false,"customElements":"custom-elements.json","readmeFilename":"README.md","devDependencies":{"husky":"^9.1.7","storybook":"8.6.18","typescript":"^6.0.2","lint-staged":"^16.4.0","@biomejs/biome":"^2.4.11","@open-wc/testing":"^4.0.0","@web/test-runner":"^0.20.2","@web/dev-server-esbuild":"^1.0.5","@storybook/web-components":"8.6.18","@storybook/addon-essentials":"8.6.18","@web/test-runner-playwright":"^0.11.1","@storybook/web-components-vite":"8.6.18","@custom-elements-manifest/analyzer":"^0.11.0"},"_npmOperationalInternal":{"tmp":"tmp/phantom-ui_1.1.0-beta.1_1781001587691_0.1571561028212931","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@aejkatappaja/phantom-ui","version":"1.1.0","keywords":["skeleton","shimmer","loading","placeholder","web-component","custom-element","lit","framework-agnostic"],"license":"MIT","_id":"@aejkatappaja/phantom-ui@1.1.0","maintainers":[{"name":"aejkatappaja","email":"joverjlj@gmail.com"}],"homepage":"https://github.com/Aejkatappaja/phantom-ui#readme","bugs":{"url":"https://github.com/Aejkatappaja/phantom-ui/issues"},"bin":{"phantom-ui":"src/cli/init.mjs"},"dist":{"shasum":"18e275c6e7f21e86f85bc92b4d43a954bbe7ca02","tarball":"https://registry.npmjs.org/@aejkatappaja/phantom-ui/-/phantom-ui-1.1.0.tgz","fileCount":12,"integrity":"sha512-WM1gUxWLB1zhLJYZEcBJwudoi9/2lm9oMu1zhhR3z9BOwHKY0m46vvd+dSFLHFVN8ffYxWkyjap3+PltP1c76w==","signatures":[{"sig":"MEUCIBB9EXY9gGG3jYRfI7wR9cp74SYu/HurAbFsRyYu5QOVAiEAgs096b8S9yM7OONGxS5CECeIWYAWHqq9oIYmnBGNxME=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aejkatappaja%2fphantom-ui@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":105481},"main":"dist/phantom-ui.js","type":"module","types":"dist/phantom-ui.d.ts","module":"dist/phantom-ui.js","exports":{".":{"types":"./dist/phantom-ui.d.ts","import":"./dist/phantom-ui.js"},"./ssr.css":"./dist/ssr.css"},"gitHead":"cf2209869cd502f3b3a9f1b33b79c7379c54213b","scripts":{"dev":"tsc --watch","lint":"biome check .","test":"web-test-runner","build":"npm run build:esm && npm run build:cdn && npm run build:types && npm run build:ssr && cem analyze","format":"biome format --write .","prepare":"husky","lint:fix":"biome check --write .","test:all":"web-test-runner --all-browsers","test:cli":"bun test test/cli/","build:cdn":"esbuild src/phantom-ui.ts --bundle --format=iife --outfile=dist/phantom-ui.cdn.js --minify --target=es2022","build:esm":"esbuild src/phantom-ui.ts --bundle --format=esm --outfile=dist/phantom-ui.js --minify --target=es2022 --packages=external","build:ssr":"cp src/ssr.css dist/ssr.css","storybook":"storybook dev -p 6006","playground":"bunx --bun serve -l 4444 --no-clipboard","test:watch":"web-test-runner --watch","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist","build-storybook":"storybook build"},"_npmUser":{"name":"aejkatappaja","email":"joverjlj@gmail.com"},"repository":{"url":"git+https://github.com/Aejkatappaja/phantom-ui.git","type":"git"},"_npmVersion":"10.9.8","description":"Structure-aware shimmer skeleton loader as a universal Web Component built with Lit. Works with React, Vue, Svelte, Angular, Solid, or vanilla JS.","directories":{},"lint-staged":{"*.{ts,mjs}":["biome check --write --no-errors-on-unmatched"]},"postinstall":"node ./src/cli/init.mjs || true","_nodeVersion":"22.22.3","dependencies":{"lit":"^3.2.0"},"_hasShrinkwrap":false,"customElements":"custom-elements.json","devDependencies":{"husky":"^9.1.7","storybook":"8.6.18","typescript":"^6.0.2","lint-staged":"^16.4.0","@biomejs/biome":"^2.4.11","@open-wc/testing":"^4.0.0","@web/test-runner":"^0.20.2","@web/dev-server-esbuild":"^1.0.5","@storybook/web-components":"8.6.18","@storybook/addon-essentials":"8.6.18","@web/test-runner-playwright":"^0.11.1","@storybook/web-components-vite":"8.6.18","@custom-elements-manifest/analyzer":"^0.11.0"},"_npmOperationalInternal":{"tmp":"tmp/phantom-ui_1.1.0_1781029509178_0.18810455974823537","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@aejkatappaja/phantom-ui","version":"1.2.0","keywords":["skeleton","shimmer","loading","placeholder","web-component","custom-element","lit","framework-agnostic"],"license":"MIT","_id":"@aejkatappaja/phantom-ui@1.2.0","maintainers":[{"name":"aejkatappaja","email":"joverjlj@gmail.com"}],"homepage":"https://github.com/Aejkatappaja/phantom-ui#readme","bugs":{"url":"https://github.com/Aejkatappaja/phantom-ui/issues"},"bin":{"phantom-ui":"src/cli/init.mjs"},"dist":{"shasum":"d5f7dec3c7a78f867ba3df4cc5c0886da355c09a","tarball":"https://registry.npmjs.org/@aejkatappaja/phantom-ui/-/phantom-ui-1.2.0.tgz","fileCount":12,"integrity":"sha512-s2qidf5Pn7mXflDBBixGHRuAyaA5Z9eG+X5Rv/ODNHQeHUq1Keohu6Kc2soQ/ATNgxCxnrGf5mL2DRmkxVDHWA==","signatures":[{"sig":"MEUCIQCFdP3zqrbw75mpVGvYLWqLKrFpYyfU0I3vRiDdPK71uAIgfrVOrK/C8as+vA5YpfSkJhghsdTJucoOCu0ImaNXLnA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aejkatappaja%2fphantom-ui@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":106837},"main":"dist/phantom-ui.js","type":"module","types":"dist/phantom-ui.d.ts","module":"dist/phantom-ui.js","exports":{".":{"types":"./dist/phantom-ui.d.ts","import":"./dist/phantom-ui.js"},"./ssr.css":"./dist/ssr.css"},"gitHead":"a001588cfeabae54602f8cd3c0160e7222016ee3","scripts":{"dev":"tsc --watch","lint":"biome check .","test":"web-test-runner","build":"npm run build:esm && npm run build:cdn && npm run build:types && npm run build:ssr && cem analyze","format":"biome format --write .","prepare":"husky","lint:fix":"biome check --write .","test:all":"web-test-runner --all-browsers","test:cli":"bun test test/cli/","build:cdn":"esbuild src/phantom-ui.ts --bundle --format=iife --outfile=dist/phantom-ui.cdn.js --minify --target=es2022","build:esm":"esbuild src/phantom-ui.ts --bundle --format=esm --outfile=dist/phantom-ui.js --minify --target=es2022 --packages=external","build:ssr":"cp src/ssr.css dist/ssr.css","storybook":"storybook dev -p 6006","playground":"bunx --bun serve -l 4444 --no-clipboard","test:watch":"web-test-runner --watch","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist","build-storybook":"storybook build"},"_npmUser":{"name":"aejkatappaja","email":"joverjlj@gmail.com"},"repository":{"url":"git+https://github.com/Aejkatappaja/phantom-ui.git","type":"git"},"_npmVersion":"10.9.8","description":"Structure-aware shimmer skeleton loader as a universal Web Component built with Lit. Works with React, Vue, Svelte, Angular, Solid, or vanilla JS.","directories":{},"lint-staged":{"*.{ts,mjs}":["biome check --write --no-errors-on-unmatched"]},"postinstall":"node ./src/cli/init.mjs || true","_nodeVersion":"22.22.3","dependencies":{"lit":"^3.2.0"},"_hasShrinkwrap":false,"customElements":"custom-elements.json","devDependencies":{"husky":"^9.1.7","storybook":"8.6.18","typescript":"^6.0.2","lint-staged":"^16.4.0","@biomejs/biome":"^2.4.11","@open-wc/testing":"^4.0.0","@web/test-runner":"^0.20.2","@web/dev-server-esbuild":"^1.0.5","@storybook/web-components":"8.6.18","@storybook/addon-essentials":"8.6.18","@web/test-runner-playwright":"^0.11.1","@storybook/web-components-vite":"8.6.18","@custom-elements-manifest/analyzer":"^0.11.0"},"_npmOperationalInternal":{"tmp":"tmp/phantom-ui_1.2.0_1781131574402_0.04538209925560599","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@aejkatappaja/phantom-ui","version":"1.2.1","keywords":["skeleton","shimmer","loading","placeholder","web-component","custom-element","lit","framework-agnostic"],"license":"MIT","_id":"@aejkatappaja/phantom-ui@1.2.1","maintainers":[{"name":"aejkatappaja","email":"joverjlj@gmail.com"}],"homepage":"https://github.com/Aejkatappaja/phantom-ui#readme","bugs":{"url":"https://github.com/Aejkatappaja/phantom-ui/issues"},"bin":{"phantom-ui":"src/cli/init.mjs"},"dist":{"shasum":"1e00f7cc60aa10a81c295f5cacd288dcf80b5150","tarball":"https://registry.npmjs.org/@aejkatappaja/phantom-ui/-/phantom-ui-1.2.1.tgz","fileCount":12,"integrity":"sha512-2gGvc5P2AeWaxO0fu4gLqrFfmH3ZNQwHR13xDTHtZoLCSjT7XZIf64qpvAOxPv+TNzNL5N6pnp0Mac46idtWHA==","signatures":[{"sig":"MEQCIB7bWXLAvZBhtRpx0yrW7cI73EPA0E9Qt6/iSS9wXit4AiBWBsBFbw6ucU8zMArjkizo/p+Q4flD7etgV/GEqygcng==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aejkatappaja%2fphantom-ui@1.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":106986},"main":"dist/phantom-ui.js","type":"module","types":"dist/phantom-ui.d.ts","module":"dist/phantom-ui.js","exports":{".":{"types":"./dist/phantom-ui.d.ts","import":"./dist/phantom-ui.js"},"./ssr.css":"./dist/ssr.css"},"gitHead":"c5cd0424d6bc9c0fb86800e3630394e90eba6c46","scripts":{"dev":"tsc --watch","lint":"biome check .","test":"web-test-runner","build":"npm run build:esm && npm run build:cdn && npm run build:types && npm run build:ssr && cem analyze","format":"biome format --write .","prepare":"husky","lint:fix":"biome check --write .","test:all":"web-test-runner --all-browsers","test:cli":"bun test test/cli/","build:cdn":"esbuild src/phantom-ui.ts --bundle --format=iife --outfile=dist/phantom-ui.cdn.js --minify --target=es2022","build:esm":"esbuild src/phantom-ui.ts --bundle --format=esm --outfile=dist/phantom-ui.js --minify --target=es2022 --packages=external","build:ssr":"cp src/ssr.css dist/ssr.css","storybook":"storybook dev -p 6006","playground":"bunx --bun serve -l 4444 --no-clipboard","test:watch":"web-test-runner --watch","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist","build-storybook":"storybook build"},"_npmUser":{"name":"aejkatappaja","email":"joverjlj@gmail.com"},"repository":{"url":"git+https://github.com/Aejkatappaja/phantom-ui.git","type":"git"},"_npmVersion":"10.9.8","description":"Structure-aware shimmer skeleton loader as a universal Web Component built with Lit. Works with React, Vue, Svelte, Angular, Solid, or vanilla JS.","directories":{},"lint-staged":{"*.{ts,mjs}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"22.22.3","dependencies":{"lit":"^3.2.0"},"_hasShrinkwrap":false,"customElements":"custom-elements.json","devDependencies":{"husky":"^9.1.7","storybook":"8.6.18","typescript":"^6.0.2","lint-staged":"^16.4.0","@biomejs/biome":"^2.4.11","@open-wc/testing":"^4.0.0","@web/test-runner":"^0.20.2","@web/dev-server-esbuild":"^1.0.5","@storybook/web-components":"8.6.18","@storybook/addon-essentials":"8.6.18","@web/test-runner-playwright":"^0.11.1","@storybook/web-components-vite":"8.6.18","@custom-elements-manifest/analyzer":"^0.11.0"},"_npmOperationalInternal":{"tmp":"tmp/phantom-ui_1.2.1_1781386551086_0.8163816163715996","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@aejkatappaja/phantom-ui","version":"1.3.0","keywords":["skeleton","shimmer","loading","placeholder","web-component","custom-element","lit","framework-agnostic"],"license":"MIT","_id":"@aejkatappaja/phantom-ui@1.3.0","maintainers":[{"name":"aejkatappaja","email":"joverjlj@gmail.com"}],"homepage":"https://github.com/Aejkatappaja/phantom-ui#readme","bugs":{"url":"https://github.com/Aejkatappaja/phantom-ui/issues"},"bin":{"phantom-ui":"src/cli/init.mjs"},"dist":{"shasum":"0e96900fed8095d7a298f9767c668ae2de21eda0","tarball":"https://registry.npmjs.org/@aejkatappaja/phantom-ui/-/phantom-ui-1.3.0.tgz","fileCount":12,"integrity":"sha512-4x0LAlcJ6JeDuoI9yU+Ebd0mG2oDhs7wU+yOHZWl786MVVqHKfhattF+xnXRJmYdxA2ilTFgXj8wl9JR2uDwLg==","signatures":[{"sig":"MEQCIH997R67JZgEwYEoEsR9vPqCP04+veqVeOiL04NMkqMTAiAqOINm8FQWUdevE6M/w3ovTVkFLsuKnXKFSlZRCg0AMA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aejkatappaja%2fphantom-ui@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":104725},"main":"dist/phantom-ui.js","type":"module","types":"dist/phantom-ui.d.ts","module":"dist/phantom-ui.js","exports":{".":{"types":"./dist/phantom-ui.d.ts","import":"./dist/phantom-ui.js"},"./ssr.css":"./dist/ssr.css"},"gitHead":"d529ce5c52a8de38634861796f27c4c827c9a1c8","scripts":{"dev":"tsc --watch","lint":"biome check .","test":"web-test-runner","build":"npm run build:esm && npm run build:cdn && npm run build:types && npm run build:ssr && cem analyze","format":"biome format --write .","prepare":"husky","lint:fix":"biome check --write .","test:all":"web-test-runner --all-browsers","test:cli":"bun test test/cli/","build:cdn":"esbuild src/phantom-ui.ts --bundle --format=iife --outfile=dist/phantom-ui.cdn.js --minify --target=es2022","build:esm":"esbuild src/phantom-ui.ts --bundle --format=esm --outfile=dist/phantom-ui.js --minify --target=es2022 --packages=external","build:ssr":"cp src/ssr.css dist/ssr.css","storybook":"storybook dev -p 6006","playground":"bunx --bun serve -l 4444 --no-clipboard","test:watch":"web-test-runner --watch","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist","build-storybook":"storybook build"},"_npmUser":{"name":"aejkatappaja","email":"joverjlj@gmail.com"},"repository":{"url":"git+https://github.com/Aejkatappaja/phantom-ui.git","type":"git"},"_npmVersion":"10.9.8","description":"Structure-aware shimmer skeleton loader as a universal Web Component built with Lit. Works with React, Vue, Svelte, Angular, Solid, or vanilla JS.","directories":{},"lint-staged":{"*.{ts,mjs}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"22.22.3","dependencies":{"lit":"^3.2.0"},"_hasShrinkwrap":false,"customElements":"custom-elements.json","devDependencies":{"husky":"^9.1.7","storybook":"8.6.18","typescript":"^6.0.2","lint-staged":"^16.4.0","@biomejs/biome":"^2.4.11","@open-wc/testing":"^4.0.0","@web/test-runner":"^0.20.2","@web/dev-server-esbuild":"^1.0.5","@storybook/web-components":"8.6.18","@storybook/addon-essentials":"8.6.18","@web/test-runner-playwright":"^0.11.1","@storybook/web-components-vite":"8.6.18","@custom-elements-manifest/analyzer":"^0.11.0"},"_npmOperationalInternal":{"tmp":"tmp/phantom-ui_1.3.0_1781394661810_0.34173983015941367","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@aejkatappaja/phantom-ui","version":"1.4.0","keywords":["skeleton","shimmer","loading","placeholder","web-component","custom-element","lit","framework-agnostic"],"license":"MIT","_id":"@aejkatappaja/phantom-ui@1.4.0","maintainers":[{"name":"aejkatappaja","email":"joverjlj@gmail.com"}],"homepage":"https://github.com/Aejkatappaja/phantom-ui#readme","bugs":{"url":"https://github.com/Aejkatappaja/phantom-ui/issues"},"bin":{"phantom-ui":"src/cli/init.mjs"},"dist":{"shasum":"e344cf5076ba6a521ffcd38b843582badaea6b48","tarball":"https://registry.npmjs.org/@aejkatappaja/phantom-ui/-/phantom-ui-1.4.0.tgz","fileCount":12,"integrity":"sha512-+FGxwoLFtQ3bNNbBfoCMPP0ZeJS8EY0hgtSGvt5q3B191ACBxeEol8MjorOf1MC5wjxY1aqyJEm7y0Q4UWpEzw==","signatures":[{"sig":"MEQCIAfYFP/GsoASvhP5doy8wH24OI/4cCID0T8DpNEoymZdAiAsJrfSsTVlav91V2vvzwBphS3gGFANQS+V2NBCaWX6Cw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aejkatappaja%2fphantom-ui@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":109832},"main":"dist/phantom-ui.js","type":"module","types":"dist/phantom-ui.d.ts","module":"dist/phantom-ui.js","exports":{".":{"types":"./dist/phantom-ui.d.ts","import":"./dist/phantom-ui.js"},"./ssr.css":"./dist/ssr.css"},"gitHead":"b20435cd80dd1351db3416c443992fdb522ab170","scripts":{"dev":"tsc --watch","lint":"biome check .","test":"web-test-runner","build":"npm run build:esm && npm run build:cdn && npm run build:types && npm run build:ssr && cem analyze","format":"biome format --write .","prepare":"husky","lint:fix":"biome check --write .","test:all":"web-test-runner --all-browsers","test:cli":"bun test test/cli/","build:cdn":"esbuild src/phantom-ui.ts --bundle --format=iife --outfile=dist/phantom-ui.cdn.js --minify --target=es2022","build:esm":"esbuild src/phantom-ui.ts --bundle --format=esm --outfile=dist/phantom-ui.js --minify --target=es2022 --packages=external","build:ssr":"cp src/ssr.css dist/ssr.css","storybook":"storybook dev -p 6006","playground":"bunx --bun serve -l 4444 --no-clipboard","test:watch":"web-test-runner --watch","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist","build-storybook":"storybook build"},"_npmUser":{"name":"aejkatappaja","email":"joverjlj@gmail.com"},"repository":{"url":"git+https://github.com/Aejkatappaja/phantom-ui.git","type":"git"},"_npmVersion":"10.9.8","description":"Structure-aware shimmer skeleton loader as a universal Web Component built with Lit. Works with React, Vue, Svelte, Angular, Solid, or vanilla JS.","directories":{},"lint-staged":{"*.{ts,mjs}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"22.23.1","dependencies":{"lit":"^3.2.0"},"_hasShrinkwrap":false,"customElements":"custom-elements.json","devDependencies":{"husky":"^9.1.7","storybook":"8.6.18","typescript":"^6.0.2","lint-staged":"^16.4.0","@biomejs/biome":"^2.4.11","@open-wc/testing":"^4.0.0","@web/test-runner":"^0.20.2","@web/dev-server-esbuild":"^1.0.5","@storybook/web-components":"8.6.18","@storybook/addon-essentials":"8.6.18","@web/test-runner-playwright":"^0.11.1","@storybook/web-components-vite":"8.6.18","@custom-elements-manifest/analyzer":"^0.11.0"},"_npmOperationalInternal":{"tmp":"tmp/phantom-ui_1.4.0_1782928072791_0.2869577761003512","host":"s3://npm-registry-packages-npm-production"}},"1.5.0-beta.0":{"name":"@aejkatappaja/phantom-ui","version":"1.5.0-beta.0","keywords":["skeleton","shimmer","loading","placeholder","web-component","custom-element","lit","framework-agnostic"],"license":"MIT","_id":"@aejkatappaja/phantom-ui@1.5.0-beta.0","maintainers":[{"name":"aejkatappaja","email":"joverjlj@gmail.com"}],"homepage":"https://github.com/Aejkatappaja/phantom-ui#readme","bugs":{"url":"https://github.com/Aejkatappaja/phantom-ui/issues"},"bin":{"phantom-ui":"src/cli/init.mjs"},"dist":{"shasum":"c82e8f1413010562062244549c00e3dfcaa19b75","tarball":"https://registry.npmjs.org/@aejkatappaja/phantom-ui/-/phantom-ui-1.5.0-beta.0.tgz","fileCount":12,"integrity":"sha512-zstR88tPcx0yC5ehWjwr0qmiuNsSfuEBB9qFrpQIeBxZQ9rXy9gfcPgAlYvOJh7W7qU/u8FnW+A4DFOW/8sEOw==","signatures":[{"sig":"MEQCIGDdFzl4G1cNisT1f/hxFcGwQ2RJzT9pfFJlo7oC4OwjAiBhCk80Uvn1W1oVrBN2Tm5/YmUI5KYaxrEB+SHHi/yn5Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aejkatappaja%2fphantom-ui@1.5.0-beta.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":111845},"main":"dist/phantom-ui.js","type":"module","types":"dist/phantom-ui.d.ts","module":"dist/phantom-ui.js","exports":{".":{"types":"./dist/phantom-ui.d.ts","import":"./dist/phantom-ui.js"},"./ssr.css":"./dist/ssr.css"},"gitHead":"af59a9181172572bfce98693aece06714f5a1782","scripts":{"dev":"tsc --watch","lint":"biome check .","test":"web-test-runner","build":"npm run build:esm && npm run build:cdn && npm run build:types && npm run build:ssr && cem analyze","smoke":"node scripts/smoke-playground.mjs","format":"biome format --write .","prepare":"husky","lint:fix":"biome check --write .","test:all":"web-test-runner --all-browsers","test:cli":"bun test test/cli/","build:cdn":"esbuild src/phantom-ui.ts --bundle --format=iife --outfile=dist/phantom-ui.cdn.js --minify --target=es2022","build:esm":"esbuild src/phantom-ui.ts --bundle --format=esm --outfile=dist/phantom-ui.js --minify --target=es2022 --packages=external","build:ssr":"bun scripts/generate-ssr-css.ts && biome format --write src/ssr.css && cp src/ssr.css dist/ssr.css","storybook":"storybook dev -p 6006","playground":"bunx --bun serve -l 4444 --no-clipboard","test:watch":"web-test-runner --watch","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist","test:coverage":"web-test-runner --coverage","verify:package":"node scripts/verify-package.mjs","build-storybook":"storybook build"},"_npmUser":{"name":"aejkatappaja","email":"joverjlj@gmail.com"},"deprecated":"Superseded by 1.5.0, which fixes the overlay indicator and adds the standalone bundle. Please upgrade.","repository":{"url":"git+https://github.com/Aejkatappaja/phantom-ui.git","type":"git"},"_npmVersion":"10.9.8","description":"Structure-aware shimmer skeleton loader as a universal Web Component built with Lit. Works with React, Vue, Svelte, Angular, Solid, or vanilla JS.","directories":{},"lint-staged":{"*.{ts,mjs}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"22.23.1","dependencies":{"lit":"^3.3.3"},"_hasShrinkwrap":false,"customElements":"custom-elements.json","readmeFilename":"README.md","devDependencies":{"husky":"^9.1.7","storybook":"^10.5.0","playwright":"1.59.1","typescript":"^7.0.2","lint-staged":"^17.0.8","@biomejs/biome":"^2.5.4","@open-wc/testing":"^5.0.0","@web/test-runner":"^1.0.0","@storybook/addon-docs":"^10.5.0","@web/dev-server-esbuild":"^2.0.0","@web/test-runner-playwright":"^1.0.0","@storybook/web-components-vite":"^10.5.0","@custom-elements-manifest/analyzer":"^0.11.0"},"_npmOperationalInternal":{"tmp":"tmp/phantom-ui_1.5.0-beta.0_1785241514175_0.32793698627036383","host":"s3://npm-registry-packages-npm-production"}},"1.5.0-beta.1":{"name":"@aejkatappaja/phantom-ui","version":"1.5.0-beta.1","keywords":["skeleton","shimmer","loading","placeholder","web-component","custom-element","lit","framework-agnostic"],"license":"MIT","_id":"@aejkatappaja/phantom-ui@1.5.0-beta.1","maintainers":[{"name":"aejkatappaja","email":"joverjlj@gmail.com"}],"homepage":"https://github.com/Aejkatappaja/phantom-ui#readme","bugs":{"url":"https://github.com/Aejkatappaja/phantom-ui/issues"},"bin":{"phantom-ui":"src/cli/init.mjs"},"dist":{"shasum":"463cf8d8cdc6b4bd613106e4861c98ca79a80885","tarball":"https://registry.npmjs.org/@aejkatappaja/phantom-ui/-/phantom-ui-1.5.0-beta.1.tgz","fileCount":13,"integrity":"sha512-+X52VB28YHqvspOwLxhgTfM+Sx4StQBLEAh611yWbK6HjktuZWn4C9IVmWm8vx43TG/p9r8/pBy6PJBU9qKNfw==","signatures":[{"sig":"MEQCIELlgdChIQBMvvm5o7AHUGae2oPuxyMq2J68A5wZBNNcAiAr1vF0Ue+P6EtyFiVTJDkSGV753KPV9wTEZf9TNNoyUA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aejkatappaja%2fphantom-ui@1.5.0-beta.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":150866},"main":"dist/phantom-ui.js","type":"module","types":"dist/phantom-ui.d.ts","module":"dist/phantom-ui.js","exports":{".":{"types":"./dist/phantom-ui.d.ts","import":"./dist/phantom-ui.js"},"./ssr.css":"./dist/ssr.css","./standalone":{"types":"./dist/phantom-ui.d.ts","default":"./dist/phantom-ui.standalone.js"}},"gitHead":"6eae3e591e9479136bcbf3e2f4c4eda395f8cb66","scripts":{"dev":"tsc --watch","lint":"biome check .","test":"web-test-runner","build":"npm run build:esm && npm run build:cdn && npm run build:standalone && npm run build:types && npm run build:ssr && cem analyze","smoke":"node scripts/smoke-playground.mjs","format":"biome format --write .","prepare":"husky","lint:fix":"biome check --write .","test:all":"web-test-runner --all-browsers","test:cli":"bun test test/cli/","build:cdn":"esbuild src/phantom-ui.ts --bundle --format=iife --outfile=dist/phantom-ui.cdn.js --minify --target=es2022","build:esm":"esbuild src/phantom-ui.ts --bundle --format=esm --outfile=dist/phantom-ui.js --minify --target=es2022 --packages=external","build:ssr":"bun scripts/generate-ssr-css.ts && biome format --write src/ssr.css && cp src/ssr.css dist/ssr.css","storybook":"storybook dev -p 6006","playground":"bunx --bun serve -l 4444 --no-clipboard","test:watch":"web-test-runner --watch","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist","test:coverage":"web-test-runner --coverage","verify:package":"node scripts/verify-package.mjs","build-storybook":"storybook build","build:standalone":"esbuild src/phantom-ui.ts --bundle --format=esm --outfile=dist/phantom-ui.standalone.js --minify --target=es2022"},"_npmUser":{"name":"aejkatappaja","email":"joverjlj@gmail.com"},"deprecated":"Superseded by 1.5.0. Please upgrade.","repository":{"url":"git+https://github.com/Aejkatappaja/phantom-ui.git","type":"git"},"_npmVersion":"10.9.8","description":"Structure-aware shimmer skeleton loader as a universal Web Component built with Lit. Works with React, Vue, Svelte, Angular, Solid, or vanilla JS.","directories":{},"lint-staged":{"*.{ts,mjs}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"22.23.1","dependencies":{"lit":"^3.3.3"},"_hasShrinkwrap":false,"customElements":"custom-elements.json","readmeFilename":"README.md","devDependencies":{"husky":"^9.1.7","storybook":"^10.5.0","playwright":"1.59.1","typescript":"^7.0.2","lint-staged":"^17.0.8","@biomejs/biome":"^2.5.4","@open-wc/testing":"^5.0.0","@web/test-runner":"^1.0.0","@storybook/addon-docs":"^10.5.0","@web/dev-server-esbuild":"^2.0.0","@web/test-runner-playwright":"^1.0.0","@storybook/web-components-vite":"^10.5.0","@custom-elements-manifest/analyzer":"^0.11.0"},"_npmOperationalInternal":{"tmp":"tmp/phantom-ui_1.5.0-beta.1_1785278271712_0.02582150342181433","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@aejkatappaja/phantom-ui","version":"1.5.0","keywords":["skeleton","shimmer","loading","placeholder","web-component","custom-element","lit","framework-agnostic"],"license":"MIT","_id":"@aejkatappaja/phantom-ui@1.5.0","maintainers":[{"name":"aejkatappaja","email":"joverjlj@gmail.com"}],"homepage":"https://github.com/Aejkatappaja/phantom-ui#readme","bugs":{"url":"https://github.com/Aejkatappaja/phantom-ui/issues"},"bin":{"phantom-ui":"src/cli/init.mjs"},"dist":{"shasum":"cdff837786fc73a248f5956c4a6650250a9ef18e","tarball":"https://registry.npmjs.org/@aejkatappaja/phantom-ui/-/phantom-ui-1.5.0.tgz","fileCount":14,"integrity":"sha512-MTs6g5Y+hUieTpuJuztmYv2nvrHeAlZCVSV0jq+6UV6/aK+LoLuTJ6i5wMdI7uHSrztD6VQPTjmccX2u5VvI0A==","signatures":[{"sig":"MEUCIQDjg6e+9JoK+/BR88Q9uvVLOBgwKwusBzDD4fhYDuiJKAIgfgvJ2U42T7JfcPzQt6OfezuFlzs4FPC7TQc9Tz4FA1Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aejkatappaja%2fphantom-ui@1.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":159984},"main":"dist/phantom-ui.js","type":"module","types":"dist/phantom-ui.d.ts","module":"dist/phantom-ui.js","exports":{".":{"types":"./dist/phantom-ui.d.ts","import":"./dist/phantom-ui.js"},"./ssr.css":"./dist/ssr.css","./standalone":{"types":"./dist/phantom-ui.d.ts","default":"./dist/phantom-ui.standalone.js"}},"gitHead":"8fca68420824b4d4bb79dc6494392571562f573e","scripts":{"dev":"tsc --watch","lint":"biome check .","test":"web-test-runner","build":"npm run build:esm && npm run build:cdn && npm run build:standalone && npm run build:types && npm run build:ssr && cem analyze","smoke":"node scripts/smoke-playground.mjs","format":"biome format --write .","prepare":"husky","lint:fix":"biome check --write .","test:all":"web-test-runner --all-browsers","test:cli":"bun test test/cli/","build:cdn":"esbuild src/phantom-ui.ts --bundle --format=iife --outfile=dist/phantom-ui.cdn.js --minify --target=es2022","build:esm":"esbuild src/phantom-ui.ts --bundle --format=esm --outfile=dist/phantom-ui.js --minify --target=es2022 --packages=external","build:ssr":"bun scripts/generate-ssr-css.ts && biome format --write src/ssr.css && cp src/ssr.css dist/ssr.css","storybook":"storybook dev -p 6006","playground":"bunx --bun serve -l 4444 --no-clipboard","test:watch":"web-test-runner --watch","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist && node scripts/generate-standalone-types.mjs","test:coverage":"web-test-runner --coverage","verify:package":"node scripts/verify-package.mjs","build-storybook":"storybook build","build:standalone":"esbuild src/phantom-ui.ts --bundle --format=esm --outfile=dist/phantom-ui.standalone.js --minify --target=es2022"},"_npmUser":{"name":"aejkatappaja","email":"joverjlj@gmail.com"},"repository":{"url":"git+https://github.com/Aejkatappaja/phantom-ui.git","type":"git"},"_npmVersion":"10.9.8","description":"Structure-aware shimmer skeleton loader as a universal Web Component built with Lit. Works with React, Vue, Svelte, Angular, Solid, or vanilla JS.","directories":{},"lint-staged":{"*.{ts,mjs}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"22.23.1","dependencies":{"lit":"^3.3.3"},"_hasShrinkwrap":false,"customElements":"custom-elements.json","devDependencies":{"husky":"^9.1.7","storybook":"^10.5.0","playwright":"1.59.1","typescript":"^7.0.2","lint-staged":"^17.0.8","@biomejs/biome":"^2.5.4","@open-wc/testing":"^5.0.0","@web/test-runner":"^1.0.0","@storybook/addon-docs":"^10.5.0","@web/dev-server-esbuild":"^2.0.0","@web/test-runner-playwright":"^1.0.0","@storybook/web-components-vite":"^10.5.0","@custom-elements-manifest/analyzer":"^0.11.0"},"_npmOperationalInternal":{"tmp":"tmp/phantom-ui_1.5.0_1785445746723_0.17469005386844216","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@aejkatappaja/phantom-ui","version":"1.6.0","keywords":["skeleton","shimmer","loading","placeholder","web-component","custom-element","lit","framework-agnostic"],"license":"MIT","_id":"@aejkatappaja/phantom-ui@1.6.0","maintainers":[{"name":"aejkatappaja","email":"joverjlj@gmail.com"}],"homepage":"https://github.com/Aejkatappaja/phantom-ui#readme","bugs":{"url":"https://github.com/Aejkatappaja/phantom-ui/issues"},"bin":{"phantom-ui":"src/cli/init.mjs"},"dist":{"shasum":"8853fe60a5f3590b992bf4e4d81ba9f24f32e780","tarball":"https://registry.npmjs.org/@aejkatappaja/phantom-ui/-/phantom-ui-1.6.0.tgz","fileCount":15,"integrity":"sha512-ZpzgCO9p/b/HHt14cBt43lMryAgdNJj+3GPpkOWC4lb6aKecnsJnk2u5YmhxwSv+LLJLwORomgbMeaM5/PFpjw==","signatures":[{"sig":"MEUCIQCfkKcQbFjOHnYQ7CELzny33PdQSNTy17R7+B4HnqMZzAIgH9fiTh14CNt9LmPfNm5Jm7RQ7cEOkqTm1IKAocOmsGQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aejkatappaja%2fphantom-ui@1.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":213319},"main":"dist/phantom-ui.js","type":"module","types":"dist/phantom-ui.d.ts","module":"dist/phantom-ui.js","exports":{".":{"types":"./dist/phantom-ui.d.ts","import":"./dist/phantom-ui.js"},"./ssr.css":"./dist/ssr.css","./standalone":{"types":"./dist/phantom-ui.d.ts","default":"./dist/phantom-ui.standalone.js"}},"gitHead":"69f9d421a0e0ccad4f8e02fa0efe43501aac11e0","scripts":{"dev":"tsc --watch","lint":"biome check .","test":"web-test-runner","build":"npm run build:esm && npm run build:cdn && npm run build:standalone && npm run build:types && npm run build:ssr && cem analyze","smoke":"node scripts/smoke-playground.mjs","format":"biome format --write .","prepare":"husky","lint:fix":"biome check --write .","test:all":"web-test-runner --all-browsers","test:cli":"bun test test/cli/","build:cdn":"esbuild src/phantom-ui.ts --bundle --format=iife --outfile=dist/phantom-ui.cdn.js --minify --target=es2022","build:esm":"esbuild src/phantom-ui.ts --bundle --format=esm --outfile=dist/phantom-ui.js --minify --target=es2022 --packages=external","build:ssr":"bun scripts/generate-ssr-css.ts && biome format --write src/ssr.css && cp src/ssr.css dist/ssr.css","storybook":"storybook dev -p 6006","playground":"bunx --bun serve -l 4444 --no-clipboard","test:watch":"web-test-runner --watch","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist && node scripts/generate-standalone-types.mjs","test:coverage":"web-test-runner --coverage","verify:package":"node scripts/verify-package.mjs","build-storybook":"storybook build","build:standalone":"esbuild src/phantom-ui.ts --bundle --format=esm --outfile=dist/phantom-ui.standalone.js --minify --target=es2022 && npm run build:standalone:dev","build:standalone:dev":"esbuild src/phantom-ui.ts --bundle --format=esm --outfile=dist/phantom-ui.standalone.dev.js --target=es2022"},"_npmUser":{"name":"aejkatappaja","email":"joverjlj@gmail.com"},"repository":{"url":"git+https://github.com/Aejkatappaja/phantom-ui.git","type":"git"},"_npmVersion":"10.9.8","description":"Structure-aware shimmer skeleton loader as a universal Web Component built with Lit. Works with React, Vue, Svelte, Angular, Solid, or vanilla JS.","directories":{},"lint-staged":{"*.{ts,mjs}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"22.23.1","dependencies":{"lit":"^3.3.3"},"_hasShrinkwrap":false,"customElements":"custom-elements.json","devDependencies":{"husky":"^9.1.7","storybook":"^10.5.0","playwright":"1.59.1","typescript":"^7.0.2","lint-staged":"^17.0.8","@biomejs/biome":"^2.5.4","@open-wc/testing":"^5.0.0","@web/test-runner":"^1.0.0","@storybook/addon-docs":"^10.5.0","@web/dev-server-esbuild":"^2.0.0","@web/test-runner-playwright":"^1.0.0","@storybook/web-components-vite":"^10.5.0","@custom-elements-manifest/analyzer":"^0.11.0"},"_npmOperationalInternal":{"tmp":"tmp/phantom-ui_1.6.0_1785485966224_0.6914161694903154","host":"s3://npm-registry-packages-npm-production"}},"1.6.1":{"name":"@aejkatappaja/phantom-ui","version":"1.6.1","keywords":["skeleton","shimmer","loading","placeholder","web-component","custom-element","lit","framework-agnostic"],"license":"MIT","_id":"@aejkatappaja/phantom-ui@1.6.1","maintainers":[{"name":"aejkatappaja","email":"joverjlj@gmail.com"}],"homepage":"https://github.com/Aejkatappaja/phantom-ui#readme","bugs":{"url":"https://github.com/Aejkatappaja/phantom-ui/issues"},"bin":{"phantom-ui":"src/cli/init.mjs"},"dist":{"shasum":"8eea8c39fe47454fc1bd2cde79acce0bd6c33406","tarball":"https://registry.npmjs.org/@aejkatappaja/phantom-ui/-/phantom-ui-1.6.1.tgz","fileCount":15,"integrity":"sha512-7ZT4sW0YjuQp+Edq/5CM13l+ZUlNR5GtpfF+WbUVTzO9UvtfDv6d6qcPZdPP7PS1W6lP2fKpqVQiWb0iWdDheQ==","signatures":[{"sig":"MEQCIGQEWT496Pwz6kgLDOXdJQcKb8RDIoCv/kfOQaTbiSjwAiBVsh5RnOwBLZLpDPsrTto2Ujcq1WHeV1IH44jSm//q2Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aejkatappaja%2fphantom-ui@1.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":213633},"main":"dist/phantom-ui.js","type":"module","types":"dist/phantom-ui.d.ts","module":"dist/phantom-ui.js","exports":{".":{"types":"./dist/phantom-ui.d.ts","import":"./dist/phantom-ui.js"},"./ssr.css":"./dist/ssr.css","./standalone":{"types":"./dist/phantom-ui.d.ts","default":"./dist/phantom-ui.standalone.js"}},"gitHead":"3d58d997fcbc7356315a2444b131ee0420b505bb","scripts":{"dev":"tsc --watch","lint":"biome check .","test":"web-test-runner","build":"npm run build:esm && npm run build:cdn && npm run build:standalone && npm run build:types && npm run build:ssr && cem analyze","smoke":"node scripts/smoke-playground.mjs","format":"biome format --write .","prepare":"husky","lint:fix":"biome check --write .","test:all":"web-test-runner --all-browsers","test:cli":"bun test test/cli/","build:cdn":"esbuild src/phantom-ui.ts --bundle --format=iife --outfile=dist/phantom-ui.cdn.js --minify --target=es2022","build:esm":"esbuild src/phantom-ui.ts --bundle --format=esm --outfile=dist/phantom-ui.js --minify --target=es2022 --packages=external","build:ssr":"bun scripts/generate-ssr-css.ts && biome format --write src/ssr.css && cp src/ssr.css dist/ssr.css","storybook":"storybook dev -p 6006","playground":"bunx --bun serve -l 4444 --no-clipboard","test:watch":"web-test-runner --watch","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist && node scripts/generate-standalone-types.mjs","test:coverage":"web-test-runner --coverage","verify:package":"node scripts/verify-package.mjs","build-storybook":"storybook build","build:standalone":"esbuild src/phantom-ui.ts --bundle --format=esm --outfile=dist/phantom-ui.standalone.js --minify --target=es2022 && npm run build:standalone:dev","build:standalone:dev":"esbuild src/phantom-ui.ts --bundle --format=esm --outfile=dist/phantom-ui.standalone.dev.js --target=es2022"},"_npmUser":{"name":"aejkatappaja","email":"joverjlj@gmail.com"},"repository":{"url":"git+https://github.com/Aejkatappaja/phantom-ui.git","type":"git"},"_npmVersion":"10.9.8","description":"Structure-aware shimmer skeleton loader as a universal Web Component built with Lit. Works with React, Vue, Svelte, Angular, Solid, or vanilla JS.","directories":{},"lint-staged":{"*.{ts,mjs}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"22.23.1","dependencies":{"lit":"^3.3.3"},"_hasShrinkwrap":false,"customElements":"custom-elements.json","devDependencies":{"husky":"^9.1.7","storybook":"^10.5.0","playwright":"1.59.1","typescript":"^7.0.2","lint-staged":"^17.0.8","@biomejs/biome":"^2.5.4","@open-wc/testing":"^5.0.0","@web/test-runner":"^1.0.0","@storybook/addon-docs":"^10.5.0","@web/dev-server-esbuild":"^2.0.0","@web/test-runner-playwright":"^1.0.0","@storybook/web-components-vite":"^10.5.0","@custom-elements-manifest/analyzer":"^0.11.0"},"_npmOperationalInternal":{"tmp":"tmp/phantom-ui_1.6.1_1785489096879_0.33523425964761544","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-03-30T16:00:46.980Z","modified":"2026-08-10T17:55:04.513Z","0.1.1":"2026-03-30T16:00:47.262Z","0.2.0":"2026-03-30T17:59:30.515Z","0.2.2":"2026-03-30T18:24:41.685Z","0.2.3":"2026-04-06T22:21:16.708Z","0.2.4":"2026-04-07T07:27:38.892Z","0.3.0":"2026-04-07T23:24:25.785Z","0.4.0":"2026-04-08T06:37:42.861Z","0.5.0":"2026-04-08T10:05:01.524Z","0.5.1":"2026-04-08T16:41:48.528Z","0.5.2":"2026-04-08T23:25:50.380Z","0.6.0":"2026-04-09T10:25:21.063Z","0.6.1":"2026-04-09T17:32:53.158Z","0.7.0":"2026-04-09T22:20:35.555Z","0.7.1":"2026-04-10T00:48:09.554Z","0.8.0":"2026-04-10T02:07:17.806Z","0.8.1":"2026-04-10T03:12:52.085Z","0.9.0":"2026-04-13T17:38:25.950Z","0.10.0":"2026-05-02T23:15:45.233Z","0.10.1":"2026-05-06T21:40:42.747Z","1.0.0":"2026-06-01T10:26:26.413Z","1.1.0-beta.0":"2026-06-01T13:38:05.954Z","1.1.0-beta.1":"2026-06-09T10:39:47.878Z","1.1.0":"2026-06-09T18:25:09.317Z","1.2.0":"2026-06-10T22:46:14.537Z","1.2.1":"2026-06-13T21:35:51.222Z","1.3.0":"2026-06-13T23:51:01.932Z","1.4.0":"2026-07-01T17:47:52.929Z","1.5.0-beta.0":"2026-07-28T12:25:14.338Z","1.5.0-beta.1":"2026-07-28T22:37:51.845Z","1.5.0":"2026-07-30T21:09:06.878Z","1.6.0":"2026-07-31T08:19:26.419Z","1.6.1":"2026-07-31T09:11:37.024Z"},"bugs":{"url":"https://github.com/Aejkatappaja/phantom-ui/issues"},"license":"MIT","homepage":"https://github.com/Aejkatappaja/phantom-ui#readme","keywords":["skeleton","shimmer","loading","placeholder","web-component","custom-element","lit","framework-agnostic"],"repository":{"url":"git+https://github.com/Aejkatappaja/phantom-ui.git","type":"git"},"description":"Structure-aware shimmer skeleton loader as a universal Web Component built with Lit. Works with React, Vue, Svelte, Angular, Solid, or vanilla JS.","maintainers":[{"name":"aejkatappaja","email":"joverjlj@gmail.com"}],"readme":"<p align=\"center\">\n  <img src=\".github/assets/logo-phantom.svg\" alt=\"phantom-ui\" width=\"200\" />\n  <br />\n  <img src=\".github/assets/phantom-ui-text.svg\" alt=\"phantom-ui\" width=\"320\" />\n</p>\n\n<p align=\"center\">\n  <strong>Structure-aware skeleton loader. One Web Component. Every framework.</strong>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/@aejkatappaja/phantom-ui\"><img src=\"https://img.shields.io/npm/v/@aejkatappaja/phantom-ui.svg?style=flat-square\" alt=\"npm version\" /></a>\n  <img src=\"https://img.shields.io/badge/minzipped-~8kb-blue?style=flat-square\" alt=\"bundle size\" />\n  <a href=\"https://github.com/Aejkatappaja/phantom-ui/blob/main/LICENSE\"><img src=\"https://img.shields.io/npm/l/@aejkatappaja/phantom-ui?style=flat-square\" alt=\"license\" /></a>\n  <a href=\"https://www.webcomponents.org/element/@aejkatappaja/phantom-ui\"><img src=\"https://img.shields.io/badge/webcomponents.org-published-blue.svg?style=flat-square\" alt=\"Published on webcomponents.org\" /></a>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://aejkatappaja.github.io/phantom-ui/\">Documentation</a> &middot;\n  <a href=\"https://aejkatappaja.github.io/phantom-ui/demo/\">Live Demo</a>\n</p>\n\n---\n\n<br />\n\n<div align=\"center\">\n  <picture>\n    <img src=\".github/assets/phantom-ui-preview.svg\" alt=\"phantom-ui demo\" width=\"640\" />\n  </picture>\n</div>\n\n<br />\n\nStop building skeleton screens by hand. Wrap your real UI in `<phantom-ui>` and it generates shimmer placeholders automatically by measuring your actual DOM at runtime.\n\nNo separate skeleton components to maintain. No copy-pasting layouts. The real component _is_ the skeleton template.\n\n## Why\n\nTraditional skeleton loaders require you to build and maintain a second version of every component, just for the loading state. When the real component changes, the skeleton drifts out of sync.\n\n`phantom-ui` takes a different approach. It renders your real component with invisible text, measures the position and size of every leaf element (`getBoundingClientRect`), and overlays animated shimmer blocks at the exact same coordinates. Container backgrounds and borders stay visible, giving a natural card outline while loading.\n\nBecause it is a standard Web Component (built with Lit), it works in React, Vue, Svelte, Angular, Solid, Qwik, HTMX, or plain HTML. No framework adapters needed.\n\n## Install\n\n```bash\nbun add @aejkatappaja/phantom-ui     # bun\nnpm install @aejkatappaja/phantom-ui # npm\npnpm add @aejkatappaja/phantom-ui    # pnpm\nyarn add @aejkatappaja/phantom-ui    # yarn\n```\n\nOr drop in a script tag with no build step:\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@aejkatappaja/phantom-ui/dist/phantom-ui.cdn.js\"></script>\n```\n\n### Vendoring a single file\n\nIf you cannot install from a registry, or you would rather keep a copy in your repo, there is a standalone ES module with Lit bundled in. One file, 34 kB minified, 11.5 kB gzipped, no runtime dependency:\n\n```ts\nimport \"@aejkatappaja/phantom-ui/standalone\";\n```\n\nOr, if you cannot reach a registry at all, copy two files into your project and import by path:\n\n```\nphantom-ui.standalone.js      # the component, unminified so a review can read it\nphantom-ui.standalone.min.js  # the same code, minified\nphantom-ui.standalone.d.ts    # its types, no imports of any kind\n```\n\nTake the first and the third. TypeScript pairs a declaration to a module by exact\nfilename, so those two names go together and the types apply with nothing to configure.\n\n```ts\nimport \"./phantom-ui.standalone.js\";\nimport type { PhantomUi } from \"./phantom-ui.standalone.js\";\n```\n\nThat is the whole install. The element registers itself on import, and the declarations reference nothing external, so a project with no `node_modules` at all still type-checks under `strict` with `skipLibCheck: false`.\n\nThe declared class extends `HTMLElement` rather than `LitElement`, which is a narrower view of the same object, so `updateComplete` is declared explicitly and the rest of the public API is unchanged.\n\nThose are the release assets, which is the channel for people who cannot reach a registry at all. Inside the npm package the same builds are `phantom-ui.standalone.js` and `phantom-ui.standalone.dev.js`, resolved through the exports map rather than by filename. Either build is the same code, and both are bundled output rather than the original TypeScript: the sources import Lit, so they cannot be compiled on their own.\n\nThe library is MIT, so vendoring is fine. Note the version you copied somewhere near the file, since a vendored copy does not get updates.\n\n## Optional setup\n\nThe component works with zero setup. For an extra convenience pass, run the bundled `init` command once from your project root:\n\n```bash\nnpx @aejkatappaja/phantom-ui init    # npm\nbunx @aejkatappaja/phantom-ui init   # bun\npnpx @aejkatappaja/phantom-ui init   # pnpm\nyarn dlx @aejkatappaja/phantom-ui init  # yarn\n```\n\nIt detects your project setup and handles two things:\n\n**JSX type declarations**: For React, Solid, and Qwik, it generates a `phantom-ui.d.ts` in your `src/` directory so `<phantom-ui>` is recognized in JSX. Vue, Svelte, and Angular work out of the box without any type declaration.\n\n**SSR pre-hydration CSS**: For Next.js, Nuxt, SvelteKit, Remix, and Qwik, it adds `import \"@aejkatappaja/phantom-ui/ssr.css\"` to your layout file to prevent content flash before hydration (see [Pre-hydration CSS](#pre-hydration-css)).\n\nNothing runs on install: the library deliberately has no `postinstall` hook, so your source is never modified unless you ask for it. Prefer not to run the command at all? Both steps are tiny and documented below for manual setup.\n\n<details>\n<summary>Manual JSX type declarations</summary>\n\n**React / Next.js / Remix**\n\n```typescript\nimport type { PhantomUiAttributes } from \"@aejkatappaja/phantom-ui\";\n\ndeclare module \"react/jsx-runtime\" {\n  export namespace JSX {\n    interface IntrinsicElements {\n      \"phantom-ui\": PhantomUiAttributes;\n    }\n  }\n}\n```\n\n**Solid**\n\n```typescript\nimport type { SolidPhantomUiAttributes } from \"@aejkatappaja/phantom-ui\";\n\ndeclare module \"solid-js\" {\n  namespace JSX {\n    interface IntrinsicElements {\n      \"phantom-ui\": SolidPhantomUiAttributes;\n    }\n  }\n}\n```\n\n**Qwik**\n\n```typescript\nimport type { PhantomUiAttributes } from \"@aejkatappaja/phantom-ui\";\n\ndeclare module \"@builder.io/qwik\" {\n  namespace QwikJSX {\n    interface IntrinsicElements {\n      \"phantom-ui\": PhantomUiAttributes & Record<string, unknown>;\n    }\n  }\n}\n```\n\n</details>\n\n<details>\n<summary>Manual SSR CSS import</summary>\n\nAdd this import to your root layout file:\n\n```js\nimport \"@aejkatappaja/phantom-ui/ssr.css\";\n```\n\n| Framework | Layout file |\n| --- | --- |\n| Next.js (App Router) | `app/layout.tsx` |\n| Next.js (Pages) | `pages/_app.tsx` |\n| Nuxt | `app.vue` |\n| SvelteKit | `src/routes/+layout.svelte` |\n| Remix | `app/root.tsx` |\n| Qwik | `src/root.tsx` |\n\n</details>\n\n## Quick start\n\n```html\n<phantom-ui loading>\n  <div class=\"card\">\n    <img src=\"avatar.png\" width=\"48\" height=\"48\" style=\"border-radius: 50%\" />\n    <h3>Ada Lovelace</h3>\n    <p>First computer programmer, probably.</p>\n  </div>\n</phantom-ui>\n```\n\nSet `loading` to show the shimmer. Remove it to reveal the real content. All child elements (including deeply nested images and media) are automatically hidden during loading.\n\n## Data fetching\n\nphantom-ui works with any data fetching approach. The pattern: render placeholder content while loading, real content when done. The placeholder text is invisible (CSS transparent) and only used to generate the skeleton shape.\n\n### TanStack Query\n\n```tsx\nimport { useQuery } from \"@tanstack/react-query\";\nimport \"@aejkatappaja/phantom-ui\";\n\nfunction UserProfile({ userId }: { userId: string }) {\n  const { data: user, isLoading } = useQuery({\n    queryKey: [\"user\", userId],\n    queryFn: () => fetch(`/api/users/${userId}`).then((r) => r.json()),\n  });\n\n  return (\n    <phantom-ui loading={isLoading}>\n      <div className=\"card\">\n        <img src={user?.avatar ?? \"/placeholder.png\"} width=\"48\" height=\"48\" />\n        <h3>{user?.name ?? \"Placeholder Name\"}</h3>\n        <p>{user?.bio ?? \"A short bio goes here.\"}</p>\n      </div>\n    </phantom-ui>\n  );\n}\n```\n\nWhile `isLoading` is true, the placeholder text (`\"Placeholder Name\"`, `\"A short bio goes here.\"`) is rendered invisibly and phantom-ui generates shimmer blocks matching their exact position and size. When the query resolves, `loading` is removed and the real content appears.\n\n### SWR\n\n```tsx\nimport useSWR from \"swr\";\nimport \"@aejkatappaja/phantom-ui\";\n\nfunction UserProfile({ userId }: { userId: string }) {\n  const { data: user, isLoading } = useSWR(`/api/users/${userId}`);\n\n  return (\n    <phantom-ui loading={isLoading}>\n      <div className=\"card\">\n        <img src={user?.avatar ?? \"/placeholder.png\"} width=\"48\" height=\"48\" />\n        <h3>{user?.name ?? \"Placeholder Name\"}</h3>\n        <p>{user?.bio ?? \"A short bio goes here.\"}</p>\n      </div>\n    </phantom-ui>\n  );\n}\n```\n\n### Lists\n\nFor dynamic lists where the data hasn't loaded yet, use `count` to repeat a single template row:\n\n```tsx\nconst { data: users, isLoading } = useQuery({\n  queryKey: [\"users\"],\n  queryFn: () => fetch(\"/api/users\").then((r) => r.json()),\n});\n\nreturn (\n  <phantom-ui loading={isLoading} count={5} count-gap={8}>\n    {isLoading ? (\n      <div className=\"row\">\n        <img src=\"/placeholder.png\" width=\"32\" height=\"32\" />\n        <span>Placeholder Name</span>\n        <span>placeholder@email.com</span>\n      </div>\n    ) : (\n      users?.map((u) => (\n        <div key={u.id} className=\"row\">\n          <img src={u.avatar} width=\"32\" height=\"32\" />\n          <span>{u.name}</span>\n          <span>{u.email}</span>\n        </div>\n      ))\n    )}\n  </phantom-ui>\n);\n```\n\n## Framework examples\n\nSafe to import multiple times. The custom element registration is guarded against duplicate `customElements.define()` calls, so phantom-ui works reliably in **micro-frontends, lazy-loaded modules, dynamic imports, and HMR / hot reload** environments where the package can end up being initialized more than once.\n\n### React\n\n```tsx\nimport \"@aejkatappaja/phantom-ui\";\n\nfunction ProfileCard({ user, isLoading }: Props) {\n  return (\n    <phantom-ui loading={isLoading} animation=\"pulse\" reveal={0.3}>\n      <div className=\"card\">\n        <img src={user?.avatar ?? \"/placeholder.png\"} className=\"avatar\" />\n        <h3>{user?.name ?? \"Placeholder Name\"}</h3>\n        <p>{user?.bio ?? \"A few words about this person go here.\"}</p>\n      </div>\n    </phantom-ui>\n  );\n}\n\n// List with repeat mode\nfunction UserList({ users, isLoading }: Props) {\n  return (\n    <phantom-ui loading={isLoading} count={5} count-gap={8}>\n      <div className=\"row\">\n        <img src=\"/placeholder.png\" width=\"32\" height=\"32\" />\n        <span>Placeholder Name</span>\n      </div>\n    </phantom-ui>\n  );\n}\n```\n\n### Vue\n\n```vue\n<script setup lang=\"ts\">\nimport \"@aejkatappaja/phantom-ui\";\n\nconst props = defineProps<{ loading: boolean }>();\n</script>\n\n<template>\n  <phantom-ui :loading=\"props.loading\" animation=\"breathe\" stagger=\"0.05\">\n    <div class=\"card\">\n      <img src=\"/avatar.png\" class=\"avatar\" />\n      <h3>Ada Lovelace</h3>\n      <p>First computer programmer, probably.</p>\n    </div>\n  </phantom-ui>\n</template>\n```\n\n### Svelte\n\n```svelte\n<script lang=\"ts\">\n  import \"@aejkatappaja/phantom-ui\";\n\n  export let loading = true;\n</script>\n\n<phantom-ui {loading} reveal={0.4} stagger={0.03}>\n  <div class=\"card\">\n    <img src=\"/avatar.png\" alt=\"avatar\" class=\"avatar\" />\n    <h3>Ada Lovelace</h3>\n    <p>First computer programmer, probably.</p>\n  </div>\n</phantom-ui>\n```\n\n### Angular\n\n```typescript\nimport { Component, signal, CUSTOM_ELEMENTS_SCHEMA } from \"@angular/core\";\nimport \"@aejkatappaja/phantom-ui\";\n\n@Component({\n  selector: \"app-profile\",\n  schemas: [CUSTOM_ELEMENTS_SCHEMA],\n  template: `\n    <phantom-ui [attr.loading]=\"loading() ? '' : null\" animation=\"pulse\">\n      <div class=\"card\">\n        <img src=\"/avatar.png\" class=\"avatar\" />\n        <h3>Ada Lovelace</h3>\n        <p>First computer programmer, probably.</p>\n      </div>\n    </phantom-ui>\n  `,\n})\nexport class ProfileComponent {\n  loading = signal(true);\n}\n```\n\n### Solid\n\n```tsx\nimport { createSignal } from \"solid-js\";\nimport \"@aejkatappaja/phantom-ui\";\n\nfunction ProfileCard() {\n  const [loading, setLoading] = createSignal(true);\n\n  return (\n    <phantom-ui attr:loading={loading() ? \"\" : null} animation=\"shimmer\" stagger={0.05}>\n      <div class=\"card\">\n        <img src=\"/avatar.png\" class=\"avatar\" />\n        <h3>Ada Lovelace</h3>\n        <p>First computer programmer, probably.</p>\n      </div>\n    </phantom-ui>\n  );\n}\n```\n\n### SSR frameworks (Next.js, Nuxt, SvelteKit, Remix, Qwik)\n\nThe component needs browser APIs to measure the DOM. Import it client-side only:\n\n```tsx\n// Next.js\n\"use client\";\nimport { useEffect } from \"react\";\n\nexport default function Page() {\n  useEffect(() => { import(\"@aejkatappaja/phantom-ui\"); }, []);\n  return <phantom-ui loading>...</phantom-ui>;\n}\n```\n\n```vue\n<!-- Nuxt -->\n<script setup>\nonMounted(() => import(\"@aejkatappaja/phantom-ui\"));\n</script>\n\n<template>\n  <ClientOnly>\n    <phantom-ui loading>...</phantom-ui>\n  </ClientOnly>\n</template>\n```\n\n```svelte\n<!-- SvelteKit -->\n<script>\n  import { onMount } from \"svelte\";\n  onMount(() => import(\"@aejkatappaja/phantom-ui\"));\n</script>\n```\n\n```tsx\n// Qwik\nimport { component$, useVisibleTask$ } from \"@builder.io/qwik\";\n\nexport default component$(() => {\n  // eslint-disable-next-line qwik/no-use-visible-task\n  useVisibleTask$(async () => {\n    import(\"@aejkatappaja/phantom-ui\");\n  });\n\n  return <phantom-ui loading>...</phantom-ui>;\n});\n```\n\nThe `<phantom-ui>` tag can exist in server-rendered HTML. The browser treats it as an unknown element until hydration, then the Web Component activates and measures the DOM. Content renders normally on the server, which is good for SEO.\n\n#### Pre-hydration CSS\n\nBefore JavaScript loads, content inside `<phantom-ui loading>` can briefly flash as visible text. The package ships a small CSS file that hides this content immediately, with no JS needed:\n\n```css\nimport \"@aejkatappaja/phantom-ui/ssr.css\";\n```\n\nRunning `npx @aejkatappaja/phantom-ui init` detects SSR frameworks and adds this import to your layout file (e.g. `app/layout.tsx` for Next.js, `app.vue` for Nuxt, `+layout.svelte` for SvelteKit). Or add the line yourself. If you use the CDN build, add the rules directly in your `<head>`:\n\n```html\n<style>\n  phantom-ui[loading] * {\n    -webkit-text-fill-color: transparent !important;\n    pointer-events: none;\n    user-select: none;\n  }\n  phantom-ui[loading] img, phantom-ui[loading] svg,\n  phantom-ui[loading] video, phantom-ui[loading] canvas,\n  phantom-ui[loading] button, phantom-ui[loading] [role=\"button\"] {\n    opacity: 0 !important;\n  }\n</style>\n```\n\n## Attributes\n\n| Attribute | Type | Default | Description |\n| --- | --- | --- | --- |\n| `loading` | `boolean` | `false` | Show shimmer overlay or real content |\n| `animation` | `string` | `shimmer` | Animation mode: `shimmer`, `pulse`, `breathe`, or `solid` |\n| `mode` | `string` | `skeleton` | `skeleton` (hide content, show blocks) or `overlay` (keep content dimmed, sweep light over it for refresh) |\n| `shimmer-direction` | `string` | `ltr` | Direction of the shimmer sweep: `ltr`, `rtl`, `ttb`, or `btt` (shimmer mode only) |\n| `shimmer-color` | `string` | `rgba(128,128,128,0.3)` | Color of the animated gradient sweep (shimmer mode only) |\n| `background-color` | `string` | `rgba(128,128,128,0.2)` | Background of each shimmer block (all modes) |\n| `duration` | `number` | `1.5` | Animation cycle in seconds |\n| `stagger` | `number` | `0` | Delay in seconds between each block's animation start |\n| `reveal` | `number` | `0` | Fade-out duration in seconds when loading ends |\n| `count` | `number` | `1` | Number of skeleton rows to repeat from a single template |\n| `count-gap` | `number` | `0` | Gap in pixels between repeated rows |\n| `fallback-radius` | `number` | `4` | Border radius (px) for flat elements like text |\n| `debug` | `boolean` | `false` | Outline each measured block with an index for inspection |\n| `loading-label` | `string` | `Loading` | Accessible label announced by screen readers while loading (set as `aria-label`) |\n| `pierce-shadow` | `boolean` | `false` | Measure inside open shadow roots of slotted components (Stencil, Lit design systems) |\n\n> Using a Web Component design system? See the [Shadow DOM guide](https://aejkatappaja.github.io/phantom-ui/guides/design-systems/) for how `pierce-shadow` measures inside your components.\n\n## Refresh mode (`mode=\"overlay\"`)\n\nThe default `skeleton` mode is for the first load: it hides the content and shows placeholder blocks. For a refresh / stale-while-revalidate state, where you already have a result and are refetching, use `mode=\"overlay\"`:\n\n```html\n<phantom-ui loading mode=\"overlay\">\n  <div class=\"grid\"><!-- the previous result --></div>\n</phantom-ui>\n```\n\nThe existing content stays visible and dimmed while a light glint sweeps over each element (structure-aware, just like the skeleton). It is not clickable during the refresh (`pointer-events: none`) so users cannot act on stale data, but it stays readable and in the accessibility tree (`aria-busy` announces the update). Dim it with `--phantom-content-opacity` (default `0.5`, set to `1` for full opacity with light only). `count` / `count-gap` do not apply here.\n\nThe sweep is the `shimmer` animation. With `pulse` or `breathe` the light is held as a steady veil over each element and animated by that mode instead, `solid` holds it static, and the same static veil is used when the system asks for reduced motion. The refresh stays visible in every case.\n\n## Fine-grained control\n\nData attributes let you control which elements get shimmer treatment and how they are measured:\n\n**`data-shimmer-ignore`** keeps an element and all its descendants visible and interactive during loading (never made `inert`). Useful for logos, brand marks, or live indicators that should always be shown.\n\n**`data-shimmer-no-children`** captures the element as one single shimmer block instead of recursing into its children. Useful for dense metric groups that should appear as a single placeholder.\n\n**`data-shimmer-width`** / **`data-shimmer-height`** override the measured dimensions (in pixels) of an element. Useful for dynamically sized elements that have no dimensions yet when the skeleton is generated (e.g. images without explicit `width`/`height`, containers filled by JS). Elements with zero dimensions are normally skipped. These attributes let you force a skeleton block.\n\n```html\n<phantom-ui loading>\n  <div class=\"dashboard\">\n    <div class=\"logo\" data-shimmer-ignore>ACME</div>\n    <div class=\"kpi-row\" data-shimmer-no-children>\n      <span>$48.2k</span>\n      <span>2,847 users</span>\n      <span>42ms p99</span>\n    </div>\n    <img src=\"/hero.jpg\" data-shimmer-width=\"600\" data-shimmer-height=\"400\" />\n    <div class=\"content\">\n      <p>Each leaf element here gets its own shimmer block.</p>\n    </div>\n  </div>\n</phantom-ui>\n```\n\n## Repeat mode\n\nWhen loading a dynamic list or table, you often don't have the data yet to render N rows. The `count` attribute lets you define a single template element and generate multiple skeleton rows from it:\n\n```html\n<phantom-ui loading count=\"5\" count-gap=\"8\">\n  <div class=\"user-row\">\n    <img src=\"avatar.png\" width=\"32\" height=\"32\" />\n    <span>John Doe</span>\n    <span>john@acme.io</span>\n  </div>\n</phantom-ui>\n```\n\nThe component measures the template once, then duplicates the skeleton blocks vertically for each count. `count-gap` adds spacing (in pixels) between repeated rows. When `loading` is removed, only the real template element is shown.\n\nThis is useful with framework loops where the list is empty before data loads:\n\n```tsx\n// React\n<phantom-ui loading={!users} count={5} count-gap={8}>\n  <div class=\"row-template\">\n    <img src=\"/placeholder.png\" width=\"32\" height=\"32\" />\n    <span>Placeholder Name</span>\n    <span>placeholder@email.com</span>\n  </div>\n</phantom-ui>\n```\n\n## How it works\n\n1. Your real content is rendered in the DOM with `color: transparent` and media elements hidden. Icons drawn with CSS `mask-image` (including on `::before` / `::after`) are detected at runtime and hidden too. Container backgrounds and borders stay visible, preserving the natural card/section outline.\n\n2. The component walks the DOM tree and identifies \"leaf\" elements: text nodes, images, buttons, inputs, and anything without child elements. Container divs are recursed into, not captured.\n\n3. Each leaf element is measured with `getBoundingClientRect()` relative to the host. Border radius is read from `getComputedStyle()`. Table cells get special handling to measure actual text width, not cell width.\n\n4. An absolutely-positioned overlay renders one shimmer block per measured element, with a CSS gradient animation sweeping across each block.\n\n5. A `ResizeObserver`, `MutationObserver`, and media `load` listener re-measure automatically when the layout changes (window resize, content injection, DOM mutations, or images/videos finishing loading). With `pierce-shadow`, the pierced shadow roots are watched as well.\n\n6. When `loading` is removed, the overlay is destroyed and real content is revealed. `aria-busy` is set automatically on the host element to communicate loading state to assistive technologies, and the placeholder content is made `inert` while loading so it stays out of the tab order and the accessibility tree (elements marked `data-shimmer-ignore` stay interactive).\n\n## Performance\n\nThe DOM measurement pipeline is fast. Benchmarked in Chrome:\n\n| Elements | Leaf nodes | Time |\n| --- | --- | --- |\n| 100 | 334 | ~20ms |\n| 500 | 1,667 | ~25ms |\n| 1,000 | 3,334 | ~31ms |\n\nEven with 1,000 elements (far more than a typical skeleton screen), the full measure → render cycle completes in a single frame. No debouncing or virtualization needed.\n\n## CSS custom properties\n\nYou can style the component from the outside using CSS custom properties instead of (or in addition to) attributes:\n\n```css\nphantom-ui {\n  --shimmer-color: rgba(100, 200, 255, 0.3);\n  --shimmer-duration: 2s;\n  --shimmer-bg: rgba(100, 200, 255, 0.08);\n}\n```\n\nFor live theming (e.g. a dark-mode toggle with no re-render), pass a `var()` reference through an attribute so it re-resolves on paint:\n\n```html\n<phantom-ui shimmer-color=\"var(--brand-shimmer)\" background-color=\"var(--brand-bg)\">\n```\n\n## Custom Elements Manifest\n\nThe package ships a `custom-elements.json` manifest, which gives IDE autocomplete, Storybook autodocs, and framework tooling the full picture of attributes, properties, slots, and types.\n\n## Bundle size\n\nThe CDN build (Lit included) is ~34kb / ~11.5kb gzipped.\n\nWhen used as an ES module with a bundler, Lit is likely already in your dependency tree, bringing the component cost down to under 2kb.\n\n## Development\n\n```bash\nbun install\nbun run storybook       # dev server on :6006\nbun run build           # tsc + custom elements manifest + CDN bundle\nbun run lint            # biome check\nbun run lint:fix        # biome auto-fix\nbun run test            # browser tests (Chromium)\nbun run test:all        # browser tests (Chromium + Firefox + WebKit)\nbun run playground      # local server to test the component\n```\n\nThe `examples/` directory contains test apps for React, Vue, Solid, Angular, and Qwik, each wired to the local package.\n\n## Contributing\n\nBug reports, feature requests, and PRs welcome. Read the [contributing guide](./CONTRIBUTING.md) and [code of conduct](./CODE_OF_CONDUCT.md) before opening a PR.\n\nFor security vulnerabilities, see the [security policy](./SECURITY.md).\n\n## Acknowledgements\n\nThe DOM-measurement overlay technique builds on prior art from [page-skeleton-webpack-plugin](https://github.com/ElemeFE/page-skeleton-webpack-plugin) (2018) and [@findify/skeleton-generator](https://github.com/findify/skeleton-generator) (~2019). phantom-ui reimagines this concept as a single universal Web Component instead of framework-specific adapters.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}