{"_id":"@egoryolkin/fuse-ui","_rev":"6-996dfe9b8c69c01f37e39ddb6356bd8e","name":"@egoryolkin/fuse-ui","dist-tags":{"latest":"0.4.0"},"versions":{"0.1.0":{"name":"@egoryolkin/fuse-ui","version":"0.1.0","keywords":["react","ui-kit","design-system","tailwindcss","components"],"license":"MIT","_id":"@egoryolkin/fuse-ui@0.1.0","maintainers":[{"name":"egoryolkin","email":"egoryolkin.biz@icloud.com"}],"homepage":"https://github.com/EgorYolkin/fuse-ui#readme","bugs":{"url":"https://github.com/EgorYolkin/fuse-ui/issues"},"dist":{"shasum":"39a76f48a80fcf3cf609795be410b6e376ed96f9","tarball":"https://registry.npmjs.org/@egoryolkin/fuse-ui/-/fuse-ui-0.1.0.tgz","fileCount":28,"integrity":"sha512-Skg89kguz8EkUjLtZ3NXwhEpzqAK/v6Dvfw9puYDrNgz4kjc7lr+FwuVyQb4UnHDUrtQsO0r1nl9+UPSo9DsYA==","signatures":[{"sig":"MEYCIQCgeh+Okg+3JZr7YfN5krELXDhZamLbD/reyxrg9OyC1wIhAOjPdFwdXMQPkl3tGssuQPjQsCgj2sMEOo+h7/4WBdcH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":181748},"main":"./dist/index.js","type":"module","types":"./dist/types/src/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/types/src/index.d.ts","import":"./dist/index.js"},"./styles.css":{"types":"./styles.d.ts","default":"./dist/styles.css"}},"gitHead":"f7db47fc065e0fab35838988fea6e6de13baa3d8","scripts":{"lint":"eslint .","build":"vite build","check":"npm run typecheck && npm run lint","typecheck":"tsc --noEmit","prepublishOnly":"npm run check && npm run build"},"_npmUser":{"name":"egoryolkin","email":"egoryolkin.biz@icloud.com"},"repository":{"url":"git+https://github.com/EgorYolkin/fuse-ui.git","type":"git"},"_npmVersion":"10.9.7","description":"A technical, editorial React UI kit by Egor Yolkin.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.22.2","dependencies":{"clsx":"^2.1.1","lucide-react":"^1.16.0","@base-ui/react":"^1.4.1","tailwind-merge":"^3.6.0","tw-animate-css":"^1.4.0","class-variance-authority":"^0.7.1","@fontsource-variable/geist":"^5.2.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.12","react":"^19.2.6","eslint":"^10.3.0","shadcn":"^4.14.1","globals":"^17.6.0","react-dom":"^19.2.6","@eslint/js":"^10.0.1","typescript":"~6.0.2","@types/node":"^24.12.3","tailwindcss":"^4.3.0","@types/react":"^19.2.14","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.3.0","typescript-eslint":"^8.59.2","@vitejs/plugin-react":"^6.0.1","eslint-plugin-react-hooks":"^7.1.1"},"peerDependencies":{"react":">=19.0.0","react-dom":">=19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fuse-ui_0.1.0_1785046278025_0.4774023578136588","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@egoryolkin/fuse-ui","version":"0.1.1","keywords":["react","ui-kit","design-system","tailwindcss","components"],"author":{"url":"https://github.com/EgorYolkin","name":"Egor Yolkin"},"license":"MIT","_id":"@egoryolkin/fuse-ui@0.1.1","maintainers":[{"name":"egoryolkin","email":"egoryolkin.biz@icloud.com"}],"homepage":"https://github.com/EgorYolkin/fuse-ui#readme","bugs":{"url":"https://github.com/EgorYolkin/fuse-ui/issues"},"dist":{"shasum":"9f52eded553306846c2a664d9f911b0f75dbdacf","tarball":"https://registry.npmjs.org/@egoryolkin/fuse-ui/-/fuse-ui-0.1.1.tgz","fileCount":29,"integrity":"sha512-fY1Q6BGdOBoeflJNKAMuCWXHbCv/PIlvxX0olSKkkhnNh+BqW4kVcVCQTQ/eNYGR8sAfGONSWhiSvMjKhWd9UQ==","signatures":[{"sig":"MEQCIBkUGSX4uT82oho5ZagBAPcQ563Dzcz2vwFTGByr4LvFAiB7s5yu5D4ybl/wazDtrgpO2/lk4U01XmA1LHv+Ohakmw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@egoryolkin%2ffuse-ui@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":90158},"main":"./dist/index.js","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./styles.css":{"types":"./styles.d.ts","default":"./dist/styles.css"}},"gitHead":"f6700be4dc480c9ca6032f9fc5bcd83c070b090b","scripts":{"lint":"eslint .","test":"npm run build && node --test tests/*.test.mjs","build":"vite build","check":"npm run typecheck && npm run lint && npm run test","prepack":"npm run check","typecheck":"tsc --noEmit","test:package":"npm run build && node scripts/check-package.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e6a19abc-0e85-41fa-84a7-bffb6dc84f50"}},"repository":{"url":"git+https://github.com/EgorYolkin/fuse-ui.git","type":"git"},"_npmVersion":"11.5.1","description":"A technical, editorial React UI kit with accessible components and restrained motion.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.22.2","dependencies":{"clsx":"^2.1.1","lucide-react":"^1.16.0","@base-ui/react":"^1.4.1","tailwind-merge":"^3.6.0","tw-animate-css":"^1.4.0","class-variance-authority":"^0.7.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"packageManager":"npm@10.9.7","devDependencies":{"vite":"^8.0.12","react":"^19.2.6","eslint":"^10.3.0","shadcn":"^4.14.1","globals":"^17.6.0","react-dom":"^19.2.6","@eslint/js":"^10.0.1","typescript":"~6.0.2","@types/node":"^24.12.3","tailwindcss":"^4.3.0","@types/react":"^19.2.14","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.3.0","typescript-eslint":"^8.59.2","@vitejs/plugin-react":"^6.0.1","eslint-plugin-react-hooks":"^7.1.1","@fontsource-variable/geist":"^5.2.9"},"peerDependencies":{"react":">=19.0.0 <20.0.0","react-dom":">=19.0.0 <20.0.0","@fontsource-variable/geist":"^5.2.9"},"peerDependenciesMeta":{"@fontsource-variable/geist":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fuse-ui_0.1.1_1785053737912_0.8185467525029022","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@egoryolkin/fuse-ui","version":"0.2.0","keywords":["react","ui-kit","design-system","tailwindcss","components"],"author":{"url":"https://github.com/EgorYolkin","name":"Egor Yolkin"},"license":"MIT","_id":"@egoryolkin/fuse-ui@0.2.0","maintainers":[{"name":"egoryolkin","email":"egoryolkin.biz@icloud.com"}],"homepage":"https://github.com/EgorYolkin/fuse-ui#readme","bugs":{"url":"https://github.com/EgorYolkin/fuse-ui/issues"},"dist":{"shasum":"94738f7f0a8685e1aafeb01c07f784fc62f8f12c","tarball":"https://registry.npmjs.org/@egoryolkin/fuse-ui/-/fuse-ui-0.2.0.tgz","fileCount":31,"integrity":"sha512-v7hRAQ9ww2Z1E1Cs3IdL2qghnVht9Yk1I1jIxPjzTGmvzjAahkuCGlB2xwpkRX5hYZlZ0Oms8olmb3iXjQVXkQ==","signatures":[{"sig":"MEUCIChgHXeoC4jf5BPNi0GHSqLauuznUraCg7llNEYNq8dcAiEA3gHClSR3FqskQFqj6E1qWaQ5LuUdVfTRBscS6LX9394=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@egoryolkin%2ffuse-ui@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":95740},"main":"./dist/index.js","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./styles.css":{"types":"./styles.d.ts","default":"./dist/styles.css"}},"gitHead":"7e74a1dbfe268dccbc2a877a2c469dd891f6d0fb","scripts":{"lint":"eslint .","test":"npm run build && node --test tests/*.test.mjs","build":"vite build","check":"npm run typecheck && npm run lint && npm run test","prepack":"npm run check","typecheck":"tsc --noEmit","test:package":"npm run build && node scripts/check-package.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e6a19abc-0e85-41fa-84a7-bffb6dc84f50"}},"repository":{"url":"git+https://github.com/EgorYolkin/fuse-ui.git","type":"git"},"_npmVersion":"11.5.1","description":"A technical, editorial React UI kit with accessible components and restrained motion.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.22.2","dependencies":{"clsx":"^2.1.1","lucide-react":"^1.16.0","@base-ui/react":"^1.4.1","tailwind-merge":"^3.6.0","tw-animate-css":"^1.4.0","class-variance-authority":"^0.7.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"packageManager":"npm@10.9.7","devDependencies":{"vite":"^8.0.12","react":"^19.2.6","eslint":"^10.3.0","shadcn":"^4.14.1","globals":"^17.6.0","react-dom":"^19.2.6","@eslint/js":"^10.0.1","typescript":"~6.0.2","@types/node":"^24.12.3","tailwindcss":"^4.3.0","@types/react":"^19.2.14","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.3.0","typescript-eslint":"^8.59.2","@vitejs/plugin-react":"^6.0.1","eslint-plugin-react-hooks":"^7.1.1","@fontsource-variable/geist":"^5.2.9"},"peerDependencies":{"react":">=19.0.0 <20.0.0","react-dom":">=19.0.0 <20.0.0","@fontsource-variable/geist":"^5.2.9"},"peerDependenciesMeta":{"@fontsource-variable/geist":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fuse-ui_0.2.0_1785054618669_0.9476155307411211","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@egoryolkin/fuse-ui","version":"0.3.0","keywords":["react","ui-kit","design-system","tailwindcss","components"],"author":{"url":"https://github.com/EgorYolkin","name":"Egor Yolkin"},"license":"MIT","_id":"@egoryolkin/fuse-ui@0.3.0","maintainers":[{"name":"egoryolkin","email":"egoryolkin.biz@icloud.com"}],"homepage":"https://github.com/EgorYolkin/fuse-ui#readme","bugs":{"url":"https://github.com/EgorYolkin/fuse-ui/issues"},"dist":{"shasum":"c3d5e951bcc39aa919e647d42ec7763716e5cf72","tarball":"https://registry.npmjs.org/@egoryolkin/fuse-ui/-/fuse-ui-0.3.0.tgz","fileCount":34,"integrity":"sha512-29wVhiMEG0x3XZ8PAUwgQyYtKJkBtbIYD9fnns0z5VOQNxXZ1kN/nIXfWKyatL7KyRTK33kDHZ+O2uuuCEJi0g==","signatures":[{"sig":"MEUCIGtbAKDYuaoMhNG4TlIYVgB6vYH8XHx9vV2TueIb7GLyAiEA386U+BGXFtzcZ2hsLDVktCKHn4+5SlXIZPqs2vP9J0w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@egoryolkin%2ffuse-ui@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":115474},"main":"./dist/index.js","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./styles.css":{"types":"./styles.d.ts","default":"./dist/styles.css"}},"gitHead":"6ac1569e6f2b5f1ded51e0c24eeb6f440f48b031","scripts":{"lint":"eslint .","test":"npm run build && node --test tests/*.test.mjs","build":"vite build","check":"npm run typecheck && npm run lint && npm run test","prepack":"npm run check","typecheck":"tsc --noEmit","test:package":"npm run build && node scripts/check-package.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e6a19abc-0e85-41fa-84a7-bffb6dc84f50"}},"repository":{"url":"git+https://github.com/EgorYolkin/fuse-ui.git","type":"git"},"_npmVersion":"11.5.1","description":"A technical, editorial React UI kit with accessible components and restrained motion.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.22.2","dependencies":{"clsx":"^2.1.1","lucide-react":"^1.16.0","@base-ui/react":"^1.4.1","tailwind-merge":"^3.6.0","tw-animate-css":"^1.4.0","prism-react-renderer":"^2.4.1","class-variance-authority":"^0.7.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"packageManager":"npm@10.9.7","devDependencies":{"vite":"^8.0.12","react":"^19.2.6","eslint":"^10.3.0","shadcn":"^4.14.1","globals":"^17.6.0","react-dom":"^19.2.6","@eslint/js":"^10.0.1","typescript":"~6.0.2","@types/node":"^24.12.3","tailwindcss":"^4.3.0","@types/react":"^19.2.14","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.3.0","typescript-eslint":"^8.59.2","@vitejs/plugin-react":"^6.0.1","eslint-plugin-react-hooks":"^7.1.1","@fontsource-variable/geist":"^5.2.9"},"peerDependencies":{"react":">=19.0.0 <20.0.0","react-dom":">=19.0.0 <20.0.0","@fontsource-variable/geist":"^5.2.9"},"peerDependenciesMeta":{"@fontsource-variable/geist":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fuse-ui_0.3.0_1785061733955_0.0036107041340516233","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@egoryolkin/fuse-ui","version":"0.3.1","keywords":["react","ui-kit","design-system","tailwindcss","components"],"author":{"url":"https://github.com/EgorYolkin","name":"Egor Yolkin"},"license":"MIT","_id":"@egoryolkin/fuse-ui@0.3.1","maintainers":[{"name":"egoryolkin","email":"egoryolkin.biz@icloud.com"}],"homepage":"https://fuse-ui.egoryolkin.ru","bugs":{"url":"https://github.com/EgorYolkin/fuse-ui/issues"},"dist":{"shasum":"c787f36f359cd82a2251883252039387cf960507","tarball":"https://registry.npmjs.org/@egoryolkin/fuse-ui/-/fuse-ui-0.3.1.tgz","fileCount":35,"integrity":"sha512-qGboLZrXOWWf4tY71bHTzai51+E0V1qQevT6ljsAs+D+vmWGeArP7uRbCPTJd0TcKLpMy/FwcX26nniBHNwNxw==","signatures":[{"sig":"MEUCIQDvCT3GJUNd927RXuFm3nuyRMc1t4pvr1toZJ3A4uCP0QIgKphD3U7ZToJZogqds8+fLREoX9VgGMWf44vI08Use8Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@egoryolkin%2ffuse-ui@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":385105},"main":"./dist/index.js","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./styles.css":{"types":"./styles.d.ts","default":"./dist/styles.css"}},"gitHead":"367e4fc0cbe56d634f6fbae322652f2f7e38749f","scripts":{"lint":"eslint .","test":"npm run build && node --test tests/*.test.mjs","build":"vite build","check":"npm run typecheck && npm run lint && npm run test","prepack":"npm run check","typecheck":"tsc --noEmit","test:package":"npm run build && node scripts/check-package.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e6a19abc-0e85-41fa-84a7-bffb6dc84f50"}},"repository":{"url":"git+https://github.com/EgorYolkin/fuse-ui.git","type":"git"},"_npmVersion":"11.5.1","description":"A technical, editorial React UI kit with accessible components and restrained motion.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.22.2","dependencies":{"clsx":"^2.1.1","lucide-react":"^1.16.0","@base-ui/react":"^1.4.1","tailwind-merge":"^3.6.0","tw-animate-css":"^1.4.0","prism-react-renderer":"^2.4.1","class-variance-authority":"^0.7.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"packageManager":"npm@10.9.7","devDependencies":{"vite":"^8.0.12","react":"^19.2.6","eslint":"^10.3.0","shadcn":"^4.14.1","globals":"^17.6.0","react-dom":"^19.2.6","@eslint/js":"^10.0.1","typescript":"~6.0.2","@types/node":"^24.12.3","tailwindcss":"^4.3.0","@types/react":"^19.2.14","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.3.0","typescript-eslint":"^8.59.2","@vitejs/plugin-react":"^6.0.1","eslint-plugin-react-hooks":"^7.1.1","@fontsource-variable/geist":"^5.2.9"},"peerDependencies":{"react":">=19.0.0 <20.0.0","react-dom":">=19.0.0 <20.0.0","@fontsource-variable/geist":"^5.2.9"},"peerDependenciesMeta":{"@fontsource-variable/geist":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fuse-ui_0.3.1_1785214314494_0.2900028477559393","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@egoryolkin/fuse-ui","version":"0.4.0","description":"A technical, editorial React UI kit with accessible components and restrained motion.","type":"module","license":"MIT","author":{"name":"Egor Yolkin","url":"https://github.com/EgorYolkin"},"homepage":"https://fuse-ui.egoryolkin.ru","bugs":{"url":"https://github.com/EgorYolkin/fuse-ui/issues"},"sideEffects":["**/*.css"],"main":"./dist/index.js","module":"./dist/index.js","types":"./dist/types/index.d.ts","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./styles.css":{"types":"./styles.d.ts","default":"./dist/styles.css"}},"publishConfig":{"access":"public","provenance":true,"registry":"https://registry.npmjs.org/"},"repository":{"type":"git","url":"git+https://github.com/EgorYolkin/fuse-ui.git"},"keywords":["react","ui-kit","design-system","tailwindcss","components"],"packageManager":"npm@10.9.7","scripts":{"build":"vite build","storybook":"storybook dev -p 6006","build-storybook":"storybook build","typecheck":"tsc --noEmit","lint":"eslint .","test":"npm run build && node --test tests/*.test.mjs","test:package":"npm run build && node scripts/check-package.mjs","check":"npm run typecheck && npm run lint && npm run test","prepack":"npm run check"},"peerDependencies":{"@fontsource-variable/geist":"^5.2.9","react":">=19.0.0 <20.0.0","react-dom":">=19.0.0 <20.0.0"},"peerDependenciesMeta":{"@fontsource-variable/geist":{"optional":true}},"dependencies":{"@base-ui/react":"^1.6.0","class-variance-authority":"^0.7.1","clsx":"^2.1.1","embla-carousel-react":"^8.6.0","lucide-react":"^1.16.0","prism-react-renderer":"^2.4.1","react-day-picker":"^10.0.1","tailwind-merge":"^3.6.0","tw-animate-css":"^1.4.0"},"devDependencies":{"@eslint/js":"^10.0.1","@fontsource-variable/geist":"^5.2.9","@storybook/addon-a11y":"^10.5.5","@storybook/addon-themes":"^10.5.5","@storybook/react-vite":"^10.5.5","@tailwindcss/vite":"^4.3.0","@types/node":"^24.12.3","@types/react":"^19.2.14","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.1","eslint":"^10.3.0","eslint-plugin-react-hooks":"^7.1.1","globals":"^17.6.0","react":"^19.2.6","react-dom":"^19.2.6","shadcn":"^4.14.1","storybook":"^10.5.5","tailwindcss":"^4.3.0","typescript":"~6.0.2","typescript-eslint":"^8.59.2","vite":"^8.0.12","vite-plugin-dts":"^4.5.4"},"_id":"@egoryolkin/fuse-ui@0.4.0","gitHead":"6313391d71ea0f3bffcee5a911dd0d7026c8d4d8","_nodeVersion":"22.22.2","_npmVersion":"11.5.1","dist":{"integrity":"sha512-XVTfJhs+3eH2iFPdvyar3WPo1ltVkSGH9s2/PpEPxx+qVF/w3/LUD1+BTRQELE9nlNhN5Dg0ZmHaQLOE7V17UA==","shasum":"3244d7ee937898766706bb21705ac995a8564b46","tarball":"https://registry.npmjs.org/@egoryolkin/fuse-ui/-/fuse-ui-0.4.0.tgz","fileCount":51,"unpackedSize":446848,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@egoryolkin%2ffuse-ui@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDQNnrfIy7sNxheKr4mJQRc+fzkOxG7WcjyHw1Q0uyt2wIgMpN97ODueY5jyZMwYvScr8LtaK/v+NSsoTugVwohwps="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e6a19abc-0e85-41fa-84a7-bffb6dc84f50"}},"directories":{},"maintainers":[{"name":"egoryolkin","email":"egoryolkin.biz@icloud.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/fuse-ui_0.4.0_1785305048381_0.5403568668307381"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-26T06:11:17.852Z","modified":"2026-07-29T06:04:08.894Z","0.1.0":"2026-07-26T06:11:18.156Z","0.1.1":"2026-07-26T08:15:38.045Z","0.2.0":"2026-07-26T08:30:18.806Z","0.3.0":"2026-07-26T10:28:54.199Z","0.3.1":"2026-07-28T04:51:54.658Z","0.4.0":"2026-07-29T06:04:08.533Z"},"bugs":{"url":"https://github.com/EgorYolkin/fuse-ui/issues"},"author":{"name":"Egor Yolkin","url":"https://github.com/EgorYolkin"},"license":"MIT","homepage":"https://fuse-ui.egoryolkin.ru","keywords":["react","ui-kit","design-system","tailwindcss","components"],"repository":{"type":"git","url":"git+https://github.com/EgorYolkin/fuse-ui.git"},"description":"A technical, editorial React UI kit with accessible components and restrained motion.","maintainers":[{"name":"egoryolkin","email":"egoryolkin.biz@icloud.com"}],"readme":"# Fuse UI\n\n[![CI](https://github.com/EgorYolkin/fuse-ui/actions/workflows/ci.yml/badge.svg)](https://github.com/EgorYolkin/fuse-ui/actions/workflows/ci.yml)\n[![npm version](https://img.shields.io/npm/v/%40egoryolkin%2Ffuse-ui)](https://www.npmjs.com/package/@egoryolkin/fuse-ui)\n[![license](https://img.shields.io/npm/l/%40egoryolkin%2Ffuse-ui)](LICENSE)\n\nA reusable React UI kit with a technical, editorial visual language: sharp controls, fine borders, registration corners, layered panels, monospace metadata, and restrained motion.\n\n[![Fuse UI Button component previews](assets/button-showcase.png)](https://fuse-ui.egoryolkin.ru/components/button)\n\n*Button variants and sizes — open the image for the interactive component preview.*\n\n> **Documentation:** explore every component, live UI examples, and usage guidance at **[fuse-ui.egoryolkin.ru](https://fuse-ui.egoryolkin.ru)**.\n>\n> **Changes:** see the current release notes in **[CHANGELOG.md](CHANGELOG.md)** or open **Project / Changelog** in Storybook.\n\n## Features\n\n- Typed React components published as ESM\n- One opt-in stylesheet with light and dark semantic tokens\n- Accessible primitives built on Base UI\n- Reduced-motion support for non-essential animation\n- Tree-shakeable JavaScript and explicit package exports\n- npm Trusted Publishing with provenance\n\n## Installation\n\n```bash\nnpm install @egoryolkin/fuse-ui\n```\n\nFuse UI supports React and React DOM 19.x. Import the shared stylesheet once in your application entry point:\n\n```tsx\nimport \"@egoryolkin/fuse-ui/styles.css\"\n```\n\nGeist is an optional peer dependency. Install and import it if you want the intended typography:\n\n```bash\nnpm install @fontsource-variable/geist\n```\n\n```tsx\nimport \"@fontsource-variable/geist\"\n```\n\n## Quick start\n\n```tsx\nimport {\n  BracketButton,\n  CornerBox,\n  Heading,\n  Text,\n} from \"@egoryolkin/fuse-ui\"\nimport \"@egoryolkin/fuse-ui/styles.css\"\n\nexport function Hero() {\n  return (\n    <CornerBox full className=\"border border-border bg-surface p-8\">\n      <Heading>Build useful things.</Heading>\n      <Text className=\"mt-3\">A reusable Fuse UI surface.</Text>\n      <BracketButton\n        className=\"mt-6\"\n        href=\"https://fuse-ui.egoryolkin.ru\"\n        variant=\"primary\"\n      >\n        Open documentation\n      </BracketButton>\n    </CornerBox>\n  )\n}\n```\n\nAdd `className=\"dark\"` (or `class=\"dark\"` outside React) to an application root to enable the dark theme manually.\n\n## Component workbench\n\nRun Storybook to develop and test components in isolation:\n\n```bash\nnpm run storybook\n```\n\nOpen `http://localhost:6006`. Stories cover component variants, light and dark themes, accessibility checks, and interaction scenarios. Build the static Storybook with:\n\n```bash\nnpm run build-storybook\n```\n\n## UI examples\n\nCompose the primitives into product surfaces; Fuse UI supplies the visual language while your application owns the layout and content.\n\n```tsx\nimport {\n  Badge,\n  BracketButton,\n  CornerBox,\n  Heading,\n  Text,\n} from \"@egoryolkin/fuse-ui\"\n\nexport function ReleaseCard() {\n  return (\n    <CornerBox full className=\"border border-border bg-surface p-6\">\n      <Badge variant=\"outline\">v0.3.0</Badge>\n      <Heading className=\"mt-4\">Ready to ship</Heading>\n      <Text className=\"mt-2 text-muted-foreground\">\n        Accessible controls and semantic tokens, ready for your application.\n      </Text>\n      <BracketButton\n        className=\"mt-6\"\n        href=\"https://fuse-ui.egoryolkin.ru\"\n        variant=\"primary\"\n      >\n        Browse component examples\n      </BracketButton>\n    </CornerBox>\n  )\n}\n```\n\nFor more compositions, theme states, and component APIs, visit **[fuse-ui.egoryolkin.ru](https://fuse-ui.egoryolkin.ru)**.\n\n### Theme provider\n\nUse `ThemeProvider` for persisted light, dark, and system modes. It updates the root `<html>` class, follows changes to `prefers-color-scheme`, and injects a small SSR-safe initialization script to avoid a theme flash:\n\n```tsx\nimport { ThemeProvider, ThemeToggle } from \"@egoryolkin/fuse-ui\"\n\nexport function App() {\n  return (\n    <ThemeProvider defaultTheme=\"system\" storageKey=\"app-theme\">\n      <ThemeToggle showLabel />\n      {/* application */}\n    </ThemeProvider>\n  )\n}\n```\n\n`useTheme()` returns `{ theme, resolvedTheme, setTheme }` for custom controls. The included `ThemeToggle` cycles through light, dark, and system modes. Pass `nonce` to `ThemeProvider` when your Content Security Policy requires one.\n\n## Components\n\nComplete props, live previews, and implementation examples are available at **[fuse-ui.egoryolkin.ru](https://fuse-ui.egoryolkin.ru)**.\n\n| Area | Exports |\n| --- | --- |\n| Layout | `Container`, `Stack`, `Cluster`, `Grid`, `Navbar`, `Footer` |\n| Typography | `Heading`, `Text`, `Kicker`, `Highlight`, `HighlightHeading`, `SectionHeading` |\n| Actions and inputs | `Button`, `BracketButton`, `Checkbox`, `Combobox`, `Switcher`, `Switch`, `ThemeToggle` |\n| Navigation | `Accordion`, `Breadcrumb`, `Carousel`, `Pagination`, `Tabs`, `TabsList`, `TabsTrigger`, `TabsContent` |\n| Overlays and feedback | `Dialog`, `ToastProvider`, `useToast`, `Skeleton`, `Spinner` |\n| Surfaces and data | `Alert`, `Avatar`, `AvatarGroup`, `Badge`, `Calendar`, `CornerBox`, `DataTable`, `PatternStrip`, `Separator`, `IconTile`, `IconList`, `StackedPanel`, `StaggeredList` |\n| Code | `Code`, `CodeBlock` |\n| Motion | `Marquee`, `ScrollCrown` |\n| Theme | `ThemeProvider`, `ThemeToggle`, `useTheme` |\n\nThe Combobox export includes styled input, trigger, popup, list, item, indicator, group, empty-state, clear, and portal helpers. Stacked panels and staggered lists expose their corresponding content/item helpers. Buttons and badges share `default`, `outline`, `ghost`, and `destructive` visual variants.\n\n`CodeBlock` applies Fuse UI syntax colors to highlighted source and includes a copy button. It also supports optional line numbers:\n\n```tsx\nimport { CodeBlock } from \"@egoryolkin/fuse-ui\"\n\n<CodeBlock\n  language=\"tsx\"\n  showLineNumbers\n  code={`export function SaveButton() {\\n  return <Button>Save</Button>\\n}`}\n/>\n```\n\nInline `<code>` elements receive the same technical surface treatment from the shared stylesheet.\n\nAll component props are exported through the generated TypeScript declarations and extend the relevant native or Base UI props where appropriate.\n\n## Styling and theming\n\nFuse UI ships compiled Tailwind CSS, so consumers do not need to configure Tailwind or scan this package. The stylesheet defines semantic tokens such as `--background`, `--foreground`, `--surface`, `--border`, `--primary`, and `--muted-foreground` for both default and `.dark` themes.\n\nLoad the stylesheet before application overrides. Override semantic custom properties at your application root rather than targeting component internals:\n\n```css\n:root {\n  --primary: oklch(0.55 0.18 250);\n}\n```\n\nThe exact token set is available in [`src/styles.css`](src/styles.css). CSS is marked as a package side effect so bundlers retain explicit stylesheet imports.\n\n## Accessibility\n\nComponents use semantic elements and accessible Base UI primitives where applicable. Motion responds to `prefers-reduced-motion`. Consumers remain responsible for meaningful labels, focus order, color contrast after token overrides, and testing complete application flows with a keyboard and assistive technology.\n\nInteractive components use React client APIs. In React Server Component frameworks, render them behind the framework's client boundary.\n\n## Development\n\nFor consumer documentation, always start at **[fuse-ui.egoryolkin.ru](https://fuse-ui.egoryolkin.ru)**.\n\nDevelopment requires Node.js 22.12 or newer and the npm version declared in `package.json`.\n\n```bash\nnpm ci\nnpm run check\nnpm run test:package\n```\n\nThe production package is generated in `dist/`. See [CONTRIBUTING.md](CONTRIBUTING.md) before submitting a change.\n\n## Releases and support\n\n- Changes follow [Semantic Versioning](https://semver.org/) and are recorded in [CHANGELOG.md](CHANGELOG.md).\n- Maintainer release steps are documented in [RELEASING.md](RELEASING.md).\n- For usage help and bugs, see [SUPPORT.md](SUPPORT.md).\n- Report vulnerabilities privately according to [SECURITY.md](SECURITY.md).\n- Community participation is governed by the [Code of Conduct](CODE_OF_CONDUCT.md).\n\n## License\n\n[MIT](LICENSE) © Egor Yolkin\n","readmeFilename":"README.md"}