{"_id":"@blakesteve/roster","_rev":"81-8f906ace155dcadfae840d0bda79ea8d","name":"@blakesteve/roster","dist-tags":{"latest":"5.1.0"},"versions":{"1.0.0":{"name":"@blakesteve/roster","version":"1.0.0","_id":"@blakesteve/roster@1.0.0","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"ff2056e66d71c8abd378f97b8983cff2fef6101a","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-1.0.0.tgz","fileCount":7,"integrity":"sha512-IJIRFAiY0DStKhESfNMJ1/3z50T/Wvg++Ly0IOH8DPEZBlHi2dVAc4rXTw8I0bEEiO9OCh+5UtRJLz/q5XyP2A==","signatures":[{"sig":"MEQCIHoD1+0dSP6yyaPQLMVw7+E5+izFVuSZdr/6ShUplQwRAiAMdqqCtPB2ZSSH+KtLBpX5SrNELbGLQ8ZDsFpBGHm+2w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":239885},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css"},"gitHead":"5818308e16615fdc309800e06a67eeaa1fcd3388","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"**Roster** is the atomic UI component library powering the **MegaSquad** ecosystem.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_1.0.0_1773267712448_0.6797735889064069","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@blakesteve/roster","version":"1.0.1","_id":"@blakesteve/roster@1.0.1","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"a874e38b2c29f4d3f014a955ff42a2b4da8b7920","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-1.0.1.tgz","fileCount":6,"integrity":"sha512-Y5weLG/2Vw0dZoV1Y3Vupn9sG+BmUZw9OzsiOw6Mi8Pz7qDFoKI+haHIh5sN6SuFEktoZCfdOE3LQW9v6RBGsA==","signatures":[{"sig":"MEQCIGnOYaF2mAwFu4jKy2uNASL0/XkaVptQ/5gj7cQg+8BNAiBKEEpjlge3TJHVCteoNsJ3I0y+BEasHXX6vYK8U2T84g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":816054},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css"},"gitHead":"29dc862273a8e9e91c00d6ac783f957f64c8f3a1","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"**Roster** is the atomic UI component library powering the **MegaSquad** ecosystem.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_1.0.1_1773273363687_0.784453885817503","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@blakesteve/roster","version":"1.0.2","_id":"@blakesteve/roster@1.0.2","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"6ca4baf6db42a59265570e53e69032590bad1d02","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-1.0.2.tgz","fileCount":47,"integrity":"sha512-jUcBw0/HM6smLagu0YLLLOdvana/48Cq9/VjCk5eBb1Usuld2SawBSXyS28zQVwf4XT+1jjBcEFWRyxzJaPptg==","signatures":[{"sig":"MEUCIEtFvcyZ3/hMNmTB2x99P93cnCOIcyTOMjyoYru4pNm2AiEAgxjaoIONmqQspS/C7QKA4af32qWPSf70ZpJcTZn5170=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":837524},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css"},"gitHead":"59fcbf9db1a67b2be63e118d35f2a6d39055bb90","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"**Roster** is the atomic UI component library powering the **MegaSquad** ecosystem.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_1.0.2_1773274423578_0.22398384498748913","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@blakesteve/roster","version":"1.0.3","_id":"@blakesteve/roster@1.0.3","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"2ca5eccf9ed258f81b1a4abf65f107e34688cf24","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-1.0.3.tgz","fileCount":47,"integrity":"sha512-fONcrlKf5BqKqARrshQzpbeA3J4vhPIhMlAnSZrfFSQ6muyNUDbdYlMZ+gPZSCH3AvGrvyaaXz7U1hqxzY/o9g==","signatures":[{"sig":"MEQCICiI8Lc2k/GDUAMBrYx5Rhdimv6SizqMBy4I/MM40xzbAiB5MKYo38efa8pVN+GbGC4XNh6M3pVyHCpSIKWEUny6Ow==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":848533},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css"},"gitHead":"30f6b7ff98e9077370115bdb4eca5c7ca0af5e0a","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"**Roster** is the atomic UI component library powering the **MegaSquad** ecosystem.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_1.0.3_1773296068680_0.5033799074669183","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@blakesteve/roster","version":"1.0.4","_id":"@blakesteve/roster@1.0.4","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"987841d0508a045f320a575ff1280800f9126592","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-1.0.4.tgz","fileCount":47,"integrity":"sha512-7KoX9O46DwPJM5ZXzoBNB78aA5U6jIhnnzuKYElkDncsDxNfXZLGn5gcn2nWaFisCLcEQEpvy+uGymn9CGNJYg==","signatures":[{"sig":"MEQCIGEZ9LadaPFHQyOhE6/+KDjc+BCupTV8XUrLnd1X4ozsAiBnTrxCnyG3gS0bPaIr08tIDI6RUwPeqaxKVE7M9nRR4g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":853512},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css"},"gitHead":"15eb41ae6bb738b5b23124be55fa7bdbf5b1f051","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"**Roster** is the atomic UI component library powering the **MegaSquad** ecosystem.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_1.0.4_1773297475820_0.45229643302379485","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@blakesteve/roster","version":"1.1.0","_id":"@blakesteve/roster@1.1.0","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"31d8dd4ba15d309521a3d1e9046870f6f234daa9","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-1.1.0.tgz","fileCount":50,"integrity":"sha512-8/AinZVOU8fXc4HPqRpRtEK3tRz2zGY3bnJS8Pam7H5cDo6/N5dxE8W/hhaoPVKFpPLhSodFnFhZYAf6wGwbLw==","signatures":[{"sig":"MEYCIQCjuIullt6HexX9bwUaI9F6VjP/320r+WoNU5GVVJJYLQIhAOruWWiCuMFibLPVlLXL5QUQTXPVzjeS5G9rY2XGbBFc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":996223},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css"},"gitHead":"eac8afcd22853a6e5bf039138032d136a3432b8d","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"**Roster** is the atomic UI component library powering the **MegaSquad** ecosystem.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_1.1.0_1773377457946_0.5832289254567944","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@blakesteve/roster","version":"1.1.1","_id":"@blakesteve/roster@1.1.1","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"430448c31e421dcbedf052846b546c1f11f7690d","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-1.1.1.tgz","fileCount":50,"integrity":"sha512-EEyjNrNpR8+rZKD9iDolqn99xenC3Wk6L5Iw3ZhzoqysRXlfMD5DvuJ9bDpFnLQmMRFzC4LFd8o+50XOWblJVQ==","signatures":[{"sig":"MEUCICxiUOmYJQOfoTV/HXlxrfOOL6i2HZhRCSCFOes607iDAiEA/JiHk6l502f16RuRth/tECWC9JtOgeGXA2WvcDeAmx0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":997542},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css"},"gitHead":"9740114dbfbd0cc7c1f4e9bf266f8d7f05748c05","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"**Roster** is the atomic UI component library powering the **MegaSquad** ecosystem.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_1.1.1_1773418142250_0.5698533916472226","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@blakesteve/roster","version":"1.1.2","_id":"@blakesteve/roster@1.1.2","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"b5b8645119e3c5a4669677d8975e1d638764203b","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-1.1.2.tgz","fileCount":50,"integrity":"sha512-/mJeDuxGypb+Da/xhzYhve4+SDRcVRytcIYjZnM5YAYXEWj+lm7UbQiYGUaBmunYf1QkXWqpIseRZeR19jmTwQ==","signatures":[{"sig":"MEUCIQDpGaFdrw/CiFQm8Zqsoc8ZeHxWHM5zbNDuh1GLqsfXGwIgS7IiqxgWAaEg6aBRT9MLqEhjl7YVtXdF6yHqyMMaThc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1005584},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css"},"gitHead":"68e26ce35c8cd42907396caa038306ba02bfe263","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"**Roster** is the atomic UI component library powering the **MegaSquad** ecosystem.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_1.1.2_1773449319834_0.5244708775324056","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@blakesteve/roster","version":"1.1.3","_id":"@blakesteve/roster@1.1.3","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"60bd3e6def3df52b840b9088cf8af37dc0cc55b7","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-1.1.3.tgz","fileCount":50,"integrity":"sha512-FnYlD8N1A2veDr7MWjHGDI0y5+vNk2PTSc/tolHunh3intVGESd3uJcXJEywLgMUAgZrmomMzgFX3YUqUIc7Vw==","signatures":[{"sig":"MEYCIQDdmf+qIRx9OBhW98+pyi+iq5RD1xX8lo+QPRec52tU6QIhAOy4bF/gFl3oh/eSand3nAkfe4QZaWwaRDHWjrtDvP7d","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1008048},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css"},"gitHead":"81f9160360f23060feeabab22ae769078f115a8a","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"**Roster** is the atomic UI component library powering the **MegaSquad** ecosystem.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_1.1.3_1773459506598_0.7244553292608247","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"@blakesteve/roster","version":"1.1.4","_id":"@blakesteve/roster@1.1.4","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"5ec6065eb93e854b69d9b962c71c19a2099fa670","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-1.1.4.tgz","fileCount":50,"integrity":"sha512-+y1mFMxSEqsbt5oXw5hsaS8Hn0tN9sZ2iuGE0OGi43rlQhLhqJZ3OZfvc9HN6f4RSieBcLc3CjYhu6szamSQww==","signatures":[{"sig":"MEUCICGpsoM7Mp4L3tB6ZGPfa4dUd3uYwjYoYR6aJyMLmxeZAiEA3UwPPLBIJzyWeyadczF+vzUNktTrjrfnlsR0VVxyvO0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1008100},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css"},"gitHead":"cb0377eda9d5a1db10d01deff92e66cac30aed0a","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"**Roster** is the atomic UI component library powering the **MegaSquad** ecosystem.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_1.1.4_1773461255837_0.34097818353032827","host":"s3://npm-registry-packages-npm-production"}},"1.1.5":{"name":"@blakesteve/roster","version":"1.1.5","_id":"@blakesteve/roster@1.1.5","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"ec2e2027dcbf134c3e2ca26bbd7ff1e1ddf18825","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-1.1.5.tgz","fileCount":50,"integrity":"sha512-oCGYoBXKnc+YqmB5kgsWwMl4ty68+Gh6/KcAqwTx+pc0vYTlb7sOnitjb8zvZPjrsKKygEfjBRhN1YKWEBVNIw==","signatures":[{"sig":"MEYCIQDG2EI5UIG+vkwlucPHVmoIWQeG997a2r2I/LIJwCDEBwIhANASa15/aiIZm0uxX6flJVYrkcU7IyBSQxiNyhJ7ZHXZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1009136},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css"},"gitHead":"64e51fd9f2623830c0800589b8e2c2a94d687cc6","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"**Roster** is the atomic UI component library powering the **MegaSquad** ecosystem.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_1.1.5_1773463719183_0.647039371549267","host":"s3://npm-registry-packages-npm-production"}},"1.1.6":{"name":"@blakesteve/roster","version":"1.1.6","_id":"@blakesteve/roster@1.1.6","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"3af89cf42190f06372ea493de0a8a59cbcfe5b71","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-1.1.6.tgz","fileCount":50,"integrity":"sha512-unjXNt/uJODmGlly5tK8ovphMmActeOsCrj4+nhQSWZ/eEWtLnvam7VJOZHq4eGP7/heIYZohgUM+4BG4nRkhw==","signatures":[{"sig":"MEQCIA8FKZGlmonGPZRCgvNYTrkyDrI7icbFGk2eAqcX5GMvAiB7Xdjw6ReCfha6GL5g/P0FhvcH4ATQLmlEkh+iWSc+rw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1008389},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css"},"gitHead":"3dabe4f3f5629059307e07d1c2b0f0d9fd21112c","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"**Roster** is the atomic UI component library powering the **MegaSquad** ecosystem.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_1.1.6_1773528686345_0.4282768706611655","host":"s3://npm-registry-packages-npm-production"}},"1.1.7":{"name":"@blakesteve/roster","version":"1.1.7","_id":"@blakesteve/roster@1.1.7","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"0979adc0a90b1e7e55fa230e9055344513c0233b","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-1.1.7.tgz","fileCount":50,"integrity":"sha512-l2hty7rbfOVmea42993nc3sfldP64/8KWcjnFjEvaAckkAcVXKtgdjaeIuFL7nINNvkcC3Ao3pr1JBuUqz9umQ==","signatures":[{"sig":"MEUCIQDSfaRR1zLuQADLtCyig4i0RhnmJrwB2aluVXdC8EamaQIgB95QDvsO577x5C4c2idFoLP7xq6TqVXpephPhD2gdh8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1012664},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css"},"gitHead":"51ab4962258683b7a614f2cc5c32985e5c0bac14","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"**Roster** is the atomic UI component library powering the **MegaSquad** ecosystem.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_1.1.7_1773531891530_0.7472217263541274","host":"s3://npm-registry-packages-npm-production"}},"1.1.8":{"name":"@blakesteve/roster","version":"1.1.8","_id":"@blakesteve/roster@1.1.8","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"b4e1962f1f54a856528726b3fd3ec1f97e6c6416","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-1.1.8.tgz","fileCount":50,"integrity":"sha512-0MSq1VXaRbDckN4GsQH176CbRfvCN1HmmjNHPo5RwOEpR9EyVPL4gE/bkqu9LKucXnQ0WkvkSU/NNUD+1Vm1Pg==","signatures":[{"sig":"MEYCIQC/g3VaBDP4isqPKRhIUEKwvcdxJAUcGfxeDh+v1vg+ugIhAKLKG1lyJJD+tpf0Gx2biZxrfj4AKPBLYrPvIaud0rm+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1012664},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css"},"gitHead":"063751e38625424e780c8ef252e611e6bc824584","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"**Roster** is the atomic UI component library powering the **MegaSquad** ecosystem.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_1.1.8_1773532759697_0.8919971381237546","host":"s3://npm-registry-packages-npm-production"}},"1.1.9":{"name":"@blakesteve/roster","version":"1.1.9","_id":"@blakesteve/roster@1.1.9","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"c1e73ec84a294baa404058fb115af0cc79bfd1d0","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-1.1.9.tgz","fileCount":50,"integrity":"sha512-FXZlWZCzqnHa8/gNhY4uWhsNNQEYce1lb/m62/ZdZMJd4cXqJyuV8j6W65G84u0hIqLV566/oBKn8ub/wlglKw==","signatures":[{"sig":"MEUCIQDupAotW/28usWnWcfPTEGJQAKRiBHEKjrebJJJXTl2FgIgciZQZw+FtjlPmPoGbutqVoZPBezocd+bObSFS5KFy5s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1013723},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css"},"gitHead":"ac48d922d527ac6846b33c0214c6c4cfe50de3ec","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"**Roster** is the atomic UI component library powering the **MegaSquad** ecosystem.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_1.1.9_1773591128099_0.3960838141793164","host":"s3://npm-registry-packages-npm-production"}},"1.1.10":{"name":"@blakesteve/roster","version":"1.1.10","_id":"@blakesteve/roster@1.1.10","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"9c7f4d68813dedb8517ce614be7649da5d52760f","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-1.1.10.tgz","fileCount":50,"integrity":"sha512-GkBBXwuUGNkBRTaAuytabHhNEIFgzGOsizT83tJUvnmP1d11Engt45VAZCgLjevPbYgX8QXthMaSypPCbJvFKg==","signatures":[{"sig":"MEUCIDpQu5ZsRG4xquN91cNrQPa7lfEogZTfs+fhUCIgmtXtAiEAqiBCetBsHDuEpE6WsntZJ9shWMGaZgs+y2PXHvdLYR8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1016269},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css"},"gitHead":"6356878c1feb49cb4ee49a6eba8338195153cba1","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"**Roster** is the atomic UI component library powering the **MegaSquad** ecosystem.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_1.1.10_1773594319320_0.3635594583417765","host":"s3://npm-registry-packages-npm-production"}},"1.1.11":{"name":"@blakesteve/roster","version":"1.1.11","_id":"@blakesteve/roster@1.1.11","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"992df7d8f9e07f5fe914f807a57df833f0bdec2d","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-1.1.11.tgz","fileCount":50,"integrity":"sha512-DLjzrwcaFn9tdoJYhqPf+lY7UTWVXQHQi/48ma9UeGoE2ZK/8Q5jO8ozMqeH5Clws+Isl8kr8ofdeXO7yslw/Q==","signatures":[{"sig":"MEUCIQDy46j+UU8yx2bEoBgL4nZtT+O4eHBbVAONbzPiWf6H6QIgDWu8/QX0Ko4yN9NKvi0FlpHUEbQNW2fLeGvgWIoc108=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1016336},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css"},"gitHead":"7d3c3fa036b018eecf565357e9f6de254210fb57","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"**Roster** is the atomic UI component library powering the **MegaSquad** ecosystem.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_1.1.11_1773595791351_0.9631284589074214","host":"s3://npm-registry-packages-npm-production"}},"1.1.12":{"name":"@blakesteve/roster","version":"1.1.12","_id":"@blakesteve/roster@1.1.12","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"fcce4da623c555597c5770aca41d2ef91812da34","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-1.1.12.tgz","fileCount":50,"integrity":"sha512-sy1vGZr4xIAI8gobqwNYQnHT7Hz2K1K61qkn3GIR4BsYHDidpQbYaGrJPeja9pC31OI66fRVM9BIdxNdt4+1vA==","signatures":[{"sig":"MEUCIDtTKTv85SADRmghTTm/ie9EIqfW5KnyFQc0zyzNDumyAiEA1xmqna+ZM90l435fBr41aBeC2aw0+5K7cLTeA/gqbQs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1019942},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css"},"gitHead":"a4ce7be439fb6f07886141955d8efecf2375209a","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"**Roster** is the atomic UI component library powering the **MegaSquad** ecosystem.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_1.1.12_1773599277382_0.05606364787590157","host":"s3://npm-registry-packages-npm-production"}},"1.1.13":{"name":"@blakesteve/roster","version":"1.1.13","_id":"@blakesteve/roster@1.1.13","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"76db111263ed177433339816b3ea2bd50775ebc4","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-1.1.13.tgz","fileCount":50,"integrity":"sha512-PRuEjlvOCVFgE4wfTU6CJGvvJwFJBX4IlqtonvezgJ934nffvr+ZISW+eXOl60plZ1cktv+LuFgXjEeiiElATQ==","signatures":[{"sig":"MEQCIBJQTD8jK8+yBZtAM+vIsnb+l4a1R5Cj+GvxwbpJa/5VAiAgHgx8Ku8S1VH81eqvlVQiw+OTGKNjVnh8MfGHuxD3fQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1020156},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css"},"gitHead":"4e2dad09f0e6d4470ff5f6dd220eea0fda6bd03a","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"**Roster** is the atomic UI component library powering the **MegaSquad** ecosystem.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_1.1.13_1773607877894_0.49381643718667245","host":"s3://npm-registry-packages-npm-production"}},"1.1.14":{"name":"@blakesteve/roster","version":"1.1.14","_id":"@blakesteve/roster@1.1.14","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"9160ae4ff3b21c8aea7c253fcec155186cd0e595","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-1.1.14.tgz","fileCount":50,"integrity":"sha512-7nxDJq34xhI6UyPO7g/RV9y7coZVQtuN8BkUTjIRdRnMlkIpLk+dPCufno2x7OIUYN6ISzoRXCHi3zqUUBi1yA==","signatures":[{"sig":"MEUCIQCMNRzW+1Mo1bplyhYGhaaME7/eK6TOe/fdnSoKDotcsgIgK0LnlBfuwQdKDxyBpvAJZ5vBoJReg9luMmTQ2sgaEwo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1020823},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css"},"gitHead":"d52debe88bc86699abc5b6890e51d5572d2f8d1f","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"**Roster** is the atomic UI component library powering the **MegaSquad** ecosystem.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_1.1.14_1773612952575_0.6743231323073904","host":"s3://npm-registry-packages-npm-production"}},"1.1.15":{"name":"@blakesteve/roster","version":"1.1.15","_id":"@blakesteve/roster@1.1.15","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"8b513ad1a1baa0cec9309bb234cb5e24b1368946","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-1.1.15.tgz","fileCount":50,"integrity":"sha512-6S/31p7CAkZmT+MDB0xgDb7WOdge3+31kX/LoINZF5qYdJH16BIdoCNt35h3UXmdeTdDRfPROFbNJKNKL/Us+A==","signatures":[{"sig":"MEUCIQC9uMvseS7XAQsLd/X/fL+c3+Yb9yE1j6NUdVAUb3MRsAIgTQ+/nmXGBY/bsv8ADXVZUUanZWWS4gCExz+JiDvB6z8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1022453},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css"},"gitHead":"460afa0ce93a6aca26182261dbcbe860aca7476a","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"**Roster** is the atomic UI component library powering the **MegaSquad** ecosystem.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_1.1.15_1773616944133_0.3435361639053678","host":"s3://npm-registry-packages-npm-production"}},"1.1.16":{"name":"@blakesteve/roster","version":"1.1.16","_id":"@blakesteve/roster@1.1.16","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"ee6d9fb1ac7833112d1bfaa98c386d3b295dda70","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-1.1.16.tgz","fileCount":50,"integrity":"sha512-LwCYnb/Cq9ITNwdk7nDiTiQCI2HanEGEGDz0S6jsYjbSEHWS8uuhraxt/3CzFUHqa+hiLoJOEZO2NohDrzeZyw==","signatures":[{"sig":"MEYCIQCk6MCS1/jNRKkot5o5yDdlw+35W56h1c0KHv2hlH0plwIhAJlg0DLrwUJJADfIkHnYyOYCdI3a2nXu+3MGxkEBZuO+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1024674},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css"},"gitHead":"07acdf4b323c2f376ea91b49c5b2d1d1493320f3","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"**Roster** is the atomic UI component library powering the **MegaSquad** ecosystem.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_1.1.16_1773629626836_0.11879334252121576","host":"s3://npm-registry-packages-npm-production"}},"1.1.17":{"name":"@blakesteve/roster","version":"1.1.17","_id":"@blakesteve/roster@1.1.17","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"464bee16903b1c25797bc2e7e18a99c200e7ccff","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-1.1.17.tgz","fileCount":50,"integrity":"sha512-U+bXSMJQnwAM/kLN4YtKGiPoP+zePpuXj0jJRZgS0qWuLYHAgvEYGz14lgeJQq7VULLW5tQuzthb890f+1SBMg==","signatures":[{"sig":"MEYCIQDrkv0vg03NSeb44OzXoaM1OyqD5m3tF+dp92+YTzLrfQIhAMxnrsRy2Ms4pXFkuUSEpHDIvqOuZq7+556lN8F0XRBy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1025663},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css"},"gitHead":"f418129648e71ff22c121df2c1369e5ad02b4d9f","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"**Roster** is the atomic UI component library powering the **MegaSquad** ecosystem.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_1.1.17_1773671854332_0.3118837343990173","host":"s3://npm-registry-packages-npm-production"}},"1.1.18":{"name":"@blakesteve/roster","version":"1.1.18","_id":"@blakesteve/roster@1.1.18","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"34ae77c711f1c0a68524c487f4890f53943cbb15","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-1.1.18.tgz","fileCount":50,"integrity":"sha512-ectUvmzeB3UUPSMm/xFKTzO082cD7PJoVRZAyHkse2ICWnKinqsDqtdR02EO6w2i7Fr9CfgEGuIx8h4qPFsC6w==","signatures":[{"sig":"MEUCIQDitYTAkg3CSQNEdFYNMYpX/zoz2sMlSNtnHLX8oD2fawIgPJm8P+JKUCoVnM1jnR+Tpp5es0qOq7g1Qtl1jmvn6t0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1027390},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css"},"gitHead":"e7967448efd24574651eefd78ecf106a84b38e66","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"**Roster** is the atomic UI component library powering the **MegaSquad** ecosystem.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_1.1.18_1773701256766_0.18505217081470526","host":"s3://npm-registry-packages-npm-production"}},"1.1.19":{"name":"@blakesteve/roster","version":"1.1.19","_id":"@blakesteve/roster@1.1.19","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"30ff875f8238be11639b8ff39092fd8d31358240","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-1.1.19.tgz","fileCount":51,"integrity":"sha512-/7lkFQE5ZSXxfYEfw7WJBqWeMCRARh6gdd3t0VuMbE6DOOugai6PtRgWISDb5lMXJddwVIGK7cV1X+z4KyqD4A==","signatures":[{"sig":"MEYCIQCwF0tDsTx/XZgUcRcbozDCKIPoqTIfLQA7mK48ICXWCAIhAInAVYGvPrpSGiq/lKidI2llZvboJEQLGEAbUx6HH91z","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1029603},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css"},"gitHead":"d2e02367b7c6f34b47668130fb33600f2b4c9c29","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"**Roster** is the atomic UI component library powering the **MegaSquad** ecosystem.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_1.1.19_1773703979749_0.39204535725844547","host":"s3://npm-registry-packages-npm-production"}},"1.1.20":{"name":"@blakesteve/roster","version":"1.1.20","_id":"@blakesteve/roster@1.1.20","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"1bf4275b01f061582e08d22848121a23edfda839","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-1.1.20.tgz","fileCount":51,"integrity":"sha512-zwTnG5p2Azqy1/CR6VIAUeYvb3M59RLuDpF2iCILPeQHdWkI2fwnw0OY6Mb7sO31j5Xsb57rLmo0XpXuoFJUTQ==","signatures":[{"sig":"MEUCIBRGr/oHge5huGWDNc3hL6iE9JpgrrWPL8df87WapsYfAiEAgYqRsJoUVAwcUV6B8S6jJO2vWkPj2HZYAhdUhQfQg+8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1038357},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css"},"gitHead":"064026e27fa2df3030b69c0b5155cf16757456bf","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"**Roster** is the atomic UI component library powering the **MegaSquad** ecosystem.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_1.1.20_1773718692582_0.08408551902906503","host":"s3://npm-registry-packages-npm-production"}},"1.1.21":{"name":"@blakesteve/roster","version":"1.1.21","_id":"@blakesteve/roster@1.1.21","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"d13b8444e16ccb16f84110324168d3fc0db7d888","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-1.1.21.tgz","fileCount":52,"integrity":"sha512-AV8S0Li+KGtJWp7XeoNfkV4CHUfN5cRt62uhrYLuwmCKC+kMrmu0B3g04pg1tOYo2amK2ktgt+gSgnKrkucMJA==","signatures":[{"sig":"MEUCIQCXxto0idJaEpUxk3v8YxvRLQ7qVMQXi4lF0uoo/jYaKAIgbNI5U7He1QzMqGHEuqDWjOwuz8yk9aPcnrzB5tn3Ikc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1039381},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css"},"gitHead":"99001e9c8b606506f787fcfadd9dc56d48c4b1b1","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"**Roster** is the atomic UI component library powering the **MegaSquad** ecosystem.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_1.1.21_1773773465196_0.44950091402450454","host":"s3://npm-registry-packages-npm-production"}},"1.1.22":{"name":"@blakesteve/roster","version":"1.1.22","_id":"@blakesteve/roster@1.1.22","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"3be6e64c6b97fb907c842f9836511bfe3af6bee3","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-1.1.22.tgz","fileCount":52,"integrity":"sha512-4Y97wncKwA5f+399vaExY682kWiwTW3bBqF5de4jQib+CGEvXpcLiyVF0gd2lHly8SNjXj2cQclsItU8ZXzsnQ==","signatures":[{"sig":"MEQCIC5A41lciDK65/zd8DH8HH8gACIK7LuNBwgacSt/EBhMAiB/Q3C1vuMAmqZ7R+p2XcFqIps+E9rn1CHnmAJ5aovAXA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1039728},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css"},"gitHead":"ac10cdf4069f2e269e9e10ed2b2b3ac7752a7152","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"**Roster** is the atomic UI component library powering the **MegaSquad** ecosystem.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_1.1.22_1773780733817_0.5309475165154323","host":"s3://npm-registry-packages-npm-production"}},"1.1.23":{"name":"@blakesteve/roster","version":"1.1.23","_id":"@blakesteve/roster@1.1.23","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"3aa04d6cd735ce54e037e5a7786c6b2a5e6ff96c","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-1.1.23.tgz","fileCount":52,"integrity":"sha512-g/75/eT8+8maSArOBO17qxaTRohsPcDTZCjyRLJ0IvRJwQ67vIAy5B1x65OrwOOYKe99qOEjZqdK4xbpvvZJ7Q==","signatures":[{"sig":"MEYCIQCg2v2A1FqwFHzqW6Gziv8GcTLi4SLJ0K0RYeplQ5TwlwIhANeLSrVtlNTN7yBg7zJ7QVrQ2W7s0+42hwRWfeIVYRAW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1041406},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css"},"gitHead":"5f89a37e702be48444a512460e3f4b7aa3baafc4","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"**Roster** is the atomic UI component library powering the **MegaSquad** ecosystem.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_1.1.23_1773792198771_0.0792979013129902","host":"s3://npm-registry-packages-npm-production"}},"1.1.24":{"name":"@blakesteve/roster","version":"1.1.24","_id":"@blakesteve/roster@1.1.24","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"d7ec9fa079a4c021f0c2e7659f8c4f3aec3ae88f","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-1.1.24.tgz","fileCount":52,"integrity":"sha512-xsIVGjZB/uniMDnfsd2nZhvzFpjroT4hXMI/V8XGmQvq5aWePRuJ2mvG+d7RSvSzsV3oi/J+dXZSHTHsUWFvfg==","signatures":[{"sig":"MEUCIQCqtt0oo9v1vXUrnGiP4q5hzuaqnJKWGBNd9+8adW239AIgd9B4Ws8R8Yb+bFva3rKQ4zYZHNx2P0EKdFCfjviBZOY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1043670},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css"},"gitHead":"f277740f8f3ad1161e7398fd69f963ea6a2d1da8","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"**Roster** is the atomic UI component library powering the **MegaSquad** ecosystem.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_1.1.24_1773807226736_0.5933076480776416","host":"s3://npm-registry-packages-npm-production"}},"1.1.25":{"name":"@blakesteve/roster","version":"1.1.25","_id":"@blakesteve/roster@1.1.25","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"bb396434c72d1592189f1dc6e36ff83686ac5463","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-1.1.25.tgz","fileCount":52,"integrity":"sha512-zJGk0bvsxjIuVhCkPGiYlCz55xJjEJA29iGRZB8vF7LOQWxBMtGmYR+2yROy525ur2DXA350W3tnl/VlXnSbhQ==","signatures":[{"sig":"MEUCIB+nczIqiKg+7BTqRRxBWDcrvxx5R1D0De0wKkSkbNOFAiEAxVpwjvndcBoaEZ3MksZnn6N9EdatOobXv8SVvKyrm68=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1043685},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css"},"gitHead":"caa71983aac740addf8b7fa0f5232cfe35478e5a","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"**Roster** is the atomic UI component library powering the **MegaSquad** ecosystem.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_1.1.25_1773808397551_0.772106571414992","host":"s3://npm-registry-packages-npm-production"}},"1.1.26":{"name":"@blakesteve/roster","version":"1.1.26","_id":"@blakesteve/roster@1.1.26","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"db8ae9c0715dd222f87569162821dcd45c61b702","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-1.1.26.tgz","fileCount":52,"integrity":"sha512-hBTVhaRzmEnrPr4x9DFBJPRZUOb3b254uHyz9Jfjd0MQ1/R1N9uWGT5dbRhLVK47WVWVhbuV3eYLPqwMHTYBKQ==","signatures":[{"sig":"MEQCIF7tSSAfrXOiHAVLXPOaAhdDQfNojLduCt+VGnEfOfThAiAOG5tHqUZCGL3Rdddnam07QlwU0FqYZcXMIBgCRHLr5w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1051023},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css"},"gitHead":"4416c8f351f21780c9961add9b5ac5abf9e75b06","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"**Roster** is the atomic UI component library powering the **MegaSquad** ecosystem.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_1.1.26_1773896513428_0.50125579435586","host":"s3://npm-registry-packages-npm-production"}},"1.1.27":{"name":"@blakesteve/roster","version":"1.1.27","_id":"@blakesteve/roster@1.1.27","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"74b1cd069293458d9330e904485aa85ab54177c3","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-1.1.27.tgz","fileCount":52,"integrity":"sha512-7bCTA4vx4xbCOAGv3zi7Un+MGQjYe8N+GSHEyHMCUVI+LkM6s2ZlnwebaODgrdZhxDBlz2w2mbn0t9keXl6j8A==","signatures":[{"sig":"MEQCIEbsv6EbHSNLO0+cp8pGm9z8CRcPiYHYEUDraPGNCgylAiBIjq9CU9IRxXgIjiU4J7nn6zjQ/NO2F9G+FJKswvyVsA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1052960},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css"},"gitHead":"35d12347f1c3a46f957d1d31a0b709210c0cc372","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"**Roster** is the atomic UI component library powering the **MegaSquad** ecosystem.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_1.1.27_1774914789330_0.8610248001046432","host":"s3://npm-registry-packages-npm-production"}},"1.1.28":{"name":"@blakesteve/roster","version":"1.1.28","_id":"@blakesteve/roster@1.1.28","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"6bef5626cdec97037f8490f63c2132df471b485b","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-1.1.28.tgz","fileCount":52,"integrity":"sha512-wBHQLn/1RX+e/NEE7oYRMuqFeSiV8QKkWh2mMFpXgYRIF8a3cldzIN8ZRf+bpIo4FYE6GN1WYjtCu7uCnrr+gQ==","signatures":[{"sig":"MEYCIQCcshEwm5a0cljQjE7ywPMbCVxncTcXXiaaeONP6suiSgIhAP3J+3RVJ58n5S7BAQkE7UMRPhhBEePVet9Ei4ugzgxh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1055667},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css"},"gitHead":"f0ec9a4b03960aec6fd7444bf87a73664f08b38a","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"**Roster** is the atomic UI component library powering the **MegaSquad** ecosystem.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_1.1.28_1774930504671_0.28124249096342524","host":"s3://npm-registry-packages-npm-production"}},"1.1.29":{"name":"@blakesteve/roster","version":"1.1.29","_id":"@blakesteve/roster@1.1.29","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"1bf408243390735e886430d41d599135565a7df9","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-1.1.29.tgz","fileCount":52,"integrity":"sha512-7S9W3/T9zT8q9ElsZQHy1KxHVzPM+bmFQOzJeMx1xL+hKSbH/JA7Z6W+MsZxpbBrlc3RxbdWM4HGVfQtDzEkUg==","signatures":[{"sig":"MEYCIQDz/gm9GeRtkFe3IscQgPf4XSjFqH+lAJz4ViNkjamKmgIhAI358UgwKTkmqdIXRmJzuHvKV0yTh7tn3k//thdrvi7A","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1054743},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css"},"gitHead":"f8b75fa83d89e2ad4dd81960c63b1e7fbe42002b","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"**Roster** is the atomic UI component library powering the **MegaSquad** ecosystem.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_1.1.29_1775007767919_0.9553335408166581","host":"s3://npm-registry-packages-npm-production"}},"1.1.30":{"name":"@blakesteve/roster","version":"1.1.30","_id":"@blakesteve/roster@1.1.30","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"eb30dc3b36d9f62698b48d4d2fc076e750e042fa","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-1.1.30.tgz","fileCount":54,"integrity":"sha512-hT3AhTSGnQIVU8DKMiRoAj7HvXms3F/5c3ip/Y+Pt9QRsplsndOGEsc56WQMPx00pIbs3tnAx98waswnNfZo1A==","signatures":[{"sig":"MEUCIQD8v+r/tlSTReGxOFWYjhdy/FXyIISMRfpVy17XEoH6BwIgSAHmT4/K7HqnA3QyaZ8o9Y+BM+LhFwoU95kynZd6HHQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1068932},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css"},"gitHead":"debbe9e5c9da5a032f5aab6b4e851e50111a0095","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"**Roster** is the atomic UI component library powering the **MegaSquad** ecosystem.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_1.1.30_1775103372763_0.6031189846347538","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@blakesteve/roster","version":"2.0.0","_id":"@blakesteve/roster@2.0.0","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"dd2a06761f3e3fa1794b19bad0da18e99aa234de","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-2.0.0.tgz","fileCount":59,"integrity":"sha512-euD4gJ9BMbWmB4UJl5oUmm2M7zisplk5Mq5l4kWtGRgi5u5vSGJs9tOMyOwJtPTf9Ir6TN8ytlLt1nPOu9cfhg==","signatures":[{"sig":"MEUCIAwlKG+PtDuV1pesw1ovRZHDYLWf5SpFuupxxgVjUb/8AiEAycefpLfW/XPujcQDgMvIzKT88jYEet6eAnF6cTGfJAA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1074695},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css"},"gitHead":"2a36623d3fa5a770ee9bdbeb8891f5df4ba5a4f1","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"**Roster** is the atomic UI component library powering the **MegaSquad** ecosystem.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_2.0.0_1775883327633_0.9836186302879244","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@blakesteve/roster","version":"2.0.1","_id":"@blakesteve/roster@2.0.1","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"0f6c02c92f5da6d2244b6434323acd95bdf9a6bf","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-2.0.1.tgz","fileCount":59,"integrity":"sha512-ei+/2kxaKtwxo/w294FvMtQiWGDYdh6lbxF6PbpMr3k2MrXcQWTcsXAisZ9pzHlrG9HRXLs345bg/MJ1oVDlmA==","signatures":[{"sig":"MEUCIDUCiYmQbktfqJC1zlLIHvvyFS8LNlkktZbh/L8esr1PAiEAmEhNGB4jfEDX4OEhSgBzb1hGoimMXkFa6Y/0w+nV77k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1074736},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css","./tokens.css":"./dist/tokens.css"},"gitHead":"1b826c769fa98d3ee62378761736c53ca319c093","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"**Roster** is the atomic UI component library powering the **MegaSquad** ecosystem.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_2.0.1_1775949947273_0.21776523767807543","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@blakesteve/roster","version":"2.1.0","_id":"@blakesteve/roster@2.1.0","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"440b860f53240fe917975db68d305851764d8e84","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-2.1.0.tgz","fileCount":59,"integrity":"sha512-ijfyT5SwHoacU8xz+VE3A0dGnSBA00JkbRuYOd1aImprFTnuVbO8tgLFG2ZKLzSySRdZFL8XrR3S1obVP2sBxg==","signatures":[{"sig":"MEQCIACQ1hYdmBNmjjbqcZvY//HOAhccw0/RqscWrH5oiSDLAiBO54r0EJVfPYyaHJisI8ee4MfCu8tLDgPCKoWE+HKOPg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1075204},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css","./tokens.css":"./dist/tokens.css"},"gitHead":"5dab0c80c6af18a5d62f201c084f32a1bcfe1d55","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"**Roster** is the atomic UI component library powering the **MegaSquad** ecosystem.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_2.1.0_1776529973712_0.3546698682739171","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@blakesteve/roster","version":"2.2.0","_id":"@blakesteve/roster@2.2.0","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"690bf7b17fee6e52defbd74153909592f1ac2bbe","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-2.2.0.tgz","fileCount":59,"integrity":"sha512-SLDANutwHA4mV9MYczSXr41gy0x8XABsjXZY+s98fGrAnJCpCs/H3QZElOk5GmyYGEnkt5vACYAJjrYt3OHV2w==","signatures":[{"sig":"MEYCIQDE2jUz8Uu3IIlirLfb+80/C9bxvllzmttYVAiEx8KT5wIhAMLSU5pUKv96xfC7bLivM1kCa5+CqmS5ClA7LitiiIs2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1080353},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css","./tokens.css":"./dist/tokens.css"},"gitHead":"3fe2068a63db33624abf396682dae1fde2952e68","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"**Roster** is the atomic UI component library powering the **MegaSquad** ecosystem.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_2.2.0_1776622808396_0.592145226505201","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"@blakesteve/roster","version":"2.3.0","_id":"@blakesteve/roster@2.3.0","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"a21e13e1fecfae5d45e2720eeb6b5b46ef9669d8","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-2.3.0.tgz","fileCount":59,"integrity":"sha512-CZnYYG3IDW83vtpMRK8oh67FdiZtdvQmpl99YF/l1WsQ/v3AczIoQUE5wbjvYuzxKBLW8FWQr6LKa7Kjq5jDig==","signatures":[{"sig":"MEQCICj4BffUFCpiola/e8it7rUc7etbZgM7ry8bPIWBUfChAiAhAtagIjMYrXUNwDTIbH4QSA/CF5zhzJtUZcesxlSTtA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1080982},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css","./tokens.css":"./dist/tokens.css"},"gitHead":"a126f7a7729155faf49e34193d531f25d3de4c75","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"**Roster** is the atomic UI component library powering the **MegaSquad** ecosystem.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_2.3.0_1776818456836_0.7427009365927661","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"@blakesteve/roster","version":"2.4.0","_id":"@blakesteve/roster@2.4.0","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"93611adea01e800282604e78169d32d710b05e78","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-2.4.0.tgz","fileCount":59,"integrity":"sha512-e3p4NPsAWk6snLXUqJvNGZKhMDC5zkrND5GHycSdZUj5NaFr+Xg/yVw85AiH/Kop7fWfa8DBd2f/LMlGy66M5A==","signatures":[{"sig":"MEUCIGW0GMmpXGNdXQagihO3Jw4/E00m+HN1tI8iK/azKeH3AiEAh8Stxmx1+KdiL9EBvQ4hDOTAQrTCEug+myMtW6neVLc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1081044},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css","./tokens.css":"./dist/tokens.css"},"gitHead":"1e66ef40616b88f6787f81a9474e8d9b50a31cb3","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"**Roster** is the atomic UI component library powering the **MegaSquad** ecosystem.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_2.4.0_1776908084307_0.7876295258618151","host":"s3://npm-registry-packages-npm-production"}},"2.5.0":{"name":"@blakesteve/roster","version":"2.5.0","_id":"@blakesteve/roster@2.5.0","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"5c500f4b8fcd25e12b4aa8873abfa67272052c57","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-2.5.0.tgz","fileCount":59,"integrity":"sha512-AvC8I0AXl9QJF6BFHMVoc4CqXRIDJUsSF5lEHqUdgHc5j0KPdd8CtbuKrY2RMVEmsAMM8lBmrU13zP0P+YZeqA==","signatures":[{"sig":"MEUCIGmnMzUjQc67Y4Lql6Q8Vab6hIyKKfjM60M95W8FlOPHAiEA/MMGJK0zyUtcfMxn3uriCeDsJUzh9ya+18RwbsLLhGc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1081839},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css","./tokens.css":"./dist/tokens.css"},"gitHead":"5dac8d2ef5f743b146add2f3fffe9d0e96159990","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"**Roster** is the atomic UI component library powering the **MegaSquad** ecosystem.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_2.5.0_1776983055982_0.40936104405534657","host":"s3://npm-registry-packages-npm-production"}},"2.6.0":{"name":"@blakesteve/roster","version":"2.6.0","_id":"@blakesteve/roster@2.6.0","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"2a6b2ad958e024888d1a5bb5d148d59ec14a1ee2","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-2.6.0.tgz","fileCount":59,"integrity":"sha512-K4eLFf52u8cpizOmt+Htooic9B6w8JezNF+OdgGy0cERMxqvkpiybCs7pGfoX37xeY4THYf5oMX/iVGsVKlxuQ==","signatures":[{"sig":"MEUCIDZniuu9XyNV9ZPpNQeKDdG7A+q8m4avSj/2oLrMkso4AiEA+LNgR2DOCc0NjPDnRb5olCGqwwK5R29x4f0fhe//48k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1081902},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css","./tokens.css":"./dist/tokens.css"},"gitHead":"de05996de9aa381635215073db5506768bb7e5ed","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"**Roster** is the atomic UI component library powering the **MegaSquad** ecosystem.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_2.6.0_1777047728039_0.31017561694782847","host":"s3://npm-registry-packages-npm-production"}},"2.6.1":{"name":"@blakesteve/roster","version":"2.6.1","_id":"@blakesteve/roster@2.6.1","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"8f3cf4ee50bab88f899258697f0ef25efc9884b4","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-2.6.1.tgz","fileCount":59,"integrity":"sha512-KozUwSTjXNyIX1NVs8AEk0YPZTNuPUDC0EwMDM9sl2pn2nB2dVcMvm0Po58jOxDpqRKKGjKLqLK2twgWlHUJSg==","signatures":[{"sig":"MEYCIQD6T22Sst863tDxuvGEVmVV2dWbuLsLfmGsgORlB0mX6AIhAJgCoH7j+EOHqQRrEzmhY1j1d/SHH52pZk7lZDv7Jewo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1081902},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css","./tokens.css":"./dist/tokens.css"},"gitHead":"2e065e5a45c3bbc1d081dd20d34cd251dd2d9de1","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"**Roster** is the atomic UI component library powering the **MegaSquad** ecosystem.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_2.6.1_1777061529825_0.4861064067392644","host":"s3://npm-registry-packages-npm-production"}},"2.6.2":{"name":"@blakesteve/roster","version":"2.6.2","_id":"@blakesteve/roster@2.6.2","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"68081886fdd167d22b723c9ba7b96332bfdaca75","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-2.6.2.tgz","fileCount":59,"integrity":"sha512-NLM6PAoxY+sgZgGS3Mmu8qtVJUkXJJOIyrW+FOJ9wHpR+EgfhhDklmvRLlUBUM7P/3KWIV5uKkGeCBe9m6WaxQ==","signatures":[{"sig":"MEQCIAvCVL+2piC2gWYbL4/miEsM3f5kPrTDtzPNvlX2t5t8AiBkWzlClSFax87PcenmqBhkcP5/mHZ2eUBDfgDGcer2cQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1082784},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css","./tokens.css":"./dist/tokens.css"},"gitHead":"a83c907b5bc8c55558ed7c872530edc91dbf0979","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"**Roster** is the atomic UI component library powering the **MegaSquad** ecosystem.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_2.6.2_1777062525288_0.5385561769773204","host":"s3://npm-registry-packages-npm-production"}},"2.7.0":{"name":"@blakesteve/roster","version":"2.7.0","_id":"@blakesteve/roster@2.7.0","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"02b2bc04f9add60443c9e1e7c7faff907f3af816","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-2.7.0.tgz","fileCount":59,"integrity":"sha512-bzNRbOSCA4f4Iz1kl8Ic7CYwsO4EgrsOZYTdgnYjO1yu70YsNrNGtvw5itaSelBCjI2nwSntUzi5CPrz8vpaUQ==","signatures":[{"sig":"MEUCIQD8bd6KAO8PtBgS4e3/HN5hR1sB0gZ0Fir3Ze46Gxt2rAIgacuqyCPq/1ptoChNB/OWbacPNQKPnVNWNTZstmaoW3s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1084298},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css","./tokens.css":"./dist/tokens.css"},"gitHead":"880885c368e916490560894286d1fd4e32f4fc8b","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"**Roster** is the atomic UI component library powering the **MegaSquad** ecosystem.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_2.7.0_1777079592860_0.7625168225737093","host":"s3://npm-registry-packages-npm-production"}},"2.8.0":{"name":"@blakesteve/roster","version":"2.8.0","_id":"@blakesteve/roster@2.8.0","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"90a86b09c2cce3b18015457ac5c56f19113503af","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-2.8.0.tgz","fileCount":64,"integrity":"sha512-pUM1gp8IiwsmVizoKUw57IV8gMidMklygFyWStBUCyXu0yuBr1n8RUEF6qd/Ra7aobrI0nsHwCnM6Y1b3rfqsQ==","signatures":[{"sig":"MEUCIC0CzQTdSTkc2akFI1d4O0EbwHJOhCIpEjKeECBTcBg6AiEAjVNnpVY1j5tl9aELZ4AAiW/5HqNj2xx+EFzVwDupCn4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1179890},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css","./tokens.css":"./dist/tokens.css"},"gitHead":"099c2eb5b672b767ad15c18623ba5cad0b4de49d","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"A production-grade atomic component library built with **React 19**, **TypeScript**, **Tailwind CSS v4**, and **Vite**.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","@radix-ui/react-tooltip":"^1.2.8","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_2.8.0_1780509379324_0.017673694228724335","host":"s3://npm-registry-packages-npm-production"}},"2.8.1":{"name":"@blakesteve/roster","version":"2.8.1","_id":"@blakesteve/roster@2.8.1","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"c0abb4c41189061f23113d76466ccc2d149de094","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-2.8.1.tgz","fileCount":64,"integrity":"sha512-ZriSO/huxzxQ0cavEEdaUylMAKxwAKhtUwU74A3qb9vTI6nYoiUVe4r71f2IKZ1xEpIwgLwsGPXw42RtLhNNlg==","signatures":[{"sig":"MEYCIQC40zJ0y5pH23ExQLRZymIJvKBze1jk4HK+ARGQ/RMKtQIhAJFGpPSJu4VlNl73Dj8HREhglVsD1qojME27ajK2+bSX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1180292},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css","./tokens.css":"./dist/tokens.css"},"gitHead":"a32ece34306199ca8f597544db13b78bf0583cad","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"A production-grade atomic component library built with **React 19**, **TypeScript**, **Tailwind CSS v4**, and **Vite**.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","@radix-ui/react-tooltip":"^1.2.8","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_2.8.1_1780509897234_0.5762039300086517","host":"s3://npm-registry-packages-npm-production"}},"2.9.0":{"name":"@blakesteve/roster","version":"2.9.0","_id":"@blakesteve/roster@2.9.0","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"f47de96a902cafdf1b704228d899bbdac3c0c42b","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-2.9.0.tgz","fileCount":64,"integrity":"sha512-vAVTXOWyYU4shZ8GZylcF9a9PhzenuW2A+kv18oM2EE2262qg74617pLbgfh/gjEVa4ykLMLyvad5Vd2kEKwIg==","signatures":[{"sig":"MEUCIQDYmwaJ+6rGwDsxgDPtwsDy2fXVtzmTu7tNsXVkoHxGhwIgY/Hpf4WPOOEZauTKmL9w5xcMP35oP314FHzNF9tJ9vQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1180304},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css","./tokens.css":"./dist/tokens.css"},"gitHead":"769e18cd478f507573c2aff2a7bcce52a7a10840","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"A production-grade atomic component library built with **React 19**, **TypeScript**, **Tailwind CSS v4**, and **Vite**.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","@radix-ui/react-tooltip":"^1.2.8","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_2.9.0_1780515439745_0.8134276537954495","host":"s3://npm-registry-packages-npm-production"}},"2.9.1":{"name":"@blakesteve/roster","version":"2.9.1","_id":"@blakesteve/roster@2.9.1","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"a71a3b8e202ad70a1a101bd5ce45a13d304e694a","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-2.9.1.tgz","fileCount":64,"integrity":"sha512-TKS2iC/EimWWqTC3AKooGyKwEYSOtWzPLJt9cgQEGV5QAizGdB7pa7dp2BysaUI5i1dgMpRNKfuxBjaHeNZdTA==","signatures":[{"sig":"MEQCIHHXK1Yo+Tvv+VTF+ehS3q19HLdnJPHdT8xm5bmTwPclAiAUydTiisvaqf/jkqGS0ieNxLN2PLkf1tiKFYQ8D5mz5w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1180304},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css","./tokens.css":"./dist/tokens.css"},"gitHead":"6fe555aead579881f1cea232d3e3828a07f8f8b1","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"A production-grade atomic component library built with **React 19**, **TypeScript**, **Tailwind CSS v4**, and **Vite**.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","@radix-ui/react-tooltip":"^1.2.8","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_2.9.1_1780523431238_0.9355076716527453","host":"s3://npm-registry-packages-npm-production"}},"2.9.2":{"name":"@blakesteve/roster","version":"2.9.2","_id":"@blakesteve/roster@2.9.2","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"e922d375b9da6ec5721ba6037c2b62ba01ecf427","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-2.9.2.tgz","fileCount":64,"integrity":"sha512-ORwFswzSZ7qWkhrcgYMGH0z5un0wGKGRXKW6nR/zRUhZNhs4CXKssJ43pB980ZRCxnwM7D9OzUXmtGUw5qPeFw==","signatures":[{"sig":"MEYCIQDv5HOOt2/j6u2k11YxFONqJDXwfvsRoRpgSizR7pqTFgIhAIQt533I/6ngFn7mTIDhnRGMShvzVrPuJtXzfh36/OwW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1180664},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css","./tokens.css":"./dist/tokens.css"},"gitHead":"8295fea66071475a2ed46b43b0dfda0bbb8adfd4","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"A production-grade atomic component library built with **React 19**, **TypeScript**, **Tailwind CSS v4**, and **Vite**.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","@radix-ui/react-tooltip":"^1.2.8","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_2.9.2_1780526822884_0.8216371209571003","host":"s3://npm-registry-packages-npm-production"}},"2.9.3":{"name":"@blakesteve/roster","version":"2.9.3","_id":"@blakesteve/roster@2.9.3","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"b04efa27eedb6174b73b74c1a9862481f649f288","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-2.9.3.tgz","fileCount":64,"integrity":"sha512-xp4x29KDb4Ha8PGs0Gwpq66ESVZDz1c9QnW5uN4R3dF32g/JLtAfwv5pdsYX6pobFPyy5oQffubALNFV74uvBQ==","signatures":[{"sig":"MEUCIQCq3wN8TltzPnGoIxznmegOdt0C3PUK6SY1KmJs4u4PMgIgOfQaOyyVCqxdTbuWioYa5Bf1psvdWh+0VgrpneJnnNo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1180704},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css","./tokens.css":"./dist/tokens.css"},"gitHead":"b68984a6c68bb2e9a0cdf82d30e297b143b97aa0","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"A production-grade atomic component library built with **React 19**, **TypeScript**, **Tailwind CSS v4**, and **Vite**.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","@radix-ui/react-tooltip":"^1.2.8","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_2.9.3_1780530781719_0.6442172113280513","host":"s3://npm-registry-packages-npm-production"}},"2.9.4":{"name":"@blakesteve/roster","version":"2.9.4","_id":"@blakesteve/roster@2.9.4","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"381c07616ed469d2e541c5ce39ce17322bc8ef93","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-2.9.4.tgz","fileCount":64,"integrity":"sha512-w1+b0rLlW7DRbXahohtsHqiqmy8FC2Lp7hqJiMeQMx42VCWeIFA0SCVqFvpYx6c8J2C9k3OsCpVizF8Tnv5mlw==","signatures":[{"sig":"MEUCIGaeO16U+DTMad+fE8SKovpEwRJt/mOQd5z+ge2tgsTsAiEA/fBQzjhLD/tX3MSlb62GKPXWTpf0zGrO4oCEUImuUxQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1180839},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css","./tokens.css":"./dist/tokens.css"},"gitHead":"4fb7b121d2056742bd7b1f3b9bec2d8e8e7fe477","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"A production-grade atomic component library built with **React 19**, **TypeScript**, **Tailwind CSS v4**, and **Vite**.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","@radix-ui/react-tooltip":"^1.2.8","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_2.9.4_1780935967478_0.6086619305596306","host":"s3://npm-registry-packages-npm-production"}},"2.9.5":{"name":"@blakesteve/roster","version":"2.9.5","_id":"@blakesteve/roster@2.9.5","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"b22a9a4d5c8ba14b0930f40e245fddd666b8a057","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-2.9.5.tgz","fileCount":64,"integrity":"sha512-uIpLWuxuNm8EtLmSqWrYuG5BBj82tp7GGLNuqbz0GSJYH0XABBufuLtoj8L4XuPuGmtEMV5XosRHyUn8B9Ekpg==","signatures":[{"sig":"MEUCIGd2UgP9LrGBAYNHwgHsURWwqWE1ihri/MT6jK+RZ9MOAiEAgbAjdgPAOpV3k2XrDpLfZsAS4JAV/zEESOM+Y9wzjUA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1181766},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css","./tokens.css":"./dist/tokens.css"},"gitHead":"fd95a503523045b2e0c367f26075ab5633b0024e","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"A production-grade atomic component library built with **React 19**, **TypeScript**, **Tailwind CSS v4**, and **Vite**.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@tanstack/react-table":"^8.21.3","@radix-ui/react-tooltip":"^1.2.8","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/roster_2.9.5_1780951496927_0.8608763739049998","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@blakesteve/roster","version":"3.0.0","_id":"@blakesteve/roster@3.0.0","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"5dd60874ca86bb385e540173637f3f7adf5f079b","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-3.0.0.tgz","fileCount":73,"integrity":"sha512-Jb5tk8lFOmQigFRhb7v5aEPRedqrayki7HZ3vUWHi0GKyIvH+5afInNy/I/ygTcTslL9Q4FH+kNRiIxSoICpuA==","signatures":[{"sig":"MEUCIQD8zh+agfdWptKaLOHUx4FTpAVPwbpQZ/CK0kK11ZrSAwIgBlYxLEJjJx8iVhpgTg35+kR1zdQoP4mY2Y5DDSLUiOg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1103946},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css","./tokens.css":"./dist/tokens.css","./preflight.css":"./dist/preflight.css"},"gitHead":"fbfff56b29621bdf937848f85d4cf504572b272d","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"deprecated":"Broken: DataTable was exported from the main entry with a static @tanstack/react-table import, so any import fails without that optional peer installed. Fixed in 4.0.0, which moves DataTable to @blakesteve/roster/data-table.","_npmVersion":"11.4.2","description":"A production-grade atomic component library built with **React 19**, **TypeScript**, **Tailwind CSS v4**, and **Vite**.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@radix-ui/react-tooltip":"^1.2.8","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@tanstack/react-table":"^9.1.2","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0","@tanstack/table-core":"^9.1.2","@tanstack/react-table":"^9.1.2"},"peerDependenciesMeta":{"@tanstack/table-core":{"optional":true},"@tanstack/react-table":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/roster_3.0.0_1786580571088_0.3151304430580921","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"@blakesteve/roster","version":"4.0.0","_id":"@blakesteve/roster@4.0.0","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"fa0dfb224bcfb3b6c0714a89c46e6b2fa51f4489","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-4.0.0.tgz","fileCount":78,"integrity":"sha512-f2B3C7MpOh9E7HEib7p6wC9XJgWy/p7nKEM29PgMvo1Bnejh55Ygo5fS2njf8NOrQw4rvYfW9y1kl0xedX/vEw==","signatures":[{"sig":"MEUCIQD293rVIgEiPA3y0s5GLkYOxrvJsM548w8Z1PE+Spa51gIgCEYXXKqaz6A5XKzQq5KnGwiRJZoujGiwSZd3y/Ct0Is=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1117866},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css","./data-table":{"types":"./dist/data-table.d.ts","import":"./dist/data-table.es.js","require":"./dist/data-table.cjs.js"},"./tokens.css":"./dist/tokens.css","./preflight.css":"./dist/preflight.css"},"gitHead":"228cf834cd4322bcdec1a054f84de919a25a87e1","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"A production-grade atomic component library built with **React 19**, **TypeScript**, **Tailwind CSS v4**, and **Vite**.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@radix-ui/react-tooltip":"^1.2.8","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@tanstack/react-table":"^9.1.2","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0","@tanstack/table-core":"^9.1.2","@tanstack/react-table":"^9.1.2"},"peerDependenciesMeta":{"@tanstack/table-core":{"optional":true},"@tanstack/react-table":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/roster_4.0.0_1786593283792_0.3457515920774177","host":"s3://npm-registry-packages-npm-production"}},"4.1.0":{"name":"@blakesteve/roster","version":"4.1.0","_id":"@blakesteve/roster@4.1.0","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"9bf2a131656a7f02ebd3dbdf87ecd411c1c532ae","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-4.1.0.tgz","fileCount":91,"integrity":"sha512-hldaw8JereAnNlgpIzaYdgPhJt7Gjjb8XjG/tcinxku444bVN70XphbcX5WKXyP9/z+Y5elzXS8Ewq8SNd8Tsw==","signatures":[{"sig":"MEQCIASnIp1fznEHeB/M5kHTLcqC5fzCU2S1vS5oZakNsawVAiAyRqhSt3eYQZAU6BcM0avMaXiP5o7SePU2RPOs/ntbbg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1153800},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./style.css":"./dist/roster.css","./data-table":{"types":"./dist/data-table.d.ts","import":"./dist/data-table.es.js","require":"./dist/data-table.cjs.js"},"./tokens.css":"./dist/tokens.css","./preflight.css":"./dist/preflight.css"},"gitHead":"8a20f0248d1600169a40ea2ba1cecd946362c72e","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"A production-grade atomic component library built with **React 19**, **TypeScript**, **Tailwind CSS v4**, and **Vite**.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@radix-ui/react-tooltip":"^1.2.8","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@tanstack/react-table":"^9.1.2","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0","@tanstack/table-core":"^9.1.2","@tanstack/react-table":"^9.1.2"},"peerDependenciesMeta":{"@tanstack/table-core":{"optional":true},"@tanstack/react-table":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/roster_4.1.0_1786662695497_0.4793938604060739","host":"s3://npm-registry-packages-npm-production"}},"4.2.0":{"name":"@blakesteve/roster","version":"4.2.0","_id":"@blakesteve/roster@4.2.0","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"dist":{"shasum":"4162578c1a80d6228ac7e5647826ac245a0c96f6","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-4.2.0.tgz","fileCount":96,"integrity":"sha512-jLOJxXVwsTY+FMhPBH+ZE0lEbCFz8FUVuQPkUtRdXqCcVqktjknKBUj8tMZZv7t6WZ0IL7mq4/WPAqNULnZCOw==","signatures":[{"sig":"MEUCICHB6zRDE24v/FU0rhzVTF2coNaFYkOHPeyG5xKAZtz8AiEA7fZszH06uKqOnaDmR+EIBcNVtS1B2wNiS5S2Z9qaEkk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1165239},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./utils":{"types":"./dist/utils.d.ts","import":"./dist/utils.es.js","require":"./dist/utils.cjs.js"},"./style.css":"./dist/roster.css","./data-table":{"types":"./dist/data-table.d.ts","import":"./dist/data-table.es.js","require":"./dist/data-table.cjs.js"},"./tokens.css":"./dist/tokens.css","./preflight.css":"./dist/preflight.css"},"gitHead":"7007082abeb747552fdf4240b7b95722c3ae08c0","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"_npmVersion":"11.4.2","description":"A production-grade atomic component library built with **React 19**, **TypeScript**, **Tailwind CSS v4**, and **Vite**.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@radix-ui/react-tooltip":"^1.2.8","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@tanstack/react-table":"^9.1.2","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0","@tanstack/table-core":"^9.1.2","@tanstack/react-table":"^9.1.2"},"peerDependenciesMeta":{"@tanstack/table-core":{"optional":true},"@tanstack/react-table":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/roster_4.2.0_1786669457971_0.047409098825387685","host":"s3://npm-registry-packages-npm-production"}},"4.2.1":{"name":"@blakesteve/roster","version":"4.2.1","keywords":["react","component-library","design-system","design-tokens","tailwindcss","typescript","storybook","accessible","atomic-design"],"author":{"url":"https://blakeb.dev","name":"Blake Ball"},"license":"MIT","_id":"@blakesteve/roster@4.2.1","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"homepage":"https://roster-tan.vercel.app","bugs":{"url":"https://github.com/blakesteve/roster/issues"},"dist":{"shasum":"4ba9f8401758b51261de07a3aa09d2dee7357eca","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-4.2.1.tgz","fileCount":97,"integrity":"sha512-vZVRrWDj/qgcnxIUSgZPuz+ZwLbRb0h03IhLO9kv77PzfbqQ7IOo+5Wb1pVX1v82XN9r4S/fJNcJAr2ikVjY7A==","signatures":[{"sig":"MEUCIAjzje3hqOEQctMiNHCennGx7/JgzbCxlpdvZDjeB5c1AiEAuUNZsDIrjieBeEnDwHmk1GJ4Hm5Y1YRwf/28E5wt2gM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1166945},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./utils":{"types":"./dist/utils.d.ts","import":"./dist/utils.es.js","require":"./dist/utils.cjs.js"},"./style.css":"./dist/roster.css","./data-table":{"types":"./dist/data-table.d.ts","import":"./dist/data-table.es.js","require":"./dist/data-table.cjs.js"},"./tokens.css":"./dist/tokens.css","./preflight.css":"./dist/preflight.css"},"gitHead":"61f9daa030d7a81547e0904da678bf122068e6fd","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"repository":{"url":"git+https://github.com/blakesteve/roster.git","type":"git"},"_npmVersion":"11.4.2","description":"A production-grade atomic component library: accessible, theme-aware, and documented in Storybook. React 19, TypeScript, Tailwind CSS v4.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@radix-ui/react-tooltip":"^1.2.8","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@tanstack/react-table":"^9.1.2","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0","@tanstack/table-core":"^9.1.2","@tanstack/react-table":"^9.1.2"},"peerDependenciesMeta":{"@tanstack/table-core":{"optional":true},"@tanstack/react-table":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/roster_4.2.1_1786741628744_0.4394123742943612","host":"s3://npm-registry-packages-npm-production"}},"4.3.0":{"name":"@blakesteve/roster","version":"4.3.0","keywords":["react","component-library","design-system","design-tokens","tailwindcss","typescript","storybook","accessible","atomic-design"],"author":{"url":"https://blakeb.dev","name":"Blake Ball"},"license":"MIT","_id":"@blakesteve/roster@4.3.0","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"homepage":"https://roster-tan.vercel.app","bugs":{"url":"https://github.com/blakesteve/roster/issues"},"dist":{"shasum":"63306175a3473ba790a2f8bbbeb2eb0db1200cbb","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-4.3.0.tgz","fileCount":97,"integrity":"sha512-iJ9o8BD+FF1WgFLVZgdK5pjqRA9fCvg14c1bXPaiN/LTWAfyBwLPOV+JXQQWk2BI/qM0zLA/DkE2jjwu+D3I5g==","signatures":[{"sig":"MEQCIHXFGKbugKTw4jt5ql85AgjqUq7Vv58deflti1pEcwAjAiBOHmJnlm8Sv/M/bG3d0dTdqoaCIg8gskbt0VRYqCazkg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1200054},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./utils":{"types":"./dist/utils.d.ts","import":"./dist/utils.es.js","require":"./dist/utils.cjs.js"},"./style.css":"./dist/roster.css","./data-table":{"types":"./dist/data-table.d.ts","import":"./dist/data-table.es.js","require":"./dist/data-table.cjs.js"},"./tokens.css":"./dist/tokens.css","./preflight.css":"./dist/preflight.css"},"gitHead":"ec653eb0c4d2d946bca4700438a714ebfc38d716","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build && node scripts/check-prefix.mjs","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","check:prefix":"node scripts/check-prefix.mjs","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"repository":{"url":"git+https://github.com/blakesteve/roster.git","type":"git"},"_npmVersion":"11.4.2","description":"A production-grade atomic component library: accessible, theme-aware, and documented in Storybook. React 19, TypeScript, Tailwind CSS v4.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@radix-ui/react-tooltip":"^1.2.8","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@tanstack/react-table":"^9.1.2","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0","@tanstack/table-core":"^9.1.2","@tanstack/react-table":"^9.1.2"},"peerDependenciesMeta":{"@tanstack/table-core":{"optional":true},"@tanstack/react-table":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/roster_4.3.0_1787351376785_0.5381008659028286","host":"s3://npm-registry-packages-npm-production"}},"4.3.1":{"name":"@blakesteve/roster","version":"4.3.1","keywords":["react","component-library","design-system","design-tokens","tailwindcss","typescript","storybook","accessible","atomic-design"],"author":{"url":"https://blakeb.dev","name":"Blake Ball"},"license":"MIT","_id":"@blakesteve/roster@4.3.1","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"homepage":"https://roster-tan.vercel.app","bugs":{"url":"https://github.com/blakesteve/roster/issues"},"dist":{"shasum":"63cf251999923ec904124fbe0a12584de66040e0","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-4.3.1.tgz","fileCount":97,"integrity":"sha512-2BJCE62nhfBiV705VR2+w+mkpMXFUotRmX78NzWPDdU33slAPOTgTIERxSmffpkSQHBnP1Q2onRt/A37MARnqQ==","signatures":[{"sig":"MEQCIHFZSQd55pw6EaO69aKX/trbjAJGP8V8b7tLP73chXNcAiAaTVNWpFQBfofkfXGI4V7CQVp76Pc8ZvDy01PfjXBzqw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1201324},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./utils":{"types":"./dist/utils.d.ts","import":"./dist/utils.es.js","require":"./dist/utils.cjs.js"},"./style.css":"./dist/roster.css","./data-table":{"types":"./dist/data-table.d.ts","import":"./dist/data-table.es.js","require":"./dist/data-table.cjs.js"},"./tokens.css":"./dist/tokens.css","./preflight.css":"./dist/preflight.css"},"gitHead":"323969482bb04d21516fe480237bec903cdb2266","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build && node scripts/check-prefix.mjs","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","check:prefix":"node scripts/check-prefix.mjs","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"repository":{"url":"git+https://github.com/blakesteve/roster.git","type":"git"},"_npmVersion":"11.4.2","description":"A production-grade atomic component library: accessible, theme-aware, and documented in Storybook. React 19, TypeScript, Tailwind CSS v4.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@radix-ui/react-tooltip":"^1.2.8","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@tanstack/react-table":"^9.1.2","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0","@tanstack/table-core":"^9.1.2","@tanstack/react-table":"^9.1.2"},"peerDependenciesMeta":{"@tanstack/table-core":{"optional":true},"@tanstack/react-table":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/roster_4.3.1_1787360097828_0.9627878449110172","host":"s3://npm-registry-packages-npm-production"}},"4.4.0":{"name":"@blakesteve/roster","version":"4.4.0","keywords":["react","component-library","design-system","design-tokens","tailwindcss","typescript","storybook","accessible","atomic-design"],"author":{"url":"https://blakeb.dev","name":"Blake Ball"},"license":"MIT","_id":"@blakesteve/roster@4.4.0","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"homepage":"https://roster-tan.vercel.app","bugs":{"url":"https://github.com/blakesteve/roster/issues"},"dist":{"shasum":"758fe2d107a7be2060ca8070e1a2bed02e9aaea4","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-4.4.0.tgz","fileCount":97,"integrity":"sha512-i23P4v5nsR4akNmomubc26xgJKw9wC+eDLdvABpQ/VqL1GTIbyGtEEFsa1/yAW9IGm/GoPjWYqVPOQrgjvbU9A==","signatures":[{"sig":"MEQCIGrkybwxUXGwogdutsgJgI7Pb629tH3XMV50KAUxKOlVAiB3345s9N8X0Q9t0zcUBVurAWxBW5n6EQM5QomKOdzl2g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1213069},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./utils":{"types":"./dist/utils.d.ts","import":"./dist/utils.es.js","require":"./dist/utils.cjs.js"},"./style.css":"./dist/roster.css","./data-table":{"types":"./dist/data-table.d.ts","import":"./dist/data-table.es.js","require":"./dist/data-table.cjs.js"},"./tokens.css":"./dist/tokens.css","./preflight.css":"./dist/preflight.css"},"gitHead":"60c89b7458a81b08e8d3b346c9d5a72e86a6720a","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build && node scripts/check-prefix.mjs","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","check:prefix":"node scripts/check-prefix.mjs","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"repository":{"url":"git+https://github.com/blakesteve/roster.git","type":"git"},"_npmVersion":"11.4.2","description":"A production-grade atomic component library: accessible, theme-aware, and documented in Storybook. React 19, TypeScript, Tailwind CSS v4.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@radix-ui/react-tooltip":"^1.2.8","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@tanstack/react-table":"^9.1.2","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0","@tanstack/table-core":"^9.1.2","@tanstack/react-table":"^9.1.2"},"peerDependenciesMeta":{"@tanstack/table-core":{"optional":true},"@tanstack/react-table":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/roster_4.4.0_1787440832408_0.4079829793686922","host":"s3://npm-registry-packages-npm-production"}},"4.5.0":{"name":"@blakesteve/roster","version":"4.5.0","keywords":["react","component-library","design-system","design-tokens","tailwindcss","typescript","storybook","accessible","atomic-design"],"author":{"url":"https://blakeb.dev","name":"Blake Ball"},"license":"MIT","_id":"@blakesteve/roster@4.5.0","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"homepage":"https://roster-tan.vercel.app","bugs":{"url":"https://github.com/blakesteve/roster/issues"},"dist":{"shasum":"1c54fcd2dd563adf978afe6524e8a1f65b4a97f6","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-4.5.0.tgz","fileCount":97,"integrity":"sha512-h20N+XEl0/9S1VVCFw1NnXoxl9v+0Zz3k7giV2vAa62Dsp2cw2A0aUKkp6bHjkXxCuHahXpiR4SccR+T/1kMOg==","signatures":[{"sig":"MEUCIEicFPu+LvdLCOvAfUN7jUNkPAJ/NQhGKc8+mML63fXNAiEAouwmNqx2V+oDO1/qI8q58AXIK+9eAu2i9CgJhvVQNKg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1214610},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./utils":{"types":"./dist/utils.d.ts","import":"./dist/utils.es.js","require":"./dist/utils.cjs.js"},"./style.css":"./dist/roster.css","./data-table":{"types":"./dist/data-table.d.ts","import":"./dist/data-table.es.js","require":"./dist/data-table.cjs.js"},"./tokens.css":"./dist/tokens.css","./preflight.css":"./dist/preflight.css"},"gitHead":"f57bca884c683547e815b25f035ed7ae7ff3524a","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build && node scripts/check-prefix.mjs","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","check:prefix":"node scripts/check-prefix.mjs","build-storybook":"storybook build"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"repository":{"url":"git+https://github.com/blakesteve/roster.git","type":"git"},"_npmVersion":"11.4.2","description":"A production-grade atomic component library: accessible, theme-aware, and documented in Storybook. React 19, TypeScript, Tailwind CSS v4.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@radix-ui/react-tooltip":"^1.2.8","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@tanstack/react-table":"^9.1.2","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0","@tanstack/table-core":"^9.1.2","@tanstack/react-table":"^9.1.2"},"peerDependenciesMeta":{"@tanstack/table-core":{"optional":true},"@tanstack/react-table":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/roster_4.5.0_1787464663753_0.34153026419227817","host":"s3://npm-registry-packages-npm-production"}},"4.6.0":{"name":"@blakesteve/roster","version":"4.6.0","keywords":["react","component-library","design-system","design-tokens","tailwindcss","typescript","storybook","accessible","atomic-design"],"author":{"url":"https://blakeb.dev","name":"Blake Ball"},"license":"MIT","_id":"@blakesteve/roster@4.6.0","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"homepage":"https://roster-tan.vercel.app","bugs":{"url":"https://github.com/blakesteve/roster/issues"},"dist":{"shasum":"892c6edd3b86dc9b5899821cde61b5dedeaa8516","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-4.6.0.tgz","fileCount":97,"integrity":"sha512-Lq/qfIzvIHPPlZvRleShsbKD8+QiJrCl5NFSwiCm+fQXRMPRZC49TxLtr1/sTgM1W88KgLQ9hdl9vZadaL397g==","signatures":[{"sig":"MEUCIQD+LjFq8glyVTNhcvG4G+7/YYDlQQEXR8QHIWOJlLCGFQIgNdYivOtxGbt8TLnBj8LDbitSF1vWfabgaJsDsz8fmFs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1226754},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./utils":{"types":"./dist/utils.d.ts","import":"./dist/utils.es.js","require":"./dist/utils.cjs.js"},"./style.css":"./dist/roster.css","./data-table":{"types":"./dist/data-table.d.ts","import":"./dist/data-table.es.js","require":"./dist/data-table.cjs.js"},"./tokens.css":"./dist/tokens.css","./preflight.css":"./dist/preflight.css"},"gitHead":"a5c078d2dbd5518f18b1adc8c3a2109f506a5d9d","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build && node scripts/check-prefix.mjs && node scripts/check-classes-emit.mjs","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","check:prefix":"node scripts/check-prefix.mjs","build-storybook":"storybook build","check:classes-emit":"node scripts/check-classes-emit.mjs"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"repository":{"url":"git+https://github.com/blakesteve/roster.git","type":"git"},"_npmVersion":"11.4.2","description":"A production-grade atomic component library: accessible, theme-aware, and documented in Storybook. React 19, TypeScript, Tailwind CSS v4.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@radix-ui/react-tooltip":"^1.2.8","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@tanstack/react-table":"^9.1.2","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0","@tanstack/table-core":"^9.1.2","@tanstack/react-table":"^9.1.2"},"peerDependenciesMeta":{"@tanstack/table-core":{"optional":true},"@tanstack/react-table":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/roster_4.6.0_1787781408270_0.04239260174378545","host":"s3://npm-registry-packages-npm-production"}},"4.6.1":{"name":"@blakesteve/roster","version":"4.6.1","keywords":["react","component-library","design-system","design-tokens","tailwindcss","typescript","storybook","accessible","atomic-design"],"author":{"url":"https://blakeb.dev","name":"Blake Ball"},"license":"MIT","_id":"@blakesteve/roster@4.6.1","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"homepage":"https://roster-tan.vercel.app","bugs":{"url":"https://github.com/blakesteve/roster/issues"},"dist":{"shasum":"41886c275bf8c7ca020e6ee3182d4dc6b106c1c8","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-4.6.1.tgz","fileCount":97,"integrity":"sha512-TVJGulGC8C53NkgnXfFSOMsyr9kbTLcV0mxIs9Ey3wxMT8PlaDBiNS2ZfFcRDcdgrwQ9dnxu9EuPv23T+31oxg==","signatures":[{"sig":"MEUCIGRoQxHRETikTPs2JMSdWM7JTz+KLUaCkNMhy3XHpbrOAiEA5UwJ/Z9hXb+gWLA/Blnou8SXnHff0I475eih6cwWG+0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1226754},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./utils":{"types":"./dist/utils.d.ts","import":"./dist/utils.es.js","require":"./dist/utils.cjs.js"},"./style.css":"./dist/roster.css","./data-table":{"types":"./dist/data-table.d.ts","import":"./dist/data-table.es.js","require":"./dist/data-table.cjs.js"},"./tokens.css":"./dist/tokens.css","./preflight.css":"./dist/preflight.css"},"gitHead":"68f97641dff6bec6bbe15e8bf4af2e0c0ce6fcc3","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build && node scripts/check-prefix.mjs && node scripts/check-classes-emit.mjs","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","check:prefix":"node scripts/check-prefix.mjs","build-storybook":"storybook build","check:classes-emit":"node scripts/check-classes-emit.mjs"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"repository":{"url":"git+https://github.com/blakesteve/roster.git","type":"git"},"_npmVersion":"11.4.2","description":"A production-grade atomic component library: accessible, theme-aware, and documented in Storybook. React 19, TypeScript, Tailwind CSS v4.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@radix-ui/react-tooltip":"^1.2.8","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@tanstack/react-table":"^9.1.2","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0","@tanstack/table-core":"^9.1.2","@tanstack/react-table":"^9.1.2"},"peerDependenciesMeta":{"@tanstack/table-core":{"optional":true},"@tanstack/react-table":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/roster_4.6.1_1787856571643_0.4194481144486488","host":"s3://npm-registry-packages-npm-production"}},"4.6.2":{"name":"@blakesteve/roster","version":"4.6.2","keywords":["react","component-library","design-system","design-tokens","tailwindcss","typescript","storybook","accessible","atomic-design"],"author":{"url":"https://blakeb.dev","name":"Blake Ball"},"license":"MIT","_id":"@blakesteve/roster@4.6.2","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"homepage":"https://roster-tan.vercel.app","bugs":{"url":"https://github.com/blakesteve/roster/issues"},"dist":{"shasum":"130efb26f60ca61a93827f19d90de479b04c7bf8","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-4.6.2.tgz","fileCount":98,"integrity":"sha512-wRkTP0yoGj3FwSzmUi6prHCKaTK0EwaIhg5rPFaesGwQgSuLY7YVeS8EwRMWvsSyQiPkdVEZXpVV05k+eRyZ4A==","signatures":[{"sig":"MEQCIDKwJzt4zDavTcg8+P5YAXv8gwUlX7sRwmPO7EbrlwhCAiBkhb9Mqx7VJGTu/gxdKfVHIimlQ329gncClYijsdXPdw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1228657},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./utils":{"types":"./dist/utils.d.ts","import":"./dist/utils.es.js","require":"./dist/utils.cjs.js"},"./style.css":"./dist/roster.css","./data-table":{"types":"./dist/data-table.d.ts","import":"./dist/data-table.es.js","require":"./dist/data-table.cjs.js"},"./tokens.css":"./dist/tokens.css","./preflight.css":"./dist/preflight.css"},"gitHead":"49c2537674a83e06128753761f91169b8b124bc9","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build && node scripts/check-prefix.mjs && node scripts/check-classes-emit.mjs","prepack":"npm run build && node scripts/write-meta.mjs","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","check:prefix":"node scripts/check-prefix.mjs","build-storybook":"storybook build","check:classes-emit":"node scripts/check-classes-emit.mjs"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"repository":{"url":"git+https://github.com/blakesteve/roster.git","type":"git"},"_npmVersion":"11.4.2","description":"A production-grade atomic component library: accessible, theme-aware, and documented in Storybook. React 19, TypeScript, Tailwind CSS v4.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@radix-ui/react-tooltip":"^1.2.8","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@tanstack/react-table":"^9.1.2","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0","@tanstack/table-core":"^9.1.2","@tanstack/react-table":"^9.1.2"},"peerDependenciesMeta":{"@tanstack/table-core":{"optional":true},"@tanstack/react-table":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/roster_4.6.2_1787858424652_0.5468641342640701","host":"s3://npm-registry-packages-npm-production"}},"4.7.0":{"name":"@blakesteve/roster","version":"4.7.0","keywords":["react","component-library","design-system","design-tokens","tailwindcss","typescript","storybook","accessible","atomic-design"],"author":{"url":"https://blakeb.dev","name":"Blake Ball"},"license":"MIT","_id":"@blakesteve/roster@4.7.0","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"homepage":"https://roster-tan.vercel.app","bugs":{"url":"https://github.com/blakesteve/roster/issues"},"dist":{"shasum":"6cfbe697b6f8cac2fd4c5b60b981618fdc29f918","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-4.7.0.tgz","fileCount":98,"integrity":"sha512-5VZERF5cIEXLNlJlRuWO58JhWQ0fZ7B6J6N7M0Gbt7Bw+0LU1yb/LMGfXWtW9khl3qLsSLFoPbk/izUzm949Pg==","signatures":[{"sig":"MEUCIA5o2cSLW3JZHlAJ91tr7tC4+hv4eW0pJe8kDUq8qk7qAiEA/3afl0NkM1ED2qW3Gzf+vUuLzTfuRalZ1IpfFopohro=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1239336},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./utils":{"types":"./dist/utils.d.ts","import":"./dist/utils.es.js","require":"./dist/utils.cjs.js"},"./style.css":"./dist/roster.css","./data-table":{"types":"./dist/data-table.d.ts","import":"./dist/data-table.es.js","require":"./dist/data-table.cjs.js"},"./tokens.css":"./dist/tokens.css","./preflight.css":"./dist/preflight.css"},"gitHead":"f9d6d16c529ca6511595cd4b943abc6103b4e6bc","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build && node scripts/check-prefix.mjs && node scripts/check-classes-emit.mjs","prepack":"npm run build && node scripts/write-meta.mjs","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","check:prefix":"node scripts/check-prefix.mjs","build-storybook":"storybook build","check:classes-emit":"node scripts/check-classes-emit.mjs"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"repository":{"url":"git+https://github.com/blakesteve/roster.git","type":"git"},"_npmVersion":"11.4.2","description":"A production-grade atomic component library: accessible, theme-aware, and documented in Storybook. React 19, TypeScript, Tailwind CSS v4.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@radix-ui/react-tooltip":"^1.2.8","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@tanstack/react-table":"^9.1.2","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0","@tanstack/table-core":"^9.1.2","@tanstack/react-table":"^9.1.2"},"peerDependenciesMeta":{"@tanstack/table-core":{"optional":true},"@tanstack/react-table":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/roster_4.7.0_1787866603581_0.22171437837640284","host":"s3://npm-registry-packages-npm-production"}},"4.8.0":{"name":"@blakesteve/roster","version":"4.8.0","keywords":["react","component-library","design-system","design-tokens","tailwindcss","typescript","storybook","accessible","atomic-design"],"author":{"url":"https://blakeb.dev","name":"Blake Ball"},"license":"MIT","_id":"@blakesteve/roster@4.8.0","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"homepage":"https://roster-tan.vercel.app","bugs":{"url":"https://github.com/blakesteve/roster/issues"},"dist":{"shasum":"4e0775fcc15b8880ca8d7f4c41c2688f2311073a","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-4.8.0.tgz","fileCount":98,"integrity":"sha512-SLS0aUzSEA1Vv5i3clHUCEOCrj9Ky9lPvoSZTlqWQ0C4MrJ9+ehENydv2rgFctrCjVValokf1k+91oMm5vPs+A==","signatures":[{"sig":"MEYCIQCYPchabqGg6gxKbaTnRyFrVtCrQ9kCO3/c9m8+/0jAZQIhAPDb86+WwYpm1A38QeXgr7qdJEJMTfoman+Zor77kCVO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1256252},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./utils":{"types":"./dist/utils.d.ts","import":"./dist/utils.es.js","require":"./dist/utils.cjs.js"},"./style.css":"./dist/roster.css","./data-table":{"types":"./dist/data-table.d.ts","import":"./dist/data-table.es.js","require":"./dist/data-table.cjs.js"},"./tokens.css":"./dist/tokens.css","./preflight.css":"./dist/preflight.css"},"gitHead":"cee2ef03470c6eb7e08b30ea404f3b17d3e6e9ad","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build && node scripts/check-prefix.mjs && node scripts/check-classes-emit.mjs","prepack":"npm run build && node scripts/write-meta.mjs","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","check:prefix":"node scripts/check-prefix.mjs","build-storybook":"storybook build","check:classes-emit":"node scripts/check-classes-emit.mjs"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"repository":{"url":"git+https://github.com/blakesteve/roster.git","type":"git"},"_npmVersion":"11.4.2","description":"A production-grade atomic component library: accessible, theme-aware, and documented in Storybook. React 19, TypeScript, Tailwind CSS v4.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@radix-ui/react-tooltip":"^1.2.8","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@tanstack/react-table":"^9.1.2","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0","@tanstack/table-core":"^9.1.2","@tanstack/react-table":"^9.1.2"},"peerDependenciesMeta":{"@tanstack/table-core":{"optional":true},"@tanstack/react-table":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/roster_4.8.0_1788406556268_0.058615646876518435","host":"s3://npm-registry-packages-npm-production"}},"4.8.1":{"name":"@blakesteve/roster","version":"4.8.1","keywords":["react","component-library","design-system","design-tokens","tailwindcss","typescript","storybook","accessible","atomic-design"],"author":{"url":"https://blakeb.dev","name":"Blake Ball"},"license":"MIT","_id":"@blakesteve/roster@4.8.1","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"homepage":"https://roster-tan.vercel.app","bugs":{"url":"https://github.com/blakesteve/roster/issues"},"dist":{"shasum":"96c096d7f74c3ae661d62dcb66621bd65a216293","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-4.8.1.tgz","fileCount":98,"integrity":"sha512-0ihllNXE3d4wIRrZy0Tb6pP0An431cQpTbsA7l7H9iSjaOYI5R7+PVho44YM2XIsDApqMEiG1DpbtPOelZVSsA==","signatures":[{"sig":"MEUCID3pshNuzILNBDhNpz6MJDKRUz8wAciVIjuaf/IycO7aAiEAm5OzKFTqiq+znWb3ki1sndDtbNqju0XnZfAlSYZCUTY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1265230},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./utils":{"types":"./dist/utils.d.ts","import":"./dist/utils.es.js","require":"./dist/utils.cjs.js"},"./style.css":"./dist/roster.css","./data-table":{"types":"./dist/data-table.d.ts","import":"./dist/data-table.es.js","require":"./dist/data-table.cjs.js"},"./tokens.css":"./dist/tokens.css","./preflight.css":"./dist/preflight.css"},"gitHead":"3af2fe40f67350aadd5aec575cef31f1f4136240","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build && node scripts/check-prefix.mjs && node scripts/check-classes-emit.mjs","prepack":"npm run build && node scripts/write-meta.mjs","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","check:prefix":"node scripts/check-prefix.mjs","build-storybook":"storybook build","check:classes-emit":"node scripts/check-classes-emit.mjs"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"repository":{"url":"git+https://github.com/blakesteve/roster.git","type":"git"},"_npmVersion":"11.4.2","description":"A production-grade atomic component library: accessible, theme-aware, and documented in Storybook. React 19, TypeScript, Tailwind CSS v4.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@radix-ui/react-tooltip":"^1.2.8","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@tanstack/react-table":"^9.1.2","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0","@tanstack/table-core":"^9.1.2","@tanstack/react-table":"^9.1.2"},"peerDependenciesMeta":{"@tanstack/table-core":{"optional":true},"@tanstack/react-table":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/roster_4.8.1_1788713308449_0.09843951413724628","host":"s3://npm-registry-packages-npm-production"}},"4.8.2":{"name":"@blakesteve/roster","version":"4.8.2","keywords":["react","component-library","design-system","design-tokens","tailwindcss","typescript","storybook","accessible","atomic-design"],"author":{"url":"https://blakeb.dev","name":"Blake Ball"},"license":"MIT","_id":"@blakesteve/roster@4.8.2","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"homepage":"https://roster-tan.vercel.app","bugs":{"url":"https://github.com/blakesteve/roster/issues"},"dist":{"shasum":"622efafde2c358d2647910d264f09f6e9a8e3edb","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-4.8.2.tgz","fileCount":98,"integrity":"sha512-RryCzCS0lUXd7u9gXIq4DYh4L+lWj7Si4Q+ss/BMTyWoRYT5uCZIUG7Yh/tS/yyZECnWP2CiL1orTyFru8KQVQ==","signatures":[{"sig":"MEYCIQCVrkfZ1C81NkPNL3Qih+k3YzpxNrojqQt/Y/Hf39LEWgIhAIzbFFqCxBOH8D41QAjDl3csYhXBbIwd3qRsKHwJm/5E","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1275808},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./utils":{"types":"./dist/utils.d.ts","import":"./dist/utils.es.js","require":"./dist/utils.cjs.js"},"./style.css":"./dist/roster.css","./data-table":{"types":"./dist/data-table.d.ts","import":"./dist/data-table.es.js","require":"./dist/data-table.cjs.js"},"./tokens.css":"./dist/tokens.css","./preflight.css":"./dist/preflight.css"},"gitHead":"9243a6b4196a395edc58905b4ac533c3d3e7617d","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build && node scripts/check-prefix.mjs && node scripts/check-classes-emit.mjs","prepack":"npm run build && node scripts/write-meta.mjs","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","check:prefix":"node scripts/check-prefix.mjs","build-storybook":"storybook build","check:classes-emit":"node scripts/check-classes-emit.mjs"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"repository":{"url":"git+https://github.com/blakesteve/roster.git","type":"git"},"_npmVersion":"11.4.2","description":"A production-grade atomic component library: accessible, theme-aware, and documented in Storybook. React 19, TypeScript, Tailwind CSS v4.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@radix-ui/react-tooltip":"^1.2.8","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@tanstack/react-table":"^9.1.2","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0","@tanstack/table-core":"^9.1.2","@tanstack/react-table":"^9.1.2"},"peerDependenciesMeta":{"@tanstack/table-core":{"optional":true},"@tanstack/react-table":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/roster_4.8.2_1788796109135_0.9713011546737365","host":"s3://npm-registry-packages-npm-production"}},"4.9.0":{"name":"@blakesteve/roster","version":"4.9.0","keywords":["react","component-library","design-system","design-tokens","tailwindcss","typescript","storybook","accessible","atomic-design"],"author":{"url":"https://blakeb.dev","name":"Blake Ball"},"license":"MIT","_id":"@blakesteve/roster@4.9.0","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"homepage":"https://roster-tan.vercel.app","bugs":{"url":"https://github.com/blakesteve/roster/issues"},"dist":{"shasum":"4f75e33da53bfe3c9f340d64b6861aa51df05395","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-4.9.0.tgz","fileCount":110,"integrity":"sha512-2+xyx578SiZlqqoTbuDMrEFNcAOnkjc/G6HNXITxWUCRgPzv8bKZux0gmV2k+C9xMbJYAFcvf6uQE1/HN2UrWw==","signatures":[{"sig":"MEQCIBTFjDdaBT0PqNpZMa6Vo7zLIvd/Jrl7ddG0cFmpbM6WAiAsjPCQP5urgsyXr4XLx+CYQaQgIGso+YYOLvcsfcWuNw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1476973},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./utils":{"types":"./dist/utils.d.ts","import":"./dist/utils.es.js","require":"./dist/utils.cjs.js"},"./style.css":"./dist/roster.css","./data-table":{"types":"./dist/data-table.d.ts","import":"./dist/data-table.es.js","require":"./dist/data-table.cjs.js"},"./tokens.css":"./dist/tokens.css","./preflight.css":"./dist/preflight.css"},"gitHead":"6baa53512ec7a9b1306a88c3e8fde0adf7353388","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build && node scripts/check-prefix.mjs && node scripts/check-classes-emit.mjs","prepack":"npm run build && node scripts/write-meta.mjs","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","check:prefix":"node scripts/check-prefix.mjs","build-storybook":"storybook build","check:classes-emit":"node scripts/check-classes-emit.mjs"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"repository":{"url":"git+https://github.com/blakesteve/roster.git","type":"git"},"_npmVersion":"11.4.2","description":"A production-grade atomic component library: accessible, theme-aware, and documented in Storybook. React 19, TypeScript, Tailwind CSS v4.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@radix-ui/react-tooltip":"^1.2.8","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","react-hot-toast":"^2.6.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@tanstack/react-table":"^9.1.2","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0","react-hot-toast":"^2.6.0","@tanstack/table-core":"^9.1.2","@tanstack/react-table":"^9.1.2"},"peerDependenciesMeta":{"@tanstack/table-core":{"optional":true},"@tanstack/react-table":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/roster_4.9.0_1788906549960_0.5496875506816574","host":"s3://npm-registry-packages-npm-production"}},"4.10.0":{"name":"@blakesteve/roster","version":"4.10.0","keywords":["react","component-library","design-system","design-tokens","tailwindcss","typescript","storybook","accessible","atomic-design"],"author":{"url":"https://blakeb.dev","name":"Blake Ball"},"license":"MIT","_id":"@blakesteve/roster@4.10.0","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"homepage":"https://roster-tan.vercel.app","bugs":{"url":"https://github.com/blakesteve/roster/issues"},"dist":{"shasum":"96a4704c3b986ab27d8e9c2e639f6e782d9c8fe7","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-4.10.0.tgz","fileCount":110,"integrity":"sha512-MDcsnipS+YTaUvM/1atVQVd20xyVavmioX8L0SfRZ2497iG5XtddjDlZYGmV12eyyJWyoU+6J1arsceKm611lg==","signatures":[{"sig":"MEUCIGyYQrVo/i/QxC13y/92KNEIZAfOavNWffo0ZoAh8OBBAiEAvgGgTufU0foBDrBPC1Xb4E1xADa0NjA99ac0+9vK2jY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1483952},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./utils":{"types":"./dist/utils.d.ts","import":"./dist/utils.es.js","require":"./dist/utils.cjs.js"},"./style.css":"./dist/roster.css","./data-table":{"types":"./dist/data-table.d.ts","import":"./dist/data-table.es.js","require":"./dist/data-table.cjs.js"},"./tokens.css":"./dist/tokens.css","./preflight.css":"./dist/preflight.css"},"gitHead":"b51aec8e481b606cb4db2bf74247ad958216d33a","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build && node scripts/check-prefix.mjs && node scripts/check-classes-emit.mjs","prepack":"npm run build && node scripts/write-meta.mjs","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","check:prefix":"node scripts/check-prefix.mjs","build-storybook":"storybook build","check:classes-emit":"node scripts/check-classes-emit.mjs"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"repository":{"url":"git+https://github.com/blakesteve/roster.git","type":"git"},"_npmVersion":"11.4.2","description":"A production-grade atomic component library: accessible, theme-aware, and documented in Storybook. React 19, TypeScript, Tailwind CSS v4.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@radix-ui/react-tooltip":"^1.2.8","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","react-hot-toast":"^2.6.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@tanstack/react-table":"^9.1.2","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0","react-hot-toast":"^2.6.0","@tanstack/table-core":"^9.1.2","@tanstack/react-table":"^9.1.2"},"peerDependenciesMeta":{"@tanstack/table-core":{"optional":true},"@tanstack/react-table":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/roster_4.10.0_1788915248400_0.474864157183579","host":"s3://npm-registry-packages-npm-production"}},"4.11.0":{"name":"@blakesteve/roster","version":"4.11.0","keywords":["react","component-library","design-system","design-tokens","tailwindcss","typescript","storybook","accessible","atomic-design"],"author":{"url":"https://blakeb.dev","name":"Blake Ball"},"license":"MIT","_id":"@blakesteve/roster@4.11.0","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"homepage":"https://roster-tan.vercel.app","bugs":{"url":"https://github.com/blakesteve/roster/issues"},"dist":{"shasum":"e94a1a00d5d1710f2453cc02d789336c39739b8f","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-4.11.0.tgz","fileCount":110,"integrity":"sha512-GgHReiFgp1bQGdCMYiUAwp7pYK8SXc26ksVSH8z8j2OwtKmHOuuxC0exjemCCG82wYcD8ILP/CdtHmZTFIJgbw==","signatures":[{"sig":"MEQCIBYZHGuwKSDWLkcc94Hkj+zgk9kkudO1eovqX0QELz+xAiBqJevsYgPQ2+WDZOoAH+BUCocE6Wo/+Ixje87I6vS/5A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1491460},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./utils":{"types":"./dist/utils.d.ts","import":"./dist/utils.es.js","require":"./dist/utils.cjs.js"},"./style.css":"./dist/roster.css","./data-table":{"types":"./dist/data-table.d.ts","import":"./dist/data-table.es.js","require":"./dist/data-table.cjs.js"},"./tokens.css":"./dist/tokens.css","./preflight.css":"./dist/preflight.css"},"gitHead":"608747ea2a2b283919ac3d0f2a4b1d73f37690f7","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build && node scripts/check-prefix.mjs && node scripts/check-classes-emit.mjs && node scripts/check-tokens.mjs","prepack":"npm run build && node scripts/write-meta.mjs","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","check:prefix":"node scripts/check-prefix.mjs","check:tokens":"node scripts/check-tokens.mjs","build-storybook":"storybook build","check:classes-emit":"node scripts/check-classes-emit.mjs"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"repository":{"url":"git+https://github.com/blakesteve/roster.git","type":"git"},"_npmVersion":"11.4.2","description":"A production-grade atomic component library: accessible, theme-aware, and documented in Storybook. React 19, TypeScript, Tailwind CSS v4.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@radix-ui/react-tooltip":"^1.2.8","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","react-hot-toast":"^2.6.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@tanstack/react-table":"^9.1.2","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0","react-hot-toast":"^2.6.0","@tanstack/table-core":"^9.1.2","@tanstack/react-table":"^9.1.2"},"peerDependenciesMeta":{"@tanstack/table-core":{"optional":true},"@tanstack/react-table":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/roster_4.11.0_1788967578843_0.5349416324817273","host":"s3://npm-registry-packages-npm-production"}},"4.12.0":{"name":"@blakesteve/roster","version":"4.12.0","keywords":["react","component-library","design-system","design-tokens","tailwindcss","typescript","storybook","accessible","atomic-design"],"author":{"url":"https://blakeb.dev","name":"Blake Ball"},"license":"MIT","_id":"@blakesteve/roster@4.12.0","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"homepage":"https://roster-tan.vercel.app","bugs":{"url":"https://github.com/blakesteve/roster/issues"},"dist":{"shasum":"d74b4bbd2ea609eb5d4f82fc22901f83a9a58de4","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-4.12.0.tgz","fileCount":112,"integrity":"sha512-e2rTBTymo6WypNbt4UMnyW/1b6paKKp2uagTETGve+StzMWZWTP9G23GDU1KHVR2B4psBgfaYWAHt2I6ulmJKA==","signatures":[{"sig":"MEUCIDxI6pvsPm1t52bcdVgeD4wTMOvkpLmqj1BJZxKmFh2FAiEAn12Gr7c4nE3+djz3H5tXAY7c/vTr8PRXUAtMKBmjer8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1537174},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./utils":{"types":"./dist/utils.d.ts","import":"./dist/utils.es.js","require":"./dist/utils.cjs.js"},"./style.css":"./dist/roster.css","./data-table":{"types":"./dist/data-table.d.ts","import":"./dist/data-table.es.js","require":"./dist/data-table.cjs.js"},"./tokens.css":"./dist/tokens.css","./preflight.css":"./dist/preflight.css"},"gitHead":"10aca75d6807f09449c0dc84388d63723aa0ae77","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build && node scripts/check-prefix.mjs && node scripts/check-classes-emit.mjs && node scripts/check-tokens.mjs","prepack":"npm run build && node scripts/write-meta.mjs","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","check:prefix":"node scripts/check-prefix.mjs","check:tokens":"node scripts/check-tokens.mjs","build-storybook":"storybook build","check:classes-emit":"node scripts/check-classes-emit.mjs"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"repository":{"url":"git+https://github.com/blakesteve/roster.git","type":"git"},"_npmVersion":"11.4.2","description":"A production-grade atomic component library: accessible, theme-aware, and documented in Storybook. React 19, TypeScript, Tailwind CSS v4.","directories":{},"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@radix-ui/react-tooltip":"^1.2.8","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","react-hot-toast":"^2.6.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@tanstack/react-table":"^9.1.2","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0","react-hot-toast":"^2.6.0","@tanstack/table-core":"^9.1.2","@tanstack/react-table":"^9.1.2"},"peerDependenciesMeta":{"@tanstack/table-core":{"optional":true},"@tanstack/react-table":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/roster_4.12.0_1789510692126_0.40263378603760214","host":"s3://npm-registry-packages-npm-production"}},"4.12.1":{"name":"@blakesteve/roster","version":"4.12.1","keywords":["react","component-library","design-system","design-tokens","tailwindcss","typescript","storybook","accessible","atomic-design"],"author":{"url":"https://blakeb.dev","name":"Blake Ball"},"license":"MIT","_id":"@blakesteve/roster@4.12.1","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"homepage":"https://roster-tan.vercel.app","bugs":{"url":"https://github.com/blakesteve/roster/issues"},"dist":{"shasum":"54e6718c1d91059487a52fa8ee554c40dee34e71","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-4.12.1.tgz","fileCount":112,"integrity":"sha512-Hws7jr85655EzDlB/0o6QqOjYABTXl25Z4JqYC8CuUydBa6t6X/BBV+wzC3Ut/SxiRYJQLji6x1aw4llNWD8Jg==","signatures":[{"sig":"MEUCID6vrYJmwKUGdr2xvihNvGXGLAccy2YyUpzrRxh0I2nGAiEAsqLhiWxIAgPtU4daMa7cHFNSWvoQ/wATL4qIIW68TDQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1537213},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.es.js","require":"./dist/roster.umd.js"},"./utils":{"types":"./dist/utils.d.ts","import":"./dist/utils.es.js","require":"./dist/utils.cjs.js"},"./style.css":"./dist/roster.css","./data-table":{"types":"./dist/data-table.d.ts","import":"./dist/data-table.es.js","require":"./dist/data-table.cjs.js"},"./tokens.css":"./dist/tokens.css","./preflight.css":"./dist/preflight.css"},"gitHead":"9b2f3aaf20c3f2e8b0a306c21762654433123317","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build && node scripts/check-prefix.mjs && node scripts/check-classes-emit.mjs && node scripts/check-tokens.mjs","prepack":"npm run build && node scripts/write-meta.mjs","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","check:prefix":"node scripts/check-prefix.mjs","check:tokens":"node scripts/check-tokens.mjs","build-storybook":"storybook build","check:classes-emit":"node scripts/check-classes-emit.mjs"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"repository":{"url":"git+https://github.com/blakesteve/roster.git","type":"git"},"_npmVersion":"11.4.2","description":"A production-grade atomic component library: accessible, theme-aware, and documented in Storybook. React 19, TypeScript, Tailwind CSS v4.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@radix-ui/react-tooltip":"^1.2.8","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","react-hot-toast":"^2.6.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@tanstack/react-table":"^9.1.2","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0","react-hot-toast":"^2.6.0","@tanstack/table-core":"^9.1.2","@tanstack/react-table":"^9.1.2"},"peerDependenciesMeta":{"@tanstack/table-core":{"optional":true},"@tanstack/react-table":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/roster_4.12.1_1789518054131_0.8377150272111025","host":"s3://npm-registry-packages-npm-production"}},"4.13.0":{"name":"@blakesteve/roster","version":"4.13.0","keywords":["react","component-library","design-system","design-tokens","tailwindcss","typescript","storybook","accessible","atomic-design"],"author":{"url":"https://blakeb.dev","name":"Blake Ball"},"license":"MIT","_id":"@blakesteve/roster@4.13.0","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"homepage":"https://roster-tan.vercel.app","bugs":{"url":"https://github.com/blakesteve/roster/issues"},"dist":{"shasum":"9cd5b605911e974b0b36a7e604a198db2db1b346","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-4.13.0.tgz","fileCount":650,"integrity":"sha512-Q9R0lOGqnC2uRDD/JS0L52VC7KH+jPR4BkC70gPIQKw6UXg50uWst80Qaj72XhJHS/uuIQIMxUfuZZfedWt/2w==","signatures":[{"sig":"MEYCIQC3umCiffnUij1dibJsZo24ChVp36YipG0fvG6F2T9LwAIhAKHQsafmmsrqq1rxI24C+O0Dh9+MqogrYqkh8CzVLI68","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1723497},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.js","require":"./dist/roster.cjs"},"./utils":{"types":"./dist/utils.d.ts","import":"./dist/utils.js","require":"./dist/utils.cjs"},"./style.css":"./dist/roster.css","./data-table":{"types":"./dist/data-table.d.ts","import":"./dist/data-table.js","require":"./dist/data-table.cjs"},"./tokens.css":"./dist/tokens.css","./preflight.css":"./dist/preflight.css"},"gitHead":"d537053c491315a69ed0c1448e5e6358a9911fd9","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build && node scripts/check-prefix.mjs && node scripts/check-classes-emit.mjs && node scripts/check-tokens.mjs","prepack":"npm run build && node scripts/write-meta.mjs","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","check:prefix":"node scripts/check-prefix.mjs","check:tokens":"node scripts/check-tokens.mjs","build-storybook":"storybook build","check:classes-emit":"node scripts/check-classes-emit.mjs"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"repository":{"url":"git+https://github.com/blakesteve/roster.git","type":"git"},"_npmVersion":"11.4.2","description":"A production-grade atomic component library: accessible, theme-aware, and documented in Storybook. React 19, TypeScript, Tailwind CSS v4.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@radix-ui/react-tooltip":"^1.2.8","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","react-hot-toast":"^2.6.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@tanstack/react-table":"^9.1.2","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0","react-hot-toast":"^2.6.0","@tanstack/table-core":"^9.1.2","@tanstack/react-table":"^9.1.2"},"peerDependenciesMeta":{"@tanstack/table-core":{"optional":true},"@tanstack/react-table":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/roster_4.13.0_1789623878321_0.013218510635781389","host":"s3://npm-registry-packages-npm-production"}},"5.0.0":{"name":"@blakesteve/roster","version":"5.0.0","keywords":["react","component-library","design-system","design-tokens","tailwindcss","typescript","storybook","accessible","atomic-design"],"author":{"url":"https://blakeb.dev","name":"Blake Ball"},"license":"MIT","_id":"@blakesteve/roster@5.0.0","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"homepage":"https://roster-tan.vercel.app","bugs":{"url":"https://github.com/blakesteve/roster/issues"},"dist":{"shasum":"ebdd05757e7cee6403d7f0cc51e077658f694144","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-5.0.0.tgz","fileCount":650,"integrity":"sha512-90jd6v3CCAsTsYjVU/pE8+aO9AWhWyqzI16ZTUmSBCdp/nIepIJVLdAa1w5iENo9fX56uj7Lrbr52i56T3hv8Q==","signatures":[{"sig":"MEYCIQCrFsAwTIgWNS02cUsPIA/LO+xc7nVN+MUHWOSWGMdYeAIhAMn0ojlFsXLOaHHt63y9Sd2b+ZjMSC6zBg8GbG86NFB1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIALc8LQT62qgKyvJC/zyRM9TVjN8oVcvpDQMmdkMctmdAiAWEwjL2gr+HxtvWNW/EHCkOcPvYgbEF/l799JVmHtSNQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1725580},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.js","require":"./dist/roster.cjs"},"./utils":{"types":"./dist/utils.d.ts","import":"./dist/utils.js","require":"./dist/utils.cjs"},"./style.css":"./dist/roster.css","./data-table":{"types":"./dist/data-table.d.ts","import":"./dist/data-table.js","require":"./dist/data-table.cjs"},"./tokens.css":"./dist/tokens.css","./preflight.css":"./dist/preflight.css"},"gitHead":"a6b6132f601b9fb0a084796682f5e8dfd13dc8d2","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build && node scripts/check-prefix.mjs && node scripts/check-classes-emit.mjs && node scripts/check-tokens.mjs && node scripts/check-client-boundary.mjs","prepack":"npm run build && node scripts/write-meta.mjs","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","check:prefix":"node scripts/check-prefix.mjs","check:tokens":"node scripts/check-tokens.mjs","build-storybook":"storybook build","check:classes-emit":"node scripts/check-classes-emit.mjs","check:client-boundary":"node scripts/check-client-boundary.mjs"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"repository":{"url":"git+https://github.com/blakesteve/roster.git","type":"git"},"_npmVersion":"11.4.2","description":"A production-grade atomic component library: accessible, theme-aware, and documented in Storybook. React 19, TypeScript, Tailwind CSS v4.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","date-fns":"^4.1.0","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@radix-ui/react-tooltip":"^1.2.8","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","react-hot-toast":"^2.6.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@tanstack/react-table":"^9.1.2","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0","react-hot-toast":"^2.6.0","@tanstack/table-core":"^9.1.2","@tanstack/react-table":"^9.1.2"},"peerDependenciesMeta":{"@tanstack/table-core":{"optional":true},"@tanstack/react-table":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/roster_5.0.0_1789690923728_0.0036962474319599536","host":"s3://npm-registry-packages-npm-production"}},"5.0.1":{"name":"@blakesteve/roster","version":"5.0.1","keywords":["react","component-library","design-system","design-tokens","tailwindcss","typescript","storybook","accessible","atomic-design"],"author":{"url":"https://blakeb.dev","name":"Blake Ball"},"license":"MIT","_id":"@blakesteve/roster@5.0.1","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"homepage":"https://roster-tan.vercel.app","bugs":{"url":"https://github.com/blakesteve/roster/issues"},"dist":{"shasum":"7503793e32156c7d5a4651d6adad76ee51b2cfb8","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-5.0.1.tgz","fileCount":596,"integrity":"sha512-zwpUtO/7K9pyHQI6kmnsVi59ETlIb4FJ3h77A1dwPM7iaj938n/salJcWHKUxZzXV+1CuvE8uGzexmwjAx42fQ==","signatures":[{"sig":"MEUCIDfrrrnr8dTPentR4RsQNdYLwygdTo/0x9PbNqks8jDGAiEA1JIlWwYoAfZwx96FzYIRPEXKWE2GdzJbesqH5/kwPXE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIF0qtTEXWO723OTkLGi6c09t4CoWvpUq40YnrE+WJPKkAiEAi+VPvoq1s4pivj9QxUz2/h8nVG4DBnDq7wyLRkniBhA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1708024},"main":"./dist/roster.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/roster.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.js","require":"./dist/roster.cjs"},"./utils":{"types":"./dist/utils.d.ts","import":"./dist/utils.js","require":"./dist/utils.cjs"},"./style.css":"./dist/roster.css","./data-table":{"types":"./dist/data-table.d.ts","import":"./dist/data-table.js","require":"./dist/data-table.cjs"},"./tokens.css":"./dist/tokens.css","./preflight.css":"./dist/preflight.css"},"gitHead":"7253a9467ab8c9c2f2212e27128d2453ba5f6c76","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build && node scripts/check-prefix.mjs && node scripts/check-classes-emit.mjs && node scripts/check-tokens.mjs && node scripts/check-client-boundary.mjs","prepack":"npm run build && node scripts/write-meta.mjs","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","check:prefix":"node scripts/check-prefix.mjs","check:tokens":"node scripts/check-tokens.mjs","build-storybook":"storybook build","check:classes-emit":"node scripts/check-classes-emit.mjs","check:client-boundary":"node scripts/check-client-boundary.mjs"},"_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"repository":{"url":"git+https://github.com/blakesteve/roster.git","type":"git"},"_npmVersion":"11.4.2","description":"A production-grade atomic component library: accessible, theme-aware, and documented in Storybook. React 19, TypeScript, Tailwind CSS v4.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@radix-ui/react-tooltip":"^1.2.8","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","react-hot-toast":"^2.6.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@tanstack/react-table":"^9.1.2","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0","react-hot-toast":"^2.6.0","@tanstack/table-core":"^9.1.2","@tanstack/react-table":"^9.1.2"},"peerDependenciesMeta":{"@tanstack/table-core":{"optional":true},"@tanstack/react-table":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/roster_5.0.1_1790481789161_0.5887646479017623","host":"s3://npm-registry-packages-npm-production"}},"5.1.0":{"_id":"@blakesteve/roster@5.1.0","bugs":{"url":"https://github.com/blakesteve/roster/issues"},"dist":{"shasum":"d33bcb6c9bfa70820c29a51618ebf8752f36f369","tarball":"https://registry.npmjs.org/@blakesteve/roster/-/roster-5.1.0.tgz","fileCount":617,"integrity":"sha512-1QfgWk4fk+AoAH3A6uveRor8Oza3nfSjYH1Ecv3fe6M1Sqhqti+SNmszmUXrvJS76j1W3NHAUNQ8ak/+P0REoA==","signatures":[{"sig":"MEYCIQCYq6ER867DNOIjSDayo6L0FOtTfg0GfAl+L96qPLbrwQIhAN5bOUxR32c1KdV4l2vOR+ECKHu8VSuxVIU3tzTi4R8x","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDoX055N0T07/BUnGDNIcKLI9IDjkoEcO86RKQ9p4LQaQIgEL1GCSh6XLa6gDwiGadjpzwk1cuwBGYiQxyK6+NhJLA="}],"unpackedSize":1774726},"main":"./dist/roster.umd.js","name":"@blakesteve/roster","type":"module","types":"./dist/index.d.ts","author":{"url":"https://blakeb.dev","name":"Blake Ball"},"module":"./dist/roster.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roster.js","require":"./dist/roster.cjs"},"./utils":{"types":"./dist/utils.d.ts","import":"./dist/utils.js","require":"./dist/utils.cjs"},"./style.css":"./dist/roster.css","./data-table":{"types":"./dist/data-table.d.ts","import":"./dist/data-table.js","require":"./dist/data-table.cjs"},"./tokens.css":"./dist/tokens.css","./preflight.css":"./dist/preflight.css"},"gitHead":"651ec3afddc09c2c12c5f8f6df4383cf60353354","license":"MIT","scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"tsc -b && vite build && node scripts/check-prefix.mjs && node scripts/check-classes-emit.mjs && node scripts/check-tokens.mjs && node scripts/check-client-boundary.mjs","prepack":"npm run build && node scripts/write-meta.mjs","preview":"vite preview","test:ui":"vitest --ui","test:run":"vitest run","storybook":"storybook dev -p 6006","check:prefix":"node scripts/check-prefix.mjs","check:tokens":"node scripts/check-tokens.mjs","build-storybook":"storybook build","check:classes-emit":"node scripts/check-classes-emit.mjs","check:client-boundary":"node scripts/check-client-boundary.mjs"},"version":"5.1.0","_npmUser":{"name":"blakesteve","email":"blakesteve@gmail.com"},"homepage":"https://roster-tan.vercel.app","keywords":["react","component-library","design-system","design-tokens","tailwindcss","typescript","storybook","accessible","atomic-design"],"repository":{"url":"git+https://github.com/blakesteve/roster.git","type":"git"},"_npmVersion":"11.4.2","description":"A production-grade atomic component library: accessible, theme-aware, and documented in Storybook. React 19, TypeScript, Tailwind CSS v4.","directories":{},"maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"sideEffects":["**/*.css"],"_nodeVersion":"24.4.0","dependencies":{"clsx":"^2.1.1","tailwind-merge":"^3.4.0","@headlessui/react":"^2.2.9","@radix-ui/react-tooltip":"^1.2.8","class-variance-authority":"^0.7.1","@fortawesome/react-fontawesome":"^3.2.0","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","jsdom":"^28.0.0","react":"^19.2.4","eslint":"^9.39.1","vitest":"^4.0.18","globals":"^16.5.0","postcss":"^8.5.6","react-dom":"^19.2.4","storybook":"^10.2.8","@eslint/js":"^9.39.1","playwright":"^1.58.2","typescript":"~5.9.3","@types/node":"^24.10.12","tailwindcss":"^4.1.18","@types/react":"^19.2.5","autoprefixer":"^10.4.24","react-hot-toast":"^2.6.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.18","typescript-eslint":"^8.46.4","@vitest/coverage-v8":"^4.0.18","@tailwindcss/postcss":"^4.1.18","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.1.1","@storybook/addon-a11y":"^10.2.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@tanstack/react-table":"^9.1.2","@testing-library/react":"^16.3.2","@storybook/addon-vitest":"^10.2.8","eslint-plugin-storybook":"^10.2.8","@chromatic-com/storybook":"^5.0.1","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.0.18","@testing-library/user-event":"^14.6.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.0","react-dom":"^19.2.0","react-hot-toast":"^2.6.0","@tanstack/table-core":"^9.1.2","@tanstack/react-table":"^9.1.2"},"peerDependenciesMeta":{"@tanstack/table-core":{"optional":true},"@tanstack/react-table":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/roster_5.1.0_1790823682698_0.5792835160844603"}}},"time":{"created":"2026-03-11T22:21:52.346Z","modified":"2026-10-01T03:01:22.987Z","1.0.0":"2026-03-11T22:21:52.671Z","1.0.1":"2026-03-11T23:56:03.915Z","1.0.2":"2026-03-12T00:13:43.737Z","1.0.3":"2026-03-12T06:14:28.944Z","1.0.4":"2026-03-12T06:37:56.019Z","1.1.0":"2026-03-13T04:50:58.135Z","1.1.1":"2026-03-13T16:09:02.523Z","1.1.2":"2026-03-14T00:48:40.077Z","1.1.3":"2026-03-14T03:38:26.823Z","1.1.4":"2026-03-14T04:07:36.052Z","1.1.5":"2026-03-14T04:48:39.327Z","1.1.6":"2026-03-14T22:51:26.572Z","1.1.7":"2026-03-14T23:44:51.685Z","1.1.8":"2026-03-14T23:59:19.899Z","1.1.9":"2026-03-15T16:12:08.304Z","1.1.10":"2026-03-15T17:05:19.539Z","1.1.11":"2026-03-15T17:29:51.521Z","1.1.12":"2026-03-15T18:27:57.570Z","1.1.13":"2026-03-15T20:51:18.109Z","1.1.14":"2026-03-15T22:15:52.800Z","1.1.15":"2026-03-15T23:22:24.316Z","1.1.16":"2026-03-16T02:53:47.005Z","1.1.17":"2026-03-16T14:37:34.548Z","1.1.18":"2026-03-16T22:47:36.944Z","1.1.19":"2026-03-16T23:32:59.949Z","1.1.20":"2026-03-17T03:38:12.793Z","1.1.21":"2026-03-17T18:51:05.364Z","1.1.22":"2026-03-17T20:52:13.988Z","1.1.23":"2026-03-18T00:03:18.942Z","1.1.24":"2026-03-18T04:13:46.956Z","1.1.25":"2026-03-18T04:33:17.745Z","1.1.26":"2026-03-19T05:01:53.591Z","1.1.27":"2026-03-30T23:53:09.554Z","1.1.28":"2026-03-31T04:15:04.835Z","1.1.29":"2026-04-01T01:42:48.134Z","1.1.30":"2026-04-02T04:16:12.951Z","2.0.0":"2026-04-11T04:55:27.779Z","2.0.1":"2026-04-11T23:25:47.445Z","2.1.0":"2026-04-18T16:32:53.917Z","2.2.0":"2026-04-19T18:20:08.672Z","2.3.0":"2026-04-22T00:40:56.990Z","2.4.0":"2026-04-23T01:34:44.502Z","2.5.0":"2026-04-23T22:24:16.181Z","2.6.0":"2026-04-24T16:22:08.230Z","2.6.1":"2026-04-24T20:12:09.994Z","2.6.2":"2026-04-24T20:28:45.534Z","2.7.0":"2026-04-25T01:13:13.055Z","2.8.0":"2026-06-03T17:56:19.512Z","2.8.1":"2026-06-03T18:04:57.379Z","2.9.0":"2026-06-03T19:37:19.955Z","2.9.1":"2026-06-03T21:50:31.417Z","2.9.2":"2026-06-03T22:47:03.081Z","2.9.3":"2026-06-03T23:53:01.874Z","2.9.4":"2026-06-08T16:26:07.728Z","2.9.5":"2026-06-08T20:44:57.113Z","3.0.0":"2026-08-13T00:22:51.290Z","4.0.0":"2026-08-13T03:54:43.961Z","4.1.0":"2026-08-13T23:11:35.654Z","4.2.0":"2026-08-14T01:04:18.115Z","4.2.1":"2026-08-14T21:07:08.890Z","4.3.0":"2026-08-21T22:29:36.940Z","4.3.1":"2026-08-22T00:54:57.971Z","4.4.0":"2026-08-22T23:20:32.563Z","4.5.0":"2026-08-23T05:57:43.893Z","4.6.0":"2026-08-26T21:56:48.430Z","4.6.1":"2026-08-27T18:49:31.789Z","4.6.2":"2026-08-27T19:20:24.866Z","4.7.0":"2026-08-27T21:36:43.729Z","4.8.0":"2026-09-03T03:35:56.423Z","4.8.1":"2026-09-06T16:48:28.603Z","4.8.2":"2026-09-07T15:48:29.275Z","4.9.0":"2026-09-08T22:29:10.119Z","4.10.0":"2026-09-09T00:54:08.710Z","4.11.0":"2026-09-09T15:26:18.976Z","4.12.0":"2026-09-15T22:18:12.270Z","4.12.1":"2026-09-16T00:20:54.291Z","4.13.0":"2026-09-17T05:44:38.488Z","5.0.0":"2026-09-18T00:22:03.941Z","5.0.1":"2026-09-27T04:03:09.306Z","5.1.0":"2026-10-01T03:01:22.823Z"},"bugs":{"url":"https://github.com/blakesteve/roster/issues"},"author":{"url":"https://blakeb.dev","name":"Blake Ball"},"license":"MIT","homepage":"https://roster-tan.vercel.app","keywords":["react","component-library","design-system","design-tokens","tailwindcss","typescript","storybook","accessible","atomic-design"],"repository":{"url":"git+https://github.com/blakesteve/roster.git","type":"git"},"description":"A production-grade atomic component library: accessible, theme-aware, and documented in Storybook. React 19, TypeScript, Tailwind CSS v4.","maintainers":[{"name":"blakesteve","email":"blakesteve@gmail.com"}],"readme":"# @blakesteve/roster ✦\n\nA production-grade atomic component library built with **React 19**, **TypeScript**, **Tailwind CSS v4**, and **Vite**.\n\nRoster ships a curated set of accessible, theme-aware components organized around the Atomic Design methodology (atoms, molecules, and organisms), each with Storybook documentation and full test coverage.\n\n## Features\n\n- **Atomic Design**: components organized as atoms, molecules, and organisms\n- **TypeScript first**: fully typed props with exported variant types for maximum DX\n- **Adaptive dark mode**: class-based toggling (`.dark`) independent of OS preferences\n- **`\"use client\"` per component**: the directive sits on the modules that need it, not on the barrel, so a server component pays only for what it imports\n- **Accessible**: interactive components powered by [`@headlessui/react`](https://headlessui.com) and [`@radix-ui`](https://radix-ui.com)\n- **Tree-shakeable**: import only what you need\n\n## Installation\n\n```bash\nnpm install @blakesteve/roster\n```\n\nRoster ships pre-compiled CSS, so you do not need Tailwind installed in your host app to use it.\n\n### Peer dependencies\n\n```json\n{\n  \"react\": \"^19.0.0\",\n  \"react-dom\": \"^19.0.0\"\n}\n```\n\n`DataTable` additionally needs TanStack Table v9, declared as an **optional**\npeer. It ships from its own entry point so that peer stays genuinely optional:\nimporting anything from `@blakesteve/roster` never pulls TanStack in, because a\nbundler resolves imports before it tree-shakes. Install it only if you use\n`DataTable`; every other component works without it.\n\n```bash\nnpm install @tanstack/react-table\n```\n\n```tsx\nimport {\n  DataTable,\n  type RosterTableFeatures,\n} from \"@blakesteve/roster/data-table\";\n```\n\nIt is a peer rather than a bundled dependency because v9 types column\ndefinitions against the feature set that built the table. Two copies of the\npackage would mean two incompatible sets of those types, so roster and your\napp have to resolve the same one.\n\n## Setup\n\nImport Roster's CSS once at the root of your application (`layout.tsx`, `main.tsx`, or `App.tsx`):\n\n```tsx\n// Compiled component styles (always required)\nimport \"@blakesteve/roster/style.css\";\n\n// Default design tokens (color palette, spacing, radius)\n// Omit this if you are supplying your own --roster-* CSS variables\nimport \"@blakesteve/roster/tokens.css\";\n```\n\n### Cascade layers\n\nRoster ships its styles inside a `roster` cascade layer and declares the full\nlayer order in its own stylesheet, so importing it is normally enough:\n\n```css\n/* globals.css */\n@import \"@blakesteve/roster/tokens.css\";\n@import \"@blakesteve/roster/style.css\";\n@import \"tailwindcss\";\n```\n\nThe order Roster declares is:\n\n```css\n@layer roster-preflight, theme, base, components, roster, utilities;\n```\n\n`roster` has to sit in that exact slot. **Above `base`**, because Tailwind's\npreflight resets `*{margin:0;padding:0;border:0 solid}` — put Roster below it\nand that reset outranks Roster's own spacing and border utilities, silently\nstripping padding off buttons and turning `border-transparent` into a visible\n1px line. **Below `utilities`**, so your app's classes and variants such as\n`dark:hidden` still win.\n\nLayers are ordered by _first registration_, so importing Roster before Tailwind\nis the reliable arrangement. If you would rather not depend on import order at\nall, declare the same line yourself at the top of your global stylesheet and it\nholds regardless.\n\n### The global reset is opt-in\n\nRoster ships **no** preflight. A component library has no business resetting\nits host's document, so importing Roster will not change your headings, lists,\nor box sizing.\n\nRoster's components do assume that normalization exists, though. If your app\nruns Tailwind, you already have it and there is nothing to do. If it does not,\nopt in, before the component styles:\n\n```tsx\nimport \"@blakesteve/roster/preflight.css\";\nimport \"@blakesteve/roster/style.css\";\n```\n\nSkip it and components render against browser defaults: serif type, bulleted\nlists, and `content-box` sizing.\n\n### Dark mode\n\nEvery component reads a `.dark` class on an ancestor, so dark mode is whatever\nputs that class on your document root. `ThemeToggle` is the component that does\nit, and it persists the choice to `localStorage`:\n\n```tsx\nimport { ThemeToggle } from \"@blakesteve/roster\";\n\n<ThemeToggle />;\n```\n\nA toggle alone cannot prevent a flash of the wrong theme on first paint, because\nthe class has to be on `<html>` before React runs. Add a blocking script to your\ndocument head:\n\n```html\n<script>\n  try {\n    var s = localStorage.getItem(\"roster-theme\");\n    var dark = s\n      ? s === \"dark\"\n      : matchMedia(\"(prefers-color-scheme: dark)\").matches;\n    if (dark) document.documentElement.classList.add(\"dark\");\n  } catch (e) {}\n</script>\n```\n\nIf you pass a custom `storageKey`, change the script to match — a mismatch means\nthe script and the toggle disagree, which shows up as a flash on every reload.\n\n**Components that render into a portal**, such as `Select`'s menu, are attached\nto `<body>` rather than to the element you wrote them next to. When `.dark` is\non `<html>` — what `ThemeToggle` does, and what the script above sets up — that\nmakes no difference, because the portal is still a descendant. If you scope\n`.dark` to a subtree instead, `Select` detects the nearest `.dark` ancestor of\nthe field and carries it across the portal, so the menu follows the same scope\nthe trigger is in.\n\nThat mechanism carries the `.dark` CLASS across the portal. It does not carry\ncustom properties: `--roster-popover-*` and any other variable you scope to a\ncontainer reach the trigger and stop at the portal boundary, because the panel\nis not a descendant of your container. Set those at `:root`. See\n[Floating surface colors](#floating-surface-colors).\n\n`Navbar`'s `themeMode` prop is a different thing: it describes what palette the\nbar paints _itself_ with. Pair them with `themeMode=\"auto\"` and the nav follows\nwhatever `ThemeToggle` sets.\n\n### Elevation\n\nThree levels, each a themeable box-shadow, and the only way a surface should\nexpress depth.\n\n| level | relationship to the page | used by |\n| ----- | ------------------------ | ------- |\n| `raised` | rests on it, scrolls with it | `Card` (filled variants), `Table` (`primary`), `CallToAction` |\n| `anchored` | fixed to a trigger or a viewport edge | `Select`, `Combobox` and `MultiSelect` panels, `Tooltip`, the `Avatar` popover, `ActionBar`, `Navbar`'s menu and mobile panel |\n| `overlay` | detached from it | `Dialog`, `Toast` |\n\n```css\n:root { --roster-elevation-raised: 0 2px 0 0 rgb(20 17 13 / 0.9); }\n.dark { --roster-elevation-raised: 0 2px 0 0 rgb(0 0 0 / 0.9); }\n```\n\nSet them in **both** scopes. Roster re-declares all three under `.dark`, which\nis a closer ancestor than `:root`, so a `:root`-only override is simply\ninherited past in dark mode — the same trap the control and popover families\ndocument.\n\nApply them with `rst:elevation-raised`, `rst:elevation-anchored` and\n`rst:elevation-overlay`.\n\nBefore this, sixteen call sites used four Tailwind shadow steps with no rule\nconnecting them: `Dialog` carried both `shadow-xl` and `shadow-2xl`, `Toast`\nboth `shadow-lg` and `shadow-2xl`, and `Avatar` used `shadow-sm` in its variants\nwhile its own popover used `shadow-xl`.\n\n**Depth only, never fill.** `Card`'s `slate`, `primary` and `glass` each *name*\na surface, so a token that also set a background would mean something different\ninside each name. Fill stays with `--roster-card-*`, `--roster-popover-*` and\n`--roster-control-*`.\n\n**Controls are not surfaces.** `Button`, the `Select` trigger and the `Avatar`\nring keep their own `shadow-sm` and stay out of the scale. A button and a card\ndo not have the same relationship to the page, and giving a 32px control the\ndepth of a card is how a scale stops meaning anything. `src/elevation.test.ts`\nholds that exemption list and fails on a surface that reaches for a raw shadow.\n\n**Forced-colors mode gets an outline, on `anchored` only.** Those surfaces draw\ntheir border as `ring-1`, which is itself a box-shadow — and forced-colors drops\n`box-shadow`, taking the edge along with the depth. `anchored` carries\n`outline: 1px solid CanvasText` in that mode, as an outline rather than a border\nso nothing shifts by a pixel, and again at `:focus` because those panels are\nfocused while open and `focus:outline-hidden` would otherwise outrank it.\n\n`raised` and `overlay` need none: every surface at those levels draws a real\nborder, so an outline would paint a second edge just outside a forced one.\n\n**Dark is the honest limit.** A black shadow on a near-black ground has almost\nno range to work in — at full alpha over `gray-950` the darkest it can go is a\nfew units. The dark values lean much heavier and still do less than their light\ncounterparts. On the darkest grounds the **border** is what separates a surface;\nthese levels are a lift on top of it, not a replacement for it.\n\n### The three font roles\n\nRoster exposes three type roles, each settable with one custom property:\n\n| role | variable | used by |\n| ---- | -------- | ------- |\n| UI | `--roster-font-ui` | controls, labels, table cells |\n| Mono | `--roster-font-mono` | `Eyebrow`, `InlineCode`, `Stat`, `Pullquote`, `DescriptionList`, `MatchupCard`, `Countdown` |\n| Display | `--roster-font-display` | nothing yet — yours to apply with `rst:font-display` |\n\n```css\n:root {\n  --roster-font-ui: \"Public Sans\", ui-sans-serif, system-ui, sans-serif;\n  --roster-font-mono: \"JetBrains Mono\", ui-monospace, monospace;\n  --roster-font-display: \"Space Grotesk\", ui-sans-serif, system-ui, sans-serif;\n}\n```\n\nSet none of them and nothing changes: UI and display fall back to a system sans\nstack, mono to Tailwind's own default. That matters more than it sounds for the\nUI role — without it, controls would inherit whatever your app puts on `body`,\nand an app that reads in a serif would get serif buttons and serif badges.\n\nMotion moved the same way. The two knobs a consumer is meant to set are now\n`--roster-enter-duration` and `--roster-enter-easing`; they were\n`--rst-enter-duration` and `--rst-enter-easing`. The rest of the `--rst-enter-*`\nfamily is untouched on purpose — `opacity`, `scale` and the translates are\nwritten *by* the `fade-in-*` and `zoom-in-*` utilities, so they are\nimplementation, not API.\n\n**Mono moved namespace, and that is a small breaking change.** It used to\nresolve through `--rst-font-mono`, a Tailwind-internal variable. That did work\nif you found it — it was undocumented, and it was Roster's to rename at any\ntime. Nothing reads it any more, so an app that set `--rst-font-mono` must move\nto `--roster-font-mono`. Setting neither is unaffected: the fallback is\nTailwind's own default stack, byte for byte.\n\n**Display is deliberately unused by the library.** No component asks for it, so\nsetting it changes nothing on its own — it exists so an app can put headings,\nfigures and names in a face distinct from its body text, and reach them with\n`rst:font-display`. Roster force-emits that one utility, because Tailwind\ngenerates only what it finds in the source it scans, and your build has never\nheard of `--roster-font-display`.\n\nIts fallback is a copy of the UI stack rather than a reference to it, because\ntheme values are inlined and `var(--font-ui)` would not resolve. Setting\n`--roster-font-ui` alone therefore does not change `rst:font-display`; set both\nif you want them to agree.\n\n`Card` and `Link` opt out of all of this and inherit, because they wrap your\ncontent and that text is not Roster's to restyle.\n\n### Solid fill contrast\n\n`solid` is the one variant where a component picks both the background and the\ntext on it, so it can fail contrast on its own with no help from your app. Every\nsolid fill in `Badge`, `Pill`, `Chip`, `Toast` and `Button` is measured against WCAG AA\n(4.5:1)\nby `src/contrast.test.ts`, at rest **and** on hover, in both themes.\n\n`Checkbox` is measured too, at 3:1 rather than 4.5:1 — its tick is a graphical\nobject under WCAG 1.4.11, not text. It used to be excluded from the suite\nentirely, which measured it against nothing.\n\n`CallToAction` is **not** in that suite, and its light surface changed: the\nfills moved a ramp step and the borders moved four, because the old surface\nmeasured 1.03:1 against a light page with a 1.30:1 border — a banner you could\nnot see. **Installing this version changes how your existing CTAs look**, the\nsame way the 1.4.11 pass changed every field in 4.8.2. Its `info` variant also\nmoves from Tailwind's stock `blue-*` to Roster's `info-*`, so it now answers to\n`--roster-info-*` like every other scheme.\n\nWorth knowing what that border step is and is not. It is a **prominence**\ndecision, not a 1.4.11 one: a tinted banner is not a control, so the criterion\nno longer reaches it once the surface has a fill. A call to action is the one\ncomponent whose job is to be looked at first, so it is deliberately the most\ndefined bordered block in the library. The filled surfaces it sits beside are\nmuch fainter — `Card` soft at 1.04:1, `ErrorState` at 1.39:1, `Toast` and\n`Pill` between 1.34:1 and 1.82:1. `Alert` is the closest, and only because its\n4px left stripe is already a `-500`, at 6.10:1 for primary.\n\n`CallToAction` and `Countdown` also lay themselves out with **CSS container\nqueries** rather than `md:` and `sm:`. The switch is now the CARD's width, not\nthe window's — a 228px card on a 1200px page used to lay out as a row and\nsqueeze its own text until it overflowed. Three things follow:\n\n- **The breakpoint number changed** from a 768px viewport to a 512px card. A\n  CTA in a narrow page column will stack where it did not before.\n- **`container-type: inline-size` collapses inside a content-sized ancestor.**\n  Give any `width: fit-content`, `inline-block` or table-cell ancestor a\n  definite width, or the card measures zero.\n- **Container queries are required**: Chrome 105+, Safari 16+, Firefox 110+.\n  `Stat` lays out with CSS subgrid, which raises its own floor to Chrome 117.\n  Without them a `CallToAction` renders in its narrow form at every width.\n\n#### Ink follows the fill\n\nThe foreground is a token per fill, not per family:\n\n```css\n/* Only after you have retinted `primary` to something light. Against Roster's\n   own primary these would be 2.08:1 and 2.84:1 — the tokens do not check your\n   arithmetic, they just stop you having to fight a hardcoded `text-white`. */\n:root {\n  --roster-primary-600-ink: #10142e;   /* the fill Button and Checkbox rest on */\n  --roster-primary-500-ink: #10142e;   /* Badge and Pill's rest fill, and where\n                                          Button hovers in dark mode */\n}\n```\n\nKeyed by fill because the right ink flips partway up three of the nine ramps:\n`orange`, `purple` and `success` all want dark ink at 500 and white at 600. A\nper-family token would be wrong for those three — and it is why `Pill` and\n`Button` legitimately disagreed about `success` before this existed. Pill fills\nat 500 and Button at 600, so they reached opposite and equally correct answers.\n\nEvery fill carries the foreground it always had, so nothing changes until you set\none. Hover and dark mode each resolve against *their own* fill, so a scheme whose\nhover moves to a lighter shade picks up that shade's ink automatically.\n\nThis matters when you retheme. Roster's own choice of white or `gray-950` was\nmade against Roster's colors, and `--roster-*` exists precisely so you can\nreplace those. Two apps remapped `primary` and got a sub-AA fill nobody noticed\nuntil it was measured by hand: BB Blue put white at 3.66:1 on a dark-mode hover,\nand a gold `primary` failed at every state, worst at 2.10:1.\n\nThey reached for opposite remedies, which is the clearest argument for the\ntoken. One moved the *fill* so white stayed readable; the other overrode\n`text-white` from its own stylesheet to darken the *ink*. Only one of those was\nexpressible in Roster, and neither survives an upgrade. Setting the ink token is\nthe supported way now.\n\n##### Upgrading\n\n**If you override a solid variant's foreground from your own stylesheet, that\nrule stops matching.** Solid Button, Badge, Pill and Checkbox no longer carry\n`rst:text-white` or `rst:text-gray-950`, so a selector naming either matches\nnothing. It fails silently, and it fails *partially*: those classes are still on\n`Card`, `Navbar`, `Dialog`, `ActionBar`, `Avatar` and `Breadcrumbs`, so a\nthemed foreground keeps working there while reverting on every solid control.\nReplace the rule with the token:\n\n```css\n/* before */\n.rst\\:bg-primary-600.rst\\:text-white { color: #10142e; }\n\n/* after — and it covers hover and dark mode, which the rule above did not */\n:root { --roster-primary-600-ink: #10142e; }\n```\n\n`LiquidTabs` followed later: its active label reads `--roster-lt-text-active`,\nwhich defaults to `--roster-primary-500-ink`, the ink of the pill's default\nfill. A rule naming `rst:text-white` on a tab stops matching; a rule on\n`[role=\"tab\"][aria-selected=\"true\"]` still does. If you repaint the pill with\n`--roster-lt-pill`, set `--roster-lt-text-active` to match it.\n\n**If you pass a foreground through `className`, add the hover modifier.** Solid\nvariants now carry `hover:text-*`, and `tailwind-merge` resolves conflicts per\nmodifier, so a bare `rst:text-black` no longer holds through hover. Write\n`rst:text-black rst:hover:text-black`, or set the ink tokens instead.\n\nThe `Foundations/Solid fill contrast` story measures rendered elements rather\nthan tokens, so pointing it at your palette reports _your_ ratios.\n\nNote also that a solid fill's contrast against the surface _behind_ it is a\nseparate requirement (WCAG 1.4.11, 3:1) and is not covered here. Solid amber on\na white page is 1.67:1, so it has effectively no visible edge.\n\nForm controls **are** covered for that requirement, separately: see\n`--roster-control-border` under [Control surface colors](#control-surface-colors).\n\n### Focus\n\nEvery focusable control draws the same ring: `--roster-ring` for the ring\nitself, `--roster-ring-offset` for the 2px band that separates it from the\ncontrol's own fill. Both flip with the theme — `primary-500` on white in light,\n`primary-400` on `gray-950` in dark — which puts the indicator at 6.37:1 and\n7.31:1 against the surface either side of it, where WCAG 1.4.11 asks for 3:1.\n\nBoth tokens follow the **page**, which is right until a component deliberately\ninverts against it. `Dialog`'s `slate` and `primary` are dark whatever the page\nis doing, so on a light page they were handing their contents the light-mode\nring: `primary-500` on `gray-700` is **1.61:1**, and the white offset behind it\nwas 10.27:1, making the gap the most visible part of the indicator. Those two\nvariants now set both tokens on their own subtree, so a field inside them gets\n3.80:1 and 4.04:1 instead. `white` and `glass` are left alone because they\nfollow the page like everything else.\n\nIf you build your own inverted surface, do the same on it:\n\n```css\n.my-dark-panel {\n  --roster-ring: var(--roster-primary-400);\n  --roster-ring-offset: /* that panel's own background */;\n}\n```\n\nRetint it for your own accent:\n\n```css\n:root {\n  --roster-ring: #7c3aed;\n}\n.dark {\n  --roster-ring: #a78bfa;\n}\n```\n\nSet it in **both** scopes. Roster's own `.dark` rule has the same specificity\nand comes later in the stylesheet, so a `:root`-only override is silently\ndiscarded in dark mode.\n\nThe band matters more than it looks. Without it the ring sits directly on the\nfill, and a `primary-500` ring on a `primary-600` button is 1.37:1 — which is\nwhy the ring and its offset are a pair rather than two independent knobs.\n\n### Motion\n\nTwo hand-rolled utilities, both of which stop for `prefers-reduced-motion`.\n\n`animate-in` is the entrance, composed from modifiers the way\n`tailwindcss-animate` does it — one keyframe reading four custom properties, and\neach modifier setting one, so `fade-in-0 zoom-in-95 slide-in-from-top-2` combine\ninto a single animation rather than three fighting over `transform`. `Tooltip`\nuses it, keyed off Radix's `data-side` so the panel always rises from the side it\nis anchored on.\n\nThe suffixes are that plugin's, kept so anyone arriving from it keeps their\nvocabulary. Each one is the value the modifier animates from: `-0` is an opacity,\n`95` is a scale percentage, and `-2` is a step on Tailwind's spacing scale, so\n`slide-in-from-top-2` starts `0.5rem` above its resting position. Only the steps\nRoster's own components need are implemented; adding `-4` or `zoom-in-90` is one\nline each.\n\n`animate-in` on its own does nothing, by design: with no modifier the keyframe's\nstart values are the element's resting state. It is the engine, and a modifier is\nwhat gives it somewhere to start. It fills `backwards`, so `animation-delay` can\nstagger a group without every item flashing at rest first.\n\nThe default duration is 150ms, matching the plugin. At that speed a `-2` slide\ncovers 8px, which is right for a tooltip and reads as a twitch on anything\nlarger — `Foundations/Motion` in Storybook has controls for duration, easing,\ndirection and stagger to find what suits a bigger surface.\n\nIt is hand-rolled rather than a dependency: seven utilities does not justify a\npackage in a library that ships compiled CSS, and it keeps the stylesheet\nself-contained — the same reasoning as not bundling a preflight.\n\n`Sheet` has its own knobs, beside those: `--roster-sheet-enter-duration`\n(280ms), `--roster-sheet-leave-duration` (200ms), the two matching easings, and\n`--roster-sheet-fade-duration` (150ms), which is the whole of its motion under\nreduced motion: a fade, with no slide. Set them at `:root`; they are the same in\nboth schemes, so they are not redeclared under `.dark`.\n\n`animate-shimmer` is a highlight travelling across a base, used by `Countdown`'s\n`gradient` variant. Retint it with two variables:\n\n```css\n:root {\n  --roster-shimmer-base: #084063;\n  --roster-shimmer-highlight: #9bcce9;\n}\n.dark {\n  /* … */\n}\n```\n\nThe base is what carries the text whenever the highlight is elsewhere, so it has\nto be readable on its own — it is also all you get under reduced motion, where\nthe sweep stops and the highlight parks off-frame. The highlight is deliberately\nexempt from that bar: it is a specular pass on screen for a fraction of a second\nper glyph, and holding it to 3:1 would flatten the effect.\n\n### Scrollbars\n\n`custom-scrollbar` gives any scrollable surface a slim themed scrollbar.\n`Textarea` carries it already.\n\n```css\n:root {\n  --roster-scrollbar-thumb: #0f6498;\n}\n.dark {\n  --roster-scrollbar-thumb: #5ea3de;\n}\n```\n\nSet it in both scopes — Roster's own `.dark` rule has equal specificity and comes\nlater, so a `:root`-only override is discarded in dark mode.\n\nThe default sits close to what the browser already draws, on purpose: a\ncomponent library should not repaint your scrollbars merely for being installed.\nColor is the part that works everywhere. The 8px width and inset-pill thumb live\nin a `::-webkit-scrollbar` block that only legacy engines reach. Every current\nbrowser honors `scrollbar-width` / `scrollbar-color`, and drops the WebKit\npseudo-elements for any element that sets either of them, so on anything modern\n`thin` is the whole shape control available.\n\n### Control surface colors\n\n`Input`, `PasswordInput`, `Textarea` and `Select` read these variables, so a\nconsumer can repaint a form control without restating the class list. Both\n`outline` and `soft` read the border: `soft` used to be borderless and lean on\nits fill alone, which fails the moment the fill matches the surface — a `soft`\nfield inside a `white` Dialog in dark mode was exactly 1.00:1 and invisible\nuntil focus.\n\n```css\n:root {\n  --roster-control-border: #65635f; /* gray-500 */\n  --roster-control-bg: transparent;\n  --roster-control-text: #1c1917;\n  --roster-control-border-focus: #0f6498;\n}\n.dark {\n  --roster-control-border: #a8a29e; /* gray-400 */\n  --roster-control-bg: transparent;\n  --roster-control-text: #f5f5f4;\n  --roster-control-border-focus: #5ea3de; /* primary-400 */\n}\n```\n\n`--roster-control-border` is the one token here whose two scopes hold different\nvalues, and that is deliberate. WCAG 1.4.11 asks 3:1 to identify a control, and\na border has to move opposite its surface to get there: gray-500 reaches 5.99\non white but only 2.53 on a gray-800 Dialog, while gray-400 reaches 6.01 there\nand 2.52 on white. No single step of the ramp clears 3:1 both ways. The old\ngray-300 / gray-700 pair was 1.49 and 1.48 — a hairline rather than a boundary.\n\nSet them in both scopes, for the same reason the scrollbar thumb needs both:\nRoster's own `.dark` rule has equal specificity and comes later.\n\nThree of the four still default to what the components used to hardcode.\n`--roster-control-border` does not — the 1.4.11 pass moved it two ramp steps —\nso installing this version **does** change how your fields look, deliberately. Placeholder color, the error state, and the\nfocus ring are deliberately not on tokens — the ring is already\n`--roster-ring`, and error styling should stay recognizably an error.\n\nNot every control uses every token: `Select` takes the first three, because\nfocus on its trigger is the shared `--roster-ring` rather than a border color,\nand it draws the border as a ring rather than a border.\nOne family rather than one per component is deliberate — these controls sit in\nthe same row of the same form and are drawn to look identical, so being able to\nrepaint one and not the other would be a bug, not a choice.\n\n`outline` reads all four. `soft` reads the border only, because a boundary is\nthe one thing a filled field cannot supply for itself on an arbitrary surface;\n`white`, `slate` and `ghost` stay opinionated. `Checkbox` reads the border too,\nfor its unchecked box. Historically `outline` was the only reader, and\nit carries no hover fill. The other variants each name a concrete surface\n(`white`, `soft`, `slate`, `ghost`) and stay opinionated: a token that meant\nsomething different in each would not be a token.\n\nOne caveat worth knowing before you lean on these: like `--roster-card-*`,\n`--roster-nav-*` and `--roster-footer-*`, they are declared outside\n`@layer roster` and resolved at `:root`. A host that declares its override\ninside `@layer base` is outranked, and an override scoped to a subtree rather\nthan the document root will not reach them.\n\n### Floating surface colors\n\n`Select`'s menu, `Dialog`'s `white` variant and `Tooltip`'s `themed` variant\nread these, so one palette covers every panel that floats over the page.\n\n```css\n:root {\n  --roster-popover-bg: #fff;\n  --roster-popover-border: #e7e5e4;\n  --roster-popover-text: #1c1917;\n}\n.dark {\n  --roster-popover-bg: #292524;\n  --roster-popover-border: #44403c;\n  --roster-popover-text: #f5f5f4;\n}\n```\n\nSeparate from `--roster-control-*` on purpose, and the default is the reason:\n`--roster-control-bg` is `transparent`, which is right for a field drawn on a\npage and actively broken for a panel drawn over one. A control and the menu it\nopens are also legitimately different surfaces in plenty of palettes.\n\n**Set these at `:root`, not on a container.** The menu and the tooltip bubble\nare portaled to `<body>`, so they are not descendants of whatever you rendered\nthe component inside: properties set on a wrapper reach the trigger and stop\nthere. Any ancestor of `<body>` works — `:root` is simply the one that always\nis, which is also why the `.dark` block below reaches a menu whose `.dark`\nscope `Select` copies across the portal. The result is a themed trigger opening an unthemed panel, which is the\nexact problem this family exists to fix. Set them in both scopes too, for the\nsame reason the control family needs both.\n\nWhere each component takes them, and why not everywhere:\n\n- **`Select`'s menu** has no variants, so it reads all three outright — panel\n  fill, hairline, and the option labels, which are `text-inherit` so the text\n  token actually reaches the only text in the panel.\n- **`Dialog`** takes them in `white` only. `slate`, `primary` and `glass` each\n  name a specific surface, and a token that meant something different inside\n  each name would not be a token. The defaults are `white`'s previous values\n  exactly, in both schemes, so nothing moves.\n- **`Tooltip`** has a `themed` variant that reads them. Its `dark` and `light`\n  variants are untouched: `dark` is the default, an inverted bubble that\n  deliberately reads the same on a light or a dark page, and pointing that at a\n  token whose light default is white would not theme it, it would delete it.\n\nOne appearance change ships with this: `Select`'s menu ring moves from\n`black/5` to `--roster-gray-200` in light mode, which is the hairline the rest\nof the library already draws.\n\n### Reaching the control\n\n`className` on a field component lands on the outer `Field` wrapper. That is\nright for layout — width, flex, margins — and useless for anything else: it\ncannot reach the element that draws the border, the height or the font.\n\nEvery field therefore has a second prop, **named for the element it reaches**:\n\n| Component      | Wrapper     | The control itself   | Other inner parts   |\n| -------------- | ----------- | -------------------- | ------------------- |\n| `Input`        | `className` | `inputClassName`     | —                   |\n| `PasswordInput`| `className` | `inputClassName`     | —                   |\n| `Select`       | `className` | `triggerClassName`   | `optionsClassName`  |\n| `Textarea`     | `className` | `textareaClassName`  | —                   |\n| `Combobox`     | `className` | `inputClassName`     | `optionsClassName`  |\n| `CheckboxGroup`| `className` | —                    | `optionsClassName`  |\n| `RadioGroup`   | `className` | `radioClassName`     | `optionsClassName`, `optionClassName`, `labelClassName`, `optionLabelClassName`, `descriptionClassName`, `messageClassName` |\n\n`CheckboxGroup` and `RadioGroup` have no single \"control\" to reach, since they\nhold one per option, so `RadioGroup`'s `radioClassName` lands on every radio\nrather than on one.\n\n`CheckboxGroup`'s options container was `panelClassName`, which named a variant\nrather than the element it reaches. Both groups now use `optionsClassName`.\n`panelClassName` still works and is deprecated; pass both and the current name\nwins.\n\n`Select` is the first component with two styleable inner parts, which is the\ncase the naming scheme was chosen for: `optionsClassName` reaches the popup\npanel. One caveat that is a property of Headless UI rather than of this prop —\nthe panel's `max-height` and `overflow` are written inline by its `size`\nmiddleware, so a height passed here lands in the class list and is outranked.\nTo cap the menu, set the variable that inline rule reads:\n`optionsClassName=\"rst:[--anchor-max-height:20rem]\"`.\n\nThe names differ on purpose. A single `controlClassName` would name a concept\nrather than an element, and it breaks the first time a component has two\nstyleable inner parts — a combobox has an input *and* a toggle. `triggerClassName`\nalso tells you something true: the thing you are styling is a `<button>`, so\n`placeholder:` and `disabled:` behave differently on it than they would on an\n`<input>`.\n\nThese merge last and win, not because they come later in the attribute (CSS\nignores that) but because `cn` is tailwind-merge and deletes the class they\nconflict with.\n\n### Control heights\n\n`Button`, `Input` and `Select` share one size scale, so they line up when set\nside by side in a row:\n\n| `size`    | Height | `Button` padding | `Input` padding | `Select` padding |\n| --------- | ------ | ---------------- | --------------- | ---------------- |\n| `sm`      | 36px   | `px-3`           | `px-3`          | `pl-3 pr-9`      |\n| `default` | 40px   | `px-4`           | `px-4`          | `pl-4 pr-10`     |\n| `lg`      | 44px   | `px-8`           | `px-4`          | `pl-4 pr-10`     |\n\nPadding diverges at `lg` on purpose. A button's label is centered and wants the\nroom, while a field's text is left-aligned and a wide inset only pushes the\ncaret toward the middle. `Select`'s right padding is clearance for the chevron,\nwhich is a fixed 14px at every size, so it has nothing to grow for.\n\nUnit tests assert the three components resolve to the same height at every\nshared size, so they cannot drift apart. `Button` also has `xs` and `icon`,\nwhich neither field has an equivalent for. `Textarea` is not on this scale — it\nis multi-line, so the answer there is a min-height rather than a height.\n\n### Toasts\n\nMount `Toaster` once near the root, then call `toast` from anywhere:\n\n```tsx\nimport { Toaster, toast } from \"@blakesteve/roster\";\n\n<Toaster position=\"bottom-right\" />;\n\ntoast.success(\"Saved\");\ntoast.error(\"That name is taken\");\ntoast.info(\"Week 4 matchups are up\");\ntoast.warning(\"Picks close in ten minutes\");\n```\n\nIt wraps [`react-hot-toast`](https://react-hot-toast.com), which is a **peer\ndependency** — install it alongside Roster. It has to be external rather than\nbundled: its queue lives in module scope, so a bundled copy would give you two\nstores, and toasts fired from your own `import { toast } from \"react-hot-toast\"`\nwould silently never appear.\n\nAn app already using it keeps its call sites and only changes the import. What changes is\nthe styling: the toast body is a real `Toast` component reading `--roster-*`\nrather than the inline hex each app was pinning.\n\nTwo of those four helpers are Roster's own. `react-hot-toast` ships `success`,\n`error`, `loading` and `blank` — there is no `info` and no `warning`, so an app\nthat wants one improvises, and at least one improvised by calling `toast.error`\nfor `info`.\n\n**Errors are announced assertively, everything else politely.** That is also\nRoster's decision rather than the library's: `react-hot-toast` marks every\ntoast `status` / `polite`, and a polite live region is read when the reader\nnext pauses — which for a message that disappears in four seconds can mean\nnever.\n\n**The queue renders into `<body>`, not where `Toaster` is placed.** While a\n`Dialog` or `Sheet` is open, every child of `<body>` is `inert` and\n`aria-hidden` except the dialog layer and anything carrying\n`data-roster-toaster`, which `Toaster`'s host does. So a toast fired from an\nopen dialog is still announced, wherever in the app `Toaster` is mounted.\n\nA toast host Roster does not render, such as `react-hot-toast`'s own\n`Toaster`, goes silent while a dialog is open unless it opts in. Wrap it in an\nelement that is a direct child of `<body>` (render it through a portal if it is\nmounted deeper) and carries the attribute:\n\n```tsx\n<div data-roster-toaster=\"\" style={{ display: \"contents\" }}>\n  <Toaster />\n</div>\n```\n\nTwo consequences of rendering into `<body>`:\n\n- `--roster-*` tokens set on a wrapper inside your app do not reach the toasts.\n  Set them on `:root`. A scoped `.dark` is carried across.\n- Anything else another library mounts straight into `<body>` while a dialog\n  is open, such as a date picker's or an autocomplete's popup, is inert too,\n  so it can't be clicked. Roster's own popups render into Headless UI's portal\n  root and are unaffected.\n\n`variant` on `Toaster` sets the fill for the whole queue:\n\n- **`soft`** (default) — the tinted fill `Alert` uses. Quiet enough that a stack\n  does not shout, which is the common case.\n- **`solid`** — the `-500` fill and ink token, step for step with `Pill` and\n  `Chip`. The one to reach for when toasts land over photography, video, or any\n  surface the app does not own: `bg-success-50` is a whisper on a white page\n  and illegible over an image.\n- **`glass`** — a neutral translucent surface at 60% with a backdrop blur,\n  matching `Dialog`'s variant of the same name. The tone lives on the **border\n  only**; the surface and the text are neutral for every scheme.\n\nGlass is neutral for a reason, and the border-only tone is the cost. Anything\nwhose contrast depends on the backdrop is a guess: a colored fill measured\n2.60:1, and colored text on a neutral fill measured 2.81:1 — worse. Only the\nneutral ink is safe in both directions, at 17.49 over white, 6.14 over black\nand 9.22 over a brand color — 60% is as far as that allows, with 4.69 the worst\ncase in dark. If the tone needs to be unmistakable, use `solid`.\n\n`src/contrast.test.ts` measures the `solid` fills and deliberately does not\nmeasure `glass` — a number there would be a number for one background.\n\n### Anchored popups share their internals\n\n`Select`, `Combobox` and `MultiSelect` open the same panel, and deliberately\nso: a combobox that opened a different-looking menu than a select on the same\nform is the bug worth preventing. The panel classes, the option rows and the dark-mode carry\nlive in `src/internal/`, which is **not exported** — its contract is\nwith those components, not with you. The escape hatch you reach for is\n`optionsClassName` on the component itself.\n\nTwo things in there are worth knowing about even from outside, because both\nlook like oversights until you know why:\n\n- **The panel sets no `max-height` and no `overflow`.** Headless UI's `size`\n  middleware writes both inline whenever `anchor` is set, so a utility would\n  lose to it anyway. To cap a menu shorter than the viewport allows, set the\n  variable that inline rule reads:\n  `optionsClassName=\"rst:[--anchor-max-height:20rem]\"`.\n- **The panel is portaled to `<body>`**, so a `.dark` scoped to part of your\n  page does not reach it. All three components copy the nearest `.dark` onto\n  the panel to fix that. Custom properties are not carried the same way — set\n  `--roster-popover-*` at `:root`.\n- **`variant=\"slate\"` opens on the dark palette**, in light mode too. That\n  variant paints a dark trigger, and its panel was rendering white: a dark\n  control opening a white sheet, which is the mismatch `--roster-popover-*`\n  exists to prevent. The token family only ever covered the variant that reads\n  tokens, and the ones that name a surface were left behind. It reuses the dark\n  palette rather than introducing a slate one, because every option state there\n  already exists and has already been measured.\n\n### Two ways to select more than one thing\n\n`MultiSelect` and `CheckboxGroup` both hold a set. They are not a fallback for\neach other:\n\n- **`MultiSelect`** when the field is one row of a form and the options do not\n  need to be read at a glance. It costs a click to see the list, which is what\n  makes it the right control for a dialog. Note that the default trigger still\n  grows as chips wrap — `maxChips` or `display=\"count\"` is what actually pins\n  it to one row.\n- **`CheckboxGroup`** when scanning every option matters more than saving the\n  space, or when the options arrive in labeled categories. Nothing is hidden\n  and nothing needs a click to be read.\n\nDensity is the axis, not correctness. The same eight sports are a good\n`MultiSelect` in a cramped creation dialog and a good `CheckboxGroup` on a\nsettings page.\n\nSwapping one for the other is not free, though, and it is worth saying which\nparts move. `label`, `helperText` and `errorMessage` are the same three names\nin both. The value types are not: `CheckboxGroup` is `string[]`, `MultiSelect`\nis `(string | number)[]`, so state typed for one does not assign to the other.\nNeither do the options — `CheckboxGroupOption` carries a `description` that\n`SelectOption` has no field for, and `CheckboxGroup` additionally accepts\n`{ category, options }` groups that `MultiSelect` cannot take at all. Headless\nUI's `Listbox` has no grouping primitive, so option groups in the dropdown\nwould be Roster's to build.\n\n#### MultiSelect\n\nThe same Headless UI `Listbox` as `Select`, with `multiple` set, opening the\nsame panel from `src/internal/popup.ts`. The panel stays open across picks;\nclicking a selected option again removes it.\n\n```tsx\n<MultiSelect\n  label=\"Sports\"\n  options={SPORTS}\n  value={sports}\n  onChange={setSports}\n  maxChips={3}\n  clearable\n/>\n```\n\nSelections render as chips in the trigger, and each chip is individually\ndismissible without opening the menu.\n\nGetting that required a specific structure, and it is the interesting part of\nthe component. A dismiss control is a `<button>` and `ListboxButton` is a\nbutton, so the chips cannot be its children — that pair is invalid HTML, and\nbrowsers do not rescue it either: React builds the DOM through the DOM API\nrather than the parser, which leaves it nested, so it would ship as a focusable\ncontrol whose every click also opens the listbox. So the trigger is a **shell**\nwith the `ListboxButton` stretched `inset-0` across it, and the chips are the\nbutton's siblings drawn on top.\n\nThat keeps the button the full-width element, which matters more than it\nsounds: Headless UI anchors the panel to the button and sizes it from\n`--button-width`, and a trigger that stops being full width is how `Combobox`\nonce shipped a 20px unreadable menu. Measured after the change, the panel still\nmatches the field exactly.\n\nEverything decorative in the shell is `pointer-events-none`, so a click on a\nchip's label falls through and opens the menu like the rest of the field. Only\nthe dismiss controls take their events back. Each is named after its own chip —\na row of buttons all called \"Remove\" is a row a screen reader user cannot tell\napart — and `removeLabel` takes a function if \"Remove NFL\" is not the phrasing\nyou want. The chips are hidden from the trigger's accessible name, which\ncarries a punctuated summary instead: they are `inline-flex` spans, and name\ncomputation joins them with no whitespace, so \"NCAA Football\" followed by \"NBA\"\nannounced as \"FootballNBA\".\n\nThe chips default to `outline` rather than a soft fill. The default trigger\npaints `--roster-control-bg`, which is `transparent`, so a chip sits on\nwhatever the page is: a `soft neutral` chip is `gray-100`, which on this\nlibrary's own `gray-50` page is a 1.04:1 rectangle. It rendered, it measured\ncorrect, and it could not be seen.\n\n`outline`'s identity is a border rather than a fill, but that alone was not\nenough either. Chip holds its border to 3:1 against a *page*, and this\ncomponent can be told to paint its own surface — `variant=\"slate\"` paints\n`gray-700`, byte-identical to the neutral chip's own `gray-700` label, which\nrendered chip-shaped holes at 1.00:1. So the chips take `text-inherit` and\n`border-current`, in both schemes, and cannot disagree with the surface they\nwere placed on. The dismiss and clear controls inherit the same way, because\nthe shell is what carries the trigger's color and they all sit inside it.\nMeasured across all five variants in both schemes: chip label 9.42 to 18.11,\nchip border 4.33 to 8.99, glyphs 5.59 to 8.99.\n\nEach dismiss control's hit area is grown to 31x28 with an invisible `::after`.\nThe glyph's own box is 15x12, and WCAG 2.5.8 asks 24x24 — the spacing exception\ndoes not rescue it, because the trigger is another target sitting directly\nunderneath. That fix landed in `Chip` rather than here, so every dismissible\nchip gets it.\n\n`maxChips` collapses the tail into a `+N` chip and `display=\"count\"` replaces\nthe chips with `N selected`, so a field with eight selections does not become\nfour rows tall. A selected value with no matching option renders as its own id\nrather than vanishing from a field that still reports it.\n\n#### CheckboxGroup\n\nThree things it adds over the version mega-squad's squad form hand-rolled:\n\n- **Each option is a Headless UI `Field`**, so its label is wired to its own\n  checkbox and clicking the text toggles it. The pointer cursor sits on the\n  label rather than on the row, because the label *is* the hit area: at two\n  columns, a short option like `NFL` fills about a quarter of its grid cell,\n  and a row-wide affordance would advertise the other three quarters as\n  clickable.\n- **Each category is a nested fieldset**, so `Football` is the accessible name\n  of the group under it rather than a styled `div` a screen reader walks past.\n  The heading is still a `<span>`, not a heading element, so it does not appear\n  in a screen reader's heading list — the name is reachable by entering the\n  group, which is what the nesting buys.\n- **`errorMessage` reaches the fieldset** as `aria-describedby`, wired by hand\n  rather than through Headless UI's `Description`. `Fieldset` collects\n  descendant labels but never calls `useDescriptions` and provides no\n  description context, so a `Description` dropped inside one throws rather than\n  degrading quietly. Per-option `description` text does go through `Field`,\n  which wires it properly — the distinction is real: a group description is\n  announced on entering the group, an option's on focusing that checkbox.\n\n  Both `aria-describedby` and `aria-invalid` are set **after** `...props` is\n  spread, and the describedby is merged with any the caller passes. Set before,\n  a caller's own `aria-describedby` would replace the error association with no\n  type error and no warning: a group rendering red text and reporting itself\n  valid.\n\n`variant=\"panel\"` draws the enclosing box for the long-list case. It\ndeliberately does not read `--roster-popover-*`: that family is for surfaces\nthat float over the page, and this one is in the flow, so it takes `Card`'s\n`soft` fill. Its border is two ramp steps heavier than that card's, and that\npart is not shared: a card's hairline separates content from the page, while\nthis one has to read as the wall a scroll region ends at.\n\n`maxHeight` is applied inline rather than as a class, because the useful values\nare arbitrary and a Tailwind class built from a prop is a class that does not\nexist at build time. A capped panel takes a tab stop of its own — Chrome and\nFirefox focus scrollers by themselves now, Safari does not, and a `disabled`\ngroup has no focusable option to tab to at all, so the region would be\nunscrollable from the keyboard.\n\n`errorMessage` repaints less here than it does on `Input` or `Select`, on\npurpose. `panel` gets an error border; `plain` has no boundary to repaint, so\nthe message is the whole error state. A checkbox is not the thing that is\ninvalid — the selection is — so nothing rings the individual controls.\n\n```tsx\n<CheckboxGroup\n  label=\"Select supported sports\"\n  helperText=\"You can always add more later.\"\n  variant=\"panel\"\n  columns={2}\n  maxHeight={240}\n  options={[\n    { category: \"Football\", options: [{ value: \"nfl\", label: \"NFL\" }] },\n    { category: \"Hockey\", options: [{ value: \"nhl\", label: \"NHL\" }] },\n  ]}\n  value={sports}\n  onChange={setSports}\n/>\n```\n\n`onChange` appends and filters rather than rebuilding the array from `options`.\nA rebuild sorts the result into declaration order, which reads tidier and\nsilently drops any selected value whose option has not loaded yet.\n\n### Multi-selection is a checklist, not a menu\n\n`CheckboxGroup` exists instead of a multi-select `Select`, and the reason is\nthat neither multi-selection UI in the portfolio was ever a dropdown.\nmega-squad's squad form picks sports from a grouped, scrollable checklist with\ncategory headings; bb-memorial's share form picks tags from a flat row of\ntoggles. Collapsing either into a menu would have hidden the options behind a\nclick to save vertical space neither screen was short of, so the component\nfollows the shape that already worked. A multi-select dropdown is still the\nright answer for a list too long to show — when something in the portfolio has\none, that is when to build it.\n\nThree things it adds over the hand-rolled version it replaces:\n\n- **Each option is a Headless UI `Field`**, so its label is wired to its own\n  checkbox and clicking the text toggles it. The pointer cursor sits on the\n  label rather than on the row, because the label *is* the hit area: at two\n  columns, a short option like `NFL` fills about a quarter of its grid cell,\n  and a row-wide affordance would advertise the other three quarters as\n  clickable.\n- **Each category is a nested fieldset**, so `Football` is the accessible name\n  of the group under it rather than a styled `div` a screen reader walks past.\n  The heading is still a `<span>`, not a heading element, so it does not appear\n  in a screen reader's heading list — the name is reachable by entering the\n  group, which is what the nesting buys.\n- **`errorMessage` reaches the fieldset** as `aria-describedby`, wired by hand\n  rather than through Headless UI's `Description`. `Fieldset` collects\n  descendant labels but never calls `useDescriptions` and provides no\n  description context, so a `Description` dropped inside one throws rather than\n  degrading quietly. Per-option `description` text does go through `Field`,\n  which wires it properly — the distinction is real: a group description is\n  announced on entering the group, an option's on focusing that checkbox.\n\n  Both `aria-describedby` and `aria-invalid` are set **after** `...props` is\n  spread, and the describedby is merged with any the caller passes. Set before,\n  a caller's own `aria-describedby` would replace the error association with no\n  type error and no warning: a group rendering red text and reporting itself\n  valid.\n\n`variant=\"panel\"` draws the enclosing box for the long-list case. It\ndeliberately does not read `--roster-popover-*`: that family is for surfaces\nthat float over the page, and this one is in the flow, so it takes `Card`'s\n`soft` fill. Its border is two ramp steps heavier than that card's, and that\npart is not shared: a card's hairline separates content from the page, while\nthis one has to read as the wall a scroll region ends at.\n\n`maxHeight` is applied inline rather than as a class, because the useful values\nare arbitrary and a Tailwind class built from a prop is a class that does not\nexist at build time. A capped panel takes a tab stop of its own — Chrome and\nFirefox focus scrollers by themselves now, Safari does not, and a `disabled`\ngroup has no focusable option to tab to at all, so the region would be\nunscrollable from the keyboard.\n\n`errorMessage` repaints less here than it does on `Input` or `Select`, on\npurpose. `panel` gets an error border; `plain` has no boundary to repaint, so\nthe message is the whole error state. A checkbox is not the thing that is\ninvalid — the selection is — so nothing rings the individual controls.\n\n```tsx\n<CheckboxGroup\n  label=\"Select supported sports\"\n  helperText=\"You can always add more later.\"\n  variant=\"panel\"\n  columns={2}\n  maxHeight={240}\n  options={[\n    { category: \"Football\", options: [{ value: \"nfl\", label: \"NFL\" }] },\n    { category: \"Hockey\", options: [{ value: \"nhl\", label: \"NHL\" }] },\n  ]}\n  value={sports}\n  onChange={setSports}\n/>\n```\n\n`onChange` appends and filters rather than rebuilding the array from `options`.\nA rebuild sorts the result into declaration order, which reads tidier and\nsilently drops any selected value whose option has not loaded yet.\n\n### One answer, and when it should not be a menu\n\n`RadioGroup` is `CheckboxGroup`'s sibling and deliberately the same component\nwith one difference: `value` is a `string` and `onChange` receives a `string`,\nbecause a radio group has one answer. Label, per-option `description`, helper\ntext and error message are the same shape in both, so a form using both does\nnot read as two libraries.\n\nWhat it does not carry across is the point. There is no grouped form and no\n`maxHeight`:\n\n- **`RadioGroup`** when the options are few and the reader should see all of\n  them at once. Two to about six.\n- **`Select`** past that. A radio group with enough options to need scrolling\n  is a menu that forgot to close, and shipping a scroll cap here would invite\n  exactly that.\n\nBoth hold one value of the same type, so moving between them is a prop change\nrather than a rewrite.\n\n```tsx\n<RadioGroup\n  label=\"Who can see this squad\"\n  helperText=\"You can change this at any time.\"\n  value={visibility}\n  onChange={setVisibility}\n  options={[\n    { value: \"public\", label: \"Public\", description: \"Anyone can find and join it.\" },\n    { value: \"unlisted\", label: \"Unlisted\", description: \"Only people with the link.\" },\n    { value: \"private\", label: \"Private\", description: \"Invite only.\" },\n  ]}\n/>\n```\n\n`orientation=\"horizontal\"` lays the options out in a wrapping row, for the\nshort scannable set that would otherwise spend three rows of a wide form. It\nsets `aria-orientation` to match.\n\nEvery radio is a 44x44 target, and the component is built so that it stays one:\neach option's box is sized to contain its own target, which is why the options\ncan sit close together without a target ever reaching into its neighbor.\n\nThat containment is the option's own vertical padding, and `cn` is\ntailwind-merge, so it is the one thing `optionClassName` should leave alone. A\nbackground, a border, a radius and horizontal padding are all safe; a `py-*`,\na height, or a `min-h` below `44px` replaces the padding and lets the target\nescape the box. Lay the options out across with `orientation` rather than\nthrough `optionsClassName`, for the same reason: the horizontal spacing that\nkeeps two radios 44px apart rides on that prop.\n\n### Components that render links\n\n`Breadcrumbs` renders a plain `<a>` by default, which is right for a static\npage and wrong inside a router — every hop becomes a full page load. Pass your\nrouter's link component instead:\n\n```tsx\nimport NextLink from \"next/link\";\n\n<Breadcrumbs linkComponent={NextLink} items={items} />;\n```\n\nIn an app with React Server Components, do that from a client component.\n`linkComponent` is a function, and functions do not cross the RSC boundary —\npassing it from a server component fails the render with _Functions cannot be\npassed directly to Client Components_. A small `\"use client\"` wrapper binds it\nonce, and the pages that use the wrapper stay server-rendered.\n\n`LiquidNav` takes a `linkComponent` too, with a wider contract: each link\nreceives `href` and `to` with the same value, so React Router's `Link` works as\nwell as `next/link`, plus `className`, `children`, `aria-current`, `onClick` and\n`data-tab-id`, which it must forward to the DOM. The props type is exported as\n`LiquidNavLinkProps`. The same client-component rule applies.\n\n`Eyebrow` takes the other approach: `as` accepts any element and the props\nfollow it, so `<Eyebrow as=\"a\" href=\"/work\">` works, as does `as={NextLink}`.\n\n## Quick start\n\n```tsx\nimport { Button, Spinner } from \"@blakesteve/roster\";\n\nfunction App() {\n  return (\n    <div className=\"flex flex-col gap-4 p-4\">\n      <Button colorScheme=\"primary\" onClick={() => alert(\"Saved!\")}>\n        Save changes\n      </Button>\n\n      <Button colorScheme=\"error\" variant=\"outline\">\n        Delete account\n      </Button>\n\n      <Button isLoading>Processing…</Button>\n\n      <Spinner size=\"lg\" />\n    </div>\n  );\n}\n```\n\n## Component catalog\n\n### Atoms\n\n| Component            | Description                                                                                                  |\n| -------------------- | ------------------------------------------------------------------------------------------------------------ |\n| `Avatar`             | User avatar with image, initials fallback, and optional popover                                              |\n| `Badge`              | Status label with semantic color schemes and fill variants                                                   |\n| `Button`             | Primary interactive element: solid, soft, outline, ghost, link variants                                      |\n| `Card`               | Bordered surface container                                                                                   |\n| `Checkbox`           | Accessible checkbox with label support                                                                       |\n| `Combobox`           | A `Select` you can type into: filters as you type, same panel and size scale                                 |\n| `Chip`               | The interactive one of Badge / Pill / Chip: removable, selectable, or both                                   |\n| `Disclosure`         | Show/hide toggle using HeadlessUI                                                                            |\n| `Eyebrow`            | Small tracked-out uppercase label above a heading or beside a rule; polymorphic via `as`                     |\n| `InlineCode`         | Inline `<code>` for identifiers in running prose                                                             |\n| `Input`              | Text input with label, error state, icon slots, and a size scale matching `Button`                           |\n| `LabeledDivider`     | Horizontal rule carrying a label, with an optional trailing count                                            |\n| `Link`               | Styled anchor with variant support                                                                           |\n| `MultiSelect`        | A `Select` that holds more than one value: dismissible chips, same panel                                     |\n| `PasswordInput`      | Password field with a show/hide reveal toggle                                                                |\n| `Pill`               | Inline phrase chrome: social proof, live state, applied filters                                              |\n| `AvatarStrip`        | Stacked avatar row with overflow chip, dismiss button, trailing slot, and label area                         |\n| `CollapsibleSection` | Clamps any content (prose, chips, image grids) to a fixed height with a fade and expand/collapse toggle      |\n| `Select`             | Dropdown selector, on the same size scale as `Button` and `Input`                                            |\n| `SegmentBar`         | Proportional horizontal bar divided into colored segments with optional legend                               |\n| `Stat`               | A figure with its label and, optionally, its source; a valid `<dl>` group, or `semantics=\"standalone\"`       |\n| `Spinner`            | Loading indicator                                                                                            |\n| `Switch`             | Toggle switch; its label toggles it, and every size is a 44px target                                         |\n| `Textarea`           | Multi-line text input                                                                                        |\n| `ThemeToggle`        | Flips class-based dark mode on the document root and remembers the choice; labels and icons are configurable |\n| `Tooltip`            | Radix-powered tooltip: hover/focus on desktop, tap-to-toggle on mobile                                       |\n\n### Molecules\n\n| Component         | Description                                                                 |\n| ----------------- | --------------------------------------------------------------------------- |\n| `Accordion`       | Collapsible content sections (single or multi-expand)                       |\n| `Alert`           | Inline notice strip with optional title and dismiss                         |\n| `Breadcrumbs`     | Navigation trail; pass `linkComponent` to keep navigation client-side       |\n| `CheckboxGroup`   | Checkbox set reporting one `string[]`; groups, columns, scroll, error       |\n| `CallToAction`    | Prominent hero-style CTA block                                              |\n| `DescriptionList` | Label and value pairs as a real `<dl>`: inline, stacked, or split           |\n| `EmptyState`      | Zero-data placeholder with icon and action slot                             |\n| `ErrorState`      | Error display with retry action                                             |\n| `LiquidNav`       | `LiquidTabs`' strip as a `nav` of links; takes a router's link component    |\n| `LiquidTabs`      | Tab strip with a sliding pill; arrow keys, roving focus, 44px `lg` size     |\n| `MatchupCard`     | Head-to-head comparison card                                                |\n| `Pullquote`       | A line lifted out of prose, as `<figure>` + `<blockquote>` + `<figcaption>` |\n| `RadioGroup`      | Radio set reporting one `string`; descriptions, error, 44px targets         |\n| `Toast`           | Transient floating notice; `Toaster` + the imperative `toast` handle        |\n\n### Organisms\n\n| Component   | Description                                                                                                                                                        |\n| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| `ActionBar` | Sticky bottom action strip                                                                                                                                         |\n| `Countdown` | Live countdown timer                                                                                                                                               |\n| `DataTable` | Full-featured table with sorting and pagination via TanStack Table v9. Imported from `@blakesteve/roster/data-table` (see [DataTable columns](#datatable-columns)) |\n| `Dialog`    | Modal dialog                                                                                                                                                       |\n| `Footer`    | Site footer                                                                                                                                                        |\n| `Navbar`    | Responsive navigation bar with mobile slide-out                                                                                                                    |\n| `Sheet`     | Bottom sheet: drag, Escape or backdrop to dismiss; only its content scrolls; returns focus, even from a deep link                                                  |\n| `Table`     | Static data table                                                                                                                                                  |\n\n### DataTable columns\n\nTanStack Table v9 types column definitions against the feature set that built\nthe table. `DataTable` registers sorting and pagination and exports that set as\n`RosterTableFeatures`, so your columns name it:\n\n```tsx\nimport {\n  DataTable,\n  type RosterTableFeatures,\n} from \"@blakesteve/roster/data-table\";\nimport { createColumnHelper, type ColumnDef } from \"@tanstack/react-table\";\n\ntype Player = { name: string; points: number };\n\nconst columns: ColumnDef<RosterTableFeatures, Player>[] = [\n  { accessorKey: \"name\", header: \"Player\" },\n  { accessorKey: \"points\", header: \"Points\" },\n];\n\n// Or, to keep each column's value type:\nconst helper = createColumnHelper<RosterTableFeatures, Player>();\n```\n\nUpgrading from roster 2.x: `ColumnDef<Player, unknown>` becomes\n`ColumnDef<RosterTableFeatures, Player>`, and `DataTableProps` takes one type\nargument instead of two. A columns array is heterogeneous, so v9 types each\nentry's value as `unknown` and recovers the real type per column through\n`createColumnHelper`.\n\n### Server components\n\nThe `\"use client\"` directive sits on each module that needs it, not on the\npackage entry. A component carries it; a variant table, a token map and `cn` do\nnot. That is what lets a server component import `Button` from the root and get\na client reference for `Button` alone, rather than for all 105 exports.\n\nIt changed in 5.0.0, and the difference is worth knowing if you are upgrading.\nBefore, the entry itself carried the directive, so importing anything from the\nroot pulled the whole namespace across the boundary. Now only the name you\nimport crosses.\n\n```tsx\nimport { cn } from \"@blakesteve/roster/utils\";\n```\n\n`cn` is still worth importing from `/utils`, but no longer because the root\nversion breaks: the root resolves through a bare barrel to the same unstamped\nmodule and works in a server component. The subpath is the narrower import and\nthe one that can not be affected by a future change to the barrel.\n\n### Hooks\n\n| Hook             | Description                                                                     |\n| ---------------- | ------------------------------------------------------------------------------- |\n| `useCountdown`   | Countdown timer logic without the UI; `days` counts the whole remaining total   |\n| `useKeySequence` | Fires a callback when a sequence of keys is typed in order. Ships `KONAMI_CODE` |\n\n## Authoring components: the `rst:` prefix\n\nEvery class Roster emits carries an `rst:` prefix — `rst:flex`, `rst:bg-white`,\n`rst:dark:bg-gray-950`, `rst:group-data-[checked]:translate-x-5`. **Consumers do\nnot write the prefix and never see it.** It exists to stop a host app from\noverriding Roster by accident.\n\nRoster's stylesheet deliberately sits in a layer _below_ the host's `utilities`\nso a consumer's `className` can override a component. Without a prefix that also\nmeans the host wins any class-name _collision_ — including on Roster's own\ninternal elements, which the consumer never touches:\n\n- an app that used `bg-white` anywhere defeated the Textarea's\n  `dark:bg-gray-950`, rendering a white field on a dark page\n- an app that used `translate-x-0` defeated the Switch's\n  `group-data-[checked]:translate-x-5`, so the thumb never moved\n\nNeither app referenced those elements. Both bugs are invisible in this repo,\nbecause Storybook is the only consumer here and it cannot collide with itself.\n\nWhen adding or editing a component, write classes with the prefix. The codemod\nthat performed the original migration can also fix a file you forget:\n\n```bash\nnode scripts/prefix-classes.mjs src/components/atoms/Thing/Thing.tsx    # d","readmeFilename":"README.md"}