{"_id":"@emporix/cockpit-component-library","_rev":"13-d82ff6b94de13d609752404502f9d972","name":"@emporix/cockpit-component-library","dist-tags":{"latest":"1.0.9"},"versions":{"0.0.1":{"name":"@emporix/cockpit-component-library","version":"0.0.1","keywords":["react","components","library","typescript","vite"],"author":{"name":"Emporix"},"license":"MIT","_id":"@emporix/cockpit-component-library@0.0.1","maintainers":[{"name":"p.bambynek","email":"p.bambynek@emporix.com"},{"name":"michal-emporix","email":"m.cebrzyna@emporix.com"},{"name":"m.buj","email":"m.bujalski@emporix.com"},{"name":"jmachnik-emporix","email":"j.machnik@emporix.com"},{"name":"jmachnik","email":"machnik.jakub@gmail.com"}],"homepage":"https://github.com/emporix/cockpit-component-library#readme","bugs":{"url":"https://github.com/emporix/cockpit-component-library/issues"},"dist":{"shasum":"d903b75f94423e04921f0830447bef7c68c510a2","tarball":"https://registry.npmjs.org/@emporix/cockpit-component-library/-/cockpit-component-library-0.0.1.tgz","fileCount":20,"integrity":"sha512-yye2fQ/11hyW5SLl72eD+w5YT+ZVyuFLvES1Uh/ryD2KCv2yvqTL5fk3yuvGvFqS9Yf1BrBp7NztZXCY5G8DnQ==","signatures":[{"sig":"MEUCIQD3nkUAaDkey9gbiTwmH0knlyYV3Yf40ZdojUko703zIQIgEkAoWa8/6uhd8sJXp21CsD0XATimB0XDCXB0vGtJsdk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":98790},"main":"./dist/index.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","browser":"./dist/index.umd.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./styles":{"types":"./dist/styles.d.ts","default":"./dist/style.css"}},"gitHead":"76a2088006305b3e154262620a33ea8db941e371","scripts":{"dev":"vite","lint":"eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0","test":"vitest","build":"tsc && vite build","format":"prettier --write .","prepare":"husky","preview":"vite preview","test:ui":"vitest --ui","lint:fix":"eslint . --ext ts,tsx --fix","build:lib":"vite build --mode library && node -e \"require('fs').writeFileSync('dist/styles.d.ts', 'declare module \\'@emporix/cockpit-component-library/styles\\' {\\n  const styles: string;\\n  export default styles;\\n}\\n')\"","storybook":"storybook dev -p 6006","type-check":"tsc --noEmit","format:check":"prettier --check .","format:staged":"prettier --write","test:coverage":"vitest --coverage","build-storybook":"storybook build"},"_npmUser":{"name":"m.buj","email":"m.bujalski@emporix.com"},"repository":{"url":"git+https://github.com/emporix/cockpit-component-library.git","type":"git"},"_npmVersion":"11.8.0","description":"A React component library for cockipt projects","directories":{},"_nodeVersion":"20.19.0","dependencies":{"primereact":"^10.9.7","react-icons":"^5.6.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.5.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"sass":"^1.98.0","vite":"^6.4.1","husky":"^9.1.7","jsdom":"^29.0.0","react":"^19.2.4","eslint":"^8.57.1","vitest":"^4.1.0","prettier":"^3.8.1","react-dom":"^19.2.4","storybook":"^8.6.18","@vitest/ui":"^4.1.0","typescript":"^5.9.3","@types/react":"^19.2.14","@storybook/test":"^8.6.15","vite-plugin-dts":"^4.5.4","@storybook/react":"^8.6.18","@types/react-dom":"^19.2.3","@storybook/blocks":"^8.6.18","@vitest/coverage-v8":"^4.1.0","eslint-plugin-react":"^7.37.4","@vitejs/plugin-react":"^4.3.1","@storybook/react-vite":"^8.6.18","@storybook/addon-links":"^8.6.18","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","@typescript-eslint/parser":"^8.57.0","eslint-plugin-react-hooks":"^7.0.1","@storybook/addon-essentials":"^8.6.18","@storybook/addon-interactions":"^8.6.18","@typescript-eslint/eslint-plugin":"^8.57.0"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cockpit-component-library_0.0.1_1773744297068_0.041118345192800776","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@emporix/cockpit-component-library","version":"0.0.2","keywords":["react","components","library","typescript","vite"],"author":{"name":"Emporix"},"license":"MIT","_id":"@emporix/cockpit-component-library@0.0.2","maintainers":[{"name":"p.bambynek","email":"p.bambynek@emporix.com"},{"name":"michal-emporix","email":"m.cebrzyna@emporix.com"},{"name":"m.buj","email":"m.bujalski@emporix.com"},{"name":"jmachnik-emporix","email":"j.machnik@emporix.com"},{"name":"jmachnik","email":"machnik.jakub@gmail.com"}],"homepage":"https://github.com/emporix/cockpit-component-library#readme","bugs":{"url":"https://github.com/emporix/cockpit-component-library/issues"},"dist":{"shasum":"bf1b445bb6cc788380beda9d2a52056f7b287f15","tarball":"https://registry.npmjs.org/@emporix/cockpit-component-library/-/cockpit-component-library-0.0.2.tgz","fileCount":20,"integrity":"sha512-ZSziyyPBqd/kisPjL8G34UpkARK+lwe1oymwql7NF1i3109nG71owvajvHzDG7xYE+TWACDvFTSXXFOLd3TkVg==","signatures":[{"sig":"MEYCIQCCCr+nMKbvsLBrlg7FpGjFMhwcfjf+Jrs086MIhOkMkwIhANg1SPRFUQE74JVhcanNx6tZ/bjmcitq5aPBhci8021V","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":98535},"main":"./dist/index.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","browser":"./dist/index.umd.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./styles":{"types":"./dist/styles.d.ts","default":"./dist/style.css"}},"gitHead":"dafbf052c3b84643a86f0d037dfdf6127443845e","scripts":{"dev":"vite","lint":"eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0","test":"vitest","build":"tsc && vite build","format":"prettier --write .","prepare":"husky","preview":"vite preview","test:ui":"vitest --ui","lint:fix":"eslint . --ext ts,tsx --fix","build:lib":"vite build --mode library && node -e \"require('fs').writeFileSync('dist/styles.d.ts', 'declare module \\'@emporix/cockpit-component-library/styles\\' {\\n  const styles: string;\\n  export default styles;\\n}\\n')\"","storybook":"storybook dev -p 6006","type-check":"tsc --noEmit","format:check":"prettier --check .","format:staged":"prettier --write","test:coverage":"vitest --coverage","build-storybook":"storybook build"},"_npmUser":{"name":"m.buj","email":"m.bujalski@emporix.com"},"repository":{"url":"git+https://github.com/emporix/cockpit-component-library.git","type":"git"},"_npmVersion":"11.8.0","description":"A React component library for cockipt projects","directories":{},"_nodeVersion":"20.19.0","dependencies":{"primereact":"^10.9.7","react-icons":"^5.6.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.5.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"sass":"^1.98.0","vite":"^6.4.1","husky":"^9.1.7","jsdom":"^29.0.0","react":"^19.2.4","eslint":"^8.57.1","vitest":"^4.1.0","prettier":"^3.8.1","react-dom":"^19.2.4","storybook":"^8.6.18","@vitest/ui":"^4.1.0","typescript":"^5.9.3","@types/react":"^19.2.14","@storybook/test":"^8.6.15","vite-plugin-dts":"^4.5.4","@storybook/react":"^8.6.18","@types/react-dom":"^19.2.3","@storybook/blocks":"^8.6.18","@vitest/coverage-v8":"^4.1.0","eslint-plugin-react":"^7.37.4","@vitejs/plugin-react":"^4.3.1","@storybook/react-vite":"^8.6.18","@storybook/addon-links":"^8.6.18","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","@typescript-eslint/parser":"^8.57.0","eslint-plugin-react-hooks":"^7.0.1","@storybook/addon-essentials":"^8.6.18","@storybook/addon-interactions":"^8.6.18","@typescript-eslint/eslint-plugin":"^8.57.0"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cockpit-component-library_0.0.2_1773745310327_0.019422221894872305","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@emporix/cockpit-component-library","version":"0.0.3","keywords":["react","components","library","typescript","vite"],"author":{"name":"Emporix"},"license":"MIT","_id":"@emporix/cockpit-component-library@0.0.3","maintainers":[{"name":"p.bambynek","email":"p.bambynek@emporix.com"},{"name":"michal-emporix","email":"m.cebrzyna@emporix.com"},{"name":"m.buj","email":"m.bujalski@emporix.com"},{"name":"jmachnik-emporix","email":"j.machnik@emporix.com"},{"name":"jmachnik","email":"machnik.jakub@gmail.com"}],"homepage":"https://github.com/emporix/cockpit-component-library#readme","bugs":{"url":"https://github.com/emporix/cockpit-component-library/issues"},"dist":{"shasum":"e2b9fffc5ab1d09d1f0fdad413d1e1b9777c3ebf","tarball":"https://registry.npmjs.org/@emporix/cockpit-component-library/-/cockpit-component-library-0.0.3.tgz","fileCount":20,"integrity":"sha512-O4NB8s2aFn0uqfQBwMfuL2ltcPd43SQrGfdxYv+sXFo/z7QlL01q4JimGNlfbRY2LGMHuH4OOpctWw0vjP6uMg==","signatures":[{"sig":"MEQCIAfSXrOKuczGHpKxXf8zxFKNdnZXA0h5u5V8Yhi32BJwAiBW+vDTOOyNJUgJmiswlcLjQtEK0gzuU5Y372bRpWXsag==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":98535},"main":"./dist/index.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","browser":"./dist/index.umd.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./styles":{"types":"./dist/styles.d.ts","default":"./dist/style.css"}},"gitHead":"88948cbb472f330ce1401c2f0ab279dcb152c57f","scripts":{"dev":"vite","lint":"eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0","test":"vitest","build":"tsc && vite build","format":"prettier --write .","prepare":"husky","preview":"vite preview","test:ui":"vitest --ui","lint:fix":"eslint . --ext ts,tsx --fix","build:lib":"vite build --mode library && node -e \"require('fs').writeFileSync('dist/styles.d.ts', 'declare module \\'@emporix/cockpit-component-library/styles\\' {\\n  const styles: string;\\n  export default styles;\\n}\\n')\"","storybook":"storybook dev -p 6006","type-check":"tsc --noEmit","format:check":"prettier --check .","format:staged":"prettier --write","test:coverage":"vitest --coverage","build-storybook":"storybook build"},"_npmUser":{"name":"m.buj","email":"m.bujalski@emporix.com"},"repository":{"url":"git+https://github.com/emporix/cockpit-component-library.git","type":"git"},"_npmVersion":"11.8.0","description":"A React component library for cockipt projects","directories":{},"_nodeVersion":"20.19.0","dependencies":{"primereact":"^10.9.7","react-icons":"^5.6.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.5.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"sass":"^1.98.0","vite":"^6.4.1","husky":"^9.1.7","jsdom":"^29.0.0","react":"^19.2.4","eslint":"^8.57.1","vitest":"^4.1.0","prettier":"^3.8.1","react-dom":"^19.2.4","storybook":"^8.6.18","@vitest/ui":"^4.1.0","typescript":"^5.9.3","@types/react":"^19.2.14","@storybook/test":"^8.6.15","vite-plugin-dts":"^4.5.4","@storybook/react":"^8.6.18","@types/react-dom":"^19.2.3","@storybook/blocks":"^8.6.18","@vitest/coverage-v8":"^4.1.0","eslint-plugin-react":"^7.37.4","@vitejs/plugin-react":"^4.3.1","@storybook/react-vite":"^8.6.18","@storybook/addon-links":"^8.6.18","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","@typescript-eslint/parser":"^8.57.0","eslint-plugin-react-hooks":"^7.0.1","@storybook/addon-essentials":"^8.6.18","@storybook/addon-interactions":"^8.6.18","@typescript-eslint/eslint-plugin":"^8.57.0"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cockpit-component-library_0.0.3_1773745599331_0.9147105626848266","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@emporix/cockpit-component-library","version":"0.0.4","keywords":["react","components","library","typescript","vite"],"author":{"name":"Emporix"},"license":"MIT","_id":"@emporix/cockpit-component-library@0.0.4","maintainers":[{"name":"p.bambynek","email":"p.bambynek@emporix.com"},{"name":"michal-emporix","email":"m.cebrzyna@emporix.com"},{"name":"m.buj","email":"m.bujalski@emporix.com"},{"name":"jmachnik-emporix","email":"j.machnik@emporix.com"},{"name":"jmachnik","email":"machnik.jakub@gmail.com"}],"homepage":"https://github.com/emporix/cockpit-component-library#readme","bugs":{"url":"https://github.com/emporix/cockpit-component-library/issues"},"dist":{"shasum":"cc2797c48e36a2dce06b20f9809b4efc18a19fd3","tarball":"https://registry.npmjs.org/@emporix/cockpit-component-library/-/cockpit-component-library-0.0.4.tgz","fileCount":20,"integrity":"sha512-p3sBEWn2XyYEQ6QP428oC4/ZDDWA4vmtPLU6Y05yorDht7XydTclPPw1ilvQwE9DIqgdSemEEij7b5KCsEbVfg==","signatures":[{"sig":"MEQCIBCN+/hOLDh3IHfbNsi18/l2pLjFThcTtcDTCsBxAmnCAiAgCo6CT/+RhhNX2j9cHZ+lqVBaIpp0DhL8PdOihthhdQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":102382},"main":"./dist/index.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","browser":"./dist/index.umd.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./styles":{"types":"./dist/styles.d.ts","default":"./dist/style.css"}},"gitHead":"88948cbb472f330ce1401c2f0ab279dcb152c57f","scripts":{"dev":"vite","lint":"eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0","test":"vitest","build":"tsc && vite build","format":"prettier --write .","prepare":"husky","preview":"vite preview","test:ui":"vitest --ui","lint:fix":"eslint . --ext ts,tsx --fix","build:lib":"vite build --mode library && node -e \"require('fs').writeFileSync('dist/styles.d.ts', 'declare module \\'@emporix/cockpit-component-library/styles\\' {\\n  const styles: string;\\n  export default styles;\\n}\\n')\"","storybook":"storybook dev -p 6006","type-check":"tsc --noEmit","format:check":"prettier --check .","format:staged":"prettier --write","test:coverage":"vitest --coverage","build-storybook":"storybook build"},"_npmUser":{"name":"m.buj","email":"m.bujalski@emporix.com"},"repository":{"url":"git+https://github.com/emporix/cockpit-component-library.git","type":"git"},"_npmVersion":"11.8.0","description":"A React component library for cockipt projects","directories":{},"_nodeVersion":"20.19.0","dependencies":{"primereact":"^10.9.7","react-icons":"^5.6.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.5.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"sass":"^1.98.0","vite":"^6.4.1","husky":"^9.1.7","jsdom":"^29.0.0","react":"^19.2.4","eslint":"^8.57.1","vitest":"^4.1.0","prettier":"^3.8.1","react-dom":"^19.2.4","storybook":"^8.6.18","@vitest/ui":"^4.1.0","typescript":"^5.9.3","@types/react":"^19.2.14","@storybook/test":"^8.6.15","vite-plugin-dts":"^4.5.4","@storybook/react":"^8.6.18","@types/react-dom":"^19.2.3","@storybook/blocks":"^8.6.18","@vitest/coverage-v8":"^4.1.0","eslint-plugin-react":"^7.37.4","@vitejs/plugin-react":"^4.3.1","@storybook/react-vite":"^8.6.18","@storybook/addon-links":"^8.6.18","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","@typescript-eslint/parser":"^8.57.0","eslint-plugin-react-hooks":"^7.0.1","@storybook/addon-essentials":"^8.6.18","@storybook/addon-interactions":"^8.6.18","@typescript-eslint/eslint-plugin":"^8.57.0"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cockpit-component-library_0.0.4_1773745862372_0.41437976535375465","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@emporix/cockpit-component-library","version":"0.0.5","keywords":["react","components","library","typescript","vite"],"author":{"name":"Emporix"},"license":"MIT","_id":"@emporix/cockpit-component-library@0.0.5","maintainers":[{"name":"p.bambynek","email":"p.bambynek@emporix.com"},{"name":"michal-emporix","email":"m.cebrzyna@emporix.com"},{"name":"m.buj","email":"m.bujalski@emporix.com"},{"name":"jmachnik-emporix","email":"j.machnik@emporix.com"},{"name":"jmachnik","email":"machnik.jakub@gmail.com"}],"homepage":"https://github.com/emporix/cockpit-component-library#readme","bugs":{"url":"https://github.com/emporix/cockpit-component-library/issues"},"dist":{"shasum":"d0735a33c34023db85d082a3f42cb897230c2c38","tarball":"https://registry.npmjs.org/@emporix/cockpit-component-library/-/cockpit-component-library-0.0.5.tgz","fileCount":24,"integrity":"sha512-DlY7VXBUanhekOxi5UOVdzpqNd2qAQgPiFxl2B0n3onDt3Jq3glMsXpGIpmMNdU1kYuRzc9Tv+IxRyfS6I0NSA==","signatures":[{"sig":"MEQCIGKLA0UdWhGRy8nAFzUew5KMHTO0pcKJfHoBOoXqgVEUAiBEmrHZK64CfkPrXbpvP08VM5ZerM0wGO8V1ByVHa3sHQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":129794},"main":"./dist/index.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","browser":"./dist/index.umd.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./styles":{"types":"./dist/styles.d.ts","default":"./dist/style.css"}},"gitHead":"0944b482936a78d9c26e716d579f501efef18467","scripts":{"dev":"vite","lint":"eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0","test":"vitest","build":"tsc && vite build","format":"prettier --write .","prepare":"husky","preview":"vite preview","test:ui":"vitest --ui","lint:fix":"eslint . --ext ts,tsx --fix","build:lib":"vite build --mode library && node -e \"require('fs').writeFileSync('dist/styles.d.ts', 'declare module \\'@emporix/cockpit-component-library/styles\\' {\\n  const styles: string;\\n  export default styles;\\n}\\n')\"","storybook":"storybook dev -p 6006","type-check":"tsc --noEmit","format:check":"prettier --check .","format:staged":"prettier --write","test:coverage":"vitest --coverage","build-storybook":"storybook build"},"_npmUser":{"name":"m.buj","email":"m.bujalski@emporix.com"},"repository":{"url":"git+https://github.com/emporix/cockpit-component-library.git","type":"git"},"_npmVersion":"11.8.0","description":"A React component library for cockipt projects","directories":{},"_nodeVersion":"20.19.0","dependencies":{"primereact":"^10.9.7","react-icons":"^5.6.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.5.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"sass":"^1.98.0","vite":"^6.4.1","husky":"^9.1.7","jsdom":"^29.0.0","react":"^18.3.1","eslint":"^8.57.1","vitest":"^4.1.0","prettier":"^3.8.1","react-dom":"^18.3.1","storybook":"^8.6.18","@vitest/ui":"^4.1.0","typescript":"^5.9.3","@types/react":"^18.3.18","@storybook/test":"^8.6.15","vite-plugin-dts":"^4.5.4","@storybook/react":"^8.6.18","@types/react-dom":"^18.3.5","@storybook/blocks":"^8.6.18","@vitest/coverage-v8":"^4.1.0","eslint-plugin-react":"^7.37.4","@vitejs/plugin-react":"^4.3.1","@storybook/react-vite":"^8.6.18","@storybook/addon-links":"^8.6.18","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","@typescript-eslint/parser":"^8.57.0","eslint-plugin-react-hooks":"^7.0.1","@storybook/addon-essentials":"^8.6.18","@storybook/addon-interactions":"^8.6.18","@typescript-eslint/eslint-plugin":"^8.57.0"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cockpit-component-library_0.0.5_1773967162195_0.3046615169417366","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@emporix/cockpit-component-library","version":"1.0.0","keywords":["react","components","library","typescript","vite"],"author":{"name":"Emporix"},"license":"MIT","_id":"@emporix/cockpit-component-library@1.0.0","maintainers":[{"name":"p.bambynek","email":"p.bambynek@emporix.com"},{"name":"michal-emporix","email":"m.cebrzyna@emporix.com"},{"name":"m.buj","email":"m.bujalski@emporix.com"},{"name":"jmachnik-emporix","email":"j.machnik@emporix.com"},{"name":"jmachnik","email":"machnik.jakub@gmail.com"}],"homepage":"https://github.com/emporix/cockpit-component-library#readme","bugs":{"url":"https://github.com/emporix/cockpit-component-library/issues"},"dist":{"shasum":"06bd930c3187434661d78843987ad15eee520724","tarball":"https://registry.npmjs.org/@emporix/cockpit-component-library/-/cockpit-component-library-1.0.0.tgz","fileCount":24,"integrity":"sha512-OluT9tcFDJhbtBexP8rYKveRYfbL3UnFSC7qOeLEcj56XT7+aU+ehIJhRabyxmmTvw+ksA+1Jt7ay174Ld+GTA==","signatures":[{"sig":"MEYCIQDuueuYV7wjyxNeuqVW373LdGTUStc1I1+PapCmz2+PegIhANZt8gvhU0M7yn0zzX5R/sGy3/O/E2GwBXSmfQG98GYm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":132843},"main":"./dist/index.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","browser":"./dist/index.umd.js","engines":{"npm":">=9","node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./styles":{"types":"./dist/styles.d.ts","default":"./dist/style.css"}},"gitHead":"1f01031914493cb91645d759c630d0c4bf676b0d","scripts":{"dev":"vite","lint":"eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0","test":"vitest","build":"tsc && vite build","format":"prettier --write .","prepare":"husky","preview":"vite preview","test:ui":"vitest --ui","lint:fix":"eslint . --ext ts,tsx --fix","build:lib":"vite build --mode library && node -e \"require('fs').writeFileSync('dist/styles.d.ts', 'declare module \\'@emporix/cockpit-component-library/styles\\' {\\n  const styles: string;\\n  export default styles;\\n}\\n')\"","storybook":"storybook dev -p 6006","type-check":"tsc --noEmit","format:check":"prettier --check .","format:staged":"prettier --write","test:coverage":"vitest --coverage","build-storybook":"storybook build"},"_npmUser":{"name":"m.buj","email":"m.bujalski@emporix.com"},"repository":{"url":"git+https://github.com/emporix/cockpit-component-library.git","type":"git"},"_npmVersion":"11.8.0","description":"A React component library for cockipt projects","directories":{},"_nodeVersion":"20.19.0","dependencies":{"quill":"^2.0.3","primereact":"^10.9.7","react-icons":"^5.6.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.5.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"sass":"^1.98.0","vite":"^6.4.1","husky":"^9.1.7","jsdom":"^24.1.3","react":"^18.3.1","eslint":"^8.57.1","vitest":"^4.1.0","prettier":"^3.8.1","react-dom":"^18.3.1","storybook":"^8.6.18","@vitest/ui":"^4.1.0","typescript":"^5.9.3","@types/react":"^18.3.18","@storybook/test":"^8.6.15","vite-plugin-dts":"^4.5.4","@storybook/react":"^8.6.18","@types/react-dom":"^18.3.5","@storybook/blocks":"^8.6.18","@vitest/coverage-v8":"^4.1.0","eslint-plugin-react":"^7.37.4","@vitejs/plugin-react":"^4.3.1","@storybook/react-vite":"^8.6.18","@storybook/addon-links":"^8.6.18","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","@typescript-eslint/parser":"^8.57.0","eslint-plugin-react-hooks":"^7.0.1","@storybook/addon-essentials":"^8.6.18","@storybook/addon-interactions":"^8.6.18","@typescript-eslint/eslint-plugin":"^8.57.0"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cockpit-component-library_1.0.0_1775818040293_0.17716848718037737","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@emporix/cockpit-component-library","version":"1.0.1","keywords":["react","components","library","typescript","vite"],"author":{"name":"Emporix"},"license":"MIT","_id":"@emporix/cockpit-component-library@1.0.1","maintainers":[{"name":"p.bambynek","email":"p.bambynek@emporix.com"},{"name":"michal-emporix","email":"m.cebrzyna@emporix.com"},{"name":"m.buj","email":"m.bujalski@emporix.com"},{"name":"jmachnik-emporix","email":"j.machnik@emporix.com"},{"name":"jmachnik","email":"machnik.jakub@gmail.com"}],"homepage":"https://github.com/emporix/cockpit-component-library#readme","bugs":{"url":"https://github.com/emporix/cockpit-component-library/issues"},"dist":{"shasum":"0901f08e5a41a4b05a2a2bd043c64e0a5cf87f19","tarball":"https://registry.npmjs.org/@emporix/cockpit-component-library/-/cockpit-component-library-1.0.1.tgz","fileCount":24,"integrity":"sha512-rRqPhKouryl4Q1l8rHnYuPXW6FDAcPoWQz+eSIZcouT5ZoHSyXwOxOKorIJ6lhIKT68n+Bcxp6zRwkJBU3/8Og==","signatures":[{"sig":"MEUCIQDQ8Z8gvT6g833XFSAkTEUTRcPAUk9gTLsNYDA/UtYy0wIgC50Q0xxPHQ6bzoif79+yhEBdm+pstg69qw+Zv+D4/aY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":137856},"main":"./dist/index.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","browser":"./dist/index.umd.js","engines":{"npm":">=9","node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./styles":{"types":"./dist/styles.d.ts","default":"./dist/style.css"}},"gitHead":"f6a37bd3aa51a39ca6e46515cb74c483655afcdf","scripts":{"dev":"vite","lint":"eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0","test":"vitest","build":"tsc && vite build","format":"prettier --write .","prepare":"husky","preview":"vite preview","test:ui":"vitest --ui","lint:fix":"eslint . --ext ts,tsx --fix","build:lib":"vite build --mode library && node -e \"require('fs').writeFileSync('dist/styles.d.ts', 'declare module \\'@emporix/cockpit-component-library/styles\\' {\\n  const styles: string;\\n  export default styles;\\n}\\n')\"","storybook":"storybook dev -p 6006","type-check":"tsc --noEmit","format:check":"prettier --check .","format:staged":"prettier --write","test:coverage":"vitest --coverage","build-storybook":"storybook build"},"_npmUser":{"name":"m.buj","email":"m.bujalski@emporix.com"},"repository":{"url":"git+https://github.com/emporix/cockpit-component-library.git","type":"git"},"_npmVersion":"11.8.0","description":"A React component library for cockipt projects","directories":{},"_nodeVersion":"20.19.0","dependencies":{"quill":"^2.0.3","primereact":"^10.9.7","react-icons":"^5.6.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.5.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"sass":"^1.98.0","vite":"^6.4.1","husky":"^9.1.7","jsdom":"^24.1.3","react":"^18.3.1","eslint":"^8.57.1","vitest":"^4.1.0","prettier":"^3.8.1","react-dom":"^18.3.1","storybook":"^8.6.18","@vitest/ui":"^4.1.0","typescript":"^5.9.3","@types/react":"^18.3.18","@storybook/test":"^8.6.15","vite-plugin-dts":"^4.5.4","@storybook/react":"^8.6.18","@types/react-dom":"^18.3.5","@storybook/blocks":"^8.6.18","@vitest/coverage-v8":"^4.1.0","eslint-plugin-react":"^7.37.4","@vitejs/plugin-react":"^4.3.1","@storybook/react-vite":"^8.6.18","@storybook/addon-links":"^8.6.18","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","@typescript-eslint/parser":"^8.57.0","eslint-plugin-react-hooks":"^7.0.1","@storybook/addon-essentials":"^8.6.18","@storybook/addon-interactions":"^8.6.18","@typescript-eslint/eslint-plugin":"^8.57.0"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cockpit-component-library_1.0.1_1775818653852_0.8497552680211415","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@emporix/cockpit-component-library","version":"1.0.2","keywords":["react","components","library","typescript","vite"],"author":{"name":"Emporix"},"license":"MIT","_id":"@emporix/cockpit-component-library@1.0.2","maintainers":[{"name":"p.bambynek","email":"p.bambynek@emporix.com"},{"name":"michal-emporix","email":"m.cebrzyna@emporix.com"},{"name":"m.buj","email":"m.bujalski@emporix.com"},{"name":"jmachnik-emporix","email":"j.machnik@emporix.com"},{"name":"jmachnik","email":"machnik.jakub@gmail.com"}],"homepage":"https://github.com/emporix/cockpit-component-library#readme","bugs":{"url":"https://github.com/emporix/cockpit-component-library/issues"},"dist":{"shasum":"57b7cc3f133b881ddf9b4bba66213492a06ff4cf","tarball":"https://registry.npmjs.org/@emporix/cockpit-component-library/-/cockpit-component-library-1.0.2.tgz","fileCount":5,"integrity":"sha512-tT29MjXjW98aPNaI4v6oGGsmRjuqqn90+uLA/84GOQxdYF+ar/73GA+AoynPnPYJk7K77yZeaxkwcrToru0ysQ==","signatures":[{"sig":"MEUCIQDxYVYxEHQeZxiuFoyd4b7HM3rz8PoQSOQHyieTT14P+gIgWECvqDW0TCXIvjagP5nypspOqRx1qK94Q5vN642qde8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":287952},"main":"./dist/index.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","browser":"./dist/index.umd.js","engines":{"npm":">=9","node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./styles":{"types":"./dist/styles.d.ts","default":"./dist/style.css"}},"gitHead":"f6a37bd3aa51a39ca6e46515cb74c483655afcdf","scripts":{"dev":"vite","lint":"eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0","test":"vitest","build":"tsc && vite build","format":"prettier --write .","prepare":"husky","preview":"vite preview","test:ui":"vitest --ui","lint:fix":"eslint . --ext ts,tsx --fix","build:lib":"vite build --mode library && node -e \"require('fs').writeFileSync('dist/styles.d.ts', 'declare module \\'@emporix/cockpit-component-library/styles\\' {\\n  const styles: string;\\n  export default styles;\\n}\\n')\"","storybook":"storybook dev -p 6006","type-check":"tsc --noEmit","format:check":"prettier --check .","format:staged":"prettier --write","test:coverage":"vitest --coverage","build-storybook":"storybook build"},"_npmUser":{"name":"m.buj","email":"m.bujalski@emporix.com"},"repository":{"url":"git+https://github.com/emporix/cockpit-component-library.git","type":"git"},"_npmVersion":"11.8.0","description":"A React component library for cockipt projects","directories":{},"_nodeVersion":"20.19.0","dependencies":{"quill":"^2.0.3","primereact":"^10.9.7","react-icons":"^5.6.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.5.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"sass":"^1.98.0","vite":"^6.4.1","husky":"^9.1.7","jsdom":"^24.1.3","react":"^18.3.1","eslint":"^8.57.1","vitest":"^4.1.0","prettier":"^3.8.1","react-dom":"^18.3.1","storybook":"^8.6.18","@vitest/ui":"^4.1.0","typescript":"^5.9.3","@types/react":"^18.3.18","@storybook/test":"^8.6.15","vite-plugin-dts":"^4.5.4","@storybook/react":"^8.6.18","@types/react-dom":"^18.3.5","@storybook/blocks":"^8.6.18","@vitest/coverage-v8":"^4.1.0","eslint-plugin-react":"^7.37.4","@vitejs/plugin-react":"^4.3.1","@storybook/react-vite":"^8.6.18","@storybook/addon-links":"^8.6.18","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","@typescript-eslint/parser":"^8.57.0","eslint-plugin-react-hooks":"^7.0.1","@storybook/addon-essentials":"^8.6.18","@storybook/addon-interactions":"^8.6.18","@typescript-eslint/eslint-plugin":"^8.57.0"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cockpit-component-library_1.0.2_1776075660711_0.3694040140064998","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@emporix/cockpit-component-library","version":"1.0.3","keywords":["react","components","library","typescript","vite"],"author":{"name":"Emporix"},"license":"MIT","_id":"@emporix/cockpit-component-library@1.0.3","maintainers":[{"name":"p.bambynek","email":"p.bambynek@emporix.com"},{"name":"michal-emporix","email":"m.cebrzyna@emporix.com"},{"name":"m.buj","email":"m.bujalski@emporix.com"},{"name":"jmachnik-emporix","email":"j.machnik@emporix.com"},{"name":"jmachnik","email":"machnik.jakub@gmail.com"}],"homepage":"https://github.com/emporix/cockpit-component-library#readme","bugs":{"url":"https://github.com/emporix/cockpit-component-library/issues"},"dist":{"shasum":"941b541e58b0ffd1156a52a6438887ae18614d98","tarball":"https://registry.npmjs.org/@emporix/cockpit-component-library/-/cockpit-component-library-1.0.3.tgz","fileCount":8,"integrity":"sha512-r9yrNK9Ya+Y6WPa7WJmZvJjkZrwWG5SveBoVuQVTRAGstz/Go7Qyeqaox6U/7o1Lp6U5aNbEW+v72UzY36WO3w==","signatures":[{"sig":"MEUCIQCBadDZ837RxOTdCI2snjZytOmddK+Zp65kLSWrM/E3pwIgAJGUXx9NiWXSrEJzkWe6AI+QlcenQVLBD5L7kxvn20M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":780459},"main":"./dist/index.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","browser":"./dist/index.umd.js","engines":{"npm":">=9","node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./styles":{"types":"./dist/styles.d.ts","default":"./dist/style.css"}},"gitHead":"f6a37bd3aa51a39ca6e46515cb74c483655afcdf","scripts":{"dev":"vite","lint":"eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0","test":"vitest","build":"vite build --mode library && node scripts/generate-style-dts.cjs","format":"prettier --write .","prepare":"husky","preview":"vite preview","test:ui":"vitest --ui","lint:fix":"eslint . --ext ts,tsx --fix","build:app":"tsc && vite build","storybook":"storybook dev -p 6006","type-check":"tsc --noEmit","format:check":"prettier --check .","format:staged":"prettier --write","test:coverage":"vitest --coverage","prepublishOnly":"npm run build","build-storybook":"storybook build"},"_npmUser":{"name":"m.buj","email":"m.bujalski@emporix.com"},"repository":{"url":"git+https://github.com/emporix/cockpit-component-library.git","type":"git"},"_npmVersion":"11.8.0","description":"A React component library for cockipt projects","directories":{},"_nodeVersion":"20.19.0","dependencies":{"quill":"^2.0.3","primereact":"^10.9.7","react-icons":"^5.6.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.5.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"sass":"^1.98.0","vite":"^6.4.1","husky":"^9.1.7","jsdom":"^24.1.3","react":"^18.3.1","eslint":"^8.57.1","vitest":"^4.1.0","prettier":"^3.8.1","react-dom":"^18.3.1","storybook":"^8.6.18","@vitest/ui":"^4.1.0","typescript":"^5.9.3","@types/react":"^18.3.18","@storybook/test":"^8.6.15","vite-plugin-dts":"^4.5.4","@storybook/react":"^8.6.18","@types/react-dom":"^18.3.5","@storybook/blocks":"^8.6.18","@vitest/coverage-v8":"^4.1.0","eslint-plugin-react":"^7.37.4","@vitejs/plugin-react":"^4.3.1","@storybook/react-vite":"^8.6.18","@storybook/addon-links":"^8.6.18","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","@typescript-eslint/parser":"^8.57.0","eslint-plugin-react-hooks":"^7.0.1","@storybook/addon-essentials":"^8.6.18","@storybook/addon-interactions":"^8.6.18","@typescript-eslint/eslint-plugin":"^8.57.0"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cockpit-component-library_1.0.3_1776076407394_0.6687354042483411","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@emporix/cockpit-component-library","version":"1.0.4","keywords":["react","components","library","typescript","vite"],"author":{"name":"Emporix"},"license":"MIT","_id":"@emporix/cockpit-component-library@1.0.4","maintainers":[{"name":"p.bambynek","email":"p.bambynek@emporix.com"},{"name":"michal-emporix","email":"m.cebrzyna@emporix.com"},{"name":"m.buj","email":"m.bujalski@emporix.com"},{"name":"jmachnik-emporix","email":"j.machnik@emporix.com"},{"name":"jmachnik","email":"machnik.jakub@gmail.com"}],"homepage":"https://github.com/emporix/cockpit-component-library#readme","bugs":{"url":"https://github.com/emporix/cockpit-component-library/issues"},"dist":{"shasum":"3c1b4a018565be284da391378ff80fb7a89cdf9b","tarball":"https://registry.npmjs.org/@emporix/cockpit-component-library/-/cockpit-component-library-1.0.4.tgz","fileCount":8,"integrity":"sha512-/+nILv+Ad1WghdVkj8VH5QwphqAkoeHVOefH0yHeenoCs5KM/a6ycOKc8NquRSO3QBYYLJD/jCZWOUnvzZE4Mg==","signatures":[{"sig":"MEQCIBT71ssibuheK/5S2oY//9zgc4g5XodqUqsAtpPkgGFgAiAPS9ZGPNh9ck5BGTKy2QTw5xrz1AtENKKE6IBD+t4C6A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":782293},"main":"./dist/index.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","browser":"./dist/index.umd.js","engines":{"npm":">=9","node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./styles":{"types":"./dist/styles.d.ts","default":"./dist/style.css"}},"gitHead":"a0dc13d89a577e760866fea9f51425414be4e6f1","scripts":{"dev":"vite","lint":"eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0","test":"vitest","build":"vite build --mode library && node scripts/generate-style-dts.cjs","format":"prettier --write .","prepare":"husky","preview":"vite preview","test:ui":"vitest --ui","lint:fix":"eslint . --ext ts,tsx --fix","build:app":"tsc && vite build","build:lib":"npm run build","storybook":"storybook dev -p 6006","type-check":"tsc --noEmit","format:check":"prettier --check .","format:staged":"prettier --write","test:coverage":"vitest --coverage","prepublishOnly":"npm run build","build-storybook":"storybook build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f081a9ce-f3b9-476b-b2ed-dc5042b6682c"}},"repository":{"url":"git+https://github.com/emporix/cockpit-component-library.git","type":"git"},"_npmVersion":"11.16.0","description":"A React component library for cockipt projects","directories":{},"_nodeVersion":"20.20.2","dependencies":{"quill":"^2.0.3","primereact":"^10.9.7","react-icons":"^5.6.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.5.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"sass":"^1.98.0","vite":"^6.4.1","husky":"^9.1.7","jsdom":"^24.1.3","react":"^18.3.1","eslint":"^8.57.1","vitest":"^4.1.0","prettier":"^3.8.1","react-dom":"^18.3.1","storybook":"^8.6.18","@vitest/ui":"^4.1.0","typescript":"^5.9.3","@types/react":"^18.3.18","@storybook/test":"^8.6.15","vite-plugin-dts":"^4.5.4","@storybook/react":"^8.6.18","@types/react-dom":"^18.3.5","@storybook/blocks":"^8.6.18","@vitest/coverage-v8":"^4.1.0","eslint-plugin-react":"^7.37.4","@vitejs/plugin-react":"^4.3.1","@storybook/react-vite":"^8.6.18","@storybook/addon-links":"^8.6.18","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","@typescript-eslint/parser":"^8.57.0","eslint-plugin-react-hooks":"^7.0.1","@storybook/addon-essentials":"^8.6.18","@storybook/addon-interactions":"^8.6.18","@typescript-eslint/eslint-plugin":"^8.57.0"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cockpit-component-library_1.0.4_1780475389817_0.27180804485173127","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@emporix/cockpit-component-library","version":"1.0.8","keywords":["react","components","library","typescript","vite"],"author":{"name":"Emporix"},"license":"MIT","_id":"@emporix/cockpit-component-library@1.0.8","maintainers":[{"name":"p.bambynek","email":"p.bambynek@emporix.com"},{"name":"michal-emporix","email":"m.cebrzyna@emporix.com"},{"name":"m.buj","email":"m.bujalski@emporix.com"}],"homepage":"https://github.com/emporix/cockpit-component-library#readme","bugs":{"url":"https://github.com/emporix/cockpit-component-library/issues"},"dist":{"shasum":"d0474210a46760a2611a56d13e235b89317f8925","tarball":"https://registry.npmjs.org/@emporix/cockpit-component-library/-/cockpit-component-library-1.0.8.tgz","fileCount":8,"integrity":"sha512-E0HT+dfe9Iu+RRraOK8t9TWqfTsHawOw9SudEWD5VuoGbhdWDX69IGHxGtqmnEJwpZSIts7AxGaMygaglJ9BGQ==","signatures":[{"sig":"MEUCIFO4uawkgcymEtP3FalJvJJqP90unBSdKxFN7/Ph+Yn0AiEA2E8ElLzpoVotIClFK8KZtdcmCGvZk3w3ZsDLQxu/QSo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":784340},"main":"./dist/index.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","browser":"./dist/index.umd.js","engines":{"npm":">=9","node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./styles":{"types":"./dist/styles.d.ts","default":"./dist/style.css"}},"gitHead":"df9d3c8cb9ed64d37eb1f17a193098e47e0672dd","scripts":{"dev":"vite","lint":"eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0","test":"vitest","build":"vite build --mode library && node scripts/generate-style-dts.cjs","format":"prettier --write .","prepare":"husky","preview":"vite preview","test:ui":"vitest --ui","lint:fix":"eslint . --ext ts,tsx --fix","build:app":"tsc && vite build","build:lib":"npm run build","storybook":"storybook dev -p 6006","type-check":"tsc --noEmit","format:check":"prettier --check .","format:staged":"prettier --write","test:coverage":"vitest --coverage","prepublishOnly":"npm run build","build-storybook":"storybook build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f081a9ce-f3b9-476b-b2ed-dc5042b6682c"}},"repository":{"url":"git+https://github.com/emporix/cockpit-component-library.git","type":"git"},"_npmVersion":"11.16.0","description":"A React component library for cockipt projects","directories":{},"_nodeVersion":"24.18.0","dependencies":{"quill":"^2.0.3","primereact":"^10.9.7","react-icons":"^5.6.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.5.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"sass":"^1.98.0","vite":"^6.4.1","husky":"^9.1.7","jsdom":"^24.1.3","react":"^18.3.1","eslint":"^8.57.1","vitest":"^4.1.0","prettier":"^3.8.1","react-dom":"^18.3.1","storybook":"^8.6.18","@vitest/ui":"^4.1.0","typescript":"^5.9.3","@types/react":"^18.3.18","@storybook/test":"^8.6.15","vite-plugin-dts":"^4.5.4","@storybook/react":"^8.6.18","@types/react-dom":"^18.3.5","@storybook/blocks":"^8.6.18","@vitest/coverage-v8":"^4.1.0","eslint-plugin-react":"^7.37.4","@vitejs/plugin-react":"^4.3.1","@storybook/react-vite":"^8.6.18","@storybook/addon-links":"^8.6.18","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","@typescript-eslint/parser":"^8.57.0","eslint-plugin-react-hooks":"^7.0.1","@storybook/addon-essentials":"^8.6.18","@storybook/addon-interactions":"^8.6.18","@typescript-eslint/eslint-plugin":"^8.57.0"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cockpit-component-library_1.0.8_1785671885244_0.20340970407000114","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"@emporix/cockpit-component-library","version":"1.0.9","description":"A React component library for cockipt projects","type":"module","main":"./dist/index.umd.js","module":"./dist/index.es.js","browser":"./dist/index.umd.js","types":"./dist/index.d.ts","repository":{"type":"git","url":"git+https://github.com/emporix/cockpit-component-library.git"},"publishConfig":{"access":"public"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./styles":{"types":"./dist/styles.d.ts","default":"./dist/style.css"}},"scripts":{"dev":"vite","build":"vite build --mode library && node scripts/generate-style-dts.cjs","build:lib":"npm run build","build:app":"tsc && vite build","preview":"vite preview","test":"vitest","test:ui":"vitest --ui","test:coverage":"vitest --coverage","storybook":"storybook dev -p 6006","build-storybook":"storybook build","lint":"eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0","lint:fix":"eslint . --ext ts,tsx --fix","type-check":"tsc --noEmit","format":"prettier --write .","format:check":"prettier --check .","format:staged":"prettier --write","prepare":"husky","prepublishOnly":"npm run build"},"keywords":["react","components","library","typescript","vite"],"author":{"name":"Emporix"},"license":"MIT","engines":{"node":">=20","npm":">=9"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"devDependencies":{"@storybook/addon-essentials":"^8.6.18","@storybook/addon-interactions":"^8.6.18","@storybook/addon-links":"^8.6.18","@storybook/blocks":"^8.6.18","@storybook/react":"^8.6.18","@storybook/react-vite":"^8.6.18","@storybook/test":"^8.6.15","@types/react":"^18.3.18","@types/react-dom":"^18.3.5","@typescript-eslint/eslint-plugin":"^8.57.0","@typescript-eslint/parser":"^8.57.0","@vitejs/plugin-react":"^4.3.1","@vitest/coverage-v8":"^4.1.0","@vitest/ui":"^4.1.0","eslint":"^8.57.1","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","eslint-plugin-react":"^7.37.4","eslint-plugin-react-hooks":"^7.0.1","husky":"^9.1.7","jsdom":"^24.1.3","prettier":"^3.8.1","react":"^18.3.1","react-dom":"^18.3.1","sass":"^1.98.0","storybook":"^8.6.18","typescript":"^5.9.3","vite":"^6.4.1","vite-plugin-dts":"^4.5.4","vitest":"^4.1.0"},"dependencies":{"@testing-library/jest-dom":"^6.9.1","@testing-library/react":"^16.3.2","@testing-library/user-event":"^14.5.2","primereact":"^10.9.7","quill":"^2.0.3","react-icons":"^5.6.0"},"gitHead":"50094fe108843b0adfc11f809b69e74d85bfd1de","_id":"@emporix/cockpit-component-library@1.0.9","bugs":{"url":"https://github.com/emporix/cockpit-component-library/issues"},"homepage":"https://github.com/emporix/cockpit-component-library#readme","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-PIv344IcufE/XUPWxxOJw9qObzkLB4RU/THf1NFjU5JRvFBU6SikagehLQC2s/662K8EUACBEQDli4F1d+5RVA==","shasum":"7d3e711bbce2e4f258201132f51242f4c5605751","tarball":"https://registry.npmjs.org/@emporix/cockpit-component-library/-/cockpit-component-library-1.0.9.tgz","fileCount":8,"unpackedSize":789930,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFvb2OWTiNBpXSbsfI7KHeJ6mLTpN1NNEHvrqFqb/f2MAiEA3HHcy9iLXxwpDP2R2MtTdsdg5vQsqahalpI1+O9GAj0="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f081a9ce-f3b9-476b-b2ed-dc5042b6682c"}},"directories":{},"maintainers":[{"name":"p.bambynek","email":"p.bambynek@emporix.com"},{"name":"michal-emporix","email":"m.cebrzyna@emporix.com"},{"name":"m.buj","email":"m.bujalski@emporix.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cockpit-component-library_1.0.9_1786479199342_0.3614572619560441"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-17T10:44:56.992Z","modified":"2026-08-11T20:13:19.812Z","0.0.1":"2026-03-17T10:44:57.202Z","0.0.2":"2026-03-17T11:01:50.477Z","0.0.3":"2026-03-17T11:06:39.503Z","0.0.4":"2026-03-17T11:11:02.534Z","0.0.5":"2026-03-20T00:39:22.333Z","1.0.0":"2026-04-10T10:47:20.458Z","1.0.1":"2026-04-10T10:57:34.017Z","1.0.2":"2026-04-13T10:21:00.850Z","1.0.3":"2026-04-13T10:33:27.558Z","1.0.4":"2026-06-03T08:29:50.004Z","1.0.8":"2026-08-02T11:58:05.393Z","1.0.9":"2026-08-11T20:13:19.507Z"},"bugs":{"url":"https://github.com/emporix/cockpit-component-library/issues"},"author":{"name":"Emporix"},"license":"MIT","homepage":"https://github.com/emporix/cockpit-component-library#readme","keywords":["react","components","library","typescript","vite"],"repository":{"type":"git","url":"git+https://github.com/emporix/cockpit-component-library.git"},"description":"A React component library for cockipt projects","maintainers":[{"name":"p.bambynek","email":"p.bambynek@emporix.com"},{"name":"michal-emporix","email":"m.cebrzyna@emporix.com"},{"name":"m.buj","email":"m.bujalski@emporix.com"}],"readme":"# Emporix Cockpit Component Library\n\nA modern React component library built with TypeScript, Vite, and SCSS modules.\n\n## Features\n\n- 🚀 **Modern Stack**: Built with Vite, TypeScript, and React 18\n- 🎨 **Styled Components**: SCSS modules for component styling\n- 📚 **Storybook**: Interactive component documentation\n- 🧪 **Testing**: Comprehensive test suite with Vitest and React Testing Library\n- 📦 **Library Build**: Optimized for npm package distribution\n- 🔄 **CI/CD**: Automated testing on push/PR; npm publish on version tags\n- 🎨 **CSS Variables**: Global theming system with CSS custom properties\n\n## Quick Start\n\n### Installation\n\n```bash\nnpm install @emporix/cockpit-component-library\n```\n\n### Usage\n\n**Important:** Import the library styles in your app so component layout and appearance stay consistent. If you skip this step, components may be unstyled or layout may break.\n\n#### Method 1: Import styles in your main CSS file (Recommended)\n\n```css\n/* In your main CSS file (e.g., index.css, App.css) */\n@import '@emporix/cockpit-component-library/styles';\n```\n\n```tsx\nimport { PrimaryButton } from '@emporix/cockpit-component-library'\n\nconst MyComponent = () => {\n  return (\n    <PrimaryButton onClick={() => console.log('Clicked!')}>\n      Click me\n    </PrimaryButton>\n  )\n}\n```\n\n#### Method 2: Import styles in your main JavaScript/TypeScript file\n\n```tsx\nimport { PrimaryButton } from '@emporix/cockpit-component-library'\nimport '@emporix/cockpit-component-library/styles'\n\nconst MyComponent = () => {\n  return (\n    <PrimaryButton onClick={() => console.log('Clicked!')}>\n      Click me\n    </PrimaryButton>\n  )\n}\n```\n\n#### Method 3: Copy CSS file manually (Fallback)\n\nIf the above methods don't work, copy the CSS file from `node_modules/@emporix/cockpit-component-library/dist/style.css` to your project and import it directly.\n\n## Components\n\nCurrent exported components:\n\n- `PrimaryButton`\n- `SecondaryButton`\n- `TertiaryButton`\n- `ContrastButton`\n- `Tabs`\n- `RichTextEditor`\n- `Spinner`\n- `Breadcrumb`\n- `Dropdown`\n- `MultiSelect`\n- `InputText`\n- `SelectButton`\n- `Card`\n- `IconCard`\n- `FileUploadDropzone`\n- `Chip`\n- `AlertBox`\n- `SideMenu`\n- `TopNav`\n- `Toast` (plus `ToastProvider` and `useToast`)\n- `Modal`\n- `ConfirmDialog`\n- `ProductTable`\n- `ProductTableIconAddButton`\n- `OrderTable`\n- `OrderStatusTag`\n- `Wizard`\n- `Timeline`\n\n### PrimaryButton\n\nA simple, focused button component for primary actions.\n\n```tsx\nimport { PrimaryButton } from '@emporix/cockpit-component-library'\n\n// Basic usage\n<PrimaryButton label=\"Click me\" />\n\n// With disabled state\n<PrimaryButton label=\"Disabled Button\" disabled />\n\n// With click handler\n<PrimaryButton label=\"Confirm Action\" onClick={() => alert('Confirmed!')} />\n\n// Loading state\n<PrimaryButton label=\"Saving...\" loading />\n\n// With icon\n<PrimaryButton label=\"Download\" icon={<FiDownload />} iconPos=\"left\" />\n```\n\n#### Props\n\n| Prop        | Type                | Default | Description                                    |\n| ----------- | ------------------- | ------- | ---------------------------------------------- |\n| label       | string              | -       | Text label displayed inside the button         |\n| disabled    | boolean             | false   | Whether button is disabled                     |\n| loading     | boolean             | false   | Shows loading spinner and disables the button  |\n| icon        | ReactNode           | -       | Optional icon shown next to the label or alone |\n| iconPos     | `'left' \\| 'right'` | 'left'  | Icon position relative to the label            |\n| onClick     | () => void          | -       | Click handler                                  |\n| className   | string              | -       | Additional CSS class                           |\n| data-testid | string              | -       | Test ID for testing                            |\n\n### Card\n\nWhite panel styled with design tokens (defaults from `src/styles/index.scss`). The root uses a **1px** border (`var(--color-card-border)`), corner radius **`var(--card-radius)`** (default **8px**), padding **`var(--card-padding)`** (default **16px**), and vertical spacing between direct children **`var(--card-section-gap)`** (default **12px**). **`Card.Body`** stacks title, meta, etc. with **`var(--card-body-gap)`** (default **16px**). **`Card.Header`**, **`Card.Meta`**, and **`Card.MetaRow`** share **`var(--card-meta-gap)`** (default **6px**); the header’s leading side (`tag` + children) also uses a fixed **8px** gap between flex items. **`Card.MetaRow`** uses a **20×20px** icon frame with **18×18px** SVGs—pass icons intended for that footprint (or larger icons will scale visually via CSS). Compound parts: **`Card.Body`**, **`Card.Header`** (optional `tag` + `actions`), **`Card.Title`**, **`Card.Meta`** / **`Card.MetaRow`**, **`Card.Footer`**, **`Card.IconButton`**. Use **`Chip`** in the header `tag` slot for status pills (e.g. `<Chip variant=\"error\">Blocker</Chip>`). Override the `--card-*` variables to tune spacing without forking the component (see [Card layout tokens](#card-layout-tokens) under _Theming_).\n\n```tsx\nimport { Card, Chip, TertiaryButton } from '@emporix/cockpit-component-library'\nimport { FiEdit2, FiTrash2 } from 'react-icons/fi'\n\n// Basic usage\n<Card>\n  <h3>Title</h3>\n  <p>Description or nested components go here.</p>\n</Card>\n\n// Structured card (see Storybook “IssueCard”)\n<Card>\n  <Card.Body>\n    <Card.Header\n      tag={<Chip variant=\"error\">Blocker</Chip>}\n      actions={\n        <>\n          <Card.IconButton type=\"button\" aria-label=\"Edit\">\n            <FiEdit2 />\n          </Card.IconButton>\n          <Card.IconButton type=\"button\" aria-label=\"Delete\">\n            <FiTrash2 />\n          </Card.IconButton>\n        </>\n      }\n    />\n    <Card.Title>Issue headline</Card.Title>\n    <Card.Meta>\n      <Card.MetaRow icon={<span />}>Supporting detail line</Card.MetaRow>\n    </Card.Meta>\n  </Card.Body>\n  <Card.Footer>\n    <TertiaryButton label=\"Edit\" icon={<FiEdit2 />} iconPos=\"left\" />\n  </Card.Footer>\n</Card>\n\n// With custom class and test id\n<Card className=\"my-card\" data-testid=\"details-card\">\n  <p>Content</p>\n</Card>\n```\n\n#### Props\n\n| Prop        | Type      | Default | Description                                  |\n| ----------- | --------- | ------- | -------------------------------------------- |\n| children    | ReactNode | -       | Content displayed inside the card (required) |\n| className   | string    | -       | Additional CSS class on the root element     |\n| data-testid | string    | -       | Test ID for the root element                 |\n\nAll standard HTML `div` attributes (e.g. `id`, `role`, `aria-*`, `onClick`) are forwarded to the root element via `CardProps`. Subcomponents accept the usual attributes for their underlying elements (`Card.Title` → `h2`, `Card.IconButton` → `button`, etc.).\n\n### Chip\n\nA compact, pill-shaped label for statuses (e.g. draft, submitted). Four variants use a light tinted background with darker text: **success** (green), **warning** (orange), **info** (blue), **error** (rose / burgundy — same look as Figma card header labels such as “Blocker”). Use **`Chip`** for those header pills instead of a separate card-only primitive. Colors are driven by CSS variables (see [Theming with CSS Variables](#theming-with-css-variables)).\n\n```tsx\nimport { Chip } from '@emporix/cockpit-component-library'\n\n<Chip variant=\"success\">submitted</Chip>\n<Chip variant=\"warning\">draft</Chip>\n<Chip variant=\"info\">processed</Chip>\n<Chip variant=\"error\">1 issue</Chip>\n```\n\n#### Props\n\n| Prop        | Type                                          | Default | Description                              |\n| ----------- | --------------------------------------------- | ------- | ---------------------------------------- |\n| variant     | `'success' \\| 'warning' \\| 'info' \\| 'error'` | `info`  | Visual style / semantic color            |\n| children    | ReactNode                                     | -       | Content inside the chip (required)       |\n| className   | string                                        | -       | Additional CSS class on the root element |\n| data-testid | string                                        | -       | Test ID for the root element             |\n\nThe root element is a `<span>`. Standard HTML span attributes are forwarded via `ChipProps`.\n\n### InputText\n\nA text input with optional label and tooltip. Hover and focus styles match the Dropdown component.\n\n```tsx\nimport { InputText } from '@emporix/cockpit-component-library'\n\n// With label and info tooltip\n<InputText\n  label=\"Id\"\n  tooltip=\"Unique identifier for this record\"\n  placeholder=\"Enter id\"\n/>\n\n// Required field\n<InputText label=\"Name\" required placeholder=\"Enter name\" />\n\n// Disabled\n<InputText label=\"Id\" placeholder=\"Enter id\" disabled />\n\n// Multiline (textarea)\n<InputText\n  label=\"Description\"\n  textarea\n  rows={4}\n  placeholder=\"Enter a longer description\"\n/>\n```\n\n#### Props\n\n| Prop        | Type      | Default | Description                                             |\n| ----------- | --------- | ------- | ------------------------------------------------------- |\n| label       | ReactNode | -       | Label text above the input                              |\n| tooltip     | string    | -       | If set, shows info icon with this tooltip               |\n| required    | boolean   | false   | Shows asterisk on label                                 |\n| inputId     | string    | -       | id for the input (for label association)                |\n| textarea    | boolean   | false   | When true, renders a `<textarea>` instead of `<input>`  |\n| rows        | number    | 3       | Number of visible rows (textarea only)                  |\n| disabled    | boolean   | false   | Whether the input is disabled                           |\n| className   | string    | -       | Additional CSS class for the root                       |\n| data-testid | string    | -       | Test ID for root and input (input gets suffix `-input`) |\n\nAll standard HTML input/textarea attributes (placeholder, value, onChange, etc.) are supported.\n\n### SelectButton\n\nChoose single or multiple options using buttons. API inspired by [PrimeReact SelectButton](https://primereact.org/selectbutton/). Selected state uses project primary colors.\n\n```tsx\nimport { SelectButton } from '@emporix/cockpit-component-library'\n\nconst options = [\n  { label: 'Off', value: 'off' },\n  { label: 'On', value: 'on' },\n]\n\n// Single selection\n<SelectButton\n  value={value}\n  onChange={(e) => setValue(e.value)}\n  options={options}\n/>\n\n// Multiple selection\n<SelectButton\n  value={selected}\n  onChange={(e) => setSelected(e.value)}\n  options={options}\n  multiple\n/>\n```\n\n#### Props\n\n| Prop           | Type                     | Default | Description                             |\n| -------------- | ------------------------ | ------- | --------------------------------------- |\n| value          | unknown                  | -       | Selected value (or array when multiple) |\n| onChange       | (e: ChangeEvent) => void | -       | Callback when selection changes         |\n| options        | T[]                      | -       | Array of options                        |\n| optionLabel    | string                   | \"label\" | Property name for option label          |\n| optionValue    | string                   | \"value\" | Property name for option value          |\n| optionDisabled | string                   | -       | Property name for disabled flag         |\n| multiple       | boolean                  | false   | Allow multiple selection                |\n| itemTemplate   | (option) => ReactNode    | -       | Custom render for each option           |\n| disabled       | boolean                  | false   | Disable the whole component             |\n| invalid        | boolean                  | false   | Validation invalid state                |\n| className      | string                   | -       | Additional CSS class                    |\n| data-testid    | string                   | -       | Test ID for root and option buttons     |\n\n### Tabs\n\nA flexible tabs component for organizing content into multiple panels.\n\n```tsx\nimport { Tabs, TabItem } from '@emporix/cockpit-component-library'\n\nconst tabs: TabItem[] = [\n  {\n    id: 'tab1',\n    label: 'First Tab',\n    content: <div>First tab content</div>,\n  },\n  {\n    id: 'tab2',\n    label: 'Second Tab',\n    content: <div>Second tab content</div>,\n  },\n]\n\n// Basic usage\n<Tabs\n  tabs={tabs}\n  activeTabId=\"tab1\"\n  onTabChange={(tabId) => setActiveTab(tabId)}\n/>\n\n// With custom styling and test ID\n<Tabs\n  tabs={tabs}\n  activeTabId=\"tab1\"\n  onTabChange={(tabId) => setActiveTab(tabId)}\n  className=\"custom-tabs\"\n  data-testid=\"my-tabs\"\n/>\n```\n\n#### Props\n\n| Prop        | Type                    | Default | Description                    |\n| ----------- | ----------------------- | ------- | ------------------------------ |\n| tabs        | TabItem[]               | -       | Array of tab items             |\n| activeTabId | string                  | -       | ID of the currently active tab |\n| onTabChange | (tabId: string) => void | -       | Callback when tab is changed   |\n| className   | string                  | -       | Additional CSS class           |\n| data-testid | string                  | -       | Test ID for testing            |\n\n#### TabItem Interface\n\n| Prop    | Type      | Description                    |\n| ------- | --------- | ------------------------------ |\n| id      | string    | Unique identifier for the tab  |\n| label   | string    | Display label for the tab      |\n| content | ReactNode | Content to display when active |\n\n### SecondaryButton\n\nSecondary action button variant with API similar to `PrimaryButton`.\n\n```tsx\nimport { SecondaryButton } from '@emporix/cockpit-component-library'\n;<SecondaryButton label='Cancel' />\n```\n\n### TertiaryButton\n\nLow-emphasis button for tertiary actions.\n\n```tsx\nimport { TertiaryButton } from '@emporix/cockpit-component-library'\n;<TertiaryButton label='Learn more' />\n```\n\n### ContrastButton\n\nButton variant designed for high-contrast contexts.\n\n```tsx\nimport { ContrastButton } from '@emporix/cockpit-component-library'\n;<ContrastButton label='Open' />\n```\n\n### Dropdown\n\nSingle-select dropdown component with optional filtering, editable mode, and templating.\n\n```tsx\nimport { Dropdown } from '@emporix/cockpit-component-library'\n;<Dropdown options={options} value={value} onChange={e => setValue(e.value)} />\n```\n\n### MultiSelect\n\nMulti-value selection component for choosing multiple options from a list.\n\n```tsx\nimport { MultiSelect } from '@emporix/cockpit-component-library'\n;<MultiSelect\n  options={options}\n  value={value}\n  onChange={e => setValue(e.value)}\n/>\n```\n\n### RichTextEditor\n\nRich text input component for formatted content editing.\n\n```tsx\nimport { RichTextEditor } from '@emporix/cockpit-component-library'\n;<RichTextEditor value={value} onChange={setValue} />\n```\n\n### Spinner\n\nLoading indicator component with configurable size.\n\n```tsx\nimport { Spinner } from '@emporix/cockpit-component-library'\n;<Spinner size='md' />\n```\n\n### Breadcrumb\n\nNavigation breadcrumb for representing hierarchical page location.\n\n```tsx\nimport { Breadcrumb } from '@emporix/cockpit-component-library'\n;<Breadcrumb items={items} />\n```\n\n### IconCard\n\nCard-like container with a prominent icon/content layout.\n\n```tsx\nimport { IconCard } from '@emporix/cockpit-component-library'\n;<IconCard title='Title' description='Description' icon={<span />} />\n```\n\n### FileUploadDropzone\n\nDropzone component for drag-and-drop file uploads with type constraints.\n\n```tsx\nimport { FileUploadDropzone } from '@emporix/cockpit-component-library'\n;<FileUploadDropzone acceptedTypes={['image']} onFilesSelected={handleFiles} />\n```\n\n### AlertBox\n\nInline alert component for success, info, warning, and error messages.\n\n```tsx\nimport { AlertBox } from '@emporix/cockpit-component-library'\n;<AlertBox variant='info' title='Heads up' />\n```\n\n### SideMenu\n\nComposable side navigation menu with brand, nav items, and footer slots.\n\n```tsx\nimport { SideMenu } from '@emporix/cockpit-component-library'\n;<SideMenu>{/* ... */}</SideMenu>\n```\n\n### TopNav\n\nTop navigation/header component for page-level actions and context.\n\n```tsx\nimport { TopNav } from '@emporix/cockpit-component-library'\n;<TopNav title='Dashboard' />\n```\n\n### Toast\n\nToast notification primitives: `Toast`, `ToastProvider`, and `useToast`.\n\n```tsx\nimport { ToastProvider, useToast } from '@emporix/cockpit-component-library'\n```\n\n### Modal\n\nDialog modal component for focused workflows and confirmations.\n\n```tsx\nimport { Modal } from '@emporix/cockpit-component-library'\n;<Modal isOpen={open} onClose={onClose} title='Edit item' />\n```\n\n### ConfirmDialog\n\nPreset confirmation dialog for destructive or high-impact actions.\n\n```tsx\nimport { ConfirmDialog } from '@emporix/cockpit-component-library'\n;<ConfirmDialog open={open} onConfirm={onConfirm} onCancel={onCancel} />\n```\n\n### ProductTable\n\nData table component focused on product records and common actions.\n\n```tsx\nimport { ProductTable } from '@emporix/cockpit-component-library'\n;<ProductTable items={items} columns={columns} />\n```\n\n### ProductTableIconAddButton\n\nCompact icon button variant used with `ProductTable` add flows.\n\n```tsx\nimport { ProductTableIconAddButton } from '@emporix/cockpit-component-library'\n;<ProductTableIconAddButton onClick={onAdd} />\n```\n\n### OrderTable\n\nData table for order rows and order-oriented workflows.\n\n```tsx\nimport { OrderTable } from '@emporix/cockpit-component-library'\n;<OrderTable rows={rows} />\n```\n\n### OrderStatusTag\n\nStatus badge component for order state presentation.\n\n```tsx\nimport { OrderStatusTag } from '@emporix/cockpit-component-library'\n;<OrderStatusTag status='submitted' />\n```\n\n### Wizard\n\nStep-based workflow component for multi-stage forms and processes.\n\n```tsx\nimport { Wizard } from '@emporix/cockpit-component-library'\n;<Wizard steps={steps} />\n```\n\n### Timeline\n\nChronological event list component for activity/history views.\n\n```tsx\nimport { Timeline } from '@emporix/cockpit-component-library'\n;<Timeline events={events} />\n```\n\n## Theming with CSS Variables\n\nThe component library uses CSS variables for easy theming. You can customize the appearance by overriding these variables:\n\n```css\n:root {\n  --color-primary: #your-primary-color;\n  --color-primary-hover: #your-primary-hover-color;\n  --border-radius-md: 0.5rem;\n  --font-size-lg: 1.2rem;\n  /* ... other variables */\n}\n```\n\n### Available CSS Variables\n\nThe component library provides a minimal set of CSS variables that are actually used in the codebase. These variables are primarily used for the showcase page styling and can be customized for theming.\n\n#### Colors\n\n```css\n--color-primary: #0e99c6;\n--color-primary-hover: #0e87b3;\n--color-dark: #27313b;\n```\n\n#### Text Colors\n\n```css\n--color-text-primary: #ffffff;\n--color-text-secondary: #999999;\n```\n\n#### Background Colors\n\n```css\n--color-bg-primary: #ffffff;\n--color-bg-secondary: #f8f9fa;\n```\n\n#### Border Colors\n\n```css\n--color-border-light: #cad0d6;\n```\n\n#### Focus Ring\n\nReusable focus outline for inputs, dropdowns, SelectButton, etc. Override to change focus appearance globally.\n\n```css\n--focus-ring-box-shadow: 0 0 0 2px rgba(38, 101, 183, 0.35);\n```\n\n#### Chip (status badge)\n\nBackground and text colors per variant for the `Chip` component.\n\n```css\n--color-chip-success-bg: #ecfdf5;\n--color-chip-success-text: #059669;\n--color-chip-success-border: #a7f3d0;\n--color-chip-warning-bg: #fffbeb;\n--color-chip-warning-text: #d97706;\n--color-chip-warning-border: #fde68a;\n--color-chip-info-bg: #eff6ff;\n--color-chip-info-text: #2563eb;\n--color-chip-info-border: #bfdbfe;\n--color-chip-error-bg: #fef2f2;\n--color-chip-error-text: #dc2626;\n--color-chip-error-border: #fecaca;\n```\n\n#### Card layout tokens\n\nUsed by **`Card`** (`Card.module.scss`). Defaults match `src/styles/index.scss`; override on `:root` or a wrapper to change card rhythm app-wide.\n\n```css\n--color-card-border: #e5e7eb;\n--color-card-heading: #1f2937;\n--color-card-meta-icon: #4b5563;\n--card-radius: 8px;\n--card-padding: 16px;\n--card-section-gap: 12px; /* root: space between top-level sections (e.g. body vs footer) */\n--card-body-gap: 16px; /* Card.Body: space between title, meta, etc. */\n--card-meta-gap: 6px; /* header / meta / meta-row gaps */\n```\n\n**Note:** **`IconCard`** uses **`24px`** padding and **`var(--card-body-gap)`** for its content column—slightly different from **`Card`**’s shell; see `IconCard.module.scss` if you theme both.\n\n#### Spacing\n\n```css\n--spacing-sm: 0.5rem; /* 8px */\n--spacing-md: 1rem; /* 16px */\n--spacing-lg: 1.5rem; /* 24px */\n--spacing-xl: 3rem; /* 48px */\n```\n\n#### Border Radius\n\n```css\n--border-radius-sm: 0.25rem; /* 4px */\n--border-radius-md: 0.375rem; /* 6px */\n--border-radius-lg: 0.5rem; /* 8px */\n```\n\n#### Typography\n\n**Font Sizes:**\n\n```css\n--font-size-sm: 0.875rem; /* 14px */\n--font-size-base: 0.875rem; /* 14px */\n--font-size-lg: 1.125rem; /* 18px */\n```\n\n**Font Weights:**\n\n```css\n--font-weight-normal: 400;\n--font-weight-medium: 500;\n--font-weight-semibold: 600;\n--font-weight-bold: 700;\n```\n\n**Line Height:**\n\n```css\n--line-height-base: 1rem;\n```\n\n### Theming Examples\n\n#### Basic Theming\n\n```css\n:root {\n  --color-primary: #your-brand-color;\n  --color-primary-hover: #your-brand-hover-color;\n  --border-radius-md: 0.5rem;\n  --font-size-lg: 1.2rem;\n}\n```\n\n#### Dark Theme\n\n```css\n:root {\n  --color-bg-primary: #1a1a1a;\n  --color-bg-secondary: #2d2d2d;\n  --color-text-primary: #ffffff;\n  --color-text-secondary: #cccccc;\n  --color-border-light: #404040;\n}\n```\n\n#### Custom Component Styling\n\n```css\n.my-custom-component {\n  padding: var(--spacing-md);\n  border-radius: var(--border-radius-lg);\n  background-color: var(--color-bg-primary);\n  color: var(--color-text-primary);\n  border: 1px solid var(--color-border-light);\n}\n```\n\n## Development\n\n### Prerequisites\n\n- Node.js 18+\n- npm or yarn\n\n### Setup\n\n```bash\n# Clone the repository\ngit clone <repository-url>\ncd cockpit-component-library\n\n# Install dependencies\nnpm install\n\n# Start development server\nnpm run dev\n\n# Start Storybook\nnpm run storybook\n```\n\n### Available Scripts\n\n- `npm run dev` - Start development server with showcase\n- `npm run build` - Build the development version\n- `npm run build:lib` - Build the library for distribution\n- `npm run test` - Run tests\n- `npm run test:ui` - Run tests with UI\n- `npm run test:coverage` - Run tests with coverage\n- `npm run storybook` - Start Storybook\n- `npm run build-storybook` - Build Storybook\n- `npm run lint` - Run ESLint\n- `npm run lint:fix` - Fix ESLint issues\n- `npm run type-check` - Run TypeScript type checking\n- `npm run format` - Format code with Prettier\n- `npm run format:check` - Check code formatting\n\n## Testing\n\nThe library includes comprehensive tests using Vitest and React Testing Library.\n\n```bash\n# Run all tests\nnpm test\n\n# Run tests with coverage\nnpm run test:coverage\n\n# Run tests with UI\nnpm run test:ui\n```\n\n## Storybook\n\nInteractive component documentation is available in Storybook.\n\n```bash\n# Start Storybook\nnpm run storybook\n\n# Build Storybook\nnpm run build-storybook\n```\n\n## Building for Distribution\n\nThe library is built using Vite with optimized settings for npm distribution.\n\n```bash\n# Build the library locally\nnpm run build:lib\n```\n\nThe build output includes:\n\n- ES modules (`dist/index.es.js`)\n- UMD bundle (`dist/index.umd.js`)\n- TypeScript declarations (`dist/index.d.ts`)\n- CSS styles (`dist/style.css`)\n\nThe publish workflow runs `npm run build:lib` before `npm publish`.\n\n## Publishing a new version\n\nReleases are published to npm automatically when a **version tag** is pushed to GitHub. The workflow is defined in [`.github/workflows/publish.yml`](.github/workflows/publish.yml).\n\n### Prerequisites (one-time setup)\n\n1. **npm package** — `@emporix/cockpit-component-library` must exist on [npm](https://www.npmjs.com/package/@emporix/cockpit-component-library) with publish access configured for this repository.\n2. **npm Trusted Publishing** — On [npmjs.com](https://www.npmjs.com/), configure a trusted publisher for this package with:\n   - GitHub organization/repository: `emporix/cockpit-component-library`\n   - Workflow filename: `publish.yml`\n   - Environment: (optional)\n\n   The workflow uses OIDC (`id-token: write`); no `NPM_TOKEN` secret is required when Trusted Publishing is enabled.\n\n### Release steps\n\n1. Merge your changes to the default branch (`main`).\n2. Bump the version in `package.json` (semver, **without** the `v` prefix), for example `1.0.4` or `2.1.1`.\n3. Commit the version bump and push to `main`.\n4. Create and push a Git tag that matches the version with a `v` prefix:\n\n   ```bash\n   git tag v1.0.4\n   git push origin v1.0.4\n   ```\n\n5. Open **Actions** in GitHub and confirm the **Publish to npm** workflow succeeded.\n6. Verify the new version on npm:\n\n   ```bash\n   npm view @emporix/cockpit-component-library version\n   ```\n\nThe tag must match `package.json` `version` (e.g. tag `v2.1.1` requires `\"version\": \"2.1.1\"`) and follow the format `v{major}.{minor}.{patch}`.\n\n### Example: publish `2.1.1`\n\n```bash\n# After updating package.json to \"2.1.1\" and pushing main:\ngit tag v2.1.1\ngit push origin v2.1.1\n```\n\nTo remove a tag locally before pushing:\n\n```bash\ngit tag -d v2.1.1\n```\n\n## Code Formatting\n\nThis project uses Prettier for consistent code formatting. The configuration is defined in `.prettierrc`.\n\n```bash\n# Format all files\nnpm run format\n\n# Check if files are formatted correctly\nnpm run format:check\n```\n\nThe project also includes pre-commit hooks that automatically format staged files before commits.\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add some amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n### Development Guidelines\n\n- Follow TypeScript best practices\n- Write tests for new components\n- Add Storybook stories for components\n- Follow the existing code style\n- Update documentation as needed\n- Use arrow functions for React components (enforced by ESLint)\n- Avoid using `React.FC` type annotation (redundant with modern TypeScript)\n- Use CSS variables for all styling values\n- Follow the established naming conventions for CSS classes\n\n## Troubleshooting\n\n### Import Issues\n\nIf you encounter import errors like \"Failed to resolve entry for package\", ensure:\n\n1. The package is properly installed: `npm install @emporix/cockpit-component-library`\n2. You're using the correct import syntax:\n   ```tsx\n   import { PrimaryButton } from '@emporix/cockpit-component-library'\n   import '@emporix/cockpit-component-library/styles'\n   ```\n3. Your bundler supports ES modules and the package.json exports field\n\n### Styling Issues\n\nIf the PrimaryButton component appears unstyled or you get \"styles not found\" errors:\n\n1. **Try Method 1 (Recommended):** Import styles in your main CSS file:\n\n   ```css\n   @import '@emporix/cockpit-component-library/styles';\n   ```\n\n2. **Try Method 2:** Import styles in your main JavaScript/TypeScript file:\n\n   ```tsx\n   import '@emporix/cockpit-component-library/styles'\n   ```\n\n3. **If both methods fail:** Copy the CSS file manually:\n   - Copy `node_modules/@emporix/cockpit-component-library/dist/style.css` to your project\n   - Import it in your main CSS file: `@import './path/to/style.css';`\n\n4. **Check your bundler configuration:** Ensure your bundler (Vite, Webpack, etc.) is configured to handle CSS imports from node_modules\n\n5. **Verify the CSS classes:** The component uses SCSS modules with hashed class names (e.g., `_primaryButton_1d0ha_1`, `_primaryButtonDisabled_1d0ha_53`) and CSS variables for theming\n\n### TypeScript Issues\n\nIf TypeScript can't find types, make sure:\n\n1. The `@types/react` package is installed\n2. Your `tsconfig.json` includes the library in `node_modules`\n\n### Bundler-Specific Notes\n\n#### Vite\n\nAll methods should work with Vite. Method 1 (CSS import) is recommended.\n\n#### Webpack\n\nMethod 1 and Method 2 should work. If you encounter issues, try Method 3.\n\n#### Create React App\n\nMethod 1 and Method 2 should work. If you encounter issues, try Method 3.\n\n#### Next.js\n\nMethod 1 (CSS import) is recommended. Import the CSS in your `_app.tsx` or `_app.js` file.\n\n## License\n\nMIT License - see [LICENSE](LICENSE) file for details.\n\n## Support\n\nFor support and questions, please open an issue in the repository.\n","readmeFilename":"README.md"}