{"_id":"@_apparatus_/load-tools","_rev":"13-fdddb7619f62917851ff8fff27adb8e3","name":"@_apparatus_/load-tools","dist-tags":{"latest":"2.1.2"},"versions":{"1.0.0":{"name":"@_apparatus_/load-tools","version":"1.0.0","keywords":["loading","overlay","skeleton","skeletons","solid-js","util"],"author":{"name":"Pedro Henrique","email":"pedro00dk@gmail.com"},"license":"MIT","_id":"@_apparatus_/load-tools@1.0.0","maintainers":[{"name":"pedro00dk","email":"pedro00dk@gmail.com"}],"homepage":"https://github.com/pedro00dk/load-tools#readme","bugs":{"url":"https://github.com/pedro00dk/load-tools/issues"},"dist":{"shasum":"d8feba91012be01d10897fd8c29db85c20c6bd63","tarball":"https://registry.npmjs.org/@_apparatus_/load-tools/-/load-tools-1.0.0.tgz","fileCount":8,"integrity":"sha512-vHvHRWS+0pwHcLk3FakFjkQRvpLXmmXZwWfposiysSj0EzaleDDboEyl22PtOfLjfr+ebXgWq1ZOtYPrOVI7EQ==","signatures":[{"sig":"MEUCIDbLBr6tCT3z4Ox6wZrd0/sHpYmwywrPvH8h/lk6F8WVAiEAt5JLc4jkPXNkUOJsRWZ5wCrDR1PDeY/cHecsr1PW0rk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18209},"type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./solid":{"types":"./dist/solid.d.ts","import":"./dist/solid.js"}},"gitHead":"52c93cb956271a1161cc73993c4f1b44b4453fdb","scripts":{"test":"node --test ./**/*.test.*","build":"vite build && tsc"},"_npmUser":{"name":"pedro00dk","email":"pedro00dk@gmail.com"},"overrides":{"vite":"7.0.6"},"repository":{"url":"git+https://github.com/pedro00dk/load-tools.git","type":"git"},"_npmVersion":"11.4.2","description":"Easily create loading skeletons and overlays that adapt to content at runtime.","directories":{},"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"devDependencies":{"vite":"7.0.6","type-fest":"4.41.0","typescript":"5.8.3","@types/node":"24.1.0","vite-plugin-solid":"2.11.7"},"peerDependencies":{"solid-js":"^1.9.0"},"peerDependenciesMeta":{"solid-js":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/load-tools_1.0.0_1753472104904_0.6170094102164743","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@_apparatus_/load-tools","version":"1.0.2","keywords":["loading","overlay","skeleton","skeletons","solid-js","util"],"author":{"name":"Pedro Henrique","email":"pedro00dk@gmail.com"},"license":"MIT","_id":"@_apparatus_/load-tools@1.0.2","maintainers":[{"name":"pedro00dk","email":"pedro00dk@gmail.com"}],"homepage":"https://github.com/pedro00dk/apparatus-load-tools#readme","bugs":{"url":"https://github.com/pedro00dk/apparatus-load-tools/issues"},"dist":{"shasum":"7ad47455b547660cf9094be396ab060b2cd92640","tarball":"https://registry.npmjs.org/@_apparatus_/load-tools/-/load-tools-1.0.2.tgz","fileCount":13,"integrity":"sha512-DcX/KngSlBrEDyd9lBFasmWPmVTX0UaM1c2i5alyGpgZS6lpZCVX7hSFN8qH7GlhlfnidTqO2ZfTwwZ9hSwUMw==","signatures":[{"sig":"MEYCIQCZCzRS1osPcXMkH8fChCBV5IyHmKaaEj8uEEO0aa92oQIhANWi8J3hsllwJzNjLz9W3FS2dJXMdBxsrRM37xhMAo/G","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@_apparatus_%2fload-tools@1.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31645},"type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./solid":{"types":"./dist/solid.d.ts","import":"./dist/solid.js"}},"gitHead":"998e32843a4c5ed72e8c741bf756002833093aa7","scripts":{"test":"node --test ./**/*.test.*","build":"vite build && tsc"},"_npmUser":{"name":"pedro00dk","email":"pedro00dk@gmail.com"},"overrides":{"vite":"7.0.6"},"repository":{"url":"git+https://github.com/pedro00dk/apparatus-load-tools.git","type":"git"},"_npmVersion":"11.4.2","description":"Easily create loading skeletons and overlays that adapt to content at runtime.","directories":{},"_nodeVersion":"24.4.1","_hasShrinkwrap":false,"devDependencies":{"vite":"7.0.6","type-fest":"4.41.0","typescript":"5.8.3","@types/node":"24.1.0","vite-plugin-solid":"2.11.7"},"peerDependencies":{"solid-js":"^1.9.0"},"peerDependenciesMeta":{"solid-js":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/load-tools_1.0.2_1753473392980_0.20054201158053409","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@_apparatus_/load-tools","version":"1.0.4","keywords":["loading","overlay","skeleton","skeletons","solid-js","util"],"author":{"name":"Pedro Henrique","email":"pedro00dk@gmail.com"},"license":"MIT","_id":"@_apparatus_/load-tools@1.0.4","maintainers":[{"name":"pedro00dk","email":"pedro00dk@gmail.com"}],"homepage":"https://github.com/pedro00dk/apparatus-load-tools#readme","bugs":{"url":"https://github.com/pedro00dk/apparatus-load-tools/issues"},"dist":{"shasum":"4bd455f29463f9005a5fca930e93eb7111cdc3df","tarball":"https://registry.npmjs.org/@_apparatus_/load-tools/-/load-tools-1.0.4.tgz","fileCount":16,"integrity":"sha512-WpL+p+MdSDsQtWl43DcqCycjPHVg0ycSGNkAPhKbhrPwKRF4DRwRNxFpuT00BQJKUKxMj5DsJeB5EMLnOL1Hig==","signatures":[{"sig":"MEUCIGtgej4PvBdCBw3KE/WIACXtGR5koHPBq+5XvHNs4JTNAiEAkrRmUssxPfjw2lvbUEh2oOvaacp9t0Lo9uEOQ0p3Oic=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@_apparatus_%2fload-tools@1.0.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":32948},"type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./solid":{"types":"./dist/solid.d.ts","import":"./dist/solid.js"}},"gitHead":"3dc43e90090dbf82ff1be35d47daae0938f24724","scripts":{"test":"node --test ./**/*.test.*","build":"vite build && tsc"},"_npmUser":{"name":"pedro00dk","email":"pedro00dk@gmail.com"},"overrides":{"vite":"7.0.6"},"repository":{"url":"git+https://github.com/pedro00dk/apparatus-load-tools.git","type":"git"},"_npmVersion":"11.4.2","description":"Easily create loading skeletons and overlays that adapt to content at runtime.","directories":{},"_nodeVersion":"24.4.1","_hasShrinkwrap":false,"devDependencies":{"vite":"7.0.6","type-fest":"4.41.0","typescript":"5.8.3","@types/node":"24.1.0","vite-plugin-solid":"2.11.7"},"peerDependencies":{"solid-js":"^1.9.0"},"peerDependenciesMeta":{"solid-js":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/load-tools_1.0.4_1753474864056_0.38940421289850247","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@_apparatus_/load-tools","version":"1.0.5","keywords":["loading","overlay","skeleton","skeletons","solid-js","util"],"author":{"name":"Pedro Henrique","email":"pedro00dk@gmail.com"},"license":"MIT","_id":"@_apparatus_/load-tools@1.0.5","maintainers":[{"name":"pedro00dk","email":"pedro00dk@gmail.com"}],"homepage":"https://github.com/pedro00dk/apparatus-load-tools#readme","bugs":{"url":"https://github.com/pedro00dk/apparatus-load-tools/issues"},"dist":{"shasum":"7040c5980cd7ab3977f15e08844b22f8ecda7eee","tarball":"https://registry.npmjs.org/@_apparatus_/load-tools/-/load-tools-1.0.5.tgz","fileCount":16,"integrity":"sha512-QNEc0e3pUh9exHgyUIpMnUg5pWZj3KTUiCoezw50z/46xLjKCOqRdXJk1XoAL/pFJ4ref62XaZrnOJYSc1Qviw==","signatures":[{"sig":"MEYCIQCq+Vv1l62HKPEcV9t3E2mWjJZ0aZaIqlS1NJUM5Q0UGwIhAK26pq6xCa9a/OCzsNfQTZ5LthHgRKGdKhPCZHlonUPk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@_apparatus_%2fload-tools@1.0.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":33322},"type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./solid":{"types":"./dist/solid.d.ts","import":"./dist/solid.js"}},"gitHead":"8d1c269147c52cdaad3ab9cffeea2a130342750c","scripts":{"test":"node --test ./**/*.test.*","build":"vite build && tsc"},"_npmUser":{"name":"pedro00dk","email":"pedro00dk@gmail.com"},"overrides":{"vite":"7.0.6"},"repository":{"url":"git+https://github.com/pedro00dk/apparatus-load-tools.git","type":"git"},"_npmVersion":"11.4.2","description":"Easily create loading skeletons and overlays that adapt to content at runtime.","directories":{},"_nodeVersion":"24.4.1","_hasShrinkwrap":false,"devDependencies":{"vite":"7.0.6","type-fest":"4.41.0","typescript":"5.8.3","@types/node":"24.1.0","vite-plugin-solid":"2.11.7"},"peerDependencies":{"solid-js":"^1.9.0"},"peerDependenciesMeta":{"solid-js":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/load-tools_1.0.5_1753476523807_0.03846613584282177","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@_apparatus_/load-tools","version":"1.1.0","keywords":["loading","overlay","skeleton","skeletons","solid-js","util"],"author":{"name":"Pedro Henrique","email":"pedro00dk@gmail.com"},"license":"MIT","_id":"@_apparatus_/load-tools@1.1.0","maintainers":[{"name":"pedro00dk","email":"pedro00dk@gmail.com"}],"homepage":"https://github.com/pedro00dk/apparatus-load-tools#readme","bugs":{"url":"https://github.com/pedro00dk/apparatus-load-tools/issues"},"dist":{"shasum":"cf53d155f1070ce7430671c67f279496081c45ba","tarball":"https://registry.npmjs.org/@_apparatus_/load-tools/-/load-tools-1.1.0.tgz","fileCount":17,"integrity":"sha512-1Q+fsDrz9G25PtzkpBTO2B8okKdO8ImkFsTwM8cBRSWEvtpo4NGo7eC6VYqCWkF8XJYz+u0qGjIh0CMKR529Mg==","signatures":[{"sig":"MEQCIHjr3j2Vr0SgZX4u4DO1LYdwdgLr6Pp9i0R6t8IWJkqIAiBRIzcnKseR07sl6mlAEIjgxtIslSetWE7kdwR5LkQa4A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@_apparatus_%2fload-tools@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":46773},"type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./solid":{"types":"./dist/solid.d.ts","import":"./dist/solid.js"}},"gitHead":"1b22e1f06ac60439984cd3ed1cba1daa569b85b5","scripts":{"test":"node --test ./**/*.test.*","build":"vite build && tsc"},"_npmUser":{"name":"pedro00dk","email":"pedro00dk@gmail.com"},"overrides":{"vite":"7.0.6"},"repository":{"url":"git+https://github.com/pedro00dk/apparatus-load-tools.git","type":"git"},"_npmVersion":"11.4.2","description":"Easily create loading skeletons and overlays that adapt to content at runtime.","directories":{},"_nodeVersion":"24.4.1","_hasShrinkwrap":false,"devDependencies":{"vite":"7.0.6","type-fest":"4.41.0","typescript":"5.8.3","@types/node":"24.1.0","vite-plugin-solid":"2.11.7"},"peerDependencies":{"solid-js":"^1.9.0"},"peerDependenciesMeta":{"solid-js":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/load-tools_1.1.0_1753721803362_0.023745481214874298","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@_apparatus_/load-tools","version":"1.1.1","keywords":["loading","overlay","skeleton","skeletons","solid-js","util"],"author":{"name":"Pedro Henrique","email":"pedro00dk@gmail.com"},"license":"MIT","_id":"@_apparatus_/load-tools@1.1.1","maintainers":[{"name":"pedro00dk","email":"pedro00dk@gmail.com"}],"homepage":"https://github.com/pedro00dk/apparatus-load-tools#readme","bugs":{"url":"https://github.com/pedro00dk/apparatus-load-tools/issues"},"dist":{"shasum":"27004712d066bb07681825fda5074c3c742cfc1c","tarball":"https://registry.npmjs.org/@_apparatus_/load-tools/-/load-tools-1.1.1.tgz","fileCount":17,"integrity":"sha512-556tHqmDYUSFozYm644Mc7bSEnEMHtcaWbTGvcvpO3bqpi+3mopEgRpqg73s6oYaM6wb6U62TE6grQTD22jS9g==","signatures":[{"sig":"MEUCIDX6sSopzIPQcc7HfUf85KXwuySE2Mv/z9t8G0C9e1oEAiEAtwOdFAo2kzsnB3Mvep68zVRPYB2zl+PRJ1qCU5NJ/UQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@_apparatus_%2fload-tools@1.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":46751},"type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./solid":{"types":"./dist/solid.d.ts","import":"./dist/solid.js"}},"gitHead":"83ec5a6057adfe3799abede9da30fd7df7de6033","scripts":{"test":"node --test ./**/*.test.*","build":"vite build && tsc"},"_npmUser":{"name":"pedro00dk","email":"pedro00dk@gmail.com"},"overrides":{"vite":"7.0.6"},"repository":{"url":"git+https://github.com/pedro00dk/apparatus-load-tools.git","type":"git"},"_npmVersion":"11.5.1","description":"Easily create loading skeletons and overlays that adapt to content at runtime.","directories":{},"_nodeVersion":"24.7.0","_hasShrinkwrap":false,"devDependencies":{"vite":"7.0.6","type-fest":"4.41.0","typescript":"5.8.3","@types/node":"24.1.0","vite-plugin-solid":"2.11.7"},"peerDependencies":{"solid-js":"^1.9.0"},"peerDependenciesMeta":{"solid-js":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/load-tools_1.1.1_1756863111936_0.3857367814508299","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@_apparatus_/load-tools","version":"2.0.0","keywords":["loading","overlay","skeleton","skeletons","solid-js","util"],"author":{"name":"Pedro Henrique","email":"pedro00dk@gmail.com"},"license":"MIT","_id":"@_apparatus_/load-tools@2.0.0","maintainers":[{"name":"pedro00dk","email":"pedro00dk@gmail.com"}],"homepage":"https://github.com/pedro00dk/apparatus-load-tools#readme","bugs":{"url":"https://github.com/pedro00dk/apparatus-load-tools/issues"},"dist":{"shasum":"da2024f6a21dd2548574c20ce043643631d09654","tarball":"https://registry.npmjs.org/@_apparatus_/load-tools/-/load-tools-2.0.0.tgz","fileCount":17,"integrity":"sha512-Q9z1F4OIghJ09TduO1et8CjS9Ai/zeIuHNxA1Kz32LEPWCleHjDWe9agbf/n9qYKiuG31ZrKrkbwTIkjGJKSJA==","signatures":[{"sig":"MEYCIQCWi5qs3iwvwsYWgQrJ9OgdnZTUoWNJYizC7gOYXPOOfgIhAKGOcltMHSprASCVMB0TVKb9JMXO1VyGHXfITvuToKTK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@_apparatus_%2fload-tools@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":60077},"type":"module","_from":"file:_apparatus_-load-tools-2.0.0.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./solid":{"types":"./dist/solid.d.ts","import":"./dist/solid.js"}},"scripts":{"test":"node --test ./**/*.test.*","build":"vite build && tsc"},"_npmUser":{"name":"pedro00dk","email":"pedro00dk@gmail.com"},"_resolved":"/tmp/2f44927cfa0375588b113b167ff7c7e9/_apparatus_-load-tools-2.0.0.tgz","_integrity":"sha512-Q9z1F4OIghJ09TduO1et8CjS9Ai/zeIuHNxA1Kz32LEPWCleHjDWe9agbf/n9qYKiuG31ZrKrkbwTIkjGJKSJA==","repository":{"url":"git+https://github.com/pedro00dk/apparatus-load-tools.git","type":"git"},"_npmVersion":"11.6.1","description":"Easily create loading skeletons and overlays that adapt to content at runtime.","directories":{},"_nodeVersion":"24.11.0","_hasShrinkwrap":false,"devDependencies":{"vite":"7.2.2","type-fest":"5.2.0","typescript":"5.9.3","@types/node":"24.10.0","vite-plugin-solid":"2.11.10"},"peerDependencies":{"solid-js":"^1.9.0"},"peerDependenciesMeta":{"solid-js":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/load-tools_2.0.0_1762680529930_0.6175389120156993","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@_apparatus_/load-tools","version":"2.0.1","keywords":["loading","overlay","skeleton","skeletons","solid-js","util"],"author":{"name":"Pedro Henrique","email":"pedro00dk@gmail.com"},"license":"MIT","_id":"@_apparatus_/load-tools@2.0.1","maintainers":[{"name":"pedro00dk","email":"pedro00dk@gmail.com"}],"homepage":"https://github.com/pedro00dk/apparatus-load-tools#readme","bugs":{"url":"https://github.com/pedro00dk/apparatus-load-tools/issues"},"dist":{"shasum":"9df1493428962fd4b3f555e9c9ee6b10683db4ee","tarball":"https://registry.npmjs.org/@_apparatus_/load-tools/-/load-tools-2.0.1.tgz","fileCount":17,"integrity":"sha512-ex1eAkdOANyO1ZdyYSnh3WbZN47vO8bnx6z1GiwU0Gx0usJOJ3vqYqKrkQKhkZoDKM6U/CAMtycZajiSd0NSTg==","signatures":[{"sig":"MEYCIQDuzjqp6G9SRkr1UKxTQNN20ouCHnwsrwXEvf2g6bnoZAIhAOQ++xOPUepSp0keymmVYcrzC0vVf1e9432aOOpFc1Af","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@_apparatus_%2fload-tools@2.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":61092},"type":"module","_from":"file:_apparatus_-load-tools-2.0.1.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./solid":{"types":"./dist/solid.d.ts","import":"./dist/solid.js"}},"scripts":{"test":"node --test ./**/*.test.*","build":"vite build && tsc"},"_npmUser":{"name":"pedro00dk","email":"pedro00dk@gmail.com"},"_resolved":"/tmp/354a2f1f012002e33b699b9848198739/_apparatus_-load-tools-2.0.1.tgz","_integrity":"sha512-ex1eAkdOANyO1ZdyYSnh3WbZN47vO8bnx6z1GiwU0Gx0usJOJ3vqYqKrkQKhkZoDKM6U/CAMtycZajiSd0NSTg==","repository":{"url":"git+https://github.com/pedro00dk/apparatus-load-tools.git","type":"git"},"_npmVersion":"11.6.2","description":"Easily create loading skeletons and overlays that adapt to content at runtime.","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"vite":"7.2.2","type-fest":"5.2.0","typescript":"5.9.3","@types/node":"24.10.0","vite-plugin-solid":"2.11.10"},"peerDependencies":{"solid-js":"^1.9.0"},"peerDependenciesMeta":{"solid-js":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/load-tools_2.0.1_1763087327311_0.9209651070544831","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@_apparatus_/load-tools","version":"2.0.2","keywords":["loading","overlay","skeleton","skeletons","solid-js","util"],"author":{"name":"Pedro Henrique","email":"pedro00dk@gmail.com"},"license":"MIT","_id":"@_apparatus_/load-tools@2.0.2","maintainers":[{"name":"pedro00dk","email":"pedro00dk@gmail.com"}],"homepage":"https://github.com/pedro00dk/apparatus-load-tools#readme","bugs":{"url":"https://github.com/pedro00dk/apparatus-load-tools/issues"},"dist":{"shasum":"8f26677230b2922166cbbc609eae9d9f216ec7db","tarball":"https://registry.npmjs.org/@_apparatus_/load-tools/-/load-tools-2.0.2.tgz","fileCount":17,"integrity":"sha512-JeQxrfLsAz9rtUL5xi5cal7kBV9ste7UzhDycHaJx7E34xBppGESDPuICdjsSaRfwjB27plny2Ugq+S/KwzO9w==","signatures":[{"sig":"MEQCIBq13Oz+rMwXIEUGOkLFekkejef6p5lp7DbEAKukBlwoAiA4ZOKb8J9XA3jruC2W6A2OCeAaEDt+Jnt9D1bFuVNdXQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@_apparatus_%2fload-tools@2.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":60722},"type":"module","_from":"file:_apparatus_-load-tools-2.0.2.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./solid":{"types":"./dist/solid.d.ts","import":"./dist/solid.js"}},"scripts":{"test":"node --test ./**/*.test.*","build":"vite build && tsc"},"_npmUser":{"name":"pedro00dk","email":"pedro00dk@gmail.com"},"_resolved":"/tmp/6052831aca58094feb5d955d99f2f1ad/_apparatus_-load-tools-2.0.2.tgz","_integrity":"sha512-JeQxrfLsAz9rtUL5xi5cal7kBV9ste7UzhDycHaJx7E34xBppGESDPuICdjsSaRfwjB27plny2Ugq+S/KwzO9w==","repository":{"url":"git+https://github.com/pedro00dk/apparatus-load-tools.git","type":"git"},"_npmVersion":"11.6.2","description":"Easily create loading skeletons and overlays that adapt to content at runtime.","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"vite":"7.2.2","type-fest":"5.2.0","typescript":"5.9.3","@types/node":"24.10.0","vite-plugin-solid":"2.11.10"},"peerDependencies":{"solid-js":"^1.9.0"},"peerDependenciesMeta":{"solid-js":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/load-tools_2.0.2_1763091038799_0.00031734338241173887","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"@_apparatus_/load-tools","version":"2.0.3","keywords":["loading","overlay","skeleton","skeletons","solid-js","util"],"author":{"name":"Pedro Henrique","email":"pedro00dk@gmail.com"},"license":"MIT","_id":"@_apparatus_/load-tools@2.0.3","maintainers":[{"name":"pedro00dk","email":"pedro00dk@gmail.com"}],"homepage":"https://github.com/pedro00dk/apparatus-load-tools#readme","bugs":{"url":"https://github.com/pedro00dk/apparatus-load-tools/issues"},"dist":{"shasum":"e56626372b16262ae6115bbf4263ab8898966168","tarball":"https://registry.npmjs.org/@_apparatus_/load-tools/-/load-tools-2.0.3.tgz","fileCount":17,"integrity":"sha512-vWzi0HmHiB2JOIlrEGVl/NWpf6Zewjh/Cxa8WhSmErrkiqNRf2VxWbGACsDkCgDbpTZY643erVuTViO6RkCcMw==","signatures":[{"sig":"MEUCIQDtRwa+6mL6NIxKZQUgCPrL8FdhK5SYZi6zujbQtp8s9AIgLPopICH+rVl1B7xezaQNhhCBrim1KZCL3pAAGJwFEBw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@_apparatus_%2fload-tools@2.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":60821},"type":"module","_from":"file:_apparatus_-load-tools-2.0.3.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./solid":{"types":"./dist/solid.d.ts","import":"./dist/solid.js"}},"scripts":{"test":"node --test ./**/*.test.*","build":"vite build && tsc"},"_npmUser":{"name":"pedro00dk","email":"pedro00dk@gmail.com"},"_resolved":"/tmp/774eb002a669cfe9ef29cb71f6bf99af/_apparatus_-load-tools-2.0.3.tgz","_integrity":"sha512-vWzi0HmHiB2JOIlrEGVl/NWpf6Zewjh/Cxa8WhSmErrkiqNRf2VxWbGACsDkCgDbpTZY643erVuTViO6RkCcMw==","repository":{"url":"git+https://github.com/pedro00dk/apparatus-load-tools.git","type":"git"},"_npmVersion":"11.6.1","description":"Easily create loading skeletons and overlays that adapt to content at runtime.","directories":{},"_nodeVersion":"24.11.0","_hasShrinkwrap":false,"devDependencies":{"vite":"7.2.2","type-fest":"5.2.0","typescript":"5.9.3","@types/node":"24.10.0","vite-plugin-solid":"2.11.10"},"peerDependencies":{"solid-js":"^1.9.0"},"peerDependenciesMeta":{"solid-js":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/load-tools_2.0.3_1763093859349_0.15193153196563802","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@_apparatus_/load-tools","version":"2.1.0","keywords":["loading","overlay","skeleton","skeletons","solid-js","util"],"author":{"name":"Pedro Henrique","email":"pedro00dk@gmail.com"},"license":"MIT","_id":"@_apparatus_/load-tools@2.1.0","maintainers":[{"name":"pedro00dk","email":"pedro00dk@gmail.com"}],"homepage":"https://github.com/pedro00dk/apparatus-load-tools#readme","bugs":{"url":"https://github.com/pedro00dk/apparatus-load-tools/issues"},"dist":{"shasum":"7b3636c4e72a20d6b6ecda2a2cb8580b069cc430","tarball":"https://registry.npmjs.org/@_apparatus_/load-tools/-/load-tools-2.1.0.tgz","fileCount":17,"integrity":"sha512-Go99PfSew3HxRYR7+bmynm03bB/o7cA1tb3dWETXklebb72qnW/iqKfhQ14D4/fbdD8a8AM3Wx/fXCONt+UFyQ==","signatures":[{"sig":"MEUCIQCCv56uOUOKE+1M0xNx5rUCgveGUE9cFqnzxwu+k91UKwIgBgA6Aq3fvXaCZSjafX3dUPKJiE0Rl7y9bi8HrmkiXYk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@_apparatus_%2fload-tools@2.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":62920},"type":"module","_from":"file:_apparatus_-load-tools-2.1.0.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./solid":{"types":"./dist/solid.d.ts","import":"./dist/solid.js"}},"scripts":{"test":"node --test ./**/*.test.*","build":"vite build && tsc"},"_npmUser":{"name":"pedro00dk","email":"pedro00dk@gmail.com"},"_resolved":"/tmp/794926be1cdda5587ebaa7120841e5a2/_apparatus_-load-tools-2.1.0.tgz","_integrity":"sha512-Go99PfSew3HxRYR7+bmynm03bB/o7cA1tb3dWETXklebb72qnW/iqKfhQ14D4/fbdD8a8AM3Wx/fXCONt+UFyQ==","repository":{"url":"git+https://github.com/pedro00dk/apparatus-load-tools.git","type":"git"},"_npmVersion":"11.6.2","description":"Easily create loading skeletons and overlays that adapt to content at runtime.","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"vite":"7.2.2","type-fest":"5.2.0","typescript":"5.9.3","@types/node":"24.10.0","vite-plugin-solid":"2.11.10"},"peerDependencies":{"solid-js":"^1.9.0"},"peerDependenciesMeta":{"solid-js":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/load-tools_2.1.0_1763329907106_0.7828214313707433","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"@_apparatus_/load-tools","version":"2.1.1","keywords":["loading","overlay","skeleton","skeletons","solid-js","util"],"author":{"name":"Pedro Henrique","email":"pedro00dk@gmail.com"},"license":"MIT","_id":"@_apparatus_/load-tools@2.1.1","maintainers":[{"name":"pedro00dk","email":"pedro00dk@gmail.com"}],"homepage":"https://github.com/pedro00dk/apparatus-load-tools#readme","bugs":{"url":"https://github.com/pedro00dk/apparatus-load-tools/issues"},"dist":{"shasum":"8d40670408cec77daea692d7da0d834ec980b80b","tarball":"https://registry.npmjs.org/@_apparatus_/load-tools/-/load-tools-2.1.1.tgz","fileCount":17,"integrity":"sha512-hOs5+6uksvEsqhpBaYhSWaigVWKtc+KHor2QdvkPez1hBnPl5DWX0D76fn6gGHpVFf0ndJevyX0QraqRETphVA==","signatures":[{"sig":"MEUCIBIdRVn2S9RYZavnGX9I1XGuueFOskXRBuQPD83/hAttAiEAqIlgENMGx8VHAiQ3cOa6nXc9d1ENpW1RpKbXchKF5tA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@_apparatus_%2fload-tools@2.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":62059},"type":"module","_from":"file:_apparatus_-load-tools-2.1.1.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./solid":{"types":"./dist/solid.d.ts","import":"./dist/solid.js"}},"scripts":{"test":"node --test ./**/*.test.*","build":"vite build && tsc"},"_npmUser":{"name":"pedro00dk","email":"pedro00dk@gmail.com"},"_resolved":"/tmp/793370671e3fc952cbb5aa18646fdc0b/_apparatus_-load-tools-2.1.1.tgz","_integrity":"sha512-hOs5+6uksvEsqhpBaYhSWaigVWKtc+KHor2QdvkPez1hBnPl5DWX0D76fn6gGHpVFf0ndJevyX0QraqRETphVA==","repository":{"url":"git+https://github.com/pedro00dk/apparatus-load-tools.git","type":"git"},"_npmVersion":"11.6.2","description":"Easily create loading skeletons and overlays that adapt to content at runtime.","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"vite":"7.2.2","type-fest":"5.2.0","typescript":"5.9.3","@types/node":"24.10.0","vite-plugin-solid":"2.11.10"},"peerDependencies":{"solid-js":"^1.9.0"},"peerDependenciesMeta":{"solid-js":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/load-tools_2.1.1_1763344527585_0.6675491404304179","host":"s3://npm-registry-packages-npm-production"}},"2.1.2":{"name":"@_apparatus_/load-tools","description":"Easily create loading skeletons and overlays that adapt to content at runtime.","version":"2.1.2","type":"module","license":"MIT","repository":{"type":"git","url":"git+https://github.com/pedro00dk/apparatus-load-tools.git"},"author":{"name":"Pedro Henrique","email":"pedro00dk@gmail.com"},"keywords":["loading","overlay","skeleton","skeletons","solid-js","util"],"types":"dist/index.d.ts","exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"},"./solid":{"import":"./dist/solid.js","types":"./dist/solid.d.ts"}},"devDependencies":{"@types/node":"24.10.0","type-fest":"5.2.0","typescript":"5.9.3","vite":"7.2.2","vite-plugin-solid":"2.11.10"},"peerDependencies":{"solid-js":"^1.9.0"},"peerDependenciesMeta":{"solid-js":{"optional":true}},"scripts":{"build":"vite build && tsc","test":"node --test ./**/*.test.*"},"_id":"@_apparatus_/load-tools@2.1.2","bugs":{"url":"https://github.com/pedro00dk/apparatus-load-tools/issues"},"homepage":"https://github.com/pedro00dk/apparatus-load-tools#readme","_integrity":"sha512-rnmmap5VmlHKkNRvyRjrkDLH+r6l3lYXSNNIusjC9fe9oU/vH84av/QyIE4kzSwcE+7/o6qODThAzRd6SimdPQ==","_resolved":"/tmp/c82ffbb2fe0f79e57e10b8fbd47b7afe/_apparatus_-load-tools-2.1.2.tgz","_from":"file:_apparatus_-load-tools-2.1.2.tgz","_nodeVersion":"24.11.1","_npmVersion":"11.6.2","dist":{"integrity":"sha512-rnmmap5VmlHKkNRvyRjrkDLH+r6l3lYXSNNIusjC9fe9oU/vH84av/QyIE4kzSwcE+7/o6qODThAzRd6SimdPQ==","shasum":"6005b823887a7e21985edea2f3581445b4b02af6","tarball":"https://registry.npmjs.org/@_apparatus_/load-tools/-/load-tools-2.1.2.tgz","fileCount":17,"unpackedSize":62198,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@_apparatus_%2fload-tools@2.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHbqIMHgelvSqkadaQEk0zovIAiGx8jPE19HyaRX01N/AiBVtFTqRc3ZI60lr8YlPHjp8NocjAzL7vBWskSjOqX6mA=="}]},"_npmUser":{"name":"pedro00dk","email":"pedro00dk@gmail.com"},"directories":{},"maintainers":[{"name":"pedro00dk","email":"pedro00dk@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/load-tools_2.1.2_1763353153992_0.3609795372904212"},"_hasShrinkwrap":false}},"time":{"created":"2025-07-25T19:35:04.846Z","modified":"2025-11-17T04:19:14.664Z","1.0.0":"2025-07-25T19:35:05.150Z","1.0.2":"2025-07-25T19:56:33.171Z","1.0.4":"2025-07-25T20:21:04.250Z","1.0.5":"2025-07-25T20:48:44.047Z","1.1.0":"2025-07-28T16:56:43.569Z","1.1.1":"2025-09-03T01:31:52.126Z","2.0.0":"2025-11-09T09:28:50.169Z","2.0.1":"2025-11-14T02:28:47.523Z","2.0.2":"2025-11-14T03:30:38.974Z","2.0.3":"2025-11-14T04:17:39.554Z","2.1.0":"2025-11-16T21:51:47.313Z","2.1.1":"2025-11-17T01:55:27.777Z","2.1.2":"2025-11-17T04:19:14.206Z"},"bugs":{"url":"https://github.com/pedro00dk/apparatus-load-tools/issues"},"author":{"name":"Pedro Henrique","email":"pedro00dk@gmail.com"},"license":"MIT","homepage":"https://github.com/pedro00dk/apparatus-load-tools#readme","keywords":["loading","overlay","skeleton","skeletons","solid-js","util"],"repository":{"type":"git","url":"git+https://github.com/pedro00dk/apparatus-load-tools.git"},"description":"Easily create loading skeletons and overlays that adapt to content at runtime.","maintainers":[{"name":"pedro00dk","email":"pedro00dk@gmail.com"}],"readme":"# @\\_apparatus\\_/load-tools\n\n[![bundle size](https://deno.bundlejs.com/?q=@_apparatus_/load-tools&badge=detailed)](https://bundlejs.com/?q=@_apparatus_/load-tools)\n\nEasily create loading skeletons and overlays that adapt to content at runtime.\n\n## Installation\n\n```sh\nnpm install @_apparatus_/load-tools\n```\n\n## Features\n\n-   ⏱️ **Loading overlays** - Add spinners and loading indicators that cover content\n-   💀 **Runtime skeletons** - Generate skeletons at runtime that match your content layout\n-   🎯 **Data attributes** - Control behavior through simple HTML data attributes\n-   ⚛️ **Solid.js integration** - Ready-to-use components for reactive applications\n-   🔧 **Highly configurable** - Customize appearance, animations, and behavior\n\n## Examples\n\n### Basic Overlay Usage\n\n```ts\nimport { injectOverlay } from '@_apparatus_/load-tools'\n\nconst container = document.querySelector('#content')\n\n// Inject overlay functionality\nconst cleanup = injectOverlay(container)\n\n// Control via data attribute\ncontainer.dataset.ov = 'true' // Show overlay\ncontainer.dataset.ov = 'false' // Hide overlay\n\n// Cleanup when done\ncleanup()\n```\n\n### Overlay with HTML Data Attributes\n\n```html\n<div id=\"content\" data-ov=\"true\" data-ov-in=\"300\" data-ov-out=\"200\" data-ov-z=\"10\">\n    <!-- Your content here -->\n</div>\n\n<script>\n    import { injectOverlay } from '@_apparatus_/load-tools'\n\n    // The overlay will automatically respect the data attributes\n    const cleanup = injectOverlay(document.querySelector('#content'))\n</script>\n```\n\n### Overlay Configuration\n\n```ts\nimport { setOverlayConfiguration, injectOverlay } from '@_apparatus_/load-tools'\n\n// Customize default overlay appearance\nsetOverlayConfiguration({\n    defaults: {\n        ovIn: '400', // Fade in duration (ms)\n        ovOut: '300', // Fade out duration (ms)\n        ovZ: '100', // Z-index\n    },\n    factory: () => {\n        // Custom overlay element\n        const overlay = document.createElement('div')\n        overlay.style.background = 'rgba(0, 0, 0, 0.5)'\n        overlay.style.display = 'grid'\n        overlay.style.placeItems = 'center'\n\n        // Add custom spinner\n        const spinner = document.createElement('div')\n        spinner.className = 'custom-spinner'\n        overlay.appendChild(spinner)\n\n        return overlay\n    },\n})\n\nconst cleanup = injectOverlay(document.querySelector('#content'))\n```\n\n### Basic Skeleton Usage\n\n```ts\nimport { injectSkeleton } from '@_apparatus_/load-tools'\n\nconst container = document.querySelector('#content')\n\n// Inject skeleton functionality\nconst cleanup = injectSkeleton(container)\n\n// Control via data attribute\ncontainer.dataset.sk = 'true' // Show skeletons\ncontainer.dataset.sk = 'false' // Hide skeletons\n\n// Cleanup when done\ncleanup()\n```\n\n### Skeleton Types and Customization\n\n```html\n<!-- Different skeleton types -->\n<div data-sk=\"true\">\n    <!-- Text skeleton (auto-detected for text content) -->\n    <p>This text will have a skeleton overlay</p>\n\n    <!-- Rectangle skeleton -->\n    <div data-sk-t=\"rect\" style=\"width: 200px; height: 100px\"></div>\n\n    <!-- Pill skeleton (rounded ends) -->\n    <button data-sk-t=\"pill\">Button</button>\n\n    <!-- Round skeleton (for avatars, icons) -->\n    <img data-sk-t=\"round\" data-sk-r=\"xl\" src=\"avatar.jpg\" />\n\n    <!-- No skeleton for this element -->\n    <span data-sk-t=\"none\">Always visible</span>\n</div>\n\n<script>\n    import { injectSkeleton } from '@_apparatus_/load-tools'\n    injectSkeleton(document.querySelector('[data-sk]'))\n</script>\n```\n\n### Skeleton Transformations\n\n```html\n<div data-sk=\"true\">\n    <!-- Scale skeleton -->\n    <div data-sk-t=\"rect\" data-sk-sx=\"0.8\" data-sk-sy=\"0.5\">Content</div>\n\n    <!-- Translate skeleton position -->\n    <div data-sk-t=\"rect\" data-sk-tx=\"10px\" data-sk-ty=\"-5px\">Content</div>\n\n    <!-- Override dimensions -->\n    <div data-sk-t=\"rect\" data-sk-w=\"100%\" data-sk-h=\"50px\">Content</div>\n\n    <!-- Transform origin -->\n    <div data-sk-t=\"rect\" data-sk-o=\"top left\" data-sk-sx=\"0.5\">Content</div>\n</div>\n```\n\n### Skeleton Configuration\n\n```ts\nimport { setSkeletonConfiguration } from '@_apparatus_/load-tools'\n\n// Customize skeleton defaults and appearance\nsetSkeletonConfiguration({\n    defaults: {\n        skR: 'l', // Default roundness: xs, s, m, l, xl\n        skO: 'center', // Transform origin\n        skSx: '1', // Scale X\n        skSy: '1', // Scale Y\n    },\n    elements: {\n        // Custom defaults for specific elements\n        img: { skT: 'round', skR: 'xl' },\n        button: { skT: 'pill' },\n        input: { skT: 'pill' },\n    },\n    factory: () => {\n        // Custom skeleton element\n        const skeleton = document.createElement('div')\n        skeleton.style.background = 'linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%)'\n        skeleton.style.backgroundSize = '200% 100%'\n        skeleton.animate({ backgroundPosition: ['200% 0', '-200% 0'] }, { duration: 1500, iterations: Infinity })\n        return skeleton\n    },\n})\n```\n\n### Solid.js Integration - Overlay\n\n```tsx\nimport { Overlay, ShowOverlay } from '@_apparatus_/load-tools/solid'\nimport { createSignal } from 'solid-js'\n\nconst App = () => {\n    const [loading, setLoading] = createSignal(false)\n\n    return (\n        <>\n            {/* Overlay component - injects into parent */}\n            <div>\n                <Overlay when={loading()} ov-in='300' ov-out='200' />\n                <p>Content that will be covered by overlay</p>\n            </div>\n\n            {/* ShowOverlay - wraps children with overlay */}\n            <ShowOverlay when={loading()}>\n                <div class='card'>\n                    <h2>Card Title</h2>\n                    <p>Card content</p>\n                </div>\n            </ShowOverlay>\n\n            <button onClick={() => setLoading(!loading())}>Toggle Loading</button>\n        </>\n    )\n}\n```\n\n### Solid.js Integration - Skeleton\n\n```tsx\nimport { ShowSkeleton, SkeletonContext, sk } from '@_apparatus_/load-tools/solid'\nimport { createSignal, Show } from 'solid-js'\n\nconst UserProfile = () => {\n    // Access skeleton context\n    const isSkeleton = sk()\n\n    return (\n        <div class='profile'>\n            <img data-sk-t='round' src={isSkeleton ? '' : user.avatar} />\n            <h2>{isSkeleton ? 'Loading...' : user.name}</h2>\n            <p>{isSkeleton ? 'Loading bio...' : user.bio}</p>\n        </div>\n    )\n}\n\nconst App = () => {\n    const [loading, setLoading] = createSignal(true)\n    const [users, setUsers] = createSignal([])\n\n    // Fetch data\n    fetchUsers().then(data => {\n        setUsers(data)\n        setLoading(false)\n    })\n\n    return (\n        <ShowSkeleton when={loading()}>\n            <For each={users()}>{user => <UserProfile user={user} />}</For>\n        </ShowSkeleton>\n    )\n}\n```\n\n### Complete Loading State Example\n\n```tsx\nimport { ShowOverlay, ShowSkeleton } from '@_apparatus_/load-tools/solid'\nimport { createResource } from 'solid-js'\n\nconst Dashboard = () => {\n    const [data] = createResource(fetchDashboardData)\n\n    return (\n        <div class='dashboard'>\n            {/* Show overlay during initial load */}\n            <ShowOverlay when={data.loading}>\n                <div class='dashboard-content'>\n                    {/* Show skeletons for content structure */}\n                    <ShowSkeleton when={data.loading}>\n                        <div class='stats-grid'>\n                            <div class='stat-card' data-sk-t='rect'>\n                                <h3>{data()?.total ?? 'Loading...'}</h3>\n                                <p>Total Users</p>\n                            </div>\n                            <div class='stat-card' data-sk-t='rect'>\n                                <h3>{data()?.active ?? 'Loading...'}</h3>\n                                <p>Active Users</p>\n                            </div>\n                        </div>\n\n                        <div class='chart' data-sk-t='round' data-sk-r='m'>\n                            <Chart data={data()?.chartData} />\n                        </div>\n                    </ShowSkeleton>\n                </div>\n            </ShowOverlay>\n        </div>\n    )\n}\n```\n\n### Real-World Pattern: Suspense with Skeletons\n\n```tsx\nimport { Suspense } from 'solid-js'\nimport { ShowSkeleton } from '@_apparatus_/load-tools/solid'\n\nconst UserList = () => {\n    const [users] = createResource(fetchUsers)\n\n    return (\n        <Suspense\n            fallback={\n                <ShowSkeleton when={true}>\n                    <div class='user-skeleton' data-sk-t='rect'>\n                        <div data-sk-t='round'>Avatar</div>\n                        <div data-sk-t='text'>Name</div>\n                        <div data-sk-t='text'>Email</div>\n                    </div>\n                </ShowSkeleton>\n            }\n        >\n            <For each={users()}>{user => <UserCard user={user} />}</For>\n        </Suspense>\n    )\n}\n```\n","readmeFilename":"README.md"}