{"_id":"@ahmetilhn/hanui","_rev":"34-679e7250ad1ac0ee098f23a46123c77d","name":"@ahmetilhn/hanui","dist-tags":{"latest":"4.1.0"},"versions":{"1.0.1":{"name":"@ahmetilhn/hanui","version":"1.0.1","keywords":["react","ui","component-library","design-system","scss","css-modules","accessible","a11y","wcag","dark-mode","theming","design-tokens","typescript","headless","modal","combobox","bottom-sheet","data-table"],"author":{"name":"Ahmet ilhan","email":"ahmetilhan.dev@gmail.com"},"license":"MIT","_id":"@ahmetilhn/hanui@1.0.1","maintainers":[{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"}],"homepage":"https://github.com/ahmetilhn/hanui#readme","bugs":{"url":"https://github.com/ahmetilhn/hanui/issues"},"dist":{"shasum":"e5e32abcad5e360cd9e90706bf0f99ce7258e27d","tarball":"https://registry.npmjs.org/@ahmetilhn/hanui/-/hanui-1.0.1.tgz","fileCount":9,"integrity":"sha512-/6OLiHCjuLE8FgSIfPvDMSy3x3XxoESZwDkBbeQDaBeU4cghu4u/DWOCQr6vPbPP2GDMcTykItGrKw1qb+0X+Q==","signatures":[{"sig":"MEYCIQDYsxx5fUWqBFTB9Kl1c3oTxKt00nNgQYByVuqHyU+i9gIhAIlIDOjwV7KHQISD3D4wWK5YsW/a0e4KsYHzyFDecQJf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":983681},"main":"./build/index.cjs","type":"module","types":"./build/index.d.ts","module":"./build/index.js","engines":{"node":">=24"},"exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.cjs"},"./styles.css":"./build/styles.css","./package.json":"./package.json"},"gitHead":"8572ce498b189c1ebf95b0975ed9a682a13023fe","private":false,"scripts":{"dev":"npm run tokens && vite build --watch","lint":"eslint src","test":"jest","build":"npm run tokens && vite build","format":"prettier --write \"src/**/*.{ts,tsx,scss}\"","tokens":"node scripts/build-tokens.mjs","verify":"npm run tokens && npm run typecheck && npm run lint && npm run test && vite build","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,scss}\""},"_npmUser":{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"},"publisher":"Ahmet ilhan","repository":{"url":"git+https://github.com/ahmetilhn/hanui.git","type":"git"},"_npmVersion":"11.16.0","description":"Accessible, theme-driven React component library built on SCSS Modules. Zero runtime UI dependencies, two built-in themes and a fully overridable design-token contract.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","sass":"^1.83.4","vite":"^5.4.11","react":"^19.0.0","eslint":"^9.18.0","ts-jest":"^29.2.5","prettier":"^3.4.2","react-dom":"^19.0.0","@eslint/js":"^9.18.0","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.10.7","@types/react":"^19.0.7","vite-plugin-dts":"^4.5.0","@types/react-dom":"^19.0.3","eslint-plugin-react":"^7.37.4","@ahmetilhn/handy-utils":"^3.2.8","@testing-library/react":"^16.3.2","eslint-config-prettier":"^9.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.20.0","eslint-plugin-react-hooks":"^5.1.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^8.20.0"},"peerDependencies":{"react":">=18","react-dom":">=18","@ahmetilhn/handy-utils":">=3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hanui_1.0.1_1785768672441_0.399859775203548","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@ahmetilhn/hanui","version":"1.0.2","keywords":["react","ui","component-library","design-system","scss","css-modules","accessible","a11y","wcag","dark-mode","theming","design-tokens","typescript","headless","modal","combobox","bottom-sheet","data-table"],"author":{"name":"Ahmet ilhan","email":"ahmetilhan.dev@gmail.com"},"license":"MIT","_id":"@ahmetilhn/hanui@1.0.2","maintainers":[{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"}],"homepage":"https://github.com/ahmetilhn/hanui#readme","bugs":{"url":"https://github.com/ahmetilhn/hanui/issues"},"dist":{"shasum":"0adc2c800f71a0f8759ac834df4de94db9d169e8","tarball":"https://registry.npmjs.org/@ahmetilhn/hanui/-/hanui-1.0.2.tgz","fileCount":9,"integrity":"sha512-TqzRkG1pL0mlVQWyZe8HZwpFSadv7oiedJIgg6eMkR8EgfbtT+Qs26kDr+Vm2XbIEkLxsLDr4yx+GEICoO9Z2g==","signatures":[{"sig":"MEUCIFVweAr9953V/5+n29dG0gulQgZ1+tLzLllHfUmGVO0FAiEA3ed1MQ2zTcqF143SX9dROlt3JWT+2ZTb8gtDxxrc0wo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":983681},"main":"./build/index.cjs","type":"module","types":"./build/index.d.ts","module":"./build/index.js","engines":{"node":">=24"},"exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.cjs"},"./styles.css":"./build/styles.css","./package.json":"./package.json"},"gitHead":"b81a87f8af80d12254f9617867947262bc07bedb","private":false,"scripts":{"dev":"npm run tokens && vite build --watch","lint":"eslint src","test":"jest","build":"npm run tokens && vite build","format":"prettier --write \"src/**/*.{ts,tsx,scss}\"","tokens":"node scripts/build-tokens.mjs","verify":"npm run tokens && npm run typecheck && npm run lint && npm run test && vite build","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,scss}\""},"_npmUser":{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"},"publisher":"Ahmet ilhan","repository":{"url":"git+https://github.com/ahmetilhn/hanui.git","type":"git"},"_npmVersion":"11.16.0","description":"Accessible, theme-driven React component library built on SCSS Modules. Zero runtime UI dependencies, two built-in themes and a fully overridable design-token contract.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","sass":"^1.83.4","vite":"^5.4.11","react":"^19.0.0","eslint":"^9.18.0","ts-jest":"^29.2.5","prettier":"^3.4.2","react-dom":"^19.0.0","@eslint/js":"^9.18.0","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.10.7","@types/react":"^19.0.7","vite-plugin-dts":"^4.5.0","@types/react-dom":"^19.0.3","eslint-plugin-react":"^7.37.4","@ahmetilhn/handy-utils":"^3.2.8","@testing-library/react":"^16.3.2","eslint-config-prettier":"^9.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.20.0","eslint-plugin-react-hooks":"^5.1.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^8.20.0"},"peerDependencies":{"react":">=18","react-dom":">=18","@ahmetilhn/handy-utils":">=3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hanui_1.0.2_1785768808874_0.6293379611323924","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@ahmetilhn/hanui","version":"1.1.0","keywords":["react","ui","component-library","design-system","scss","css-modules","accessible","a11y","wcag","dark-mode","theming","design-tokens","typescript","headless","modal","combobox","bottom-sheet","data-table"],"author":{"name":"Ahmet ilhan","email":"ahmetilhan.dev@gmail.com"},"license":"MIT","_id":"@ahmetilhn/hanui@1.1.0","maintainers":[{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"}],"homepage":"https://github.com/ahmetilhn/hanui#readme","bugs":{"url":"https://github.com/ahmetilhn/hanui/issues"},"dist":{"shasum":"0ebdb0f49fa4b71880462fb6814b0a5eb0f240f5","tarball":"https://registry.npmjs.org/@ahmetilhn/hanui/-/hanui-1.1.0.tgz","fileCount":9,"integrity":"sha512-NIZOAxcm3H+RH1c+4ThQOldsYTUiI2qaXs+yguM1vlGaufNd+lNeLuJy30yaGBEcOvOJAoc4B8nmGX8ONrjigw==","signatures":[{"sig":"MEQCIEp5eCRg+DJMVPzvEqB5t2poTG2oCgp5pUfrRIKrSVJsAiANqp3mog6oYfJmYMuz8MPksfeF8+Du3t6WT41k0bP4EQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1035942},"main":"./build/index.cjs","type":"module","types":"./build/index.d.ts","module":"./build/index.js","engines":{"node":">=24"},"exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.cjs"},"./styles.css":"./build/styles.css","./package.json":"./package.json"},"gitHead":"a2190d89a7fbf90344a31d43b18e7b1a0a8998b1","private":false,"scripts":{"dev":"npm run tokens && vite build --watch","lint":"eslint src","test":"jest","build":"npm run tokens && vite build","format":"prettier --write \"src/**/*.{ts,tsx,scss}\"","tokens":"node scripts/build-tokens.mjs","verify":"npm run tokens && npm run typecheck && npm run lint && npm run test && vite build","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,scss}\""},"_npmUser":{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"},"publisher":"Ahmet ilhan","repository":{"url":"git+https://github.com/ahmetilhn/hanui.git","type":"git"},"_npmVersion":"11.16.0","description":"Accessible, theme-driven React component library built on SCSS Modules. Zero runtime UI dependencies, two built-in themes and a fully overridable design-token contract.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","sass":"^1.83.4","vite":"^5.4.11","react":"^19.0.0","eslint":"^9.18.0","ts-jest":"^29.2.5","prettier":"^3.4.2","react-dom":"^19.0.0","@eslint/js":"^9.18.0","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.10.7","@types/react":"^19.0.7","vite-plugin-dts":"^4.5.0","@types/react-dom":"^19.0.3","eslint-plugin-react":"^7.37.4","@ahmetilhn/handy-utils":"^3.2.8","@testing-library/react":"^16.3.2","eslint-config-prettier":"^9.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.20.0","eslint-plugin-react-hooks":"^5.1.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^8.20.0"},"peerDependencies":{"react":">=18","react-dom":">=18","@ahmetilhn/handy-utils":">=3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hanui_1.1.0_1785771126472_0.2160241096435127","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@ahmetilhn/hanui","version":"1.1.1","keywords":["react","ui","component-library","design-system","scss","css-modules","accessible","a11y","wcag","dark-mode","theming","design-tokens","typescript","headless","modal","combobox","bottom-sheet","data-table"],"author":{"name":"Ahmet ilhan","email":"ahmetilhan.dev@gmail.com"},"license":"MIT","_id":"@ahmetilhn/hanui@1.1.1","maintainers":[{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"}],"homepage":"https://github.com/ahmetilhn/hanui#readme","bugs":{"url":"https://github.com/ahmetilhn/hanui/issues"},"dist":{"shasum":"c62fce88b2cab638f32b27807e9fb2cf86bfcaf2","tarball":"https://registry.npmjs.org/@ahmetilhn/hanui/-/hanui-1.1.1.tgz","fileCount":9,"integrity":"sha512-/vzroDKZiAwHAOzH4JHMPHu2S0aFHZur6Me6NlKGNTGwso+3t8AG2XHmEvcf77mNrhlHlXEic7Q9/iVFkv5JRg==","signatures":[{"sig":"MEUCIBQRFshqEZxzDEIcf5CvlueVPANJFOQVRi1orkPBGk1NAiEApDDR9AQivosU57XxRT0HI9KDhZIyJnHtcuIzhVKRl4o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1035942},"main":"./build/index.cjs","type":"module","types":"./build/index.d.ts","module":"./build/index.js","engines":{"node":">=24"},"exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.cjs"},"./styles.css":"./build/styles.css","./package.json":"./package.json"},"gitHead":"e31569ed9c2e290daa66fce32a4cdf6727c512e9","private":false,"scripts":{"dev":"npm run tokens && vite build --watch","lint":"eslint src","test":"jest","build":"npm run tokens && vite build","format":"prettier --write \"src/**/*.{ts,tsx,scss}\"","tokens":"node scripts/build-tokens.mjs","verify":"npm run tokens && npm run typecheck && npm run lint && npm run test && vite build","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,scss}\""},"_npmUser":{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"},"publisher":"Ahmet ilhan","repository":{"url":"git+https://github.com/ahmetilhn/hanui.git","type":"git"},"_npmVersion":"11.16.0","description":"Accessible, theme-driven React component library built on SCSS Modules. Zero runtime UI dependencies, two built-in themes and a fully overridable design-token contract.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","sass":"^1.83.4","vite":"^5.4.11","react":"^19.0.0","eslint":"^9.18.0","ts-jest":"^29.2.5","prettier":"^3.4.2","react-dom":"^19.0.0","@eslint/js":"^9.18.0","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.10.7","@types/react":"^19.0.7","vite-plugin-dts":"^4.5.0","@types/react-dom":"^19.0.3","eslint-plugin-react":"^7.37.4","@ahmetilhn/handy-utils":"^3.2.8","@testing-library/react":"^16.3.2","eslint-config-prettier":"^9.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.20.0","eslint-plugin-react-hooks":"^5.1.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^8.20.0"},"peerDependencies":{"react":">=18","react-dom":">=18","@ahmetilhn/handy-utils":">=3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hanui_1.1.1_1785771743379_0.014526770693612301","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@ahmetilhn/hanui","version":"1.2.0","keywords":["react","ui","component-library","design-system","scss","css-modules","accessible","a11y","wcag","dark-mode","theming","design-tokens","typescript","headless","modal","combobox","bottom-sheet","data-table"],"author":{"name":"Ahmet ilhan","email":"ahmetilhan.dev@gmail.com"},"license":"MIT","_id":"@ahmetilhn/hanui@1.2.0","maintainers":[{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"}],"homepage":"https://github.com/ahmetilhn/hanui#readme","bugs":{"url":"https://github.com/ahmetilhn/hanui/issues"},"dist":{"shasum":"1a759507900af902e302750ed96b213b9226fbbd","tarball":"https://registry.npmjs.org/@ahmetilhn/hanui/-/hanui-1.2.0.tgz","fileCount":9,"integrity":"sha512-LgUBMokr9+t/EPCx2tLs4ov3RkVgppQ4mLVdmRh2/SLuq2D/1IndYGQH0u13SLzaojYcr61ICWAC2lOQU9t33A==","signatures":[{"sig":"MEUCIQCZ3nfLE8EKt+eh4AyTI1sOJkzlDryiUC9U2HdNbIrqNQIgB8i7PW9E6MtuKn/PzzFDdldAN7KPDY/KMIcxx5XLtvw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1008344},"main":"./build/index.cjs","type":"module","types":"./build/index.d.ts","module":"./build/index.js","engines":{"node":">=24"},"exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.cjs"},"./styles.css":"./build/styles.css","./package.json":"./package.json"},"gitHead":"2cc50b8ae736a316b821086374fd55a623737c18","private":false,"scripts":{"dev":"npm run tokens && vite build --watch","lint":"eslint src","test":"jest","build":"npm run tokens && vite build","format":"prettier --write \"src/**/*.{ts,tsx,scss}\"","tokens":"node scripts/build-tokens.mjs","verify":"npm run tokens && npm run typecheck && npm run lint && npm run test && vite build","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,scss}\""},"_npmUser":{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"},"publisher":"Ahmet ilhan","repository":{"url":"git+https://github.com/ahmetilhn/hanui.git","type":"git"},"_npmVersion":"11.16.0","description":"Accessible, theme-driven React component library built on SCSS Modules. Bootstrap Icons for shell iconography, two built-in themes and a fully overridable design-token contract.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","sass":"^1.83.4","vite":"^5.4.11","react":"^19.0.0","eslint":"^9.18.0","ts-jest":"^29.2.5","prettier":"^3.4.2","react-dom":"^19.0.0","@eslint/js":"^9.18.0","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.10.7","@types/react":"^19.0.7","vite-plugin-dts":"^4.5.0","@types/react-dom":"^19.0.3","eslint-plugin-react":"^7.37.4","react-bootstrap-icons":"^1.11.6","@ahmetilhn/handy-utils":"^3.2.8","@testing-library/react":"^16.3.2","eslint-config-prettier":"^9.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.20.0","eslint-plugin-react-hooks":"^5.1.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^8.20.0"},"peerDependencies":{"react":">=18","react-dom":">=18","react-bootstrap-icons":">=1.11.0","@ahmetilhn/handy-utils":">=3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hanui_1.2.0_1785774640168_0.4255485001439896","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@ahmetilhn/hanui","version":"2.0.0","keywords":["react","ui","component-library","design-system","scss","css-modules","accessible","a11y","wcag","dark-mode","theming","design-tokens","typescript","headless","modal","combobox","bottom-sheet","data-table"],"author":{"name":"Ahmet ilhan","email":"ahmetilhan.dev@gmail.com"},"license":"MIT","_id":"@ahmetilhn/hanui@2.0.0","maintainers":[{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"}],"homepage":"https://github.com/ahmetilhn/hanui#readme","bugs":{"url":"https://github.com/ahmetilhn/hanui/issues"},"dist":{"shasum":"d9b61d6a6ec64634b7d3eb8e1b116a86dd4aa0f8","tarball":"https://registry.npmjs.org/@ahmetilhn/hanui/-/hanui-2.0.0.tgz","fileCount":9,"integrity":"sha512-vIJy5nuBFcNlnQjrQxdI6Ygm84LYfV8vEeIn2jsSWjDcpT1KnOjhlS88mwQX8xzAKJp+cHp3DCSYlT/7ta8nFg==","signatures":[{"sig":"MEUCICfMdhwUlCktJxwVsWJ2bUBOVxg35HMSQ8ESUGnV8WlTAiEAtIw4NAc/BSVuFI+kNLg0eVmvbPIskFBsBofN/OnytzE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1726129},"main":"./build/index.cjs","type":"module","types":"./build/index.d.ts","module":"./build/index.js","engines":{"node":">=24"},"exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.cjs"},"./styles.css":"./build/styles.css","./package.json":"./package.json"},"gitHead":"4526e06b7f0886ffb773e5f38fa019d10c679357","private":false,"scripts":{"dev":"npm run tokens && vite build --watch","lint":"eslint src && stylelint \"src/**/*.scss\"","size":"npm run build && size-limit","test":"jest","build":"npm run tokens && vite build","format":"prettier --write \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"e2e/**/*.ts\"","tokens":"node scripts/build-tokens.mjs","verify":"npm run tokens && npm run check:contrast && npm run typecheck && npm run lint && npm run test:coverage && npm run build && size-limit","typecheck":"tsc --noEmit","playground":"vite --config playground/vite.config.ts","test:watch":"jest --watch","test:visual":"playwright test","format:check":"prettier --check \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"e2e/**/*.ts\"","test:coverage":"jest --coverage","check:contrast":"node scripts/check-contrast.mjs","playground:build":"npm run tokens && vite build --config playground/vite.config.ts"},"_npmUser":{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"},"publisher":"Ahmet ilhan","repository":{"url":"git+https://github.com/ahmetilhn/hanui.git","type":"git"},"_npmVersion":"11.16.0","description":"Accessible, theme-driven React component library built on SCSS Modules. Bootstrap Icons for shell iconography, two built-in themes and a fully overridable design-token contract.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","sass":"^1.83.4","vite":"^5.4.11","react":"^19.0.0","eslint":"^9.18.0","ts-jest":"^29.2.5","jest-axe":"^11.0.0","prettier":"^3.4.2","react-dom":"^19.0.0","stylelint":"^17.14.1","@eslint/js":"^9.18.0","size-limit":"^13.0.3","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.10.7","@types/react":"^19.0.7","@types/jest-axe":"^3.5.9","vite-plugin-dts":"^4.5.0","@playwright/test":"^1.62.1","@types/react-dom":"^19.0.3","eslint-plugin-react":"^7.37.4","react-bootstrap-icons":"^1.11.6","@ahmetilhn/handy-utils":"^3.2.8","@testing-library/react":"^16.3.2","eslint-config-prettier":"^9.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.20.0","eslint-plugin-react-hooks":"^5.1.0","@testing-library/user-event":"^14.6.1","@size-limit/preset-small-lib":"^13.0.3","stylelint-config-standard-scss":"^17.0.0","@typescript-eslint/eslint-plugin":"^8.20.0"},"peerDependencies":{"react":">=18","react-dom":">=18","react-bootstrap-icons":">=1.11.0","@ahmetilhn/handy-utils":">=3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hanui_2.0.0_1785788875904_0.9593466345635653","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@ahmetilhn/hanui","version":"2.0.1","keywords":["react","ui","component-library","design-system","scss","css-modules","accessible","a11y","wcag","dark-mode","theming","design-tokens","typescript","headless","modal","combobox","bottom-sheet","data-table"],"author":{"name":"Ahmet ilhan","email":"ahmetilhan.dev@gmail.com"},"license":"MIT","_id":"@ahmetilhn/hanui@2.0.1","maintainers":[{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"}],"homepage":"https://github.com/ahmetilhn/hanui#readme","bugs":{"url":"https://github.com/ahmetilhn/hanui/issues"},"dist":{"shasum":"6b8faf1c6ebd9d19f5772c071f49899fe9226dbf","tarball":"https://registry.npmjs.org/@ahmetilhn/hanui/-/hanui-2.0.1.tgz","fileCount":9,"integrity":"sha512-Myaf5x9SuvOS6/zw88qo81en+RHO/sH7SLYQfCrJRyL7mZm8wnCCq8Yuvkrm+cRNwbg7qCfb51L4BqMJrocWGA==","signatures":[{"sig":"MEUCIFRXOktTNHY7n89EZaXHSfqnzt0kLAgWXZ2mqeFsu9FRAiEAhMkoC01mfDOnUIg6AQ1LMV3Q4N0x4MWNXAWEgyoaoQQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1798558},"main":"./build/index.cjs","type":"module","types":"./build/index.d.ts","module":"./build/index.js","engines":{"node":">=24"},"exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.cjs"},"./styles.css":"./build/styles.css","./package.json":"./package.json"},"gitHead":"823b0e33f49209f38b0b2cea98ca9cf2fefdbe18","private":false,"scripts":{"dev":"npm run tokens && vite build --watch","lint":"eslint src && stylelint \"src/**/*.scss\"","size":"npm run build && size-limit","test":"jest","build":"npm run tokens && vite build","format":"prettier --write \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"e2e/**/*.ts\"","tokens":"node scripts/build-tokens.mjs","verify":"npm run tokens && npm run check:contrast && npm run typecheck && npm run lint && npm run test:coverage && npm run build && size-limit","typecheck":"tsc --noEmit","playground":"vite --config playground/vite.config.ts","test:watch":"jest --watch","test:visual":"playwright test","format:check":"prettier --check \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"e2e/**/*.ts\"","test:coverage":"jest --coverage","check:contrast":"node scripts/check-contrast.mjs","playground:build":"npm run tokens && vite build --config playground/vite.config.ts"},"_npmUser":{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"},"publisher":"Ahmet ilhan","repository":{"url":"git+https://github.com/ahmetilhn/hanui.git","type":"git"},"_npmVersion":"11.16.0","description":"Accessible, theme-driven React component library built on SCSS Modules. Bootstrap Icons for shell iconography, two built-in themes and a fully overridable design-token contract.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","sass":"^1.83.4","vite":"^5.4.11","react":"^19.0.0","eslint":"^9.18.0","ts-jest":"^29.2.5","jest-axe":"^11.0.0","prettier":"^3.4.2","react-dom":"^19.0.0","stylelint":"^17.14.1","@eslint/js":"^9.18.0","size-limit":"^13.0.3","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.10.7","@types/react":"^19.0.7","@types/jest-axe":"^3.5.9","vite-plugin-dts":"^4.5.0","@playwright/test":"^1.62.1","@types/react-dom":"^19.0.3","eslint-plugin-react":"^7.37.4","react-bootstrap-icons":"^1.11.6","@ahmetilhn/handy-utils":"^3.2.8","@testing-library/react":"^16.3.2","eslint-config-prettier":"^9.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.20.0","eslint-plugin-react-hooks":"^5.1.0","@testing-library/user-event":"^14.6.1","@size-limit/preset-small-lib":"^13.0.3","stylelint-config-standard-scss":"^17.0.0","@typescript-eslint/eslint-plugin":"^8.20.0"},"peerDependencies":{"react":">=18","react-dom":">=18","react-bootstrap-icons":">=1.11.0","@ahmetilhn/handy-utils":">=3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hanui_2.0.1_1785791373247_0.06874268463681066","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@ahmetilhn/hanui","version":"2.0.2","keywords":["react","ui","component-library","design-system","scss","css-modules","accessible","a11y","wcag","dark-mode","theming","design-tokens","typescript","headless","modal","combobox","bottom-sheet","data-table"],"author":{"name":"Ahmet ilhan","email":"ahmetilhan.dev@gmail.com"},"license":"MIT","_id":"@ahmetilhn/hanui@2.0.2","maintainers":[{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"}],"homepage":"https://github.com/ahmetilhn/hanui#readme","bugs":{"url":"https://github.com/ahmetilhn/hanui/issues"},"dist":{"shasum":"586df0c10c931dde0c3a86eee0b2aaa2ebfc3351","tarball":"https://registry.npmjs.org/@ahmetilhn/hanui/-/hanui-2.0.2.tgz","fileCount":9,"integrity":"sha512-gAfWJ0656N4OhYKFPJAVGbQvYjv/BCz+rXHkDzYHU+1C+/cl5zvg4Ocn2aA8Q5UMlJthVtYxv6Cm+XZFEv/T7g==","signatures":[{"sig":"MEQCIB66cdHQRAsEhbcb0LwM3Rr9lO+N2brD/u1V1u/AK5WvAiAAjN7VGca9Pq+WgloGlJi0DfY7Wm48zU0cS+apFKG3NA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1802282},"main":"./build/index.cjs","type":"module","types":"./build/index.d.ts","module":"./build/index.js","engines":{"node":">=24"},"exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.cjs"},"./styles.css":"./build/styles.css","./package.json":"./package.json"},"gitHead":"c89737fa443c3532f6833cde0ef86d39493506ab","private":false,"scripts":{"dev":"npm run tokens && vite build --watch","lint":"eslint src && stylelint \"src/**/*.scss\"","size":"npm run build && size-limit","test":"jest","build":"npm run tokens && vite build","format":"prettier --write \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"e2e/**/*.ts\"","tokens":"node scripts/build-tokens.mjs","verify":"npm run tokens && npm run check:contrast && npm run typecheck && npm run lint && npm run test:coverage && npm run build && size-limit","typecheck":"tsc --noEmit","playground":"vite --config playground/vite.config.ts","test:watch":"jest --watch","test:visual":"playwright test","format:check":"prettier --check \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"e2e/**/*.ts\"","test:coverage":"jest --coverage","check:contrast":"node scripts/check-contrast.mjs","playground:build":"npm run tokens && vite build --config playground/vite.config.ts"},"_npmUser":{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"},"publisher":"Ahmet ilhan","repository":{"url":"git+https://github.com/ahmetilhn/hanui.git","type":"git"},"_npmVersion":"11.16.0","description":"Accessible, theme-driven React component library built on SCSS Modules. Bootstrap Icons for shell iconography, two built-in themes and a fully overridable design-token contract.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","sass":"^1.83.4","vite":"^5.4.11","react":"^19.0.0","eslint":"^9.18.0","ts-jest":"^29.2.5","jest-axe":"^11.0.0","prettier":"^3.4.2","react-dom":"^19.0.0","stylelint":"^17.14.1","@eslint/js":"^9.18.0","size-limit":"^13.0.3","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.10.7","@types/react":"^19.0.7","@types/jest-axe":"^3.5.9","vite-plugin-dts":"^4.5.0","@playwright/test":"^1.62.1","@types/react-dom":"^19.0.3","eslint-plugin-react":"^7.37.4","react-bootstrap-icons":"^1.11.6","@ahmetilhn/handy-utils":"^3.2.8","@testing-library/react":"^16.3.2","eslint-config-prettier":"^9.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.20.0","eslint-plugin-react-hooks":"^5.1.0","@testing-library/user-event":"^14.6.1","@size-limit/preset-small-lib":"^13.0.3","stylelint-config-standard-scss":"^17.0.0","@typescript-eslint/eslint-plugin":"^8.20.0"},"peerDependencies":{"react":">=18","react-dom":">=18","react-bootstrap-icons":">=1.11.0","@ahmetilhn/handy-utils":">=3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hanui_2.0.2_1785795659690_0.9941518916130221","host":"s3://npm-registry-packages-npm-production"}},"2.0.4":{"name":"@ahmetilhn/hanui","version":"2.0.4","keywords":["react","ui","component-library","design-system","scss","css-modules","accessible","a11y","wcag","dark-mode","theming","design-tokens","typescript","headless","modal","combobox","bottom-sheet","data-table"],"author":{"name":"Ahmet ilhan","email":"ahmetilhan.dev@gmail.com"},"license":"MIT","_id":"@ahmetilhn/hanui@2.0.4","maintainers":[{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"}],"homepage":"https://github.com/ahmetilhn/hanui#readme","bugs":{"url":"https://github.com/ahmetilhn/hanui/issues"},"dist":{"shasum":"123d573e0c4832687a9a7384ed1d236a0a90ee0b","tarball":"https://registry.npmjs.org/@ahmetilhn/hanui/-/hanui-2.0.4.tgz","fileCount":9,"integrity":"sha512-wwQLNW1B7pA7ZI5z7/kUEkVDSW31CJU528EcYcDnnvF/gLFuymiIU0XGdSz5634PcwaEf2D3zV+ToIUWTIiS6w==","signatures":[{"sig":"MEUCIFY7L/qDvFcX8+rUAuC2zxH/g9Q4TGCm+ryf/uR0N45zAiEAxsI+yA21gS4/lp2G/NGFQPWJ846QrPfQHGHwiq4iyZE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1820253},"main":"./build/index.cjs","type":"module","types":"./build/index.d.ts","module":"./build/index.js","engines":{"node":">=24"},"exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.cjs"},"./styles.css":"./build/styles.css","./package.json":"./package.json"},"gitHead":"67703b79c78b09b87b0689634034973753542147","private":false,"scripts":{"dev":"npm run tokens && vite build --watch","lint":"eslint src && stylelint \"src/**/*.scss\"","size":"npm run build && size-limit","test":"jest","build":"npm run tokens && vite build","format":"prettier --write \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"e2e/**/*.ts\"","tokens":"node scripts/build-tokens.mjs","verify":"npm run tokens && npm run check:contrast && npm run typecheck && npm run lint && npm run test:coverage && npm run build && size-limit","typecheck":"tsc --noEmit","playground":"vite --config playground/vite.config.ts","test:watch":"jest --watch","test:visual":"playwright test","format:check":"prettier --check \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"e2e/**/*.ts\"","test:coverage":"jest --coverage","check:contrast":"node scripts/check-contrast.mjs","playground:build":"npm run tokens && vite build --config playground/vite.config.ts"},"_npmUser":{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"},"publisher":"Ahmet ilhan","repository":{"url":"git+https://github.com/ahmetilhn/hanui.git","type":"git"},"_npmVersion":"11.16.0","description":"Accessible, theme-driven React component library built on SCSS Modules. Bootstrap Icons for shell iconography, two built-in themes and a fully overridable design-token contract.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","sass":"^1.83.4","vite":"^5.4.11","react":"^19.0.0","eslint":"^9.18.0","ts-jest":"^29.2.5","jest-axe":"^11.0.0","prettier":"^3.4.2","react-dom":"^19.0.0","stylelint":"^17.14.1","@eslint/js":"^9.18.0","size-limit":"^13.0.3","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.10.7","@types/react":"^19.0.7","@types/jest-axe":"^3.5.9","vite-plugin-dts":"^4.5.0","@playwright/test":"^1.62.1","@types/react-dom":"^19.0.3","eslint-plugin-react":"^7.37.4","react-bootstrap-icons":"^1.11.6","@ahmetilhn/handy-utils":"^3.2.8","@testing-library/react":"^16.3.2","eslint-config-prettier":"^9.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.20.0","eslint-plugin-react-hooks":"^5.1.0","@testing-library/user-event":"^14.6.1","@size-limit/preset-small-lib":"^13.0.3","stylelint-config-standard-scss":"^17.0.0","@typescript-eslint/eslint-plugin":"^8.20.0"},"peerDependencies":{"react":">=18","react-dom":">=18","react-bootstrap-icons":">=1.11.0","@ahmetilhn/handy-utils":">=3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hanui_2.0.4_1785806783568_0.03378247935007739","host":"s3://npm-registry-packages-npm-production"}},"2.0.5":{"name":"@ahmetilhn/hanui","version":"2.0.5","keywords":["react","ui","component-library","design-system","scss","css-modules","accessible","a11y","wcag","dark-mode","theming","design-tokens","typescript","headless","modal","combobox","bottom-sheet","data-table"],"author":{"name":"Ahmet ilhan","email":"ahmetilhan.dev@gmail.com"},"license":"MIT","_id":"@ahmetilhn/hanui@2.0.5","maintainers":[{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"}],"homepage":"https://github.com/ahmetilhn/hanui#readme","bugs":{"url":"https://github.com/ahmetilhn/hanui/issues"},"dist":{"shasum":"dc1c8f9ed8149c0a283818578141ca22eccc7ec1","tarball":"https://registry.npmjs.org/@ahmetilhn/hanui/-/hanui-2.0.5.tgz","fileCount":9,"integrity":"sha512-sYFmOy3S1YjQVX/j3fFrsr3iC844VbSEf/q3kKhFOhzCcysoBxalNcqDZm8sOCCXhBcVXCgq4TowEM6rVkl99w==","signatures":[{"sig":"MEYCIQD/c7EZvP/ixOjRFOtFHqB7pPDGqVn0sGHYasgiUd/fPQIhAINwRTXfZDFE7DMP+v6giTFIdxG5NakaC9+G3ZDTmyzl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1848960},"main":"./build/index.cjs","type":"module","types":"./build/index.d.ts","module":"./build/index.js","engines":{"node":">=24"},"exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.cjs"},"./styles.css":"./build/styles.css","./package.json":"./package.json"},"gitHead":"811aaac0dcb6f0fb25450aadfecb28883b368bde","private":false,"scripts":{"dev":"npm run tokens && vite build --watch","lint":"eslint src && stylelint \"src/**/*.scss\"","size":"npm run build && size-limit","test":"jest","build":"npm run tokens && vite build","format":"prettier --write \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"e2e/**/*.ts\"","tokens":"node scripts/build-tokens.mjs","verify":"npm run tokens && npm run check:contrast && npm run typecheck && npm run lint && npm run test:coverage && npm run build && size-limit","typecheck":"tsc --noEmit","playground":"vite --config playground/vite.config.ts","test:watch":"jest --watch","test:visual":"playwright test","format:check":"prettier --check \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"e2e/**/*.ts\"","test:coverage":"jest --coverage","check:contrast":"node scripts/check-contrast.mjs","playground:build":"npm run tokens && vite build --config playground/vite.config.ts"},"_npmUser":{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"},"publisher":"Ahmet ilhan","repository":{"url":"git+https://github.com/ahmetilhn/hanui.git","type":"git"},"_npmVersion":"11.16.0","description":"Accessible, theme-driven React component library built on SCSS Modules. Bootstrap Icons for shell iconography, two built-in themes and a fully overridable design-token contract.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","sass":"^1.83.4","vite":"^5.4.11","react":"^19.0.0","eslint":"^9.18.0","ts-jest":"^29.2.5","jest-axe":"^11.0.0","prettier":"^3.4.2","react-dom":"^19.0.0","stylelint":"^17.14.1","@eslint/js":"^9.18.0","size-limit":"^13.0.3","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.10.7","@types/react":"^19.0.7","@types/jest-axe":"^3.5.9","vite-plugin-dts":"^4.5.0","@playwright/test":"^1.62.1","@types/react-dom":"^19.0.3","eslint-plugin-react":"^7.37.4","react-bootstrap-icons":"^1.11.6","@ahmetilhn/handy-utils":"^3.2.8","@testing-library/react":"^16.3.2","eslint-config-prettier":"^9.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.20.0","eslint-plugin-react-hooks":"^5.1.0","@testing-library/user-event":"^14.6.1","@size-limit/preset-small-lib":"^13.0.3","stylelint-config-standard-scss":"^17.0.0","@typescript-eslint/eslint-plugin":"^8.20.0"},"peerDependencies":{"react":">=18","react-dom":">=18","react-bootstrap-icons":">=1.11.0","@ahmetilhn/handy-utils":">=3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hanui_2.0.5_1785836113173_0.9592791363625821","host":"s3://npm-registry-packages-npm-production"}},"2.0.6":{"name":"@ahmetilhn/hanui","version":"2.0.6","keywords":["react","ui","component-library","design-system","scss","css-modules","accessible","a11y","wcag","dark-mode","theming","design-tokens","typescript","headless","modal","combobox","bottom-sheet","data-table"],"author":{"name":"Ahmet ilhan","email":"ahmetilhan.dev@gmail.com"},"license":"MIT","_id":"@ahmetilhn/hanui@2.0.6","maintainers":[{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"}],"homepage":"https://github.com/ahmetilhn/hanui#readme","bugs":{"url":"https://github.com/ahmetilhn/hanui/issues"},"dist":{"shasum":"d66fbc917e286124b9391c46cc770bf7f11c5cda","tarball":"https://registry.npmjs.org/@ahmetilhn/hanui/-/hanui-2.0.6.tgz","fileCount":9,"integrity":"sha512-VyW5dE6IdCOAYMEf6ioQG3k9iAAP+t4jfO3zzfewVlTC4SrbsvoMyaW51+VtbzhZYcc1jUIFueZQo+1pQo6npQ==","signatures":[{"sig":"MEUCIQCqq1Wa1PC9T2AbtGu4U8vHcTFIa3OhdlwxgMRt+Wo6ggIgID6x1MBYqRXy2B3OI8RCjIXOEasm6Z+1AV8Y+aiQWCs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1852416},"main":"./build/index.cjs","type":"module","types":"./build/index.d.ts","module":"./build/index.js","engines":{"node":">=24"},"exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.cjs"},"./styles.css":"./build/styles.css","./package.json":"./package.json"},"gitHead":"fedc16fa638de9e27202b1f95c200c8a0da1d6b6","private":false,"scripts":{"dev":"npm run tokens && vite build --watch","lint":"eslint src && stylelint \"src/**/*.scss\"","size":"npm run build && size-limit","test":"jest","build":"npm run tokens && vite build","format":"prettier --write \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"e2e/**/*.ts\"","tokens":"node scripts/build-tokens.mjs","verify":"npm run tokens && npm run check:contrast && npm run typecheck && npm run lint && npm run test:coverage && npm run build && size-limit","typecheck":"tsc --noEmit","playground":"vite --config playground/vite.config.ts","test:watch":"jest --watch","test:visual":"playwright test","format:check":"prettier --check \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"e2e/**/*.ts\"","test:coverage":"jest --coverage","check:contrast":"node scripts/check-contrast.mjs","playground:build":"npm run tokens && vite build --config playground/vite.config.ts"},"_npmUser":{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"},"publisher":"Ahmet ilhan","repository":{"url":"git+https://github.com/ahmetilhn/hanui.git","type":"git"},"_npmVersion":"11.16.0","description":"Accessible, theme-driven React component library built on SCSS Modules. Bootstrap Icons for shell iconography, two built-in themes and a fully overridable design-token contract.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","sass":"^1.83.4","vite":"^5.4.11","react":"^19.0.0","eslint":"^9.18.0","ts-jest":"^29.2.5","jest-axe":"^11.0.0","prettier":"^3.4.2","react-dom":"^19.0.0","stylelint":"^17.14.1","@eslint/js":"^9.18.0","size-limit":"^13.0.3","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.10.7","@types/react":"^19.0.7","@types/jest-axe":"^3.5.9","vite-plugin-dts":"^4.5.0","@playwright/test":"^1.62.1","@types/react-dom":"^19.0.3","eslint-plugin-react":"^7.37.4","react-bootstrap-icons":"^1.11.6","@ahmetilhn/handy-utils":"^3.2.8","@testing-library/react":"^16.3.2","eslint-config-prettier":"^9.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.20.0","eslint-plugin-react-hooks":"^5.1.0","@testing-library/user-event":"^14.6.1","@size-limit/preset-small-lib":"^13.0.3","stylelint-config-standard-scss":"^17.0.0","@typescript-eslint/eslint-plugin":"^8.20.0"},"peerDependencies":{"react":">=18","react-dom":">=18","react-bootstrap-icons":">=1.11.0","@ahmetilhn/handy-utils":">=3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hanui_2.0.6_1785841866949_0.4952404295768569","host":"s3://npm-registry-packages-npm-production"}},"2.0.7":{"name":"@ahmetilhn/hanui","version":"2.0.7","keywords":["react","ui","component-library","design-system","scss","css-modules","accessible","a11y","wcag","dark-mode","theming","design-tokens","typescript","headless","modal","combobox","bottom-sheet","data-table"],"author":{"name":"Ahmet ilhan","email":"ahmetilhan.dev@gmail.com"},"license":"MIT","_id":"@ahmetilhn/hanui@2.0.7","maintainers":[{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"}],"homepage":"https://github.com/ahmetilhn/hanui#readme","bugs":{"url":"https://github.com/ahmetilhn/hanui/issues"},"dist":{"shasum":"5a50fd248807c905eb307364f5c34fd18589f39a","tarball":"https://registry.npmjs.org/@ahmetilhn/hanui/-/hanui-2.0.7.tgz","fileCount":9,"integrity":"sha512-Tj8f1VDwIiY5YxDQiWcLQSSY7z95XDppVhgXz0X/RzekWr9wpoXV+20ZGEAcABQnaYsBlZj8lkjLAIPaql1NPw==","signatures":[{"sig":"MEUCIQCi5POrs4080TubCdal27Y1SROABlJjbdQKqIV95eC7lgIgUFzG1pitYSOOlv6h+xQ9PP2+KFoG1dPhfUpWV5a+qx4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1859325},"main":"./build/index.cjs","type":"module","types":"./build/index.d.ts","module":"./build/index.js","engines":{"node":">=24"},"exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.cjs"},"./styles.css":"./build/styles.css","./package.json":"./package.json"},"gitHead":"d1dd724012f6b93c585d9b6c88ff6d23ee56d6de","private":false,"scripts":{"dev":"npm run tokens && vite build --watch","lint":"eslint src && stylelint \"src/**/*.scss\"","size":"npm run build && size-limit","test":"jest","build":"npm run tokens && vite build","format":"prettier --write \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"e2e/**/*.ts\"","tokens":"node scripts/build-tokens.mjs","verify":"npm run tokens && npm run check:contrast && npm run typecheck && npm run lint && npm run test:coverage && npm run build && size-limit","typecheck":"tsc --noEmit","playground":"vite --config playground/vite.config.ts","test:watch":"jest --watch","test:device":"playwright test --project=ios --project=android","test:visual":"playwright test --project=masaüstü --project=mobil","format:check":"prettier --check \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"e2e/**/*.ts\"","test:coverage":"jest --coverage","check:contrast":"node scripts/check-contrast.mjs","playground:build":"npm run tokens && vite build --config playground/vite.config.ts","test:device:install":"playwright install webkit chromium"},"_npmUser":{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"},"publisher":"Ahmet ilhan","repository":{"url":"git+https://github.com/ahmetilhn/hanui.git","type":"git"},"_npmVersion":"11.16.0","description":"Accessible, theme-driven React component library built on SCSS Modules. Bootstrap Icons for shell iconography, two built-in themes and a fully overridable design-token contract.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","sass":"^1.83.4","vite":"^5.4.11","react":"^19.0.0","eslint":"^9.18.0","ts-jest":"^29.2.5","jest-axe":"^11.0.0","prettier":"^3.4.2","react-dom":"^19.0.0","stylelint":"^17.14.1","@eslint/js":"^9.18.0","size-limit":"^13.0.3","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.10.7","@types/react":"^19.0.7","@types/jest-axe":"^3.5.9","vite-plugin-dts":"^4.5.0","@playwright/test":"^1.62.1","@types/react-dom":"^19.0.3","eslint-plugin-react":"^7.37.4","react-bootstrap-icons":"^1.11.6","@ahmetilhn/handy-utils":"^3.2.8","@testing-library/react":"^16.3.2","eslint-config-prettier":"^9.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.20.0","eslint-plugin-react-hooks":"^5.1.0","@testing-library/user-event":"^14.6.1","@size-limit/preset-small-lib":"^13.0.3","stylelint-config-standard-scss":"^17.0.0","@typescript-eslint/eslint-plugin":"^8.20.0"},"peerDependencies":{"react":">=18","react-dom":">=18","react-bootstrap-icons":">=1.11.0","@ahmetilhn/handy-utils":">=3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hanui_2.0.7_1785873581356_0.70388146046017","host":"s3://npm-registry-packages-npm-production"}},"2.0.8":{"name":"@ahmetilhn/hanui","version":"2.0.8","keywords":["react","ui","component-library","design-system","scss","css-modules","accessible","a11y","wcag","dark-mode","theming","design-tokens","typescript","headless","modal","combobox","bottom-sheet","data-table"],"author":{"name":"Ahmet ilhan","email":"ahmetilhan.dev@gmail.com"},"license":"MIT","_id":"@ahmetilhn/hanui@2.0.8","maintainers":[{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"}],"homepage":"https://github.com/ahmetilhn/hanui#readme","bugs":{"url":"https://github.com/ahmetilhn/hanui/issues"},"dist":{"shasum":"f650d1bb30fe5fb6a1ea8e1fa978c54c89bd3dd4","tarball":"https://registry.npmjs.org/@ahmetilhn/hanui/-/hanui-2.0.8.tgz","fileCount":9,"integrity":"sha512-tubjxvYlLdVlPM8kiYxx8eA7KkqBn9kEcZVilLE62adNFZ3ZZp0+naWD3NfsY9I/YFYSEU9Ha+nDw6ARZAsqbQ==","signatures":[{"sig":"MEUCIEZtUOaVn3lz5dHA9S5zMbO6xrTjh+0xswYmXtacebj1AiEAwZ0X2JU0CG4I+np4RcUnDo6VNdHk5CLjYfh/MdCGCqE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1859348},"main":"./build/index.cjs","type":"module","types":"./build/index.d.ts","module":"./build/index.js","engines":{"node":">=24"},"exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.cjs"},"./styles.css":"./build/styles.css","./package.json":"./package.json"},"gitHead":"f9b51fc0f896c37f5bb56a0d6bab3fdf3a1568cc","private":false,"scripts":{"dev":"npm run tokens && vite build --watch","lint":"eslint src && stylelint \"src/**/*.scss\"","size":"npm run build && size-limit","test":"jest","build":"npm run tokens && vite build","format":"prettier --write \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"e2e/**/*.ts\"","tokens":"node scripts/build-tokens.mjs","verify":"npm run tokens && npm run check:contrast && npm run typecheck && npm run lint && npm run test:coverage && npm run build && size-limit","typecheck":"tsc --noEmit","playground":"vite --config playground/vite.config.ts","test:watch":"jest --watch","test:device":"playwright test --project=ios --project=android","test:visual":"playwright test --project=masaüstü --project=mobil","format:check":"prettier --check \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"e2e/**/*.ts\"","test:coverage":"jest --coverage","check:contrast":"node scripts/check-contrast.mjs","playground:build":"npm run tokens && vite build --config playground/vite.config.ts","test:device:install":"playwright install webkit chromium"},"_npmUser":{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"},"publisher":"Ahmet ilhan","repository":{"url":"git+https://github.com/ahmetilhn/hanui.git","type":"git"},"_npmVersion":"11.16.0","description":"Accessible, theme-driven React component library built on SCSS Modules. Bootstrap Icons for shell iconography, two built-in themes and a fully overridable design-token contract.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","sass":"^1.83.4","vite":"^5.4.11","react":"^19.0.0","eslint":"^9.18.0","ts-jest":"^29.2.5","jest-axe":"^11.0.0","prettier":"^3.4.2","react-dom":"^19.0.0","stylelint":"^17.14.1","@eslint/js":"^9.18.0","size-limit":"^13.0.3","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.10.7","@types/react":"^19.0.7","@types/jest-axe":"^3.5.9","vite-plugin-dts":"^4.5.0","@playwright/test":"^1.62.1","@types/react-dom":"^19.0.3","eslint-plugin-react":"^7.37.4","react-bootstrap-icons":"^1.11.6","@ahmetilhn/handy-utils":"^3.2.8","@testing-library/react":"^16.3.2","eslint-config-prettier":"^9.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.20.0","eslint-plugin-react-hooks":"^5.1.0","@testing-library/user-event":"^14.6.1","@size-limit/preset-small-lib":"^13.0.3","stylelint-config-standard-scss":"^17.0.0","@typescript-eslint/eslint-plugin":"^8.20.0"},"peerDependencies":{"react":">=18","react-dom":">=18","react-bootstrap-icons":">=1.11.0","@ahmetilhn/handy-utils":">=3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hanui_2.0.8_1785876405847_0.10963958347625868","host":"s3://npm-registry-packages-npm-production"}},"2.0.9":{"name":"@ahmetilhn/hanui","version":"2.0.9","keywords":["react","ui","component-library","design-system","scss","css-modules","accessible","a11y","wcag","dark-mode","theming","design-tokens","typescript","headless","modal","combobox","bottom-sheet","data-table"],"author":{"name":"Ahmet ilhan","email":"ahmetilhan.dev@gmail.com"},"license":"MIT","_id":"@ahmetilhn/hanui@2.0.9","maintainers":[{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"}],"homepage":"https://github.com/ahmetilhn/hanui#readme","bugs":{"url":"https://github.com/ahmetilhn/hanui/issues"},"dist":{"shasum":"7914ceb92948c7fee890f2bc95eab38fa45cc30b","tarball":"https://registry.npmjs.org/@ahmetilhn/hanui/-/hanui-2.0.9.tgz","fileCount":9,"integrity":"sha512-rTHUknN6DB5aVrnIkHzEgMP1IbAdqa2Th5q+mGOZ7ZB5SxvHUb4s7g2H6qkfYPozwbbvnAgSNqt6R803MtiMGA==","signatures":[{"sig":"MEQCIDmOd9+qOEV3KMMmEt0jP9gMJ0yXnBfamMyx3SDqwRNOAiAhe6J/9cSX2pR5J1ton6TZTqXqRivAbq8YXJLaa2+vTA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1865709},"main":"./build/index.cjs","type":"module","types":"./build/index.d.ts","module":"./build/index.js","engines":{"node":">=24"},"exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.cjs"},"./styles.css":"./build/styles.css","./package.json":"./package.json"},"gitHead":"7624dcf342cfbaefceb1214416e1b1d39a6bbfbc","private":false,"scripts":{"dev":"npm run tokens && vite build --watch","lint":"eslint src && stylelint \"src/**/*.scss\"","size":"npm run build && size-limit","test":"jest","build":"npm run tokens && vite build","format":"prettier --write \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"e2e/**/*.ts\"","tokens":"node scripts/build-tokens.mjs","verify":"npm run tokens && npm run check:contrast && npm run typecheck && npm run lint && npm run test:coverage && npm run build && size-limit","typecheck":"tsc --noEmit","playground":"vite --config playground/vite.config.ts","test:watch":"jest --watch","test:device":"playwright test --project=ios --project=android","test:visual":"playwright test --project=masaüstü --project=mobil","format:check":"prettier --check \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"e2e/**/*.ts\"","test:coverage":"jest --coverage","check:contrast":"node scripts/check-contrast.mjs","playground:build":"npm run tokens && vite build --config playground/vite.config.ts","test:device:install":"playwright install webkit chromium"},"_npmUser":{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"},"publisher":"Ahmet ilhan","repository":{"url":"git+https://github.com/ahmetilhn/hanui.git","type":"git"},"_npmVersion":"11.16.0","description":"Accessible, theme-driven React component library built on SCSS Modules. Bootstrap Icons for shell iconography, two built-in themes and a fully overridable design-token contract.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","sass":"^1.83.4","vite":"^5.4.11","react":"^19.0.0","eslint":"^9.18.0","ts-jest":"^29.2.5","jest-axe":"^11.0.0","prettier":"^3.4.2","react-dom":"^19.0.0","stylelint":"^17.14.1","@eslint/js":"^9.18.0","size-limit":"^13.0.3","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.10.7","@types/react":"^19.0.7","@types/jest-axe":"^3.5.9","vite-plugin-dts":"^4.5.0","@playwright/test":"^1.62.1","@types/react-dom":"^19.0.3","eslint-plugin-react":"^7.37.4","react-bootstrap-icons":"^1.11.6","@ahmetilhn/handy-utils":"^3.2.8","@testing-library/react":"^16.3.2","eslint-config-prettier":"^9.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.20.0","eslint-plugin-react-hooks":"^5.1.0","@testing-library/user-event":"^14.6.1","@size-limit/preset-small-lib":"^13.0.3","stylelint-config-standard-scss":"^17.0.0","@typescript-eslint/eslint-plugin":"^8.20.0"},"peerDependencies":{"react":">=18","react-dom":">=18","react-bootstrap-icons":">=1.11.0","@ahmetilhn/handy-utils":">=3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hanui_2.0.9_1785962521478_0.68666705589515","host":"s3://npm-registry-packages-npm-production"}},"2.0.10":{"name":"@ahmetilhn/hanui","version":"2.0.10","keywords":["react","ui","component-library","design-system","scss","css-modules","accessible","a11y","wcag","dark-mode","theming","design-tokens","typescript","headless","modal","combobox","bottom-sheet","data-table"],"author":{"name":"Ahmet ilhan","email":"ahmetilhan.dev@gmail.com"},"license":"MIT","_id":"@ahmetilhn/hanui@2.0.10","maintainers":[{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"}],"homepage":"https://github.com/ahmetilhn/hanui#readme","bugs":{"url":"https://github.com/ahmetilhn/hanui/issues"},"dist":{"shasum":"fe574e0ee3cdbffce41860dd89ea576abb199345","tarball":"https://registry.npmjs.org/@ahmetilhn/hanui/-/hanui-2.0.10.tgz","fileCount":9,"integrity":"sha512-jFSn1llvGU+29O3tu5b43i3UpTBUNPr7eox6y8d+Q69wiK/cgzFKkLP9IHntSobTfFsPaFGhwf9R2s8oO2QKzA==","signatures":[{"sig":"MEQCIGwAhN4XYE/xIfv4MwrGnm4CsUCpouam1x6mPs3Xtfn7AiB0wBQ/nRATsnkIu2s2Mkf8nGbMTQRtoJ4nrrX/zcWe5Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1864563},"main":"./build/index.cjs","type":"module","types":"./build/index.d.ts","module":"./build/index.js","engines":{"node":">=24"},"exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.cjs"},"./styles.css":"./build/styles.css","./package.json":"./package.json"},"gitHead":"47824fa079a4be7394b685fb4b103ee245a57926","private":false,"scripts":{"dev":"npm run tokens && vite build --watch","lint":"eslint src && stylelint \"src/**/*.scss\"","size":"npm run build && size-limit","test":"jest","build":"npm run tokens && vite build","format":"prettier --write \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"e2e/**/*.ts\"","tokens":"node scripts/build-tokens.mjs","verify":"npm run tokens && npm run check:contrast && npm run typecheck && npm run lint && npm run test:coverage && npm run build && npm run check:animations && size-limit","typecheck":"tsc --noEmit","playground":"vite --config playground/vite.config.ts","test:watch":"jest --watch","test:device":"playwright test --project=ios --project=android","test:visual":"playwright test --project=masaüstü --project=mobil","format:check":"prettier --check \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"e2e/**/*.ts\"","test:coverage":"jest --coverage","check:contrast":"node scripts/check-contrast.mjs","check:animations":"node scripts/check-animations.mjs","playground:build":"npm run tokens && vite build --config playground/vite.config.ts","test:device:install":"playwright install webkit chromium"},"_npmUser":{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"},"publisher":"Ahmet ilhan","repository":{"url":"git+https://github.com/ahmetilhn/hanui.git","type":"git"},"_npmVersion":"11.16.0","description":"Accessible, theme-driven React component library built on SCSS Modules. Bootstrap Icons for shell iconography, two built-in themes and a fully overridable design-token contract.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","sass":"^1.83.4","vite":"^5.4.11","react":"^19.0.0","eslint":"^9.18.0","ts-jest":"^29.2.5","jest-axe":"^11.0.0","prettier":"^3.4.2","react-dom":"^19.0.0","stylelint":"^17.14.1","@eslint/js":"^9.18.0","size-limit":"^13.0.3","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.10.7","@types/react":"^19.0.7","@types/jest-axe":"^3.5.9","vite-plugin-dts":"^4.5.0","@playwright/test":"^1.62.1","@types/react-dom":"^19.0.3","eslint-plugin-react":"^7.37.4","react-bootstrap-icons":"^1.11.6","@ahmetilhn/handy-utils":"^3.2.8","@testing-library/react":"^16.3.2","eslint-config-prettier":"^9.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.20.0","eslint-plugin-react-hooks":"^5.1.0","@testing-library/user-event":"^14.6.1","@size-limit/preset-small-lib":"^13.0.3","stylelint-config-standard-scss":"^17.0.0","@typescript-eslint/eslint-plugin":"^8.20.0"},"peerDependencies":{"react":">=18","react-dom":">=18","react-bootstrap-icons":">=1.11.0","@ahmetilhn/handy-utils":">=3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hanui_2.0.10_1785999697437_0.4047143278446499","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"@ahmetilhn/hanui","version":"2.1.1","keywords":["react","ui","component-library","design-system","scss","css-modules","accessible","a11y","wcag","dark-mode","theming","design-tokens","typescript","headless","modal","combobox","bottom-sheet","data-table"],"author":{"name":"Ahmet ilhan","email":"ahmetilhan.dev@gmail.com"},"license":"MIT","_id":"@ahmetilhn/hanui@2.1.1","maintainers":[{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"}],"homepage":"https://github.com/ahmetilhn/hanui#readme","bugs":{"url":"https://github.com/ahmetilhn/hanui/issues"},"dist":{"shasum":"cbd8ae4aa704918c3fa7c4781d6f923c5817d86b","tarball":"https://registry.npmjs.org/@ahmetilhn/hanui/-/hanui-2.1.1.tgz","fileCount":9,"integrity":"sha512-ybUiHltkfMEiZDQFDbkhRTXIr7GDyX7pqRSFFCNbHY/TkCAcClvuNCB3seggm1SxNgXjCbgOHJG4nDxWVpS/Cg==","signatures":[{"sig":"MEUCIQCsamRemYWwLgfoKlSjNuxkHMZ+VDMdFjlzwcQBVtguxwIgRb/mQtJWxussNHb/cUz2ee11wp+ZDMIUN6/KPF8cFwg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1454639},"main":"./build/index.cjs","type":"module","types":"./build/index.d.ts","module":"./build/index.js","engines":{"node":">=24"},"exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.cjs"},"./styles.css":"./build/styles.css","./package.json":"./package.json"},"gitHead":"b603ba1efca4a44b0718bb1d4211eb3833b504c0","private":false,"scripts":{"dev":"npm run tokens && vite build --watch","lint":"eslint src && stylelint \"src/**/*.scss\"","size":"npm run build && size-limit","test":"jest","build":"npm run tokens && vite build","format":"prettier --write \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"__tests__/**/*.{ts,tsx}\"","tokens":"node scripts/build-tokens.mjs","verify":"npm run tokens && npm run check:contrast && npm run typecheck && npm run lint && npm run test:coverage && npm run build && npm run check:animations && size-limit","prepare":"git rev-parse --git-dir >/dev/null 2>&1 && git config core.hooksPath .githooks || true","typecheck":"tsc --noEmit","playground":"vite --config playground/vite.config.ts","test:watch":"jest --watch","test:device":"playwright test --project=ios --project=android","test:visual":"playwright test --project=masaüstü --project=mobil","format:check":"prettier --check \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"__tests__/**/*.{ts,tsx}\"","test:coverage":"jest --coverage","check:contrast":"node scripts/check-contrast.mjs","check:animations":"node scripts/check-animations.mjs","playground:build":"npm run tokens && vite build --config playground/vite.config.ts","test:device:install":"playwright install webkit chromium"},"_npmUser":{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"},"publisher":"Ahmet ilhan","repository":{"url":"git+https://github.com/ahmetilhn/hanui.git","type":"git"},"_npmVersion":"11.17.0","description":"Accessible, theme-driven React component library built on SCSS Modules. Bootstrap Icons for shell iconography, two built-in themes and a fully overridable design-token contract.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","sass":"^1.83.4","vite":"^5.4.11","react":"^19.0.0","eslint":"^9.18.0","ts-jest":"^29.2.5","jest-axe":"^11.0.0","prettier":"^3.4.2","react-dom":"^19.0.0","stylelint":"^17.14.1","@eslint/js":"^9.18.0","size-limit":"^13.0.3","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.10.7","@types/react":"^19.0.7","@types/jest-axe":"^3.5.9","vite-plugin-dts":"^4.5.0","@playwright/test":"^1.62.1","@types/react-dom":"^19.0.3","eslint-plugin-react":"^7.37.4","react-bootstrap-icons":"^1.11.6","@ahmetilhn/handy-utils":"^3.2.8","@testing-library/react":"^16.3.2","eslint-config-prettier":"^9.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.20.0","eslint-plugin-react-hooks":"^5.1.0","@testing-library/user-event":"^14.6.1","@size-limit/preset-small-lib":"^13.0.3","stylelint-config-standard-scss":"^17.0.0","@typescript-eslint/eslint-plugin":"^8.20.0"},"peerDependencies":{"react":">=18","react-dom":">=18","react-bootstrap-icons":">=1.11.0","@ahmetilhn/handy-utils":">=3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hanui_2.1.1_1786091142347_0.7834461864689568","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@ahmetilhn/hanui","version":"2.2.0","keywords":["react","ui","component-library","design-system","scss","css-modules","accessible","a11y","wcag","dark-mode","theming","design-tokens","typescript","headless","modal","combobox","bottom-sheet","data-table"],"author":{"name":"Ahmet ilhan","email":"ahmetilhan.dev@gmail.com"},"license":"MIT","_id":"@ahmetilhn/hanui@2.2.0","maintainers":[{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"}],"homepage":"https://github.com/ahmetilhn/hanui#readme","bugs":{"url":"https://github.com/ahmetilhn/hanui/issues"},"dist":{"shasum":"e73a1900c6f33bd5cedd6c7833405d4f20c3bcb9","tarball":"https://registry.npmjs.org/@ahmetilhn/hanui/-/hanui-2.2.0.tgz","fileCount":9,"integrity":"sha512-w+Mu+7/j5NmS5dsPW5Hc1OIePTUssxlQBuQv4ajfAa/IuODbCyIYwhqsASs0nugoH+IUZBEQMv0PpMLDVfeWYw==","signatures":[{"sig":"MEYCIQCiA7vVq6NhV7yD+8S6sBEzMly6Y5QhwuwN7tW81ea2NQIhAJIYVLuO+OOkxEcKGRFCRiCAj92dnQiGICFlTP1wDdLo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1471950},"main":"./build/index.cjs","type":"module","types":"./build/index.d.ts","module":"./build/index.js","engines":{"node":">=24"},"exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.cjs"},"./styles.css":"./build/styles.css","./package.json":"./package.json"},"gitHead":"e20af6ef57377e33334fc0cd420685d1882db1df","private":false,"scripts":{"dev":"npm run tokens && vite build --watch","lint":"eslint src && stylelint \"src/**/*.scss\"","size":"npm run build && size-limit","test":"jest","build":"npm run tokens && vite build","format":"prettier --write \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"__tests__/**/*.{ts,tsx}\"","tokens":"node scripts/build-tokens.mjs","verify":"npm run tokens && npm run check:contrast && npm run typecheck && npm run lint && npm run test:coverage && npm run build && npm run check:animations && size-limit","prepare":"git rev-parse --git-dir >/dev/null 2>&1 && git config core.hooksPath .githooks || true","typecheck":"tsc --noEmit","playground":"vite --config playground/vite.config.ts","test:watch":"jest --watch","test:device":"playwright test --project=ios --project=android","test:visual":"playwright test --project=masaüstü --project=mobil","format:check":"prettier --check \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"__tests__/**/*.{ts,tsx}\"","test:coverage":"jest --coverage","check:contrast":"node scripts/check-contrast.mjs","check:animations":"node scripts/check-animations.mjs","playground:build":"npm run tokens && vite build --config playground/vite.config.ts","test:device:install":"playwright install webkit chromium"},"_npmUser":{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"},"publisher":"Ahmet ilhan","repository":{"url":"git+https://github.com/ahmetilhn/hanui.git","type":"git"},"_npmVersion":"11.16.0","description":"Accessible, theme-driven React component library built on SCSS Modules. Bootstrap Icons for shell iconography, two built-in themes and a fully overridable design-token contract.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","sass":"^1.83.4","vite":"^5.4.11","react":"^19.0.0","eslint":"^9.18.0","ts-jest":"^29.2.5","jest-axe":"^11.0.0","prettier":"^3.4.2","react-dom":"^19.0.0","stylelint":"^17.14.1","@eslint/js":"^9.18.0","size-limit":"^13.0.3","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.10.7","@types/react":"^19.0.7","@types/jest-axe":"^3.5.9","vite-plugin-dts":"^4.5.0","@playwright/test":"^1.62.1","@types/react-dom":"^19.0.3","eslint-plugin-react":"^7.37.4","react-bootstrap-icons":"^1.11.6","@ahmetilhn/handy-utils":"^3.2.8","@testing-library/react":"^16.3.2","eslint-config-prettier":"^9.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.20.0","eslint-plugin-react-hooks":"^5.1.0","@testing-library/user-event":"^14.6.1","@size-limit/preset-small-lib":"^13.0.3","stylelint-config-standard-scss":"^17.0.0","@typescript-eslint/eslint-plugin":"^8.20.0"},"peerDependencies":{"react":">=18","react-dom":">=18","react-bootstrap-icons":">=1.11.0","@ahmetilhn/handy-utils":">=3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hanui_2.2.0_1786180949469_0.1431800409183701","host":"s3://npm-registry-packages-npm-production"}},"2.2.1":{"name":"@ahmetilhn/hanui","version":"2.2.1","keywords":["react","ui","component-library","design-system","scss","css-modules","accessible","a11y","wcag","dark-mode","theming","design-tokens","typescript","headless","modal","combobox","bottom-sheet","data-table"],"author":{"name":"Ahmet ilhan","email":"ahmetilhan.dev@gmail.com"},"license":"MIT","_id":"@ahmetilhn/hanui@2.2.1","maintainers":[{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"}],"homepage":"https://github.com/ahmetilhn/hanui#readme","bugs":{"url":"https://github.com/ahmetilhn/hanui/issues"},"dist":{"shasum":"891e615af28460b426321675c7776b066e5512b7","tarball":"https://registry.npmjs.org/@ahmetilhn/hanui/-/hanui-2.2.1.tgz","fileCount":9,"integrity":"sha512-7WUxzaZBm20cf6RrNQVPNhoFS0c8c6hV8cQ7bzW1B+e6y2hdBt//w4HWvT+bE4AcBCx7Hc6hiKzdBji4CoG6/w==","signatures":[{"sig":"MEUCIFgc5tekc62qa+JLHLUh/7R5RLDQoj2Than6Z9U8R6thAiEApSvP5b6wUqStpQrOlHf1poaAbFC+Y8cEKa7qSaFpkQg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1477390},"main":"./build/index.cjs","type":"module","types":"./build/index.d.ts","module":"./build/index.js","engines":{"node":">=24"},"exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.cjs"},"./styles.css":"./build/styles.css","./package.json":"./package.json"},"gitHead":"a4d0020886e10055b40eb3f3154dd1c068bdd0e9","private":false,"scripts":{"dev":"npm run tokens && vite build --watch","lint":"eslint src && stylelint \"src/**/*.scss\"","size":"npm run build && size-limit","test":"jest","build":"npm run tokens && vite build","format":"prettier --write \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"__tests__/**/*.{ts,tsx}\"","tokens":"node scripts/build-tokens.mjs","verify":"npm run tokens && npm run check:contrast && npm run typecheck && npm run lint && npm run test:coverage && npm run build && npm run check:animations && size-limit","prepare":"git rev-parse --git-dir >/dev/null 2>&1 && git config core.hooksPath .githooks || true","typecheck":"tsc --noEmit","playground":"vite --config playground/vite.config.ts","test:watch":"jest --watch","test:device":"playwright test --project=ios --project=android","test:visual":"playwright test --project=masaüstü --project=mobil","format:check":"prettier --check \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"__tests__/**/*.{ts,tsx}\"","test:coverage":"jest --coverage","check:contrast":"node scripts/check-contrast.mjs","check:animations":"node scripts/check-animations.mjs","playground:build":"npm run tokens && vite build --config playground/vite.config.ts","test:device:install":"playwright install webkit chromium"},"_npmUser":{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"},"publisher":"Ahmet ilhan","repository":{"url":"git+https://github.com/ahmetilhn/hanui.git","type":"git"},"_npmVersion":"11.16.0","description":"Accessible, theme-driven React component library built on SCSS Modules. Bootstrap Icons for shell iconography, two built-in themes and a fully overridable design-token contract.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","sass":"^1.83.4","vite":"^5.4.11","react":"^19.0.0","eslint":"^9.18.0","ts-jest":"^29.2.5","jest-axe":"^11.0.0","prettier":"^3.4.2","react-dom":"^19.0.0","stylelint":"^17.14.1","@eslint/js":"^9.18.0","size-limit":"^13.0.3","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.10.7","@types/react":"^19.0.7","@types/jest-axe":"^3.5.9","vite-plugin-dts":"^4.5.0","@playwright/test":"^1.62.1","@types/react-dom":"^19.0.3","eslint-plugin-react":"^7.37.4","react-bootstrap-icons":"^1.11.6","@ahmetilhn/handy-utils":"^3.2.8","@testing-library/react":"^16.3.2","eslint-config-prettier":"^9.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.20.0","eslint-plugin-react-hooks":"^5.1.0","@testing-library/user-event":"^14.6.1","@size-limit/preset-small-lib":"^13.0.3","stylelint-config-standard-scss":"^17.0.0","@typescript-eslint/eslint-plugin":"^8.20.0"},"peerDependencies":{"react":">=18","react-dom":">=18","react-bootstrap-icons":">=1.11.0","@ahmetilhn/handy-utils":">=3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hanui_2.2.1_1786182458431_0.9025598286581962","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"@ahmetilhn/hanui","version":"2.4.0","keywords":["react","ui","component-library","design-system","scss","css-modules","accessible","a11y","wcag","dark-mode","theming","design-tokens","typescript","headless","modal","combobox","bottom-sheet","data-table"],"author":{"name":"Ahmet ilhan","email":"ahmetilhan.dev@gmail.com"},"license":"MIT","_id":"@ahmetilhn/hanui@2.4.0","maintainers":[{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"}],"homepage":"https://github.com/ahmetilhn/hanui#readme","bugs":{"url":"https://github.com/ahmetilhn/hanui/issues"},"dist":{"shasum":"31dcf89f959082b0f87c2b78c7170bbd5be88aa3","tarball":"https://registry.npmjs.org/@ahmetilhn/hanui/-/hanui-2.4.0.tgz","fileCount":9,"integrity":"sha512-5ItogI9SksKCP/41Ssp21lju6mm9Tu/RJ8bQXIRGD4Nre5Z5W49rwz5yymrKolStW3pw+B564xSU/HU7iCY9eQ==","signatures":[{"sig":"MEYCIQCMJt46fTaw+br+lWsvfv4m5rXTX4SkLyKQRUEEUDHSOAIhAKFAoIn6NApNHt+0igjhSJmb21gznlIFu7RFaIEdAhCy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1498981},"main":"./build/index.cjs","type":"module","types":"./build/index.d.ts","module":"./build/index.js","engines":{"node":">=24"},"exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.cjs"},"./styles.css":"./build/styles.css","./package.json":"./package.json"},"gitHead":"537bcbe44b69d111d3e17c9b33de5efdd351812a","private":false,"scripts":{"dev":"npm run tokens && vite build --watch","lint":"eslint src && stylelint \"src/**/*.scss\"","size":"npm run build && size-limit","test":"jest","build":"npm run tokens && vite build","format":"prettier --write \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"__tests__/**/*.{ts,tsx}\"","tokens":"node scripts/build-tokens.mjs","verify":"npm run tokens && npm run check:contrast && npm run typecheck && npm run lint && npm run test:coverage && npm run build && npm run check:api && npm run check:animations && size-limit","prepare":"git rev-parse --git-dir >/dev/null 2>&1 && git config core.hooksPath .githooks || true","check:api":"node scripts/check-api.mjs","typecheck":"tsc --noEmit","playground":"vite --config playground/vite.config.ts","test:watch":"jest --watch","test:device":"playwright test --project=ios --project=android","test:visual":"playwright test --project=masaüstü --project=mobil","format:check":"prettier --check \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"__tests__/**/*.{ts,tsx}\"","test:coverage":"jest --coverage","check:contrast":"node scripts/check-contrast.mjs","check:animations":"node scripts/check-animations.mjs","playground:build":"npm run tokens && vite build --config playground/vite.config.ts","test:device:install":"playwright install webkit chromium"},"_npmUser":{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"},"publisher":"Ahmet ilhan","repository":{"url":"git+https://github.com/ahmetilhn/hanui.git","type":"git"},"_npmVersion":"11.16.0","description":"Accessible, theme-driven React component library built on SCSS Modules. Bootstrap Icons for shell iconography, two built-in themes and a fully overridable design-token contract.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","sass":"^1.83.4","vite":"^5.4.11","react":"^19.0.0","eslint":"^9.18.0","ts-jest":"^29.2.5","jest-axe":"^11.0.0","prettier":"^3.4.2","react-dom":"^19.0.0","stylelint":"^17.14.1","@eslint/js":"^9.18.0","size-limit":"^13.0.3","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.10.7","@types/react":"^19.0.7","@types/jest-axe":"^3.5.9","vite-plugin-dts":"^4.5.0","@playwright/test":"^1.62.1","@types/react-dom":"^19.0.3","eslint-plugin-react":"^7.37.4","react-bootstrap-icons":"^1.11.6","@ahmetilhn/handy-utils":"^3.2.8","@testing-library/react":"^16.3.2","eslint-config-prettier":"^9.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.20.0","eslint-plugin-react-hooks":"^5.1.0","@testing-library/user-event":"^14.6.1","@size-limit/preset-small-lib":"^13.0.3","stylelint-config-standard-scss":"^17.0.0","@typescript-eslint/eslint-plugin":"^8.20.0"},"peerDependencies":{"react":">=18","react-dom":">=18","react-bootstrap-icons":">=1.11.0","@ahmetilhn/handy-utils":">=3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hanui_2.4.0_1786212992028_0.6903987524992463","host":"s3://npm-registry-packages-npm-production"}},"2.4.1":{"name":"@ahmetilhn/hanui","version":"2.4.1","keywords":["react","ui","component-library","design-system","scss","css-modules","accessible","a11y","wcag","dark-mode","theming","design-tokens","typescript","headless","modal","combobox","bottom-sheet","data-table"],"author":{"name":"Ahmet ilhan","email":"ahmetilhan.dev@gmail.com"},"license":"MIT","_id":"@ahmetilhn/hanui@2.4.1","maintainers":[{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"}],"homepage":"https://github.com/ahmetilhn/hanui#readme","bugs":{"url":"https://github.com/ahmetilhn/hanui/issues"},"dist":{"shasum":"a0d636915686587acb24f92af533265197247774","tarball":"https://registry.npmjs.org/@ahmetilhn/hanui/-/hanui-2.4.1.tgz","fileCount":9,"integrity":"sha512-JB8pYTlm2NXJllqzuUS+kHlG1+IZXruCrs3kVT8nXsgrfphW0Bh7Iy5jbalxusAu4bpC4E/hFDwQ5wl15GUJOw==","signatures":[{"sig":"MEYCIQDTTZFTUGAMVR3jViuIy76aeksEzDtBqum3P/hb4oyfeQIhAPG+fpeoSD5fcp9ydYiI/CEsDCpOSLEm3BK+jP3ijqGU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1498979},"main":"./build/index.cjs","type":"module","types":"./build/index.d.ts","module":"./build/index.js","engines":{"node":">=24"},"exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.cjs"},"./styles.css":"./build/styles.css","./package.json":"./package.json"},"gitHead":"ffe43c3f83c3579fe5e8f79907160111ae3889a3","private":false,"scripts":{"dev":"npm run tokens && vite build --watch","lint":"eslint src && stylelint \"src/**/*.scss\"","size":"npm run build && size-limit","test":"jest","build":"npm run tokens && vite build","format":"prettier --write \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"__tests__/**/*.{ts,tsx}\"","tokens":"node scripts/build-tokens.mjs","verify":"npm run tokens && npm run check:contrast && npm run typecheck && npm run lint && npm run test:coverage && npm run build && npm run check:api && npm run check:animations && size-limit","prepare":"git rev-parse --git-dir >/dev/null 2>&1 && git config core.hooksPath .githooks || true","check:api":"node scripts/check-api.mjs","typecheck":"tsc --noEmit","playground":"vite --config playground/vite.config.ts","test:watch":"jest --watch","test:device":"playwright test --project=ios --project=android","test:visual":"playwright test --project=desktop --project=mobile","format:check":"prettier --check \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"__tests__/**/*.{ts,tsx}\"","test:coverage":"jest --coverage","check:contrast":"node scripts/check-contrast.mjs","check:animations":"node scripts/check-animations.mjs","playground:build":"npm run tokens && vite build --config playground/vite.config.ts","test:device:install":"playwright install webkit chromium"},"_npmUser":{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"},"publisher":"Ahmet ilhan","repository":{"url":"git+https://github.com/ahmetilhn/hanui.git","type":"git"},"_npmVersion":"11.16.0","description":"Accessible, theme-driven React component library built on SCSS Modules. Bootstrap Icons for shell iconography, two built-in themes and a fully overridable design-token contract.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","sass":"^1.83.4","vite":"^5.4.11","react":"^19.0.0","eslint":"^9.18.0","ts-jest":"^29.2.5","jest-axe":"^11.0.0","prettier":"^3.4.2","react-dom":"^19.0.0","stylelint":"^17.14.1","@eslint/js":"^9.18.0","size-limit":"^13.0.3","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.10.7","@types/react":"^19.0.7","@types/jest-axe":"^3.5.9","vite-plugin-dts":"^4.5.0","@playwright/test":"^1.62.1","@types/react-dom":"^19.0.3","eslint-plugin-react":"^7.37.4","react-bootstrap-icons":"^1.11.6","@ahmetilhn/handy-utils":"^3.2.8","@testing-library/react":"^16.3.2","eslint-config-prettier":"^9.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.20.0","eslint-plugin-react-hooks":"^5.1.0","@testing-library/user-event":"^14.6.1","@size-limit/preset-small-lib":"^13.0.3","stylelint-config-standard-scss":"^17.0.0","@typescript-eslint/eslint-plugin":"^8.20.0"},"peerDependencies":{"react":">=18","react-dom":">=18","react-bootstrap-icons":">=1.11.0","@ahmetilhn/handy-utils":">=3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hanui_2.4.1_1786215434272_0.9900188469918614","host":"s3://npm-registry-packages-npm-production"}},"2.5.0":{"name":"@ahmetilhn/hanui","version":"2.5.0","keywords":["react","ui","component-library","design-system","scss","css-modules","accessible","a11y","wcag","dark-mode","theming","design-tokens","typescript","headless","modal","combobox","bottom-sheet","data-table"],"author":{"name":"Ahmet ilhan","email":"ahmetilhan.dev@gmail.com"},"license":"MIT","_id":"@ahmetilhn/hanui@2.5.0","maintainers":[{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"}],"homepage":"https://github.com/ahmetilhn/hanui#readme","bugs":{"url":"https://github.com/ahmetilhn/hanui/issues"},"dist":{"shasum":"7ebee24ec51a53c2466f0a3bdbc5e3fef6bed015","tarball":"https://registry.npmjs.org/@ahmetilhn/hanui/-/hanui-2.5.0.tgz","fileCount":9,"integrity":"sha512-TqEA1BNLCLAHgnrpO2SegEp93F3I+z0aBYxl66bUZslivpwDzv3pxp8ywkZKoogBMcDykSfLLbueSjo7bGYMZg==","signatures":[{"sig":"MEUCIQDcsKBA+h6oMSt7SdFb+DzUMTlUd6aV8mQK8PsQX3HbZgIgJSEynmE19kySQQvElhi8Q4D4CmP8jXy6Izr9wLWDcnY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1503181},"main":"./build/index.cjs","type":"module","types":"./build/index.d.ts","module":"./build/index.js","engines":{"node":">=24"},"exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.cjs"},"./styles.css":"./build/styles.css","./package.json":"./package.json"},"gitHead":"487e0180de4f4dd0f1742b7eb83dcd24e3ad0610","private":false,"scripts":{"dev":"npm run tokens && vite build --watch","lint":"eslint src && stylelint \"src/**/*.scss\"","size":"npm run build && size-limit","test":"jest","build":"npm run tokens && vite build","format":"prettier --write \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"__tests__/**/*.{ts,tsx}\"","tokens":"node scripts/build-tokens.mjs","verify":"npm run tokens && npm run check:contrast && npm run typecheck && npm run lint && npm run test:coverage && npm run build && npm run check:api && npm run check:animations && size-limit","prepare":"git rev-parse --git-dir >/dev/null 2>&1 && git config core.hooksPath .githooks || true","check:api":"node scripts/check-api.mjs","typecheck":"tsc --noEmit","playground":"vite --config playground/vite.config.ts","test:watch":"jest --watch","test:device":"playwright test --project=ios --project=android","test:visual":"playwright test --project=desktop --project=mobile","format:check":"prettier --check \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"__tests__/**/*.{ts,tsx}\"","test:coverage":"jest --coverage","check:contrast":"node scripts/check-contrast.mjs","check:animations":"node scripts/check-animations.mjs","playground:build":"npm run tokens && vite build --config playground/vite.config.ts","test:device:install":"playwright install webkit chromium"},"_npmUser":{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"},"publisher":"Ahmet ilhan","repository":{"url":"git+https://github.com/ahmetilhn/hanui.git","type":"git"},"_npmVersion":"11.16.0","description":"Accessible, theme-driven React component library built on SCSS Modules. Bootstrap Icons for shell iconography, two built-in themes and a fully overridable design-token contract.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","sass":"^1.83.4","vite":"^5.4.11","react":"^19.0.0","eslint":"^9.18.0","ts-jest":"^29.2.5","jest-axe":"^11.0.0","prettier":"^3.4.2","react-dom":"^19.0.0","stylelint":"^17.14.1","@eslint/js":"^9.18.0","size-limit":"^13.0.3","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.10.7","@types/react":"^19.0.7","@types/jest-axe":"^3.5.9","vite-plugin-dts":"^4.5.0","@playwright/test":"^1.62.1","@types/react-dom":"^19.0.3","eslint-plugin-react":"^7.37.4","react-bootstrap-icons":"^1.11.6","@ahmetilhn/handy-utils":"^3.2.8","@testing-library/react":"^16.3.2","eslint-config-prettier":"^9.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.20.0","eslint-plugin-react-hooks":"^5.1.0","@testing-library/user-event":"^14.6.1","@size-limit/preset-small-lib":"^13.0.3","stylelint-config-standard-scss":"^17.0.0","@typescript-eslint/eslint-plugin":"^8.20.0"},"peerDependencies":{"react":">=18","react-dom":">=18","react-bootstrap-icons":">=1.11.0","@ahmetilhn/handy-utils":">=3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hanui_2.5.0_1786220949543_0.83988622630032","host":"s3://npm-registry-packages-npm-production"}},"2.5.1":{"name":"@ahmetilhn/hanui","version":"2.5.1","keywords":["react","ui","component-library","design-system","scss","css-modules","accessible","a11y","wcag","dark-mode","theming","design-tokens","typescript","headless","modal","combobox","bottom-sheet","data-table"],"author":{"name":"Ahmet ilhan","email":"ahmetilhan.dev@gmail.com"},"license":"MIT","_id":"@ahmetilhn/hanui@2.5.1","maintainers":[{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"}],"homepage":"https://github.com/ahmetilhn/hanui#readme","bugs":{"url":"https://github.com/ahmetilhn/hanui/issues"},"dist":{"shasum":"6ecee91e3cf8a2095405798f6d69e4ed8ccac33b","tarball":"https://registry.npmjs.org/@ahmetilhn/hanui/-/hanui-2.5.1.tgz","fileCount":9,"integrity":"sha512-jRtGxmCokT3q0tK2QbVW30SPkFZHMU0DdlplGsjBrqusUsZFh977QD5qorir2XbWRSypmS9QaEesR5boMynhRA==","signatures":[{"sig":"MEYCIQCx32wgqp49AuPHNxK0iMWrJnWblhhmDYwodrDhUbdSpwIhAOObeePMISZ3ZvxxpdkfaCV+zjr9QAyUMRtXrNZosChB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1504898},"main":"./build/index.cjs","type":"module","types":"./build/index.d.ts","module":"./build/index.js","engines":{"node":">=24"},"exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.cjs"},"./styles.css":"./build/styles.css","./package.json":"./package.json"},"gitHead":"7c4baae3b2c34588e44189a4b36b372d0c7dab9a","private":false,"scripts":{"dev":"npm run tokens && vite build --watch","lint":"eslint src && stylelint \"src/**/*.scss\"","size":"npm run build && size-limit","test":"jest","build":"npm run tokens && vite build","format":"prettier --write \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"__tests__/**/*.{ts,tsx}\"","tokens":"node scripts/build-tokens.mjs","verify":"npm run tokens && npm run check:contrast && npm run typecheck && npm run lint && npm run test:coverage && npm run build && npm run check:api && npm run check:animations && size-limit","prepare":"git rev-parse --git-dir >/dev/null 2>&1 && git config core.hooksPath .githooks || true","check:api":"node scripts/check-api.mjs","typecheck":"tsc --noEmit","playground":"vite --config playground/vite.config.ts","test:watch":"jest --watch","test:device":"playwright test --project=ios --project=android","test:visual":"playwright test --project=desktop --project=mobile","format:check":"prettier --check \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"__tests__/**/*.{ts,tsx}\"","test:coverage":"jest --coverage","check:contrast":"node scripts/check-contrast.mjs","check:animations":"node scripts/check-animations.mjs","playground:build":"npm run tokens && vite build --config playground/vite.config.ts","test:device:install":"playwright install webkit chromium"},"_npmUser":{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"},"publisher":"Ahmet ilhan","repository":{"url":"git+https://github.com/ahmetilhn/hanui.git","type":"git"},"_npmVersion":"11.16.0","description":"Accessible, theme-driven React component library built on SCSS Modules. Bootstrap Icons for shell iconography, two built-in themes and a fully overridable design-token contract.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","sass":"^1.83.4","vite":"^5.4.11","react":"^19.0.0","eslint":"^9.18.0","ts-jest":"^29.2.5","jest-axe":"^11.0.0","prettier":"^3.4.2","react-dom":"^19.0.0","stylelint":"^17.14.1","@eslint/js":"^9.18.0","size-limit":"^13.0.3","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.10.7","@types/react":"^19.0.7","@types/jest-axe":"^3.5.9","vite-plugin-dts":"^4.5.0","@playwright/test":"^1.62.1","@types/react-dom":"^19.0.3","eslint-plugin-react":"^7.37.4","react-bootstrap-icons":"^1.11.6","@ahmetilhn/handy-utils":"^3.2.8","@testing-library/react":"^16.3.2","eslint-config-prettier":"^9.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.20.0","eslint-plugin-react-hooks":"^5.1.0","@testing-library/user-event":"^14.6.1","@size-limit/preset-small-lib":"^13.0.3","stylelint-config-standard-scss":"^17.0.0","@typescript-eslint/eslint-plugin":"^8.20.0"},"peerDependencies":{"react":">=18","react-dom":">=18","react-bootstrap-icons":">=1.11.0","@ahmetilhn/handy-utils":">=3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hanui_2.5.1_1786224798671_0.4912440251468191","host":"s3://npm-registry-packages-npm-production"}},"2.6.0":{"name":"@ahmetilhn/hanui","version":"2.6.0","keywords":["react","ui","component-library","design-system","scss","css-modules","accessible","a11y","wcag","dark-mode","theming","design-tokens","typescript","headless","modal","combobox","bottom-sheet","data-table"],"author":{"name":"Ahmet ilhan","email":"ahmetilhan.dev@gmail.com"},"license":"MIT","_id":"@ahmetilhn/hanui@2.6.0","maintainers":[{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"}],"homepage":"https://github.com/ahmetilhn/hanui#readme","bugs":{"url":"https://github.com/ahmetilhn/hanui/issues"},"dist":{"shasum":"d45d6f3c7f94d72cc7eaea29fef7cbb453cec791","tarball":"https://registry.npmjs.org/@ahmetilhn/hanui/-/hanui-2.6.0.tgz","fileCount":9,"integrity":"sha512-9Jta0ftb5e03SajBIevJCep2sIWlr3gW7dfZjckBhgps2JYB4xERvrDZJUtpGj/b33eI0uMgQb39kXKCSML9kg==","signatures":[{"sig":"MEYCIQC/ZkEEMykFNJznQhfBFrZvZzKh4a13x37YjkPZKMdtMQIhAOK5hizD8bSOgd27pDuQdzGk1Cb70TAAR8j+R4RKu4KM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1507371},"main":"./build/index.cjs","type":"module","types":"./build/index.d.ts","module":"./build/index.js","engines":{"node":">=24"},"exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.cjs"},"./styles.css":"./build/styles.css","./package.json":"./package.json"},"gitHead":"36b639c66106c79f36a39ae6e04c8825bdab5653","private":false,"scripts":{"dev":"npm run tokens && vite build --watch","lint":"eslint src && stylelint \"src/**/*.scss\"","size":"npm run build && size-limit","test":"jest","build":"npm run tokens && vite build","format":"prettier --write \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"__tests__/**/*.{ts,tsx}\"","tokens":"node scripts/build-tokens.mjs","verify":"npm run tokens && npm run check:contrast && npm run typecheck && npm run lint && npm run test:coverage && npm run build && npm run check:api && npm run check:animations && size-limit","prepare":"git rev-parse --git-dir >/dev/null 2>&1 && git config core.hooksPath .githooks || true","check:api":"node scripts/check-api.mjs","typecheck":"tsc --noEmit","playground":"vite --config playground/vite.config.ts","test:watch":"jest --watch","test:device":"playwright test --project=ios --project=android","test:visual":"playwright test --project=desktop --project=mobile","format:check":"prettier --check \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"__tests__/**/*.{ts,tsx}\"","test:coverage":"jest --coverage","check:contrast":"node scripts/check-contrast.mjs","check:animations":"node scripts/check-animations.mjs","playground:build":"npm run tokens && vite build --config playground/vite.config.ts","test:device:install":"playwright install webkit chromium"},"_npmUser":{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"},"publisher":"Ahmet ilhan","repository":{"url":"git+https://github.com/ahmetilhn/hanui.git","type":"git"},"_npmVersion":"11.16.0","description":"Accessible, theme-driven React component library built on SCSS Modules. Bootstrap Icons for shell iconography, two built-in themes and a fully overridable design-token contract.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","sass":"^1.83.4","vite":"^5.4.11","react":"^19.0.0","eslint":"^9.18.0","ts-jest":"^29.2.5","jest-axe":"^11.0.0","prettier":"^3.4.2","react-dom":"^19.0.0","stylelint":"^17.14.1","@eslint/js":"^9.18.0","size-limit":"^13.0.3","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.10.7","@types/react":"^19.0.7","@types/jest-axe":"^3.5.9","vite-plugin-dts":"^4.5.0","@playwright/test":"^1.62.1","@types/react-dom":"^19.0.3","eslint-plugin-react":"^7.37.4","react-bootstrap-icons":"^1.11.6","@ahmetilhn/handy-utils":"^3.2.8","@testing-library/react":"^16.3.2","eslint-config-prettier":"^9.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.20.0","eslint-plugin-react-hooks":"^5.1.0","@testing-library/user-event":"^14.6.1","@size-limit/preset-small-lib":"^13.0.3","stylelint-config-standard-scss":"^17.0.0","@typescript-eslint/eslint-plugin":"^8.20.0"},"peerDependencies":{"react":">=18","react-dom":">=18","react-bootstrap-icons":">=1.11.0","@ahmetilhn/handy-utils":">=3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hanui_2.6.0_1786268469842_0.2758068197064736","host":"s3://npm-registry-packages-npm-production"}},"2.7.0":{"name":"@ahmetilhn/hanui","version":"2.7.0","keywords":["react","ui","component-library","design-system","scss","css-modules","accessible","a11y","wcag","dark-mode","theming","design-tokens","typescript","headless","modal","combobox","bottom-sheet","data-table"],"author":{"name":"Ahmet ilhan","email":"ahmetilhan.dev@gmail.com"},"license":"MIT","_id":"@ahmetilhn/hanui@2.7.0","maintainers":[{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"}],"homepage":"https://github.com/ahmetilhn/hanui#readme","bugs":{"url":"https://github.com/ahmetilhn/hanui/issues"},"dist":{"shasum":"2861aa9f4089fd99e1836f9e72fbffb963201b46","tarball":"https://registry.npmjs.org/@ahmetilhn/hanui/-/hanui-2.7.0.tgz","fileCount":9,"integrity":"sha512-C8GOjfJyViXygoDqLSmCt/RhYdcogVTFNVfptXEmrD7EnCweEtJovBWHm5ol/zEtVv9s6BadKkrrKxculK+jBg==","signatures":[{"sig":"MEQCIBTgEe4Wp1mhtd1mBSj2e6NnuJc88axFgDd8ZSzlUc4UAiARilLQfp+oU4dot3evycxSZA+jJg8XDCS/BY8G8iSOZA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1515836},"main":"./build/index.cjs","type":"module","types":"./build/index.d.ts","module":"./build/index.js","engines":{"node":">=24"},"exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.cjs"},"./styles.css":"./build/styles.css","./package.json":"./package.json"},"gitHead":"0687dea8a2aac94197e156ce5f390591c1887aaa","private":false,"scripts":{"dev":"npm run tokens && vite build --watch","lint":"eslint src && stylelint \"src/**/*.scss\"","size":"npm run build && size-limit","test":"jest","build":"npm run tokens && vite build","format":"prettier --write \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"__tests__/**/*.{ts,tsx}\"","tokens":"node scripts/build-tokens.mjs","verify":"npm run tokens && npm run check:contrast && npm run typecheck && npm run lint && npm run test:coverage && npm run build && npm run check:api && npm run check:animations && size-limit","prepare":"git rev-parse --git-dir >/dev/null 2>&1 && git config core.hooksPath .githooks || true","check:api":"node scripts/check-api.mjs","typecheck":"tsc --noEmit","playground":"vite --config playground/vite.config.ts","test:watch":"jest --watch","test:device":"playwright test --project=ios --project=android","test:visual":"playwright test --project=desktop --project=mobile","format:check":"prettier --check \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"__tests__/**/*.{ts,tsx}\"","test:coverage":"jest --coverage","check:contrast":"node scripts/check-contrast.mjs","check:animations":"node scripts/check-animations.mjs","playground:build":"npm run tokens && vite build --config playground/vite.config.ts","test:device:install":"playwright install webkit chromium"},"_npmUser":{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"},"publisher":"Ahmet ilhan","repository":{"url":"git+https://github.com/ahmetilhn/hanui.git","type":"git"},"_npmVersion":"11.16.0","description":"Accessible, theme-driven React component library built on SCSS Modules. Bootstrap Icons for shell iconography, two built-in themes and a fully overridable design-token contract.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","sass":"^1.83.4","vite":"^5.4.11","react":"^19.0.0","eslint":"^9.18.0","ts-jest":"^29.2.5","jest-axe":"^11.0.0","prettier":"^3.4.2","react-dom":"^19.0.0","stylelint":"^17.14.1","@eslint/js":"^9.18.0","size-limit":"^13.0.3","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.10.7","@types/react":"^19.0.7","@types/jest-axe":"^3.5.9","vite-plugin-dts":"^4.5.0","@playwright/test":"^1.62.1","@types/react-dom":"^19.0.3","eslint-plugin-react":"^7.37.4","react-bootstrap-icons":"^1.11.6","@ahmetilhn/handy-utils":"^3.2.8","@testing-library/react":"^16.3.2","eslint-config-prettier":"^9.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.20.0","eslint-plugin-react-hooks":"^5.1.0","@testing-library/user-event":"^14.6.1","@size-limit/preset-small-lib":"^13.0.3","stylelint-config-standard-scss":"^17.0.0","@typescript-eslint/eslint-plugin":"^8.20.0"},"peerDependencies":{"react":">=18","react-dom":">=18","react-bootstrap-icons":">=1.11.0","@ahmetilhn/handy-utils":">=3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hanui_2.7.0_1786374425988_0.5138101622725764","host":"s3://npm-registry-packages-npm-production"}},"2.7.1":{"name":"@ahmetilhn/hanui","version":"2.7.1","keywords":["react","ui","component-library","design-system","scss","css-modules","accessible","a11y","wcag","dark-mode","theming","design-tokens","typescript","headless","modal","combobox","bottom-sheet","data-table"],"author":{"name":"Ahmet ilhan","email":"ahmetilhan.dev@gmail.com"},"license":"MIT","_id":"@ahmetilhn/hanui@2.7.1","maintainers":[{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"}],"homepage":"https://github.com/ahmetilhn/hanui#readme","bugs":{"url":"https://github.com/ahmetilhn/hanui/issues"},"dist":{"shasum":"4f2a4970d61305f59cb77a200837b28f8295a319","tarball":"https://registry.npmjs.org/@ahmetilhn/hanui/-/hanui-2.7.1.tgz","fileCount":9,"integrity":"sha512-agJO9dYXcKNVh2F5qKiAia+efMfblym7wsvDdyrVBr51PaCinNA35THi0dYQrSvQQVm9BtnQL/5Ki/l0a5ulDQ==","signatures":[{"sig":"MEQCIAUExWAdTxNdQmLisJRfrPfRtRXxAN1KSWd/m/65FVWWAiAoT1DRoDnKC4qw0dL3QUvyRj89iBUJTNRj6nHeRtl9qw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1517472},"main":"./build/index.cjs","type":"module","types":"./build/index.d.ts","module":"./build/index.js","engines":{"node":">=24"},"exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.cjs"},"./styles.css":"./build/styles.css","./package.json":"./package.json"},"gitHead":"af482c7a4052a711f0bdee3061d47056570506d3","private":false,"scripts":{"dev":"npm run tokens && vite build --watch","lint":"eslint src && stylelint \"src/**/*.scss\"","size":"npm run build && size-limit","test":"jest","build":"npm run tokens && vite build","format":"prettier --write \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"__tests__/**/*.{ts,tsx}\"","tokens":"node scripts/build-tokens.mjs","verify":"npm run tokens && npm run check:contrast && npm run typecheck && npm run lint && npm run test:coverage && npm run build && npm run check:api && npm run check:animations && size-limit","prepare":"git rev-parse --git-dir >/dev/null 2>&1 && git config core.hooksPath .githooks || true","check:api":"node scripts/check-api.mjs","typecheck":"tsc --noEmit","playground":"vite --config playground/vite.config.ts","test:watch":"jest --watch","test:device":"playwright test --project=ios --project=android","test:visual":"playwright test --project=desktop --project=mobile","format:check":"prettier --check \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"__tests__/**/*.{ts,tsx}\"","test:coverage":"jest --coverage","check:contrast":"node scripts/check-contrast.mjs","check:animations":"node scripts/check-animations.mjs","playground:build":"npm run tokens && vite build --config playground/vite.config.ts","test:device:install":"playwright install webkit chromium"},"_npmUser":{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"},"publisher":"Ahmet ilhan","repository":{"url":"git+https://github.com/ahmetilhn/hanui.git","type":"git"},"_npmVersion":"11.16.0","description":"Accessible, theme-driven React component library built on SCSS Modules. Bootstrap Icons for shell iconography, two built-in themes and a fully overridable design-token contract.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","sass":"^1.83.4","vite":"^5.4.11","react":"^19.0.0","eslint":"^9.18.0","ts-jest":"^29.2.5","jest-axe":"^11.0.0","prettier":"^3.4.2","react-dom":"^19.0.0","stylelint":"^17.14.1","@eslint/js":"^9.18.0","size-limit":"^13.0.3","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.10.7","@types/react":"^19.0.7","@types/jest-axe":"^3.5.9","vite-plugin-dts":"^4.5.0","@playwright/test":"^1.62.1","@types/react-dom":"^19.0.3","eslint-plugin-react":"^7.37.4","react-bootstrap-icons":"^1.11.6","@ahmetilhn/handy-utils":"^3.2.8","@testing-library/react":"^16.3.2","eslint-config-prettier":"^9.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.20.0","eslint-plugin-react-hooks":"^5.1.0","@testing-library/user-event":"^14.6.1","@size-limit/preset-small-lib":"^13.0.3","stylelint-config-standard-scss":"^17.0.0","@typescript-eslint/eslint-plugin":"^8.20.0"},"peerDependencies":{"react":">=18","react-dom":">=18","react-bootstrap-icons":">=1.11.0","@ahmetilhn/handy-utils":">=3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hanui_2.7.1_1786587241123_0.5636569707950194","host":"s3://npm-registry-packages-npm-production"}},"2.8.0":{"name":"@ahmetilhn/hanui","version":"2.8.0","keywords":["react","ui","component-library","design-system","scss","css-modules","accessible","a11y","wcag","dark-mode","theming","design-tokens","typescript","headless","modal","combobox","bottom-sheet","data-table"],"author":{"name":"Ahmet ilhan","email":"ahmetilhan.dev@gmail.com"},"license":"MIT","_id":"@ahmetilhn/hanui@2.8.0","maintainers":[{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"}],"homepage":"https://github.com/ahmetilhn/hanui#readme","bugs":{"url":"https://github.com/ahmetilhn/hanui/issues"},"dist":{"shasum":"4c7c87f8b4d3439df51aee16f517a0c0cddf430d","tarball":"https://registry.npmjs.org/@ahmetilhn/hanui/-/hanui-2.8.0.tgz","fileCount":9,"integrity":"sha512-ZNwz8NQgajrdBoNdyYVycwnUhH3KMzXYdkFAxeqSqveY9riDvSaOsRe59J+pJ6NEivl/gT9umGZoCveP1zmEpw==","signatures":[{"sig":"MEUCIQDEMLG7ZbXn1EgqhGzAI1TI4z0+J4kvq3j4q4ilFTWgmgIgO4SokIaUbty5gzEkXISHbee5xcGhmKJWQbqyO4b+mjI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1581344},"main":"./build/index.cjs","type":"module","types":"./build/index.d.ts","module":"./build/index.js","engines":{"node":">=24"},"exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.cjs"},"./styles.css":"./build/styles.css","./package.json":"./package.json"},"gitHead":"f8d8f2886917ae219f6012879ac879f4ca1fe32b","private":false,"scripts":{"dev":"npm run tokens && vite build --watch","lint":"eslint src __tests__ scripts --max-warnings 0 && stylelint \"src/**/*.scss\"","size":"npm run build && size-limit","test":"jest","build":"npm run tokens && vite build","format":"prettier --write \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"__tests__/**/*.{ts,tsx}\"","tokens":"node scripts/build-tokens.mjs","verify":"npm run tokens && npm run check:contrast && npm run typecheck && npm run lint && npm run test:coverage && npm run build && npm run check:api && npm run check:animations && size-limit","prepare":"git rev-parse --git-dir >/dev/null 2>&1 && git config core.hooksPath .githooks || true","check:api":"node scripts/check-api.mjs","typecheck":"tsc --noEmit","playground":"vite --config playground/vite.config.ts","test:watch":"jest --watch","test:device":"playwright test --project=ios --project=android","test:visual":"playwright test --project=desktop --project=mobile","format:check":"prettier --check \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"__tests__/**/*.{ts,tsx}\"","test:coverage":"jest --coverage","check:contrast":"node scripts/check-contrast.mjs","check:animations":"node scripts/check-animations.mjs","playground:build":"npm run tokens && vite build --config playground/vite.config.ts","test:device:install":"playwright install webkit chromium"},"_npmUser":{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"},"publisher":"Ahmet ilhan","repository":{"url":"git+https://github.com/ahmetilhn/hanui.git","type":"git"},"_npmVersion":"11.17.0","description":"Accessible, theme-driven React component library built on SCSS Modules. Bootstrap Icons for shell iconography, two built-in themes and a fully overridable design-token contract.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","sass":"^1.83.4","vite":"^5.4.11","react":"^19.0.0","eslint":"^9.18.0","ts-jest":"^29.2.5","jest-axe":"^11.0.0","prettier":"^3.4.2","react-dom":"^19.0.0","stylelint":"^17.14.1","@eslint/js":"^9.18.0","size-limit":"^13.0.3","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.10.7","@types/react":"^19.0.7","@types/jest-axe":"^3.5.9","vite-plugin-dts":"^4.5.0","@playwright/test":"^1.62.1","@types/react-dom":"^19.0.3","eslint-plugin-jest":"^29.16.1","eslint-plugin-react":"^7.37.4","react-bootstrap-icons":"^1.11.6","@ahmetilhn/handy-utils":"^4.1.0","@testing-library/react":"^16.3.2","eslint-config-prettier":"^9.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.20.0","eslint-plugin-react-hooks":"^5.1.0","@testing-library/user-event":"^14.6.1","@size-limit/preset-small-lib":"^13.0.3","stylelint-config-standard-scss":"^17.0.0","@typescript-eslint/eslint-plugin":"^8.20.0"},"peerDependencies":{"react":">=18","react-dom":">=18","react-bootstrap-icons":">=1.11.0","@ahmetilhn/handy-utils":">=3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hanui_2.8.0_1786825493933_0.7288320635827648","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@ahmetilhn/hanui","version":"3.0.0","keywords":["react","ui","component-library","design-system","scss","css-modules","accessible","a11y","wcag","dark-mode","theming","design-tokens","typescript","headless","modal","combobox","bottom-sheet","data-table"],"author":{"name":"Ahmet ilhan","email":"ahmetilhan.dev@gmail.com"},"license":"MIT","_id":"@ahmetilhn/hanui@3.0.0","maintainers":[{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"}],"homepage":"https://github.com/ahmetilhn/hanui#readme","bugs":{"url":"https://github.com/ahmetilhn/hanui/issues"},"dist":{"shasum":"688278d9e2aee1f599ff554310390104da1b0a2e","tarball":"https://registry.npmjs.org/@ahmetilhn/hanui/-/hanui-3.0.0.tgz","fileCount":9,"integrity":"sha512-Y9W+2hutr+loumiYCemfwYUEviG5ZOt7HeyRveBMZPdkJWdXe58DnDoqvt6fo2t/vU2lD9vEBnCDmHdL5XxjeQ==","signatures":[{"sig":"MEQCICaiDj3atCA6qPPF/Xrx0UXUKsWd9EBRn8xQGs6fnQV/AiAg4zyaj0HIt6KQG8gbl5vceVDowJtetwQF+At8gfoJsg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1596721},"main":"./build/index.cjs","type":"module","types":"./build/index.d.ts","module":"./build/index.js","engines":{"node":">=24"},"exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.cjs"},"./styles.css":"./build/styles.css","./package.json":"./package.json"},"gitHead":"210db0fee6ea7214fce9f1ad70506a0d64a2e467","private":false,"scripts":{"dev":"npm run tokens && vite build --watch","lint":"eslint src __tests__ scripts --max-warnings 0 && stylelint \"src/**/*.scss\"","size":"npm run build && size-limit","test":"jest","build":"npm run tokens && vite build","format":"prettier --write \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"__tests__/**/*.{ts,tsx}\"","tokens":"node scripts/build-tokens.mjs","verify":"npm run tokens && npm run check:contrast && npm run typecheck && npm run lint && npm run test:coverage && npm run build && npm run check:api && npm run check:animations && size-limit","prepare":"git rev-parse --git-dir >/dev/null 2>&1 && git config core.hooksPath .githooks || true","check:api":"node scripts/check-api.mjs","typecheck":"tsc --noEmit","playground":"vite --config playground/vite.config.ts","test:watch":"jest --watch","test:device":"playwright test --project=ios --project=android","test:visual":"playwright test --project=desktop --project=mobile","format:check":"prettier --check \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"__tests__/**/*.{ts,tsx}\"","test:coverage":"jest --coverage","check:contrast":"node scripts/check-contrast.mjs","check:animations":"node scripts/check-animations.mjs","playground:build":"npm run tokens && vite build --config playground/vite.config.ts","test:device:install":"playwright install webkit chromium"},"_npmUser":{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"},"publisher":"Ahmet ilhan","repository":{"url":"git+https://github.com/ahmetilhn/hanui.git","type":"git"},"_npmVersion":"11.17.0","description":"Accessible, theme-driven React component library built on SCSS Modules. Bootstrap Icons for shell iconography, two built-in themes and a fully overridable design-token contract.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","sass":"^1.83.4","vite":"^5.4.11","react":"^19.0.0","eslint":"^9.18.0","ts-jest":"^29.2.5","jest-axe":"^11.0.0","prettier":"^3.4.2","react-dom":"^19.0.0","stylelint":"^17.14.1","@eslint/js":"^9.18.0","size-limit":"^13.0.3","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.10.7","@types/react":"^19.0.7","@types/jest-axe":"^3.5.9","vite-plugin-dts":"^4.5.0","@playwright/test":"^1.62.1","@types/react-dom":"^19.0.3","eslint-plugin-jest":"^29.16.1","eslint-plugin-react":"^7.37.4","react-bootstrap-icons":"^1.11.6","@ahmetilhn/handy-utils":"^4.1.0","@testing-library/react":"^16.3.2","eslint-config-prettier":"^9.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.20.0","eslint-plugin-react-hooks":"^5.1.0","@testing-library/user-event":"^14.6.1","@size-limit/preset-small-lib":"^13.0.3","stylelint-config-standard-scss":"^17.0.0","@typescript-eslint/eslint-plugin":"^8.20.0"},"peerDependencies":{"react":">=18","react-dom":">=18","react-bootstrap-icons":">=1.11.0","@ahmetilhn/handy-utils":">=3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hanui_3.0.0_1786868402784_0.7324045416926823","host":"s3://npm-registry-packages-npm-production"}},"3.2.0":{"name":"@ahmetilhn/hanui","version":"3.2.0","keywords":["react","ui","component-library","design-system","scss","css-modules","accessible","a11y","wcag","dark-mode","theming","design-tokens","typescript","headless","modal","combobox","bottom-sheet","data-table"],"author":{"name":"Ahmet ilhan","email":"ahmetilhan.dev@gmail.com"},"license":"MIT","_id":"@ahmetilhn/hanui@3.2.0","maintainers":[{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"}],"homepage":"https://github.com/ahmetilhn/hanui#readme","bugs":{"url":"https://github.com/ahmetilhn/hanui/issues"},"dist":{"shasum":"08fced94be5ba2a61f79c8002424a38237f9da15","tarball":"https://registry.npmjs.org/@ahmetilhn/hanui/-/hanui-3.2.0.tgz","fileCount":9,"integrity":"sha512-1P60g0r8LGQCcS2sayXlkGD4PWWYl1/wrrJuRwHyscJVDpcH4bLA2XIQDoJ/ubeo/87HSxbfhk7zhgIo9wNmzw==","signatures":[{"sig":"MEUCIQDoaco/KSSW8FqcD3R1bVXRuPsMYMqJ0/KmhHNXOrAM3wIgZi+Jr1l/qjC9yNbiFMSxqKRrtqRYlIh5d0JLRvRz6gk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1653435},"main":"./build/index.cjs","type":"module","types":"./build/index.d.ts","module":"./build/index.js","engines":{"node":">=24"},"exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.cjs"},"./styles.css":"./build/styles.css","./package.json":"./package.json"},"gitHead":"ad88e69b965ef5adb96d41c444ae5c4512fda641","private":false,"scripts":{"dev":"npm run tokens && vite build --watch","lint":"eslint src __tests__ scripts --max-warnings 0 && stylelint \"src/**/*.scss\"","size":"npm run build && size-limit","test":"jest","build":"npm run tokens && vite build","format":"prettier --write \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"__tests__/**/*.{ts,tsx}\"","tokens":"node scripts/build-tokens.mjs","verify":"npm run tokens && npm run check:contrast && npm run typecheck && npm run lint && npm run test:coverage && npm run build && npm run check:api && npm run check:animations && size-limit","prepare":"git rev-parse --git-dir >/dev/null 2>&1 && git config core.hooksPath .githooks || true","check:api":"node scripts/check-api.mjs","typecheck":"tsc --noEmit","playground":"vite --config playground/vite.config.ts","test:watch":"jest --watch","test:device":"playwright test --project=ios --project=android","test:visual":"playwright test --project=desktop --project=mobile","format:check":"prettier --check \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"__tests__/**/*.{ts,tsx}\"","test:coverage":"jest --coverage","check:contrast":"node scripts/check-contrast.mjs","check:animations":"node scripts/check-animations.mjs","playground:build":"npm run tokens && vite build --config playground/vite.config.ts","test:device:install":"playwright install webkit chromium"},"_npmUser":{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"},"publisher":"Ahmet ilhan","repository":{"url":"git+https://github.com/ahmetilhn/hanui.git","type":"git"},"_npmVersion":"11.17.0","description":"Accessible, theme-driven React component library built on SCSS Modules. Bootstrap Icons for shell iconography, two built-in themes and a fully overridable design-token contract.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","sass":"^1.83.4","vite":"^5.4.11","react":"^19.0.0","eslint":"^9.18.0","ts-jest":"^29.2.5","jest-axe":"^11.0.0","prettier":"^3.4.2","react-dom":"^19.0.0","stylelint":"^17.14.1","@eslint/js":"^9.18.0","size-limit":"^13.0.3","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.10.7","@types/react":"^19.0.7","@types/jest-axe":"^3.5.9","vite-plugin-dts":"^4.5.0","@playwright/test":"^1.62.1","@types/react-dom":"^19.0.3","eslint-plugin-jest":"^29.16.1","eslint-plugin-react":"^7.37.4","react-bootstrap-icons":"^1.11.6","@ahmetilhn/handy-utils":"^4.1.0","@testing-library/react":"^16.3.2","eslint-config-prettier":"^9.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.20.0","eslint-plugin-react-hooks":"^5.1.0","@testing-library/user-event":"^14.6.1","@size-limit/preset-small-lib":"^13.0.3","stylelint-config-standard-scss":"^17.0.0","@typescript-eslint/eslint-plugin":"^8.20.0"},"peerDependencies":{"react":">=18","react-dom":">=18","react-bootstrap-icons":">=1.11.0","@ahmetilhn/handy-utils":">=3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hanui_3.2.0_1786886187781_0.936165589915178","host":"s3://npm-registry-packages-npm-production"}},"3.2.1":{"name":"@ahmetilhn/hanui","version":"3.2.1","keywords":["react","ui","component-library","design-system","scss","css-modules","accessible","a11y","wcag","dark-mode","theming","design-tokens","typescript","headless","modal","combobox","bottom-sheet","data-table"],"author":{"name":"Ahmet ilhan","email":"ahmetilhan.dev@gmail.com"},"license":"MIT","_id":"@ahmetilhn/hanui@3.2.1","maintainers":[{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"}],"homepage":"https://github.com/ahmetilhn/hanui#readme","bugs":{"url":"https://github.com/ahmetilhn/hanui/issues"},"dist":{"shasum":"2dccfee776878ba54cf60e8b281dc797f1e81dee","tarball":"https://registry.npmjs.org/@ahmetilhn/hanui/-/hanui-3.2.1.tgz","fileCount":9,"integrity":"sha512-6Fi+AxozUbufuAUKwko+lkVPgMGlnnd/Zpoi5+B84WbQh0Hm4EJC/azuujlU4VGFJsSTDFgopHASgORjEN8Rug==","signatures":[{"sig":"MEUCIFwUXEe777PB1RIizE0S+6aTU8pkbHwHt9RR3tNptQEGAiEAtDlj2W2fR6iQZPQyE9qpBcteC4yivKULZmI4Yz+R1+0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1653435},"main":"./build/index.cjs","type":"module","types":"./build/index.d.ts","module":"./build/index.js","engines":{"node":">=24"},"exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.cjs"},"./styles.css":"./build/styles.css","./package.json":"./package.json"},"gitHead":"df145d9ce00a0e4dbd8b4aa5fd8d065335eaafdc","private":false,"scripts":{"dev":"npm run tokens && vite build --watch","lint":"eslint src __tests__ scripts --max-warnings 0 && stylelint \"src/**/*.scss\"","size":"npm run build && size-limit","test":"jest","build":"npm run tokens && vite build","format":"prettier --write \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"__tests__/**/*.{ts,tsx}\"","tokens":"node scripts/build-tokens.mjs","verify":"npm run tokens && npm run check:contrast && npm run typecheck && npm run lint && npm run test:coverage && npm run build && npm run check:api && npm run check:animations && size-limit","prepare":"git rev-parse --git-dir >/dev/null 2>&1 && git config core.hooksPath .githooks || true","check:api":"node scripts/check-api.mjs","typecheck":"tsc --noEmit","playground":"vite --config playground/vite.config.ts","test:watch":"jest --watch","test:device":"playwright test --project=ios --project=android","test:visual":"playwright test --project=desktop --project=mobile","format:check":"prettier --check \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"__tests__/**/*.{ts,tsx}\"","test:coverage":"jest --coverage","check:contrast":"node scripts/check-contrast.mjs","check:animations":"node scripts/check-animations.mjs","playground:build":"npm run tokens && vite build --config playground/vite.config.ts","test:device:install":"playwright install webkit chromium"},"_npmUser":{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"},"publisher":"Ahmet ilhan","repository":{"url":"git+https://github.com/ahmetilhn/hanui.git","type":"git"},"_npmVersion":"11.17.0","description":"Accessible, theme-driven React component library built on SCSS Modules. Bootstrap Icons for shell iconography, two built-in themes and a fully overridable design-token contract.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","sass":"^1.83.4","vite":"^5.4.11","react":"^19.0.0","eslint":"^9.18.0","ts-jest":"^29.2.5","jest-axe":"^11.0.0","prettier":"^3.4.2","react-dom":"^19.0.0","stylelint":"^17.14.1","@eslint/js":"^9.18.0","size-limit":"^13.0.3","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.10.7","@types/react":"^19.0.7","@types/jest-axe":"^3.5.9","vite-plugin-dts":"^4.5.0","@playwright/test":"^1.62.1","@types/react-dom":"^19.0.3","eslint-plugin-jest":"^29.16.1","eslint-plugin-react":"^7.37.4","react-bootstrap-icons":"^1.11.6","@ahmetilhn/handy-utils":"^4.1.0","@testing-library/react":"^16.3.2","eslint-config-prettier":"^9.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.20.0","eslint-plugin-react-hooks":"^5.1.0","@testing-library/user-event":"^14.6.1","@size-limit/preset-small-lib":"^13.0.3","stylelint-config-standard-scss":"^17.0.0","@typescript-eslint/eslint-plugin":"^8.20.0"},"peerDependencies":{"react":">=18","react-dom":">=18","react-bootstrap-icons":">=1.11.0","@ahmetilhn/handy-utils":">=3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hanui_3.2.1_1786969872715_0.23023312282837005","host":"s3://npm-registry-packages-npm-production"}},"3.2.2":{"name":"@ahmetilhn/hanui","version":"3.2.2","keywords":["react","ui","component-library","design-system","scss","css-modules","accessible","a11y","wcag","dark-mode","theming","design-tokens","typescript","headless","modal","combobox","bottom-sheet","data-table"],"author":{"name":"Ahmet ilhan","email":"ahmetilhan.dev@gmail.com"},"license":"MIT","_id":"@ahmetilhn/hanui@3.2.2","maintainers":[{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"}],"homepage":"https://github.com/ahmetilhn/hanui#readme","bugs":{"url":"https://github.com/ahmetilhn/hanui/issues"},"dist":{"shasum":"01bc25097dababe880e22c3193cbd83b03f20bfd","tarball":"https://registry.npmjs.org/@ahmetilhn/hanui/-/hanui-3.2.2.tgz","fileCount":9,"integrity":"sha512-4I5sXZMXLBXbIsdrUoPp4oOZqXknviZwZolMFAGR19YpegAVng7J1MA7aQWI5YE/mWoGxIDkP0zOojUC3UxTTA==","signatures":[{"sig":"MEUCIQCmXJ/zkuJ4X7SP6EC0gRKyWPhxlfEDXf6SrVFRJhwdJQIgf1ZO9UO0JyknLmv5UiYmhRR+xBCpgiH64HqhY/TAB1s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1653434},"main":"./build/index.cjs","type":"module","types":"./build/index.d.ts","module":"./build/index.js","engines":{"node":">=24"},"exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.cjs"},"./styles.css":"./build/styles.css","./package.json":"./package.json"},"gitHead":"75deb180c0a238381d04db54f20c58a9d5e70d1f","private":false,"scripts":{"dev":"npm run tokens && vite build --watch","lint":"eslint src __tests__ scripts --max-warnings 0 && stylelint \"src/**/*.scss\"","size":"npm run build && size-limit","test":"jest","build":"npm run tokens && vite build","format":"prettier --write \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"__tests__/**/*.{ts,tsx}\"","tokens":"node scripts/build-tokens.mjs","verify":"npm run tokens && npm run check:contrast && npm run typecheck && npm run lint && npm run test:coverage && npm run build && npm run check:api && npm run check:animations && size-limit","prepare":"git rev-parse --git-dir >/dev/null 2>&1 && git config core.hooksPath .githooks || true","check:api":"node scripts/check-api.mjs","typecheck":"tsc --noEmit","playground":"vite --config playground/vite.config.ts","test:watch":"jest --watch","test:device":"playwright test --project=ios --project=android","test:visual":"playwright test --project=desktop --project=mobile","format:check":"prettier --check \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"__tests__/**/*.{ts,tsx}\"","test:coverage":"jest --coverage","check:contrast":"node scripts/check-contrast.mjs","check:animations":"node scripts/check-animations.mjs","playground:build":"npm run tokens && vite build --config playground/vite.config.ts","test:device:install":"playwright install webkit chromium"},"_npmUser":{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"},"publisher":"Ahmet ilhan","repository":{"url":"git+https://github.com/ahmetilhn/hanui.git","type":"git"},"_npmVersion":"11.17.0","description":"Accessible, theme-driven React component library built on SCSS Modules. Bootstrap Icons for shell iconography, two built-in themes and a fully overridable design-token contract.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","sass":"^1.83.4","vite":"^5.4.11","react":"^19.0.0","eslint":"^9.18.0","ts-jest":"^29.2.5","jest-axe":"^11.0.0","prettier":"^3.4.2","react-dom":"^19.0.0","stylelint":"^17.14.1","@eslint/js":"^9.18.0","size-limit":"^13.0.3","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.10.7","@types/react":"^19.0.7","@types/jest-axe":"^3.5.9","vite-plugin-dts":"^4.5.0","@playwright/test":"^1.62.1","@types/react-dom":"^19.0.3","eslint-plugin-jest":"^29.16.1","eslint-plugin-react":"^7.37.4","react-bootstrap-icons":"^1.11.6","@ahmetilhn/handy-utils":"latest","@testing-library/react":"^16.3.2","eslint-config-prettier":"^9.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.20.0","eslint-plugin-react-hooks":"^5.1.0","@testing-library/user-event":"^14.6.1","@size-limit/preset-small-lib":"^13.0.3","stylelint-config-standard-scss":"^17.0.0","@typescript-eslint/eslint-plugin":"^8.20.0"},"peerDependencies":{"react":">=18","react-dom":">=18","react-bootstrap-icons":">=1.11.0","@ahmetilhn/handy-utils":"latest"},"_npmOperationalInternal":{"tmp":"tmp/hanui_3.2.2_1786970783179_0.2911083130343133","host":"s3://npm-registry-packages-npm-production"}},"3.3.0":{"name":"@ahmetilhn/hanui","version":"3.3.0","keywords":["react","ui","component-library","design-system","scss","css-modules","accessible","a11y","wcag","dark-mode","theming","design-tokens","typescript","headless","modal","combobox","bottom-sheet","data-table"],"author":{"name":"Ahmet ilhan","email":"ahmetilhan.dev@gmail.com"},"license":"MIT","_id":"@ahmetilhn/hanui@3.3.0","maintainers":[{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"}],"homepage":"https://github.com/ahmetilhn/hanui#readme","bugs":{"url":"https://github.com/ahmetilhn/hanui/issues"},"dist":{"shasum":"5685fa5ca88000d2da8c1a2c214a18259ae4ab0e","tarball":"https://registry.npmjs.org/@ahmetilhn/hanui/-/hanui-3.3.0.tgz","fileCount":9,"integrity":"sha512-05QaaZ1VAikQ5dB7puFwy8fQERoBwTuoABzhEweNrV4NXFNrpxq4wzbbSLVZgO936BXiEN4KQzMeE4aMy/YnPw==","signatures":[{"sig":"MEYCIQCRgu8ddBnOSAe3LrNrwOQe+85j7UGtLbj0brClrSLBzgIhANns4g+PSms8N6ykt0KdykwWnRdRB9V3TbigbDQ716bV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1684427},"main":"./build/index.cjs","type":"module","types":"./build/index.d.ts","module":"./build/index.js","engines":{"node":">=24"},"exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.cjs"},"./styles.css":"./build/styles.css","./package.json":"./package.json"},"gitHead":"48d91b63fe1ef20f809caf1bb708831da40f2275","private":false,"scripts":{"dev":"npm run tokens && vite build --watch","lint":"eslint src __tests__ scripts --max-warnings 0 && stylelint \"src/**/*.scss\"","size":"npm run build && size-limit","test":"jest","build":"npm run tokens && vite build","format":"prettier --write \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"__tests__/**/*.{ts,tsx}\"","tokens":"node scripts/build-tokens.mjs","verify":"npm run tokens && npm run check:contrast && npm run typecheck && npm run lint && npm run test:coverage && npm run build && npm run check:api && npm run check:animations && size-limit","prepare":"git rev-parse --git-dir >/dev/null 2>&1 && git config core.hooksPath .githooks || true","check:api":"node scripts/check-api.mjs","typecheck":"tsc --noEmit","playground":"vite --config playground/vite.config.ts","test:watch":"jest --watch","test:device":"playwright test --project=ios --project=android","test:visual":"playwright test --project=desktop --project=mobile","format:check":"prettier --check \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"__tests__/**/*.{ts,tsx}\"","test:coverage":"jest --coverage","check:contrast":"node scripts/check-contrast.mjs","check:animations":"node scripts/check-animations.mjs","playground:build":"npm run tokens && vite build --config playground/vite.config.ts","test:device:install":"playwright install webkit chromium"},"_npmUser":{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"},"publisher":"Ahmet ilhan","repository":{"url":"git+https://github.com/ahmetilhn/hanui.git","type":"git"},"_npmVersion":"11.17.0","description":"Accessible, theme-driven React component library built on SCSS Modules. Bootstrap Icons for shell iconography, two built-in themes and a fully overridable design-token contract.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","sass":"^1.83.4","vite":"^5.4.11","react":"^19.0.0","eslint":"^9.18.0","ts-jest":"^29.2.5","jest-axe":"^11.0.0","prettier":"^3.4.2","react-dom":"^19.0.0","stylelint":"^17.14.1","@eslint/js":"^9.18.0","size-limit":"^13.0.3","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.10.7","@types/react":"^19.0.7","@types/jest-axe":"^3.5.9","vite-plugin-dts":"^4.5.0","@playwright/test":"^1.62.1","@types/react-dom":"^19.0.3","eslint-plugin-jest":"^29.16.1","eslint-plugin-react":"^7.37.4","react-bootstrap-icons":"^1.11.6","@ahmetilhn/handy-utils":"latest","@testing-library/react":"^16.3.2","eslint-config-prettier":"^9.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.20.0","eslint-plugin-react-hooks":"^5.1.0","@testing-library/user-event":"^14.6.1","@size-limit/preset-small-lib":"^13.0.3","stylelint-config-standard-scss":"^17.0.0","@typescript-eslint/eslint-plugin":"^8.20.0"},"peerDependencies":{"react":">=18","react-dom":">=18","react-bootstrap-icons":">=1.11.0","@ahmetilhn/handy-utils":"latest"},"_npmOperationalInternal":{"tmp":"tmp/hanui_3.3.0_1787038646190_0.11397289180483261","host":"s3://npm-registry-packages-npm-production"}},"3.3.1":{"name":"@ahmetilhn/hanui","version":"3.3.1","keywords":["react","ui","component-library","design-system","scss","css-modules","accessible","a11y","wcag","dark-mode","theming","design-tokens","typescript","headless","modal","combobox","bottom-sheet","data-table"],"author":{"name":"Ahmet ilhan","email":"ahmetilhan.dev@gmail.com"},"license":"MIT","_id":"@ahmetilhn/hanui@3.3.1","maintainers":[{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"}],"homepage":"https://github.com/ahmetilhn/hanui#readme","bugs":{"url":"https://github.com/ahmetilhn/hanui/issues"},"dist":{"shasum":"0aee8a085bbc1910d12caa9b1d7deeea7566800a","tarball":"https://registry.npmjs.org/@ahmetilhn/hanui/-/hanui-3.3.1.tgz","fileCount":9,"integrity":"sha512-cfRsea8ljH/6mMfprG+UcnBa5SSmh5027mlS3SKcIlyj3F96WB7wfFfArP7bKDgrIQ8Qm/CJZ//mgj/9D2cufA==","signatures":[{"sig":"MEUCIQCsmwUnLKD6MXMdJYiza7oiQCAhGoEUScA7pQ0T3Bnx7gIgTFB2iXT0syyWf/GzWd9KUqLuM5IMfMh3+IEsNNyKZoQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1693428},"main":"./build/index.cjs","type":"module","types":"./build/index.d.ts","module":"./build/index.js","engines":{"node":">=24"},"exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.cjs"},"./styles.css":"./build/styles.css","./package.json":"./package.json"},"gitHead":"bc2e67318b11bd8b9b4c95613771958afa306372","private":false,"scripts":{"dev":"npm run tokens && vite build --watch","lint":"eslint src __tests__ scripts --max-warnings 0 && stylelint \"src/**/*.scss\"","size":"npm run build && size-limit","test":"jest","build":"npm run tokens && vite build","format":"prettier --write \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"__tests__/**/*.{ts,tsx}\"","tokens":"node scripts/build-tokens.mjs","verify":"npm run tokens && npm run check:contrast && npm run typecheck && npm run lint && npm run test:coverage && npm run build && npm run check:api && npm run check:animations && size-limit","prepare":"git rev-parse --git-dir >/dev/null 2>&1 && git config core.hooksPath .githooks || true","check:api":"node scripts/check-api.mjs","typecheck":"tsc --noEmit","playground":"vite --config playground/vite.config.ts","test:watch":"jest --watch","test:device":"playwright test --project=ios --project=android","test:visual":"playwright test --project=desktop --project=mobile","format:check":"prettier --check \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"__tests__/**/*.{ts,tsx}\"","test:coverage":"jest --coverage","check:contrast":"node scripts/check-contrast.mjs","check:animations":"node scripts/check-animations.mjs","playground:build":"npm run tokens && vite build --config playground/vite.config.ts","test:device:install":"playwright install webkit chromium"},"_npmUser":{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"},"publisher":"Ahmet ilhan","repository":{"url":"git+https://github.com/ahmetilhn/hanui.git","type":"git"},"_npmVersion":"11.17.0","description":"Accessible, theme-driven React component library built on SCSS Modules. Bootstrap Icons for shell iconography, two built-in themes and a fully overridable design-token contract.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","sass":"^1.83.4","vite":"^5.4.11","react":"^19.0.0","eslint":"^9.18.0","ts-jest":"^29.2.5","jest-axe":"^11.0.0","prettier":"^3.4.2","react-dom":"^19.0.0","stylelint":"^17.14.1","@eslint/js":"^9.18.0","size-limit":"^13.0.3","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.10.7","@types/react":"^19.0.7","@types/jest-axe":"^3.5.9","vite-plugin-dts":"^4.5.0","@playwright/test":"^1.62.1","@types/react-dom":"^19.0.3","eslint-plugin-jest":"^29.16.1","eslint-plugin-react":"^7.37.4","react-bootstrap-icons":"^1.11.6","@ahmetilhn/handy-utils":"latest","@testing-library/react":"^16.3.2","eslint-config-prettier":"^9.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.20.0","eslint-plugin-react-hooks":"^5.1.0","@testing-library/user-event":"^14.6.1","@size-limit/preset-small-lib":"^13.0.3","stylelint-config-standard-scss":"^17.0.0","@typescript-eslint/eslint-plugin":"^8.20.0"},"peerDependencies":{"react":">=18","react-dom":">=18","react-bootstrap-icons":">=1.11.0","@ahmetilhn/handy-utils":"latest"},"_npmOperationalInternal":{"tmp":"tmp/hanui_3.3.1_1787149189005_0.7602982677294403","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"@ahmetilhn/hanui","version":"4.0.0","keywords":["react","ui","component-library","design-system","scss","css-modules","accessible","a11y","wcag","dark-mode","theming","design-tokens","typescript","headless","modal","combobox","bottom-sheet","data-table"],"author":{"name":"Ahmet ilhan","email":"ahmetilhan.dev@gmail.com"},"license":"MIT","_id":"@ahmetilhn/hanui@4.0.0","maintainers":[{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"}],"homepage":"https://github.com/ahmetilhn/hanui#readme","bugs":{"url":"https://github.com/ahmetilhn/hanui/issues"},"dist":{"shasum":"7d5f23fbde53696ec8793df588a2bfb0cba0ebf9","tarball":"https://registry.npmjs.org/@ahmetilhn/hanui/-/hanui-4.0.0.tgz","fileCount":9,"integrity":"sha512-KD9KZUtWY4zx0AjFfL/uOHMBTM9Xkra2UfVBv6yS0hHysIiKIwL9QNj4kW0WJDAs3cZCeF0NFxo7hKrv/9+hcw==","signatures":[{"sig":"MEYCIQDfGDuzBVPmFEboK9YIscqedTzbZQyB3GeKX4Rqf7tCzAIhANgSRAWY+UHnMKovgc+NreIqEtcMT4NPuYCO2f8ED4c3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1697070},"main":"./build/index.cjs","type":"module","types":"./build/index.d.ts","module":"./build/index.js","engines":{"node":">=24"},"exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.cjs"},"./styles.css":"./build/styles.css","./package.json":"./package.json"},"gitHead":"142bd1f4b8abddeebaaa2f0d081fcbace4e06c35","private":false,"scripts":{"dev":"npm run tokens && vite build --watch","lint":"eslint src __tests__ scripts --max-warnings 0 && stylelint \"src/**/*.scss\"","size":"npm run build && size-limit","test":"jest","build":"npm run tokens && vite build","format":"prettier --write \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"__tests__/**/*.{ts,tsx}\"","tokens":"node scripts/build-palette.mjs && node scripts/build-tokens.mjs","verify":"npm run check:palette && npm run tokens && npm run check:contrast && npm run typecheck && npm run lint && npm run test:coverage && npm run build && npm run check:api && npm run check:animations && size-limit","prepare":"git rev-parse --git-dir >/dev/null 2>&1 && git config core.hooksPath .githooks || true","check:api":"node scripts/check-api.mjs","typecheck":"tsc --noEmit","playground":"vite --config playground/vite.config.ts","test:watch":"jest --watch","test:device":"playwright test --project=ios --project=android","test:visual":"playwright test --project=desktop --project=mobile","format:check":"prettier --check \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"__tests__/**/*.{ts,tsx}\"","check:palette":"node scripts/build-palette.mjs --check","test:coverage":"jest --coverage","check:contrast":"node scripts/check-contrast.mjs","check:animations":"node scripts/check-animations.mjs","playground:build":"npm run tokens && vite build --config playground/vite.config.ts","test:device:install":"playwright install webkit chromium"},"_npmUser":{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"},"publisher":"Ahmet ilhan","repository":{"url":"git+https://github.com/ahmetilhn/hanui.git","type":"git"},"_npmVersion":"11.17.0","description":"Accessible, theme-driven React component library built on SCSS Modules. Bootstrap Icons for shell iconography, two built-in themes and a fully overridable design-token contract.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","sass":"^1.83.4","vite":"^5.4.11","react":"^19.0.0","eslint":"^9.18.0","ts-jest":"^29.2.5","jest-axe":"^11.0.0","prettier":"^3.4.2","react-dom":"^19.0.0","stylelint":"^17.14.1","@eslint/js":"^9.18.0","size-limit":"^13.0.3","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.10.7","@types/react":"^19.0.7","@types/jest-axe":"^3.5.9","vite-plugin-dts":"^4.5.0","@playwright/test":"^1.62.1","@types/react-dom":"^19.0.3","eslint-plugin-jest":"^29.16.1","eslint-plugin-react":"^7.37.4","react-bootstrap-icons":"^1.11.6","@ahmetilhn/handy-utils":"latest","@testing-library/react":"^16.3.2","eslint-config-prettier":"^9.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.20.0","eslint-plugin-react-hooks":"^5.1.0","@testing-library/user-event":"^14.6.1","@size-limit/preset-small-lib":"^13.0.3","stylelint-config-standard-scss":"^17.0.0","@typescript-eslint/eslint-plugin":"^8.20.0"},"peerDependencies":{"react":">=18","react-dom":">=18","react-bootstrap-icons":">=1.11.0","@ahmetilhn/handy-utils":"latest"},"_npmOperationalInternal":{"tmp":"tmp/hanui_4.0.0_1787412746619_0.7086097316687039","host":"s3://npm-registry-packages-npm-production"}},"4.1.0":{"_id":"@ahmetilhn/hanui@4.1.0","bugs":{"url":"https://github.com/ahmetilhn/hanui/issues"},"dist":{"shasum":"767597dd414f70045e515aad7fad1c1daff97272","tarball":"https://registry.npmjs.org/@ahmetilhn/hanui/-/hanui-4.1.0.tgz","fileCount":9,"integrity":"sha512-MoTL6kiR0ycP+ZR69SzH3evKp2r01iVURGP5aBLAR42eYfyiuwMi1wDeLhDRy66qbSDk2dCwVtz3+QwdD8zjzA==","signatures":[{"sig":"MEQCIEbRBngxlSzghJfEiJ2hZNW2rhejJV1zQGAPZfg+gr1VAiBd4vOzpWrHVQ3TLP9UfkC4ABtFtKZAESKFn9HtD+LL2Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD7ZIJxJ04dNZg7r3D90Sln3aLbpYP2ND2DaUHoGPWFwQIgBX3kt16IfaRRfzcM31fa8m0fvttFmCi5DWk5iojQ3P8="}],"unpackedSize":1570742},"main":"./build/index.cjs","name":"@ahmetilhn/hanui","type":"module","types":"./build/index.d.ts","author":{"name":"Ahmet ilhan","email":"ahmetilhan.dev@gmail.com"},"module":"./build/index.js","engines":{"node":">=24"},"exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.cjs"},"./styles.css":"./build/styles.css","./package.json":"./package.json"},"gitHead":"2c7e25ff35a7d0fd0c9c00114b4876ac5761bd75","license":"MIT","private":false,"scripts":{"dev":"npm run tokens && vite build --watch","lint":"eslint src __tests__ scripts --max-warnings 0 && stylelint \"src/**/*.scss\"","size":"npm run build && size-limit","test":"jest","build":"npm run tokens && vite build","format":"prettier --write \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"__tests__/**/*.{ts,tsx}\"","tokens":"node scripts/build-palette.mjs && node scripts/build-tokens.mjs","verify":"npm run check:palette && npm run tokens && npm run check:contrast && npm run typecheck && npm run lint && npm run test:coverage && npm run build && npm run check:api && npm run check:animations && size-limit","prepare":"git rev-parse --git-dir >/dev/null 2>&1 && git config core.hooksPath .githooks || true","check:api":"node scripts/check-api.mjs","typecheck":"tsc --noEmit","playground":"vite --config playground/vite.config.ts","test:watch":"jest --watch","test:device":"playwright test --project=ios --project=android","test:visual":"playwright test --project=desktop --project=mobile","format:check":"prettier --check \"src/**/*.{ts,tsx,scss}\" \"playground/**/*.{ts,tsx,css}\" \"__tests__/**/*.{ts,tsx}\"","check:palette":"node scripts/build-palette.mjs --check","test:coverage":"jest --coverage","check:contrast":"node scripts/check-contrast.mjs","check:animations":"node scripts/check-animations.mjs","playground:build":"npm run tokens && vite build --config playground/vite.config.ts","test:device:install":"playwright install webkit chromium"},"version":"4.1.0","_npmUser":{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"},"homepage":"https://github.com/ahmetilhn/hanui#readme","keywords":["react","ui","component-library","design-system","scss","css-modules","accessible","a11y","wcag","dark-mode","theming","design-tokens","typescript","headless","modal","combobox","bottom-sheet","data-table"],"publisher":"Ahmet ilhan","repository":{"url":"git+https://github.com/ahmetilhn/hanui.git","type":"git"},"_npmVersion":"11.19.0","description":"Accessible, theme-driven React component library built on SCSS Modules. Bootstrap Icons for shell iconography, two built-in themes and a fully overridable design-token contract.","directories":{},"maintainers":[{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"}],"sideEffects":["**/*.css"],"_nodeVersion":"24.20.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","sass":"^1.83.4","vite":"^5.4.11","react":"^19.0.0","eslint":"^9.18.0","ts-jest":"^29.2.5","jest-axe":"^11.0.0","prettier":"^3.4.2","react-dom":"^19.0.0","stylelint":"^17.14.1","@eslint/js":"^9.18.0","size-limit":"^13.0.3","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.10.7","@types/react":"^19.0.7","@types/jest-axe":"^3.5.9","vite-plugin-dts":"^4.5.0","@playwright/test":"^1.62.1","@types/react-dom":"^19.0.3","eslint-plugin-jest":"^29.16.1","eslint-plugin-react":"^7.37.4","react-bootstrap-icons":"^1.11.6","@ahmetilhn/handy-utils":"latest","@testing-library/react":"^16.3.2","eslint-config-prettier":"^9.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.20.0","eslint-plugin-react-hooks":"^5.1.0","@testing-library/user-event":"^14.6.1","@size-limit/preset-small-lib":"^13.0.3","stylelint-config-standard-scss":"^17.0.0","@typescript-eslint/eslint-plugin":"^8.20.0"},"peerDependencies":{"react":">=18","react-dom":">=18","react-bootstrap-icons":">=1.11.0","@ahmetilhn/handy-utils":"latest"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/hanui_4.1.0_1790091309876_0.44881206338387547"}}},"time":{"created":"2026-08-03T14:51:12.124Z","modified":"2026-09-22T15:35:10.192Z","1.0.1":"2026-08-03T14:51:12.618Z","1.0.2":"2026-08-03T14:53:29.067Z","1.1.0":"2026-08-03T15:32:06.742Z","1.1.1":"2026-08-03T15:42:23.533Z","1.2.0":"2026-08-03T16:30:40.335Z","2.0.0":"2026-08-03T20:27:56.082Z","2.0.1":"2026-08-03T21:09:33.465Z","2.0.2":"2026-08-03T22:20:59.850Z","2.0.4":"2026-08-04T01:26:23.760Z","2.0.5":"2026-08-04T09:35:13.354Z","2.0.6":"2026-08-04T11:11:07.164Z","2.0.7":"2026-08-04T19:59:41.514Z","2.0.8":"2026-08-04T20:46:46.042Z","2.0.9":"2026-08-05T20:42:01.616Z","2.0.10":"2026-08-06T07:01:37.619Z","2.1.1":"2026-08-07T08:25:42.502Z","2.2.0":"2026-08-08T09:22:29.625Z","2.2.1":"2026-08-08T09:47:38.587Z","2.4.0":"2026-08-08T18:16:32.242Z","2.4.1":"2026-08-08T18:57:14.424Z","2.5.0":"2026-08-08T20:29:09.682Z","2.5.1":"2026-08-08T21:33:18.846Z","2.6.0":"2026-08-09T09:41:10.001Z","2.7.0":"2026-08-10T15:07:06.143Z","2.7.1":"2026-08-13T02:14:01.275Z","2.8.0":"2026-08-15T20:24:54.084Z","3.0.0":"2026-08-16T08:20:02.948Z","3.2.0":"2026-08-16T13:16:27.938Z","3.2.1":"2026-08-17T12:31:12.897Z","3.2.2":"2026-08-17T12:46:23.334Z","3.3.0":"2026-08-18T07:37:26.345Z","3.3.1":"2026-08-19T14:19:49.185Z","4.0.0":"2026-08-22T15:32:26.779Z","4.1.0":"2026-09-22T15:35:10.006Z"},"bugs":{"url":"https://github.com/ahmetilhn/hanui/issues"},"author":{"name":"Ahmet ilhan","email":"ahmetilhan.dev@gmail.com"},"license":"MIT","homepage":"https://github.com/ahmetilhn/hanui#readme","keywords":["react","ui","component-library","design-system","scss","css-modules","accessible","a11y","wcag","dark-mode","theming","design-tokens","typescript","headless","modal","combobox","bottom-sheet","data-table"],"repository":{"url":"git+https://github.com/ahmetilhn/hanui.git","type":"git"},"description":"Accessible, theme-driven React component library built on SCSS Modules. Bootstrap Icons for shell iconography, two built-in themes and a fully overridable design-token contract.","maintainers":[{"name":"ahmetilhn","email":"ahmetilhan.dev@gmail.com"}],"readme":"# @ahmetilhn/hanui\n\nErişilebilir, tema güdümlü React bileşen kütüphanesi. SCSS Modules üzerine\nkurulu; tek çalışma zamanı bağımlılığı ikon seti (`react-bootstrap-icons`).\n\n- **Tek CSS dosyası, iki tema.** Açık ve koyu hazır gelir, her token dışarıdan\n  ezilebilir.\n- **Yönlendirici enjekte edilir.** `next/link`, `react-router`, ham `<a>` —\n  karar tüketicinin.\n- **Metin dışarıdan, ama BİR KEZ.** Kütüphane hiçbir dilde metin uydurmaz;\n  kullanıcıya görünen dizeler sağlayıcıda tek yerde tanımlanır.\n- **Yerel öğeler korunur.** `<dialog>`, `<input type=\"range\">`,\n  `<input type=\"radio\">` — odak tuzağı, klavye gezinmesi ve ekran okuyucu\n  duyurusu tarayıcıdan gelir.\n\n```bash\nnpm install @ahmetilhn/hanui @ahmetilhn/handy-utils react-bootstrap-icons\n```\n\n`react`, `react-dom`, `@ahmetilhn/handy-utils` ve `react-bootstrap-icons`\n**peer** bağımlılıktır.\n\n---\n\n## Hızlı başlangıç\n\n```tsx\n// Uygulamanın kökünde BİR KEZ.\nimport '@ahmetilhn/hanui/styles.css';\n```\n\n```tsx\nimport { Button, Field, Input, UIVariant } from '@ahmetilhn/hanui';\n\n<Field label=\"E-posta\" isRequired error={error}>\n  {props => <Input {...props} type=\"email\" value={email} onChange={onChange} />}\n</Field>\n\n<Button variant={UIVariant.PRIMARY} isLoading={isSaving} onClick={save}>\n  Kaydet\n</Button>;\n```\n\nSağlayıcı **zorunlu değil**: paket kurulup hiçbir yapılandırma yapılmadan\nçalışır. Bağlantılar ham `<a>` olur, tema varsayılanlarda kalır.\n\n---\n\n## Tema\n\n### Tema seçimi `<html>` üzerinde taşınır\n\n```html\n<html data-hanui-theme=\"dark\">\n```\n\nÖznitelik yoksa `prefers-color-scheme` yedeği devreye girer — ama kullanıcının\n**açık bir seçimi** varsa sistem tercihi onu ezmez.\n\n### İlk boyamadan önce yazın\n\n```tsx\n// app/layout.tsx — <head> içine.\n<script\n  dangerouslySetInnerHTML={{\n    __html: `document.documentElement.dataset.hanuiTheme =\n      localStorage.getItem('theme') ?? 'light';`,\n  }}\n/>\n```\n\nBu satır React ağacına konamaz: sağlayıcı ağaç monte olduktan sonra çalışıyor\nve koyu tema seçmiş kullanıcı o ana kadar **bir kare beyaz ekran** görüyor.\n\n### Token'ları ezmek\n\nYalnızca değiştirdiğiniz token'ı verin; gerisi varsayılanında kalır.\n\n```tsx\nimport { HanuiProvider } from '@ahmetilhn/hanui';\n\nconst THEME = {\n  light: { blue: '#0d6efd', 'blue-text': '#0a58ca' },\n  dark: { blue: '#6ea8fe' },\n  fonts: { heading: 'Archivo, sans-serif', body: 'Inter, sans-serif' },\n  // Ölçüler tema başına DEĞİL: bir markanın yuvarlaklığı açık temada\n  // 12 px, koyu temada 8 px olmaz.\n  metrics: { 'radius-md': '2px', 'radius-lg': '4px', 'duration-normal': '120ms' },\n};\n\n<HanuiProvider theme={THEME} linkComponent={NextLink}>\n  <App />\n</HanuiProvider>;\n```\n\nReact'in dışından (bir `<head>` betiğinden, Storybook'tan) aynı işi\n`initHanui({ theme })` yapar.\n\n**Kütüphane font YÜKLEMEZ.** `fonts` yalnızca `font-family` dizesi; yüklemeyi\n(`next/font`, `@font-face`, CDN) siz yaparsınız. Bir UI paketinin ağdan font\nçekmesi, sizin ölçemediğiniz bir istek demek.\n\n#### Ezilebilen ölçüler\n\n`radius-*` · `space-0…9` · `font-size-2xs…4xl` · `leading-*` · `icon-xs…xl` ·\n`duration-*` · `ease-*` — tam liste `METRIC_TOKENS` içinde ve dışa veriliyor.\n\nEzilemeyenler ve nedenleri: **kırılma noktaları** (`@media (max-width: var(--x))`\ngeçersiz CSS), **katman (`z-*`)** (yığılma sırası, marka kararı değil) ve\n**dokunma hedefi** (44 px; yoğun kipte de küçülmemeli — WCAG 2.5.8).\n\n### Bilgi yoğunluğu\n\n```html\n<html data-hanui-density=\"compact\"></html>\n```\n\nSatır yüksekliği, dolgu ve punto bir kademe iner. Vitrin bir ekranda 8 satır,\noperasyon paneli 80 satır gösteriyor; ikisini tek ölçekle karşılamanın yolu yok.\nKararı `initHanui({ density: 'compact' })` da verebilir.\n\n**Yarıçap değişmez** (yuvarlaklık yoğunluğun değil markanın işi) ve **dokunma\nhedefi küçülmez**: görsel kutu daralır, `tap-target` örtüsü 44 px kalır.\n\n### CSS'imizi ezmek — `@layer hanui`\n\nKütüphane CSS'inin tamamı `@layer hanui` içinde. Katmanlı bir kural, katmansız\nbir kurala **her zaman yenilir** — özgüllüğe ve sıraya bakılmaksızın:\n\n```css\n/* Bu kadarı yeter; `!important` ya da `.app .card .card` gerekmez. */\n.my-card {\n  padding: 0;\n}\n```\n\nKatman olmadan sizin sınıfınız ile bizimki aynı özgüllükte (0,1,0) yarışıyordu\nve kazananı **kaynak sırası** belirliyordu; o sıra da bundler'ınızın elinde —\ngeliştirme ile üretim aynı olmak zorunda değil.\n\n### Temayı değiştirmek\n\n```tsx\nconst { scheme, preference, setScheme, toggle, isReady } = useHanuiTheme();\n\nuseEffect(() => {\n  if (isReady) localStorage.setItem('theme', preference);\n}, [preference, isReady]);\n```\n\n| Alan | |\n| --- | --- |\n| `scheme` | **ÇÖZÜLMÜŞ** tema — ekranda çizili olan (`light` \\| `dark`) |\n| `preference` | kullanıcının **SEÇİMİ** (`light` \\| `dark` \\| `system`) |\n| `setScheme` | `'system'` verildiğinde açık seçim SİLİNİR |\n\nÜç durumlu bir anahtar (Açık / Koyu / Sistem) `preference` okur; `scheme`\nokusaydı \"Sistem\" seçiliyken düğme \"Koyu\"yu işaretli gösterirdi. `system` bir\ndeğer değil **değerin yokluğu**: öznitelik silinir ve\n`:not([data-hanui-theme])` sorgusu devreye girer.\n\nKalıcılık **kancanın işi değil**: seçimi `localStorage`a mı, sunucuda\nokunabilsin diye bir çereze mi, kullanıcı profiline mi yazacağınız sizin\nkararınız. Kütüphane `localStorage`a yazsaydı sunucu tarafı onu okuyamayacağı\niçin ilk boyama yine yanlış temada olurdu.\n\n`isReady`: sunucu çıktısında ve hidrasyondan önceki ilk karede `false`. Tema\nanahtarını çizmeden önce bekleyin — sunucu hangi temanın seçili olduğunu\nbilmiyor ve bir tahminle çizilen anahtar, doğru tahmin edilse bile hidrasyonda\nuyuşmazlık üretiyordu.\n\n### Token katmanları\n\n```\ntheme/palette.ts   → ham hex (TEK hex kaynağı)\ntheme/tokens.ts    → anlamsal token → değer\n                     LIGHT_THEME / DARK_THEME  (renk, temaya bağlı)\n                     METRIC_TOKENS             (ölçü, temadan bağımsız)\n                     COMPACT_DENSITY           (yoğun kipin ezdikleri)\nstyles/*.generated → yukarıdakinden ÜRETİLİR (npm run tokens)\n```\n\nSCSS ve TypeScript tarafı elle tutulsaydı bir tarafta var olup diğerinde\nolmayan bir token çıkardı — ve ayrışma sessiz: bileşen `var(--hanui-yok)`\nokuyup rengini kaybediyor, derleme yeşil dönüyor. Nöbetçi\n`theme/__tests__/tokens.contract.test.ts`.\n\n**Ölçüler CSS değişkeni olduğu için SCSS aritmetiği çalışmaz.**\n`$space-8 - $space-2` derlenmez — ve Sass hata da vermez: ifadeyi olduğu gibi\ngeçirip tarayıcıya `var(--a)-var(--b)` yazar, tarayıcı bütün bildirimi atar.\nHesap `calc()` içinde yazılır, negatif değer dahil:\n\n```scss\npadding-inline-start: calc(#{$space-8} - #{$space-2});\nmargin-inline: calc(-1 * #{$space-2});\n```\n\n---\n\n## Metinler\n\nKütüphane \"Kapat\" yazamaz: hangi dilde, hangi üslupta, hangi terimle\nyazacağını bilmez. Ama aynı dizeyi yüz çağrı yerine dağıtmak da doğru değil —\nbiri değiştiğinde doksan dokuzu eski kalıyor. Metinler **bir kez**, sağlayıcıda\nverilir:\n\n```tsx\n<HanuiProvider\n  labels={{\n    close: 'Kapat',\n    cancel: 'Vazgeç',\n    submit: 'Kaydet',\n    loading: 'Yükleniyor',\n    required: '(zorunlu)',\n    filters: 'Filtreler',\n    breadcrumb: 'Konum',\n    directoryJump: 'Harfe göre atla',\n    selectPlaceholder: 'Seçiniz',\n    locale: 'tr',\n    currency: '₺',\n    combobox: {\n      searchPlaceholder: 'Ara…',\n      emptyMessage: 'Sonuç bulunamadı',\n      loadingMessage: 'Aranıyor…',\n      clearLabel: 'Seçimi temizle',\n    },\n    pagination: { label: 'Sayfalar', previous: 'Önceki sayfa', next: 'Sonraki sayfa' },\n    quantity: { label: 'Adet', decrease: 'Adeti azalt', increase: 'Adeti artır' },\n    range: { min: 'En az', max: 'En çok' },\n    dataTable: { empty: 'Kayıt bulunamadı.', loading: 'Yükleniyor…' },\n    copyField: {\n      copy: value => `${value} kopyala`,\n      copied: value => `${value} kopyalandı`,\n      announcement: 'Panoya kopyalandı',\n    },\n    rating: {\n      srLabel: (value, count) => `5 üzerinden ${value}${count ? `, ${count} değerlendirme` : ''}`,\n      starCount: star => `${star} yıldız`,\n      scale: { 1: 'Hiç memnun kalmadım', 2: 'Beklentimi karşılamadı', 3: 'İdare eder', 4: 'Memnun kaldım', 5: 'Çok memnun kaldım' },\n    },\n  }}\n>\n```\n\n**Çözümleme sırası: prop → config → geliştirme uyarısı.** Bir prop verilmişse o\nkazanır; bağlama göre farklı olması gereken yerlerde (`closeLabel=\"Daha sonra\"`)\nhâlâ prop geçilir.\n\n### Config'e girmeyenler\n\nÖğeye **özgü** hiçbir metin config'e girmez — her çağrı yerinde farklı olduğu\niçin bir uygulama düzeyinde varsayılanı olamaz:\n\n`Modal.title` · `ConfirmDialog.confirmLabel` (\"Sil\" — eylemi tekrarlamak\nzorunda; \"Tamam\" kullanıcıya neyi onayladığını söylemez) · `IconButton.label` ·\n`Select.label` · `Combobox.labels.placeholder` · `TableCheckbox.label` ·\n`ChipGroup.label` · `RatingInput.label`\n\n### Eksik metin nasıl görünür\n\nTypeScript sağlayıcının çalışma zamanında ne taşıdığını göremiyor, o yüzden\nprop'lar isteğe bağlı. Ne prop ne config varsa öğe adsız kalır ve bu geliştirme\nkipinde konsola düşer:\n\n```\n[hanui] Eksik metin: Modal.closeLabel. Prop olarak geçin ya da\n<HanuiProvider labels={…}> içinde bir kez tanımlayın.\n```\n\nUyarı anahtar başına bir kez verilir; yirmi satırlık bir liste konsolu\ndoldurmaz.\n\n---\n\n## Yönlendirici\n\n```tsx\nimport NextLink from 'next/link';\n\n<HanuiProvider linkComponent={NextLink}>…</HanuiProvider>;\n```\n\nBir bileşen kütüphanesi kendi yönlendiricisini **seçemez**: `next/link` import\netmek paketi Next'e bağlar, `react-router` import etmek başka bir uygulamayı\nkırar.\n\nYönlendiriciye özgü props `linkProps` ile geçer:\n\n```tsx\n<Pagination buildHref={page => `?sayfa=${page}`} linkProps={{ scroll: false }} … />\n```\n\n---\n\n## Sayfalamada başa dönme\n\nSayfa değiştiren tıklamadan sonra pencereyi başa almak bir **prop**tur; çağıran\ntarafta kaydırma kodu yazılmaz:\n\n```tsx\n<Pagination page={page} totalPages={totalPages} scrollTo=\"top\" … />\n```\n\nİki kipte de çalışır (`buildHref` ve `onPageChange`). Kaydırma anidir ve üç\ndurumda **yapılmaz**: etkin sayfaya basıldığında, yeni sekmede açan tıklamada\n(Ctrl/Cmd/orta tuş) ve prop verilmediğinde.\n\n⚠ Sayfa içindeki bir listenin sayfalamasında (sekme içi değerlendirme listesi\ngibi) **verilmez** — kullanıcıyı okuduğu bölümden sayfanın tepesine atar.\n\n---\n\n## Yapışkan başlık\n\nSayfa kaydırmasına yapışan bileşenler (`DirectoryGroup`, `DirectoryJump`,\nkapaklı `DataTable`) offset'i `--hanui-header-height`ten okur ve **varsayılanı\n0**. Kendi yapışkan bandınız varsa gerçek ölçüyü yazın:\n\n```tsx\nuseEffect(() => {\n  const observer = new ResizeObserver(([entry]) =>\n    document.documentElement.style.setProperty(\n      '--hanui-header-height',\n      `${entry.contentRect.height}px`,\n    ),\n  );\n  observer.observe(headerRef.current!);\n  return () => observer.disconnect();\n}, []);\n```\n\nSabit bir sayı yazmayın: bant mobilde arama kutusu kendi satırına düştüğünde\nbüyür, bir duyuru şeridi çıkıp kaybolduğunda değişir.\n\n---\n\n## Bileşen kataloğu\n\n| Grup       | Bileşenler                                                                                                                                    |\n| ---------- | --------------------------------------------------------------------------------------------------------------------------------------------- |\n| Eylem      | `Button` · `IconButton` · `TextLink` · `Tooltip`                                                                                              |\n| Seçim      | `Chip` · `ChipGroup` · `Select` · `Combobox` · `Checkbox` · `Radio` · `RadioCard` · `RangeSlider` · `RatingInput` · `QuantityStepper` · `TableCheckbox` |\n| Girdi      | `Input` · `Textarea` · `Field`                                                                                                                |\n| Yüzey      | `Card` (+ `CardMedia`, `CardOverlay`, `CardBody`, `CardFooter`) · `SummaryCard` · `Panel` (+ `PanelForm`, `PanelRow`) · `PageHeader` · `SectionHeader` · `Tile` · `Directory` |\n| Geri bild. | `Alert` · `Badge` · `CodeBadge` · `EmptyState` · `Skeleton` · `Spinner` · `Divider` · `Avatar` · `Rating` · `Price` · `CopyField` · `Breadcrumb`             |\n| Kipsel     | `Modal` · `BottomSheet` · `ConfirmDialog` · `PromptDialog`                                                                                     |\n| Veri       | `Table` (+ `TableScroller`) · `DataTable` (+ `DataTableRow`) · `FilterBar` (+ `FilterBarField`) · `Pagination`                                 |\n\n### Seçenek sayısı öğeyi belirler\n\n| Seçenek sayısı | Öğe                                             |\n| -------------- | ----------------------------------------------- |\n| 2–4            | `ChipGroup` — hepsi ekranda, tek dokunuş        |\n| 5–20           | `Select` — aramasız liste; mobilde alt sayfa    |\n| 20+            | `Combobox` — yazarak ara                        |\n| Aralık         | `RangeSlider` (+ kesin değer için sayı girdisi) |\n| Tekil aç/kapa  | `Checkbox`                                      |\n\nHepsini onay kutusu listesi yapmak tek tip ama kötü bir arayüzdür: 1121 markayı\nda 3 seçeneği de aynı biçimde göstermek, ikisini de yanlış gösterir.\n\n---\n\n## Sistemin taşıdığı kararlar\n\n**Doygun dolgu = tıklanabilir.** Durum etiketleri **her zaman** tint zeminli\n(`Badge`, `Alert`), eylemler **her zaman** dolgulu veya çerçeveli. Bu ayrım\nbozulduğunda kullanıcı durum etiketine tıklamayı deniyor. `Badge`in `solid`\nvaryantı durum tonlarında bilinçli olarak `soft` ile aynı şeyi verir.\n\n**Bir ekranda tek `PRIMARY`.** `UIVariant` bir vurgu hiyerarşisi: iki dolu düğme\nyan yana durduğunda hiçbiri öne çıkmaz. `UIVariant.CART` ekrandaki tek doygun\nturuncu — dönüşüm eylemi.\n\n**Renk tek başına anlam taşımaz** (WCAG 1.4.1). Her durum bir metin, ikon veya\nişaretle de bildirilir: `Alert`in her tonunun kendi ikonu var, `Field`in zorunlu\nyıldızının yanında okunabilir bir metin, `RatingInput`in yıldızlarının altında\naçıklama duruyor.\n\n**İkonlar `react-bootstrap-icons`ten, DOLU sürümüyle.** Kabuk simgeleri\n(`Modal`ın kapatma çarpısı, `Select`in oku, `Alert`in durum ikonu) bir zamanlar\nkütüphanenin içinde elle çizilmiş yollardı; bir ikon setinin bakımını üstlenmek\nhiçbir şey kazandırmıyordu — tüketici uygulamalar kendi içerik ikonlarını zaten\naynı setten alıyor ve paket `external`, yani ikinci bir kopya inmiyor. Dolu\n(`*Fill`) sürüm kural: ince konturlu bir simge, tint zeminde ve küçük ölçüde\ntek piksele inip kayboluyor. Fill eşi olmayan simgelerde (`X`, `Check`, `Plus`,\n`Dash`) kalın `*Lg` sürümü kullanılır, chevron yerine dolu `Caret*Fill` —\nböylece bütün kabuk aynı çizgi ağırlığında kalır. İçerik ikonları (kategori\nsimgesi, marka logosu) her zaman `ReactNode` prop'u olarak DIŞARIDAN gelir.\n\n**İkon ölçüsü metin puntosundan ayrıdır.** İkonlar `1em` ile ölçeklenir ama\ntaşındıkları kutunun `font-size` değeri metin için seçilmiştir ve simge için\nküçük kalır: 40 px'lik bir `IconButton`ın ortasındaki 16 px'lik simge tıklanabilir\ngörünmüyordu. Ölçek ayrı bir token dizisidir (`$icon-xs` … `$icon-xl`,\n14/16/18/20/24 px) ve ikon taşıyan her kutu puntosunu oradan alır.\n\n**\"Yüklenemedi\" ile \"boş\" ayrı durumlardır.** `DataTable`da `error` verilmişken\nboş mesajı **asla** çizilmez; bir ağ hatasını \"kayıt kalmamış\" diye okutmak\nkullanıcıya yanlış karar verdirir.\n\n**Yerel öğe, taklit öğeden iyidir.** `<dialog>`, `<input type=\"range\">`,\n`<input type=\"radio\">` korunur. Tek istisna `<select>`: açılır listesinin içine\nhiçbir biçimde girilemiyor ve mobil tekerleği uygulamanın geri kalanına hiç\nbenzemiyor. Bedeli (odak yönetimi, ok tuşları, `aria-activedescendant`) bir kez\nödenip tek bileşene kapatıldı.\n\n**Dokunma hedefi en az 44×44 px** (WCAG 2.5.8). Görsel kutu daha küçük olabilir;\ntıklanabilir alan görünmez bir örtüyle korunur.\n\n**Hareket 200 ms'yi geçmez** ve `prefers-reduced-motion` her animasyonda\nkarşılanır.\n\n**Odak halkası `:focus-visible` ile.** `:focus` fareyle tıklandığında da halka\ngösterip görsel gürültü yaratıyor ve kullanıcılar bunu hata sanıyordu.\n\n---\n\n## Next.js App Router\n\nPaket `'use client'` sınırını **kendi içinde** çizer: sunucu bileşenlerinden\ndoğrudan import edilebilir, `children` sunucuda çizilip aktarılır.\n\n```tsx\n// app/layout.tsx\nimport '@ahmetilhn/hanui/styles.css';\nimport { HanuiProvider } from '@ahmetilhn/hanui';\nimport NextLink from 'next/link';\n```\n\n---\n\n## Geliştirme\n\n```bash\nnvm use            # .nvmrc → 24\nnpm install\nnpm run verify     # tokens → kontrast → typecheck → lint → kapsam → build → API → animasyon → boyut\nnpm run playground # bileşen galerisi → http://localhost:5273\n```\n\n| Komut                     |                                                                 |\n| ------------------------- | --------------------------------------------------------------- |\n| `npm run tokens`          | SCSS token dosyalarını `theme/tokens.ts`ten üretir              |\n| `npm run build`           | `build/` (ESM + CJS + `.d.ts` + `styles.css`)                   |\n| `npm run test`            | Jest + Testing Library + `jest-axe`                              |\n| `npm run test:coverage`   | kapsam kapısı — `helpers`/`hooks`/`theme` satır ≥ %80            |\n| `npm run test:visual`     | görsel regresyon (Playwright); `verify` İÇİNDE DEĞİL, aşağı bkz. |\n| `npm run test:device`     | iOS (WebKit) + Android (Chromium) davranış nöbetçileri, aşağı bkz. |\n| `npm run check:contrast`  | WCAG kontrast ölçümü, iki temada 120 çift                        |\n| `npm run check:api`       | genel API nöbetçisi — `build/index.d.ts` ↔ `scripts/api-baseline.txt` (164 ad) |\n| `npm run size`            | paket boyutu bütçesi (`size-limit`)                              |\n| `npm run playground`      | bileşen galerisi (tema · RTL · yoğunluk anahtarı)                |\n| `npm run lint`            | ESLint (TS) + stylelint (SCSS)                                    |\n| `npm run typecheck`       | `tsc --noEmit`                                                   |\n\n### Nöbetçiler ne koruyor\n\n- **Eksen taraması** — dışa verilen her bileşen, her anlamlı durumunda\n  (`components/__tests__/a11y.test.tsx`). Deftere girmeyen yeni bir bileşen\n  testi kırar.\n- **Klavye sözleşmesi** — tuş matrisleri her bileşenin JSDoc'unda, nöbetçisi\n  `components/__tests__/keyboard.test.tsx`.\n- **Kontrast** — metin ≥ 4,5:1, ikon ve odak halkası ≥ 3:1. Eşiği tutmayan bir\n  token derlemeyi kırar; düzeltme daima `palette.ts` düzeyinde yapılır.\n- **Token sözleşmesi** — açık/koyu anahtar kümeleri ve üretilmiş SCSS kaynakla\n  eşleşir. Ayrışma bugüne kadar sessizdi.\n- **Paket boyutu** — tek bileşen import eden bir uygulamanın ne indirdiği\n  ölçülür. Ölçülen (2026-08-15): `Badge` **3,53 kB** · `Button` **4,16 kB** ·\n  `styles.css` **21,11 kB** · tüm paket **37,54 kB** gzip.\n  ⚠ **Bütçe 38 kB, yani başlıkta kalan pay %1,2.** Bu satır bir dönem\n  `Badge 2,7 / Button 3,4 / paket 22,2` diyordu — ölçüm değil, bayat bir\n  kopyaydı ve okuyana **%70 boş alan** olduğunu düşündürüyordu. Yeni bir\n  bileşen eklerken bütçenin fiilen dolu olduğu bilinerek girilir; `size-limit`\n  kırmızıya döndüğünde doğru tepki limiti yükseltmek değil, ne eklendiğini\n  ölçmektir (`npm run size`).\n- **Genel API** — `build/index.d.ts`teki dışa aktarım kümesi\n  `scripts/api-baseline.txt` ile karşılaştırılır (`npm run check:api`, 164 ad).\n  Düşen bir ad **kırıcı**dır ama bugün görünmez: iki tüketici de sürümü tam\n  pinliyor, yani kırılma bir sonraki yükseltmede ortaya çıkar. Bilinçli\n  değişiklikte `node scripts/check-api.mjs --update` + CLAUDE.md'ye gerekçe.\n- **Odak halkası ve hareket ölçeği** — stylelint, `focus-ring` mixin'i dışında\n  `outline` ve bileşen SCSS'inde ham süre değeri (`0.7s`) yazılmasını\n  engelliyor. Üç bileşen kendi halkasını, iki bileşen kendi süresini\n  yazıyordu.\n\n### Cihaz nöbetçileri — `npm run test:device`\n\n```bash\nnpm run test:device:install   # WebKit + Chromium ikilileri (bir kez)\nnpm run test:device           # ios (iPhone 14 · WebKit) + android (Pixel 7 · Chromium)\n```\n\nBu depodaki en pahalı hatalar masaüstünde **görünmüyordu**: alt sayfanın gövdesi\nçöküyor, dip şerit klavyenin altında kalıyor, filtre seçenekleri maskenin\naltında siliniyordu. Üçü de yerleşim/boyama hatası ve üçü de yalnızca gerçek bir\nyerleşim motorunda ölçülebiliyor — jsdom bunları hiç hesaplamıyor.\n\n**İki motor, çünkü bir motor yetmiyor.** iOS'taki her tarayıcı (Chrome dahil)\nWebKit; Chromium'da doğru olan orada doğru olmak zorunda değil.\n\n**Ekran görüntüsü değil sayı.** Bu koşu piksel karşılaştırmaz — yükseklik,\ntaşma, odak ve hesaplanmış CSS değeri ölçer. Yani platformdan bağımsız,\nreferans dosyası yok, `--update-snapshots` gerektirmiyor ve `test:visual`in\naksine **CI'da olduğu gibi koşabilir**.\n\n**Emülasyonun dürüst sınırı.** Playwright'ın WebKit'i iOS Safari değil; çentik\npayı (`env(safe-area-inset-*)` burada hep 0), ekran klavyesinin görünen alanı\ndaraltması, adres çubuğunun kaybolup gelmesi ve momentum kaydırma\nyakalanmıyor. O sınırın altında kalanlar için savunma CSS'te taban değerlerde\n(bkz. `bottom-sheet` mixin'i) ve onların nöbetçisi `e2e/bottom-sheet.spec.ts`.\n\n**Görsel regresyon `verify` içinde değil**: ekran görüntüsü platforma bağlı\n(yazı tipi tarama, alt piksel yumuşatma) ve macOS'te üretilmiş bir referans\nubuntu üzerinde koşan CI'da her dosyada kırmızı döner. Referanslar platform\nbaşına saklanıyor (`e2e/__screenshots__/{platform}/`); CI'da açılacağı gün doğru\nyol, Playwright'ın resmi konteynerinde koşup `linux` referanslarını orada\nüretmek.\n\n> ⚠ **Referansları yenilerken `--update-snapshots=all` yazın, çıplak\n> `--update-snapshots` DEĞİL.** Ölçüldü (palet değişikliği turunda): çıplak\n> bayrak yalnızca **eksik** referansı yazıyor; eşleşmeyeni ne yeniden üretiyor\n> ne de kırıyor — koşu `40 passed` diyor, dosyalar eski renkte kalıyor ve\n> ardından gelen doğrulama koşusu **eski referansı eski referansla**\n> karşılaştırdığı için yeşil dönüyor. Yani sessizce yanlış bir \"temiz\" alınıyor.\n> `=all` mod, pikseli değişen her dosyayı yazar (bayt bayt aynı olanlara\n> dokunmaz, o yüzden dosya sayısı toplamdan az çıkabilir). Doğrulama:\n> yenilemeden sonra bir referansın baskın renklerini örnekleyin.\n\n`master`a her push `npm publish` çalıştırır — **`package.json` sürümünü\nyükseltmeyi unutmayın**, aynı sürüm ikinci kez yayımlanamaz ve iş akışı kırmızı\ndöner.\n\n## Tasarım sözleşmesi\n\nÖğe seçimi (hangi durumda hangi bileşen), yüzey/yükseklik merdiveni, renk\nkararları, durum tintleri, tipografi rolleri, erişilebilirlik eşikleri, hareket\nölçeği ve `@deprecated` göç yolları **`CLAUDE.md`** içindedir. O dosya\n`hanparca-frontend` ve `hanparca-admin` için de normatiftir.\n\n## Lisans\n\nMIT\n","readmeFilename":"README.md"}