{"_id":"@3nvs/polyfront-slider","_rev":"6-997f10f2fc7f311c23d30d2c1a8efc78","name":"@3nvs/polyfront-slider","dist-tags":{"latest":"1.1.4"},"versions":{"1.0.0":{"name":"@3nvs/polyfront-slider","version":"1.0.0","keywords":["slider","range-slider","dual-thumb-slider","vertical-slider","horizontal-slider","discrete-slider","continuous-slider","web-components","custom-element","typescript","storybook","accessible","a11y","aria","keyboard-accessible","touch","pointer-events","ticks","labels","tooltip","blocked-intervals","min-thumb-distance","rtl","i18n","forms","form-associated","react-wrapper","vite","webpack","vitest"],"author":{"name":"Nirmal Samaranayaka","email":"nirmal.fullstack@gmail.com"},"license":"MIT","_id":"@3nvs/polyfront-slider@1.0.0","maintainers":[{"name":"nirmalsamaranayaka","email":"nirmal.fullstack@gmail.com"}],"homepage":"https://github.com/NirmalSamaranayaka/polyfront-slider#readme","bugs":{"url":"https://github.com/NirmalSamaranayaka/polyfront-slider/issues"},"dist":{"shasum":"f57f6b0d65b71b36718e9b5f2e80f8cbcfd9a36f","tarball":"https://registry.npmjs.org/@3nvs/polyfront-slider/-/polyfront-slider-1.0.0.tgz","fileCount":9,"integrity":"sha512-pJQb0FbnXMGg2jCB4DxgQaEnK1/8xtia5kv9Ui7NOOTtkJE03YzBSmKfYe5Fflrw5zf/JLC1rQcUOuhB+2N1rA==","signatures":[{"sig":"MEQCIGKogWIzp0MlBUaUnNCOK9tCbLRel80Icw4NpjYjk3c/AiABKsjcTZDMIMpitJfu3nihMaiMqxLr+MLm7e3HwuuZAA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":172456},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","unpkg":"./dist/index.mjs","module":"./dist/index.mjs","source":"src/index.ts","vitest":{"coverage":{"reporter":["text","lcov"]},"setupFiles":["tests/setup.ts"],"environment":"jsdom"},"engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"b29bd95d9cd9fac7c7dacf5897ddbc5f31b6732f","scripts":{"dev":"tsup src/index.ts --watch --format esm,cjs --dts --sourcemap --out-dir dist","test":"vitest run --passWithNoTests=false","build":"tsup src/index.ts --format esm,cjs --dts --minify --sourcemap --clean --out-dir dist","prepack":"npm run build && node ../../scripts/generate-readmes.mjs","release":"npm run build && npm publish --access public","test:ci":"vitest run --passWithNoTests=false","test:cov":"vitest run --coverage","changeset":"changeset","storybook":"storybook dev -p 6006","typecheck":"tsc -p ../../tsconfig.json --noEmit","test:watch":"vitest --watch","test:verbose":"vitest run --reporter=verbose","prepublishOnly":"npm run typecheck && npm run build && npm test","build-storybook":"storybook build","version-packages":"changeset version && npm install"},"_npmUser":{"name":"nirmalsamaranayaka","email":"nirmal.fullstack@gmail.com"},"jsdelivr":"./dist/index.mjs","repository":{"url":"git+https://github.com/NirmalSamaranayaka/polyfront-slider.git","type":"git"},"_npmVersion":"10.9.2","description":"A modern, accessible TypeScript Web Component slider supporting horizontal, vertical, and range modes with ticks, labels, tooltips, and form integration.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10","devDependencies":{"tsup":"^8.5.0","vite":"^5.4.10","rollup":"^4.49.0","vitest":"^3.2.4","happy-dom":"^19.0.2","storybook":"^8.6.14","typescript":"^5.6.3","@types/node":"^22.7.5","@changesets/cli":"^2.27.9","@testing-library/dom":"^10.4.1","@juggle/resize-observer":"^3.4.0","@storybook/web-components":"^8.6.14","@testing-library/jest-dom":"^6.9.1","@storybook/addon-essentials":"^8.6.14","@storybook/web-components-vite":"^8.6.14","@webcomponents/custom-elements":"^1.6.0"},"optionalDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/polyfront-slider_1.0.0_1760305113641_0.600878828630742","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@3nvs/polyfront-slider","version":"1.1.0","keywords":["slider","range-slider","dual-thumb-slider","vertical-slider","horizontal-slider","discrete-slider","continuous-slider","web-components","custom-element","typescript","storybook","accessible","a11y","aria","keyboard-accessible","touch","pointer-events","ticks","labels","tooltip","blocked-intervals","min-thumb-distance","rtl","i18n","forms","form-associated","react-wrapper","vite","webpack","vitest"],"author":{"name":"Nirmal Samaranayaka","email":"nirmal.fullstack@gmail.com"},"license":"MIT","_id":"@3nvs/polyfront-slider@1.1.0","maintainers":[{"name":"nirmalsamaranayaka","email":"nirmal.fullstack@gmail.com"}],"homepage":"https://github.com/NirmalSamaranayaka/polyfront-slider#readme","bugs":{"url":"https://github.com/NirmalSamaranayaka/polyfront-slider/issues"},"dist":{"shasum":"b589df26118282f78d43ea11e9fcbe2576200c1a","tarball":"https://registry.npmjs.org/@3nvs/polyfront-slider/-/polyfront-slider-1.1.0.tgz","fileCount":9,"integrity":"sha512-J8B5WL1nnftMBQ1tShdwVVww6gfUp70muiObnM0+e0UrcoDKYlE7D1mT/RPPMWB3wFN1Jf0HeBzCSEnOVZ27gw==","signatures":[{"sig":"MEYCIQCdYA/UPuX7DHtAoe7RFegrgNTQmUnpJlfj1CDNaJDW+AIhAJHmjDwWQWvxS+J0dHeTV7ik+WThUNFZOVBkHqlI3+/J","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":195349},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","unpkg":"./dist/index.mjs","module":"./dist/index.mjs","source":"src/index.ts","vitest":{"coverage":{"reporter":["text","lcov"]},"setupFiles":["tests/setup.ts"],"environment":"jsdom"},"engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"d1d5b5b8a37acc98ae85059ecc4798005b259332","scripts":{"dev":"tsup src/index.ts --watch --format esm,cjs --dts --sourcemap --out-dir dist","test":"vitest run --passWithNoTests=false","build":"tsup src/index.ts --format esm,cjs --dts --minify --sourcemap --clean --out-dir dist","prepack":"npm run build && node ../../scripts/generate-readmes.mjs","release":"npm run build && npm publish --access public","test:ci":"vitest run --passWithNoTests=false","test:cov":"vitest run --coverage","changeset":"changeset","storybook":"storybook dev -p 6006","typecheck":"tsc -p ../../tsconfig.json --noEmit","test:watch":"vitest --watch","test:verbose":"vitest run --reporter=verbose","prepublishOnly":"npm run typecheck && npm run build && npm test","build-storybook":"storybook build","version-packages":"changeset version && npm install"},"_npmUser":{"name":"nirmalsamaranayaka","email":"nirmal.fullstack@gmail.com"},"jsdelivr":"./dist/index.mjs","repository":{"url":"git+https://github.com/NirmalSamaranayaka/polyfront-slider.git","type":"git"},"_npmVersion":"10.9.2","description":"A modern, accessible TypeScript Web Component slider supporting horizontal, vertical, and range modes with ticks, labels, tooltips, and form integration.","directories":{},"sideEffects":false,"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10","devDependencies":{"tsup":"^8.5.0","vite":"^7.1.10","rollup":"^4.49.0","vitest":"^3.2.4","happy-dom":"^20.0.0","storybook":"^8.6.14","typescript":"^5.9.3","@types/node":"^22.7.5","@changesets/cli":"^2.27.9","@testing-library/dom":"^10.4.1","@juggle/resize-observer":"^3.4.0","@storybook/web-components":"^8.6.14","@testing-library/jest-dom":"^6.9.1","@storybook/addon-essentials":"^8.6.14","@storybook/web-components-vite":"^8.6.14","@webcomponents/custom-elements":"^1.6.0"},"optionalDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/polyfront-slider_1.1.0_1760479197148_0.18212890871666154","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@3nvs/polyfront-slider","version":"1.1.1","keywords":["slider","range-slider","dual-thumb-slider","vertical-slider","horizontal-slider","discrete-slider","continuous-slider","web-components","custom-element","typescript","storybook","accessible","a11y","aria","keyboard-accessible","touch","pointer-events","ticks","labels","tooltip","blocked-intervals","min-thumb-distance","rtl","i18n","forms","form-associated","react-wrapper","vite","webpack","vitest"],"author":{"name":"Nirmal Samaranayaka","email":"nirmal.fullstack@gmail.com"},"license":"MIT","_id":"@3nvs/polyfront-slider@1.1.1","maintainers":[{"name":"nirmalsamaranayaka","email":"nirmal.fullstack@gmail.com"}],"homepage":"https://github.com/NirmalSamaranayaka/polyfront-slider#readme","bugs":{"url":"https://github.com/NirmalSamaranayaka/polyfront-slider/issues"},"dist":{"shasum":"f004fe76d12b1fc55082c59afef174df4b0434c4","tarball":"https://registry.npmjs.org/@3nvs/polyfront-slider/-/polyfront-slider-1.1.1.tgz","fileCount":9,"integrity":"sha512-/u9+2PfzaK37Xc8I9r1SdBEEtPIZQhwhImFlkXXyGBfwSmGnuqPwocPlIwpGIL/sBzQL2R6PUD4jV45Pk7OJyw==","signatures":[{"sig":"MEYCIQC1nRlOaek0KKoE+Rj3bGHjRYyk6Y09t/MjifFPK6INagIhALiyyeq+xxsfU1A0MiobqM2wdO/ObJGqUIHo2rjjI+lB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":195412},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","unpkg":"./dist/index.mjs","module":"./dist/index.mjs","source":"src/index.ts","vitest":{"coverage":{"reporter":["text","lcov"]},"setupFiles":["tests/setup.ts"],"environment":"jsdom"},"engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"03095e2dfa6b6aa00d25a29ad9d2337aa72dbe41","scripts":{"dev":"tsup src/index.ts --watch --format esm,cjs --dts --sourcemap --out-dir dist","test":"vitest run --passWithNoTests=false","build":"tsup src/index.ts --format esm,cjs --dts --minify --sourcemap --clean --out-dir dist","prepack":"npm run build && node ../../scripts/generate-readmes.mjs","release":"npm run build && npm publish --access public","test:ci":"vitest run --passWithNoTests=false","test:cov":"vitest run --coverage","changeset":"changeset","storybook":"storybook dev -p 6006","typecheck":"tsc -p ../../tsconfig.json --noEmit","test:watch":"vitest --watch","test:verbose":"vitest run --reporter=verbose","prepublishOnly":"npm run typecheck && npm run build && npm test","build-storybook":"storybook build","version-packages":"changeset version && npm install"},"_npmUser":{"name":"nirmalsamaranayaka","email":"nirmal.fullstack@gmail.com"},"jsdelivr":"./dist/index.mjs","repository":{"url":"git+https://github.com/NirmalSamaranayaka/polyfront-slider.git","type":"git"},"_npmVersion":"10.9.2","description":"A modern, accessible TypeScript Web Component slider supporting horizontal, vertical, and range modes with ticks, labels, tooltips, and form integration.","directories":{},"sideEffects":false,"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10","devDependencies":{"tsup":"^8.5.0","vite":"^7.1.10","rollup":"^4.49.0","vitest":"^3.2.4","happy-dom":"^20.0.0","storybook":"^8.6.14","typescript":"^5.9.3","@types/node":"^22.7.5","@changesets/cli":"^2.27.9","@testing-library/dom":"^10.4.1","@juggle/resize-observer":"^3.4.0","@storybook/web-components":"^8.6.14","@testing-library/jest-dom":"^6.9.1","@storybook/addon-essentials":"^8.6.14","@storybook/web-components-vite":"^8.6.14","@webcomponents/custom-elements":"^1.6.0"},"optionalDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/polyfront-slider_1.1.1_1760553752736_0.8057344220660945","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@3nvs/polyfront-slider","version":"1.1.2","keywords":["slider","range-slider","dual-thumb-slider","vertical-slider","horizontal-slider","discrete-slider","continuous-slider","web-components","custom-element","typescript","storybook","accessible","a11y","aria","keyboard-accessible","touch","pointer-events","ticks","labels","tooltip","blocked-intervals","min-thumb-distance","rtl","i18n","forms","form-associated","react-wrapper","vite","webpack","vitest"],"author":{"name":"Nirmal Samaranayaka","email":"nirmal.fullstack@gmail.com"},"license":"MIT","_id":"@3nvs/polyfront-slider@1.1.2","maintainers":[{"name":"nirmalsamaranayaka","email":"nirmal.fullstack@gmail.com"}],"homepage":"https://github.com/NirmalSamaranayaka/polyfront-slider#readme","bugs":{"url":"https://github.com/NirmalSamaranayaka/polyfront-slider/issues"},"dist":{"shasum":"e3275f5aec20bbe2e536512050fccc369eb37bda","tarball":"https://registry.npmjs.org/@3nvs/polyfront-slider/-/polyfront-slider-1.1.2.tgz","fileCount":8,"integrity":"sha512-yeVSGg4i2JQhhlcb3ggyws3pNFOrtmRfGzFtjQmn/bbuOl6awNWpvG3oDCGSL2QCFV/xUT8G4yjlejzA3zmr2w==","signatures":[{"sig":"MEUCIQDYW6PmGTX7PJtpQii5AmMb7VxQLvNd/fyrGCe7HYtsOgIgVU1o47FXmgf9DbVQmRZ79b/Zi67Do2Gt/tBGdZAXu1E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":190024},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","unpkg":"./dist/index.mjs","module":"./dist/index.mjs","source":"src/index.ts","vitest":{"coverage":{"reporter":["text","lcov"]},"setupFiles":["tests/setup.ts"],"environment":"jsdom"},"engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"507de8649750e0e028feeab5b8d233b68a14dcdd","scripts":{"dev":"tsup src/index.ts --watch --format esm,cjs --dts --sourcemap --out-dir dist","test":"vitest run --passWithNoTests=false","build":"tsup src/index.ts --format esm,cjs --dts --minify --sourcemap --clean --out-dir dist","prepack":"npm run build && node ../../scripts/generate-readmes.mjs","release":"npm run build && npm publish --access public","test:ci":"vitest run --passWithNoTests=false","test:cov":"vitest run --coverage","changeset":"changeset","storybook":"storybook dev -p 6006","typecheck":"tsc -p ../../tsconfig.json --noEmit","test:watch":"vitest --watch","test:verbose":"vitest run --reporter=verbose","prepublishOnly":"npm run typecheck && npm run build && npm test","build-storybook":"storybook build","version-packages":"changeset version && npm install"},"_npmUser":{"name":"nirmalsamaranayaka","email":"nirmal.fullstack@gmail.com"},"jsdelivr":"./dist/index.mjs","repository":{"url":"git+https://github.com/NirmalSamaranayaka/polyfront-slider.git","type":"git"},"_npmVersion":"10.9.2","description":"A modern, accessible TypeScript Web Component slider supporting horizontal, vertical, and range modes with ticks, labels, tooltips, and form integration.","directories":{},"sideEffects":false,"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10","devDependencies":{"tsup":"^8.5.0","vite":"^7.1.10","rollup":"^4.49.0","vitest":"^3.2.4","happy-dom":"^20.0.0","storybook":"^8.6.14","typescript":"^5.9.3","@types/node":"^22.7.5","@changesets/cli":"^2.27.9","@testing-library/dom":"^10.4.1","@juggle/resize-observer":"^3.4.0","@storybook/web-components":"^8.6.14","@testing-library/jest-dom":"^6.9.1","@storybook/addon-essentials":"^8.6.14","@storybook/web-components-vite":"^8.6.14","@webcomponents/custom-elements":"^1.6.0"},"optionalDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/polyfront-slider_1.1.2_1760644704218_0.5630541021420059","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@3nvs/polyfront-slider","version":"1.1.3","keywords":["slider","range-slider","dual-thumb-slider","vertical-slider","horizontal-slider","discrete-slider","continuous-slider","web-components","custom-element","typescript","storybook","accessible","a11y","aria","keyboard-accessible","touch","pointer-events","ticks","labels","tooltip","blocked-intervals","min-thumb-distance","rtl","i18n","forms","form-associated","react-wrapper","vite","webpack","vitest"],"author":{"name":"Nirmal Samaranayaka","email":"nirmal.fullstack@gmail.com"},"license":"MIT","_id":"@3nvs/polyfront-slider@1.1.3","maintainers":[{"name":"nirmalsamaranayaka","email":"nirmal.fullstack@gmail.com"}],"homepage":"https://github.com/NirmalSamaranayaka/polyfront-slider#readme","bugs":{"url":"https://github.com/NirmalSamaranayaka/polyfront-slider/issues"},"dist":{"shasum":"12bbc387c3145a1656dfa0389c79726b305f2c2f","tarball":"https://registry.npmjs.org/@3nvs/polyfront-slider/-/polyfront-slider-1.1.3.tgz","fileCount":8,"integrity":"sha512-k6BKlQ1rC3oIvRTLUwvurqajA8wT8yktWLWM2ug6+8SPU0ZIF60gVxCpAIMdDwvRczKLyB9e4vWjEWh6Lxvjdg==","signatures":[{"sig":"MEUCICtec5b6SVlA9VnupE/HynHsuLm9k0jwIWzOfpH1j3whAiEAzEIi3ejcxbdqxqEgVtiSuq9nlxI8KUS1SKej7NCt5aY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":190024},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","unpkg":"./dist/index.mjs","module":"./dist/index.mjs","source":"src/index.ts","vitest":{"coverage":{"reporter":["text","lcov"]},"setupFiles":["tests/setup.ts"],"environment":"jsdom"},"engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"a3cb95cb27610b76a355c0db9c3e7c34b25df78b","scripts":{"dev":"tsup src/index.ts --watch --format esm,cjs --dts --sourcemap --out-dir dist","test":"vitest run --passWithNoTests=false","build":"tsup src/index.ts --format esm,cjs --dts --minify --sourcemap --clean --out-dir dist","prepack":"npm run build && node ../../scripts/generate-readmes.mjs","release":"npm run build && npm publish --access public","test:ci":"vitest run --passWithNoTests=false","test:cov":"vitest run --coverage","changeset":"changeset","storybook":"storybook dev -p 6006","typecheck":"tsc -p ../../tsconfig.json --noEmit","test:watch":"vitest --watch","test:verbose":"vitest run --reporter=verbose","prepublishOnly":"npm run typecheck && npm run build && npm test","build-storybook":"storybook build","version-packages":"changeset version && npm install"},"_npmUser":{"name":"nirmalsamaranayaka","email":"nirmal.fullstack@gmail.com"},"jsdelivr":"./dist/index.mjs","repository":{"url":"git+https://github.com/NirmalSamaranayaka/polyfront-slider.git","type":"git"},"_npmVersion":"10.8.2","description":"A modern, accessible TypeScript Web Component slider supporting horizontal, vertical, and range modes with ticks, labels, tooltips, and form integration.","directories":{},"sideEffects":false,"_nodeVersion":"18.20.8","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10","devDependencies":{"tsup":"^8.5.0","vite":"^7.1.10","rollup":"^4.49.0","vitest":"^3.2.4","happy-dom":"^20.0.0","storybook":"^8.6.14","typescript":"^5.9.3","@types/node":"^22.7.5","@changesets/cli":"^2.27.9","@testing-library/dom":"^10.4.1","@juggle/resize-observer":"^3.4.0","@storybook/web-components":"^8.6.14","@testing-library/jest-dom":"^6.9.1","@storybook/addon-essentials":"^8.6.14","@storybook/web-components-vite":"^8.6.14","@webcomponents/custom-elements":"^1.6.0"},"optionalDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/polyfront-slider_1.1.3_1760732192083_0.6512146987114051","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"@3nvs/polyfront-slider","version":"1.1.4","description":"A modern, accessible TypeScript Web Component slider supporting horizontal, vertical, and range modes with ticks, labels, tooltips, and form integration.","license":"MIT","author":{"name":"Nirmal Samaranayaka","email":"nirmal.fullstack@gmail.com"},"keywords":["slider","range-slider","dual-thumb-slider","vertical-slider","horizontal-slider","discrete-slider","continuous-slider","web-components","custom-element","typescript","storybook","accessible","a11y","aria","keyboard-accessible","touch","pointer-events","ticks","labels","tooltip","blocked-intervals","min-thumb-distance","rtl","i18n","forms","form-associated","react-wrapper","vite","webpack","vitest"],"repository":{"type":"git","url":"git+https://github.com/NirmalSamaranayaka/polyfront-slider.git"},"homepage":"https://github.com/NirmalSamaranayaka/polyfront-slider#readme","bugs":{"url":"https://github.com/NirmalSamaranayaka/polyfront-slider/issues"},"type":"module","main":"./dist/index.cjs","module":"./dist/index.mjs","types":"./dist/index.d.ts","source":"src/index.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs","default":"./dist/index.mjs"}},"unpkg":"./dist/index.mjs","jsdelivr":"./dist/index.mjs","sideEffects":false,"engines":{"node":">=18.18.0"},"packageManager":"npm@10","scripts":{"build":"tsup src/index.ts --format esm,cjs --dts --minify --sourcemap --clean --out-dir dist","dev":"tsup src/index.ts --watch --format esm,cjs --dts --sourcemap --out-dir dist","typecheck":"tsc -p ../../tsconfig.json --noEmit","test":"vitest run --passWithNoTests=false","test:watch":"vitest --watch","test:ci":"vitest run --passWithNoTests=false","test:verbose":"vitest run --reporter=verbose","test:cov":"vitest run --coverage","storybook":"storybook dev -p 6006","build-storybook":"storybook build","changeset":"changeset","version-packages":"changeset version && npm install","release":"npm run build && npm publish --access public","prepublishOnly":"npm run typecheck && npm run build && npm test","prepack":"npm run build && node ../../scripts/generate-readmes.mjs"},"publishConfig":{"access":"public"},"devDependencies":{"@changesets/cli":"^2.27.9","@juggle/resize-observer":"^3.4.0","@storybook/addon-essentials":"^8.6.14","@storybook/web-components":"^8.6.14","@storybook/web-components-vite":"^8.6.14","@testing-library/dom":"^10.4.1","@testing-library/jest-dom":"^6.9.1","@types/node":"^22.7.5","@webcomponents/custom-elements":"^1.6.0","rollup":"^4.49.0","happy-dom":"^20.0.0","storybook":"^8.6.14","tsup":"^8.5.0","typescript":"^5.9.3","vite":"^7.1.10","vitest":"^3.2.4"},"optionalDependencies":{},"vitest":{"environment":"jsdom","setupFiles":["tests/setup.ts"],"coverage":{"reporter":["text","lcov"]}},"_id":"@3nvs/polyfront-slider@1.1.4","gitHead":"a8fdcb962411a6b01b9db6d109f893383803f2e7","_nodeVersion":"22.16.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-sn2uiwJJJz6hzj6emay3q5qP4lXzDqGUGO96v1+qQDwOV7QlSrsxiMmHo+2JeYLh/wzw4ODrb+cApGJzddJO5g==","shasum":"85308541d39d8d87f8eb85f1e11257b4aa006a50","tarball":"https://registry.npmjs.org/@3nvs/polyfront-slider/-/polyfront-slider-1.1.4.tgz","fileCount":8,"unpackedSize":190024,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHHW+tqxE0zkGKYR3G22beIAmaBgFw37zm+XyktoUhWeAiAmGtsAfoOoOtMXWI3MHw1nGPdBgCFDjsLtcyKka9VPCg=="}]},"_npmUser":{"name":"nirmalsamaranayaka","email":"nirmal.fullstack@gmail.com"},"directories":{},"maintainers":[{"name":"nirmalsamaranayaka","email":"nirmal.fullstack@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/polyfront-slider_1.1.4_1760823693760_0.6231452899621677"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-12T21:38:33.533Z","modified":"2025-10-18T21:41:34.155Z","1.0.0":"2025-10-12T21:38:33.825Z","1.1.0":"2025-10-14T21:59:57.377Z","1.1.1":"2025-10-15T18:42:32.940Z","1.1.2":"2025-10-16T19:58:24.418Z","1.1.3":"2025-10-17T20:16:32.318Z","1.1.4":"2025-10-18T21:41:33.955Z"},"bugs":{"url":"https://github.com/NirmalSamaranayaka/polyfront-slider/issues"},"author":{"name":"Nirmal Samaranayaka","email":"nirmal.fullstack@gmail.com"},"license":"MIT","homepage":"https://github.com/NirmalSamaranayaka/polyfront-slider#readme","keywords":["slider","range-slider","dual-thumb-slider","vertical-slider","horizontal-slider","discrete-slider","continuous-slider","web-components","custom-element","typescript","storybook","accessible","a11y","aria","keyboard-accessible","touch","pointer-events","ticks","labels","tooltip","blocked-intervals","min-thumb-distance","rtl","i18n","forms","form-associated","react-wrapper","vite","webpack","vitest"],"repository":{"type":"git","url":"git+https://github.com/NirmalSamaranayaka/polyfront-slider.git"},"description":"A modern, accessible TypeScript Web Component slider supporting horizontal, vertical, and range modes with ticks, labels, tooltips, and form integration.","maintainers":[{"name":"nirmalsamaranayaka","email":"nirmal.fullstack@gmail.com"}],"readme":"# 🎛️ @3nvs/polyfront-slider (v1.1.4)\n\n[![npm (scoped)](https://img.shields.io/npm/v/%403nvs%2Fpolyfront-slider)](https://www.npmjs.com/package/@3nvs/polyfront-slider)\n[![license](https://img.shields.io/badge/license-MIT-blue.svg)](../../LICENSE)\n[![Storybook](https://img.shields.io/badge/Storybook-Live%20Demo-ff4785?logo=storybook)](https://nirmalsamaranayaka.github.io/polyfront-slider)\n[![CI](https://github.com/NirmalSamaranayaka/polyfront-slider/actions/workflows/ci.yml/badge.svg)](https://github.com/NirmalSamaranayaka/polyfront-slider/actions/workflows/ci.yml)\n\n> The **official scoped package** for the Polyfront Slider Web Component — built with TypeScript, accessible, framework-agnostic, and optimized for modern apps.\n\n---\n\n## ✨ Overview\n`polyfront-slider` is an **open-source Web Component slider** that works in **React**, **Vue**, **Angular**, **Svelte**, or plain **HTML/JS**.  \n\nIt provides **enterprise-grade configurability**, **theming tokens**, **accessibility**, and **form integration** — all in a single, dependency-free package.\n\n---\n\n## 🚀 Key Features\n\n| Category | Highlights |\n|-----------|-------------|\n| 🎨 **UI/UX** | OKLCH color system, dark mode, hover/active/focus states, large touch targets, and elevation shadows. |\n| 🧩 **Configurable** | Supports `{min, max, step}` or discrete arrays like `[0,1500,1600,…]`. Auto-detects step size and disables missing values. |\n| 🧱 **Modes** | Single or dual-thumb (range) slider. |\n| 🧠 **Smart Logic** | Auto GCD step detection, blocked intervals, minimum thumb distance. |\n| ♿ **Accessible** | Full WAI-ARIA compliance, keyboard navigation, and `form-associated` support. |\n| 🖥️ **Responsive** | 100 % width, mobile-friendly, fits any layout. |\n| 🌗 **Themeable** | Size presets (`sm`,`md`,`lg`), CSS tokens, and dark/light mode support. |\n| 🧪 **Reliable** | TypeScript + Vitest + Storybook 8.6 + GitHub CI. |\n| 🧰 **Reusable** | Works standalone or via npm import in any framework. |\n\n---\n\n## 🧩 Installation\n\n```bash\n# Scoped (recommended)\nnpm install @3nvs/polyfront-slider\n\n# or use alias (unscoped)\nnpm install polyfront-slider\n```\n\n---\n\n## 🧑‍💻 Usage\n\n### 🚀 Quick Start\n\n#### 1️⃣ Register the component\n```ts\nimport { definePolyfrontSlider } from '@3nvs/polyfront-slider';\ndefinePolyfrontSlider();\n```\n\n#### 2️⃣ Add to your HTML / JSX\n```html\n<polyfront-slider id=\"price-slider\" style=\"inline-size:100%;max-inline-size:480px\"></polyfront-slider>\n```\n\n#### 3️⃣ Configure dynamically\n```ts\nconst slider = document.getElementById('price-slider');\nslider.setConfig({\n  mode: 'range',\n  orientation: 'horizontal',\n  size: 'md',\n  values: [0,1500,1600,1700,1800,1900,2000],\n  showTicks: true,\n  showLabels: true,\n  showTooltip: true,\n  tickEvery: 1,\n  disableMissingSteps: true,\n  blockedIntervals: [[1600,1699]],\n  minThumbDistance: 1,\n  name: 'price'\n});\n```\n\n### 🎯 Helper Functions (Recommended)\n\nFor easier usage across frameworks, use these helper functions:\n\n#### Range Slider\n```ts\nimport { createRangeSlider } from '@3nvs/polyfront-slider';\n\nconst priceSlider = createRangeSlider(0, 2000, 100);\ndocument.body.appendChild(priceSlider);\n```\n\n#### Volume Control\n```ts\nimport { createVolumeControl } from '@3nvs/polyfront-slider';\n\nconst volumeControl = createVolumeControl(100);\nvolumeControl.style.height = '200px';\ndocument.body.appendChild(volumeControl);\n```\n\n#### Price Slider with Discrete Values\n```ts\nimport { createPriceSlider } from '@3nvs/polyfront-slider';\n\nconst priceSlider = createPriceSlider([0, 1500, 1600, 1700, 1800, 1900, 2000]);\ndocument.body.appendChild(priceSlider);\n```\n\n#### Discrete Value Slider (Sizes, Ratings, etc.)\n```ts\nimport { createDiscreteSlider } from '@3nvs/polyfront-slider';\n\n// Size selector\nconst sizeSlider = createDiscreteSlider(['XS', 'S', 'M', 'L', 'XL', 'XXL'], 'single');\ndocument.body.appendChild(sizeSlider);\n\n// Rating range\nconst ratingSlider = createDiscreteSlider([1, 2, 3, 4, 5], 'range');\ndocument.body.appendChild(ratingSlider);\n```\n\n### 🎨 React-Style Props\n```ts\nimport { createSliderWithProps } from '@3nvs/polyfront-slider';\n\nconst slider = createSliderWithProps({\n  mode: 'range',\n  min: 0,\n  max: 100,\n  step: 5,\n  showTooltip: true,\n  onChange: (value) => console.log('Value changed:', value),\n  onInput: (value) => console.log('Value input:', value),\n  className: 'my-slider',\n  style: { width: '100%', margin: '20px 0' },\n  id: 'my-slider'\n});\ndocument.body.appendChild(slider);\n```\n\n### 🎭 Event Handling\n```ts\nconst slider = document.getElementById('my-slider');\n\n// Listen for value changes\nslider.addEventListener('polyfront-slider-change', (e) => {\n  console.log('Final value:', e.detail.value);\n});\n\n// Listen for real-time input\nslider.addEventListener('polyfront-slider-input', (e) => {\n  console.log('Current value:', e.detail.value);\n});\n\n// Get current value\nconst currentValue = slider.getValue();\nconsole.log('Current value:', currentValue);\n\n// Set value programmatically\nslider.setValue([20, 80]); // For range slider\nslider.setValue(50); // For single slider\n```\n\n### 🎨 Framework Integration Examples\n\n#### React\n```tsx\nimport { useEffect, useRef } from 'react';\nimport { definePolyfrontSlider, createSliderWithProps } from '@3nvs/polyfront-slider';\n\n// Register once\ndefinePolyfrontSlider();\n\nfunction PriceSlider({ onChange }: { onChange: (value: number[]) => void }) {\n  const sliderRef = useRef<HTMLElement>(null);\n\n  useEffect(() => {\n    if (sliderRef.current) {\n      const slider = createSliderWithProps({\n        mode: 'range',\n        min: 0,\n        max: 2000,\n        step: 100,\n        showTooltip: true,\n        onChange: onChange,\n        style: { width: '100%' }\n      });\n      \n      sliderRef.current.appendChild(slider);\n      \n      return () => {\n        sliderRef.current?.removeChild(slider);\n      };\n    }\n  }, [onChange]);\n\n  return <div ref={sliderRef} />;\n}\n```\n\n#### Vue 3\n```vue\n<template>\n  <div ref=\"sliderContainer\" />\n</template>\n\n<script setup lang=\"ts\">\nimport { onMounted, onUnmounted, ref } from 'vue';\nimport { definePolyfrontSlider, createSliderWithProps } from '@3nvs/polyfront-slider';\n\ndefinePolyfrontSlider();\n\nconst sliderContainer = ref<HTMLElement>();\nlet slider: HTMLElement;\n\nonMounted(() => {\n  if (sliderContainer.value) {\n    slider = createSliderWithProps({\n      mode: 'range',\n      min: 0,\n      max: 100,\n      step: 5,\n      showTooltip: true,\n      onChange: (value) => emit('change', value)\n    });\n    sliderContainer.value.appendChild(slider);\n  }\n});\n\nonUnmounted(() => {\n  slider?.remove();\n});\n\nconst emit = defineEmits<{\n  change: [value: number[]]\n}>();\n</script>\n```\n\n#### Angular\n```typescript\nimport { Component, ElementRef, OnInit, OnDestroy } from '@angular/core';\nimport { definePolyfrontSlider, createSliderWithProps } from '@3nvs/polyfront-slider';\n\n@Component({\n  selector: 'app-price-slider',\n  template: '<div #sliderContainer></div>'\n})\nexport class PriceSliderComponent implements OnInit, OnDestroy {\n  @ViewChild('sliderContainer', { static: true }) container!: ElementRef;\n  private slider?: HTMLElement;\n\n  ngOnInit() {\n    definePolyfrontSlider();\n    \n    this.slider = createSliderWithProps({\n      mode: 'range',\n      min: 0,\n      max: 2000,\n      step: 100,\n      showTooltip: true,\n      onChange: (value) => this.onValueChange(value)\n    });\n    \n    this.container.nativeElement.appendChild(this.slider);\n  }\n\n  ngOnDestroy() {\n    this.slider?.remove();\n  }\n\n  onValueChange(value: number[]) {\n    console.log('Value changed:', value);\n  }\n}\n```\n\n#### Svelte\n```svelte\n<script lang=\"ts\">\n  import { onMount, onDestroy } from 'svelte';\n  import { definePolyfrontSlider, createSliderWithProps } from '@3nvs/polyfront-slider';\n  \n  let sliderContainer: HTMLElement;\n  let slider: HTMLElement;\n\n  onMount(() => {\n    definePolyfrontSlider();\n    \n    slider = createSliderWithProps({\n      mode: 'range',\n      min: 0,\n      max: 100,\n      step: 5,\n      showTooltip: true,\n      onChange: (value) => console.log('Value:', value)\n    });\n    \n    sliderContainer.appendChild(slider);\n  });\n\n  onDestroy(() => {\n    slider?.remove();\n  });\n</script>\n\n<div bind:this={sliderContainer} />\n```\n\n---\n\n## ⚙️ Config Options\n\n| Option | Type | Default | Description |\n|---------|------|----------|-------------|\n| `mode` | `'single' \\| 'range'` | `'single'` | Enables range (2 thumbs) or single thumb. |\n| `orientation` | `'horizontal' \\| 'vertical'` | `'horizontal'` | Slider direction. |\n| `size` | `'sm' \\| 'md' \\| 'lg'` | `'md'` | Track and thumb size preset. |\n| `values` | `Array<number \\| string \\| object>` | — | Discrete slider values. |\n| `min` / `max` / `step` | `number` | — | Continuous slider range. |\n| `disableMissingSteps` | `boolean` | `true` | Disables non-defined steps. |\n| `blockedIntervals` | `[number,number][]` | `[]` | Disable ranges of values. |\n| `minThumbDistance` | `number` | `0` | Minimum thumb distance in range mode. |\n| `showTicks` | `boolean` | `false` | Displays tick marks. |\n| `showLabels` | `boolean` | `false` | Displays tick labels. |\n| `showTooltip` | `boolean` | `false` | Shows tooltips for thumb values. |\n| `tickEvery` | `number` | `1` | Render every N-th tick/label. |\n| `rtl` | `boolean` | `false` | Right-to-left layout support. |\n| `ariaLabel*` | `string` | — | Accessibility labels. |\n| `name` | `string` | — | Enables form submission via JSON value. |\n\n---\n\n## 🎨 Theming & Custom Styles\n\n```css\npolyfront-slider {\n  --pf-color-fill: oklch(0.63 0.21 35);\n  --pf-color-fill-strong: oklch(0.56 0.22 35);\n  --pf-color-thumb-border: oklch(0.63 0.21 35);\n  --pf-track-size: 10px;\n  --pf-thumb-size: 28px;\n  --pf-focus: 0 0 0 4px color-mix(in oklab, var(--pf-color-fill) 35%, transparent);\n}\n```\n\n✅ Supports **dark mode** (`prefers-color-scheme: dark`) and **reduced motion**.\n\n---\n\n## 🧪 Testing\n\n```bash\nnpm run test\n```\n\nExample:\n```ts\nimport { PolyfrontSlider } from '@3nvs/polyfront-slider';\n\nconst el = new PolyfrontSlider();\nel.setConfig({ min: 0, max: 100, step: 10, mode: 'range' });\nel.setValue([20, 80]);\nexpect(el.getValue()).toEqual([20, 80]);\n```\n\n---\n\n## 📘 Storybook Demo\n\nLocal preview:\n```bash\nnpm run storybook\n```\n\nLive demo → **https://nirmalsamaranayaka.github.io/polyfront-slider**\n\n---\n\n## 🏗️ Build\n\n```bash\nnpm run build\n```\n\nOutputs:\n```\ndist/\n├─ index.mjs\n├─ index.cjs\n└─ index.d.ts\n```\n\n---\n\n## ⚙️ CI / CD via GitHub Actions\n\n| Workflow | Trigger | Purpose |\n|-----------|----------|---------|\n| **ci.yml** | Push/PR → `main` | Type check, test, build verification |\n| **storybook.yml** | Push → `main` | Deploys Storybook to GitHub Pages |\n| **release.yml** | Tag push (`v*.*.*`) | Auto-publishes to npm (requires `NPM_TOKEN`) |\n\n---\n\n## 📁 Folder Structure\n\n```\npolyfront-slider/\n├─ dist/                            ← build output (from @3nvs/polyfront-slider)\n├─ src/\n│  ├─ index.ts\n│  └─ polyfront-slider.ts\n├─ tests/                           ← Vitest tests\n│  └─ polyfront-slider.test.ts\n├─ stories/                          ← Storybook config\n│  └─ polyfront-slider.stories.ts\n├─ .storybook/\n├─ .github/workflows/                ← CI workflows (ci.yml, storybook.yml, etc.)\n├─ tsup.config.ts\n├─ tsconfig.json\n├─ packages/                        ← workspace packages\n│  ├─ slider/                       ← canonical scoped package (@3nvs/polyfront-slider)\n│  │   ├─ CHANGELOG.md\n│  │   └─ package.json\n│  └─ slider-shim/                  ← unscoped alias (polyfront-slider)\n│      ├─ CHANGELOG.md\n│      ├─ index.cjs\n│      ├─ index.mjs\n│      ├─ index.d.ts\n│      └─ package.json\n├─ LICENSE\n├─ .npmrc                           ← optional npm scope config\n└─ package.json                     ← workspace root (private)\n└─ README.md\n```\n\n---\n\n## 🌍 Publishing to npm\n\n```bash\nnpm run build\nnpm version patch\nnpm publish --access public\n```\n\n---\n\n## 👨‍💻 Author\n\n**Nirmal Samaranayaka**  \n📧 [nirmal.fullstack@gmail.com](mailto:nirmal.fullstack@gmail.com)  \n💼 https://github.com/NirmalSamaranayaka\n\n---\n\n## 🪪 License\n\nMIT © 2025 Nirmal Samaranayaka  \nSee [`LICENSE`](./LICENSE) for details.\n","readmeFilename":"README.md"}