{"_id":"@cliquify.me/fabric-previewer","_rev":"6-d6060df8e0da7854ae907ff0b5864535","name":"@cliquify.me/fabric-previewer","dist-tags":{"latest":"1.0.4"},"versions":{"1.0.0":{"name":"@cliquify.me/fabric-previewer","version":"1.0.0","_id":"@cliquify.me/fabric-previewer@1.0.0","maintainers":[{"name":"cliquify.pro","email":"tools@cliquify.me"},{"name":"agustinlavalla","email":"agulavalla@gmail.com"}],"dist":{"shasum":"1cf802d28b526cc9b2e7648c5e3adb448f79bea7","tarball":"https://registry.npmjs.org/@cliquify.me/fabric-previewer/-/fabric-previewer-1.0.0.tgz","fileCount":278,"integrity":"sha512-InNZJ6HfbjYLiOU7IM1yKRGFHGKzpvq5k6d5KYZLhtppGDjdVYfH8WrWLwBwqQD47km3/HaKk+ZHoIJ86txgAA==","signatures":[{"sig":"MEQCIAwjYE6myBMBBdWQ2lJCWAah4hLpbmu0xgV6rckdNsKQAiBgzKPFX1a/FT7LxJtARKGiLZniNBZcgRzi/Aolwz9rbA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7694430},"main":"dist/index.cjs","type":"module","_from":"file:cliquify.me-fabric-previewer-1.0.0.tgz","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=20.18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"private":false,"scripts":{"dev":"vite","lint":"eslint .","build":"vite build","clean":"rimraf dist","preview":"vite preview"},"_npmUser":{"name":"agustinlavalla","email":"agulavalla@gmail.com"},"_resolved":"/tmp/1583e344f345e1354d7cd355d5fc4e20/cliquify.me-fabric-previewer-1.0.0.tgz","_integrity":"sha512-InNZJ6HfbjYLiOU7IM1yKRGFHGKzpvq5k6d5KYZLhtppGDjdVYfH8WrWLwBwqQD47km3/HaKk+ZHoIJ86txgAA==","_npmVersion":"10.9.4","description":"Fabric-based previewer: Snapmotion core + React Canvas","directories":{},"sideEffects":false,"_nodeVersion":"22.21.1","dependencies":{"clsx":"^2.1.1","nanoid":"^3.3.3","zustand":"^5.0.7","lodash-es":"^4.17.21","hotkeys-js":"^3.12.0","tinycolor2":"^1.6.0","fetch-retry":"^5.0.6","opentype.js":"^1.3.4","lucide-react":"^0.539.0","jsondiffpatch":"^0.5.0","tailwind-merge":"^3.3.1","@radix-ui/react-slot":"^1.2.3","class-variance-authority":"^0.7.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.1.2","paper":"^0.12.17","eslint":"^9.33.0","fabric":"6.0.0-beta16","rimraf":"^6.0.1","globals":"^16.3.0","@eslint/js":"^9.33.0","typescript":"~5.8.3","@types/node":"^20.19.10","tailwindcss":"^4.1.12","@types/react":"18.2.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"18.2.0","@tailwindcss/vite":"^4.1.12","@types/tinycolor2":"^1.4.2","typescript-eslint":"^8.39.1","@types/opentype.js":"^1.3.5","vite-tsconfig-paths":"^5.1.4","@vitejs/plugin-react":"^5.0.0","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20"},"peerDependencies":{"paper":"^0.12.17","react":">=18 <19","fabric":"^6.0.0-beta16","react-dom":">=18 <19"},"peerDependenciesMeta":{"paper":{"optional":true},"fabric":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/fabric-previewer_1.0.0_1762467627400_0.050375055420112336","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@cliquify.me/fabric-previewer","version":"1.0.1","_id":"@cliquify.me/fabric-previewer@1.0.1","maintainers":[{"name":"cliquify.pro","email":"tools@cliquify.me"},{"name":"agustinlavalla","email":"agulavalla@gmail.com"}],"dist":{"shasum":"0e5b621decebebdac14cbd53047d2e13c6900a09","tarball":"https://registry.npmjs.org/@cliquify.me/fabric-previewer/-/fabric-previewer-1.0.1.tgz","fileCount":278,"integrity":"sha512-jKB55KJU5/FRiwKPqH1K/A+1N45mPLmVhlG7ife9U8VfrA9/NOw0EH/UevELPxfTlPNx3wHqcfPKYlDCOtMqfQ==","signatures":[{"sig":"MEQCIFTTGSQO9ly5RW0+HEIlD29Kl9qRzWGsKgo0FnF/VuK0AiANJJ4xYHDrRtujpdxwPFSkUzhCHLf+VOSb5RvaoYJihw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7694504},"main":"./dist/index.cjs","type":"module","_from":"file:cliquify.me-fabric-previewer-1.0.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","browser":"./dist/index.js","engines":{"node":">=20.18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/index.js","require":"./dist/index.cjs"}},"private":false,"scripts":{"dev":"vite","lint":"eslint .","build":"vite build","clean":"rimraf dist","preview":"vite preview"},"_npmUser":{"name":"agustinlavalla","email":"agulavalla@gmail.com"},"_resolved":"/tmp/0354657e50f9596cf4ca4ccf34e37c18/cliquify.me-fabric-previewer-1.0.1.tgz","_integrity":"sha512-jKB55KJU5/FRiwKPqH1K/A+1N45mPLmVhlG7ife9U8VfrA9/NOw0EH/UevELPxfTlPNx3wHqcfPKYlDCOtMqfQ==","_npmVersion":"10.9.4","description":"Fabric-based previewer: Snapmotion core + React Canvas","directories":{},"sideEffects":false,"_nodeVersion":"22.21.1","dependencies":{"clsx":"^2.1.1","nanoid":"^3.3.3","zustand":"^5.0.7","lodash-es":"^4.17.21","hotkeys-js":"^3.12.0","tinycolor2":"^1.6.0","fetch-retry":"^5.0.6","opentype.js":"^1.3.4","lucide-react":"^0.539.0","jsondiffpatch":"^0.5.0","tailwind-merge":"^3.3.1","@radix-ui/react-slot":"^1.2.3","class-variance-authority":"^0.7.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.1.2","paper":"^0.12.17","eslint":"^9.33.0","fabric":"6.0.0-beta16","rimraf":"^6.0.1","globals":"^16.3.0","@eslint/js":"^9.33.0","typescript":"~5.8.3","@types/node":"^20.19.10","tailwindcss":"^4.1.12","@types/react":"18.2.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"18.2.0","@tailwindcss/vite":"^4.1.12","@types/tinycolor2":"^1.4.2","typescript-eslint":"^8.39.1","@types/opentype.js":"^1.3.5","vite-tsconfig-paths":"^5.1.4","@vitejs/plugin-react":"^5.0.0","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20"},"peerDependencies":{"paper":"^0.12.17","react":">=18 <19","fabric":"^6.0.0-beta16","react-dom":">=18 <19"},"peerDependenciesMeta":{"paper":{"optional":true},"fabric":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/fabric-previewer_1.0.1_1763480189556_0.8106185810659781","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@cliquify.me/fabric-previewer","version":"1.0.2","_id":"@cliquify.me/fabric-previewer@1.0.2","maintainers":[{"name":"cliquify.pro","email":"tools@cliquify.me"},{"name":"agustinlavalla","email":"agulavalla@gmail.com"}],"dist":{"shasum":"76d2304e9e85cf545c7dcc664541f197f5baf7ec","tarball":"https://registry.npmjs.org/@cliquify.me/fabric-previewer/-/fabric-previewer-1.0.2.tgz","fileCount":278,"integrity":"sha512-eXh+O+UtJFuXe8/1b5G5ohZnrW26/b03zINvrFvRhE9VS08Ni3/3vsJtZdFv3HeiBgtorZfJrrQYjdskXC4O/Q==","signatures":[{"sig":"MEUCIQCiC4A7Z9jrfQbPWARdhrp73XixtgeWYOb314mFU1xL5QIgC3/w2UmxwsVRIL8b1weMn2RRZ1TwC6DBS++UAq0v7Kc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7694278},"main":"./dist/index.cjs","type":"module","_from":"file:cliquify.me-fabric-previewer-1.0.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","browser":"./dist/index.js","engines":{"node":">=20.18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/index.js","require":"./dist/index.cjs"}},"private":false,"scripts":{"dev":"vite","lint":"eslint .","build":"vite build","clean":"rimraf dist","preview":"vite preview"},"_npmUser":{"name":"agustinlavalla","email":"agulavalla@gmail.com"},"_resolved":"/tmp/b8b618e21ef72576c85ebfe0b96d4a81/cliquify.me-fabric-previewer-1.0.2.tgz","_integrity":"sha512-eXh+O+UtJFuXe8/1b5G5ohZnrW26/b03zINvrFvRhE9VS08Ni3/3vsJtZdFv3HeiBgtorZfJrrQYjdskXC4O/Q==","_npmVersion":"10.9.4","description":"Fabric-based previewer: Snapmotion core + React Canvas","directories":{},"sideEffects":false,"_nodeVersion":"22.21.1","dependencies":{"clsx":"^2.1.1","nanoid":"^3.3.3","zustand":"^5.0.7","lodash-es":"^4.17.21","hotkeys-js":"^3.12.0","tinycolor2":"^1.6.0","fetch-retry":"^5.0.6","opentype.js":"^1.3.4","lucide-react":"^0.539.0","jsondiffpatch":"^0.5.0","tailwind-merge":"^3.3.1","@radix-ui/react-slot":"^1.2.3","class-variance-authority":"^0.7.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.1.2","paper":"^0.12.17","eslint":"^9.33.0","fabric":"6.0.0-beta16","rimraf":"^6.0.1","globals":"^16.3.0","@eslint/js":"^9.33.0","typescript":"~5.8.3","@types/node":"^20.19.10","tailwindcss":"^4.1.12","@types/react":"18.2.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"18.2.0","@tailwindcss/vite":"^4.1.12","@types/tinycolor2":"^1.4.2","typescript-eslint":"^8.39.1","@types/opentype.js":"^1.3.5","vite-tsconfig-paths":"^5.1.4","@vitejs/plugin-react":"^5.0.0","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20"},"peerDependencies":{"paper":"^0.12.17","react":">=18 <19","fabric":"^6.0.0-beta16","react-dom":">=18 <19"},"peerDependenciesMeta":{"paper":{"optional":true},"fabric":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/fabric-previewer_1.0.2_1763560377742_0.34228288195631174","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@cliquify.me/fabric-previewer","version":"1.0.3","_id":"@cliquify.me/fabric-previewer@1.0.3","maintainers":[{"name":"cliquify.pro","email":"tools@cliquify.me"},{"name":"agustinlavalla","email":"agulavalla@gmail.com"}],"dist":{"shasum":"dd1ff2194a7a9e3c2a8623fd7f108b6838bbe388","tarball":"https://registry.npmjs.org/@cliquify.me/fabric-previewer/-/fabric-previewer-1.0.3.tgz","fileCount":278,"integrity":"sha512-1Mte9Eml1R/IMOf3id+Z40G5NZFFl6e7Q56v0sRlAEyfG/BwuMZ2MyP9byfCliXEdJznv/vZmY1a0l8m+oTQQQ==","signatures":[{"sig":"MEUCIQDYJwzOfUuQPS4h9LY091+9NInYge5bxfBtlx9DfH/aLgIgY1YOlwDoOMydPjmYb9qH8tHUrCmCngydjh4MmMJojN0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7719984},"main":"./dist/index.cjs","type":"module","_from":"file:cliquify.me-fabric-previewer-1.0.3.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","browser":"./dist/index.js","engines":{"node":">=20.18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/index.js","require":"./dist/index.cjs"}},"private":false,"scripts":{"dev":"vite","lint":"eslint .","build":"vite build","clean":"rimraf dist","preview":"vite preview"},"_npmUser":{"name":"agustinlavalla","email":"agulavalla@gmail.com"},"_resolved":"/tmp/7c65b976779cb13ac7feec02c52e166e/cliquify.me-fabric-previewer-1.0.3.tgz","_integrity":"sha512-1Mte9Eml1R/IMOf3id+Z40G5NZFFl6e7Q56v0sRlAEyfG/BwuMZ2MyP9byfCliXEdJznv/vZmY1a0l8m+oTQQQ==","_npmVersion":"10.9.4","description":"Fabric-based previewer: Snapmotion core + React Canvas","directories":{},"sideEffects":false,"_nodeVersion":"22.21.1","dependencies":{"clsx":"^2.1.1","nanoid":"^3.3.3","zustand":"^5.0.7","lodash-es":"^4.17.21","hotkeys-js":"^3.12.0","tinycolor2":"^1.6.0","fetch-retry":"^5.0.6","opentype.js":"^1.3.4","lucide-react":"^0.539.0","jsondiffpatch":"^0.5.0","tailwind-merge":"^3.3.1","@radix-ui/react-slot":"^1.2.3","class-variance-authority":"^0.7.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.1.2","paper":"^0.12.17","eslint":"^9.33.0","fabric":"6.0.0-beta16","rimraf":"^6.0.1","globals":"^16.3.0","@eslint/js":"^9.33.0","typescript":"~5.8.3","@types/node":"^20.19.10","tailwindcss":"^4.1.12","@types/react":"18.2.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"18.2.0","@tailwindcss/vite":"^4.1.12","@types/tinycolor2":"^1.4.2","typescript-eslint":"^8.39.1","@types/opentype.js":"^1.3.5","vite-tsconfig-paths":"^5.1.4","@vitejs/plugin-react":"^5.0.0","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20"},"peerDependencies":{"paper":"^0.12.17","react":">=18 <19","fabric":"^6.0.0-beta16","react-dom":">=18 <19"},"peerDependenciesMeta":{"paper":{"optional":true},"fabric":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/fabric-previewer_1.0.3_1763567420326_0.4829647658536962","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@cliquify.me/fabric-previewer","version":"1.0.4","_id":"@cliquify.me/fabric-previewer@1.0.4","maintainers":[{"name":"cliquify.pro","email":"tools@cliquify.me"},{"name":"agustinlavalla","email":"agulavalla@gmail.com"}],"dist":{"shasum":"83ff528ff95ca07cef6eb0e0304e8f59fef6c9d5","tarball":"https://registry.npmjs.org/@cliquify.me/fabric-previewer/-/fabric-previewer-1.0.4.tgz","fileCount":260,"integrity":"sha512-6EdWP1tE5xnOStfgZs6zpWO6fWMxGc4Apxw53vXY2ZXgiuJSQKtAG4v2UpSA6a1Gtrey0Ztenvu7DEvT1lrZ6g==","signatures":[{"sig":"MEYCIQDjmZN9/ZEwqxi8AGpESp76msV8cvtv2kP1n3/8x0k3pgIhALO+MP0RRlYdium+IJkkdb5IFxgNH677nXFGKTkXIdPD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7716157},"main":"./dist/index.cjs","type":"module","_from":"file:cliquify.me-fabric-previewer-1.0.4.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","browser":"./dist/index.js","engines":{"node":">=20.18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/index.js","require":"./dist/index.cjs"}},"private":false,"scripts":{"dev":"vite","lint":"eslint .","build":"vite build","clean":"rimraf dist","preview":"vite preview"},"_npmUser":{"name":"agustinlavalla","email":"agulavalla@gmail.com"},"_resolved":"/tmp/1248793a631a41e93d0468f7f10e4094/cliquify.me-fabric-previewer-1.0.4.tgz","_integrity":"sha512-6EdWP1tE5xnOStfgZs6zpWO6fWMxGc4Apxw53vXY2ZXgiuJSQKtAG4v2UpSA6a1Gtrey0Ztenvu7DEvT1lrZ6g==","_npmVersion":"11.6.2","description":"Fabric-based previewer: Snapmotion core + React Canvas","directories":{},"sideEffects":false,"_nodeVersion":"24.11.1","dependencies":{"clsx":"^2.1.1","nanoid":"^3.3.3","zustand":"^5.0.7","lodash-es":"^4.17.21","hotkeys-js":"^3.12.0","tinycolor2":"^1.6.0","fetch-retry":"^5.0.6","opentype.js":"^1.3.4","lucide-react":"^0.539.0","jsondiffpatch":"^0.5.0","tailwind-merge":"^3.3.1","class-variance-authority":"^0.7.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.1.2","paper":"^0.12.17","eslint":"^9.33.0","fabric":"6.0.0-beta16","rimraf":"^6.0.1","globals":"^16.3.0","@eslint/js":"^9.33.0","typescript":"~5.8.3","@types/node":"^20.19.10","tailwindcss":"^4.1.12","@types/react":"18.2.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"18.2.0","@tailwindcss/vite":"^4.1.12","@types/tinycolor2":"^1.4.2","typescript-eslint":"^8.39.1","@types/opentype.js":"^1.3.5","vite-tsconfig-paths":"^5.1.4","@vitejs/plugin-react":"^5.0.0","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20"},"peerDependencies":{"paper":"^0.12.17","react":">=18 <19","fabric":"^6.0.0-beta16","react-dom":">=18 <19"},"peerDependenciesMeta":{"paper":{"optional":true},"fabric":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/fabric-previewer_1.0.4_1773084475307_0.3158886551750151","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2025-11-06T22:20:27.315Z","modified":"2026-09-16T16:04:19.085Z","1.0.0":"2025-11-06T22:20:27.671Z","1.0.1":"2025-11-18T15:36:29.849Z","1.0.2":"2025-11-19T13:52:57.998Z","1.0.3":"2025-11-19T15:50:20.562Z","1.0.4":"2026-03-09T19:27:55.615Z"},"description":"Fabric-based previewer: Snapmotion core + React Canvas","maintainers":[{"email":"keane.pa.si.in@gmail.com","name":"pablituuu"},{"email":"tools@cliquify.me","name":"cliquify.pro"},{"email":"agulavalla@gmail.com","name":"agustinlavalla"}],"readme":"# @cliquify.me/fabric-previewer\n\nA Fabric-based canvas previewer + React wrapper designed to be embedded inside Cliquify apps (or any React app).\n\n## Features\n\n- Ready-to-use `<Canvas />` React component.\n- Integrates with Fabric v6.\n- Ships TypeScript types for a smooth DX.\n- Keeps React/Fabric as peer dependencies so the host app is in control.\n\n## Installation\n\nOnce published to npm:\n\n```bash\npnpm add @cliquify.me/fabric-previewer fabric react react-dom\n# or\nnpm install @cliquify.me/fabric-previewer fabric react react-dom\n```\n\n## Peer Dependencies\n\nMust be provided by the host application:\n\n- `react` `>=18 <19`\n- `react-dom` `>=18 <19`\n- `fabric` `^6.0.0-beta16`\n- `paper` `^0.12.17` (optional depending on enabled features)\n\n## Basic Usage\n\n```tsx\nimport { Canvas } from '@cliquify.me/fabric-previewer';\n\nexport function Example() {\n  return (\n    <div style={{ width: 900, height: 600 }}>\n      <Canvas />\n    </div>\n  );\n}\n```\n\nIf the package exposes additional hooks/contexts (e.g. `useSnapmotion`, `useActiveScene`), they can be imported directly:\n\n```tsx\nimport { Canvas, useSnapmotion } from '@cliquify.me/fabric-previewer';\n```\n\nRefer to the source for the full public API.\n\n## Implementation Notes\n\n- Built with Vite in library mode.\n- `react`, `react-dom`, `fabric`, etc. are marked as `peerDependencies` and `external` in the bundle.\n- Internal utilities such as `clsx`, `zustand`, `lucide-react`, etc. are regular `dependencies`.\n- Public entry:\n  - ESM: `dist/index.js`\n  - CJS: `dist/index.cjs`\n  - Types: `dist/index.d.ts`\n  - Wired via the `\"exports\"` field.\n\n## Local Development\n\nIn the monorepo:\n\n```bash\npnpm --filter @cliquify.me/fabric-previewer build\npnpm --filter @cliquify.me/fabric-previewer-demo dev\n```\n\nThe demo app consumes the package using the workspace version. Rebuild the package (or run a watch build) when iterating on the library.","readmeFilename":"README.md"}