{"_id":"@astroapps/datagrid-aria","_rev":"7-bfd96a2f127954d6e587f7033ceff55f","name":"@astroapps/datagrid-aria","dist-tags":{"latest":"1.1.0"},"versions":{"0.1.0":{"name":"@astroapps/datagrid-aria","version":"0.1.0","keywords":["react","datagrid","tailwind","react-aria"],"author":{"name":"Astrolabe Enterprises"},"license":"ISC","_id":"@astroapps/datagrid-aria@0.1.0","maintainers":[{"name":"doolse","email":"doolse@gmail.com"},{"name":"connorz","email":"connorzhao97@gmail.com"},{"name":"instagibb","email":"instagibb@gmail.com"}],"homepage":"https://github.com/astrolabe-apps/astrolabe-common#readme","bugs":{"url":"https://github.com/astrolabe-apps/astrolabe-common/issues"},"dist":{"shasum":"285b67d1cc6f3a64c7e323e27b1d1790caadb94b","tarball":"https://registry.npmjs.org/@astroapps/datagrid-aria/-/datagrid-aria-0.1.0.tgz","fileCount":64,"integrity":"sha512-LbEXdbhD0TxqAPcgYVrDUauhzyxhbP4MMjnnvJAM6d0L/xQHSk1fJc9sKiK4L2zfY4LCn9dQ2KWxtkPpgAxPNQ==","signatures":[{"sig":"MEQCIFpMkrP6dqJNIlLvk6LZ5TXuPvUF8atNtVSs/M+C2OmXAiA1btSt/YwoRMSkpdrhKM60H+YfAL4njoRBVqIHPCWqdA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":677361},"main":"lib/index.cjs","type":"module","_from":"file:astroapps-datagrid-aria-0.1.0.tgz","types":"lib/index.d.ts","module":"lib/index.js","exports":{"types":"./lib/index.d.ts","default":"./lib/index.js","require":"./lib/index.cjs"},"gitHead":"26e9d16b61e1ac1aa0c3d73a662f0703174c7ead","scripts":{"test":"npm run typecheck && jest --coverage","build":"rimraf lib/ node_modules/.cache && microbundle -f modern,cjs --jsx React.createElement --jsxFragment React.Fragment","watch":"microbundle -f modern,cjs --no-compress --jsx React.createElement --jsxFragment React.Fragment","typecheck":"tsc --noEmit -p tsconfig.test.json"},"_npmUser":{"name":"doolse","email":"doolse@gmail.com"},"_resolved":"/tmp/aacd173107aed032e289622c877d2945/astroapps-datagrid-aria-0.1.0.tgz","_integrity":"sha512-LbEXdbhD0TxqAPcgYVrDUauhzyxhbP4MMjnnvJAM6d0L/xQHSk1fJc9sKiK4L2zfY4LCn9dQ2KWxtkPpgAxPNQ==","_npmVersion":"11.6.2","description":"Style @astroapps/datagrid with tailwind, using react-aria for the overlays","directories":{},"_nodeVersion":"24.11.1","dependencies":{"clsx":"^1 || ^2","tailwind-merge":"^3.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","react":"^18.2.0 || ^19","rimraf":"^3.0.2","ts-jest":"^29.2.5","prettier":"^3.0.3","babel-jest":"^29.7.0","typescript":"^5.6.2","@babel/core":"^7.26.0","microbundle":"^0.15.1","@types/react":"^18.2.37","@jest/globals":"^29.7.0","@astroapps/datagrid":"1.2.0","@babel/preset-react":"^7.25.9","react-aria-components":"^1.8.0","@astroapps/searchstate":"2.1.0","@testing-library/react":"^16.0.0","jest-environment-jsdom":"^29.7.0","@react-typed-forms/core":"^4.6.0","@babel/preset-typescript":"^7.26.0","@astroapps/datagrid-search":"0.2.0","@react-typed-forms/transform":"^0.4.0","@babel/plugin-transform-modules-commonjs":"^7.25.9"},"peerDependencies":{"react":"^18.2.0 || ^19","@astroapps/datagrid":"^1.2.0","react-aria-components":"^1.8.0","@astroapps/searchstate":"^2.1.0","@react-typed-forms/core":"^4.6.0","@astroapps/datagrid-search":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/datagrid-aria_0.1.0_1785995876012_0.5811735084334475","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@astroapps/datagrid-aria","version":"0.2.0","keywords":["react","datagrid","tailwind","react-aria"],"author":{"name":"Astrolabe Enterprises"},"license":"ISC","_id":"@astroapps/datagrid-aria@0.2.0","maintainers":[{"name":"doolse","email":"doolse@gmail.com"},{"name":"connorz","email":"connorzhao97@gmail.com"},{"name":"instagibb","email":"instagibb@gmail.com"}],"homepage":"https://github.com/astrolabe-apps/astrolabe-common#readme","bugs":{"url":"https://github.com/astrolabe-apps/astrolabe-common/issues"},"dist":{"shasum":"0e9be29c8167ea19c3f12069855d6a7d740b15a8","tarball":"https://registry.npmjs.org/@astroapps/datagrid-aria/-/datagrid-aria-0.2.0.tgz","fileCount":64,"integrity":"sha512-R9qlnlfvG/hWZc5lViNy51AL1mt2OHQoa7BkTGpB/OmOC13W/QC4PJ6+VHUeA1dR/fxtr3QiFFovG6RYFe6/+w==","signatures":[{"sig":"MEYCIQC4EUSYimx4drTzeGgEq07vUh4u3AHEpaTkixS8NfBuzQIhANth4T6qALDdWKntqefcebLwfOJiLYaUHSabg6l8beCy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":682684},"main":"lib/index.cjs","type":"module","_from":"file:astroapps-datagrid-aria-0.2.0.tgz","types":"lib/index.d.ts","module":"lib/index.js","exports":{"types":"./lib/index.d.ts","default":"./lib/index.js","require":"./lib/index.cjs"},"gitHead":"e75b4ff209f701521c96258aef969dc901edac45","scripts":{"test":"npm run typecheck && jest --coverage","build":"rimraf lib/ node_modules/.cache && microbundle -f modern,cjs --jsx React.createElement --jsxFragment React.Fragment","watch":"microbundle -f modern,cjs --no-compress --jsx React.createElement --jsxFragment React.Fragment","typecheck":"tsc --noEmit -p tsconfig.test.json"},"_npmUser":{"name":"doolse","email":"doolse@gmail.com"},"_resolved":"/tmp/56e1beaf2a3eb3070150ffbbf7541469/astroapps-datagrid-aria-0.2.0.tgz","_integrity":"sha512-R9qlnlfvG/hWZc5lViNy51AL1mt2OHQoa7BkTGpB/OmOC13W/QC4PJ6+VHUeA1dR/fxtr3QiFFovG6RYFe6/+w==","_npmVersion":"11.6.2","description":"Style @astroapps/datagrid with tailwind, using react-aria for the overlays","directories":{},"_nodeVersion":"24.11.1","dependencies":{"clsx":"^1 || ^2","tailwind-merge":"^3.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","react":"^18.2.0 || ^19","rimraf":"^3.0.2","ts-jest":"^29.2.5","prettier":"^3.0.3","babel-jest":"^29.7.0","typescript":"^5.6.2","@babel/core":"^7.26.0","microbundle":"^0.15.1","@types/react":"^18.2.37","@jest/globals":"^29.7.0","@astroapps/datagrid":"1.2.0","@babel/preset-react":"^7.25.9","react-aria-components":"^1.8.0","@astroapps/searchstate":"2.1.0","@testing-library/react":"^16.0.0","jest-environment-jsdom":"^29.7.0","@react-typed-forms/core":"^4.6.0","@babel/preset-typescript":"^7.26.0","@astroapps/datagrid-search":"0.2.0","@react-typed-forms/transform":"^0.4.0","@babel/plugin-transform-modules-commonjs":"^7.25.9"},"peerDependencies":{"react":"^18.2.0 || ^19","@astroapps/datagrid":"^1.2.0","react-aria-components":"^1.8.0","@astroapps/searchstate":"^2.1.0","@react-typed-forms/core":"^4.6.0","@astroapps/datagrid-search":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/datagrid-aria_0.2.0_1788393806133_0.9352549263818153","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@astroapps/datagrid-aria","version":"0.3.0","keywords":["react","datagrid","tailwind","react-aria"],"author":{"name":"Astrolabe Enterprises"},"license":"ISC","_id":"@astroapps/datagrid-aria@0.3.0","maintainers":[{"name":"doolse","email":"doolse@gmail.com"},{"name":"connorz","email":"connorzhao97@gmail.com"},{"name":"instagibb","email":"instagibb@gmail.com"}],"homepage":"https://github.com/astrolabe-apps/astrolabe-common#readme","bugs":{"url":"https://github.com/astrolabe-apps/astrolabe-common/issues"},"dist":{"shasum":"279af14728553f89d5e30dbccee179d65546ed05","tarball":"https://registry.npmjs.org/@astroapps/datagrid-aria/-/datagrid-aria-0.3.0.tgz","fileCount":64,"integrity":"sha512-SHQ8On8t2UFtu9PflKc/Yl4HIDgM13TdGj7fOWLL90HZXeqtU5VZaWljpM/+XUjzpOp3dl69QmITKcDSLPe0ag==","signatures":[{"sig":"MEQCIHGZtN9J37MVU2xxB0xTe+am41XsCdpiT/yl48vScAsZAiAltxR8WsgOeMoxOFtbX5yL6NU3FFeIB8ZK0YBjiNJJ6w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":700361},"main":"lib/index.cjs","type":"module","_from":"file:astroapps-datagrid-aria-0.3.0.tgz","types":"lib/index.d.ts","module":"lib/index.js","exports":{"types":"./lib/index.d.ts","default":"./lib/index.js","require":"./lib/index.cjs"},"gitHead":"f086278fa23bab53bab37166d032ce531cbdb046","scripts":{"test":"npm run typecheck && jest --coverage","build":"rimraf lib/ node_modules/.cache && microbundle -f modern,cjs --jsx React.createElement --jsxFragment React.Fragment","watch":"microbundle -f modern,cjs --no-compress --jsx React.createElement --jsxFragment React.Fragment","typecheck":"tsc --noEmit -p tsconfig.test.json"},"_npmUser":{"name":"doolse","email":"doolse@gmail.com"},"_resolved":"/tmp/6789f8a31b67b90d3a5d7a01922d2b10/astroapps-datagrid-aria-0.3.0.tgz","_integrity":"sha512-SHQ8On8t2UFtu9PflKc/Yl4HIDgM13TdGj7fOWLL90HZXeqtU5VZaWljpM/+XUjzpOp3dl69QmITKcDSLPe0ag==","_npmVersion":"11.6.2","description":"Style @astroapps/datagrid with tailwind, using react-aria for the overlays","directories":{},"_nodeVersion":"24.11.1","dependencies":{"clsx":"^1 || ^2","tailwind-merge":"^3.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","react":"^18.2.0 || ^19","rimraf":"^3.0.2","ts-jest":"^29.2.5","prettier":"^3.0.3","babel-jest":"^29.7.0","typescript":"^5.6.2","@babel/core":"^7.26.0","microbundle":"^0.15.1","@types/react":"^18.2.37","@jest/globals":"^29.7.0","@astroapps/datagrid":"1.3.0","@babel/preset-react":"^7.25.9","react-aria-components":"^1.8.0","@astroapps/searchstate":"2.1.0","@testing-library/react":"^16.0.0","jest-environment-jsdom":"^29.7.0","@react-typed-forms/core":"^4.6.0","@babel/preset-typescript":"^7.26.0","@astroapps/datagrid-search":"0.2.1","@react-typed-forms/transform":"^0.4.0","@babel/plugin-transform-modules-commonjs":"^7.25.9"},"peerDependencies":{"react":"^18.2.0 || ^19","@astroapps/datagrid":"^1.3.0","react-aria-components":"^1.8.0","@astroapps/searchstate":"^2.1.0","@react-typed-forms/core":"^4.6.0","@astroapps/datagrid-search":"^0.2.1"},"_npmOperationalInternal":{"tmp":"tmp/datagrid-aria_0.3.0_1788398234361_0.34070213539580196","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@astroapps/datagrid-aria","version":"0.4.0","keywords":["react","datagrid","tailwind","react-aria"],"author":{"name":"Astrolabe Enterprises"},"license":"ISC","_id":"@astroapps/datagrid-aria@0.4.0","maintainers":[{"name":"doolse","email":"doolse@gmail.com"},{"name":"connorz","email":"connorzhao97@gmail.com"},{"name":"instagibb","email":"instagibb@gmail.com"}],"homepage":"https://github.com/astrolabe-apps/astrolabe-common#readme","bugs":{"url":"https://github.com/astrolabe-apps/astrolabe-common/issues"},"dist":{"shasum":"342f8258d210567b467a2687951173da9127760e","tarball":"https://registry.npmjs.org/@astroapps/datagrid-aria/-/datagrid-aria-0.4.0.tgz","fileCount":64,"integrity":"sha512-dTTjAej2jNterBS0XTL3WhPStckUd3rJfIwSxZU/Q+ASsHDO/ojau6cPz1RIoYH+oqM9WPJOaHSHSYmWKHzhMw==","signatures":[{"sig":"MEQCIArAY2ON+reoIaDDpXyI5Kkj+JHnsIl6ghFVONlT3/CVAiARll0gNyelYxLNppuEuquNeEnRsbF1nb46qthU8dYheQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":733985},"main":"lib/index.cjs","type":"module","_from":"file:astroapps-datagrid-aria-0.4.0.tgz","types":"lib/index.d.ts","module":"lib/index.js","exports":{"types":"./lib/index.d.ts","default":"./lib/index.js","require":"./lib/index.cjs"},"gitHead":"027e98eb659b6d2b98c296ec934ee8782197dfed","scripts":{"test":"npm run typecheck && jest --coverage","build":"rimraf lib/ node_modules/.cache && microbundle -f modern,cjs --jsx React.createElement --jsxFragment React.Fragment","watch":"microbundle -f modern,cjs --no-compress --jsx React.createElement --jsxFragment React.Fragment","typecheck":"tsc --noEmit -p tsconfig.test.json"},"_npmUser":{"name":"doolse","email":"doolse@gmail.com"},"_resolved":"/tmp/c2240fb551dd0f8dd16d31a4c1808380/astroapps-datagrid-aria-0.4.0.tgz","_integrity":"sha512-dTTjAej2jNterBS0XTL3WhPStckUd3rJfIwSxZU/Q+ASsHDO/ojau6cPz1RIoYH+oqM9WPJOaHSHSYmWKHzhMw==","_npmVersion":"11.6.2","description":"Style @astroapps/datagrid with tailwind, using react-aria for the overlays","directories":{},"_nodeVersion":"24.11.1","dependencies":{"clsx":"^1 || ^2","tailwind-merge":"^3.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","react":"^18.2.0 || ^19","rimraf":"^3.0.2","ts-jest":"^29.2.5","prettier":"^3.0.3","babel-jest":"^29.7.0","typescript":"^5.6.2","@babel/core":"^7.26.0","microbundle":"^0.15.1","@types/react":"^18.2.37","@jest/globals":"^29.7.0","@astroapps/datagrid":"1.3.0","@babel/preset-react":"^7.25.9","react-aria-components":"^1.8.0","@astroapps/searchstate":"2.1.0","@testing-library/react":"^16.0.0","jest-environment-jsdom":"^29.7.0","@react-typed-forms/core":"^4.6.0","@babel/preset-typescript":"^7.26.0","@astroapps/datagrid-search":"0.3.0","@react-typed-forms/transform":"^0.4.0","@babel/plugin-transform-modules-commonjs":"^7.25.9"},"peerDependencies":{"react":"^18.2.0 || ^19","@astroapps/datagrid":"^1.3.0","react-aria-components":"^1.8.0","@astroapps/searchstate":"^2.1.0","@react-typed-forms/core":"^4.6.0","@astroapps/datagrid-search":"^0.3.0"},"_npmOperationalInternal":{"tmp":"tmp/datagrid-aria_0.4.0_1788421019124_0.562925770866521","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@astroapps/datagrid-aria","version":"0.5.0","keywords":["react","datagrid","tailwind","react-aria"],"author":{"name":"Astrolabe Enterprises"},"license":"ISC","_id":"@astroapps/datagrid-aria@0.5.0","maintainers":[{"name":"doolse","email":"doolse@gmail.com"},{"name":"connorz","email":"connorzhao97@gmail.com"},{"name":"instagibb","email":"instagibb@gmail.com"}],"homepage":"https://github.com/astrolabe-apps/astrolabe-common#readme","bugs":{"url":"https://github.com/astrolabe-apps/astrolabe-common/issues"},"dist":{"shasum":"885333f5f152c7d42b1af4df92f1c24429d8d4bd","tarball":"https://registry.npmjs.org/@astroapps/datagrid-aria/-/datagrid-aria-0.5.0.tgz","fileCount":64,"integrity":"sha512-ncJacgubPhr87d6Ie3eKFgskVcRgTnVLLoPJV0TrhotK6Hi+hNLaQyv3tkvh/154YgnBWsFrbMEZVZzui/lm2A==","signatures":[{"sig":"MEYCIQC3hMv/mQZcE7hCilpmW+kM0c9qIvzvXIRLRY7RWKW3/wIhAOYtG9lHuPaM6YpcJADy6P9olEwqVkvEW15assrYzR15","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":739470},"main":"lib/index.cjs","type":"module","_from":"file:astroapps-datagrid-aria-0.5.0.tgz","types":"lib/index.d.ts","module":"lib/index.js","exports":{"types":"./lib/index.d.ts","default":"./lib/index.js","require":"./lib/index.cjs"},"gitHead":"8be16434cce0a02ba331f889fa31eea8b55e7da0","scripts":{"test":"npm run typecheck && jest --coverage","build":"rimraf lib/ node_modules/.cache && microbundle -f modern,cjs --jsx React.createElement --jsxFragment React.Fragment","watch":"microbundle -f modern,cjs --no-compress --jsx React.createElement --jsxFragment React.Fragment","typecheck":"tsc --noEmit -p tsconfig.test.json"},"_npmUser":{"name":"doolse","email":"doolse@gmail.com"},"_resolved":"/tmp/1ec58e78691de307338ea428500c0774/astroapps-datagrid-aria-0.5.0.tgz","_integrity":"sha512-ncJacgubPhr87d6Ie3eKFgskVcRgTnVLLoPJV0TrhotK6Hi+hNLaQyv3tkvh/154YgnBWsFrbMEZVZzui/lm2A==","_npmVersion":"11.6.2","description":"Style @astroapps/datagrid with tailwind, using react-aria for the overlays","directories":{},"_nodeVersion":"24.11.1","dependencies":{"clsx":"^1 || ^2","tailwind-merge":"^3.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","react":"^18.2.0 || ^19","rimraf":"^3.0.2","ts-jest":"^29.2.5","prettier":"^3.0.3","babel-jest":"^29.7.0","typescript":"^5.6.2","@babel/core":"^7.26.0","microbundle":"^0.15.1","@types/react":"^18.2.37","@jest/globals":"^29.7.0","@astroapps/datagrid":"1.3.0","@babel/preset-react":"^7.25.9","react-aria-components":"^1.8.0","@astroapps/searchstate":"2.1.0","@testing-library/react":"^16.0.0","jest-environment-jsdom":"^29.7.0","@react-typed-forms/core":"^4.6.0","@babel/preset-typescript":"^7.26.0","@astroapps/datagrid-search":"0.3.0","@react-typed-forms/transform":"^0.4.0","@babel/plugin-transform-modules-commonjs":"^7.25.9"},"peerDependencies":{"react":"^18.2.0 || ^19","@astroapps/datagrid":"^1.3.0","react-aria-components":"^1.8.0","@astroapps/searchstate":"^2.1.0","@react-typed-forms/core":"^4.6.0","@astroapps/datagrid-search":"^0.3.0"},"_npmOperationalInternal":{"tmp":"tmp/datagrid-aria_0.5.0_1788751113549_0.09646324750151147","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@astroapps/datagrid-aria","version":"1.0.0","keywords":["react","datagrid","tailwind","react-aria"],"author":{"name":"Astrolabe Enterprises"},"license":"ISC","_id":"@astroapps/datagrid-aria@1.0.0","maintainers":[{"name":"doolse","email":"doolse@gmail.com"},{"name":"connorz","email":"connorzhao97@gmail.com"},{"name":"instagibb","email":"instagibb@gmail.com"}],"homepage":"https://github.com/astrolabe-apps/astrolabe-common#readme","bugs":{"url":"https://github.com/astrolabe-apps/astrolabe-common/issues"},"dist":{"shasum":"f0b2bd672fd745165937b1fe50d3b4ccfa01338b","tarball":"https://registry.npmjs.org/@astroapps/datagrid-aria/-/datagrid-aria-1.0.0.tgz","fileCount":81,"integrity":"sha512-C8m25PtA+haYKk4iTeYhUn7llH2gLOYGRWqwTE0bhoOT+TGy02Cx0hou3PyOf2O/G6k1lDHQmiwPGxpjI1FQtg==","signatures":[{"sig":"MEUCIQD91Z4x+xGSErGxbEXEjcoLBuLe2yXJLGkp8hDI23I/VgIgGZwAm1dCv+AmgKcmj0mhT7GKktCeK5BM7JqORuL/u7E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDa5s4gWvOR3uLp3CHQsNTDe9joIrslXBErijZ5n502FwIhAJ7Cv6PXi4+8qvirYDMl7XmW6ZTTGibAesSFeQhGGHC1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1036009},"main":"lib/index.cjs","type":"module","_from":"file:astroapps-datagrid-aria-1.0.0.tgz","types":"lib/index.d.ts","module":"lib/index.js","exports":{"types":"./lib/index.d.ts","default":"./lib/index.js","require":"./lib/index.cjs"},"gitHead":"53c623dc38a2e9ed167751ed99ea67f93c981bba","scripts":{"test":"npm run typecheck && jest --coverage","build":"rimraf lib/ node_modules/.cache && microbundle -f modern,cjs --jsx React.createElement --jsxFragment React.Fragment","watch":"microbundle -f modern,cjs --no-compress --jsx React.createElement --jsxFragment React.Fragment","typecheck":"tsc --noEmit -p tsconfig.test.json"},"_npmUser":{"name":"doolse","email":"doolse@gmail.com"},"_resolved":"/tmp/123f7575182baa63728b70f10a459e0a/astroapps-datagrid-aria-1.0.0.tgz","_integrity":"sha512-C8m25PtA+haYKk4iTeYhUn7llH2gLOYGRWqwTE0bhoOT+TGy02Cx0hou3PyOf2O/G6k1lDHQmiwPGxpjI1FQtg==","_npmVersion":"11.6.2","description":"Style @astroapps/datagrid with tailwind, using react-aria for the overlays","directories":{},"_nodeVersion":"24.11.1","dependencies":{"clsx":"^1 || ^2","tailwind-merge":"^3.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","react":"^18.2.0 || ^19","rimraf":"^3.0.2","ts-jest":"^29.2.5","prettier":"^3.0.3","babel-jest":"^29.7.0","typescript":"^5.6.2","@babel/core":"^7.26.0","microbundle":"^0.15.1","@types/react":"^18.2.37","@jest/globals":"^29.7.0","@babel/preset-env":"^7.26.0","@astroapps/datagrid":"1.3.0","@babel/preset-react":"^7.25.9","react-aria-components":"^1.8.0","@astroapps/searchstate":"2.1.0","@testing-library/react":"^16.0.0","jest-environment-jsdom":"^29.7.0","@react-typed-forms/core":"^5.0.0","@babel/preset-typescript":"^7.26.0","@astroapps/datagrid-search":"1.0.0","@react-typed-forms/transform":"^0.4.0","@babel/plugin-transform-modules-commonjs":"^7.25.9"},"peerDependencies":{"react":"^18.2.0 || ^19","@astroapps/datagrid":"^1.3.0","react-aria-components":"^1.8.0","@astroapps/searchstate":"^2.1.0","@react-typed-forms/core":"^5.0.0","@astroapps/datagrid-search":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/datagrid-aria_1.0.0_1790229946994_0.3674274901893486","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"_id":"@astroapps/datagrid-aria@1.1.0","bugs":{"url":"https://github.com/astrolabe-apps/astrolabe-common/issues"},"dist":{"shasum":"bbb59fe6e7b31c658d416d5c8f23b607f24da04c","tarball":"https://registry.npmjs.org/@astroapps/datagrid-aria/-/datagrid-aria-1.1.0.tgz","fileCount":81,"integrity":"sha512-ed/JGpWh53qumz6E0f/o5Mf+4G2Vdz9FeCw1Si4UBWmWlLiot4XFVWOM0v75Olc8M5TQ+C5URs5TJGD+apQmXw==","signatures":[{"sig":"MEQCIGM1mlOXNei90ujfz+aybL8/CCIj34hzY7PsLXN1zhTHAiBcNn60xj4TKKEwn5rEpQRsPA/bvUjvpeVf+rdlUgqMcw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCMduasXNTShQzMZsgmry0Fo/fmvgicdHyfMzPw+soHXQIgAn9DhfDtJ+Ov/xv4u8GEDAAvInf+sHUeQzG4G5b8c38="}],"unpackedSize":1047626},"main":"lib/index.cjs","name":"@astroapps/datagrid-aria","type":"module","_from":"file:astroapps-datagrid-aria-1.1.0.tgz","types":"lib/index.d.ts","author":{"name":"Astrolabe Enterprises"},"module":"lib/index.js","exports":{"types":"./lib/index.d.ts","default":"./lib/index.js","require":"./lib/index.cjs"},"gitHead":"77a11b2e17064f4749d481bbd90239414fbb986d","license":"ISC","scripts":{"test":"npm run typecheck && jest --coverage","build":"rimraf lib/ node_modules/.cache && microbundle -f modern,cjs --jsx React.createElement --jsxFragment React.Fragment","watch":"microbundle -f modern,cjs --no-compress --jsx React.createElement --jsxFragment React.Fragment","typecheck":"tsc --noEmit -p tsconfig.test.json"},"version":"1.1.0","_npmUser":{"name":"doolse","email":"doolse@gmail.com"},"homepage":"https://github.com/astrolabe-apps/astrolabe-common#readme","keywords":["react","datagrid","tailwind","react-aria"],"_resolved":"/tmp/23592d46b6a61ab698b4e06be971a4e6/astroapps-datagrid-aria-1.1.0.tgz","_integrity":"sha512-ed/JGpWh53qumz6E0f/o5Mf+4G2Vdz9FeCw1Si4UBWmWlLiot4XFVWOM0v75Olc8M5TQ+C5URs5TJGD+apQmXw==","_npmVersion":"11.6.2","description":"Style @astroapps/datagrid with tailwind, using react-aria for the overlays","directories":{},"maintainers":[{"name":"doolse","email":"doolse@gmail.com"},{"name":"connorz","email":"connorzhao97@gmail.com"},{"name":"instagibb","email":"instagibb@gmail.com"}],"_nodeVersion":"24.11.1","dependencies":{"clsx":"^1 || ^2","tailwind-merge":"^3.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","react":"^18.2.0 || ^19","rimraf":"^3.0.2","ts-jest":"^29.2.5","prettier":"^3.0.3","babel-jest":"^29.7.0","typescript":"^5.6.2","@babel/core":"^7.26.0","microbundle":"^0.15.1","@types/react":"^18.2.37","@jest/globals":"^29.7.0","@babel/preset-env":"^7.26.0","@astroapps/datagrid":"1.3.0","@babel/preset-react":"^7.25.9","react-aria-components":"^1.8.0","@astroapps/searchstate":"2.1.0","@testing-library/react":"^16.0.0","jest-environment-jsdom":"^29.7.0","@react-typed-forms/core":"^5.0.0","@babel/preset-typescript":"^7.26.0","@astroapps/datagrid-search":"1.1.0","@react-typed-forms/transform":"^0.4.0","@babel/plugin-transform-modules-commonjs":"^7.25.9"},"peerDependencies":{"react":"^18.2.0 || ^19","@astroapps/datagrid":"^1.3.0","react-aria-components":"^1.8.0","@astroapps/searchstate":"^2.1.0","@react-typed-forms/core":"^5.0.0","@astroapps/datagrid-search":"^1.1.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/datagrid-aria_1.1.0_1790564296348_0.9822672144336488"}}},"time":{"created":"2026-08-06T05:57:55.798Z","modified":"2026-09-28T02:58:16.672Z","0.1.0":"2026-08-06T05:57:56.173Z","0.2.0":"2026-09-03T00:03:26.297Z","0.3.0":"2026-09-03T01:17:14.535Z","0.4.0":"2026-09-03T07:36:59.301Z","0.5.0":"2026-09-07T03:18:33.736Z","1.0.0":"2026-09-24T06:05:47.088Z","1.1.0":"2026-09-28T02:58:16.454Z"},"bugs":{"url":"https://github.com/astrolabe-apps/astrolabe-common/issues"},"author":{"name":"Astrolabe Enterprises"},"license":"ISC","homepage":"https://github.com/astrolabe-apps/astrolabe-common#readme","keywords":["react","datagrid","tailwind","react-aria"],"description":"Style @astroapps/datagrid with tailwind, using react-aria for the overlays","maintainers":[{"name":"doolse","email":"doolse@gmail.com"},{"name":"connorz","email":"connorzhao97@gmail.com"},{"name":"instagibb","email":"instagibb@gmail.com"}],"readme":"# @astroapps/datagrid-aria\n\nStyles [`@astroapps/datagrid`](../astrolabe-datagrid) with tailwind classes and\nuses [react-aria-components](https://react-spectrum.adobe.com/react-aria/) for the\noverlays — the filter popover, its checkboxes and radios, the pager buttons.\n\nSibling to [`@astroapps/datagrid-fluent-ui`](../datagrid-fluent-ui), not a\nreplacement: same `GridSearch` in, a different look out. The searching — sort,\nfilter, paging, filter options, client vs server — belongs to\n[`@astroapps/datagrid-search`](../datagrid-search), as does row selection and the\nrules for which row clicks count and when a pager is worth showing. This package\nrenders what that gives it and adds no logic of its own.\n\n```bash\nnpm i @astroapps/datagrid-search @astroapps/datagrid-aria\n```\n\n## Two things to set up first\n\n**1. The astrolabe tailwind preset.** The default classes use `primary`,\n`secondary` and `surface`, so a project without those colours in its tailwind\ntheme gets a structurally correct but unstyled grid. Either use the preset, or\nretheme with [class overrides](#overriding-the-classes) — every colour this\npackage sets is overridable.\n\n**2. Tailwind has to scan the package.** Class names live in the shipped JS, and\ntailwind only generates CSS for classes it can see:\n\n```ts\n// tailwind.config.ts\ncontent: [\n  \"./src/**/*.{js,ts,jsx,tsx,mdx}\",\n  \"node_modules/@astroapps/datagrid-aria/lib/*.js\", // <-- this\n],\n```\n\nMiss this and the grid renders with the right class names and no CSS behind them.\n\n## A whole grid\n\n```tsx\nconst state = useControl<SearchRequest>({ ...defaultSearchOptions, length: 25 });\nconst data = useClientData(state, { rows, columns }); // or useServerData\nconst search = useGridSearch(state, { columns, data });\n\n<AriaDataGrid search={search} size=\"md\" rowKey={(r) => r.id} />;\n```\n\nThat's a sortable, filterable, paged grid. Everything it renders follows from the\nsearch rather than a flag:\n\n| Affordance       | Appears when                                                    |\n| ---------------- | --------------------------------------------------------------- |\n| Sort arrow       | the column has a `sortField`                                    |\n| Multi-sort badge | sort `mode` isn't `\"single\"` and more than one column is sorted |\n| Filter funnel    | the column's filter options resolve (see datagrid-search)       |\n| Pager            | there's a page before or after this one, or `pageSizes` is set  |\n| Selection column | a `selection` is passed                                         |\n\nSo a grid whose columns carry none of that renders as a plain table. Grid-wide\noff switches exist for the blunt cases: `sortable={false}`, `filterable={false}`,\n`pager={false}`.\n\n### Props beyond the search\n\n```tsx\n<AriaDataGrid\n  search={search}\n  size=\"md\" // \"md\" | \"sm\" | \"xs\"\n  rowKey={(r) => r.id}\n  selection={selection}\n  noData=\"Nothing here\"\n  pager // false to suppress, or a node to replace\n  pageSizes={[10, 25, 50]}\n  classes={{ headerCellClass: \"uppercase\" }}\n  icons={{ filter: <MyFunnel /> }}\n  renderFilterPopup={(props) => <MyBody {...props} />}\n  renderFilterControl={(column, search) => <MyInlineFilter />}\n  renderHeaderExtra={(column) => <ColumnInfo column={column} />}\n/>\n```\n\n`DataGridClasses` props (`className`, `cellClass`, …) also pass through directly\nand win over the defaults.\n\n## Overriding the classes\n\n`classes` takes any part of the grid and merges your utilities over the default\nwith [tailwind-merge](https://github.com/dcastil/tailwind-merge), so a conflicting\nutility *replaces* rather than fights:\n\n```tsx\n<AriaDataGrid\n  search={search}\n  classes={{\n    headerCellClass: \"bg-primary-700 text-white uppercase\",\n    row: \"[&:hover>*]:bg-interactive-50\",\n    popover: \"max-h-[28rem]\",\n  }}\n/>\n```\n\n`bg-primary-700` drops the default `bg-white` out of the string entirely. That\nmatters here because `@astroapps/datagrid` joins its class props with `clsx`, not\nGriffel's `mergeClasses` — left to the cascade, two background utilities would be\ndecided by stylesheet order rather than by which you passed.\n\n`ariaDataGridClasses()` returns the same thing outside a grid, for building cells\nor chrome that has to match:\n\n```tsx\nconst { gridClasses, parts } = ariaDataGridClasses({ size: \"sm\" });\n```\n\nIt's not a hook — no context, nothing memoised — so it's safe to call from a\nrender callback.\n\nStable `astro-AriaDataGrid__*` names sit on the grid and its cells too, for CSS\nescape hatches and for tests that need to find a cell.\n\n## Composing it yourself\n\nWhen you need to own the `<DataGrid>` call — extra header rows, a custom body\nwrapper — use the hook and spread its parts:\n\n```tsx\nconst bundle = useAriaDataGrid(search, { size, selection, rowKey });\n\n<DataGrid\n  {...bundle.gridProps}\n  columns={bundle.columns} // selection column already prepended\n  bodyRows={search.data.rowProps.bodyRows}\n  getBodyRow={search.data.rowProps.getBodyRow}\n/>;\n```\n\nSame shape as `useFluentDataGrid`, so a composed grid switches renderers by\nchanging one call. The pieces are exported individually as well —\n`ariaDataGridClasses`, `ariaHeaderContent`, `ariaRowWrapper`,\n`ariaSelectionColumn`, `AriaFilterPopover`, `FilterOptionList`, `AriaPager`,\n`GridCheckbox`.\n\n## Icons\n\nNo icon library: the sort arrows, funnel, chevrons, tick, search and spinner are\ninline SVGs that inherit `currentColor`. Swap any of them through `icons`, so an\napp that already ships FontAwesome doesn't have to accept a second visual\nlanguage in its headers:\n\n```tsx\n<AriaDataGrid\n  search={search}\n  icons={{\n    filter: <i className=\"fa-light fa-filter\" />,\n    sortAscending: <i className=\"fa-light fa-arrow-up\" />,\n  }}\n/>\n```\n\n## Why not build on @astroapps/aria-base?\n\nIt already wraps React Aria's `Popover`, `Button`, `Select`, `ListBox` and\n`Field`, so the question is a fair one. Three reasons:\n\n1. **It has no `Checkbox`** — the primitive this package most needs, and it needs\n   one that can be indeterminate, for the \"some of this page is selected\" header\n   state.\n2. **Its colours don't resolve under the astrolabe preset.** `Popover` uses\n   `text-neutral-700` and `ListBox` uses `border-neutral-300`; the preset\n   *replaces* `theme.colors` and has no `neutral` scale, so those are silently\n   dropped today. Building on it would inherit that. (Worth fixing there — it's a\n   real bug, just not this package's to fix.)\n3. **It's published with other consumers** (`aria-datepicker`, `schemas-*`), so\n   reshaping its popover to suit a grid has a wider blast radius than owning ~80\n   lines of popover markup here.\n\n## Selection\n\n**Page-scoped**: the header checkbox reflects and acts on the rows currently\nrendered, and never disturbs a selection made on another page.\n\n```tsx\nconst selectedIds = useControl<string[]>([]);\nconst selection = makeGridSelection({\n  selected: selectedIds,\n  rows: data.rows, // the current page\n  getId: (r) => r.id,\n});\n```\n\nSelected rows are painted, and clicking anywhere on a row toggles it —\n`selectOnRowClick={false}` leaves that to the checkbox. Clicks on interactive cell\ncontent (a link, a button, the checkbox) and the click that ends a text drag don't\ncount; see `shouldIgnoreRowClick` in datagrid-search.\n\n`makeGridSelection` is re-exported from datagrid-search for convenience, along\nwith `arraySelection` for plain state. Neither is a hook, despite taking a\ncontrol — they read `.value` when called, so call them during render.\n\n## Adding to a header\n\n`renderHeaderExtra` renders after the filter funnel, for anything a column wants\nin its header that sorting and filtering don't cover:\n\n```tsx\nrenderHeaderExtra={(column) =>\n  column.id === \"margin\" ? (\n    <InfoTip className=\"shrink-0\" text=\"Gross margin, ex-GST\" />\n  ) : undefined\n}\n```\n\nIt is a sibling of the sort button, not a child, so it can hold interactive\ncontent — nesting a button inside the sort button would be invalid HTML. The sort\nbutton is `w-full`, so give the extra `shrink-0` to keep a long title from\nsqueezing it out.\n\nTo wrap the *whole* cell instead — a tooltip covering the title, arrow and funnel\ntogether — use the column's own `renderHeader` from `@astroapps/datagrid`, going\nthrough `defaultRenderCell` so the cell keeps its grid placement.\n\n## Custom filter popups\n\nThree levels, most specific first:\n\n1. `getColumnFilter(column).render` — replaces one column's popup **body**,\n   keeping the standard funnel and the loading/error/empty shell.\n2. `renderFilterPopup` on the grid — the same, as the default for every column.\n3. `renderFilterControl` on the grid — replaces the funnel **and** popup, for a\n   column that wants an inline control instead.\n\nThe body receives `FilterPopupProps`, whose whole contract is a\n`Control<string[] | undefined>` for that column. `FilterOptionList` is exported so\na custom body can keep the standard list and just add a header.\n\nThe body is a separate component, and React Aria's `Popover` renders nothing while\nclosed — so an async option source is lazy for free: no request until the funnel\nis clicked, and none at all for a column nobody filters.\n\nTwo small departures from the Fluent renderer, both deliberate:\n\n- **The search box is a `TextField`, not a `SearchField`.** React Aria's\n  `SearchField` takes Escape for itself to clear the text, and in a popup Escape\n  is how you close. It also ships a clear button that appears with the first\n  keystroke, which would resize a shrink-to-fit popup as you type; the text is\n  discarded when the popup unmounts anyway.\n- **The page-size control is a native `<select>`.** React Aria's needs a popover\n  and a listbox to pick a number out of five, and the native element is already\n  keyboard- and screen-reader-correct.\n\n## Excel-mode filtering\n\n`filterMode` is a `useGridSearch` option, not a prop on this component — the\nfunnels read it off the search. Set it to `\"excel\"` and every filter popup opens\nwith each value ticked when the column is unfiltered, above a `(Select All)` row:\n\n```tsx\nconst search = useGridSearch(state, { columns, data, filterMode: \"excel\" });\n```\n\nApplying with everything ticked stores no filter at all, so the funnel goes back\nto idle; applying with nothing ticked is refused, and the Apply button is\ndisabled to say so. Clear re-ticks everything, which is the way back out of an\nempty selection. The rules, and why the empty selection can't be stored, are in\nthe datagrid-search README.\n\n`FilterOptionList` takes the row as a `selectAll` prop, so a custom popup body\ncan keep it:\n\n```tsx\n<FilterOptionList\n  options={options}\n  selected={values}\n  onToggle={draft.toggle}\n  selectAll={{ checked, indeterminate, onToggle }}\n/>\n```\n\n## Pager\n\nPrev/next over `offset`/`length` with an optional page-size selector, hidden when\neverything fits on one page — unless `pageSizes` is set, since that selector is\nthe only way back from a size that fits every row. Then it stays, with prev/next\ndisabled.\n\nIt copes with a source that doesn't count: without a total it shows `1-10` instead\nof `1-10 of 42`, and enables Next while the page comes back full. See `pageInfo`\nand `pagerVisible` in datagrid-search.\n\n## Finding rows and cells in tests\n\nThe grid is a single flat CSS grid: there's no `<table>`, and the row wrapper is\n`display: contents`, which takes it out of the accessibility tree — so neither\n`getByRole(\"row\")` nor DOM walking gets you a cell. Address them by data\nattribute instead:\n\n| Attribute        | Where                | Value                                      |\n| ---------------- | -------------------- | ------------------------------------------ |\n| `data-column`    | every cell           | the column's `id` (its `title` by default) |\n| `data-row-index` | body cells, rows     | 0-based index within the page              |\n| `data-row-key`   | row wrapper          | your `rowKey`, else the index              |\n\n```ts\n// By identity — survives sorting and paging, given a `rowKey`.\npage.locator('[data-row-key=\"42\"] [data-column=\"status\"]');\n// By position.\npage.locator('[data-row-index=\"2\"] [data-column=\"status\"]');\n// A whole column, header included.\npage.locator('[data-column=\"status\"]');\n// The header cell alone.\npage.locator('[data-column=\"status\"]:not([data-row-index])');\n```\n\n`data-row-key` needs a `rowKey`, which is worth passing anyway — React reorders\nrather than rebuilds rows on sort:\n\n```tsx\n<AriaDataGrid search={search} rowKey={(r) => r.id} />\n```\n\nSort buttons and filter funnels are reachable through the same attributes, and\neach funnel is named after its column — `Filter (Kind)`, or\n`Filter (Kind, filtered)` once something is applied:\n\n```ts\npage.locator('[data-column=\"status\"] button').first(); // the sort button\npage.getByLabel(\"Filter (Status)\");\n```\n\nRow checkboxes are labelled `\"Select row\"` by default, which makes every row's\ncheckbox identical to `getByLabelText`. Name the row instead:\n\n```tsx\n<AriaDataGrid\n  search={search}\n  selection={selection}\n  selectionColumn={{ rowAriaLabel: (r) => `Select ${r.name}` }}\n/>\n```\n\n## Testing\n\nTests run through babel rather than ts-jest, so the\n`@react-typed-forms/transform` control-tracking plugin applies — which is what\nmakes components that call `useControl` (the filter popup body, chiefly)\nrenderable at all in a test. `npm test` type-checks first, since babel strips\ntypes without checking them. See `babel.jest.cjs` for the details, and\n`jest.setup.js` for the jsdom shims React Aria's overlays need.\n\n## Demo\n\n`sites/formServer/src/app/ariagrid` renders this grid and the Fluent one over the\n*same* `GridSearch`, so anything that differs between the two is the renderer's\ndoing.\n","readmeFilename":"README.md"}