{"_id":"@ahmedzidan/react-page-builder","_rev":"11-035c7cdad88c80db2a448edd53017cc5","name":"@ahmedzidan/react-page-builder","dist-tags":{"latest":"1.0.12"},"versions":{"1.0.0":{"name":"@ahmedzidan/react-page-builder","version":"1.0.0","keywords":["page-builder","visual-editor","drag-and-drop","react","wysiwyg","website-builder","cms","responsive-design","bootstrap-grid","component-library"],"author":{"name":"Ahmed Zidan"},"license":"MIT","_id":"@ahmedzidan/react-page-builder@1.0.0","maintainers":[{"name":"ahmedzidan","email":"dev.ahmed.zidan@gmail.com"}],"homepage":"https://github.com/AFZidan/react-page-builder#readme","bugs":{"url":"https://github.com/AFZidan/react-page-builder/issues"},"dist":{"shasum":"ed7a23cb21ab7b588a1d0724ced30dae9dc22c5e","tarball":"https://registry.npmjs.org/@ahmedzidan/react-page-builder/-/react-page-builder-1.0.0.tgz","fileCount":18,"integrity":"sha512-xTHkdOfQOaUpnQgIdS+j1qlFkE5dzBa+Z1hJ8S4n4pr1JxbDp752AkAY0FMxz511PECDbGqAT6t4grAxhRTKpw==","signatures":[{"sig":"MEUCIQCySsAjPV0o0dOaaf9AeVaYPrlphd0sgZdAgYjcf1qUrwIgUsJCIgGa5FwQOajQOALpiiVT2iAjvCVY6UFYsPADalI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":825062},"main":"./dist/page-builder.cjs","types":"./dist/index.d.ts","module":"./dist/page-builder.es.js","exports":{".":{"import":"./dist/page-builder.es.js","require":"./dist/page-builder.cjs"},"./styles.css":"./dist/style.css"},"gitHead":"b0f501cdcce6e1b623fd0bf6d1742236b3c1afa9","scripts":{"dev":"vite build --watch","lint":"eslint src --ext js,jsx --report-unused-disable-directives --max-warnings 50","test":"vitest run","build":"vite build","test:ui":"vitest --ui","lint:fix":"eslint src --ext js,jsx --fix","preversion":"npm run lint && npm run test","test:watch":"vitest","postversion":"git push && git push --tags","test:coverage":"vitest run --coverage","prepublishOnly":"npm run lint && npm run test && npm run build"},"_npmUser":{"name":"ahmedzidan","email":"dev.ahmed.zidan@gmail.com"},"repository":{"url":"git+https://github.com/AFZidan/react-page-builder.git","type":"git"},"_npmVersion":"11.4.2","description":"A visual drag-and-drop page builder for React with support for custom components, responsive design, and advanced styling","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^3.23.8","lucide-react":"^0.546.0","react-colorful":"^5.6.1","react-markdown":"^9.0.1","react-hook-form":"^7.51.5","@heroicons/react":"^2.2.0","@hookform/resolvers":"^3.4.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","jsdom":"^23.0.1","eslint":"^8.55.0","vitest":"^1.1.0","@vitest/ui":"^1.1.0","@vitest/coverage-v8":"^1.1.0","eslint-plugin-react":"^7.33.2","@vitejs/plugin-react":"^4.2.1","@testing-library/react":"^14.1.2","@testing-library/jest-dom":"^6.1.5","eslint-plugin-react-hooks":"^4.6.0","@testing-library/user-event":"^14.5.1"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"peerDependenciesMeta":{"daisyui":{"optional":true},"tailwindcss":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react-page-builder_1.0.0_1760828182707_0.18518008932152608","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@ahmedzidan/react-page-builder","version":"1.0.1","keywords":["page-builder","visual-editor","drag-and-drop","react","wysiwyg","website-builder","cms","responsive-design","bootstrap-grid","component-library"],"author":{"name":"Ahmed Zidan"},"license":"MIT","_id":"@ahmedzidan/react-page-builder@1.0.1","maintainers":[{"name":"ahmedzidan","email":"dev.ahmed.zidan@gmail.com"}],"homepage":"https://github.com/AFZidan/react-page-builder#readme","bugs":{"url":"https://github.com/AFZidan/react-page-builder/issues"},"dist":{"shasum":"e31a9b0ffbf5d57319205bd78dea6acb2c6c117a","tarball":"https://registry.npmjs.org/@ahmedzidan/react-page-builder/-/react-page-builder-1.0.1.tgz","fileCount":18,"integrity":"sha512-RbSmwjvpnNMlbQT7v72h7d/P40d6/z2zo9Y1pb6HH92uGfa5wTFoWJfy2dOpzNCT9LEB5ArL1z2ZwayHhfERRA==","signatures":[{"sig":"MEYCIQCHTVqdcMbQsuRPgyghYsZMEjcDlR2RbgoYPJjj9XTaswIhAP5vhAMEEdmTnr7/Srikf5jULovFLUPbuZ3PqtbTkDVU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":825152},"main":"./dist/page-builder.cjs","types":"./dist/index.d.ts","module":"./dist/page-builder.es.js","exports":{".":{"import":"./dist/page-builder.es.js","require":"./dist/page-builder.cjs"},"./styles.css":"./dist/style.css"},"gitHead":"0ef5a484ca725814c0e4bd8684cde88e18bdf22c","scripts":{"dev":"vite build --watch","lint":"eslint src --ext js,jsx --report-unused-disable-directives --max-warnings 50","test":"vitest run","build":"vite build","test:ui":"vitest --ui","lint:fix":"eslint src --ext js,jsx --fix","preversion":"npm run lint && npm run test","test:watch":"vitest","postversion":"git push && git push --tags","test:coverage":"vitest run --coverage","prepublishOnly":"npm run lint && npm run test && npm run build"},"_npmUser":{"name":"ahmedzidan","email":"dev.ahmed.zidan@gmail.com"},"repository":{"url":"git+https://github.com/AFZidan/react-page-builder.git","type":"git"},"_npmVersion":"11.4.2","description":"A visual drag-and-drop page builder for React with support for custom components, responsive design, and advanced styling","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^3.23.8","lucide-react":"^0.546.0","react-colorful":"^5.6.1","react-markdown":"^9.0.1","react-hook-form":"^7.51.5","@heroicons/react":"^2.2.0","@hookform/resolvers":"^3.4.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","jsdom":"^23.0.1","eslint":"^8.55.0","vitest":"^1.1.0","@vitest/ui":"^1.1.0","@vitest/coverage-v8":"^1.1.0","eslint-plugin-react":"^7.33.2","@vitejs/plugin-react":"^4.2.1","@testing-library/react":"^14.1.2","@testing-library/jest-dom":"^6.1.5","eslint-plugin-react-hooks":"^4.6.0","@testing-library/user-event":"^14.5.1"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"peerDependenciesMeta":{"daisyui":{"optional":true},"tailwindcss":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react-page-builder_1.0.1_1760828412076_0.49164962784479815","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@ahmedzidan/react-page-builder","version":"1.0.2","keywords":["page-builder","visual-editor","drag-and-drop","react","wysiwyg","website-builder","cms","responsive-design","bootstrap-grid","component-library"],"author":{"name":"Ahmed Zidan"},"license":"MIT","_id":"@ahmedzidan/react-page-builder@1.0.2","maintainers":[{"name":"ahmedzidan","email":"dev.ahmed.zidan@gmail.com"}],"homepage":"https://github.com/AFZidan/react-page-builder#readme","bugs":{"url":"https://github.com/AFZidan/react-page-builder/issues"},"dist":{"shasum":"c56395e4b61d198112842a403ee462b08be9140d","tarball":"https://registry.npmjs.org/@ahmedzidan/react-page-builder/-/react-page-builder-1.0.2.tgz","fileCount":20,"integrity":"sha512-aps8nqWSAZdHtDEi2wcsNTPazdGl36CBo+Wshz3MZJuIXEIkzwk221DovD22lxxFLlBhvX9LGbUHL5aANh+WpA==","signatures":[{"sig":"MEUCIQDXVRppOXWuaE7jwb0/axs5lY6ftByCUQGUf6G8Jn2soAIgEGBzSM9wCQ9eXzRlvVGmLPmHgT8g/xBiXo8/QTArVPk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":848499},"main":"./dist/page-builder.cjs","types":"./dist/index.d.ts","module":"./dist/page-builder.es.js","exports":{".":{"import":"./dist/page-builder.es.js","require":"./dist/page-builder.cjs"},"./styles.css":"./dist/style.css"},"gitHead":"7d69acf633d717f536e156380a79645e1f4367d6","scripts":{"dev":"vite build --watch","lint":"eslint src --ext js,jsx --report-unused-disable-directives --max-warnings 50","test":"vitest run","build":"vite build","test:ui":"vitest --ui","lint:fix":"eslint src --ext js,jsx --fix","preversion":"npm run lint && npm run test","test:watch":"vitest","postversion":"git push && git push --tags","test:coverage":"vitest run --coverage","prepublishOnly":"npm run lint && npm run test && npm run build"},"_npmUser":{"name":"ahmedzidan","email":"dev.ahmed.zidan@gmail.com"},"repository":{"url":"git+https://github.com/AFZidan/react-page-builder.git","type":"git"},"_npmVersion":"11.4.2","description":"A visual drag-and-drop page builder for React with support for custom components, responsive design, and advanced styling","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^3.23.8","lucide-react":"^0.546.0","react-colorful":"^5.6.1","react-markdown":"^9.0.1","react-hook-form":"^7.51.5","@heroicons/react":"^2.2.0","@hookform/resolvers":"^3.4.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","jsdom":"^23.0.1","eslint":"^8.55.0","vitest":"^1.1.0","@vitest/ui":"^1.1.0","@vitest/coverage-v8":"^1.1.0","eslint-plugin-react":"^7.33.2","@vitejs/plugin-react":"^4.2.1","@testing-library/react":"^14.1.2","@testing-library/jest-dom":"^6.1.5","eslint-plugin-react-hooks":"^4.6.0","@testing-library/user-event":"^14.5.1"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"peerDependenciesMeta":{"daisyui":{"optional":true},"tailwindcss":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react-page-builder_1.0.2_1760829105972_0.05332294804269666","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@ahmedzidan/react-page-builder","version":"1.0.3","keywords":["page-builder","visual-editor","drag-and-drop","react","wysiwyg","website-builder","cms","responsive-design","bootstrap-grid","component-library"],"author":{"name":"Ahmed Zidan"},"license":"MIT","_id":"@ahmedzidan/react-page-builder@1.0.3","maintainers":[{"name":"ahmedzidan","email":"dev.ahmed.zidan@gmail.com"}],"homepage":"https://github.com/AFZidan/react-page-builder#readme","bugs":{"url":"https://github.com/AFZidan/react-page-builder/issues"},"dist":{"shasum":"db3b3f8b8082f0f49973bc58424f0139d6595e1b","tarball":"https://registry.npmjs.org/@ahmedzidan/react-page-builder/-/react-page-builder-1.0.3.tgz","fileCount":21,"integrity":"sha512-oA9uKiHBTv+s/IdPXA9Uxtfl3e+B7BvsDbBsz1rjOyEJxTuzxE+wq/WEVOkgjfJMkgNxVFjkeVI6VY6U4Cvkdw==","signatures":[{"sig":"MEYCIQC8vBmfDS8mEXG1VZpDJ29zs00ZxaVmk2qkPXzcTCDkigIhAOCFNTGUJQtbqvTa83e29BsSD0hff3DkyJQdXPqB+BGa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":858820},"main":"./dist/page-builder.cjs","types":"./dist/index.d.ts","module":"./dist/page-builder.es.js","exports":{".":{"import":"./dist/page-builder.es.js","require":"./dist/page-builder.cjs"},"./styles.css":"./dist/style.css"},"gitHead":"e819c4c85e94050c7f0ee0d6ad7017ca4c2acf95","scripts":{"dev":"vite build --watch","lint":"eslint src --ext js,jsx --report-unused-disable-directives --max-warnings 50","test":"vitest run","build":"vite build","test:ui":"vitest --ui","lint:fix":"eslint src --ext js,jsx --fix","changelog":"bash scripts/generate-changelog.sh","preversion":"npm run lint && npm run test","test:watch":"vitest","postversion":"git push && git push --tags","test:coverage":"vitest run --coverage","prepublishOnly":"npm run lint && npm run test && npm run build","release:preview":"node scripts/preview-release-notes.js"},"_npmUser":{"name":"ahmedzidan","email":"dev.ahmed.zidan@gmail.com"},"repository":{"url":"git+https://github.com/AFZidan/react-page-builder.git","type":"git"},"_npmVersion":"10.8.2","description":"A visual drag-and-drop page builder for React with support for custom components, responsive design, and advanced styling","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.23.8","lucide-react":"^0.546.0","react-colorful":"^5.6.1","react-markdown":"^9.0.1","react-hook-form":"^7.51.5","@heroicons/react":"^2.2.0","@hookform/resolvers":"^3.4.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","jsdom":"^23.0.1","eslint":"^8.55.0","vitest":"^1.1.0","@vitest/ui":"^1.1.0","@vitest/coverage-v8":"^1.1.0","eslint-plugin-react":"^7.33.2","@vitejs/plugin-react":"^4.2.1","@testing-library/react":"^14.1.2","@testing-library/jest-dom":"^6.1.5","eslint-plugin-react-hooks":"^4.6.0","@testing-library/user-event":"^14.5.1"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"peerDependenciesMeta":{"daisyui":{"optional":true},"tailwindcss":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react-page-builder_1.0.3_1760830491615_0.38544723024641847","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@ahmedzidan/react-page-builder","version":"1.0.4","keywords":["page-builder","visual-editor","drag-and-drop","react","wysiwyg","website-builder","cms","responsive-design","bootstrap-grid","component-library"],"author":{"name":"Ahmed Zidan"},"license":"MIT","_id":"@ahmedzidan/react-page-builder@1.0.4","maintainers":[{"name":"ahmedzidan","email":"dev.ahmed.zidan@gmail.com"}],"homepage":"https://github.com/AFZidan/react-page-builder#readme","bugs":{"url":"https://github.com/AFZidan/react-page-builder/issues"},"dist":{"shasum":"7a35f142a92ebd47f9e6b34cc972067e399a2599","tarball":"https://registry.npmjs.org/@ahmedzidan/react-page-builder/-/react-page-builder-1.0.4.tgz","fileCount":21,"integrity":"sha512-Hg4ufyMpwbZoQJBsHv8hjoyHoQKUvv8lV3afwhSG8pZjlcnUNRhkoTNI5gEFD0dwx/FAA2hVyehrteRXvBITdA==","signatures":[{"sig":"MEQCIDmYj31px6v4mIA9Kz+9p/UYxI+9W3ebo7y0BYhzg6akAiAmb69rohw0WhW+h6cK/dTQ+/+UNP35isnX1vK34Sf9pA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":856191},"main":"./dist/page-builder.cjs","types":"./dist/index.d.ts","module":"./dist/page-builder.es.js","exports":{".":{"import":"./dist/page-builder.es.js","require":"./dist/page-builder.cjs"},"./styles.css":"./dist/style.css"},"gitHead":"25904d04905241b6a021a96fdfb4b0da343d0224","scripts":{"dev":"vite build --watch","lint":"eslint src --ext js,jsx --report-unused-disable-directives --max-warnings 50","test":"vitest run","build":"vite build","test:ui":"vitest --ui","lint:fix":"eslint src --ext js,jsx --fix","changelog":"bash scripts/generate-changelog.sh","preversion":"npm run lint && npm run test","test:watch":"vitest","postversion":"git push && git push --tags","test:coverage":"vitest run --coverage","prepublishOnly":"npm run lint && npm run test && npm run build","release:preview":"node scripts/preview-release-notes.js"},"_npmUser":{"name":"ahmedzidan","email":"dev.ahmed.zidan@gmail.com"},"repository":{"url":"git+https://github.com/AFZidan/react-page-builder.git","type":"git"},"_npmVersion":"10.8.2","description":"A visual drag-and-drop page builder for React with support for custom components, responsive design, and advanced styling","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.23.8","lucide-react":"^0.546.0","react-colorful":"^5.6.1","react-markdown":"^9.0.1","react-hook-form":"^7.51.5","@heroicons/react":"^2.2.0","@hookform/resolvers":"^3.4.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","jsdom":"^23.0.1","eslint":"^8.55.0","vitest":"^1.1.0","@vitest/ui":"^1.1.0","@vitest/coverage-v8":"^1.1.0","eslint-plugin-react":"^7.33.2","@vitejs/plugin-react":"^4.2.1","@testing-library/react":"^14.1.2","@testing-library/jest-dom":"^6.1.5","eslint-plugin-react-hooks":"^4.6.0","@testing-library/user-event":"^14.5.1"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"peerDependenciesMeta":{"daisyui":{"optional":true},"tailwindcss":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react-page-builder_1.0.4_1760831493052_0.7926082877585239","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@ahmedzidan/react-page-builder","version":"1.0.6","keywords":["page-builder","visual-editor","drag-and-drop","react","wysiwyg","website-builder","cms","responsive-design","bootstrap-grid","component-library"],"author":{"name":"Ahmed Zidan"},"license":"MIT","_id":"@ahmedzidan/react-page-builder@1.0.6","maintainers":[{"name":"ahmedzidan","email":"dev.ahmed.zidan@gmail.com"}],"homepage":"https://github.com/AFZidan/react-page-builder#readme","bugs":{"url":"https://github.com/AFZidan/react-page-builder/issues"},"dist":{"shasum":"2e8f9cb2af84574f41b9fbe491d15b25f83b8171","tarball":"https://registry.npmjs.org/@ahmedzidan/react-page-builder/-/react-page-builder-1.0.6.tgz","fileCount":21,"integrity":"sha512-yW250FFrCoVKa0nJk+dkzASECAVBzOiIKU7drc7Vsv7Bn6GW3H7cspiHYJQu63UA/uWUjJiHtRj2SAE1g+pBjQ==","signatures":[{"sig":"MEUCIQDenBd3oI+MUTRTf3iYZbTCPOpLDra48lenjw4XcG48OAIgPxPDHIXaGEsANc1UlwiAL0ryYA1K1b19GKvgyYqP6mI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":856288},"main":"./dist/page-builder.cjs","types":"./dist/index.d.ts","module":"./dist/page-builder.es.js","exports":{".":{"import":"./dist/page-builder.es.js","require":"./dist/page-builder.cjs"},"./styles.css":"./dist/style.css"},"gitHead":"5556d592fa98a52d48028cb3e16ed8cdeb7f8d3c","scripts":{"dev":"vite build --watch","lint":"eslint src --ext js,jsx --report-unused-disable-directives --max-warnings 50","test":"vitest run","build":"vite build","test:ui":"vitest --ui","lint:fix":"eslint src --ext js,jsx --fix","changelog":"bash scripts/generate-changelog.sh","preversion":"npm run lint && npm run test","test:watch":"vitest","postversion":"git push && git push --tags","test:coverage":"vitest run --coverage","prepublishOnly":"npm run lint && npm run test && npm run build","release:preview":"node scripts/preview-release-notes.js"},"_npmUser":{"name":"ahmedzidan","email":"dev.ahmed.zidan@gmail.com"},"repository":{"url":"git+https://github.com/AFZidan/react-page-builder.git","type":"git"},"_npmVersion":"10.8.2","description":"A visual drag-and-drop page builder for React with support for custom components, responsive design, and advanced styling","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.23.8","lucide-react":"^0.546.0","react-colorful":"^5.6.1","react-markdown":"^9.0.1","react-hook-form":"^7.51.5","@heroicons/react":"^2.2.0","@hookform/resolvers":"^3.4.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","jsdom":"^23.0.1","eslint":"^8.55.0","vitest":"^1.1.0","@vitest/ui":"^1.1.0","@vitest/coverage-v8":"^1.1.0","eslint-plugin-react":"^7.33.2","@vitejs/plugin-react":"^4.2.1","@testing-library/react":"^14.1.2","@testing-library/jest-dom":"^6.1.5","eslint-plugin-react-hooks":"^4.6.0","@testing-library/user-event":"^14.5.1"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"peerDependenciesMeta":{"daisyui":{"optional":true},"tailwindcss":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react-page-builder_1.0.6_1760832208445_0.6836006209446048","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@ahmedzidan/react-page-builder","version":"1.0.7","keywords":["page-builder","visual-editor","drag-and-drop","react","wysiwyg","website-builder","cms","responsive-design","bootstrap-grid","component-library"],"author":{"name":"Ahmed Zidan"},"license":"MIT","_id":"@ahmedzidan/react-page-builder@1.0.7","maintainers":[{"name":"ahmedzidan","email":"dev.ahmed.zidan@gmail.com"}],"homepage":"https://github.com/AFZidan/react-page-builder#readme","bugs":{"url":"https://github.com/AFZidan/react-page-builder/issues"},"dist":{"shasum":"35eaa367c2fcdac1a9124f7e82e14cecd85cf397","tarball":"https://registry.npmjs.org/@ahmedzidan/react-page-builder/-/react-page-builder-1.0.7.tgz","fileCount":21,"integrity":"sha512-NGrkaY5QW4Dux0qY4UplzOurr7Y9EDJ6HivODhmZQIX3uz3PWSn8/pQGMSNdYhxrpHvS0RBTeEspYX/x6uC8cg==","signatures":[{"sig":"MEQCIApzc0OXokiFTnmHsclrMiisLR0zy4B05+f16lOQxH9XAiBSpkHQtQah1WMQmwicD2J7ECfnMxW6fAILQ9IB6Bym7w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":853110},"main":"./dist/page-builder.cjs","types":"./dist/index.d.ts","module":"./dist/page-builder.es.js","exports":{".":{"import":"./dist/page-builder.es.js","require":"./dist/page-builder.cjs"},"./styles.css":"./dist/style.css"},"gitHead":"a1401feaf3cf45e695f67a1325265b59f2c989c5","scripts":{"dev":"vite build --watch","lint":"eslint src --ext js,jsx --report-unused-disable-directives --max-warnings 50","test":"vitest run","build":"vite build","test:ui":"vitest --ui","lint:fix":"eslint src --ext js,jsx --fix","changelog":"bash scripts/generate-changelog.sh","preversion":"npm run lint && npm run test","test:watch":"vitest","postversion":"git push && git push --tags","test:coverage":"vitest run --coverage","prepublishOnly":"npm run lint && npm run test && npm run build","release:preview":"node scripts/preview-release-notes.js"},"_npmUser":{"name":"ahmedzidan","email":"dev.ahmed.zidan@gmail.com"},"repository":{"url":"git+https://github.com/AFZidan/react-page-builder.git","type":"git"},"_npmVersion":"10.8.2","description":"A visual drag-and-drop page builder for React with support for custom components, responsive design, and advanced styling","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.23.8","lucide-react":"^0.546.0","react-colorful":"^5.6.1","react-markdown":"^9.0.1","react-hook-form":"^7.51.5","@heroicons/react":"^2.2.0","@hookform/resolvers":"^3.4.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","jsdom":"^23.0.1","eslint":"^8.55.0","vitest":"^1.1.0","@vitest/ui":"^1.1.0","@vitest/coverage-v8":"^1.1.0","eslint-plugin-react":"^7.33.2","@vitejs/plugin-react":"^4.2.1","@testing-library/react":"^14.1.2","@testing-library/jest-dom":"^6.1.5","eslint-plugin-react-hooks":"^4.6.0","@testing-library/user-event":"^14.5.1"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"peerDependenciesMeta":{"daisyui":{"optional":true},"tailwindcss":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react-page-builder_1.0.7_1760833566980_0.38895546959473015","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@ahmedzidan/react-page-builder","version":"1.0.8","keywords":["page-builder","visual-editor","drag-and-drop","react","wysiwyg","website-builder","cms","responsive-design","bootstrap-grid","component-library"],"author":{"name":"Ahmed Zidan"},"license":"MIT","_id":"@ahmedzidan/react-page-builder@1.0.8","maintainers":[{"name":"ahmedzidan","email":"dev.ahmed.zidan@gmail.com"}],"homepage":"https://github.com/AFZidan/react-page-builder#readme","bugs":{"url":"https://github.com/AFZidan/react-page-builder/issues"},"dist":{"shasum":"79b67a484119a7d22dfabec22c487e4cdb87774e","tarball":"https://registry.npmjs.org/@ahmedzidan/react-page-builder/-/react-page-builder-1.0.8.tgz","fileCount":21,"integrity":"sha512-Sz/75gr5nk83hiT5u6z9hdEHA4rdXjoxdhVbu1eyi8fNO+9XJYUsYxdm6mmHnjXKSDQwy1L1CwrhpW4GT2gaIA==","signatures":[{"sig":"MEUCIQDQiUbs/po3qRjHBys+K1gNMaItv1q2NSqt0Pn/IhIl9gIgatagoQq/jHYhqR6dPQxvzkJE0p7VUfWY6HUcK1/xWPM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":853110},"main":"./dist/page-builder.cjs","types":"./dist/index.d.ts","module":"./dist/page-builder.es.js","exports":{".":{"import":"./dist/page-builder.es.js","require":"./dist/page-builder.cjs"},"./styles.css":"./dist/style.css"},"gitHead":"cf1b34a4aca8f9fbf6429a5640896e806ab843f2","scripts":{"dev":"vite build --watch","lint":"eslint src --ext js,jsx --report-unused-disable-directives --max-warnings 50","test":"vitest run","build":"vite build","test:ui":"vitest --ui","lint:fix":"eslint src --ext js,jsx --fix","changelog":"bash scripts/generate-changelog.sh","preversion":"npm run lint && npm run test","test:watch":"vitest","postversion":"git push && git push --tags","test:coverage":"vitest run --coverage","prepublishOnly":"npm run lint && npm run test && npm run build","release:preview":"node scripts/preview-release-notes.js"},"_npmUser":{"name":"ahmedzidan","email":"dev.ahmed.zidan@gmail.com"},"repository":{"url":"git+https://github.com/AFZidan/react-page-builder.git","type":"git"},"_npmVersion":"10.8.2","description":"A visual drag-and-drop page builder for React with support for custom components, responsive design, and advanced styling","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.23.8","lucide-react":"^0.546.0","react-colorful":"^5.6.1","react-markdown":"^9.0.1","react-hook-form":"^7.51.5","@heroicons/react":"^2.2.0","@hookform/resolvers":"^3.4.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","jsdom":"^23.0.1","eslint":"^8.55.0","vitest":"^1.1.0","@vitest/ui":"^1.1.0","@vitest/coverage-v8":"^1.1.0","eslint-plugin-react":"^7.33.2","@vitejs/plugin-react":"^4.2.1","@testing-library/react":"^14.1.2","@testing-library/jest-dom":"^6.1.5","eslint-plugin-react-hooks":"^4.6.0","@testing-library/user-event":"^14.5.1"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"peerDependenciesMeta":{"daisyui":{"optional":true},"tailwindcss":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react-page-builder_1.0.8_1760834085246_0.9899926908737615","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"@ahmedzidan/react-page-builder","version":"1.0.9","keywords":["page-builder","visual-editor","drag-and-drop","react","wysiwyg","website-builder","cms","responsive-design","bootstrap-grid","component-library"],"author":{"name":"Ahmed Zidan"},"license":"MIT","_id":"@ahmedzidan/react-page-builder@1.0.9","maintainers":[{"name":"ahmedzidan","email":"dev.ahmed.zidan@gmail.com"}],"homepage":"https://github.com/AFZidan/react-page-builder#readme","bugs":{"url":"https://github.com/AFZidan/react-page-builder/issues"},"dist":{"shasum":"b19729fdc58c57947fb55560859206855996f7fb","tarball":"https://registry.npmjs.org/@ahmedzidan/react-page-builder/-/react-page-builder-1.0.9.tgz","fileCount":21,"integrity":"sha512-DEM1/inNlIQQqnIiOqHJTu9Bp4F+K+BH/pNHrJVv82ppaoSjovJIsVGZ7amJx8nw6sbJMlaUona1tfA0kt8cig==","signatures":[{"sig":"MEQCIEQy2zDb4hTwr5J20gbA/YZmkmJAHLlq7RhaxhDFNIAfAiBUxsk6kfYd1aHqUyRfx5J+kNHE6XsAFXIrw7t0oIGqrQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":853404},"main":"./dist/page-builder.cjs","types":"./dist/index.d.ts","module":"./dist/page-builder.es.js","exports":{".":{"import":"./dist/page-builder.es.js","require":"./dist/page-builder.cjs"},"./styles.css":"./dist/style.css"},"gitHead":"d054284e92ccdb2ef73f589f413394b0bd386d30","scripts":{"dev":"vite build --watch","lint":"eslint src --ext js,jsx --report-unused-disable-directives --max-warnings 50","test":"vitest run","build":"vite build","test:ui":"vitest --ui","lint:fix":"eslint src --ext js,jsx --fix","changelog":"bash scripts/generate-changelog.sh","preversion":"npm run lint && npm run test","test:watch":"vitest","postversion":"git push && git push --tags","test:coverage":"vitest run --coverage","prepublishOnly":"npm run lint && npm run test && npm run build","release:preview":"node scripts/preview-release-notes.js"},"_npmUser":{"name":"ahmedzidan","email":"dev.ahmed.zidan@gmail.com"},"repository":{"url":"git+https://github.com/AFZidan/react-page-builder.git","type":"git"},"_npmVersion":"10.8.2","description":"A visual drag-and-drop page builder for React with support for custom components, responsive design, and advanced styling","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.23.8","lucide-react":"^0.546.0","react-colorful":"^5.6.1","react-markdown":"^9.0.1","react-hook-form":"^7.51.5","@heroicons/react":"^2.2.0","@hookform/resolvers":"^3.4.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","jsdom":"^23.0.1","eslint":"^8.55.0","vitest":"^1.1.0","@vitest/ui":"^1.1.0","@vitest/coverage-v8":"^1.1.0","eslint-plugin-react":"^7.33.2","@vitejs/plugin-react":"^4.2.1","@testing-library/react":"^14.1.2","@testing-library/jest-dom":"^6.1.5","eslint-plugin-react-hooks":"^4.6.0","@testing-library/user-event":"^14.5.1"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"peerDependenciesMeta":{"daisyui":{"optional":true},"tailwindcss":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react-page-builder_1.0.9_1760834128498_0.6593277789656302","host":"s3://npm-registry-packages-npm-production"}},"1.0.13":{"name":"@ahmedzidan/react-page-builder","version":"1.0.13","keywords":["page-builder","visual-editor","drag-and-drop","react","wysiwyg","website-builder","cms","responsive-design","bootstrap-grid","component-library"],"author":{"name":"Ahmed Zidan"},"license":"MIT","_id":"@ahmedzidan/react-page-builder@1.0.13","maintainers":[{"name":"ahmedzidan","email":"dev.ahmed.zidan@gmail.com"}],"homepage":"https://github.com/AFZidan/react-page-builder#readme","bugs":{"url":"https://github.com/AFZidan/react-page-builder/issues"},"dist":{"shasum":"2cf040fedc8f22b0049f6c7caa49ce9a451a52f1","tarball":"https://registry.npmjs.org/@ahmedzidan/react-page-builder/-/react-page-builder-1.0.13.tgz","fileCount":17,"integrity":"sha512-QdlOQkreGYiHUSBI5xw/QplXfYDhbwhi4QhSZCPytFwWD3jUJ1cLi+3a4n8YPl8kqLP3SSAaX8p0MKOgLZ1BhA==","signatures":[{"sig":"MEQCIBetRfg4YL33g4H5IcbFcgLEXRojju2G3LuvYvxytnKVAiBNtzWJtoOHmmeySe3Z/W3WIbCvGodt3Fb/03l52dd3dA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":931208},"main":"./dist/page-builder.cjs","types":"./dist/index.d.ts","module":"./dist/page-builder.es.js","exports":{".":{"import":"./dist/page-builder.es.js","require":"./dist/page-builder.cjs"},"./styles.css":"./dist/style.css"},"gitHead":"6439bd97fd60120e09c374a48cfc736bb7f81fdc","scripts":{"dev":"vite build --watch","lint":"eslint src --max-warnings 50","test":"vitest run","build":"vite build","test:ui":"vitest --ui","version":"git add package.json","lint:fix":"eslint src --fix","changelog":"bash scripts/generate-changelog.sh","preversion":"npm run build","test:watch":"vitest","postversion":"git push && git push --tags","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","release:preview":"node scripts/preview-release-notes.js"},"_npmUser":{"name":"ahmedzidan","email":"dev.ahmed.zidan@gmail.com"},"repository":{"url":"git+https://github.com/AFZidan/react-page-builder.git","type":"git"},"_npmVersion":"10.8.2","description":"A visual drag-and-drop page builder for React with support for custom components, responsive design, and advanced styling","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.23.8","lucide-react":"^0.546.0","react-colorful":"^5.6.1","react-markdown":"^9.0.1","react-hook-form":"^7.51.5","@heroicons/react":"^2.2.0","@hookform/resolvers":"^3.4.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","jsdom":"^23.0.1","eslint":"^8.55.0","terser":"^5.27.0","vitest":"^1.1.0","@vitest/ui":"^1.1.0","@vitest/coverage-v8":"^1.1.0","eslint-plugin-react":"^7.33.2","@vitejs/plugin-react":"^4.2.1","@testing-library/react":"^14.1.2","@testing-library/jest-dom":"^6.1.5","eslint-plugin-react-hooks":"^4.6.0","@testing-library/user-event":"^14.5.1"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"peerDependenciesMeta":{"daisyui":{"optional":true},"tailwindcss":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react-page-builder_1.0.13_1760838505178_0.8563342797660978","host":"s3://npm-registry-packages-npm-production"}},"1.0.12":{"name":"@ahmedzidan/react-page-builder","version":"1.0.12","description":"A visual drag-and-drop page builder for React with support for custom components, responsive design, and advanced styling","main":"./dist/page-builder.cjs","module":"./dist/page-builder.es.js","types":"./dist/index.d.ts","exports":{".":{"import":"./dist/page-builder.es.js","require":"./dist/page-builder.cjs"},"./styles.css":"./dist/style.css"},"scripts":{"build":"vite build","dev":"vite build --watch","lint":"eslint src --max-warnings 50","lint:fix":"eslint src --fix","test":"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage","test:ui":"vitest --ui","changelog":"bash scripts/generate-changelog.sh","release:preview":"node scripts/preview-release-notes.js","prepublishOnly":"npm run build","preversion":"echo 'Skipping lint and test for now'","postversion":"echo 'Version updated successfully'"},"keywords":["page-builder","visual-editor","drag-and-drop","react","wysiwyg","website-builder","cms","responsive-design","bootstrap-grid","component-library"],"author":{"name":"Ahmed Zidan"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/AFZidan/react-page-builder.git"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"peerDependenciesMeta":{"tailwindcss":{"optional":true},"daisyui":{"optional":true}},"dependencies":{"react-markdown":"^9.0.1","react-colorful":"^5.6.1","@heroicons/react":"^2.2.0","lucide-react":"^0.546.0","react-hook-form":"^7.51.5","@hookform/resolvers":"^3.4.2","zod":"^3.23.8"},"devDependencies":{"@testing-library/jest-dom":"^6.1.5","@testing-library/react":"^14.1.2","@testing-library/user-event":"^14.5.1","@vitejs/plugin-react":"^4.2.1","@vitest/coverage-v8":"^1.1.0","@vitest/ui":"^1.1.0","eslint":"^8.55.0","eslint-plugin-react":"^7.33.2","eslint-plugin-react-hooks":"^4.6.0","jsdom":"^23.0.1","terser":"^5.27.0","vite":"^5.0.0","vitest":"^1.1.0"},"_id":"@ahmedzidan/react-page-builder@1.0.12","gitHead":"6a9a749dac36c98f9d5bfe77e9a3c0b9ed2c1f40","bugs":{"url":"https://github.com/AFZidan/react-page-builder/issues"},"homepage":"https://github.com/AFZidan/react-page-builder#readme","_nodeVersion":"18.20.8","_npmVersion":"10.8.2","dist":{"integrity":"sha512-N8GXaZdtabIeE0dZIR5ilGZF54efgZk50mNQrfiFTSHEgYXwvhLpevLi3ZVNJnNQZaDbluwe+iJL8Cjnjfyx2g==","shasum":"3384a32451487f50a331bf25a7b3c1741feaede2","tarball":"https://registry.npmjs.org/@ahmedzidan/react-page-builder/-/react-page-builder-1.0.12.tgz","fileCount":17,"unpackedSize":931201,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDrmfsBOPI7mPYn+ADpxoj9eoLcuLplcSr5QOy5f51H0wIgYIDgneonI0WjtJaQJgxcdlrKIqqrjL4W9P+Zm0YINdU="}]},"_npmUser":{"name":"ahmedzidan","email":"dev.ahmed.zidan@gmail.com"},"directories":{},"maintainers":[{"name":"ahmedzidan","email":"dev.ahmed.zidan@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/react-page-builder_1.0.12_1760838507071_0.1052368207442822"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-18T22:56:22.544Z","modified":"2025-10-19T01:48:27.581Z","1.0.0":"2025-10-18T22:56:22.924Z","1.0.1":"2025-10-18T23:00:14.039Z","1.0.2":"2025-10-18T23:11:46.217Z","1.0.3":"2025-10-18T23:34:51.994Z","1.0.4":"2025-10-18T23:51:33.262Z","1.0.6":"2025-10-19T00:03:28.693Z","1.0.7":"2025-10-19T00:26:07.238Z","1.0.8":"2025-10-19T00:34:45.510Z","1.0.9":"2025-10-19T00:35:28.747Z","1.0.13":"2025-10-19T01:48:25.389Z","1.0.12":"2025-10-19T01:48:27.352Z"},"bugs":{"url":"https://github.com/AFZidan/react-page-builder/issues"},"author":{"name":"Ahmed Zidan"},"license":"MIT","homepage":"https://github.com/AFZidan/react-page-builder#readme","keywords":["page-builder","visual-editor","drag-and-drop","react","wysiwyg","website-builder","cms","responsive-design","bootstrap-grid","component-library"],"repository":{"type":"git","url":"git+https://github.com/AFZidan/react-page-builder.git"},"description":"A visual drag-and-drop page builder for React with support for custom components, responsive design, and advanced styling","maintainers":[{"name":"ahmedzidan","email":"dev.ahmed.zidan@gmail.com"}],"readme":"# @ahmedzidan/page-builder\n\nA powerful visual drag-and-drop page builder for React applications with advanced features and Bootstrap grid support.\n\n## ✨ Features\n\n- 🎨 **Visual Drag-and-Drop** - Intuitive interface with drag from anywhere\n- 📱 **Responsive Design** - Device preview (Mobile/Tablet/Desktop) with zoom\n- 📐 **12-Column Grid** - Bootstrap-compatible grid overlay for precise alignment\n- 🖼️ **Rich Components** - Text, images, buttons, containers, forms, icons, embeds, HTML blocks\n- 🎨 **Advanced Styling** - Colors, typography, spacing, borders, shadows with visual controls\n- 📏 **Smart Snapping** - Magnetic alignment guides and grid snapping\n- 🖱️ **Corner Resize** - Intuitive resize handles on all elements\n- 📦 **Auto-Container Sizing** - Containers automatically fit their children\n- 🔧 **Context Menu** - Right-click for quick actions\n- ⌨️ **Keyboard Shortcuts** - Enter to edit, Delete to remove, Esc to deselect\n- 🌈 **Brand Colors** - Integrate your brand colors into the color picker\n- 🔄 **Live Preview** - Real-time updates as you design\n\n## 📦 Installation\n\n```bash\nnpm install @ahmedzidan/page-builder\n# or\nyarn add @ahmedzidan/page-builder\n# or\npnpm add @ahmedzidan/page-builder\n```\n\n### Peer Dependencies\n\nThis package requires:\n\n- `react` ^18.0.0\n- `react-dom` ^18.0.0\n\nOptional (for full styling support):\n\n- `tailwindcss` ^3.0.0\n- `daisyui` ^4.0.0\n\n## 🚀 Quick Start\n\n### Basic Usage\n\n```jsx\nimport { PageBuilder } from '@ahmedzidan/page-builder';\nimport '@ahmedzidan/page-builder/styles.css';\n\nfunction App() {\n  const [components, setComponents] = useState([]);\n\n  const handleSave = async (pageData) => {\n    // Save to your backend\n    console.log('Saving page:', pageData);\n    await fetch('/api/pages', {\n      method: 'POST',\n      headers: { 'Content-Type': 'application/json' },\n      body: JSON.stringify(pageData)\n    });\n  };\n\n  return (\n    <PageBuilder\n      pageId=\"my-page-123\"\n      initialComponents={components}\n      onSave={handleSave}\n      onBack={() => window.history.back()}\n      pageName=\"My Awesome Page\"\n      pageSlug=\"/my-awesome-page\"\n    />\n  );\n}\n```\n\n### Rendering Pages\n\n```jsx\nimport { Renderer } from '@ahmedzidan/page-builder';\n\nfunction PublicPage({ pageData }) {\n  return (\n    <div>\n      <Renderer components={pageData.components} />\n    </div>\n  );\n}\n```\n\n## 📖 API Reference\n\n### PageBuilder Component\n\n| Prop | Type | Required | Default | Description |\n|------|------|----------|---------|-------------|\n| `pageId` | string | Yes | - | Unique identifier for the page |\n| `initialComponents` | array | Yes | `[]` | Initial component tree |\n| `onSave` | function | Yes | - | Callback when save button is clicked |\n| `onBack` | function | No | - | Callback for back button |\n| `pageName` | string | No | `\"Page Builder\"` | Display name for the page |\n| `pageSlug` | string | No | `\"\"` | URL slug for the page |\n| `brandColors` | array | No | `[]` | Array of hex color strings for color picker |\n| `iconLibraries` | object | No | `{heroicons: true, lucide: true}` | Enable/disable icon libraries |\n\n### Renderer Component\n\n| Prop | Type | Required | Description |\n|------|------|----------|-------------|\n| `components` | array | Yes | Component tree to render |\n\n### Component Data Structure\n\n```typescript\ninterface Component {\n  id: string;\n  type: string;\n  content?: string;\n  className?: string;\n  width?: string;\n  height?: string;\n  position?: { x: number; y: number };\n  styles?: {\n    backgroundColor?: string;\n    color?: string;\n    fontSize?: string;\n    fontWeight?: string;\n    padding?: string;\n    margin?: string;\n    borderWidth?: string;\n    borderColor?: string;\n    borderRadius?: string;\n    // ... more style properties\n  };\n  children?: Component[];\n}\n```\n\n## 🎨 Styling\n\nThe package includes minimal CSS for core functionality. For full styling support:\n\n1. **Install Tailwind CSS and DaisyUI:**\n\n```bash\nnpm install -D tailwindcss daisyui\n```\n\n2. **Configure Tailwind:**\n\n```js\n// tailwind.config.js\nmodule.exports = {\n  content: [\n    './src/**/*.{js,jsx,ts,tsx}',\n    './node_modules/@ahmedzidan/page-builder/**/*.{js,jsx}'\n  ],\n  plugins: [require('daisyui')],\n}\n```\n\n3. **Import styles:**\n\n```jsx\nimport '@ahmedzidan/page-builder/styles.css';\n```\n\n## 🎯 Examples\n\n### With Brand Colors\n\n```jsx\n<PageBuilder\n  pageId=\"branded-page\"\n  initialComponents={[]}\n  onSave={handleSave}\n  brandColors={['#3b82f6', '#10b981', '#f59e0b', '#ef4444']}\n  pageName=\"Branded Page\"\n/>\n```\n\n### Custom Save Handler\n\n```jsx\nconst handleSave = async (pageData) => {\n  try {\n    const response = await api.post('/pages', {\n      name: pageData.pageName,\n      slug: pageData.pageSlug,\n      canvasJson: {\n        components: pageData.components\n      }\n    });\n    \n    if (response.ok) {\n      toast.success('Page saved!');\n    }\n  } catch (error) {\n    toast.error('Failed to save page');\n  }\n};\n```\n\n### With Custom Back Navigation\n\n```jsx\nimport { useNavigate } from 'react-router-dom';\n\nfunction MyPageBuilder() {\n  const navigate = useNavigate();\n  \n  return (\n    <PageBuilder\n      pageId=\"my-page\"\n      initialComponents={[]}\n      onSave={handleSave}\n      onBack={() => navigate('/admin/pages')}\n      pageName=\"My Page\"\n    />\n  );\n}\n```\n\n## ⌨️ Keyboard Shortcuts\n\n| Shortcut | Action |\n|----------|--------|\n| Click + Drag | Drag element from anywhere |\n| Double Click | Edit text element |\n| Right Click | Open context menu |\n| Enter | Edit selected text element |\n| Delete | Delete selected element |\n| Escape | Deselect / Close menu |\n| Alt + Drag | Disable snapping |\n\n## 🛠️ Toolbar Controls\n\n- **Device Selector** - Switch between Mobile (375px), Tablet (768px), Desktop (1440px)\n- **Zoom Controls** - Zoom from 50% to 150%\n- **Grid Toggle** - Show/hide 12-column Bootstrap grid\n- **Full Width** - Hide sidebars for maximum canvas space\n- **Save Button** - Trigger save callback\n\n## 📦 Available Components\n\n### Layout\n\n- **Container** - Generic container for grouping elements\n- **2 Columns** - Two-column layout\n\n### Content\n\n- **Heading** - H1-H6 headings\n- **Text** - Paragraph text with markdown support\n- **Button** - Call-to-action buttons\n- **Image** - Images with resize and positioning\n\n### Spacing\n\n- **Divider** - Horizontal divider line\n- **Spacer** - Vertical spacing element\n\n### Advanced\n\n- **HTML Block** - Custom HTML content\n- **Icon** - Icons from Heroicons or Lucide libraries\n- **Embed** - YouTube, Google Maps, or custom iframes\n\n### Forms\n\n- **Form Container** - Form wrapper\n- **Input Field** - Text inputs\n- **Text Area** - Multi-line text input\n- **Dropdown** - Select dropdown\n- **Checkbox** - Single checkbox\n- **Radio Group** - Radio button group\n- **File Upload** - File input\n- **Date Picker** - Date input\n- **Submit Button** - Form submit button\n\n## 🤝 Contributing\n\nContributions are welcome! Please read our [Contributing Guide](CONTRIBUTING.md) for details.\n\n## 📄 License\n\nMIT © Zidan\n\n## 📚 Documentation\n\nFor comprehensive documentation, examples, and integration guides:\n\n- **[📖 Complete Documentation](docs/README.md)** - Full documentation index\n- **[🚀 Quick Start Guide](docs/PAGE_BUILDER_QUICK_START.md)** - Get started in 5 minutes\n- **[📋 API Reference](docs/PAGE_BUILDER_API_REFERENCE.md)** - Complete TypeScript interfaces\n- **[💡 Integration Examples](docs/PAGE_BUILDER_INTEGRATION_EXAMPLES.md)** - Real-world implementations\n\n## 🔗 Links\n\n- [Documentation](docs/README.md)\n- [Issues](https://github.com/AFZidan/react-page-builder/issues)\n- [Changelog](CHANGELOG.md)\n\n## 💡 Tips\n\n1. Use the 12-column grid overlay for precise alignment\n2. Hold Alt while dragging to disable snapping\n3. Right-click elements for quick actions\n4. Use device preview to test responsive designs\n5. Brand colors appear first in the color picker\n6. Container elements auto-resize to fit children\n7. Press Enter to edit text elements quickly\n8. Use full-width mode for complex designs\n\n## 🐛 Troubleshooting\n\n### Styles not appearing?\n\nMake sure you've imported the CSS file and configured Tailwind properly.\n\n### Icons not showing?\n\nEnsure `@heroicons/react` and `lucide-react` are installed.\n\n### Build errors?\n\nCheck that all peer dependencies are installed with compatible versions.\n\n## 📧 Support\n\nFor support, email <support@hizidan.com> or open an issue on GitHub.\n\n---\n\nBuilt with ❤️ by Zidan\n","readmeFilename":"README.md"}