{"_id":"@polyutils/components","_rev":"29-fb2c3d2adb370c5b5cf34130b844872a","name":"@polyutils/components","dist-tags":{"latest":"2.8.0"},"versions":{"2.1.0":{"name":"@polyutils/components","version":"2.1.0","keywords":["react","pagination","hook","component"],"author":{"name":"Marios"},"license":"MIT","_id":"@polyutils/components@2.1.0","maintainers":[{"name":"mariosdrth","email":"mariosdrth2005@gmail.com"}],"homepage":"https://github.com/mariosdrth/poly-components#readme","bugs":{"url":"https://github.com/mariosdrth/poly-components/issues"},"dist":{"shasum":"3e3b0ed03e73d77f0eaa7fea6a0eba326b5401d5","tarball":"https://registry.npmjs.org/@polyutils/components/-/components-2.1.0.tgz","fileCount":9,"integrity":"sha512-72oSBUQDviD2Aij3kowavQsyQLBdJH3gfJ7+61x/CtLHgK2WAIV3NyBk4p3YyveT5FLuAp+TITLbjmRYeTkwRQ==","signatures":[{"sig":"MEYCIQDWrLqHY4kyZFcYHt5rmAByBJo5x2dEpfY4wk4/+U77dAIhAOxEwqiNaGEsH2yY4QUSZLAJuxwo698b5Ujc4SU4bWJD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39526},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"e8562a54c6b6f0b2de4a7049e72231c28b3779f7","scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist","dev:link":"rm -rf node_modules && npm install --no-package-lock --legacy-peer-deps && npm link","dev:watch":"rm -rf node_modules && npm install --no-package-lock --legacy-peer-deps && npm link && tsup --watch","release:major":"npm version major && git push && git push --tags","release:minor":"npm version minor && git push && git push --tags","release:patch":"npm version patch && git push && git push --tags","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"mariosdrth","email":"mariosdrth2005@gmail.com"},"repository":{"url":"git+https://github.com/mariosdrth/poly-components.git","type":"git"},"_npmVersion":"10.8.2","description":"Reusable React components","directories":{},"_nodeVersion":"20.19.5","dependencies":{"@griffel/react":"^1.5.30"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","tsup":"^8.5.0","typescript":"^5.9.2","@types/react":"^19.1.12","@types/react-dom":"^19.1.9","react-router-dom":"^7.8.2"},"peerDependencies":{"react":"^19.1.1","react-dom":"^19.1.1","react-router-dom":"^7.8.2"},"_npmOperationalInternal":{"tmp":"tmp/components_2.1.0_1757795273682_0.45182585229927597","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@polyutils/components","version":"2.2.0","keywords":["react","pagination","hook","component"],"author":{"name":"Marios"},"license":"MIT","_id":"@polyutils/components@2.2.0","maintainers":[{"name":"mariosdrth","email":"mariosdrth2005@gmail.com"}],"homepage":"https://github.com/mariosdrth/poly-components#readme","bugs":{"url":"https://github.com/mariosdrth/poly-components/issues"},"dist":{"shasum":"1c2915dc8b6d8a282e29144ecc7b40530577b4dd","tarball":"https://registry.npmjs.org/@polyutils/components/-/components-2.2.0.tgz","fileCount":9,"integrity":"sha512-qJqwMpR5JkMS3B7VYmwe/eaPgb9q4gWRDwUrV3rvKZ5cFVmYHR6r639ndRs3Sau69BP48iPeBk22/kWua4Qtow==","signatures":[{"sig":"MEQCIDjCX+C0DvXriMg/8QPFSkndKfhIalc4ENrMMds8O5csAiAA+dz2e2A2+UzjzL+FPsaUVKoa7F9EMiZ8UuvfzJRqIg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":107889},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"de4640c3a6e2dfac0d2cfae96aa2eae1cb547267","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","clean":"rm -rf dist","test:ci":"vitest run --reporter=dot","dev:link":"rm -rf node_modules && npm install --no-package-lock --legacy-peer-deps && npm link","dev:watch":"rm -rf node_modules && npm install --no-package-lock --legacy-peer-deps && npm link && tsup --watch","storybook":"storybook dev -p 6006","test:watch":"vitest --watch","exports:check":"node scripts/exports.mjs --check","exports:write":"node scripts/exports.mjs","release:major":"npm version major && git push && git push --tags","release:minor":"npm version minor && git push && git push --tags","release:patch":"npm version patch && git push && git push --tags","prepublishOnly":"npm run exports:write && npm run clean && npm run build","build-storybook":"storybook build"},"_npmUser":{"name":"mariosdrth","email":"mariosdrth2005@gmail.com"},"repository":{"url":"git+https://github.com/mariosdrth/poly-components.git","type":"git"},"_npmVersion":"10.8.2","description":"Reusable React components","directories":{},"_nodeVersion":"20.19.5","dependencies":{"@griffel/react":"^1.5.30"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","tsup":"^8.5.0","jsdom":"^27.0.0","vitest":"^3.2.4","storybook":"^9.1.5","typescript":"^5.9.2","react-icons":"^5.5.0","@types/react":"^19.1.12","@types/react-dom":"^19.1.9","react-router-dom":"^7.8.2","@testing-library/dom":"^10.4.1","@storybook/addon-docs":"^9.1.5","@storybook/react-vite":"^9.1.5","@testing-library/react":"^16.3.0","@testing-library/jest-dom":"^6.8.0","@storybook/addon-onboarding":"^9.1.5","@testing-library/user-event":"^14.6.1","@fortawesome/fontawesome-free":"^7.0.1","storybook-addon-pseudo-states":"^9.1.5"},"peerDependencies":{"react":"^19.1.1","react-dom":"^19.1.1","react-router-dom":"^7.8.2"},"_npmOperationalInternal":{"tmp":"tmp/components_2.2.0_1757870845603_0.024728630511207328","host":"s3://npm-registry-packages-npm-production"}},"2.2.1":{"name":"@polyutils/components","version":"2.2.1","keywords":["react","pagination","hook","component"],"author":{"name":"Marios"},"license":"MIT","_id":"@polyutils/components@2.2.1","maintainers":[{"name":"mariosdrth","email":"mariosdrth2005@gmail.com"}],"homepage":"https://github.com/mariosdrth/poly-components#readme","bugs":{"url":"https://github.com/mariosdrth/poly-components/issues"},"dist":{"shasum":"6317f827937699925a4d946c1748dc90e511a6e7","tarball":"https://registry.npmjs.org/@polyutils/components/-/components-2.2.1.tgz","fileCount":9,"integrity":"sha512-BEU4iSNNiknSZy+pQQMkhRq2FcJakXlvgNBCuTK3Ld/HKSTzluDeHbcp+8e6gk4pL9Xipo3lq9i+Mef5e/hNJg==","signatures":[{"sig":"MEUCIBL+1s6tvjhAqVeSBJO1zw/Z3mxYSPA32DvhDKn9kzIiAiEA2OJMgbEkIlPCj4rsjCBYHBquqSjU1YsjYyu3TVPkAzk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112587},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"873d8a8fc1a2631ad7916c09ddaa2b6eb4f5a894","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","clean":"rm -rf dist","test:ci":"vitest run --reporter=dot","dev:link":"rm -rf node_modules && npm install --no-package-lock --legacy-peer-deps && npm link","dev:watch":"rm -rf node_modules && npm install --no-package-lock --legacy-peer-deps && npm link && tsup --watch","storybook":"storybook dev -p 6006","test:watch":"vitest --watch","exports:check":"node scripts/exports.mjs --check","exports:write":"node scripts/exports.mjs","release:major":"npm version major && git push && git push --tags","release:minor":"npm version minor && git push && git push --tags","release:patch":"npm version patch && git push && git push --tags","prepublishOnly":"npm run exports:write && npm run clean && npm run build","build-storybook":"storybook build"},"_npmUser":{"name":"mariosdrth","email":"mariosdrth2005@gmail.com"},"repository":{"url":"git+https://github.com/mariosdrth/poly-components.git","type":"git"},"_npmVersion":"10.8.2","description":"Reusable React components","directories":{},"_nodeVersion":"20.19.5","dependencies":{"@griffel/react":"^1.5.30"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","tsup":"^8.5.0","jsdom":"^27.0.0","vitest":"^3.2.4","storybook":"^9.1.5","typescript":"^5.9.2","react-icons":"^5.5.0","@types/react":"^19.1.12","@types/react-dom":"^19.1.9","react-router-dom":"^7.8.2","@testing-library/dom":"^10.4.1","@storybook/addon-docs":"^9.1.5","@storybook/react-vite":"^9.1.5","@testing-library/react":"^16.3.0","@testing-library/jest-dom":"^6.8.0","@storybook/addon-onboarding":"^9.1.5","@testing-library/user-event":"^14.6.1","@fortawesome/fontawesome-free":"^7.0.1","storybook-addon-pseudo-states":"^9.1.5"},"peerDependencies":{"react":"^19.1.1","react-dom":"^19.1.1","react-router-dom":"^7.8.2"},"_npmOperationalInternal":{"tmp":"tmp/components_2.2.1_1757878093723_0.33854534210404275","host":"s3://npm-registry-packages-npm-production"}},"2.2.2":{"name":"@polyutils/components","version":"2.2.2","keywords":["react","pagination","hook","component"],"author":{"name":"Marios"},"license":"MIT","_id":"@polyutils/components@2.2.2","maintainers":[{"name":"mariosdrth","email":"mariosdrth2005@gmail.com"}],"homepage":"https://github.com/mariosdrth/poly-components#readme","bugs":{"url":"https://github.com/mariosdrth/poly-components/issues"},"dist":{"shasum":"27cd0e6af94624081ccdc4ba649c455de6b724be","tarball":"https://registry.npmjs.org/@polyutils/components/-/components-2.2.2.tgz","fileCount":9,"integrity":"sha512-F0V18va/7rBqy+doR8Pbb3cOyMlVEVQpHRfh7DVce8F3Ui0DMp6GlE8LVcbkZ5goQThiHz5jdhD9ks+lKO5C5Q==","signatures":[{"sig":"MEUCIQC0xXA29h4h24CLB3+BuAO7cWHD+dEzZtqH2HthQ4TFFAIgTM1hfnEzvZm2gurTF4DwptwTS8PvdyhmY4vRIQkQ4ro=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112695},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"a5fb51e979129d86e4d8bc26ffe049f2ad8531e6","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","clean":"rm -rf dist","test:ci":"vitest run --reporter=dot","dev:link":"rm -rf node_modules && npm install --no-package-lock --legacy-peer-deps && npm link","dev:watch":"rm -rf node_modules && npm install --no-package-lock --legacy-peer-deps && npm link && tsup --watch","storybook":"storybook dev -p 6006","test:watch":"vitest --watch","exports:check":"node scripts/exports.mjs --check","exports:write":"node scripts/exports.mjs","release:major":"npm version major && git push && git push --tags","release:minor":"npm version minor && git push && git push --tags","release:patch":"npm version patch && git push && git push --tags","prepublishOnly":"npm run exports:write && npm run clean && npm run build","build-storybook":"storybook build"},"_npmUser":{"name":"mariosdrth","email":"mariosdrth2005@gmail.com"},"repository":{"url":"git+https://github.com/mariosdrth/poly-components.git","type":"git"},"_npmVersion":"10.8.2","description":"Reusable React components","directories":{},"_nodeVersion":"20.19.5","dependencies":{"@griffel/react":"^1.5.30"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","tsup":"^8.5.0","jsdom":"^27.0.0","vitest":"^3.2.4","storybook":"^9.1.5","typescript":"^5.9.2","react-icons":"^5.5.0","@types/react":"^19.1.12","@types/react-dom":"^19.1.9","react-router-dom":"^7.8.2","@testing-library/dom":"^10.4.1","@storybook/addon-docs":"^9.1.5","@storybook/react-vite":"^9.1.5","@testing-library/react":"^16.3.0","@testing-library/jest-dom":"^6.8.0","@storybook/addon-onboarding":"^9.1.5","@testing-library/user-event":"^14.6.1","@fortawesome/fontawesome-free":"^7.0.1","storybook-addon-pseudo-states":"^9.1.5"},"peerDependencies":{"react":"^19.1.1","react-dom":"^19.1.1","react-router-dom":"^7.8.2"},"_npmOperationalInternal":{"tmp":"tmp/components_2.2.2_1757883245867_0.8514122720171438","host":"s3://npm-registry-packages-npm-production"}},"2.2.3":{"name":"@polyutils/components","version":"2.2.3","keywords":["react","pagination","hook","component"],"author":{"name":"Marios"},"license":"MIT","_id":"@polyutils/components@2.2.3","maintainers":[{"name":"mariosdrth","email":"mariosdrth2005@gmail.com"}],"homepage":"https://github.com/mariosdrth/poly-components#readme","bugs":{"url":"https://github.com/mariosdrth/poly-components/issues"},"dist":{"shasum":"ae591ca79728f1ffdaf20c5c301140d1faf3fa41","tarball":"https://registry.npmjs.org/@polyutils/components/-/components-2.2.3.tgz","fileCount":9,"integrity":"sha512-jGLrluzgFeRDrJ7sQ19JFtyWciDj+0NUsNfvfbu6qp02eZ1NHKgUpYs+EsJMqHxpxPxVKn4+DVSQQBQoGN2yJg==","signatures":[{"sig":"MEYCIQCnCo9V3RzEocrPGB7c4I1T5VJL3PHImywVDa0mHamv9AIhAMz3pgQ5Zr0N2wHFnPh4K18V6JIGZtdJgfy5+MGCrOXH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113358},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"6cbd506180e73162b30216d38c27914c40afaa66","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","clean":"rm -rf dist","test:ci":"vitest run --reporter=dot","dev:link":"rm -rf node_modules && npm install --no-package-lock --legacy-peer-deps && npm link","dev:watch":"rm -rf node_modules && npm install --no-package-lock --legacy-peer-deps && npm link && tsup --watch","storybook":"storybook dev -p 6006","test:watch":"vitest --watch","exports:check":"node scripts/exports.mjs --check","exports:write":"node scripts/exports.mjs","release:major":"npm version major && git push && git push --tags","release:minor":"npm version minor && git push && git push --tags","release:patch":"npm version patch && git push && git push --tags","prepublishOnly":"npm run exports:write && npm run clean && npm run build","build-storybook":"storybook build"},"_npmUser":{"name":"mariosdrth","email":"mariosdrth2005@gmail.com"},"repository":{"url":"git+https://github.com/mariosdrth/poly-components.git","type":"git"},"_npmVersion":"10.8.2","description":"Reusable React components","directories":{},"_nodeVersion":"20.19.5","dependencies":{"@griffel/react":"^1.5.30"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","tsup":"^8.5.0","jsdom":"^27.0.0","vitest":"^3.2.4","storybook":"^9.1.5","typescript":"^5.9.2","react-icons":"^5.5.0","@types/react":"^19.1.12","@types/react-dom":"^19.1.9","react-router-dom":"^7.8.2","@testing-library/dom":"^10.4.1","@storybook/addon-docs":"^9.1.5","@storybook/react-vite":"^9.1.5","@testing-library/react":"^16.3.0","@testing-library/jest-dom":"^6.8.0","@storybook/addon-onboarding":"^9.1.5","@testing-library/user-event":"^14.6.1","@fortawesome/fontawesome-free":"^7.0.1","storybook-addon-pseudo-states":"^9.1.5"},"peerDependencies":{"react":"^19.1.1","react-dom":"^19.1.1","react-router-dom":"^7.8.2"},"_npmOperationalInternal":{"tmp":"tmp/components_2.2.3_1757918083257_0.6287747834156414","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"@polyutils/components","version":"2.3.0","keywords":["react","pagination","hook","component"],"author":{"name":"Marios"},"license":"MIT","_id":"@polyutils/components@2.3.0","maintainers":[{"name":"mariosdrth","email":"mariosdrth2005@gmail.com"}],"homepage":"https://github.com/mariosdrth/poly-components#readme","bugs":{"url":"https://github.com/mariosdrth/poly-components/issues"},"dist":{"shasum":"185676e4e48720700ad16e51188a21988baeb61e","tarball":"https://registry.npmjs.org/@polyutils/components/-/components-2.3.0.tgz","fileCount":9,"integrity":"sha512-ePY6BGel7kC9X3YWG58tKZkTjPraH+IvpH/nVGRVGj2xTuUQlMwTv4pncovzrwJ6X2j22kh0newlbeQFAoNmww==","signatures":[{"sig":"MEUCIQDwgIRtmWk0ygsl+WhW6nHkW1WWaFXb39MxwC5CVW/GMQIgSDTffdZk+K7DxFfWhZiScn9LdUY/T0bWfve8fkxk02s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128305},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"57e0bb996dc223c4687df7794a68144d6dde989c","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","clean":"rm -rf dist","test:ci":"vitest run --reporter=dot","dev:link":"rm -rf node_modules && npm install --no-package-lock --legacy-peer-deps && npm link","dev:watch":"rm -rf node_modules && npm install --no-package-lock --legacy-peer-deps && npm link && tsup --watch","storybook":"storybook dev -p 6006","test:watch":"vitest --watch","exports:check":"node scripts/exports.mjs --check","exports:write":"node scripts/exports.mjs","release:major":"npm version major && git push && git push --tags","release:minor":"npm version minor && git push && git push --tags","release:patch":"npm version patch && git push && git push --tags","prepublishOnly":"npm run exports:write && npm run clean && npm run build","build-storybook":"storybook build"},"_npmUser":{"name":"mariosdrth","email":"mariosdrth2005@gmail.com"},"repository":{"url":"git+https://github.com/mariosdrth/poly-components.git","type":"git"},"_npmVersion":"10.8.2","description":"Reusable React components","directories":{},"_nodeVersion":"20.19.5","dependencies":{"@griffel/react":"^1.5.30"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","tsup":"^8.5.0","jsdom":"^27.0.0","vitest":"^3.2.4","storybook":"^9.1.5","typescript":"^5.9.2","react-icons":"^5.5.0","@types/react":"^19.1.12","@types/react-dom":"^19.1.9","react-router-dom":"^7.8.2","@vitest/coverage-v8":"^3.2.4","@testing-library/dom":"^10.4.1","@storybook/addon-docs":"^9.1.5","@storybook/react-vite":"^9.1.5","@testing-library/react":"^16.3.0","@testing-library/jest-dom":"^6.8.0","@storybook/addon-onboarding":"^9.1.5","@testing-library/user-event":"^14.6.1","@fortawesome/fontawesome-free":"^7.0.1","storybook-addon-pseudo-states":"^9.1.5"},"peerDependencies":{"react":"^19.1.1","react-dom":"^19.1.1","react-router-dom":"^7.8.2"},"_npmOperationalInternal":{"tmp":"tmp/components_2.3.0_1757930631741_0.3903635910500727","host":"s3://npm-registry-packages-npm-production"}},"2.3.1":{"name":"@polyutils/components","version":"2.3.1","keywords":["react","pagination","hook","component"],"author":{"name":"Marios"},"license":"MIT","_id":"@polyutils/components@2.3.1","maintainers":[{"name":"mariosdrth","email":"mariosdrth2005@gmail.com"}],"homepage":"https://github.com/mariosdrth/poly-components#readme","bugs":{"url":"https://github.com/mariosdrth/poly-components/issues"},"dist":{"shasum":"25097899d4741b76b57079dbf359586ced907e49","tarball":"https://registry.npmjs.org/@polyutils/components/-/components-2.3.1.tgz","fileCount":9,"integrity":"sha512-Vr8SBz8DoI1xydoyZLs3OBQit9VJsih/JqxILjT6tY8T7xy9DOwd1kLE8qPVJBkZk4TuVaPvvLtTWwnoMyr1NA==","signatures":[{"sig":"MEQCIG+NyGsDpO9J6gl4sKhrlWqi2LQt6r8sbpIry59nvdfYAiABSJzV87kIuwdL8J5hArfyNsC7+a6HBPslPHe0ZM9cxw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":145113},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"d4292016d31d0e7b55b50788008a84292e0e23d8","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","clean":"rm -rf dist","test:ci":"vitest run --reporter=dot","dev:link":"rm -rf node_modules && npm install --no-package-lock --legacy-peer-deps && npm link","dev:watch":"rm -rf node_modules && npm install --no-package-lock --legacy-peer-deps && npm link && tsup --watch","storybook":"storybook dev -p 6006","test:watch":"vitest --watch","exports:check":"node scripts/exports.mjs --check","exports:write":"node scripts/exports.mjs","release:major":"npm version major && git push && git push --tags","release:minor":"npm version minor && git push && git push --tags","release:patch":"npm version patch && git push && git push --tags","prepublishOnly":"npm run exports:write && npm run clean && npm run build","build-storybook":"storybook build"},"_npmUser":{"name":"mariosdrth","email":"mariosdrth2005@gmail.com"},"repository":{"url":"git+https://github.com/mariosdrth/poly-components.git","type":"git"},"_npmVersion":"10.8.2","description":"Reusable React components","directories":{},"_nodeVersion":"20.19.5","dependencies":{"@griffel/react":"^1.5.30"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","tsup":"^8.5.0","jsdom":"^27.0.0","vitest":"^3.2.4","storybook":"^9.1.5","typescript":"^5.9.2","react-icons":"^5.5.0","@types/react":"^19.1.12","@types/react-dom":"^19.1.9","react-router-dom":"^7.8.2","@vitest/coverage-v8":"^3.2.4","@testing-library/dom":"^10.4.1","@storybook/addon-docs":"^9.1.5","@storybook/react-vite":"^9.1.5","@testing-library/react":"^16.3.0","@testing-library/jest-dom":"^6.8.0","@storybook/addon-onboarding":"^9.1.5","@testing-library/user-event":"^14.6.1","@fortawesome/fontawesome-free":"^7.0.1","storybook-addon-pseudo-states":"^9.1.5"},"peerDependencies":{"react":"^19.1.1","react-dom":"^19.1.1","react-router-dom":"^7.8.2"},"_npmOperationalInternal":{"tmp":"tmp/components_2.3.1_1757934230685_0.34857037307725314","host":"s3://npm-registry-packages-npm-production"}},"2.3.2":{"name":"@polyutils/components","version":"2.3.2","keywords":["react","pagination","hook","component"],"author":{"name":"Marios"},"license":"MIT","_id":"@polyutils/components@2.3.2","maintainers":[{"name":"mariosdrth","email":"mariosdrth2005@gmail.com"}],"homepage":"https://github.com/mariosdrth/poly-components#readme","bugs":{"url":"https://github.com/mariosdrth/poly-components/issues"},"dist":{"shasum":"15c79f8e8f220c804b044a645cdffbc8d20d6686","tarball":"https://registry.npmjs.org/@polyutils/components/-/components-2.3.2.tgz","fileCount":9,"integrity":"sha512-zExs3deermxXTwYQCdjPk9rKhuBES5JTVWqP+b5AvzWFlzmVF+223taG1kUG+1nDTErN7tMCBJoxfEamFjLJOQ==","signatures":[{"sig":"MEUCIQCDEb/TzBNOtyqXWxE7nEEa+CRJtH2F3dXFsASSmfy7qQIgaUaYuErYylvkDWiGdaFU6hwg3g2cEm9YmGis3gnc0KI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":151324},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"a5abd6fe82c00e9e4b9a4310e0cbabc0044cd726","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","clean":"rm -rf dist","test:ci":"vitest run --reporter=dot","dev:link":"rm -rf node_modules && npm install --no-package-lock --legacy-peer-deps && npm link","dev:watch":"rm -rf node_modules && npm install --no-package-lock --legacy-peer-deps && npm link && tsup --watch","storybook":"storybook dev -p 6006","test:watch":"vitest --watch","exports:check":"node scripts/exports.mjs --check","exports:write":"node scripts/exports.mjs","release:major":"npm version major && git push && git push --tags","release:minor":"npm version minor && git push && git push --tags","release:patch":"npm version patch && git push && git push --tags","prepublishOnly":"npm run exports:write && npm run clean && npm run build","build-storybook":"storybook build"},"_npmUser":{"name":"mariosdrth","email":"mariosdrth2005@gmail.com"},"repository":{"url":"git+https://github.com/mariosdrth/poly-components.git","type":"git"},"_npmVersion":"10.8.2","description":"Reusable React components","directories":{},"_nodeVersion":"20.19.5","dependencies":{"@griffel/react":"^1.5.30"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","tsup":"^8.5.0","jsdom":"^27.0.0","vitest":"^3.2.4","storybook":"^9.1.5","typescript":"^5.9.2","react-icons":"^5.5.0","@types/react":"^19.1.12","@types/react-dom":"^19.1.9","react-router-dom":"^7.8.2","@vitest/coverage-v8":"^3.2.4","@testing-library/dom":"^10.4.1","@storybook/addon-docs":"^9.1.5","@storybook/react-vite":"^9.1.5","@testing-library/react":"^16.3.0","@testing-library/jest-dom":"^6.8.0","@storybook/addon-onboarding":"^9.1.5","@testing-library/user-event":"^14.6.1","@fortawesome/fontawesome-free":"^7.0.1","storybook-addon-pseudo-states":"^9.1.5"},"peerDependencies":{"react":"^19.1.1","react-dom":"^19.1.1","react-router-dom":"^7.8.2"},"_npmOperationalInternal":{"tmp":"tmp/components_2.3.2_1757940635304_0.31411036861933006","host":"s3://npm-registry-packages-npm-production"}},"2.4.2":{"name":"@polyutils/components","version":"2.4.2","keywords":["react","pagination","hook","component"],"author":{"name":"Marios Papamarkou"},"license":"MIT","_id":"@polyutils/components@2.4.2","maintainers":[{"name":"mariosdrth","email":"mariosdrth2005@gmail.com"}],"homepage":"https://github.com/polyshape/poly_components#readme","bugs":{"url":"https://github.com/polyshape/poly_components/issues"},"dist":{"shasum":"15cb6b6047a27cf778047c1f85185cb699decf48","tarball":"https://registry.npmjs.org/@polyutils/components/-/components-2.4.2.tgz","fileCount":9,"integrity":"sha512-dN9gKY+Ndf5MG/x8XJiD89s1Fm8iUzI8r0yNlCplIsg73772rb4EyTXYDUVi77G3Abr/IaMS1FqvIuNLDA3jjw==","signatures":[{"sig":"MEYCIQCavRwDcLQtQdjqM8YKv9Ypgdqe9CN5x5zLHDitic8YhwIhAPurq+ySukC1ZZSvSuhtF66+7bLYp6yFJoE8op16NmFZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2288219},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"8a1e122d69bc956e932aa401cee49c3cb4c22106","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","clean":"rm -rf dist","test:ci":"vitest run --reporter=dot","dev:link":"rm -rf node_modules && npm install --no-package-lock --legacy-peer-deps && npm link","dev:watch":"rm -rf node_modules && npm install --no-package-lock --legacy-peer-deps && npm link && tsup --watch","storybook":"storybook dev -p 6006","test:watch":"vitest --watch","exports:check":"node scripts/exports.mjs --check","exports:write":"node scripts/exports.mjs","release:major":"npm version major && git push && git push --tags","release:minor":"npm version minor && git push && git push --tags","release:patch":"npm version patch && git push && git push --tags","prepublishOnly":"npm run exports:write && npm run clean && npm run build","build-storybook":"storybook build"},"_npmUser":{"name":"mariosdrth","email":"mariosdrth2005@gmail.com"},"repository":{"url":"git+https://github.com/polyshape/poly_components.git","type":"git"},"_npmVersion":"10.8.2","description":"Reusable React components","directories":{},"_nodeVersion":"20.19.5","dependencies":{"@griffel/react":"^1.5.30"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","tsup":"^8.5.0","jsdom":"^27.0.0","vitest":"^3.2.4","storybook":"^9.1.6","typescript":"^5.9.2","react-icons":"^5.5.0","@types/react":"^19.1.12","@types/react-dom":"^19.1.9","react-router-dom":"^7.8.2","@vitest/coverage-v8":"^3.2.4","@testing-library/dom":"^10.4.1","@storybook/addon-docs":"^9.1.6","@storybook/react-vite":"^9.1.6","@testing-library/react":"^16.3.0","@testing-library/jest-dom":"^6.8.0","@testing-library/user-event":"^14.6.1","@fortawesome/fontawesome-free":"^7.0.1","storybook-addon-pseudo-states":"^9.1.6"},"peerDependencies":{"react":"^19.1.1","react-dom":"^19.1.1"},"optionalDependencies":{"react-router-dom":"^7.8.2"},"_npmOperationalInternal":{"tmp":"tmp/components_2.4.2_1758365126922_0.38888801829403263","host":"s3://npm-registry-packages-npm-production"}},"2.4.3":{"name":"@polyutils/components","version":"2.4.3","keywords":["react","pagination","hook","component"],"author":{"name":"Marios Papamarkou"},"license":"MIT","_id":"@polyutils/components@2.4.3","maintainers":[{"name":"mariosdrth","email":"mariosdrth2005@gmail.com"}],"homepage":"https://github.com/polyshape/poly_components#readme","bugs":{"url":"https://github.com/polyshape/poly_components/issues"},"dist":{"shasum":"8f8ab2691659aae24efd25d943d116812d1ec8f2","tarball":"https://registry.npmjs.org/@polyutils/components/-/components-2.4.3.tgz","fileCount":9,"integrity":"sha512-ZMGwX2uB+VPkrrWudDq7JtMyg83v5Pu5DqQqv2k+d2wIUGmzi9rWyMIDUPsb2ECQ+z6S7bAu1eQR8T7raK57rg==","signatures":[{"sig":"MEUCICsF1/S15fzIHZAG2OuOAdAOM24p5vY0Gj4iPRbK/eE2AiEA5ZvwnED11e14ez4opz3hcE/7NfVkUFoxqvxDOda1CAM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":403238},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"88113df3b0a572030bbbc023591d27bcd3a85e2b","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","clean":"rm -rf dist","test:ci":"vitest run --reporter=dot","dev:link":"rm -rf node_modules && npm install --no-package-lock --legacy-peer-deps && npm link","dev:watch":"rm -rf node_modules && npm install --no-package-lock --legacy-peer-deps && npm link && tsup --watch","storybook":"storybook dev -p 6006","test:watch":"vitest --watch","exports:check":"node scripts/exports.mjs --check","exports:write":"node scripts/exports.mjs","release:major":"npm version major && git push && git push --tags","release:minor":"npm version minor && git push && git push --tags","release:patch":"npm version patch && git push && git push --tags","prepublishOnly":"npm run exports:write && npm run clean && npm run build","build-storybook":"storybook build"},"_npmUser":{"name":"mariosdrth","email":"mariosdrth2005@gmail.com"},"repository":{"url":"git+https://github.com/polyshape/poly_components.git","type":"git"},"_npmVersion":"10.8.2","description":"Reusable React components","directories":{},"_nodeVersion":"20.19.5","dependencies":{"@griffel/react":"^1.5.30"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","tsup":"^8.5.0","jsdom":"^27.0.0","vitest":"^3.2.4","storybook":"^9.1.6","typescript":"^5.9.2","react-icons":"^5.5.0","@types/react":"^19.1.12","@types/react-dom":"^19.1.9","react-router-dom":"^7.8.2","@vitest/coverage-v8":"^3.2.4","@testing-library/dom":"^10.4.1","@storybook/addon-docs":"^9.1.6","@storybook/react-vite":"^9.1.6","@testing-library/react":"^16.3.0","@testing-library/jest-dom":"^6.8.0","@testing-library/user-event":"^14.6.1","@fortawesome/fontawesome-free":"^7.0.1","storybook-addon-pseudo-states":"^9.1.6"},"peerDependencies":{"react":"^19.1.1","react-dom":"^19.1.1"},"optionalDependencies":{"react-router-dom":"^7.8.2"},"_npmOperationalInternal":{"tmp":"tmp/components_2.4.3_1758378059455_0.6814925329430483","host":"s3://npm-registry-packages-npm-production"}},"2.4.4":{"name":"@polyutils/components","version":"2.4.4","keywords":["react","pagination","hook","component"],"author":{"name":"Marios Papamarkou"},"license":"MIT","_id":"@polyutils/components@2.4.4","maintainers":[{"name":"mariosdrth","email":"mariosdrth2005@gmail.com"}],"homepage":"https://github.com/polyshape/poly_components#readme","bugs":{"url":"https://github.com/polyshape/poly_components/issues"},"dist":{"shasum":"bac443c79a6593ee18de8b82ab01d1e8b0f4c831","tarball":"https://registry.npmjs.org/@polyutils/components/-/components-2.4.4.tgz","fileCount":9,"integrity":"sha512-iCR5xEq/f3kIkUKLew2W6TmpMqXkxFuHTer9pB2mY9hsLFtx2Jf6mjeVAd1QgE1KB6vI5GcqicKABWyCwRHRog==","signatures":[{"sig":"MEUCIQDg/2UIQPSZc1KKtV1++UZwHXa1Vn1hUM1VSxFAn9rOZwIgQEG09vij08+CrVU6Sl5/ZkRzIIuWglx3chzxYQCZGo4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":422426},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"a75fd9ad355fde485d97ab6d741727cdd1060e59","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","clean":"rm -rf dist","test:ci":"vitest run --reporter=dot","dev:link":"rm -rf node_modules && npm install --no-package-lock --legacy-peer-deps && npm link","dev:watch":"rm -rf node_modules && npm install --no-package-lock --legacy-peer-deps && npm link && tsup --watch","storybook":"storybook dev -p 6006","test:watch":"vitest --watch","exports:check":"node scripts/exports.mjs --check","exports:write":"node scripts/exports.mjs","release:major":"npm version major && git push && git push --tags","release:minor":"npm version minor && git push && git push --tags","release:patch":"npm version patch && git push && git push --tags","prepublishOnly":"npm run exports:write && npm run clean && npm run build","build-storybook":"storybook build"},"_npmUser":{"name":"mariosdrth","email":"mariosdrth2005@gmail.com"},"repository":{"url":"git+https://github.com/polyshape/poly_components.git","type":"git"},"_npmVersion":"10.8.2","description":"Reusable React components","directories":{},"_nodeVersion":"20.19.5","dependencies":{"@griffel/react":"^1.5.30"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","tsup":"^8.5.0","jsdom":"^27.0.0","vitest":"^3.2.4","storybook":"^9.1.6","typescript":"^5.9.2","react-icons":"^5.5.0","@types/react":"^19.1.12","@types/react-dom":"^19.1.9","react-router-dom":"^7.8.2","@vitest/coverage-v8":"^3.2.4","@testing-library/dom":"^10.4.1","@storybook/addon-docs":"^9.1.6","@storybook/react-vite":"^9.1.6","@testing-library/react":"^16.3.0","@testing-library/jest-dom":"^6.8.0","@testing-library/user-event":"^14.6.1","@fortawesome/fontawesome-free":"^7.0.1","storybook-addon-pseudo-states":"^9.1.6"},"peerDependencies":{"react":"^19.1.1","react-dom":"^19.1.1"},"optionalDependencies":{"react-router-dom":"^7.8.2"},"_npmOperationalInternal":{"tmp":"tmp/components_2.4.4_1758440285774_0.010028011704953599","host":"s3://npm-registry-packages-npm-production"}},"2.4.5":{"name":"@polyutils/components","version":"2.4.5","keywords":["react","pagination","hook","component"],"author":{"name":"Marios Papamarkou"},"license":"MIT","_id":"@polyutils/components@2.4.5","maintainers":[{"name":"mariosdrth","email":"mariosdrth2005@gmail.com"}],"homepage":"https://github.com/polyshape/poly_components#readme","bugs":{"url":"https://github.com/polyshape/poly_components/issues"},"dist":{"shasum":"d9b95cbf0b9691d2deb9eec41b0bd4cdf61a1099","tarball":"https://registry.npmjs.org/@polyutils/components/-/components-2.4.5.tgz","fileCount":9,"integrity":"sha512-KApD9SBG5ZMyr2ISZVQW9PD0YkFX8dLsQiN9CN3nz0e3kcPQQQroyMEUlg6pux9/+tkgFRW++tkOtsoVrIROmg==","signatures":[{"sig":"MEQCIEhfc/xJjQtJev5sGAK2zWNzhULFXHe1Ysy5X6+I22fBAiBOLtPHNyu1Y+ORwxqAfDtCl1FQbtUXfUMlKv1xShkiUw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":425271},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"2a3e29fbc40d781ed98881bd20972c423161fb48","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","clean":"rm -rf dist","test:ci":"vitest run --reporter=dot","dev:link":"rm -rf node_modules && npm install --no-package-lock --legacy-peer-deps && npm link","dev:watch":"rm -rf node_modules && npm install --no-package-lock --legacy-peer-deps && npm link && tsup --watch","storybook":"storybook dev -p 6006","test:watch":"vitest --watch","exports:check":"node scripts/exports.mjs --check","exports:write":"node scripts/exports.mjs","release:major":"npm version major && git push && git push --tags","release:minor":"npm version minor && git push && git push --tags","release:patch":"npm version patch && git push && git push --tags","prepublishOnly":"npm run exports:write && npm run clean && npm run build","build-storybook":"storybook build"},"_npmUser":{"name":"mariosdrth","email":"mariosdrth2005@gmail.com"},"repository":{"url":"git+https://github.com/polyshape/poly_components.git","type":"git"},"_npmVersion":"10.8.2","description":"Reusable React components","directories":{},"_nodeVersion":"20.19.5","dependencies":{"@griffel/react":"^1.5.30"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","tsup":"^8.5.0","jsdom":"^27.0.0","vitest":"^3.2.4","storybook":"^9.1.6","typescript":"^5.9.2","react-icons":"^5.5.0","@types/react":"^19.1.12","@types/react-dom":"^19.1.9","react-router-dom":"^7.8.2","@vitest/coverage-v8":"^3.2.4","@testing-library/dom":"^10.4.1","@storybook/addon-docs":"^9.1.6","@storybook/react-vite":"^9.1.6","@testing-library/react":"^16.3.0","@testing-library/jest-dom":"^6.8.0","@testing-library/user-event":"^14.6.1","@fortawesome/fontawesome-free":"^7.0.1","storybook-addon-pseudo-states":"^9.1.6"},"peerDependencies":{"react":"^19.1.1","react-dom":"^19.1.1"},"optionalDependencies":{"react-router-dom":"^7.8.2"},"_npmOperationalInternal":{"tmp":"tmp/components_2.4.5_1758458558882_0.27200666910492854","host":"s3://npm-registry-packages-npm-production"}},"2.5.0":{"name":"@polyutils/components","version":"2.5.0","keywords":["react","pagination","hook","component"],"author":{"name":"Marios Papamarkou"},"license":"MIT","_id":"@polyutils/components@2.5.0","maintainers":[{"name":"mariosdrth","email":"mariosdrth2005@gmail.com"}],"homepage":"https://github.com/polyshape/poly_components#readme","bugs":{"url":"https://github.com/polyshape/poly_components/issues"},"dist":{"shasum":"6dc8dca0cd43699bdf3b97889a5b0aab4550bb91","tarball":"https://registry.npmjs.org/@polyutils/components/-/components-2.5.0.tgz","fileCount":9,"integrity":"sha512-sqmFpsyWjs8JMzCY1cp42lgv2/dxh806tZP4kFY7/24SNBdEQAvc2gdD3XjxM2AzNa5rKkXaE9qigm6EdN44vA==","signatures":[{"sig":"MEQCIEqkAW0jrDiWqfRMrsCF9ASHHFeIo732/B3UhqaZtEqBAiADez+tk4cVE6Qwz5jxKFDIY23htxE/+VCfHkt2+iLXOw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":417436},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"fb7f87680dbe22b663fd1f3ed9141baa99877d0b","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","clean":"rm -rf dist","test:ci":"vitest run --reporter=dot","dev:link":"rm -rf node_modules && npm install --no-package-lock --legacy-peer-deps && npm link","dev:watch":"rm -rf node_modules && npm install --no-package-lock --legacy-peer-deps && npm link && tsup --watch","storybook":"storybook dev -p 6006","test:watch":"vitest --watch","exports:check":"node scripts/exports.mjs --check","exports:write":"node scripts/exports.mjs","release:major":"npm version major && git push && git push --tags","release:minor":"npm version minor && git push && git push --tags","release:patch":"npm version patch && git push && git push --tags","prepublishOnly":"npm run exports:write && npm run clean && npm run build","build-storybook":"storybook build"},"_npmUser":{"name":"mariosdrth","email":"mariosdrth2005@gmail.com"},"repository":{"url":"git+https://github.com/polyshape/poly_components.git","type":"git"},"_npmVersion":"10.8.2","description":"Reusable React components","directories":{},"_nodeVersion":"20.19.5","dependencies":{"@griffel/react":"^1.5.30"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","tsup":"^8.5.0","jsdom":"^27.0.0","vitest":"^3.2.4","storybook":"^9.1.6","typescript":"^5.9.2","react-icons":"^5.5.0","@types/react":"^19.1.12","@types/react-dom":"^19.1.9","react-router-dom":"^7.8.2","@vitest/coverage-v8":"^3.2.4","@testing-library/dom":"^10.4.1","@storybook/addon-docs":"^9.1.6","@storybook/react-vite":"^9.1.6","@testing-library/react":"^16.3.0","@testing-library/jest-dom":"^6.8.0","@testing-library/user-event":"^14.6.1","@fortawesome/fontawesome-free":"^7.0.1","storybook-addon-pseudo-states":"^9.1.6"},"peerDependencies":{"react":"^19.1.1","react-dom":"^19.1.1"},"optionalDependencies":{"react-router-dom":"^7.8.2"},"_npmOperationalInternal":{"tmp":"tmp/components_2.5.0_1758832022642_0.45361058361306816","host":"s3://npm-registry-packages-npm-production"}},"2.5.1":{"name":"@polyutils/components","version":"2.5.1","keywords":["react","pagination","hook","component"],"author":{"name":"Marios Papamarkou"},"license":"MIT","_id":"@polyutils/components@2.5.1","maintainers":[{"name":"mariosdrth","email":"mariosdrth2005@gmail.com"}],"homepage":"https://github.com/polyshape/poly_components#readme","bugs":{"url":"https://github.com/polyshape/poly_components/issues"},"dist":{"shasum":"29d67fda7d7ddac38aaf0e8314063a76150fb058","tarball":"https://registry.npmjs.org/@polyutils/components/-/components-2.5.1.tgz","fileCount":9,"integrity":"sha512-n/GYi0AOuI+u2grCQnTHB4LADCbrwYMjnKlVYwjMJ5Z5UR359ZqctHwaj4Nhv2nBgjFEBDIGL5zpZSW77fZLIA==","signatures":[{"sig":"MEUCIGWclAjxUKAn5hnzz06yqE8NB2ks1B68CrG4YmAlCXfgAiEAtARrukOEuKzR2MRpC3P8Z1/bCcYxxc69LFbUyORk6/0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":420262},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"cf8188e586ccd050ed0dddd01185bb413b0db61b","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","clean":"rm -rf dist","test:ci":"vitest run --reporter=dot","dev:link":"rm -rf node_modules && npm install --no-package-lock --legacy-peer-deps && npm link","dev:watch":"rm -rf node_modules && npm install --no-package-lock --legacy-peer-deps && npm link && tsup --watch","storybook":"storybook dev -p 6006","test:watch":"vitest --watch","exports:check":"node scripts/exports.mjs --check","exports:write":"node scripts/exports.mjs","release:major":"npm version major && git push && git push --tags","release:minor":"npm version minor && git push && git push --tags","release:patch":"npm version patch && git push && git push --tags","prepublishOnly":"npm run exports:write && npm run clean && npm run build","build-storybook":"storybook build"},"_npmUser":{"name":"mariosdrth","email":"mariosdrth2005@gmail.com"},"repository":{"url":"git+https://github.com/polyshape/poly_components.git","type":"git"},"_npmVersion":"10.8.2","description":"Reusable React components","directories":{},"_nodeVersion":"20.19.5","dependencies":{"@griffel/react":"^1.5.30"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","tsup":"^8.5.0","jsdom":"^27.0.0","vitest":"^3.2.4","storybook":"^9.1.6","typescript":"^5.9.2","react-icons":"^5.5.0","@types/react":"^19.1.12","@types/react-dom":"^19.1.9","react-router-dom":"^7.8.2","@vitest/coverage-v8":"^3.2.4","@testing-library/dom":"^10.4.1","@storybook/addon-docs":"^9.1.6","@storybook/react-vite":"^9.1.6","@testing-library/react":"^16.3.0","@testing-library/jest-dom":"^6.8.0","@testing-library/user-event":"^14.6.1","@fortawesome/fontawesome-free":"^7.0.1","storybook-addon-pseudo-states":"^9.1.6"},"peerDependencies":{"react":"^19.1.1","react-dom":"^19.1.1"},"optionalDependencies":{"react-router-dom":"^7.8.2"},"_npmOperationalInternal":{"tmp":"tmp/components_2.5.1_1758866700620_0.5611675463953143","host":"s3://npm-registry-packages-npm-production"}},"2.5.3":{"name":"@polyutils/components","version":"2.5.3","keywords":["react","pagination","hook","component"],"author":{"name":"Marios Papamarkou"},"license":"MIT","_id":"@polyutils/components@2.5.3","maintainers":[{"name":"mariosdrth","email":"mariosdrth2005@gmail.com"}],"homepage":"https://github.com/polyshape/poly_components#readme","bugs":{"url":"https://github.com/polyshape/poly_components/issues"},"dist":{"shasum":"064be2156e4d7de835c43bce3b52dc2a6cd2c11c","tarball":"https://registry.npmjs.org/@polyutils/components/-/components-2.5.3.tgz","fileCount":9,"integrity":"sha512-YcuDfpo7VWfah8ixJc0IdR206qVRByOIyPLYsa/RWyQQMNTrl58RmtYbKlSah85koSl9dOjhRKqAURGLunIJ7Q==","signatures":[{"sig":"MEQCIC7t/KPJGAF3v4ldQwRW+z/VuiawCxPWt1W6cdyOGdFpAiAlXJFlttbXeijv/q/GBC+5Q+E/fowIUrvnMGcpcoEbTw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":422618},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"012dbf13a1056ca96316d18c53efab80dc5067ef","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","clean":"rm -rf dist","test:ci":"vitest run --reporter=dot","dev:link":"rm -rf node_modules && npm install --no-package-lock --legacy-peer-deps && npm link","dev:watch":"rm -rf node_modules && npm install --no-package-lock --legacy-peer-deps && npm link && tsup --watch","storybook":"storybook dev -p 6006","test:watch":"vitest --watch","exports:check":"node scripts/exports.mjs --check","exports:write":"node scripts/exports.mjs","release:major":"npm version major && git push && git push --tags","release:minor":"npm version minor && git push && git push --tags","release:patch":"npm version patch && git push && git push --tags","prepublishOnly":"npm run exports:write && npm run clean && npm run build","build-storybook":"storybook build"},"_npmUser":{"name":"mariosdrth","email":"mariosdrth2005@gmail.com"},"repository":{"url":"git+https://github.com/polyshape/poly_components.git","type":"git"},"_npmVersion":"10.8.2","description":"Reusable React components","directories":{},"_nodeVersion":"20.19.5","dependencies":{"@griffel/react":"^1.5.30"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","tsup":"^8.5.0","jsdom":"^27.0.0","vitest":"^3.2.4","storybook":"^9.1.8","typescript":"^5.9.2","react-icons":"^5.5.0","@types/react":"^19.1.12","@types/react-dom":"^19.1.9","react-router-dom":"^7.8.2","@vitest/coverage-v8":"^3.2.4","@testing-library/dom":"^10.4.1","@storybook/addon-docs":"^9.1.8","@storybook/react-vite":"^9.1.8","@testing-library/react":"^16.3.0","@testing-library/jest-dom":"^6.8.0","@testing-library/user-event":"^14.6.1","@fortawesome/fontawesome-free":"^7.0.1","storybook-addon-pseudo-states":"^9.1.8"},"peerDependencies":{"react":"^19.1.1","react-dom":"^19.1.1"},"optionalDependencies":{"react-router-dom":"^7.8.2"},"_npmOperationalInternal":{"tmp":"tmp/components_2.5.3_1758903143464_0.37794784811414717","host":"s3://npm-registry-packages-npm-production"}},"2.5.4":{"name":"@polyutils/components","version":"2.5.4","keywords":["react","pagination","hook","component"],"author":{"name":"Marios Papamarkou"},"license":"MIT","_id":"@polyutils/components@2.5.4","maintainers":[{"name":"mariosdrth","email":"mariosdrth2005@gmail.com"}],"homepage":"https://github.com/polyshape/poly_components#readme","bugs":{"url":"https://github.com/polyshape/poly_components/issues"},"dist":{"shasum":"25edb6e65f5e1ee953fa9c868c7ffa23d9362228","tarball":"https://registry.npmjs.org/@polyutils/components/-/components-2.5.4.tgz","fileCount":9,"integrity":"sha512-YRpBkr2P2ixXFcymmlP9hK0dExgi5bYzc/d3Cdif7ifkxwH3GOAxTT0j1QFMv35LqCL7MuJq2Lwr7TvBa8umnQ==","signatures":[{"sig":"MEQCIEMkTHgrnD9cjAFRvQRH9LZV/q2J3U8DsZe6YCYk0vFVAiBQD9pLrtylFbDpbEEeAnKhsfk7TvRIC+cDlMnrOL2uYQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":422970},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"f49520aacb7771e0ede3763503407face6fec808","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","clean":"rm -rf dist","test:ci":"vitest run --reporter=dot","dev:link":"rm -rf node_modules && npm install --no-package-lock --legacy-peer-deps && npm link","dev:watch":"rm -rf node_modules && npm install --no-package-lock --legacy-peer-deps && npm link && tsup --watch","storybook":"storybook dev -p 6006","test:watch":"vitest --watch","exports:check":"node scripts/exports.mjs --check","exports:write":"node scripts/exports.mjs","release:major":"npm version major && git push && git push --tags","release:minor":"npm version minor && git push && git push --tags","release:patch":"npm version patch && git push && git push --tags","prepublishOnly":"npm run exports:write && npm run clean && npm run build","build-storybook":"storybook build"},"_npmUser":{"name":"mariosdrth","email":"mariosdrth2005@gmail.com"},"repository":{"url":"git+https://github.com/polyshape/poly_components.git","type":"git"},"_npmVersion":"10.8.2","description":"Reusable React components","directories":{},"_nodeVersion":"20.19.5","dependencies":{"@griffel/react":"^1.5.30"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","tsup":"^8.5.0","jsdom":"^27.0.0","vitest":"^3.2.4","storybook":"^9.1.8","typescript":"^5.9.2","react-icons":"^5.5.0","@types/react":"^19.1.12","@types/react-dom":"^19.1.9","react-router-dom":"^7.8.2","@vitest/coverage-v8":"^3.2.4","@testing-library/dom":"^10.4.1","@storybook/addon-docs":"^9.1.8","@storybook/react-vite":"^9.1.8","@testing-library/react":"^16.3.0","@testing-library/jest-dom":"^6.8.0","@testing-library/user-event":"^14.6.1","@fortawesome/fontawesome-free":"^7.0.1","storybook-addon-pseudo-states":"^9.1.8"},"peerDependencies":{"react":"^19.1.1","react-dom":"^19.1.1"},"optionalDependencies":{"react-router-dom":"^7.8.2"},"_npmOperationalInternal":{"tmp":"tmp/components_2.5.4_1758915692763_0.8658536392833778","host":"s3://npm-registry-packages-npm-production"}},"2.6.0":{"name":"@polyutils/components","version":"2.6.0","keywords":["react","pagination","hook","component"],"author":{"name":"Marios Papamarkou"},"license":"MIT","_id":"@polyutils/components@2.6.0","maintainers":[{"name":"mariosdrth","email":"mariosdrth2005@gmail.com"}],"homepage":"https://github.com/polyshape/poly_components#readme","bugs":{"url":"https://github.com/polyshape/poly_components/issues"},"dist":{"shasum":"dcc2c0e2cb1c875b371a2591618a90bbc8d9dd12","tarball":"https://registry.npmjs.org/@polyutils/components/-/components-2.6.0.tgz","fileCount":9,"integrity":"sha512-Qt1Q6Nr7L082+ab6zoOLoHXcc/9eKyfyGeuUp3NqeRWl5vhDSnt5HmjDA7woK9R3FyFcLnaURowfyhDo5O4Sbg==","signatures":[{"sig":"MEUCIA1C9aChNyGnV8NmcfW9UJupo8JCjzQBHGrC6GRKp07zAiEA3CQ3PrsnMoC4y2aZZGH6iEr9BN4DwXkHSXot5/6wI7M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":536128},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"1bf892c2b3ada87af2502c6028ae2156d9419be0","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","clean":"rm -rf dist","test:ci":"vitest run --reporter=dot","dev:link":"rm -rf node_modules && npm install --no-package-lock --legacy-peer-deps && npm link","dev:watch":"rm -rf node_modules && npm install --no-package-lock --legacy-peer-deps && npm link && tsup --watch","storybook":"storybook dev -p 6006","test:watch":"vitest --watch","exports:check":"node scripts/exports.mjs --check","exports:write":"node scripts/exports.mjs","release:major":"npm version major && git push && git push --tags","release:minor":"npm version minor && git push && git push --tags","release:patch":"npm version patch && git push && git push --tags","prepublishOnly":"npm run exports:write && npm run clean && npm run build","build-storybook":"storybook build"},"_npmUser":{"name":"mariosdrth","email":"mariosdrth2005@gmail.com"},"repository":{"url":"git+https://github.com/polyshape/poly_components.git","type":"git"},"_npmVersion":"10.8.2","description":"Reusable React components","directories":{},"_nodeVersion":"20.19.5","dependencies":{"@griffel/react":"^1.5.30"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","tsup":"^8.5.0","jsdom":"^27.0.0","vitest":"^3.2.4","storybook":"^9.1.8","typescript":"^5.9.2","react-icons":"^5.5.0","@types/react":"^19.1.12","@types/react-dom":"^19.1.9","react-router-dom":"^7.8.2","@vitest/coverage-v8":"^3.2.4","@testing-library/dom":"^10.4.1","@storybook/addon-docs":"^9.1.8","@storybook/react-vite":"^9.1.8","@testing-library/react":"^16.3.0","@testing-library/jest-dom":"^6.8.0","@testing-library/user-event":"^14.6.1","@fortawesome/fontawesome-free":"^7.0.1","storybook-addon-pseudo-states":"^9.1.8"},"peerDependencies":{"react":"^19.1.1","react-dom":"^19.1.1"},"optionalDependencies":{"react-router-dom":"^7.8.2"},"_npmOperationalInternal":{"tmp":"tmp/components_2.6.0_1759088637544_0.539067978487749","host":"s3://npm-registry-packages-npm-production"}},"2.6.1":{"name":"@polyutils/components","version":"2.6.1","keywords":["react","pagination","hook","component"],"author":{"name":"Marios Papamarkou"},"license":"MIT","_id":"@polyutils/components@2.6.1","maintainers":[{"name":"mariosdrth","email":"mariosdrth2005@gmail.com"}],"homepage":"https://github.com/polyshape/poly_components#readme","bugs":{"url":"https://github.com/polyshape/poly_components/issues"},"dist":{"shasum":"15b82c5c6b5a3b27eac23159d51ba2a7d82b1125","tarball":"https://registry.npmjs.org/@polyutils/components/-/components-2.6.1.tgz","fileCount":9,"integrity":"sha512-iDDMUHwMpLlTPIv1/3QIv823W8bse9uhoFRpw8VVKCtKvKfBUTL8WS6jJ86jzmWNMOmgyP+86la1B5et9/jOTQ==","signatures":[{"sig":"MEYCIQC8xrrYOx5IYL7iN8e0t5lXeLZ8ZmQDV4EVcgw9wVXyrQIhAKCcv14+2pHoPUkcYGm9WHRRkrRPr2jmYN7H0BfR9i6m","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":540889},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"8e9842c6ac45ac58f1921b8eae8ff3b9ad9ab764","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","clean":"rm -rf dist","test:ci":"vitest run --reporter=dot","dev:link":"rm -rf node_modules && npm install --no-package-lock --legacy-peer-deps && npm link","dev:watch":"rm -rf node_modules && npm install --no-package-lock --legacy-peer-deps && npm link && tsup --watch","storybook":"storybook dev -p 6006","test:watch":"vitest --watch","exports:check":"node scripts/exports.mjs --check","exports:write":"node scripts/exports.mjs","release:major":"npm version major && git push && git push --tags","release:minor":"npm version minor && git push && git push --tags","release:patch":"npm version patch && git push && git push --tags","prepublishOnly":"npm run exports:write && npm run clean && npm run build","build-storybook":"storybook build"},"_npmUser":{"name":"mariosdrth","email":"mariosdrth2005@gmail.com"},"repository":{"url":"git+https://github.com/polyshape/poly_components.git","type":"git"},"_npmVersion":"10.8.2","description":"Reusable React components","directories":{},"_nodeVersion":"20.19.5","dependencies":{"@griffel/react":"^1.5.30"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","tsup":"^8.5.0","jsdom":"^27.0.0","vitest":"^3.2.4","storybook":"^9.1.8","typescript":"^5.9.2","react-icons":"^5.5.0","@types/react":"^19.1.12","@types/react-dom":"^19.1.9","react-router-dom":"^7.8.2","@vitest/coverage-v8":"^3.2.4","@testing-library/dom":"^10.4.1","@storybook/addon-docs":"^9.1.8","@storybook/react-vite":"^9.1.8","@testing-library/react":"^16.3.0","@testing-library/jest-dom":"^6.8.0","@testing-library/user-event":"^14.6.1","@fortawesome/fontawesome-free":"^7.0.1","storybook-addon-pseudo-states":"^9.1.8"},"peerDependencies":{"react":"^19.1.1","react-dom":"^19.1.1"},"optionalDependencies":{"react-router-dom":"^7.8.2"},"_npmOperationalInternal":{"tmp":"tmp/components_2.6.1_1759174665698_0.7452312407420314","host":"s3://npm-registry-packages-npm-production"}},"2.6.2":{"name":"@polyutils/components","version":"2.6.2","keywords":["react","pagination","hook","component"],"author":{"name":"Marios Papamarkou"},"license":"MIT","_id":"@polyutils/components@2.6.2","maintainers":[{"name":"mariosdrth","email":"mariosdrth2005@gmail.com"}],"homepage":"https://github.com/polyshape/poly_components#readme","bugs":{"url":"https://github.com/polyshape/poly_components/issues"},"dist":{"shasum":"819263d915241c9037349a8f54b8ba08013ca0a6","tarball":"https://registry.npmjs.org/@polyutils/components/-/components-2.6.2.tgz","fileCount":9,"integrity":"sha512-vKTHQPeN21LdqykK1pvlann0/8D3jH3VQAN0jpVfUiYGYQaEIw121tCx67e8w9KTrHYjzYhgVHF03p7h+bVVcA==","signatures":[{"sig":"MEUCIHswyOW8JkLNj1s27r5M9oQbuqOeDDX4pW6PVME8DQpXAiEA1jf4L+Od5PqaJ4HpZXUZKr/Zop7qx+aImBPedO8L6wY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":553482},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"336d867d71b9910cc217c8039f5bb107b60d6a4c","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","clean":"rm -rf dist","test:ci":"vitest run --reporter=dot","dev:link":"rm -rf node_modules && npm install --no-package-lock --legacy-peer-deps && npm link","dev:watch":"rm -rf node_modules && npm install --no-package-lock --legacy-peer-deps && npm link && tsup --watch","storybook":"storybook dev -p 6006","test:watch":"vitest --watch","exports:check":"node scripts/exports.mjs --check","exports:write":"node scripts/exports.mjs","release:major":"npm version major && git push && git push --tags","release:minor":"npm version minor && git push && git push --tags","release:patch":"npm version patch && git push && git push --tags","prepublishOnly":"npm run exports:write && npm run clean && npm run build","build-storybook":"storybook build"},"_npmUser":{"name":"mariosdrth","email":"mariosdrth2005@gmail.com"},"repository":{"url":"git+https://github.com/polyshape/poly_components.git","type":"git"},"_npmVersion":"10.8.2","description":"Reusable React components","directories":{},"_nodeVersion":"20.19.5","dependencies":{"@griffel/react":"^1.5.30"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","tsup":"^8.5.0","jsdom":"^27.0.0","vitest":"^3.2.4","storybook":"^9.1.8","typescript":"^5.9.2","react-icons":"^5.5.0","@types/react":"^19.1.12","@types/react-dom":"^19.1.9","react-router-dom":"^7.8.2","@vitest/coverage-v8":"^3.2.4","@testing-library/dom":"^10.4.1","@storybook/addon-docs":"^9.1.8","@storybook/react-vite":"^9.1.8","@testing-library/react":"^16.3.0","@testing-library/jest-dom":"^6.8.0","@testing-library/user-event":"^14.6.1","@fortawesome/fontawesome-free":"^7.0.1","storybook-addon-pseudo-states":"^9.1.8"},"peerDependencies":{"react":"^19.1.1","react-dom":"^19.1.1"},"optionalDependencies":{"react-router-dom":"^7.8.2"},"_npmOperationalInternal":{"tmp":"tmp/components_2.6.2_1759222839941_0.7801627289755708","host":"s3://npm-registry-packages-npm-production"}},"2.6.3":{"name":"@polyutils/components","version":"2.6.3","keywords":["react","pagination","hook","component"],"author":{"name":"Marios Papamarkou"},"license":"MIT","_id":"@polyutils/components@2.6.3","maintainers":[{"name":"mariosdrth","email":"mariosdrth2005@gmail.com"}],"homepage":"https://github.com/polyshape/poly_components#readme","bugs":{"url":"https://github.com/polyshape/poly_components/issues"},"dist":{"shasum":"fbb1feafa25004fdee78bbb6c2a92dc5a3191bca","tarball":"https://registry.npmjs.org/@polyutils/components/-/components-2.6.3.tgz","fileCount":9,"integrity":"sha512-KtQ9N6xiheWYFh25ckUCvJK02i2K+oxUNCLbSVNHqiwSfFzHRh/jvBBp6wYtQy3k+AaTxLHMwZRuMNBJCEd3JQ==","signatures":[{"sig":"MEQCIG9z/f/BJrag0WLaO8QJFeeGH0Y/mC3lBKkBf9pHd3iwAiAhsTFNBQ92WHB2JNprB2HGMrvcRNgdFNaL1uU1etlAtA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":561166},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"03084de82c3803be7c3e798931f0a65bc920ce62","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"vitest","build":"tsup","clean":"rm -rf dist","test:ci":"vitest run --reporter=dot","dev:link":"rm -rf node_modules && npm install --no-package-lock --legacy-peer-deps && npm link","lint:fix":"eslint . --fix","dev:watch":"rm -rf node_modules && npm install --no-package-lock --legacy-peer-deps && npm link && tsup --watch","storybook":"storybook dev -p 6006","test:watch":"vitest --watch","exports:check":"node scripts/exports.mjs --check","exports:write":"node scripts/exports.mjs","release:major":"npm version major && git push && git push --tags","release:minor":"npm version minor && git push && git push --tags","release:patch":"npm version patch && git push && git push --tags","prepublishOnly":"npm run exports:write && npm run clean && npm run build","build-storybook":"storybook build"},"_npmUser":{"name":"mariosdrth","email":"mariosdrth2005@gmail.com"},"repository":{"url":"git+https://github.com/polyshape/poly_components.git","type":"git"},"_npmVersion":"10.8.2","description":"Reusable React components","directories":{},"_nodeVersion":"20.19.5","dependencies":{"@griffel/react":"^1.5.30"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","tsup":"^8.5.0","jsdom":"^27.0.0","eslint":"^9.33.0","vitest":"^3.2.4","globals":"^16.3.0","prettier":"^3.6.2","storybook":"^9.1.8","@eslint/js":"^9.33.0","typescript":"^5.9.2","react-icons":"^5.5.0","@types/react":"^19.1.12","@types/react-dom":"^19.1.9","react-router-dom":"^7.8.2","typescript-eslint":"^8.39.1","@vitest/coverage-v8":"^3.2.4","@testing-library/dom":"^10.4.1","@storybook/addon-docs":"^9.1.8","@storybook/react-vite":"^9.1.8","@testing-library/react":"^16.3.0","@testing-library/jest-dom":"^6.8.0","eslint-plugin-react-hooks":"^5.2.0","@testing-library/user-event":"^14.6.1","@fortawesome/fontawesome-free":"^7.0.1","storybook-addon-pseudo-states":"^9.1.8"},"peerDependencies":{"react":"^19.1.1","react-dom":"^19.1.1"},"optionalDependencies":{"react-router-dom":"^7.8.2"},"_npmOperationalInternal":{"tmp":"tmp/components_2.6.3_1759614491675_0.5456371351748059","host":"s3://npm-registry-packages-npm-production"}},"2.7.0":{"name":"@polyutils/components","version":"2.7.0","keywords":["react","pagination","hook","component"],"author":{"name":"Marios Papamarkou"},"license":"MIT","_id":"@polyutils/components@2.7.0","maintainers":[{"name":"mariosdrth","email":"mariosdrth2005@gmail.com"}],"homepage":"https://github.com/polyshape/poly_components#readme","bugs":{"url":"https://github.com/polyshape/poly_components/issues"},"dist":{"shasum":"29921aca823a63be41441d5b3eb28d40ebed4d08","tarball":"https://registry.npmjs.org/@polyutils/components/-/components-2.7.0.tgz","fileCount":9,"integrity":"sha512-X6ieL9AM8HHSSYNa9lX+iiSihnbNAZR5UUm7bKYan/AqtLGmdE5bkb5JDrPMma/2XHxN7WBrJBx5M2NGupCh0w==","signatures":[{"sig":"MEYCIQCQeF75QeBwz+nHVsqSMhUX304Ohy/Ya9Ln9wcEMS2CrwIhAK85gN0kpsmPFvQl3K1UjJzgFpaB4vUhWMdHakOfv5W2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1719686},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"36a436ac7263c5c5d57d73d95a8d972465291798","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"vitest","build":"tsup","clean":"rm -rf dist","test:ci":"vitest run --reporter=dot","dev:link":"rm -rf node_modules && npm install --no-package-lock --legacy-peer-deps && npm link","lint:fix":"eslint . --fix","dev:watch":"rm -rf node_modules && npm install --no-package-lock --legacy-peer-deps && npm link && tsup --watch","storybook":"storybook dev -p 6006","test:watch":"vitest --watch","icons:update":"npm run icons:components:write && npm run icons:named:write && npm run icons:registry:write","exports:check":"node scripts/exports.mjs --check","exports:write":"node scripts/exports.mjs","release:major":"npm version major && git push && git push --tags","release:minor":"npm version minor && git push && git push --tags","release:patch":"npm version patch && git push && git push --tags","prepublishOnly":"npm run exports:write && npm run icons:components:write && npm run icons:named:write && npm run clean && npm run build","build-storybook":"storybook build","icons:named:check":"node scripts/generate-named-icons.mjs --check","icons:named:write":"node scripts/generate-named-icons.mjs","icons:registry:check":"node scripts/update-icon-registry.mjs --check","icons:registry:write":"node scripts/update-icon-registry.mjs","icons:components:check":"node scripts/generate-components-barrel.mjs --check","icons:components:write":"node scripts/generate-components-barrel.mjs"},"_npmUser":{"name":"mariosdrth","email":"mariosdrth2005@gmail.com"},"repository":{"url":"git+https://github.com/polyshape/poly_components.git","type":"git"},"_npmVersion":"10.8.2","description":"Reusable React components","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"@griffel/react":"^1.5.30"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","tsup":"^8.5.0","jsdom":"^27.0.0","eslint":"^9.33.0","vitest":"^3.2.4","globals":"^16.3.0","prettier":"^3.6.2","storybook":"^9.1.10","@eslint/js":"^9.33.0","typescript":"^5.9.2","react-icons":"^5.5.0","@types/react":"^19.1.12","@types/react-dom":"^19.1.9","react-router-dom":"^7.8.2","typescript-eslint":"^8.39.1","@vitest/coverage-v8":"^3.2.4","@testing-library/dom":"^10.4.1","@storybook/addon-docs":"^9.1.10","@storybook/react-vite":"^9.1.10","@testing-library/react":"^16.3.0","eslint-plugin-storybook":"9.1.10","@testing-library/jest-dom":"^6.8.0","eslint-plugin-react-hooks":"^5.2.0","@testing-library/user-event":"^14.6.1","storybook-addon-pseudo-states":"^9.1.10"},"peerDependencies":{"react":"^19.1.1","react-dom":"^19.1.1"},"optionalDependencies":{"react-router-dom":"^7.8.2"},"_npmOperationalInternal":{"tmp":"tmp/components_2.7.0_1761400024347_0.9104589340692952","host":"s3://npm-registry-packages-npm-production"}},"2.7.1":{"name":"@polyutils/components","version":"2.7.1","keywords":["react","pagination","hook","component"],"author":{"name":"Marios Papamarkou"},"license":"MIT","_id":"@polyutils/components@2.7.1","maintainers":[{"name":"mariosdrth","email":"mariosdrth2005@gmail.com"}],"homepage":"https://github.com/polyshape/poly_components#readme","bugs":{"url":"https://github.com/polyshape/poly_components/issues"},"dist":{"shasum":"2620c077839d510868fea7fd6f555e7ef38947c6","tarball":"https://registry.npmjs.org/@polyutils/components/-/components-2.7.1.tgz","fileCount":9,"integrity":"sha512-+LIuW+y5TsaJ9AdFGpTqMPK3vbKwrJKU7it0WT4l2pFMH3ddWwIj2NQ4Vcd4sXy4vg+MtI6XuIhevdmqFpEG9A==","signatures":[{"sig":"MEUCIQCGPkNClR+18seJenwdNt0wz5y6uPkqAh+zPAR0grimhQIgY9Ob1oWDTVZ7OeQNG66MHaFuRg2O9RMRm30wkZOK1T8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1748782},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"6df0245de4eb347d680c324ba671c743eab6b52b","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"vitest","build":"tsup","clean":"rm -rf dist","test:ci":"vitest run --reporter=dot","dev:link":"rm -rf node_modules && npm install --no-package-lock --legacy-peer-deps && npm link","lint:fix":"eslint . --fix","dev:watch":"rm -rf node_modules && npm install --no-package-lock --legacy-peer-deps && npm link && tsup --watch","storybook":"storybook dev -p 6006","test:watch":"vitest --watch","icons:update":"npm run icons:components:write && npm run icons:named:write && npm run icons:registry:write","exports:check":"node scripts/exports.mjs --check","exports:write":"node scripts/exports.mjs","release:major":"npm version major && git push && git push --tags","release:minor":"npm version minor && git push && git push --tags","release:patch":"npm version patch && git push && git push --tags","prepublishOnly":"npm run exports:write && npm run icons:components:write && npm run icons:named:write && npm run clean && npm run build","build-storybook":"storybook build","icons:named:check":"node scripts/generate-named-icons.mjs --check","icons:named:write":"node scripts/generate-named-icons.mjs","icons:registry:check":"node scripts/update-icon-registry.mjs --check","icons:registry:write":"node scripts/update-icon-registry.mjs","icons:components:check":"node scripts/generate-components-barrel.mjs --check","icons:components:write":"node scripts/generate-components-barrel.mjs"},"_npmUser":{"name":"mariosdrth","email":"mariosdrth2005@gmail.com"},"repository":{"url":"git+https://github.com/polyshape/poly_components.git","type":"git"},"_npmVersion":"10.8.2","description":"Reusable React components","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"@griffel/react":"^1.5.30"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","tsup":"^8.5.0","jsdom":"^27.0.0","eslint":"^9.33.0","vitest":"^3.2.4","globals":"^16.3.0","prettier":"^3.6.2","storybook":"^9.1.10","@eslint/js":"^9.33.0","typescript":"^5.9.2","react-icons":"^5.5.0","@types/react":"^19.1.12","@types/react-dom":"^19.1.9","react-router-dom":"^7.8.2","typescript-eslint":"^8.39.1","@vitest/coverage-v8":"^3.2.4","@testing-library/dom":"^10.4.1","@storybook/addon-docs":"^9.1.10","@storybook/react-vite":"^9.1.10","@testing-library/react":"^16.3.0","eslint-plugin-storybook":"9.1.10","@testing-library/jest-dom":"^6.8.0","eslint-plugin-react-hooks":"^5.2.0","@testing-library/user-event":"^14.6.1","storybook-addon-pseudo-states":"^9.1.10"},"peerDependencies":{"react":"^19.1.1","react-dom":"^19.1.1"},"optionalDependencies":{"react-router-dom":"^7.8.2"},"_npmOperationalInternal":{"tmp":"tmp/components_2.7.1_1761404397531_0.9115197844218306","host":"s3://npm-registry-packages-npm-production"}},"2.8.0":{"name":"@polyutils/components","version":"2.8.0","type":"module","description":"Reusable React components","license":"MIT","main":"dist/index.cjs","module":"dist/index.js","types":"dist/index.d.ts","sideEffects":false,"scripts":{"build":"tsup","dev":"tsup --watch","clean":"rm -rf dist","lint":"eslint .","lint:fix":"eslint . --fix","icons:components:write":"node scripts/generate-components-barrel.mjs","icons:components:check":"node scripts/generate-components-barrel.mjs --check","icons:named:write":"node scripts/generate-named-icons.mjs","icons:named:check":"node scripts/generate-named-icons.mjs --check","icons:registry:write":"node scripts/update-icon-registry.mjs","icons:registry:check":"node scripts/update-icon-registry.mjs --check","icons:update":"npm run icons:components:write && npm run icons:named:write && npm run icons:registry:write","prepublishOnly":"npm run exports:write && npm run icons:components:write && npm run icons:named:write && npm run clean && npm run build","test":"vitest","test:watch":"vitest --watch","test:ci":"vitest run --reporter=dot","exports:write":"node scripts/exports.mjs","exports:check":"node scripts/exports.mjs --check","release:patch":"npm version patch && git push && git push --tags","release:minor":"npm version minor && git push && git push --tags","release:major":"npm version major && git push && git push --tags","dev:link":"rm -rf node_modules && npm install --no-package-lock --legacy-peer-deps && npm link","dev:watch":"rm -rf node_modules && npm install --no-package-lock --legacy-peer-deps && npm link && tsup --watch","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"keywords":["react","pagination","hook","component"],"author":{"name":"Marios Papamarkou"},"repository":{"type":"git","url":"git+https://github.com/polyshape/poly_components.git"},"homepage":"https://github.com/polyshape/poly_components#readme","peerDependencies":{"react":"^19.1.1","react-dom":"^19.1.1"},"optionalDependencies":{"react-router-dom":"^7.8.2"},"devDependencies":{"@eslint/js":"^9.33.0","@storybook/addon-docs":"^9.1.10","@storybook/react-vite":"^9.1.10","@testing-library/dom":"^10.4.1","@testing-library/jest-dom":"^6.8.0","@testing-library/react":"^16.3.0","@testing-library/user-event":"^14.6.1","@types/react":"^19.1.12","@types/react-dom":"^19.1.9","@vitest/coverage-v8":"^3.2.4","eslint":"^9.33.0","eslint-plugin-react-hooks":"^5.2.0","globals":"^16.3.0","jsdom":"^27.0.0","prettier":"^3.6.2","react-icons":"^5.5.0","react-router-dom":"^7.8.2","shx":"^0.4.0","storybook":"^9.1.10","storybook-addon-pseudo-states":"^9.1.10","tsup":"^8.5.0","typescript":"^5.9.2","typescript-eslint":"^8.39.1","vitest":"^3.2.4","eslint-plugin-storybook":"9.1.10"},"dependencies":{"@griffel/react":"^1.5.30"},"_id":"@polyutils/components@2.8.0","gitHead":"e10c863a9acb252d7325fceebcd1f7ad85351344","bugs":{"url":"https://github.com/polyshape/poly_components/issues"},"_nodeVersion":"20.19.6","_npmVersion":"10.8.2","dist":{"integrity":"sha512-KqBRTSDwSqjn7rOvn/cwoRPL8Mh3qGwqoB66lnxISYGyR7JlOIsPjUiMrB1JGgnOA6kAjJ07zv2Hm9tsLT4t2A==","shasum":"24cc15d764be8533e3424679fa4425bf30629a0d","tarball":"https://registry.npmjs.org/@polyutils/components/-/components-2.8.0.tgz","fileCount":9,"unpackedSize":1764331,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCxr64YRUWPaShCy1BThX7gCMlpWq/4dIeJjx2F/JSZNgIgCO7W51ySifJHPhIqNDeLl6GlUMVzuaKC2QJGkT9liIg="}]},"_npmUser":{"name":"mariosdrth","email":"mariosdrth2005@gmail.com"},"directories":{},"maintainers":[{"name":"mariosdrth","email":"mariosdrth2005@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/components_2.8.0_1768987105463_0.6820014510167323"},"_hasShrinkwrap":false}},"time":{"created":"2025-09-13T20:27:53.589Z","modified":"2026-01-21T09:18:25.968Z","1.0.0":"2025-09-12T15:49:55.582Z","1.0.1":"2025-09-12T17:53:00.614Z","2.0.0":"2025-09-13T20:21:24.117Z","2.1.0":"2025-09-13T20:27:53.885Z","2.2.0":"2025-09-14T17:27:25.797Z","2.2.1":"2025-09-14T19:28:13.897Z","2.2.2":"2025-09-14T20:54:06.058Z","2.2.3":"2025-09-15T06:34:43.436Z","2.3.0":"2025-09-15T10:03:51.934Z","2.3.1":"2025-09-15T11:03:50.865Z","2.3.2":"2025-09-15T12:50:35.498Z","2.4.2":"2025-09-20T10:45:27.165Z","2.4.3":"2025-09-20T14:20:59.636Z","2.4.4":"2025-09-21T07:38:05.982Z","2.4.5":"2025-09-21T12:42:39.092Z","2.5.0":"2025-09-25T20:27:02.844Z","2.5.1":"2025-09-26T06:05:00.893Z","2.5.3":"2025-09-26T16:12:23.703Z","2.5.4":"2025-09-26T19:41:33.021Z","2.6.0":"2025-09-28T19:43:57.758Z","2.6.1":"2025-09-29T19:37:45.967Z","2.6.2":"2025-09-30T09:00:40.208Z","2.6.3":"2025-10-04T21:48:11.893Z","2.7.0":"2025-10-25T13:47:04.629Z","2.7.1":"2025-10-25T14:59:57.761Z","2.8.0":"2026-01-21T09:18:25.851Z"},"bugs":{"url":"https://github.com/polyshape/poly_components/issues"},"author":{"name":"Marios Papamarkou"},"license":"MIT","homepage":"https://github.com/polyshape/poly_components#readme","keywords":["react","pagination","hook","component"],"repository":{"type":"git","url":"git+https://github.com/polyshape/poly_components.git"},"description":"Reusable React components","maintainers":[{"name":"mariosdrth","email":"mariosdrth2005@gmail.com"}],"readme":"# @polyutils/components\n\nReusable React components for your projects.\n\n## Installation\n\nInstall via npm:\n\n```bash\nnpm install @polyutils/components\n```\n\nMake sure your project has **React** and **ReactDOM** installed (they are peer dependencies):\n\n```bash\nnpm install react react-dom\n```\n\n**React Router DOM is optional.**\nIf you want automatic URL-based pagination, install it:\n\n```bash\nnpm install react-router-dom\n```\n\n## Usage\n\n### Example: Tabs\n\n```tsx\nimport { useState } from \"react\";\nimport { Tabs, type Tab } from \"@polyutils/components\";\n\nconst tabs: Tab[] = [\n  { key: \"tab_1\", label: \"Tab 1\", content: <div>Tab 1</div> },\n  { key: \"tab_2\", label: \"Tab 2\", content: <div>Tab 2</div> },\n];\n\nexport function TabsExample() {\n  return (\n    <Tabs\n      tabs={tabs}\n      defaultActive=\"tab_1\"\n      onChange={(key) => console.log(\"Tab changed\", key)}\n    />\n  );\n}\n\n// Controlled usage\nexport function ControlledTabsExample() {\n  const [active, setActive] = useState<Tab[\"key\"]>(\"tab_1\");\n  return <Tabs tabs={tabs} active={active} onChange={setActive} />;\n}\n```\n\nTabs manages its own active state when you provide `defaultActive`. Pass `active` to fully control it and handle `onChange` for side effects.\n\n### Example: Pagination\n\n```tsx\nimport { Pagination, usePagination } from \"@polyutils/components\";\n\nconst items = Array.from({ length: 50 }, (_, i) => `Item ${i + 1}`);\n\nfunction Example() {\n  // Automatically syncs with browser URL if React Router is configured\n  const { visible, currentPage, totalPages, setPage } = usePagination(items, 5);\n\n  return (\n    <div>\n      <ul>\n        {visible.map((item) => (\n          <li key={item}>{item}</li>\n        ))}\n      </ul>\n\n      <Pagination\n        totalPages={totalPages}\n        currentPage={currentPage}\n        setPage={setPage}\n        delta={2}\n      />\n    </div>\n  );\n}\n```\n\n#### React Router Integration\n\nTo enable automatic URL synchronization with React Router, call the setup function once in your app's main entry point:\n\n```tsx\n// In your main.tsx/main.ts\nimport { setup } from \"@polyutils/components/pagination/enableRouterIntegration\";\nimport { useSearchParams } from \"react-router-dom\";\n\nsetup({ useSearchParams });\n```\n\nAfter setup, `usePagination` will automatically:\n\n- Read the current page from URL parameters (`?page=3`)\n- Update the URL when pagination changes\n- Work with browser back/forward navigation\n- Fall back to local state if React Router is not available\n\n#### Manual State Management\n\nYou can provide custom page state management via options:\n\n```tsx\nconst [page, setPage] = useState(1);\nconst { visible, currentPage, totalPages } = usePagination(items, 5, {\n  getPage: () => page,\n  setPageParam: setPage,\n});\n```\n\nUse `getPage` and `setPageParam` options when you want full control over pagination state, or when using a different routing solution.\n\n### Example: Button\n\n```tsx\nimport { Button } from \"@polyutils/components\";\n\nexport function ButtonShowcase() {\n  return (\n    <div style={{ display: \"grid\", gap: 12 }}>\n      {/* Appearances */}\n      <div style={{ display: \"flex\", gap: 8, flexWrap: \"wrap\" }}>\n        <Button appearance=\"primary\">Primary</Button>\n        <Button appearance=\"secondary\">Secondary</Button>\n        <Button appearance=\"outline\">Outline</Button>\n        <Button appearance=\"subtle\">Subtle</Button>\n        <Button appearance=\"transparent\">Transparent</Button>\n        <Button appearance=\"danger\">Danger</Button>\n      </div>\n\n      {/* Sizes & shapes */}\n      <div\n        style={{\n          display: \"flex\",\n          gap: 8,\n          flexWrap: \"wrap\",\n          alignItems: \"center\",\n        }}\n      >\n        <Button size=\"small\">Small</Button>\n        <Button size=\"medium\">Medium</Button>\n        <Button size=\"large\">Large</Button>\n        <Button shape=\"square\">Square</Button>\n      </div>\n\n      {/* Icons and loading */}\n      <div\n        style={{\n          display: \"flex\",\n          gap: 8,\n          flexWrap: \"wrap\",\n          alignItems: \"center\",\n        }}\n      >\n        <Button loading appearance=\"primary\">\n          Loading…\n        </Button>\n        <Button disabled>Disabled</Button>\n      </div>\n    </div>\n  );\n}\n```\n\n### Example: Button dropdown\n\nTurn any Button into a dropdown trigger by passing `menuItems`. Items can be anchors, spans, or even another Button. Use `menuTrigger` to choose hover/click behavior and `hideChevron` to remove the chevron if you prefer an icon-only look.\n\n```tsx\nimport { Button } from \"@polyutils/components\";\n\nexport function ButtonDropdownExample() {\n  return (\n    <Button\n      menuTrigger=\"click\" // 'hover' | 'click' | 'both' (default: 'hover')\n      styles={{\n        dropdown: { minWidth: 220 },\n        dropdownArrow: {\n          size: 10, // px\n          top: 4, // px from dropdown top\n          right: \"24px\", // or left: '50%'\n          background: \"var(--pc-bg)\",\n          borderColor: \"var(--pc-border)\",\n          // offsetX: -6,     // optional nudge after auto-alignment\n        },\n      }}\n      menuItems={[\n        <a href=\"#docs\" key=\"a\" onClick={(e) => e.preventDefault()}>\n          Anchor Item\n        </a>,\n        <span key=\"s\">Span Item</span>,\n        <Button key=\"b\" appearance=\"subtle\" size=\"small\">\n          Button Item\n        </Button>,\n      ]}\n    >\n      Actions\n    </Button>\n  );\n}\n```\n\nNotes\n\n- The small arrow aligns under the chevron; if you set `hideChevron`, it centers under the button. You can nudge it with `styles.dropdownArrow.offsetX` or fully override using `left`/`right`.\n\n### Example: Icons\n\n```tsx\nimport { Icon } from \"@polyutils/components\";\nimport { HomeIcon, SearchIcon, StarIcon } from \"@polyutils/components/icons\";\n\nfunction IconExample() {\n  return (\n    <div>\n      {/* Basic usage */}\n      <Icon name=\"home\" />\n      <Icon name=\"user\" />\n      <Icon name=\"settings\" />\n\n      {/* Custom styling */}\n      <Icon name=\"home\" style={{ fontSize: \"24px\", color: \"blue\" }} />\n\n      {/* Stroke weight control */}\n      <div style={{ display: \"flex\", gap: 12, alignItems: \"center\" }}>\n        <Icon name=\"home\" weight=\"thin\" />\n        <Icon name=\"home\" weight=\"light\" />\n        <Icon name=\"home\" weight=\"normal\" />\n        <Icon name=\"home\" weight=\"medium\" />\n        <Icon name=\"home\" weight=\"bold\" />\n        <Icon name=\"home\" weight=\"heavy\" />\n        {/* You can also pass a number, e.g., weight={1.25} */}\n      </div>\n\n      {/* Different sizes inherit parent font size */}\n      <div style={{ fontSize: \"16px\" }}>\n        <Icon name=\"home\" />\n      </div>\n      <div style={{ fontSize: \"32px\" }}>\n        <Icon name=\"user\" />\n      </div>\n      <div style={{ fontSize: \"48px\" }}>\n        <Icon name=\"settings\" />\n      </div>\n\n      {/* With accessibility */}\n      <Icon name=\"settings\" aria-label=\"Settings\" />\n\n      {/* Direct icon components (tree-shakable) */}\n      <div\n        style={{\n          display: \"flex\",\n          gap: 12,\n          alignItems: \"center\",\n          marginTop: 12,\n        }}\n      >\n        <HomeIcon weight=\"bold\" style={{ fontSize: 24 }} />\n        <SearchIcon spin style={{ fontSize: 24 }} />\n        <StarIcon weight=\"thin\" style={{ fontSize: 24, color: \"goldenrod\" }} />\n      </div>\n\n      {/* Spin speed overrides */}\n      <div\n        style={{\n          display: \"flex\",\n          gap: 12,\n          alignItems: \"center\",\n          marginTop: 12,\n        }}\n      >\n        {/* Override only the duration (keeps default animation name and timing function) */}\n        <Icon\n          name=\"refresh\"\n          spin\n          style={{ fontSize: 24, animationDuration: \"2s\" }}\n        />\n\n        {/* Override the full animation shorthand */}\n        <HomeIcon\n          spin\n          style={{\n            fontSize: 24,\n            animation: \"pc-icon-spin 500ms linear infinite\",\n          }}\n        />\n      </div>\n    </div>\n  );\n}\n```\n\nIcons inherit the font size and color of their parent element, making them easy to style consistently. All icons are SVG-based for crisp rendering at any size.\n\nIcon props of note:\n\n- `weight`: Controls the stroke thickness of line-based icons. Accepts `'thin' | 'light' | 'normal' | 'medium' | 'bold' | 'heavy'` or a custom `number` (strokeWidth). Default is `\"normal\"`.\n- `spin`: When `true`, adds a simple continuous rotation animation (useful for loaders).\n\nDirect icon components:\n\n- You can import individual icons directly from `@polyutils/components/icons` (e.g., `HomeIcon`, `SearchIcon`, `StarIcon`).\n- They accept the same props (`weight`, `spin`, and standard SVG props). Size is controlled via `style.fontSize`.\n\nNote on filled icons: Some icons that are primarily filled (e.g., badges or toggles) intentionally fix certain strokes/fills for visual balance. In those cases, parts of the icon may ignore the global `weight` value (the filled shapes still follow `currentColor`).\n\n### Example: Scrollbars\n\nA lightweight wrapper that applies a thin, theme–aware custom scrollbar to its contents. It removes the default browser track background and tints the thumb to match your theme (or a color you choose).\n\n```tsx\nimport { Scrollbars, ThemeProvider, ThemeToggle } from \"@polyutils/components\";\n\nexport function ScrollAreaExample() {\n  return (\n    <ThemeProvider initialTheme=\"dark\">\n      {/* The wrapper element gets the custom scrollbar */}\n      <Scrollbars\n        scrollbarWidth=\"thin\"\n        // Override thumb color (otherwise derives from theme)\n        thumbColor=\"#7051BA\"\n        style={{\n          height: 240,\n          width: 360,\n          border: \"1px solid var(--pc-border)\",\n          borderRadius: 8,\n          padding: 8,\n          // Alternatively, you can pass the color via style:\n          // scrollbarThumb: \"#7051BA\",\n        }}\n      >\n        <div style={{ display: \"grid\", gap: 8 }}>\n          {Array.from({ length: 50 }).map((_, i) => (\n            <div\n              key={i}\n              style={{\n                padding: 8,\n                border: \"1px solid var(--pc-border)\",\n                borderRadius: 6,\n              }}\n            >\n              Row {i + 1}\n            </div>\n          ))}\n        </div>\n      </Scrollbars>\n    </ThemeProvider>\n  );\n}\n```\n\nProps\n\n- `thumbColor?: string` — sets the scrollbar thumb color (falls back to theme tokens).\n- `scrollbarWidth?: \"thin\" | \"auto\" | \"none\" | string` — Firefox-only width keyword; ignored by Chromium.\n- `style?: CSSProperties` — regular container styles (height/width/border/etc.). It also supports `style.scrollbarThumb` as an alternative way to set the thumb color per instance.\n\n### Example: Toast Notifications\n\nToast notifications for displaying temporary messages to users. Add the `Toast` component once to your app, then use the `toast` function anywhere to trigger notifications.\n\n#### Basic Usage\n\n```tsx\nimport { Toast, toast } from \"@polyutils/components\";\n\n// 1. Add Toast component once to your app (e.g. App.tsx or main.tsx)\nexport function App() {\n  return (\n    <div>\n      {/* Your app content */}\n      <main>\n        <h1>My Application</h1>\n        {/* ... rest of your app */}\n      </main>\n\n      {/* Add Toast component once and forget about it */}\n      <Toast />\n    </div>\n  );\n}\n\n// 2. Use toast function anywhere in your app\nexport function ExampleComponent() {\n  const handleSuccess = () => {\n    toast.success('Operation completed successfully!');\n  };\n\n  const handleError = () => {\n    toast.error('Something went wrong. Please try again.');\n  };\n\n  const handleWarning = () => {\n    toast.warning('Please check your input before continuing.');\n  };\n\n  const handleInfo = () => {\n    toast.info('New features are now available!');\n  };\n\n  const handleCustom = () => {\n    toast.success('File uploaded successfully!', {\n      title: 'Upload Complete',\n      duration: 8000 // 8 seconds\n    });\n  };\n\n  const handleWithAction = () => {\n    toast.success(\n      (\n        <div style={{ display: 'flex', alignItems: 'center', gap: 12 }}>\n          <span style={{ flex: 1 }}>Draft saved successfully.</span>\n          <button\n            type=\"button\"\n            onClick={(event) => {\n              event.stopPropagation();\n              toast.info('Undo clicked', { duration: 2000 });\n            }}\n          >\n            Undo\n          </button>\n        </div>\n      ),\n      {\n        title: 'Saved',\n        duration: 6000,\n      }\n    );\n  };\n  const handlePersistent = () => {\n    toast.warning('Your session will expire soon', {\n      duration: 0 // Won't auto-close\n    });\n  };\n\n  return (\n    <div>\n      <button onClick={handleSuccess}>Success Toast</button>\n      <button onClick={handleError}>Error Toast</button>\n      <button onClick={handleWarning}>Warning Toast</button>\n      <button onClick={handleInfo}>Info Toast</button>\n      <button onClick={handleCustom}>Custom Options</button>\n      <button onClick={handleWithAction}>Toast With Action</button>\n      <button onClick={handlePersistent}>Persistent Toast</button>\n\n      <button onClick={() => toast.clear()}>Clear All Toasts</button>\n    </div>\n  );\n}\n\n// Custom icon and close button\n<Toast\n  icons={{ success: <Icon name=\"star\" style={{ color: 'lime' }} /> }}\n  closeIcon={<Icon name=\"circle-close\" />}\n  showLoadingBar={false}\n  pauseOnHover\n  theme=\"colored\"\n/>\n\n// Custom styles\n<Toast\n  styles={{\n    toast: { borderRadius: 16, fontSize: 16 },\n    closeButton: { color: '#333' },\n  }}\n/>\n```\n\nThe first argument to each `toast.*` helper accepts either a string or any ReactNode. Existing string-based calls keep working, and you can now pass JSX when you need richer markup (see `handleWithAction` above).\n\n**Features:**\n\n- **Simple API**: Just call `toast.success()`, `toast.error()`, `toast.warning()`, or `toast.info()`\n- **Flexible message content**: Pass either a plain string or any ReactNode (e.g., buttons, links, inline forms).\n- **Flexible positioning**: Render toasts in any corner with the `position` prop\n- **Auto-removal**: Configurable duration (default 5 seconds)\n- **Manual dismissal**: Built-in close button (hidden automatically when `dismissOnClick` is true)\n- **Drag-to-dismiss**: Enable swipe gestures with `draggable=\"touch\"` (default) or `draggable=\"always\"`\n- **Stacking**: Turn on `stacked` for a deck-style presentation\n- **Optional titles**: Add context with custom titles\n- **Persistent toasts**: Set `duration: 0` to prevent auto-close\n- **Animations**: Smooth slide-in/slide-out transitions\n- **Pause on hover**: Set `pauseOnHover` to pause both the loading bar and dismiss countdown\n- **Custom icons and close button**: Pass `icons` and `closeIcon` props to customize\n- **Theme prop**: Use the `theme` prop to control the toast appearance. Options:\n  - `sync` (default): Syncs the toaster colors with the poly-components library\n  - `dark`: Dark background, light text\n  - `light`: Light background, dark text\n  - `colored`: Type-based background and white icons\n\n- **Show/hide loading bar**: Use `showLoadingBar` to toggle the progress bar\n- **Per-toast overrides**: Control `icons`, `closeIcon`, `showLoadingBar`, `pauseOnHover`, `position`, `theme`, and `draggable` globally or per notification.\n- **Imperative helpers**: Call `toast.pause(id)`, `toast.play(id)`, and `toast.isActive(id)` for fine-grained control\n\n#### Toast component props\n\n| Prop             | Type                                                                                        | Default    | Description                                                                                                                                         |\n| ---------------- | ------------------------------------------------------------------------------------------- | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `position`       | `'topRight' \\| 'topCenter' \\| 'topLeft' \\| 'bottomRight' \\| 'bottomCenter' \\| 'bottomLeft'` | `topRight` | Where the toast stack appears.                                                                                                                      |\n| `stacked`        | `boolean`                                                                                   | `false`    | Enables a deck-style cluster with hover expansion.                                                                                                  |\n| `draggable`      | `'touch' \\| 'always' \\| 'never'`                                                            | `touch`    | Allows swipe-to-dismiss gestures (`touch` targets touch/pen devices).                                                                               |\n| `showLoadingBar` | `boolean`                                                                                   | `true`     | Toggles the progress bar for timed toasts.                                                                                                          |\n| `pauseOnHover`   | `boolean`                                                                                   | `false`    | Suspends the dismiss timer while hovered.                                                                                                           |\n| `theme`          | `'sync' \\| 'dark' \\| 'light' \\| 'colored'`                                                  | `sync`     | Controls the toast color palette.                                                                                                                   |\n| `duration`       | `number`                                                                                    | —          | Global default auto-dismiss duration (ms). Used when a toast is created without a per-call `duration`. `0` makes a toast persistent.                |\n| `dismissOnClick` | `boolean`                                                                                   | —          | Global default to allow dismissing by clicking the body (hides the close button). Used when a toast is created without a per-call `dismissOnClick`. |\n| `styles`         | `ToastStyleOverrides`                                                                       | -          | Fine-grained style overrides for the container, title, message, etc.                                                                                |\n| `icons`          | `ToastIconOverrides`                                                                        | -          | Override the default icon per toast type (or hide with `null`).                                                                                     |\n| `closeIcon`      | `ReactNode \\| null`                                                                         | -          | Provide a custom close icon or `null` to remove the button.                                                                                         |\n| `role`           | `string`                                                                                    | -          | Override the ARIA role on the container (e.g., `status` or `alert`).                                                                                |\n\n#### Toast options (used with `toast.success`, `toast.error`, etc.)\n\n| Option           | Type                                                                                        | Default                                                      | Description                                                                  |\n| ---------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------ | ---------------------------------------------------------------------------- |\n| `title`          | `string`                                                                                    | -                                                            | Optional headline displayed above the message.                               |\n| `duration`       | `number`                                                                                    | Inherits `<Toast />` `duration` prop (default `5000`)        | Auto-dismiss after the given milliseconds (`0` means persistent).            |\n| `dismissOnClick` | `boolean`                                                                                   | Inherits `<Toast />` `dismissOnClick` prop (default `false`) | Allow clicking the body of the toast to dismiss it (hides the close button). |\n| `paused`         | `boolean`                                                                                   | `false`                                                      | Start the toast in a paused state until you call `toast.play(id)`.           |\n| `icons`          | `ToastIconOverrides`                                                                        | Inherits `<Toast />` `icons` prop                            | Override icons for this toast only (use `null` to hide a type icon).         |\n| `closeIcon`      | `ReactNode \\| null`                                                                         | Inherits `<Toast />` `closeIcon` prop                        | Provide a custom close icon or `null` to remove it for this toast.           |\n| `showLoadingBar` | `boolean`                                                                                   | Inherits `<Toast />` `showLoadingBar` prop (default `true`)  | Control whether this toast renders the progress/loading bar.                 |\n| `pauseOnHover`   | `boolean`                                                                                   | Inherits `<Toast />` `pauseOnHover` prop (default `false`)   | Enable or disable hover-to-pause for this toast.                             |\n| `position`       | `'topRight' \\| 'topCenter' \\| 'topLeft' \\| 'bottomRight' \\| 'bottomCenter' \\| 'bottomLeft'` | Inherits `<Toast />` `position` prop (default `'topRight'`)  | Override where this toast appears.                                           |\n| `theme`          | `'sync' \\| 'dark' \\| 'light' \\| 'colored'`                                                  | Inherits `<Toast />` `theme` prop (default `'sync'`)         | Override this toast's color theme.                                           |\n| `draggable`      | `'touch' \\| 'always' \\| 'never'`                                                            | Inherits `<Toast />` `draggable` prop (default `'touch'`)    | Override swipe-to-dismiss behavior for this toast.                           |\n\n#### Global defaults and precedence\n\nYou can set global defaults for new toasts via `<Toast />` props and still override them per toast. Precedence is:\n\n- Per-toast options passed to `toast.success|error|warning|info()` take precedence.\n- If an option is omitted per toast, the matching `<Toast />` prop acts as the global default.\n- If neither supplies a value, library defaults apply (duration `5000`, dismissOnClick `false`, showLoadingBar `true`, pauseOnHover `false`, position 'topRight', theme 'sync', draggable 'touch', built-in icons).\n\nExample:\n\n```tsx\n// App shell\n<Toast duration={8000} dismissOnClick />;\n\n// Anywhere in your app\ntoast.success(\"Overrides global\", { duration: 1000 }); // uses 1000ms, dismissOnClick = true (from global)\ntoast.info(\"Uses global defaults\"); // uses 8000ms and dismissOnClick = true\ntoast.warning(\"Hard defaults apply\", { dismissOnClick: false }); // uses 5000ms (hard), dismissOnClick = false\n```\n\n#### Imperative helpers\n\n```tsx\nconst id = toast.success(\"Saved!\");\n\ntoast.pause(id); // freeze the countdown\n// ...later\ntoast.play(id); // resume the timer\n\nif (!toast.isActive(id)) {\n  console.log(\"Toast already dismissed\");\n}\n```\n\n### Example: Nav (top/side) and NavSmall (mobile)\n\nNav with `variant=\"top\"` automatically switches to the mobile overlay navigation below the configured breakpoint. By default, `responsiveBreakpoint` is `850` (px). You usually do not need to import or render `NavSmall` yourself — just use `Nav` and adjust `responsiveBreakpoint` if needed.\n\nTip\n\n- `responsiveBreakpoint={0}` disables the mobile switch entirely (NavSmall is never used).\n- Using a very large number (e.g., `responsiveBreakpoint={Number.MAX_SAFE_INTEGER}`) forces the mobile overlay at all widths.\n\n```tsx\nimport { Nav, NavSmall, type NavItem } from \"@polyutils/components\";\n\nconst items: NavItem[] = [\n  { id: \"home\", label: \"Home\", href: \"/home\" },\n  {\n    id: \"products\",\n    label: \"Products\",\n    href: \"/products\",\n    items: [\n      { id: \"laptops\", label: \"Laptops\", href: \"/products/laptops\" },\n      { id: \"phones\", label: \"Phones\", href: \"/products/phones\" },\n    ],\n  },\n  { id: \"about\", label: \"About\", href: \"/about\" },\n  { id: \"contact\", label: \"Contact\", href: \"/contact\" },\n];\n\n// Top navigation with responsive switch to NavSmall under 850px\nexport function TopNav() {\n  return (\n    <Nav\n      items={items}\n      variant=\"top\"\n      responsiveBreakpoint={850} // configurable; defaults to 850\n      // Disable underline if desired\n      // showActiveUnderline={false}\n    />\n  );\n}\n\n// Side navigation (left rail)\nexport function SideNav() {\n  return (\n    <div\n      style={{\n        display: \"grid\",\n        gridTemplateColumns: \"240px 1fr\",\n        minHeight: 300,\n      }}\n    >\n      <Nav items={items} variant=\"side\" defaultOpenIds={[\"products\"]} />\n      <div style={{ padding: 16 }}>Content</div>\n    </div>\n  );\n}\n\n// Mobile-only overlay nav (use directly if you want to control when it renders)\nexport function MobileOverlayNav() {\n  return <NavSmall items={items} />;\n}\n```\n\nWith React Router, you can pass `as={NavLink}` and the Nav will set `to`/`href` as appropriate. You can also choose which prop to use via `linkProp`.\n\n```tsx\nimport { Nav } from \"@polyutils/components\";\nimport { MemoryRouter, NavLink } from \"react-router-dom\";\n\nexport function TopNavWithRouter() {\n  return (\n    <MemoryRouter initialEntries={[\"/home\"]}>\n      <Nav items={items} variant=\"top\" as={NavLink} />\n    </MemoryRouter>\n  );\n}\n```\n\n#### Button className and inline styles\n\n`Button` accepts `className` for custom classes and a `styles.root` object for inline overrides. Border shorthands are normalized (e.g., `border: \"2px dashed red\"`).\n\n```tsx\n// className example\n<Button className=\"my-button\" appearance=\"outline\">Custom Class</Button>\n\n// styles example (inline overrides win)\n<Button\n  appearance=\"secondary\"\n  styles={{\n    root: {\n      border: \"2px dashed #D69D0D\", // normalized to width/style/color\n      padding: \"0.75rem 1.25rem\",\n    },\n  }}\n>\n  Styled Secondary\n\n</Button>\n```\n\n## Styling\n\nThis package now uses **Griffel** for styling. All default styles (including hover, disabled, and active states) are built-in and automatically applied.\n\n### Overriding styles\n\nYou can override specific styles using the `styles` prop. Inline overrides take precedence over default Griffel styles.\n\n```tsx\n<Pagination\n  totalPages={totalPages}\n  currentPage={currentPage}\n  setPage={setPage}\n  delta={2}\n  styles={{\n    root: { gap: \"0.6rem\" },\n    button: { borderRadius: 4 },\n    buttonActive: { background: \"#fee\", fontWeight: 900 },\n    buttonDisabled: { opacity: 0.4 },\n    ellipsis: { color: \"#666\" },\n  }}\n/>\n```\n\nNotes:\n\n- Hover and active state visuals are included by default and require no extra CSS.\n- For global theming, wrap your app in a custom Griffel renderer if needed.\n\n## Theming\n\nThis library includes a simple theme system with a provider and hook.\n\n### ThemeProvider Setup\n\n```tsx\nimport { ThemeProvider, ThemeToggle } from \"@polyutils/components\";\n\nexport function App() {\n  return (\n    <ThemeProvider initialTheme=\"light\">\n      <header>\n        <h1>My App</h1>\n        <ThemeToggle appearance=\"subtle\" size=\"medium\" />\n      </header>\n      <main>\n        {/* All content here gets automatic baseline theming */}\n        <p>\n          This paragraph, <a href=\"#\">links</a>, and other elements are\n          automatically themed.\n        </p>\n        <button>Regular HTML elements look great!</button>\n      </main>\n    </ThemeProvider>\n  );\n}\n```\n\nThe ThemeProvider:\n\n- Applies `theme-light`/`theme-dark` classes on `:root`\n- Sets core CSS variables used by components: `--pc-fg`, `--pc-bg`, `--pc-border`, `--pc-accent`, `--pc-muted`\n- Additionally, Tabs can read `--pc-card` if you define them\n- Persists the last theme to `localStorage`\n- Listens to OS theme changes when no explicit user choice has been made\n- **Applies baseline styles to `<main>` elements automatically** for a polished, themed HTML experience\n\n### Alternative: Custom containers\n\nIf you can't use `<main>` (e.g., multiple content areas), use the `scope` prop:\n\n```tsx\n<ThemeProvider scope=\".app\">\n  <div className=\"app\">\n    {/* This div now gets the same baseline theming as <main> */}\n    <p>\n      Themed content with <a href=\"#\">styled links</a>\n    </p>\n  </div>\n</ThemeProvider>\n```\n\nYou can target multiple selectors: `scope=\".app, .content, [data-theme-scope]\"`\n\n**Note:** The `scope` prop works _in addition_ to `<main>` - both will receive baseline theming.\n\n### Custom control with useTheme\n\n```tsx\nimport { useTheme } from \"@polyutils/components\";\n\nfunction ThemeSwitch() {\n  const { theme, setTheme } = useTheme();\n  return (\n    <button onClick={() => setTheme(theme === \"light\" ? \"dark\" : \"light\")}>\n      Toggle Theme ({theme})\n    </button>\n  );\n}\n```\n\n### Overriding CSS variables\n\nYou can override the variables globally (e.g., for branding), for example:\n\n```tsx\n<ThemeProvider>\n  <div\n    style={{\n      // customize variables in scope\n      [\"--pc-accent\" as any]: \"#0EA5E9\",\n      [\"--pc-border\" as any]: \"rgba(0,0,0,0.16)\",\n    }}\n  >\n    <Button appearance=\"primary\">Brand Primary</Button>\n  </div>\n  {/* rest of app */}\n</ThemeProvider>\n```\n\nNote: Components use these variables with sensible fallbacks, so existing styles continue to work without the provider.\n\n### Update theme via plain CSS (no JS)\n\nYou can define the variables in your global CSS so they apply everywhere without inline styles. The `ThemeProvider` will toggle `theme-light` / `theme-dark` classes on `:root`.\n\nCreate a CSS file (e.g., `theme.css`):\n\n```css\n:root.theme-light {\n  --pc-fg: #111111;\n  --pc-bg: #ffffff;\n  --pc-border: rgba(0, 0, 0, 0.12);\n  --pc-accent: #d69d0d; /* brand accent */\n}\n\n:root.theme-dark {\n  --pc-fg: #e7e7e7;\n  --pc-bg: #0b0b0b;\n  --pc-border: rgba(255, 255, 255, 0.18);\n  --pc-accent: #d69d0d; /* same accent across themes (customize if desired) */\n}\n```\n\nImport it once in your app entry (e.g., `main.tsx` or `App.tsx`):\n\n```ts\nimport \"./theme.css\";\n```\n\nFrom there, components like `Button` will pick up your CSS variables automatically.\n\nNote: ThemeProvider respects your CSS overrides. If you define a token in your stylesheet (e.g., `:root.theme-dark { --pc-accent: #0EA5E9 }`), the provider won’t overwrite it. It only sets defaults for tokens that aren’t already defined, and then updates its own managed tokens on theme change.\n\n### Override tokens via ThemeProvider\n\nIf you prefer passing overrides from code instead of CSS, supply a `tokens` prop. These values take precedence over both defaults and external CSS.\n\n```tsx\nimport { ThemeProvider, type ThemeTokens } from \"@polyutils/components\";\n\nconst tokens: ThemeTokens = {\n  \"--pc-accent\": \"#0EA5E9\",\n  \"--pc-bg\": \"#0e1424\",\n};\n\n<ThemeProvider initialTheme=\"dark\" tokens={tokens}>\n  <App />\n</ThemeProvider>;\n```\n\n### Pagination theming tokens\n\nPagination reads a small set of CSS variables. Defaults are provided, but you can override globally or per-scope.\n\n- `--pc-page-bg`: button tile background (defaults to `var(--arrow-bg, rgba(255,255,255,0.5))` light, `var(--arrow-bg, rgba(255,255,255,0.04))` dark)\n- `--pc-page-border`: tile border color (defaults to `var(--border, …)`)\n- `--pc-page-hover-bg`: hover background (`color-mix` of `var(--primary-link, var(--pc-accent))` over `--pc-page-bg` at 12%)\n- `--pc-page-active-bg`: active background (same mix at 18%)\n- `--pc-page-active-border`: active border (mix with `var(--primary-link, var(--pc-accent))` over `var(--border)`, 40%)\n- `--pc-page-ellipsis`: ellipsis color (falls back to `var(--muted)` then `inherit`)\n\nExample (aligns with the defaults):\n\n```css\n:root.theme-dark {\n  --arrow-bg: rgba(255, 255, 255, 0.04);\n  --border: rgba(255, 255, 255, 0.08);\n  --primary-link: #d69d0d;\n  /* Optional explicit overrides */\n  /* --pc-page-hover-bg: color-mix(in srgb, var(--primary-link) 12%, var(--arrow-bg)); */\n  /* --pc-page-ellipsis: #cfd6e4; */\n}\n\n:root.theme-light {\n  --arrow-bg: rgba(255, 255, 255, 0.5);\n  --border: rgba(0, 0, 0, 0.12);\n  --primary-link: #d69d0d;\n}\n```\n\n### Spinner and Loading Overlay\n\nThis package includes a spinner (`Spinner`) and a global loading overlay (`LoadingOverlay`) managed by a lightweight context (`LoadingProvider`, `useLoading`).\n\n- Render a spinner inline: use `Spinner` (defaults to `color: var(--pc-accent)`).\n- Add a global overlay: wrap your app with `LoadingProvider`, place a single `LoadingOverlay` near the root, and call `useLoading().setLoadingState('loading' | null)` from anywhere to show/hide it.\n\n#### Suspense example\n\nYou can toggle the global overlay automatically during lazy loading by using `LoadingSpinnerFallback` as a Suspense fallback.\n\n```tsx\nimport React, { Suspense } from \"react\";\nimport {\n  LoadingProvider,\n  LoadingOverlay,\n  LoadingSpinnerFallback,\n} from \"@polyutils/components\";\n\nconst LazyPage = React.lazy(() => import(\"./LazyPage\"));\n\nexport function App() {\n  return (\n    <LoadingProvider>\n      {/* Place once near the root so it can show for any loading state */}\n      <LoadingOverlay />\n\n      {/* When Suspense mounts the fallback, the overlay shows; it hides on unmount */}\n      <Suspense fallback={<LoadingSpinnerFallback />}>\n        <LazyPage />\n      </Suspense>\n    </LoadingProvider>\n  );\n}\n```\n\nTip: For local demos, pass `dismissOnClick` to `LoadingOverlay` to allow clicking the backdrop to hide it.\n","readmeFilename":"README.md"}