@vikukumar/propvault 0.1.5 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +3 -3
- package/.next/prerender-manifest.json +3 -3
- package/.next/server/app/(website)/[...slug]/page/server-reference-manifest.json +4 -4
- package/.next/server/app/(website)/[...slug]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(website)/blog/[slug]/page/server-reference-manifest.json +1 -1
- package/.next/server/app/(website)/blog/[slug]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(website)/contact/page/server-reference-manifest.json +1 -1
- package/.next/server/app/(website)/contact/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(website)/page/server-reference-manifest.json +5 -5
- package/.next/server/app/(website)/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(website)/projects/[slug]/page/server-reference-manifest.json +1 -1
- package/.next/server/app/(website)/projects/[slug]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +1 -1
- package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/admin/cms/email-templates/page/server-reference-manifest.json +2 -2
- package/.next/server/app/admin/cms/email-templates/page_client-reference-manifest.js +1 -1
- package/.next/server/app/admin/cms/menus/page/server-reference-manifest.json +3 -3
- package/.next/server/app/admin/cms/menus/page_client-reference-manifest.js +1 -1
- package/.next/server/app/admin/cms/pages/[id]/edit/page/server-reference-manifest.json +6 -6
- package/.next/server/app/admin/cms/pages/[id]/edit/page_client-reference-manifest.js +1 -1
- package/.next/server/app/admin/cms/pages/new/page/server-reference-manifest.json +1 -1
- package/.next/server/app/admin/cms/pages/new/page_client-reference-manifest.js +1 -1
- package/.next/server/app/admin/cms/pages/page/server-reference-manifest.json +2 -2
- package/.next/server/app/admin/cms/pages/page_client-reference-manifest.js +1 -1
- package/.next/server/app/admin/cms/redirects/page/server-reference-manifest.json +3 -3
- package/.next/server/app/admin/cms/redirects/page_client-reference-manifest.js +1 -1
- package/.next/server/app/admin/leads/[id]/page/server-reference-manifest.json +2 -2
- package/.next/server/app/admin/leads/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/admin/page/server-reference-manifest.json +3 -3
- package/.next/server/app/admin/page_client-reference-manifest.js +1 -1
- package/.next/server/app/admin/plugins/page/server-reference-manifest.json +5 -5
- package/.next/server/app/admin/plugins/page_client-reference-manifest.js +1 -1
- package/.next/server/app/admin/profile/page/server-reference-manifest.json +2 -2
- package/.next/server/app/admin/profile/page_client-reference-manifest.js +1 -1
- package/.next/server/app/admin/projects/edit/[id]/page/server-reference-manifest.json +2 -2
- package/.next/server/app/admin/projects/edit/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/admin/projects/new/page/server-reference-manifest.json +2 -2
- package/.next/server/app/admin/projects/new/page_client-reference-manifest.js +1 -1
- package/.next/server/app/admin/settings/analytics/page/server-reference-manifest.json +1 -1
- package/.next/server/app/admin/settings/analytics/page.js.nft.json +1 -1
- package/.next/server/app/admin/settings/analytics/page_client-reference-manifest.js +1 -1
- package/.next/server/app/admin/settings/api-keys/page/server-reference-manifest.json +102 -102
- package/.next/server/app/admin/settings/api-keys/page_client-reference-manifest.js +1 -1
- package/.next/server/app/admin/settings/branding/page/server-reference-manifest.json +1 -1
- package/.next/server/app/admin/settings/branding/page.js.nft.json +1 -1
- package/.next/server/app/admin/settings/branding/page_client-reference-manifest.js +1 -1
- package/.next/server/app/admin/settings/general/page/server-reference-manifest.json +1 -1
- package/.next/server/app/admin/settings/general/page.js.nft.json +1 -1
- package/.next/server/app/admin/settings/general/page_client-reference-manifest.js +1 -1
- package/.next/server/app/admin/settings/security/page/server-reference-manifest.json +1 -1
- package/.next/server/app/admin/settings/security/page.js.nft.json +1 -1
- package/.next/server/app/admin/settings/security/page_client-reference-manifest.js +1 -1
- package/.next/server/app/admin/settings/seo/page/server-reference-manifest.json +1 -1
- package/.next/server/app/admin/settings/seo/page.js.nft.json +1 -1
- package/.next/server/app/admin/settings/seo/page_client-reference-manifest.js +1 -1
- package/.next/server/app/admin/settings/smtp/page/server-reference-manifest.json +1 -1
- package/.next/server/app/admin/settings/smtp/page.js.nft.json +1 -1
- package/.next/server/app/admin/settings/smtp/page_client-reference-manifest.js +1 -1
- package/.next/server/app/admin/settings/storage/page/server-reference-manifest.json +1 -1
- package/.next/server/app/admin/settings/storage/page.js.nft.json +1 -1
- package/.next/server/app/admin/settings/storage/page_client-reference-manifest.js +1 -1
- package/.next/server/app/admin/theme/page/server-reference-manifest.json +5 -5
- package/.next/server/app/admin/theme/page_client-reference-manifest.js +1 -1
- package/.next/server/app/api/upload/route.js.nft.json +1 -1
- package/.next/server/app/contact.html +2 -2
- package/.next/server/app/contact.rsc +2 -2
- package/.next/server/app/contact.segments/!KHdlYnNpdGUp/contact/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/contact.segments/!KHdlYnNpdGUp/contact.segment.rsc +1 -1
- package/.next/server/app/contact.segments/!KHdlYnNpdGUp.segment.rsc +1 -1
- package/.next/server/app/contact.segments/_full.segment.rsc +2 -2
- package/.next/server/app/contact.segments/_head.segment.rsc +1 -1
- package/.next/server/app/contact.segments/_index.segment.rsc +1 -1
- package/.next/server/app/contact.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/index.html +2 -2
- package/.next/server/app/index.rsc +11 -11
- package/.next/server/app/index.segments/!KHdlYnNpdGUp/__PAGE__.segment.rsc +11 -11
- package/.next/server/app/index.segments/!KHdlYnNpdGUp.segment.rsc +1 -1
- package/.next/server/app/index.segments/_full.segment.rsc +11 -11
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +1 -1
- package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/login.html +1 -1
- package/.next/server/app/login.rsc +1 -1
- package/.next/server/app/login.segments/_full.segment.rsc +1 -1
- package/.next/server/app/login.segments/_head.segment.rsc +1 -1
- package/.next/server/app/login.segments/_index.segment.rsc +1 -1
- package/.next/server/app/login.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/login.segments/login.segment.rsc +1 -1
- package/.next/server/app/setup/page/server-reference-manifest.json +15 -15
- package/.next/server/app/setup/page_client-reference-manifest.js +1 -1
- package/.next/server/app/setup.html +2 -2
- package/.next/server/app/setup.rsc +2 -2
- package/.next/server/app/setup.segments/_full.segment.rsc +2 -2
- package/.next/server/app/setup.segments/_head.segment.rsc +1 -1
- package/.next/server/app/setup.segments/_index.segment.rsc +1 -1
- package/.next/server/app/setup.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/setup.segments/setup.segment.rsc +1 -1
- package/.next/server/app/sitemap.xml.body +9 -9
- package/.next/server/chunks/[root-of-the-server]__0ikpexd._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__03m3xqu._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__05px_h7._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__08s00s8._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0_x-0vh._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0ae1ufj._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0b0jtbx._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0d95wm4._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0d_wuy_._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0frxadd._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0owpb-h._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1--m0t_._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__11c23n7._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__12yzdf7._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1_5z9ae._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1ijsxgu._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1mh1dn4._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1nrl0j-._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1qronyg._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1rjv73_._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1ybv0-1._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__203pgu_._.js +1 -1
- package/.next/server/chunks/ssr/_01ovwyq._.js +1 -1
- package/.next/server/chunks/ssr/_05jzsu5._.js +1 -1
- package/.next/server/chunks/ssr/_06ljqk-._.js +1 -1
- package/.next/server/chunks/ssr/_06rh1hs._.js +1 -1
- package/.next/server/chunks/ssr/_08mru_6._.js +1 -1
- package/.next/server/chunks/ssr/_09o1npz._.js +1 -1
- package/.next/server/chunks/ssr/{_1zm01h0._.js → _0d9dhlq._.js} +2 -2
- package/.next/server/chunks/ssr/_0h33iks._.js +1 -1
- package/.next/server/chunks/ssr/_0ju3jec._.js +1 -1
- package/.next/server/chunks/ssr/_0kdtd1g._.js +1 -1
- package/.next/server/chunks/ssr/_0m0s15u._.js +1 -1
- package/.next/server/chunks/ssr/_0qdyrxm._.js +1 -1
- package/.next/server/chunks/ssr/_0untlx2._.js +1 -1
- package/.next/server/chunks/ssr/{_1hb_oxg._.js → _0v1z0z-._.js} +2 -2
- package/.next/server/chunks/ssr/_0vu77cg._.js +1 -1
- package/.next/server/chunks/ssr/_0xki9b-._.js +1 -1
- package/.next/server/chunks/ssr/_1-wcqf6._.js +1 -1
- package/.next/server/chunks/ssr/_10imd--._.js +1 -1
- package/.next/server/chunks/ssr/_122ck8v._.js +1 -1
- package/.next/server/chunks/ssr/_17z_x3y._.js +1 -1
- package/.next/server/chunks/ssr/_18r74av._.js +1 -1
- package/.next/server/chunks/ssr/_1agt3s0._.js +1 -1
- package/.next/server/chunks/ssr/_1ijzz5f._.js +1 -1
- package/.next/server/chunks/ssr/_1l22w_w._.js +1 -1
- package/.next/server/chunks/ssr/_1lhtejs._.js +1 -1
- package/.next/server/chunks/ssr/_1pulrwl._.js +1 -1
- package/.next/server/chunks/ssr/_1pvmkr2._.js +1 -1
- package/.next/server/chunks/ssr/_1sseqap._.js +1 -1
- package/.next/server/chunks/ssr/_212t7ar._.js +1 -1
- package/.next/server/chunks/ssr/src_actions_cms_ts_0_rm7-x._.js +1 -1
- package/.next/server/chunks/ssr/src_app_admin_cms_pages_[id]_edit_page-editor-client_tsx_0hbosvr._.js +1 -1
- package/.next/server/chunks/ssr/src_components_admin_branding_icon-generator_tsx_0-p-crb._.js +1 -1
- package/.next/server/chunks/ssr/src_components_admin_projects_project-form_tsx_0ynt29x._.js +1 -1
- package/.next/server/chunks/ssr/src_components_admin_theme_theme-editor_tsx_0ec47ja._.js +1 -1
- package/.next/server/chunks/ssr/src_components_setup_setup-wizard_tsx_17wfyof._.js +1 -1
- package/.next/server/middleware-build-manifest.js +3 -3
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +120 -120
- package/.next/static/chunks/{2d9me2ckcnr7h.js → 04j81u4sdpfu2.js} +1 -1
- package/.next/static/chunks/{0zqog_yngqq7z.js → 0ah0kpd7ekuw1.js} +1 -1
- package/.next/static/chunks/{1q0w9ewl3z_h6.js → 0auy0r9a1q2tn.js} +1 -1
- package/.next/static/chunks/{1tbfriywhx1pb.js → 0ggovh07wwyy8.js} +1 -1
- package/.next/static/chunks/{38rdy0o7-0ox6.js → 0lis8frknimvp.js} +1 -1
- package/.next/static/chunks/{263r2j2npbofi.js → 0nsus-669a8ey.js} +1 -1
- package/.next/static/chunks/{3me6cr4hl9rom.js → 0rf2sac4cv9to.js} +1 -1
- package/.next/static/chunks/{36-tbikyofe31.js → 0xpdqt-hymrf7.js} +1 -1
- package/.next/static/chunks/{1ck9hpq1413sl.js → 1bowvtenaqsj6.js} +1 -1
- package/.next/static/chunks/{3f49air8y0adp.js → 1cjpbb6-vptf4.js} +4 -4
- package/.next/static/chunks/{20lykhw4m0xj7.js → 1hk1y1sg8lhbw.js} +1 -1
- package/.next/static/chunks/{32ewdom11wcw5.js → 1nrpg3ex2_sv_.js} +1 -1
- package/.next/static/chunks/{2kw34i4gw2ajr.js → 1sf7ew5fumaxp.js} +3 -3
- package/.next/static/chunks/{2xln3s9fcx9bl.js → 1u3legaue49ub.js} +1 -1
- package/.next/static/chunks/{2fyzgog8nf5lt.js → 1wy2lokd1l1lp.js} +1 -1
- package/.next/static/chunks/{0y4lkzby6pn69.js → 2-v2c7pmrytbo.js} +1 -1
- package/.next/static/chunks/{11pcx9jz6m8mh.js → 24pptltdm6on5.js} +1 -1
- package/.next/static/chunks/{0pwgm534jn6iw.js → 262zw0y5-stbe.js} +1 -1
- package/.next/static/chunks/{1pwy0ti-uue8r.js → 2hdi4miihh5xo.js} +1 -1
- package/.next/static/chunks/{1902bgggagxq9.js → 2mkfi4f-v_--2.js} +2 -2
- package/.next/static/chunks/{1hame1c35m1cl.js → 2uc63cmx05kds.js} +1 -1
- package/.next/static/chunks/{30qbmzgby_p2-.js → 2y63g12thk4t0.js} +1 -1
- package/.next/static/chunks/{3ibw_8tcpt3lm.js → 2zqss-359c2pk.js} +1 -1
- package/.next/static/chunks/{3ussphcvkyzyx.js → 3i5hcquiom8c0.js} +1 -1
- package/.next/static/chunks/{3kghfbcpnl0zl.js → 3xtvxy_mnp_8w.js} +1 -1
- package/.next/static/chunks/{3en21d5viwrkl.js → 41e2p0bvp89ut.js} +1 -1
- package/README.md +6 -6
- package/package.json +5 -5
- /package/.next/static/{81gZJnh1KWfMhrvOF9la3 → Q2_R7URofsFGUQNefVZtd}/_buildManifest.js +0 -0
- /package/.next/static/{81gZJnh1KWfMhrvOF9la3 → Q2_R7URofsFGUQNefVZtd}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{81gZJnh1KWfMhrvOF9la3 → Q2_R7URofsFGUQNefVZtd}/_ssgManifest.js +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
module.exports=[137936,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(211857)},713095,(a,b,c)=>{"use strict";function d(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof c}.
|
|
2
|
-
Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},848284,a=>{"use strict";var b=a.i(137936),c=a.i(118558),d=a.i(109307),e=a.i(257807),f=a.i(126883),g=a.i(778357);async function h(){let a=await (0,d.auth)();if(!a?.user?.id)throw Error("Unauthorized");if(!["super_admin","admin","editor"].includes(a.user.role))throw Error("Forbidden");return a}async function i(a){await h();let b=f.projectSchema.safeParse(a);if(!b.success)return{success:!1,error:b.error.issues[0]?.message??"Invalid data"};let d=b.data,g=await e.repositories.projects.generateUniqueSlug(d.slug??d.name),i=await e.repositories.projects.create({...d,slug:g,price_min:d.price_min.toString(),price_max:d.price_max.toString(),price_per_sqft:d.price_per_sqft?.toString()??null,latitude:d.latitude?.toString()??null,longitude:d.longitude?.toString()??null,total_units:d.total_units?.toString()??null,total_floors:d.total_floors?.toString()??null,total_towers:d.total_towers?.toString()??null,total_area_acres:d.total_area_acres?.toString()??null,open_space_percent:d.open_space_percent?.toString()??null,is_featured:d.is_featured?"1":"0",is_luxury:d.is_luxury?"1":"0",is_new_launch:d.is_new_launch?"1":"0",is_rera_registered:d.is_rera_registered?"1":"0",view_count:"0",enquiry_count:"0",currency:d.currency??"INR",country_id:d.country_id??"IN"});return(0,c.revalidatePath)("/admin/projects"),(0,c.revalidatePath)("/projects"),(0,c.revalidatePath)("/"),{success:!0,data:{id:i.id,slug:i.slug}}}async function j(a,b){await h();let d=await e.repositories.projects.findById(a);if(!d)return{success:!1,error:"Project not found"};let g=f.projectSchema.partial().safeParse(b);if(!g.success)return{success:!1,error:g.error.issues[0]?.message??"Invalid data"};let i=g.data,j={};i.name&&i.name!==d.name&&(j.slug=await e.repositories.projects.generateUniqueSlug(i.slug??i.name,a),j.old_slugs=d.slug),void 0!==i.price_min&&(j.price_min=i.price_min.toString()),void 0!==i.price_max&&(j.price_max=i.price_max.toString()),void 0!==i.is_featured&&(j.is_featured=i.is_featured?"1":"0"),void 0!==i.is_luxury&&(j.is_luxury=i.is_luxury?"1":"0"),void 0!==i.is_new_launch&&(j.is_new_launch=i.is_new_launch?"1":"0"),void 0!==i.is_rera_registered&&(j.is_rera_registered=i.is_rera_registered?"1":"0");let k=await e.repositories.projects.update(a,{...i,...j});return k?((0,c.revalidatePath)(`/admin/projects/${a}`),(0,c.revalidatePath)(`/projects/${k.slug}`),(0,c.revalidatePath)("/projects"),(0,c.revalidatePath)("/"),{success:!0,data:{slug:k.slug}}):{success:!1,error:"Failed to update project"}}async function k(a){return(await h(),await e.repositories.projects.delete(a))?((0,c.revalidatePath)("/admin/projects"),(0,c.revalidatePath)("/projects"),(0,c.revalidatePath)("/"),{success:!0}):{success:!1,error:"Project not found"}}async function l(a){await h();let b=await e.repositories.projects.update(a,{publish_status:"published",updated_at:(0,g.nowISO)()});return b?((0,c.revalidatePath)(`/projects/${b.slug}`),(0,c.revalidatePath)("/projects"),(0,c.revalidatePath)("/"),{success:!0}):{success:!1,error:"Project not found"}}async function m(a,b){return await h(),await e.repositories.projects.update(a,{is_featured:b?"1":"0"}),(0,c.revalidatePath)("/admin/projects"),(0,c.revalidatePath)("/"),(0,c.revalidatePath)("/projects"),{success:!0}}(0,a.i(713095).ensureServerEntryExports)([i,j,k,l,m]),(0,b.registerServerReference)(i,"
|
|
2
|
+
Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},848284,a=>{"use strict";var b=a.i(137936),c=a.i(118558),d=a.i(109307),e=a.i(257807),f=a.i(126883),g=a.i(778357);async function h(){let a=await (0,d.auth)();if(!a?.user?.id)throw Error("Unauthorized");if(!["super_admin","admin","editor"].includes(a.user.role))throw Error("Forbidden");return a}async function i(a){await h();let b=f.projectSchema.safeParse(a);if(!b.success)return{success:!1,error:b.error.issues[0]?.message??"Invalid data"};let d=b.data,g=await e.repositories.projects.generateUniqueSlug(d.slug??d.name),i=await e.repositories.projects.create({...d,slug:g,price_min:d.price_min.toString(),price_max:d.price_max.toString(),price_per_sqft:d.price_per_sqft?.toString()??null,latitude:d.latitude?.toString()??null,longitude:d.longitude?.toString()??null,total_units:d.total_units?.toString()??null,total_floors:d.total_floors?.toString()??null,total_towers:d.total_towers?.toString()??null,total_area_acres:d.total_area_acres?.toString()??null,open_space_percent:d.open_space_percent?.toString()??null,is_featured:d.is_featured?"1":"0",is_luxury:d.is_luxury?"1":"0",is_new_launch:d.is_new_launch?"1":"0",is_rera_registered:d.is_rera_registered?"1":"0",view_count:"0",enquiry_count:"0",currency:d.currency??"INR",country_id:d.country_id??"IN"});return(0,c.revalidatePath)("/admin/projects"),(0,c.revalidatePath)("/projects"),(0,c.revalidatePath)("/"),{success:!0,data:{id:i.id,slug:i.slug}}}async function j(a,b){await h();let d=await e.repositories.projects.findById(a);if(!d)return{success:!1,error:"Project not found"};let g=f.projectSchema.partial().safeParse(b);if(!g.success)return{success:!1,error:g.error.issues[0]?.message??"Invalid data"};let i=g.data,j={};i.name&&i.name!==d.name&&(j.slug=await e.repositories.projects.generateUniqueSlug(i.slug??i.name,a),j.old_slugs=d.slug),void 0!==i.price_min&&(j.price_min=i.price_min.toString()),void 0!==i.price_max&&(j.price_max=i.price_max.toString()),void 0!==i.is_featured&&(j.is_featured=i.is_featured?"1":"0"),void 0!==i.is_luxury&&(j.is_luxury=i.is_luxury?"1":"0"),void 0!==i.is_new_launch&&(j.is_new_launch=i.is_new_launch?"1":"0"),void 0!==i.is_rera_registered&&(j.is_rera_registered=i.is_rera_registered?"1":"0");let k=await e.repositories.projects.update(a,{...i,...j});return k?((0,c.revalidatePath)(`/admin/projects/${a}`),(0,c.revalidatePath)(`/projects/${k.slug}`),(0,c.revalidatePath)("/projects"),(0,c.revalidatePath)("/"),{success:!0,data:{slug:k.slug}}):{success:!1,error:"Failed to update project"}}async function k(a){return(await h(),await e.repositories.projects.delete(a))?((0,c.revalidatePath)("/admin/projects"),(0,c.revalidatePath)("/projects"),(0,c.revalidatePath)("/"),{success:!0}):{success:!1,error:"Project not found"}}async function l(a){await h();let b=await e.repositories.projects.update(a,{publish_status:"published",updated_at:(0,g.nowISO)()});return b?((0,c.revalidatePath)(`/projects/${b.slug}`),(0,c.revalidatePath)("/projects"),(0,c.revalidatePath)("/"),{success:!0}):{success:!1,error:"Project not found"}}async function m(a,b){return await h(),await e.repositories.projects.update(a,{is_featured:b?"1":"0"}),(0,c.revalidatePath)("/admin/projects"),(0,c.revalidatePath)("/"),(0,c.revalidatePath)("/projects"),{success:!0}}(0,a.i(713095).ensureServerEntryExports)([i,j,k,l,m]),(0,b.registerServerReference)(i,"4042d86dbff3f9c9710cf552864d5ad6ee02381634",null),(0,b.registerServerReference)(j,"60ce41ffa54cdf6bc8f12befc7a1aac2679b13fdfc",null),(0,b.registerServerReference)(k,"40b6d38e5a283c8f6e25ddb8e1a1dcc64c3c280232",null),(0,b.registerServerReference)(l,"40f2bbe8376412dec30cbba5d8b7a0adde74997191",null),(0,b.registerServerReference)(m,"607f03346f764611f2a0be42cfa5d4309a9cee56b0",null),a.s(["createProject",0,i,"updateProject",0,j])},320457,a=>{"use strict";var b=a.i(848284);a.s([],513020),a.i(513020),a.s(["4042d86dbff3f9c9710cf552864d5ad6ee02381634",()=>b.createProject,"60ce41ffa54cdf6bc8f12befc7a1aac2679b13fdfc",()=>b.updateProject],320457)}];
|
|
3
3
|
|
|
4
4
|
//# sourceMappingURL=_1ijzz5f._.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
module.exports=[137936,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(211857)},713095,(a,b,c)=>{"use strict";function d(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof c}.
|
|
2
|
-
Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},964485,a=>{"use strict";var b=a.i(306646);a.s([],446007),a.i(446007),a.s(["
|
|
2
|
+
Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},964485,a=>{"use strict";var b=a.i(306646);a.s([],446007),a.i(446007),a.s(["40829cb3fc6e4ff01751d831cd4dd52d266fef087a",()=>b.submitEnquiry],964485)},674098,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_plugins_hooks-manager_ts_04m6z7f._.js"].map(b=>a.l(b))).then(()=>b(615120)))},839090,a=>{a.v(a=>Promise.resolve().then(()=>a(780099)))}];
|
|
3
3
|
|
|
4
4
|
//# sourceMappingURL=_1l22w_w._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[79362,755137,a=>{"use strict";let b=(0,a.i(164831).default)("circle-check-big",[["path",{d:"M21.801 10A10 10 0 1 1 17 3.335",key:"yps3ct"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]);a.s(["default",0,b],755137),a.s(["CheckCircle",0,b],79362)},704607,a=>{"use strict";var b=a.i(156757);b.z.string().uuid();let c=b.z.string().min(1).max(255).regex(/^[a-z0-9-]+$/,"Slug can only contain lowercase letters, numbers, and hyphens");b.z.object({page:b.z.coerce.number().int().positive().default(1),per_page:b.z.coerce.number().int().positive().max(100).default(12),sort_by:b.z.string().optional(),sort_dir:b.z.enum(["asc","desc"]).default("desc"),q:b.z.string().optional()}),b.z.object({email:b.z.string().email("Invalid email address"),password:b.z.string().min(8,"Password must be at least 8 characters"),remember_me:b.z.boolean().optional().default(!1)}),b.z.object({name:b.z.string().min(2,"Name must be at least 2 characters").max(100),email:b.z.string().email("Invalid email address"),password:b.z.string().min(8,"Password must be at least 8 characters").max(100).regex(/[A-Z]/,"Password must contain at least one uppercase letter").regex(/[0-9]/,"Password must contain at least one number"),confirm_password:b.z.string(),phone:b.z.string().regex(/^\+?[1-9]\d{9,14}$/,"Invalid phone number").optional()}).refine(a=>a.password===a.confirm_password,{message:"Passwords do not match",path:["confirm_password"]}),b.z.object({email:b.z.string().email("Invalid email address")}),b.z.object({token:b.z.string().min(1),password:b.z.string().min(8,"Password must be at least 8 characters").max(100),confirm_password:b.z.string()}).refine(a=>a.password===a.confirm_password,{message:"Passwords do not match",path:["confirm_password"]});let d=b.z.object({name:b.z.string().min(2,"Name is required").max(100),email:b.z.string().email("Invalid email address").optional().or(b.z.literal("")),phone:b.z.string().min(10,"Valid phone number is required").regex(/^\+?[0-9\s-]{10,15}$/,"Invalid phone number"),message:b.z.string().max(1e3).optional(),project_id:b.z.string().optional(),source:b.z.string().optional().default("website"),budget_min:b.z.coerce.number().optional(),budget_max:b.z.coerce.number().optional(),property_type:b.z.string().optional(),utm_source:b.z.string().optional(),utm_medium:b.z.string().optional(),utm_campaign:b.z.string().optional()}),e=b.z.object({name:b.z.string().min(2,"Name is required").max(100),email:b.z.string().email("Invalid email address"),phone:b.z.string().regex(/^\+?[0-9\s-]{10,15}$/,"Invalid phone number").optional().or(b.z.literal("")),subject:b.z.string().min(3,"Subject is required").max(200),message:b.z.string().min(10,"Message must be at least 10 characters").max(2e3)});b.z.object({email:b.z.string().email("Invalid email address"),name:b.z.string().max(100).optional()});let f=b.z.object({name:b.z.string().min(2).max(255),slug:c.optional(),tagline:b.z.string().max(500).optional(),description:b.z.string().min(20,"Description must be at least 20 characters"),short_description:b.z.string().max(500).optional(),status:b.z.enum(["upcoming","ongoing","completed","on_hold"]),category:b.z.enum(["luxury","residential","commercial","rental","villa","plot"]),possession_status:b.z.enum(["ready_to_move","under_construction","nearing_possession"]),is_featured:b.z.boolean().default(!1),is_luxury:b.z.boolean().default(!1),is_new_launch:b.z.boolean().default(!1),is_rera_registered:b.z.boolean().default(!1),publish_status:b.z.enum(["draft","published","archived"]).default("draft"),price_min:b.z.coerce.number().positive("Price must be positive"),price_max:b.z.coerce.number().positive("Price must be positive"),price_per_sqft:b.z.coerce.number().optional(),currency:b.z.string().default("INR"),address:b.z.string().min(5,"Address is required"),landmark:b.z.string().optional(),location_id:b.z.string().optional(),city_id:b.z.string().min(1,"City is required"),state_id:b.z.string().min(1,"State is required"),country_id:b.z.string().optional().default("IN"),pincode:b.z.string().optional(),latitude:b.z.coerce.number().optional(),longitude:b.z.coerce.number().optional(),google_maps_url:b.z.string().url().optional().or(b.z.literal("")),total_units:b.z.coerce.number().int().optional(),total_floors:b.z.coerce.number().int().optional(),total_towers:b.z.coerce.number().int().optional(),total_area_acres:b.z.coerce.number().optional(),open_space_percent:b.z.coerce.number().min(0).max(100).optional(),possession_date:b.z.string().optional(),launch_date:b.z.string().optional(),builder_id:b.z.string().min(1,"Builder is required"),property_type_id:b.z.string().optional(),cover_image:b.z.string().optional(),brochure_url:b.z.string().optional(),video_url:b.z.string().optional(),virtual_tour_url:b.z.string().url().optional().or(b.z.literal("")),rera_number:b.z.string().optional(),rera_expiry_date:b.z.string().optional(),inquiry_email:b.z.string().email().optional().or(b.z.literal("")),inquiry_phone:b.z.string().optional(),whatsapp_number:b.z.string().optional(),meta_title:b.z.string().max(60).optional(),meta_description:b.z.string().max(160).optional(),og_image:b.z.string().optional()});b.z.object({title:b.z.string().min(5).max(255),slug:c.optional(),subtitle:b.z.string().max(500).optional(),content:b.z.string().min(100,"Content must be at least 100 characters"),excerpt:b.z.string().max(500).optional(),cover_image:b.z.string().optional(),category:b.z.string().min(1,"Category is required"),tags:b.z.string().optional(),publish_status:b.z.enum(["draft","published","archived"]).default("draft"),published_at:b.z.string().optional(),is_featured:b.z.boolean().default(!1),meta_title:b.z.string().max(60).optional(),meta_description:b.z.string().max(160).optional()}),b.z.object({status:b.z.enum(["new","contacted","qualified","site_visit","negotiating","closed_won","closed_lost","junk"]).optional(),assigned_to:b.z.string().optional(),next_follow_up:b.z.string().optional(),is_qualified:b.z.boolean().optional(),is_site_visit_done:b.z.boolean().optional()}),b.z.object({content:b.z.string().min(1,"Note content is required").max(5e3),type:b.z.enum(["note","call","email","whatsapp","site_visit","meeting"]).default("note"),is_private:b.z.boolean().default(!1)}),b.z.record(b.z.string(),b.z.string()),b.z.object({name:b.z.string().min(2).max(100),email:b.z.string().email(),phone:b.z.string().optional(),is_active:b.z.boolean().default(!0),role_ids:b.z.array(b.z.string()).optional()}),b.z.object({name:b.z.string().min(2).max(255),slug:c.optional(),logo:b.z.string().optional(),description:b.z.string().optional(),short_description:b.z.string().max(500).optional(),founded_year:b.z.coerce.number().int().min(1900).max(2030).optional(),website:b.z.string().url().optional().or(b.z.literal("")),email:b.z.string().email().optional().or(b.z.literal("")),phone:b.z.string().optional(),address:b.z.string().optional(),city_id:b.z.string().optional(),state_id:b.z.string().optional(),is_featured:b.z.boolean().default(!1),is_verified:b.z.boolean().default(!1),is_active:b.z.boolean().default(!0),meta_title:b.z.string().max(60).optional(),meta_description:b.z.string().max(160).optional()}),b.z.object({author_name:b.z.string().min(2).max(100),author_designation:b.z.string().optional(),author_company:b.z.string().optional(),author_avatar:b.z.string().optional(),content:b.z.string().min(10).max(2e3),rating:b.z.coerce.number().int().min(1).max(5),project_id:b.z.string().optional(),city:b.z.string().optional(),is_featured:b.z.boolean().default(!1),is_active:b.z.boolean().default(!0),video_url:b.z.string().optional()}),b.z.object({question:b.z.string().min(5).max(500),answer:b.z.string().min(10).max(5e3),category:b.z.string().default("general"),sort_order:b.z.coerce.number().int().default(0),is_active:b.z.boolean().default(!0),project_id:b.z.string().optional()}),a.s(["contactSchema",0,e,"enquirySchema",0,d,"projectSchema",0,f])},162591,287828,a=>{"use strict";let b=(0,a.i(164831).default)("mail",[["path",{d:"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7",key:"132q7q"}],["rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",key:"izxlao"}]]);a.s(["default",0,b],287828),a.s(["Mail",0,b],162591)},674746,694369,a=>{"use strict";let b=(0,a.i(164831).default)("send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]);a.s(["default",0,b],694369),a.s(["Send",0,b],674746)},215741,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(695245),e=a.i(159501),f=a.i(346271),g=a.i(262036),h=a.i(866491),i=a.i(162591),j=a.i(344451),k=a.i(328423),l=a.i(674746),m=a.i(79362),n=a.i(875160),o=a.i(823292),p=a.i(699570),q=a.i(866718),r=a.i(870430),s=a.i(429246),t=a.i(704607),u=a.i(405050);let v=(0,u.createServerReference)("40c524beb90b67732157c541526047913b2014ec98",u.callServer,void 0,u.findSourceMapURL,"submitEnquiry");var w=a.i(368114);a.s(["EnquiryForm",0,function({projectId:a,projectName:u,source:x="website",className:y,compact:z=!1,title:A="Get Expert Advice",subtitle:B="Our property consultants are ready to help you find your dream home."}){let[C,D]=(0,c.useState)(!1),[E,F]=(0,c.useState)(!1),{register:G,handleSubmit:H,formState:{errors:I},reset:J}=(0,d.useForm)({resolver:(0,e.zodResolver)(t.enquirySchema),defaultValues:{source:x,project_id:a}}),K=async a=>{F(!0);try{let b=await v(a);b.success?(D(!0),J()):o.toast.error(b.error??"Something went wrong. Please try again.")}catch{o.toast.error("Something went wrong. Please try again.")}finally{F(!1)}};return(0,b.jsx)("div",{className:(0,w.cn)("luxury-card p-6 lg:p-8",y),children:(0,b.jsx)(g.AnimatePresence,{mode:"wait",children:C?(0,b.jsxs)(f.motion.div,{initial:{opacity:0,scale:.9},animate:{opacity:1,scale:1},className:"text-center py-8",children:[(0,b.jsx)("div",{className:"w-16 h-16 bg-green-500/15 rounded-full flex items-center justify-center mx-auto mb-4",children:(0,b.jsx)(m.CheckCircle,{className:"w-8 h-8 text-green-400"})}),(0,b.jsx)("h3",{className:"font-display text-xl font-bold text-foreground mb-2",children:"Thank You!"}),(0,b.jsx)("p",{className:"text-muted-foreground text-sm mb-6",children:"Our property consultant will reach you within 24 hours."}),(0,b.jsx)(p.Button,{variant:"gold-outline",size:"sm",onClick:()=>D(!1),children:"Submit Another Enquiry"})]},"success"):(0,b.jsxs)(f.motion.div,{initial:{opacity:0},animate:{opacity:1},children:[!z&&(0,b.jsxs)("div",{className:"mb-6",children:[(0,b.jsx)("h3",{className:"font-display text-xl lg:text-2xl font-bold text-foreground mb-2",children:A}),u&&(0,b.jsxs)("p",{className:"text-[hsl(36,82%,47%)] text-sm font-medium mb-1",children:["For: ",u]}),(0,b.jsx)("p",{className:"text-muted-foreground text-sm",children:B})]}),(0,b.jsxs)("form",{onSubmit:H(K),className:"flex flex-col gap-4",children:[(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsxs)(r.Label,{htmlFor:"enq-name",children:["Full Name ",(0,b.jsx)("span",{className:"text-destructive",children:"*"})]}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)(j.User,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground"}),(0,b.jsx)(q.Input,{id:"enq-name",...G("name"),placeholder:"John Doe",className:(0,w.cn)("pl-9",I.name&&"border-destructive")})]}),I.name&&(0,b.jsx)("p",{className:"text-xs text-destructive",children:I.name.message})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsxs)(r.Label,{htmlFor:"enq-phone",children:["Phone Number ",(0,b.jsx)("span",{className:"text-destructive",children:"*"})]}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)(h.Phone,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground"}),(0,b.jsx)(q.Input,{id:"enq-phone",...G("phone"),placeholder:"+91 98765 43210",type:"tel",className:(0,w.cn)("pl-9",I.phone&&"border-destructive")})]}),I.phone&&(0,b.jsx)("p",{className:"text-xs text-destructive",children:I.phone.message})]}),!z&&(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)(r.Label,{htmlFor:"enq-email",children:"Email Address"}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)(i.Mail,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground"}),(0,b.jsx)(q.Input,{id:"enq-email",...G("email"),placeholder:"john@example.com",type:"email",className:"pl-9"})]})]}),!z&&(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)(r.Label,{htmlFor:"enq-message",children:"Message"}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)(k.MessageSquare,{className:"absolute left-3 top-3 w-4 h-4 text-muted-foreground"}),(0,b.jsx)(s.Textarea,{id:"enq-message",...G("message"),placeholder:"I am interested in 2BHK, budget ₹1–1.5 Cr...",className:"pl-9 min-h-[100px] resize-none"})]})]}),(0,b.jsx)("input",{type:"hidden",...G("project_id"),value:a}),(0,b.jsx)("input",{type:"hidden",...G("source"),value:x}),(0,b.jsx)(p.Button,{type:"submit",variant:"gold",className:"w-full",size:"lg",disabled:E,children:E?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(n.Loader2,{className:"w-4 h-4 animate-spin"}),"Submitting..."]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(l.Send,{className:"w-4 h-4"}),"Get Free Consultation"]})}),(0,b.jsxs)("p",{className:"text-center text-xs text-muted-foreground",children:["By submitting, you agree to our"," ",(0,b.jsx)("a",{href:"/privacy",className:"underline hover:text-foreground",children:"Privacy Policy"}),". We never share your data."]})]})]},"form")})})}],215741)}];
|
|
1
|
+
module.exports=[79362,755137,a=>{"use strict";let b=(0,a.i(164831).default)("circle-check-big",[["path",{d:"M21.801 10A10 10 0 1 1 17 3.335",key:"yps3ct"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]);a.s(["default",0,b],755137),a.s(["CheckCircle",0,b],79362)},704607,a=>{"use strict";var b=a.i(156757);b.z.string().uuid();let c=b.z.string().min(1).max(255).regex(/^[a-z0-9-]+$/,"Slug can only contain lowercase letters, numbers, and hyphens");b.z.object({page:b.z.coerce.number().int().positive().default(1),per_page:b.z.coerce.number().int().positive().max(100).default(12),sort_by:b.z.string().optional(),sort_dir:b.z.enum(["asc","desc"]).default("desc"),q:b.z.string().optional()}),b.z.object({email:b.z.string().email("Invalid email address"),password:b.z.string().min(8,"Password must be at least 8 characters"),remember_me:b.z.boolean().optional().default(!1)}),b.z.object({name:b.z.string().min(2,"Name must be at least 2 characters").max(100),email:b.z.string().email("Invalid email address"),password:b.z.string().min(8,"Password must be at least 8 characters").max(100).regex(/[A-Z]/,"Password must contain at least one uppercase letter").regex(/[0-9]/,"Password must contain at least one number"),confirm_password:b.z.string(),phone:b.z.string().regex(/^\+?[1-9]\d{9,14}$/,"Invalid phone number").optional()}).refine(a=>a.password===a.confirm_password,{message:"Passwords do not match",path:["confirm_password"]}),b.z.object({email:b.z.string().email("Invalid email address")}),b.z.object({token:b.z.string().min(1),password:b.z.string().min(8,"Password must be at least 8 characters").max(100),confirm_password:b.z.string()}).refine(a=>a.password===a.confirm_password,{message:"Passwords do not match",path:["confirm_password"]});let d=b.z.object({name:b.z.string().min(2,"Name is required").max(100),email:b.z.string().email("Invalid email address").optional().or(b.z.literal("")),phone:b.z.string().min(10,"Valid phone number is required").regex(/^\+?[0-9\s-]{10,15}$/,"Invalid phone number"),message:b.z.string().max(1e3).optional(),project_id:b.z.string().optional(),source:b.z.string().optional().default("website"),budget_min:b.z.coerce.number().optional(),budget_max:b.z.coerce.number().optional(),property_type:b.z.string().optional(),utm_source:b.z.string().optional(),utm_medium:b.z.string().optional(),utm_campaign:b.z.string().optional()}),e=b.z.object({name:b.z.string().min(2,"Name is required").max(100),email:b.z.string().email("Invalid email address"),phone:b.z.string().regex(/^\+?[0-9\s-]{10,15}$/,"Invalid phone number").optional().or(b.z.literal("")),subject:b.z.string().min(3,"Subject is required").max(200),message:b.z.string().min(10,"Message must be at least 10 characters").max(2e3)});b.z.object({email:b.z.string().email("Invalid email address"),name:b.z.string().max(100).optional()});let f=b.z.object({name:b.z.string().min(2).max(255),slug:c.optional(),tagline:b.z.string().max(500).optional(),description:b.z.string().min(20,"Description must be at least 20 characters"),short_description:b.z.string().max(500).optional(),status:b.z.enum(["upcoming","ongoing","completed","on_hold"]),category:b.z.enum(["luxury","residential","commercial","rental","villa","plot"]),possession_status:b.z.enum(["ready_to_move","under_construction","nearing_possession"]),is_featured:b.z.boolean().default(!1),is_luxury:b.z.boolean().default(!1),is_new_launch:b.z.boolean().default(!1),is_rera_registered:b.z.boolean().default(!1),publish_status:b.z.enum(["draft","published","archived"]).default("draft"),price_min:b.z.coerce.number().positive("Price must be positive"),price_max:b.z.coerce.number().positive("Price must be positive"),price_per_sqft:b.z.coerce.number().optional(),currency:b.z.string().default("INR"),address:b.z.string().min(5,"Address is required"),landmark:b.z.string().optional(),location_id:b.z.string().optional(),city_id:b.z.string().min(1,"City is required"),state_id:b.z.string().min(1,"State is required"),country_id:b.z.string().optional().default("IN"),pincode:b.z.string().optional(),latitude:b.z.coerce.number().optional(),longitude:b.z.coerce.number().optional(),google_maps_url:b.z.string().url().optional().or(b.z.literal("")),total_units:b.z.coerce.number().int().optional(),total_floors:b.z.coerce.number().int().optional(),total_towers:b.z.coerce.number().int().optional(),total_area_acres:b.z.coerce.number().optional(),open_space_percent:b.z.coerce.number().min(0).max(100).optional(),possession_date:b.z.string().optional(),launch_date:b.z.string().optional(),builder_id:b.z.string().min(1,"Builder is required"),property_type_id:b.z.string().optional(),cover_image:b.z.string().optional(),brochure_url:b.z.string().optional(),video_url:b.z.string().optional(),virtual_tour_url:b.z.string().url().optional().or(b.z.literal("")),rera_number:b.z.string().optional(),rera_expiry_date:b.z.string().optional(),inquiry_email:b.z.string().email().optional().or(b.z.literal("")),inquiry_phone:b.z.string().optional(),whatsapp_number:b.z.string().optional(),meta_title:b.z.string().max(60).optional(),meta_description:b.z.string().max(160).optional(),og_image:b.z.string().optional()});b.z.object({title:b.z.string().min(5).max(255),slug:c.optional(),subtitle:b.z.string().max(500).optional(),content:b.z.string().min(100,"Content must be at least 100 characters"),excerpt:b.z.string().max(500).optional(),cover_image:b.z.string().optional(),category:b.z.string().min(1,"Category is required"),tags:b.z.string().optional(),publish_status:b.z.enum(["draft","published","archived"]).default("draft"),published_at:b.z.string().optional(),is_featured:b.z.boolean().default(!1),meta_title:b.z.string().max(60).optional(),meta_description:b.z.string().max(160).optional()}),b.z.object({status:b.z.enum(["new","contacted","qualified","site_visit","negotiating","closed_won","closed_lost","junk"]).optional(),assigned_to:b.z.string().optional(),next_follow_up:b.z.string().optional(),is_qualified:b.z.boolean().optional(),is_site_visit_done:b.z.boolean().optional()}),b.z.object({content:b.z.string().min(1,"Note content is required").max(5e3),type:b.z.enum(["note","call","email","whatsapp","site_visit","meeting"]).default("note"),is_private:b.z.boolean().default(!1)}),b.z.record(b.z.string(),b.z.string()),b.z.object({name:b.z.string().min(2).max(100),email:b.z.string().email(),phone:b.z.string().optional(),is_active:b.z.boolean().default(!0),role_ids:b.z.array(b.z.string()).optional()}),b.z.object({name:b.z.string().min(2).max(255),slug:c.optional(),logo:b.z.string().optional(),description:b.z.string().optional(),short_description:b.z.string().max(500).optional(),founded_year:b.z.coerce.number().int().min(1900).max(2030).optional(),website:b.z.string().url().optional().or(b.z.literal("")),email:b.z.string().email().optional().or(b.z.literal("")),phone:b.z.string().optional(),address:b.z.string().optional(),city_id:b.z.string().optional(),state_id:b.z.string().optional(),is_featured:b.z.boolean().default(!1),is_verified:b.z.boolean().default(!1),is_active:b.z.boolean().default(!0),meta_title:b.z.string().max(60).optional(),meta_description:b.z.string().max(160).optional()}),b.z.object({author_name:b.z.string().min(2).max(100),author_designation:b.z.string().optional(),author_company:b.z.string().optional(),author_avatar:b.z.string().optional(),content:b.z.string().min(10).max(2e3),rating:b.z.coerce.number().int().min(1).max(5),project_id:b.z.string().optional(),city:b.z.string().optional(),is_featured:b.z.boolean().default(!1),is_active:b.z.boolean().default(!0),video_url:b.z.string().optional()}),b.z.object({question:b.z.string().min(5).max(500),answer:b.z.string().min(10).max(5e3),category:b.z.string().default("general"),sort_order:b.z.coerce.number().int().default(0),is_active:b.z.boolean().default(!0),project_id:b.z.string().optional()}),a.s(["contactSchema",0,e,"enquirySchema",0,d,"projectSchema",0,f])},162591,287828,a=>{"use strict";let b=(0,a.i(164831).default)("mail",[["path",{d:"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7",key:"132q7q"}],["rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",key:"izxlao"}]]);a.s(["default",0,b],287828),a.s(["Mail",0,b],162591)},674746,694369,a=>{"use strict";let b=(0,a.i(164831).default)("send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]);a.s(["default",0,b],694369),a.s(["Send",0,b],674746)},215741,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(695245),e=a.i(159501),f=a.i(346271),g=a.i(262036),h=a.i(866491),i=a.i(162591),j=a.i(344451),k=a.i(328423),l=a.i(674746),m=a.i(79362),n=a.i(875160),o=a.i(823292),p=a.i(699570),q=a.i(866718),r=a.i(870430),s=a.i(429246),t=a.i(704607),u=a.i(405050);let v=(0,u.createServerReference)("40829cb3fc6e4ff01751d831cd4dd52d266fef087a",u.callServer,void 0,u.findSourceMapURL,"submitEnquiry");var w=a.i(368114);a.s(["EnquiryForm",0,function({projectId:a,projectName:u,source:x="website",className:y,compact:z=!1,title:A="Get Expert Advice",subtitle:B="Our property consultants are ready to help you find your dream home."}){let[C,D]=(0,c.useState)(!1),[E,F]=(0,c.useState)(!1),{register:G,handleSubmit:H,formState:{errors:I},reset:J}=(0,d.useForm)({resolver:(0,e.zodResolver)(t.enquirySchema),defaultValues:{source:x,project_id:a}}),K=async a=>{F(!0);try{let b=await v(a);b.success?(D(!0),J()):o.toast.error(b.error??"Something went wrong. Please try again.")}catch{o.toast.error("Something went wrong. Please try again.")}finally{F(!1)}};return(0,b.jsx)("div",{className:(0,w.cn)("luxury-card p-6 lg:p-8",y),children:(0,b.jsx)(g.AnimatePresence,{mode:"wait",children:C?(0,b.jsxs)(f.motion.div,{initial:{opacity:0,scale:.9},animate:{opacity:1,scale:1},className:"text-center py-8",children:[(0,b.jsx)("div",{className:"w-16 h-16 bg-green-500/15 rounded-full flex items-center justify-center mx-auto mb-4",children:(0,b.jsx)(m.CheckCircle,{className:"w-8 h-8 text-green-400"})}),(0,b.jsx)("h3",{className:"font-display text-xl font-bold text-foreground mb-2",children:"Thank You!"}),(0,b.jsx)("p",{className:"text-muted-foreground text-sm mb-6",children:"Our property consultant will reach you within 24 hours."}),(0,b.jsx)(p.Button,{variant:"gold-outline",size:"sm",onClick:()=>D(!1),children:"Submit Another Enquiry"})]},"success"):(0,b.jsxs)(f.motion.div,{initial:{opacity:0},animate:{opacity:1},children:[!z&&(0,b.jsxs)("div",{className:"mb-6",children:[(0,b.jsx)("h3",{className:"font-display text-xl lg:text-2xl font-bold text-foreground mb-2",children:A}),u&&(0,b.jsxs)("p",{className:"text-[hsl(36,82%,47%)] text-sm font-medium mb-1",children:["For: ",u]}),(0,b.jsx)("p",{className:"text-muted-foreground text-sm",children:B})]}),(0,b.jsxs)("form",{onSubmit:H(K),className:"flex flex-col gap-4",children:[(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsxs)(r.Label,{htmlFor:"enq-name",children:["Full Name ",(0,b.jsx)("span",{className:"text-destructive",children:"*"})]}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)(j.User,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground"}),(0,b.jsx)(q.Input,{id:"enq-name",...G("name"),placeholder:"John Doe",className:(0,w.cn)("pl-9",I.name&&"border-destructive")})]}),I.name&&(0,b.jsx)("p",{className:"text-xs text-destructive",children:I.name.message})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsxs)(r.Label,{htmlFor:"enq-phone",children:["Phone Number ",(0,b.jsx)("span",{className:"text-destructive",children:"*"})]}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)(h.Phone,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground"}),(0,b.jsx)(q.Input,{id:"enq-phone",...G("phone"),placeholder:"+91 98765 43210",type:"tel",className:(0,w.cn)("pl-9",I.phone&&"border-destructive")})]}),I.phone&&(0,b.jsx)("p",{className:"text-xs text-destructive",children:I.phone.message})]}),!z&&(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)(r.Label,{htmlFor:"enq-email",children:"Email Address"}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)(i.Mail,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground"}),(0,b.jsx)(q.Input,{id:"enq-email",...G("email"),placeholder:"john@example.com",type:"email",className:"pl-9"})]})]}),!z&&(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)(r.Label,{htmlFor:"enq-message",children:"Message"}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)(k.MessageSquare,{className:"absolute left-3 top-3 w-4 h-4 text-muted-foreground"}),(0,b.jsx)(s.Textarea,{id:"enq-message",...G("message"),placeholder:"I am interested in 2BHK, budget ₹1–1.5 Cr...",className:"pl-9 min-h-[100px] resize-none"})]})]}),(0,b.jsx)("input",{type:"hidden",...G("project_id"),value:a}),(0,b.jsx)("input",{type:"hidden",...G("source"),value:x}),(0,b.jsx)(p.Button,{type:"submit",variant:"gold",className:"w-full",size:"lg",disabled:E,children:E?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(n.Loader2,{className:"w-4 h-4 animate-spin"}),"Submitting..."]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(l.Send,{className:"w-4 h-4"}),"Get Free Consultation"]})}),(0,b.jsxs)("p",{className:"text-center text-xs text-muted-foreground",children:["By submitting, you agree to our"," ",(0,b.jsx)("a",{href:"/privacy",className:"underline hover:text-foreground",children:"Privacy Policy"}),". We never share your data."]})]})]},"form")})})}],215741)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_1lhtejs._.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
module.exports=[137936,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(211857)},713095,(a,b,c)=>{"use strict";function d(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof c}.
|
|
2
|
-
Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},949413,a=>{"use strict";var b=a.i(306646);a.s([],286593),a.i(286593),a.s(["
|
|
2
|
+
Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},949413,a=>{"use strict";var b=a.i(306646);a.s([],286593),a.i(286593),a.s(["40829cb3fc6e4ff01751d831cd4dd52d266fef087a",()=>b.submitEnquiry],949413)},674098,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_plugins_hooks-manager_ts_04m6z7f._.js"].map(b=>a.l(b))).then(()=>b(615120)))},839090,a=>{a.v(a=>Promise.resolve().then(()=>a(780099)))}];
|
|
3
3
|
|
|
4
4
|
//# sourceMappingURL=_1pulrwl._.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
module.exports=[137936,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(211857)},713095,(a,b,c)=>{"use strict";function d(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof c}.
|
|
2
|
-
Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},305668,a=>{"use strict";var b=a.i(137936),c=a.i(872849),d=a.i(118558),e=a.i(109307),f=a.i(257807);async function g(a){try{let b=await (0,e.auth)();if(!b?.user?.id)return{success:!1,error:"Unauthorized"};if(!a.name.trim())return{success:!1,error:"Name is required"};return await f.repositories.users.update(b.user.id,{name:a.name,phone:a.phone||null,image:a.image||null}),(0,d.revalidatePath)("/admin"),{success:!0,data:!0}}catch(a){return{success:!1,error:a.message||"Failed to update profile."}}}async function h(a){try{let b=await (0,e.auth)();if(!b?.user?.id)return{success:!1,error:"Unauthorized"};if(!a.current||!a.new||a.new.length<8)return{success:!1,error:"Password must be at least 8 characters long."};let d=await f.repositories.users.findById(b.user.id);if(!d||!d.password_hash)return{success:!1,error:"User not found."};if(!await (0,c.compare)(a.current,d.password_hash))return{success:!1,error:"Current password does not match our records."};let g=await (0,c.hash)(a.new,10);return await f.repositories.users.updatePassword(b.user.id,g),{success:!0,data:!0}}catch(a){return{success:!1,error:a.message||"Failed to change password."}}}(0,a.i(713095).ensureServerEntryExports)([g,h]),(0,b.registerServerReference)(g,"
|
|
2
|
+
Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},305668,a=>{"use strict";var b=a.i(137936),c=a.i(872849),d=a.i(118558),e=a.i(109307),f=a.i(257807);async function g(a){try{let b=await (0,e.auth)();if(!b?.user?.id)return{success:!1,error:"Unauthorized"};if(!a.name.trim())return{success:!1,error:"Name is required"};return await f.repositories.users.update(b.user.id,{name:a.name,phone:a.phone||null,image:a.image||null}),(0,d.revalidatePath)("/admin"),{success:!0,data:!0}}catch(a){return{success:!1,error:a.message||"Failed to update profile."}}}async function h(a){try{let b=await (0,e.auth)();if(!b?.user?.id)return{success:!1,error:"Unauthorized"};if(!a.current||!a.new||a.new.length<8)return{success:!1,error:"Password must be at least 8 characters long."};let d=await f.repositories.users.findById(b.user.id);if(!d||!d.password_hash)return{success:!1,error:"User not found."};if(!await (0,c.compare)(a.current,d.password_hash))return{success:!1,error:"Current password does not match our records."};let g=await (0,c.hash)(a.new,10);return await f.repositories.users.updatePassword(b.user.id,g),{success:!0,data:!0}}catch(a){return{success:!1,error:a.message||"Failed to change password."}}}(0,a.i(713095).ensureServerEntryExports)([g,h]),(0,b.registerServerReference)(g,"40dc1f492fbaac4553b7c9e93c74f8301433f1a5af",null),(0,b.registerServerReference)(h,"40ea9ce06a5b4392e3b975e33322e6274638656b54",null),a.s([],889107),a.i(889107),a.s(["40dc1f492fbaac4553b7c9e93c74f8301433f1a5af",0,g,"40ea9ce06a5b4392e3b975e33322e6274638656b54",0,h],305668)}];
|
|
3
3
|
|
|
4
4
|
//# sourceMappingURL=_1pvmkr2._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[79362,755137,a=>{"use strict";let b=(0,a.i(164831).default)("circle-check-big",[["path",{d:"M21.801 10A10 10 0 1 1 17 3.335",key:"yps3ct"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]);a.s(["default",0,b],755137),a.s(["CheckCircle",0,b],79362)},704607,a=>{"use strict";var b=a.i(156757);b.z.string().uuid();let c=b.z.string().min(1).max(255).regex(/^[a-z0-9-]+$/,"Slug can only contain lowercase letters, numbers, and hyphens");b.z.object({page:b.z.coerce.number().int().positive().default(1),per_page:b.z.coerce.number().int().positive().max(100).default(12),sort_by:b.z.string().optional(),sort_dir:b.z.enum(["asc","desc"]).default("desc"),q:b.z.string().optional()}),b.z.object({email:b.z.string().email("Invalid email address"),password:b.z.string().min(8,"Password must be at least 8 characters"),remember_me:b.z.boolean().optional().default(!1)}),b.z.object({name:b.z.string().min(2,"Name must be at least 2 characters").max(100),email:b.z.string().email("Invalid email address"),password:b.z.string().min(8,"Password must be at least 8 characters").max(100).regex(/[A-Z]/,"Password must contain at least one uppercase letter").regex(/[0-9]/,"Password must contain at least one number"),confirm_password:b.z.string(),phone:b.z.string().regex(/^\+?[1-9]\d{9,14}$/,"Invalid phone number").optional()}).refine(a=>a.password===a.confirm_password,{message:"Passwords do not match",path:["confirm_password"]}),b.z.object({email:b.z.string().email("Invalid email address")}),b.z.object({token:b.z.string().min(1),password:b.z.string().min(8,"Password must be at least 8 characters").max(100),confirm_password:b.z.string()}).refine(a=>a.password===a.confirm_password,{message:"Passwords do not match",path:["confirm_password"]});let d=b.z.object({name:b.z.string().min(2,"Name is required").max(100),email:b.z.string().email("Invalid email address").optional().or(b.z.literal("")),phone:b.z.string().min(10,"Valid phone number is required").regex(/^\+?[0-9\s-]{10,15}$/,"Invalid phone number"),message:b.z.string().max(1e3).optional(),project_id:b.z.string().optional(),source:b.z.string().optional().default("website"),budget_min:b.z.coerce.number().optional(),budget_max:b.z.coerce.number().optional(),property_type:b.z.string().optional(),utm_source:b.z.string().optional(),utm_medium:b.z.string().optional(),utm_campaign:b.z.string().optional()}),e=b.z.object({name:b.z.string().min(2,"Name is required").max(100),email:b.z.string().email("Invalid email address"),phone:b.z.string().regex(/^\+?[0-9\s-]{10,15}$/,"Invalid phone number").optional().or(b.z.literal("")),subject:b.z.string().min(3,"Subject is required").max(200),message:b.z.string().min(10,"Message must be at least 10 characters").max(2e3)});b.z.object({email:b.z.string().email("Invalid email address"),name:b.z.string().max(100).optional()});let f=b.z.object({name:b.z.string().min(2).max(255),slug:c.optional(),tagline:b.z.string().max(500).optional(),description:b.z.string().min(20,"Description must be at least 20 characters"),short_description:b.z.string().max(500).optional(),status:b.z.enum(["upcoming","ongoing","completed","on_hold"]),category:b.z.enum(["luxury","residential","commercial","rental","villa","plot"]),possession_status:b.z.enum(["ready_to_move","under_construction","nearing_possession"]),is_featured:b.z.boolean().default(!1),is_luxury:b.z.boolean().default(!1),is_new_launch:b.z.boolean().default(!1),is_rera_registered:b.z.boolean().default(!1),publish_status:b.z.enum(["draft","published","archived"]).default("draft"),price_min:b.z.coerce.number().positive("Price must be positive"),price_max:b.z.coerce.number().positive("Price must be positive"),price_per_sqft:b.z.coerce.number().optional(),currency:b.z.string().default("INR"),address:b.z.string().min(5,"Address is required"),landmark:b.z.string().optional(),location_id:b.z.string().optional(),city_id:b.z.string().min(1,"City is required"),state_id:b.z.string().min(1,"State is required"),country_id:b.z.string().optional().default("IN"),pincode:b.z.string().optional(),latitude:b.z.coerce.number().optional(),longitude:b.z.coerce.number().optional(),google_maps_url:b.z.string().url().optional().or(b.z.literal("")),total_units:b.z.coerce.number().int().optional(),total_floors:b.z.coerce.number().int().optional(),total_towers:b.z.coerce.number().int().optional(),total_area_acres:b.z.coerce.number().optional(),open_space_percent:b.z.coerce.number().min(0).max(100).optional(),possession_date:b.z.string().optional(),launch_date:b.z.string().optional(),builder_id:b.z.string().min(1,"Builder is required"),property_type_id:b.z.string().optional(),cover_image:b.z.string().optional(),brochure_url:b.z.string().optional(),video_url:b.z.string().optional(),virtual_tour_url:b.z.string().url().optional().or(b.z.literal("")),rera_number:b.z.string().optional(),rera_expiry_date:b.z.string().optional(),inquiry_email:b.z.string().email().optional().or(b.z.literal("")),inquiry_phone:b.z.string().optional(),whatsapp_number:b.z.string().optional(),meta_title:b.z.string().max(60).optional(),meta_description:b.z.string().max(160).optional(),og_image:b.z.string().optional()});b.z.object({title:b.z.string().min(5).max(255),slug:c.optional(),subtitle:b.z.string().max(500).optional(),content:b.z.string().min(100,"Content must be at least 100 characters"),excerpt:b.z.string().max(500).optional(),cover_image:b.z.string().optional(),category:b.z.string().min(1,"Category is required"),tags:b.z.string().optional(),publish_status:b.z.enum(["draft","published","archived"]).default("draft"),published_at:b.z.string().optional(),is_featured:b.z.boolean().default(!1),meta_title:b.z.string().max(60).optional(),meta_description:b.z.string().max(160).optional()}),b.z.object({status:b.z.enum(["new","contacted","qualified","site_visit","negotiating","closed_won","closed_lost","junk"]).optional(),assigned_to:b.z.string().optional(),next_follow_up:b.z.string().optional(),is_qualified:b.z.boolean().optional(),is_site_visit_done:b.z.boolean().optional()}),b.z.object({content:b.z.string().min(1,"Note content is required").max(5e3),type:b.z.enum(["note","call","email","whatsapp","site_visit","meeting"]).default("note"),is_private:b.z.boolean().default(!1)}),b.z.record(b.z.string(),b.z.string()),b.z.object({name:b.z.string().min(2).max(100),email:b.z.string().email(),phone:b.z.string().optional(),is_active:b.z.boolean().default(!0),role_ids:b.z.array(b.z.string()).optional()}),b.z.object({name:b.z.string().min(2).max(255),slug:c.optional(),logo:b.z.string().optional(),description:b.z.string().optional(),short_description:b.z.string().max(500).optional(),founded_year:b.z.coerce.number().int().min(1900).max(2030).optional(),website:b.z.string().url().optional().or(b.z.literal("")),email:b.z.string().email().optional().or(b.z.literal("")),phone:b.z.string().optional(),address:b.z.string().optional(),city_id:b.z.string().optional(),state_id:b.z.string().optional(),is_featured:b.z.boolean().default(!1),is_verified:b.z.boolean().default(!1),is_active:b.z.boolean().default(!0),meta_title:b.z.string().max(60).optional(),meta_description:b.z.string().max(160).optional()}),b.z.object({author_name:b.z.string().min(2).max(100),author_designation:b.z.string().optional(),author_company:b.z.string().optional(),author_avatar:b.z.string().optional(),content:b.z.string().min(10).max(2e3),rating:b.z.coerce.number().int().min(1).max(5),project_id:b.z.string().optional(),city:b.z.string().optional(),is_featured:b.z.boolean().default(!1),is_active:b.z.boolean().default(!0),video_url:b.z.string().optional()}),b.z.object({question:b.z.string().min(5).max(500),answer:b.z.string().min(10).max(5e3),category:b.z.string().default("general"),sort_order:b.z.coerce.number().int().default(0),is_active:b.z.boolean().default(!0),project_id:b.z.string().optional()}),a.s(["contactSchema",0,e,"enquirySchema",0,d,"projectSchema",0,f])},674746,694369,a=>{"use strict";let b=(0,a.i(164831).default)("send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]);a.s(["default",0,b],694369),a.s(["Send",0,b],674746)},344451,393507,a=>{"use strict";let b=(0,a.i(164831).default)("user",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]);a.s(["default",0,b],393507),a.s(["User",0,b],344451)},328423,321875,a=>{"use strict";let b=(0,a.i(164831).default)("message-square",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]]);a.s(["default",0,b],321875),a.s(["MessageSquare",0,b],328423)},215741,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(695245),e=a.i(159501),f=a.i(346271),g=a.i(262036),h=a.i(866491),i=a.i(162591),j=a.i(344451),k=a.i(328423),l=a.i(674746),m=a.i(79362),n=a.i(875160),o=a.i(823292),p=a.i(699570),q=a.i(866718),r=a.i(870430),s=a.i(429246),t=a.i(704607),u=a.i(405050);let v=(0,u.createServerReference)("40c524beb90b67732157c541526047913b2014ec98",u.callServer,void 0,u.findSourceMapURL,"submitEnquiry");var w=a.i(368114);a.s(["EnquiryForm",0,function({projectId:a,projectName:u,source:x="website",className:y,compact:z=!1,title:A="Get Expert Advice",subtitle:B="Our property consultants are ready to help you find your dream home."}){let[C,D]=(0,c.useState)(!1),[E,F]=(0,c.useState)(!1),{register:G,handleSubmit:H,formState:{errors:I},reset:J}=(0,d.useForm)({resolver:(0,e.zodResolver)(t.enquirySchema),defaultValues:{source:x,project_id:a}}),K=async a=>{F(!0);try{let b=await v(a);b.success?(D(!0),J()):o.toast.error(b.error??"Something went wrong. Please try again.")}catch{o.toast.error("Something went wrong. Please try again.")}finally{F(!1)}};return(0,b.jsx)("div",{className:(0,w.cn)("luxury-card p-6 lg:p-8",y),children:(0,b.jsx)(g.AnimatePresence,{mode:"wait",children:C?(0,b.jsxs)(f.motion.div,{initial:{opacity:0,scale:.9},animate:{opacity:1,scale:1},className:"text-center py-8",children:[(0,b.jsx)("div",{className:"w-16 h-16 bg-green-500/15 rounded-full flex items-center justify-center mx-auto mb-4",children:(0,b.jsx)(m.CheckCircle,{className:"w-8 h-8 text-green-400"})}),(0,b.jsx)("h3",{className:"font-display text-xl font-bold text-foreground mb-2",children:"Thank You!"}),(0,b.jsx)("p",{className:"text-muted-foreground text-sm mb-6",children:"Our property consultant will reach you within 24 hours."}),(0,b.jsx)(p.Button,{variant:"gold-outline",size:"sm",onClick:()=>D(!1),children:"Submit Another Enquiry"})]},"success"):(0,b.jsxs)(f.motion.div,{initial:{opacity:0},animate:{opacity:1},children:[!z&&(0,b.jsxs)("div",{className:"mb-6",children:[(0,b.jsx)("h3",{className:"font-display text-xl lg:text-2xl font-bold text-foreground mb-2",children:A}),u&&(0,b.jsxs)("p",{className:"text-[hsl(36,82%,47%)] text-sm font-medium mb-1",children:["For: ",u]}),(0,b.jsx)("p",{className:"text-muted-foreground text-sm",children:B})]}),(0,b.jsxs)("form",{onSubmit:H(K),className:"flex flex-col gap-4",children:[(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsxs)(r.Label,{htmlFor:"enq-name",children:["Full Name ",(0,b.jsx)("span",{className:"text-destructive",children:"*"})]}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)(j.User,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground"}),(0,b.jsx)(q.Input,{id:"enq-name",...G("name"),placeholder:"John Doe",className:(0,w.cn)("pl-9",I.name&&"border-destructive")})]}),I.name&&(0,b.jsx)("p",{className:"text-xs text-destructive",children:I.name.message})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsxs)(r.Label,{htmlFor:"enq-phone",children:["Phone Number ",(0,b.jsx)("span",{className:"text-destructive",children:"*"})]}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)(h.Phone,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground"}),(0,b.jsx)(q.Input,{id:"enq-phone",...G("phone"),placeholder:"+91 98765 43210",type:"tel",className:(0,w.cn)("pl-9",I.phone&&"border-destructive")})]}),I.phone&&(0,b.jsx)("p",{className:"text-xs text-destructive",children:I.phone.message})]}),!z&&(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)(r.Label,{htmlFor:"enq-email",children:"Email Address"}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)(i.Mail,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground"}),(0,b.jsx)(q.Input,{id:"enq-email",...G("email"),placeholder:"john@example.com",type:"email",className:"pl-9"})]})]}),!z&&(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)(r.Label,{htmlFor:"enq-message",children:"Message"}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)(k.MessageSquare,{className:"absolute left-3 top-3 w-4 h-4 text-muted-foreground"}),(0,b.jsx)(s.Textarea,{id:"enq-message",...G("message"),placeholder:"I am interested in 2BHK, budget ₹1–1.5 Cr...",className:"pl-9 min-h-[100px] resize-none"})]})]}),(0,b.jsx)("input",{type:"hidden",...G("project_id"),value:a}),(0,b.jsx)("input",{type:"hidden",...G("source"),value:x}),(0,b.jsx)(p.Button,{type:"submit",variant:"gold",className:"w-full",size:"lg",disabled:E,children:E?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(n.Loader2,{className:"w-4 h-4 animate-spin"}),"Submitting..."]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(l.Send,{className:"w-4 h-4"}),"Get Free Consultation"]})}),(0,b.jsxs)("p",{className:"text-center text-xs text-muted-foreground",children:["By submitting, you agree to our"," ",(0,b.jsx)("a",{href:"/privacy",className:"underline hover:text-foreground",children:"Privacy Policy"}),". We never share your data."]})]})]},"form")})})}],215741)}];
|
|
1
|
+
module.exports=[79362,755137,a=>{"use strict";let b=(0,a.i(164831).default)("circle-check-big",[["path",{d:"M21.801 10A10 10 0 1 1 17 3.335",key:"yps3ct"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]);a.s(["default",0,b],755137),a.s(["CheckCircle",0,b],79362)},704607,a=>{"use strict";var b=a.i(156757);b.z.string().uuid();let c=b.z.string().min(1).max(255).regex(/^[a-z0-9-]+$/,"Slug can only contain lowercase letters, numbers, and hyphens");b.z.object({page:b.z.coerce.number().int().positive().default(1),per_page:b.z.coerce.number().int().positive().max(100).default(12),sort_by:b.z.string().optional(),sort_dir:b.z.enum(["asc","desc"]).default("desc"),q:b.z.string().optional()}),b.z.object({email:b.z.string().email("Invalid email address"),password:b.z.string().min(8,"Password must be at least 8 characters"),remember_me:b.z.boolean().optional().default(!1)}),b.z.object({name:b.z.string().min(2,"Name must be at least 2 characters").max(100),email:b.z.string().email("Invalid email address"),password:b.z.string().min(8,"Password must be at least 8 characters").max(100).regex(/[A-Z]/,"Password must contain at least one uppercase letter").regex(/[0-9]/,"Password must contain at least one number"),confirm_password:b.z.string(),phone:b.z.string().regex(/^\+?[1-9]\d{9,14}$/,"Invalid phone number").optional()}).refine(a=>a.password===a.confirm_password,{message:"Passwords do not match",path:["confirm_password"]}),b.z.object({email:b.z.string().email("Invalid email address")}),b.z.object({token:b.z.string().min(1),password:b.z.string().min(8,"Password must be at least 8 characters").max(100),confirm_password:b.z.string()}).refine(a=>a.password===a.confirm_password,{message:"Passwords do not match",path:["confirm_password"]});let d=b.z.object({name:b.z.string().min(2,"Name is required").max(100),email:b.z.string().email("Invalid email address").optional().or(b.z.literal("")),phone:b.z.string().min(10,"Valid phone number is required").regex(/^\+?[0-9\s-]{10,15}$/,"Invalid phone number"),message:b.z.string().max(1e3).optional(),project_id:b.z.string().optional(),source:b.z.string().optional().default("website"),budget_min:b.z.coerce.number().optional(),budget_max:b.z.coerce.number().optional(),property_type:b.z.string().optional(),utm_source:b.z.string().optional(),utm_medium:b.z.string().optional(),utm_campaign:b.z.string().optional()}),e=b.z.object({name:b.z.string().min(2,"Name is required").max(100),email:b.z.string().email("Invalid email address"),phone:b.z.string().regex(/^\+?[0-9\s-]{10,15}$/,"Invalid phone number").optional().or(b.z.literal("")),subject:b.z.string().min(3,"Subject is required").max(200),message:b.z.string().min(10,"Message must be at least 10 characters").max(2e3)});b.z.object({email:b.z.string().email("Invalid email address"),name:b.z.string().max(100).optional()});let f=b.z.object({name:b.z.string().min(2).max(255),slug:c.optional(),tagline:b.z.string().max(500).optional(),description:b.z.string().min(20,"Description must be at least 20 characters"),short_description:b.z.string().max(500).optional(),status:b.z.enum(["upcoming","ongoing","completed","on_hold"]),category:b.z.enum(["luxury","residential","commercial","rental","villa","plot"]),possession_status:b.z.enum(["ready_to_move","under_construction","nearing_possession"]),is_featured:b.z.boolean().default(!1),is_luxury:b.z.boolean().default(!1),is_new_launch:b.z.boolean().default(!1),is_rera_registered:b.z.boolean().default(!1),publish_status:b.z.enum(["draft","published","archived"]).default("draft"),price_min:b.z.coerce.number().positive("Price must be positive"),price_max:b.z.coerce.number().positive("Price must be positive"),price_per_sqft:b.z.coerce.number().optional(),currency:b.z.string().default("INR"),address:b.z.string().min(5,"Address is required"),landmark:b.z.string().optional(),location_id:b.z.string().optional(),city_id:b.z.string().min(1,"City is required"),state_id:b.z.string().min(1,"State is required"),country_id:b.z.string().optional().default("IN"),pincode:b.z.string().optional(),latitude:b.z.coerce.number().optional(),longitude:b.z.coerce.number().optional(),google_maps_url:b.z.string().url().optional().or(b.z.literal("")),total_units:b.z.coerce.number().int().optional(),total_floors:b.z.coerce.number().int().optional(),total_towers:b.z.coerce.number().int().optional(),total_area_acres:b.z.coerce.number().optional(),open_space_percent:b.z.coerce.number().min(0).max(100).optional(),possession_date:b.z.string().optional(),launch_date:b.z.string().optional(),builder_id:b.z.string().min(1,"Builder is required"),property_type_id:b.z.string().optional(),cover_image:b.z.string().optional(),brochure_url:b.z.string().optional(),video_url:b.z.string().optional(),virtual_tour_url:b.z.string().url().optional().or(b.z.literal("")),rera_number:b.z.string().optional(),rera_expiry_date:b.z.string().optional(),inquiry_email:b.z.string().email().optional().or(b.z.literal("")),inquiry_phone:b.z.string().optional(),whatsapp_number:b.z.string().optional(),meta_title:b.z.string().max(60).optional(),meta_description:b.z.string().max(160).optional(),og_image:b.z.string().optional()});b.z.object({title:b.z.string().min(5).max(255),slug:c.optional(),subtitle:b.z.string().max(500).optional(),content:b.z.string().min(100,"Content must be at least 100 characters"),excerpt:b.z.string().max(500).optional(),cover_image:b.z.string().optional(),category:b.z.string().min(1,"Category is required"),tags:b.z.string().optional(),publish_status:b.z.enum(["draft","published","archived"]).default("draft"),published_at:b.z.string().optional(),is_featured:b.z.boolean().default(!1),meta_title:b.z.string().max(60).optional(),meta_description:b.z.string().max(160).optional()}),b.z.object({status:b.z.enum(["new","contacted","qualified","site_visit","negotiating","closed_won","closed_lost","junk"]).optional(),assigned_to:b.z.string().optional(),next_follow_up:b.z.string().optional(),is_qualified:b.z.boolean().optional(),is_site_visit_done:b.z.boolean().optional()}),b.z.object({content:b.z.string().min(1,"Note content is required").max(5e3),type:b.z.enum(["note","call","email","whatsapp","site_visit","meeting"]).default("note"),is_private:b.z.boolean().default(!1)}),b.z.record(b.z.string(),b.z.string()),b.z.object({name:b.z.string().min(2).max(100),email:b.z.string().email(),phone:b.z.string().optional(),is_active:b.z.boolean().default(!0),role_ids:b.z.array(b.z.string()).optional()}),b.z.object({name:b.z.string().min(2).max(255),slug:c.optional(),logo:b.z.string().optional(),description:b.z.string().optional(),short_description:b.z.string().max(500).optional(),founded_year:b.z.coerce.number().int().min(1900).max(2030).optional(),website:b.z.string().url().optional().or(b.z.literal("")),email:b.z.string().email().optional().or(b.z.literal("")),phone:b.z.string().optional(),address:b.z.string().optional(),city_id:b.z.string().optional(),state_id:b.z.string().optional(),is_featured:b.z.boolean().default(!1),is_verified:b.z.boolean().default(!1),is_active:b.z.boolean().default(!0),meta_title:b.z.string().max(60).optional(),meta_description:b.z.string().max(160).optional()}),b.z.object({author_name:b.z.string().min(2).max(100),author_designation:b.z.string().optional(),author_company:b.z.string().optional(),author_avatar:b.z.string().optional(),content:b.z.string().min(10).max(2e3),rating:b.z.coerce.number().int().min(1).max(5),project_id:b.z.string().optional(),city:b.z.string().optional(),is_featured:b.z.boolean().default(!1),is_active:b.z.boolean().default(!0),video_url:b.z.string().optional()}),b.z.object({question:b.z.string().min(5).max(500),answer:b.z.string().min(10).max(5e3),category:b.z.string().default("general"),sort_order:b.z.coerce.number().int().default(0),is_active:b.z.boolean().default(!0),project_id:b.z.string().optional()}),a.s(["contactSchema",0,e,"enquirySchema",0,d,"projectSchema",0,f])},674746,694369,a=>{"use strict";let b=(0,a.i(164831).default)("send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]);a.s(["default",0,b],694369),a.s(["Send",0,b],674746)},344451,393507,a=>{"use strict";let b=(0,a.i(164831).default)("user",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]);a.s(["default",0,b],393507),a.s(["User",0,b],344451)},328423,321875,a=>{"use strict";let b=(0,a.i(164831).default)("message-square",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]]);a.s(["default",0,b],321875),a.s(["MessageSquare",0,b],328423)},215741,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(695245),e=a.i(159501),f=a.i(346271),g=a.i(262036),h=a.i(866491),i=a.i(162591),j=a.i(344451),k=a.i(328423),l=a.i(674746),m=a.i(79362),n=a.i(875160),o=a.i(823292),p=a.i(699570),q=a.i(866718),r=a.i(870430),s=a.i(429246),t=a.i(704607),u=a.i(405050);let v=(0,u.createServerReference)("40829cb3fc6e4ff01751d831cd4dd52d266fef087a",u.callServer,void 0,u.findSourceMapURL,"submitEnquiry");var w=a.i(368114);a.s(["EnquiryForm",0,function({projectId:a,projectName:u,source:x="website",className:y,compact:z=!1,title:A="Get Expert Advice",subtitle:B="Our property consultants are ready to help you find your dream home."}){let[C,D]=(0,c.useState)(!1),[E,F]=(0,c.useState)(!1),{register:G,handleSubmit:H,formState:{errors:I},reset:J}=(0,d.useForm)({resolver:(0,e.zodResolver)(t.enquirySchema),defaultValues:{source:x,project_id:a}}),K=async a=>{F(!0);try{let b=await v(a);b.success?(D(!0),J()):o.toast.error(b.error??"Something went wrong. Please try again.")}catch{o.toast.error("Something went wrong. Please try again.")}finally{F(!1)}};return(0,b.jsx)("div",{className:(0,w.cn)("luxury-card p-6 lg:p-8",y),children:(0,b.jsx)(g.AnimatePresence,{mode:"wait",children:C?(0,b.jsxs)(f.motion.div,{initial:{opacity:0,scale:.9},animate:{opacity:1,scale:1},className:"text-center py-8",children:[(0,b.jsx)("div",{className:"w-16 h-16 bg-green-500/15 rounded-full flex items-center justify-center mx-auto mb-4",children:(0,b.jsx)(m.CheckCircle,{className:"w-8 h-8 text-green-400"})}),(0,b.jsx)("h3",{className:"font-display text-xl font-bold text-foreground mb-2",children:"Thank You!"}),(0,b.jsx)("p",{className:"text-muted-foreground text-sm mb-6",children:"Our property consultant will reach you within 24 hours."}),(0,b.jsx)(p.Button,{variant:"gold-outline",size:"sm",onClick:()=>D(!1),children:"Submit Another Enquiry"})]},"success"):(0,b.jsxs)(f.motion.div,{initial:{opacity:0},animate:{opacity:1},children:[!z&&(0,b.jsxs)("div",{className:"mb-6",children:[(0,b.jsx)("h3",{className:"font-display text-xl lg:text-2xl font-bold text-foreground mb-2",children:A}),u&&(0,b.jsxs)("p",{className:"text-[hsl(36,82%,47%)] text-sm font-medium mb-1",children:["For: ",u]}),(0,b.jsx)("p",{className:"text-muted-foreground text-sm",children:B})]}),(0,b.jsxs)("form",{onSubmit:H(K),className:"flex flex-col gap-4",children:[(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsxs)(r.Label,{htmlFor:"enq-name",children:["Full Name ",(0,b.jsx)("span",{className:"text-destructive",children:"*"})]}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)(j.User,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground"}),(0,b.jsx)(q.Input,{id:"enq-name",...G("name"),placeholder:"John Doe",className:(0,w.cn)("pl-9",I.name&&"border-destructive")})]}),I.name&&(0,b.jsx)("p",{className:"text-xs text-destructive",children:I.name.message})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsxs)(r.Label,{htmlFor:"enq-phone",children:["Phone Number ",(0,b.jsx)("span",{className:"text-destructive",children:"*"})]}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)(h.Phone,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground"}),(0,b.jsx)(q.Input,{id:"enq-phone",...G("phone"),placeholder:"+91 98765 43210",type:"tel",className:(0,w.cn)("pl-9",I.phone&&"border-destructive")})]}),I.phone&&(0,b.jsx)("p",{className:"text-xs text-destructive",children:I.phone.message})]}),!z&&(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)(r.Label,{htmlFor:"enq-email",children:"Email Address"}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)(i.Mail,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground"}),(0,b.jsx)(q.Input,{id:"enq-email",...G("email"),placeholder:"john@example.com",type:"email",className:"pl-9"})]})]}),!z&&(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)(r.Label,{htmlFor:"enq-message",children:"Message"}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)(k.MessageSquare,{className:"absolute left-3 top-3 w-4 h-4 text-muted-foreground"}),(0,b.jsx)(s.Textarea,{id:"enq-message",...G("message"),placeholder:"I am interested in 2BHK, budget ₹1–1.5 Cr...",className:"pl-9 min-h-[100px] resize-none"})]})]}),(0,b.jsx)("input",{type:"hidden",...G("project_id"),value:a}),(0,b.jsx)("input",{type:"hidden",...G("source"),value:x}),(0,b.jsx)(p.Button,{type:"submit",variant:"gold",className:"w-full",size:"lg",disabled:E,children:E?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(n.Loader2,{className:"w-4 h-4 animate-spin"}),"Submitting..."]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(l.Send,{className:"w-4 h-4"}),"Get Free Consultation"]})}),(0,b.jsxs)("p",{className:"text-center text-xs text-muted-foreground",children:["By submitting, you agree to our"," ",(0,b.jsx)("a",{href:"/privacy",className:"underline hover:text-foreground",children:"Privacy Policy"}),". We never share your data."]})]})]},"form")})})}],215741)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_1sseqap._.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
module.exports=[137936,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(211857)},713095,(a,b,c)=>{"use strict";function d(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof c}.
|
|
2
|
-
Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},466471,a=>{"use strict";var b=a.i(306646);a.s([],543050),a.i(543050),a.s(["
|
|
2
|
+
Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},466471,a=>{"use strict";var b=a.i(306646);a.s([],543050),a.i(543050),a.s(["409fd8117d5bf863e1ce4bf92dea1bcfc43248996d",()=>b.submitContact],466471)},674098,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_plugins_hooks-manager_ts_04m6z7f._.js"].map(b=>a.l(b))).then(()=>b(615120)))},839090,a=>{a.v(a=>Promise.resolve().then(()=>a(780099)))}];
|
|
3
3
|
|
|
4
4
|
//# sourceMappingURL=_212t7ar._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[883419,a=>{"use strict";var b=a.i(137936),c=a.i(118558),d=a.i(109307),e=a.i(257807);async function f(){try{let a=await e.repositories.pages.findAll();return{success:!0,data:a}}catch(a){return{success:!1,error:a.message}}}async function g(a){try{let b=await e.repositories.pages.findById(a);if(!b)return{success:!1,error:"Page not found"};return{success:!0,data:b}}catch(a){return{success:!1,error:a.message}}}async function h(a){try{let b=await (0,d.auth)();if(!b?.user?.id)return{success:!1,error:"Unauthorized"};if(await e.repositories.pages.findBy("slug",a.slug))return{success:!1,error:"A page with this slug already exists"};let f=await e.repositories.pages.create({...a,content:a.content??JSON.stringify({version:"1.0",blocks:[]}),template:a.template??"default",publish_status:a.publish_status??"draft",created_by:b.user.id});return(0,c.revalidatePath)("/admin/cms/pages"),{success:!0,data:f}}catch(a){return{success:!1,error:a.message}}}async function i(a,b){try{let f=await (0,d.auth)();if(!f?.user?.id)return{success:!1,error:"Unauthorized"};let g=await e.repositories.pages.findById(a);if(!g)return{success:!1,error:"Page not found"};await e.repositories.pageRevisions.createRevision(a,g.title,g.content,f.user.id);let h=await e.repositories.pages.update(a,b);if(!h)return{success:!1,error:"Update failed"};return(0,c.revalidatePath)("/admin/cms/pages"),(0,c.revalidatePath)(`/${g.slug}`),{success:!0,data:h}}catch(a){return{success:!1,error:a.message}}}async function j(a){return i(a,{publish_status:"published",published_at:new Date().toISOString()})}async function k(a){return i(a,{publish_status:"draft"})}async function l(a){try{let b=await (0,d.auth)();if(!b?.user?.id)return{success:!1,error:"Unauthorized"};let f=await e.repositories.pages.delete(a);return(0,c.revalidatePath)("/admin/cms/pages"),{success:!0,data:f}}catch(a){return{success:!1,error:a.message}}}async function m(a,b){return i(a,{content:JSON.stringify(b)})}async function n(a){try{let b=await e.repositories.pageRevisions.findByPage(a);return{success:!0,data:b}}catch(a){return{success:!1,error:a.message}}}async function o(){try{let a=await e.repositories.navigationMenus.findAll();return{success:!0,data:a}}catch(a){return{success:!1,error:a.message}}}async function p(a){try{let b=await e.repositories.navigationMenus.findById(a);if(!b)return{success:!1,error:"Menu not found"};let c=await e.repositories.menuItems.findByMenu(a);return{success:!0,data:{...b,items:c}}}catch(a){return{success:!1,error:a.message}}}async function q(a,b){try{for(let b of(await e.repositories.menuItems.findByMenu(a)))await e.repositories.menuItems.delete(b.id);for(let c of b)await e.repositories.menuItems.create({menu_id:a,label:c.label,url:c.url,page_id:c.page_id,parent_id:c.parent_id??null,target:c.target??"_self",icon:c.icon,sort_order:c.sort_order,is_active:c.is_active});return(0,c.revalidatePath)("/admin/cms/menus"),{success:!0,data:!0}}catch(a){return{success:!1,error:a.message}}}async function r(){try{let a=await e.repositories.redirects.findAll();return{success:!0,data:a}}catch(a){return{success:!1,error:a.message}}}async function s(a){try{return await e.repositories.redirects.create(a),(0,c.revalidatePath)("/admin/cms/redirects"),{success:!0,data:!0}}catch(a){return{success:!1,error:a.message}}}async function t(a){try{return await e.repositories.redirects.delete(a),(0,c.revalidatePath)("/admin/cms/redirects"),{success:!0,data:!0}}catch(a){return{success:!1,error:a.message}}}async function u(){try{let a=await e.repositories.settings.db.execute("SELECT * FROM email_templates ORDER BY name ASC");return{success:!0,data:a}}catch(a){return{success:!1,error:a.message}}}async function v(b){try{if(b.id){let a=e.repositories.settings.db;await a.execute("UPDATE email_templates SET name=?, slug=?, subject=?, html_body=?, text_body=?, variables=?, description=?, is_active=?, updated_at=? WHERE id=?",[b.name,b.slug,b.subject,b.html_body,b.text_body??"",b.variables??"",b.description??"",b.is_active?"1":"0",new Date().toISOString(),b.id])}else{let c=e.repositories.settings.db,{v4:d}=await a.A(837706);await c.execute("INSERT INTO email_templates (id, name, slug, subject, html_body, text_body, variables, description, is_active, created_at, updated_at) VALUES (?,?,?,?,?,?,?,?,?,?,?)",[d(),b.name,b.slug,b.subject,b.html_body,b.text_body??"",b.variables??"",b.description??"",b.is_active?"1":"0",new Date().toISOString(),new Date().toISOString()])}return(0,c.revalidatePath)("/admin/cms/email-templates"),{success:!0,data:!0}}catch(a){return{success:!1,error:a.message}}}async function w(a){try{let b=await e.repositories.settings.getGroup(a);return{success:!0,data:b}}catch(a){return{success:!1,error:a.message}}}async function x(a,b){try{for(let[a,c]of Object.entries(b))await e.repositories.settings.set(a,c);return(0,c.revalidatePath)("/admin/settings"),(0,c.revalidatePath)("/"),{success:!0,data:!0}}catch(a){return{success:!1,error:a.message}}}async function y(){try{let a=await e.repositories.settings.getAll();return{success:!0,data:a}}catch(a){return{success:!1,error:a.message}}}async function z(){try{let a=await e.repositories.themes.findAll();return{success:!0,data:a}}catch(a){return{success:!1,error:a.message}}}async function A(){try{let a=await e.repositories.themes.getActive();return{success:!0,data:a}}catch(a){return{success:!1,error:a.message}}}async function B(a){try{return await e.repositories.themes.setActive(a),(0,c.revalidatePath)("/"),(0,c.revalidatePath)("/admin"),{success:!0,data:!0}}catch(a){return{success:!1,error:a.message}}}async function C(a){try{if(a.id){let b=await e.repositories.themes.findBySlug(a.slug);if(b&&b.id!==a.id)return{success:!1,error:"A theme with this slug or name already exists."};await e.repositories.themes.update(a.id,a)}else{if(await e.repositories.themes.findBySlug(a.slug))return{success:!1,error:"A theme with this slug or name already exists."};await e.repositories.themes.create({...a,is_active:!1,is_system:!1})}return(0,c.revalidatePath)("/admin/theme"),{success:!0,data:!0}}catch(a){return{success:!1,error:a.message}}}async function D(a){try{let b=await e.repositories.themes.exportTheme(a);if(!b)return{success:!1,error:"Theme not found"};return{success:!0,data:b}}catch(a){return{success:!1,error:a.message}}}async function E(a){try{let b=JSON.parse(a),d=await e.repositories.themes.findBySlug(b.slug);return d?await e.repositories.themes.update(d.id,{name:b.name,description:b.description,tokens:JSON.stringify(b.tokens),version:b.version,author:b.author}):await e.repositories.themes.create({name:b.name,slug:b.slug,description:b.description,tokens:JSON.stringify(b.tokens),version:b.version,author:b.author,is_active:!1,is_system:!1}),(0,c.revalidatePath)("/admin/theme"),{success:!0,data:!0}}catch(a){return{success:!1,error:a.message}}}async function F(a){try{let b=await e.repositories.themes.findById(a);if(!b)return{success:!1,error:"Theme not found"};let d=`${b.slug}-copy-${Math.random().toString(36).slice(2,6)}`;return await e.repositories.themes.create({name:`${b.name} (Copy)`,slug:d,description:b.description,tokens:b.tokens,is_active:!1,is_system:!1,author:"PropVault Custom",version:"1.0"}),(0,c.revalidatePath)("/admin/theme"),{success:!0,data:!0}}catch(a){return{success:!1,error:a.message}}}async function G(b){try{if(!await e.repositories.themes.findById(b))return{success:!1,error:"Theme not found"};let{getSystemDefaultTokens:d}=await a.A(245770),f=d();return await e.repositories.themes.update(b,{tokens:JSON.stringify(f)}),(0,c.revalidatePath)("/admin/theme"),(0,c.revalidatePath)("/"),{success:!0,data:!0}}catch(a){return{success:!1,error:a.message}}}async function H(a){try{let b=await e.repositories.themes.findById(a);if(!b)return{success:!1,error:"Theme not found"};let d=b.is_active;if("1"===d||"1.0"===d||"true"===d||!0===d)return{success:!1,error:"Cannot delete the active theme."};return await e.repositories.themes.delete(a),(0,c.revalidatePath)("/admin/theme"),{success:!0,data:!0}}catch(a){return{success:!1,error:a.message}}}async function I(){try{let a=await (0,d.auth)();if(!a?.user?.id)return{success:!1,error:"Unauthorized"};let b=await e.repositories.settings.db.execute("SELECT id, name, key_prefix, permissions, is_active, last_used_at, expires_at, rate_limit, created_at FROM api_keys WHERE user_id = ? ORDER BY created_at DESC",[a.user.id]);return{success:!0,data:b}}catch(a){return{success:!1,error:a.message}}}async function J(b){try{let f=await (0,d.auth)();if(!f?.user?.id)return{success:!1,error:"Unauthorized"};let{v4:g}=await a.A(837706),h=await a.A(485685),i=`pv_${g().replace(/-/g,"")}`,j=i.slice(0,10),k=h.createHash("sha256").update(i).digest("hex"),l=e.repositories.settings.db;return await l.execute("INSERT INTO api_keys (id, name, key_hash, key_prefix, user_id, permissions, is_active, rate_limit, expires_at, created_at, updated_at) VALUES (?,?,?,?,?,?,?,?,?,?,?)",[g(),b.name,k,j,f.user.id,b.permissions??"","1",String(b.rate_limit??1e3),b.expires_at??"",new Date().toISOString(),new Date().toISOString()]),(0,c.revalidatePath)("/admin/settings/api-keys"),{success:!0,data:{key:i,prefix:j}}}catch(a){return{success:!1,error:a.message}}}async function K(a){try{let b=e.repositories.settings.db;return await b.execute("UPDATE api_keys SET is_active = '0', updated_at = ? WHERE id = ?",[new Date().toISOString(),a]),(0,c.revalidatePath)("/admin/settings/api-keys"),{success:!0,data:!0}}catch(a){return{success:!1,error:a.message}}}async function L(){try{let a=(await e.repositories.projects.findAll()).filter(a=>"published"===a.publish_status||"published"===a.status);return{success:!0,data:a}}catch(a){return{success:!1,error:a.message}}}async function M(){try{let a=(await e.repositories.builders.findAll()).filter(a=>"1"===String(a.is_active)||!0===a.is_active);return{success:!0,data:a}}catch(a){return{success:!1,error:a.message}}}async function N(){try{let a=(await e.repositories.agents.findAll()).filter(a=>"1"===String(a.is_active)||!0===a.is_active);return{success:!0,data:a}}catch(a){return{success:!1,error:a.message}}}(0,a.i(713095).ensureServerEntryExports)([f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N]),(0,b.registerServerReference)(f,"00cc48f0f653676639d916b0b2812d6f947ad93882",null),(0,b.registerServerReference)(g,"40b226a309aa70423b00921d65417856d5192119f1",null),(0,b.registerServerReference)(h,"400d7c5de8c911aa1451b3417694804211d835ba5b",null),(0,b.registerServerReference)(i,"6020a297e3fd7deb8f19188192e97b93d0f00f33b4",null),(0,b.registerServerReference)(j,"40491e13c34b160127e0728ff9231cdb61a44a9031",null),(0,b.registerServerReference)(k,"40c26456aa123b8ba0887fe6e82095d560cdf5f235",null),(0,b.registerServerReference)(l,"4005fdff8e35ceb504814ca50a6b06817b2e6b2c1c",null),(0,b.registerServerReference)(m,"60dd31271122c807118ac25f777211a5379c879cd4",null),(0,b.registerServerReference)(n,"409104a6e5c5e187da336471d52862d6849212b945",null),(0,b.registerServerReference)(o,"0003b6e96d1d4728fb7fc6f0b6bce3686ec143cf12",null),(0,b.registerServerReference)(p,"40ba2d71366cd621902d2c3a63f295859659a479cc",null),(0,b.registerServerReference)(q,"60bc80a2fbc6b5ad421966a68eb7fb7af2e8d92a0e",null),(0,b.registerServerReference)(r,"006311e6febb62b47dc95da21079abf8ab8bbe50e9",null),(0,b.registerServerReference)(s,"40be6e2dd0bc4c20bfa751078f962befc55102a996",null),(0,b.registerServerReference)(t,"4065d507ed2911e8cd62951693455462bf2796f2e5",null),(0,b.registerServerReference)(u,"00b10623c9f2dd5239eade6c2618ccadc046f08a1f",null),(0,b.registerServerReference)(v,"40366c16402ef1d69b9b2c0657421e97fe0dfbdbd8",null),(0,b.registerServerReference)(w,"401cc5a0d02e3471bb9cb7114f2c66f3a48945b073",null),(0,b.registerServerReference)(x,"60943df2f95bdd57b09fe75171ce8faaea7c6566f4",null),(0,b.registerServerReference)(y,"00994dc96b9aa43e16b8f4009c0b5acadfecd227f9",null),(0,b.registerServerReference)(z,"00c2e91fe161539890a550a3e38ea91e60608c83c9",null),(0,b.registerServerReference)(A,"00bf22031330d14de8a943cfef53ab27a6c5adf8e2",null),(0,b.registerServerReference)(B,"4064e41cc0857f390c46374824dbb2a0c8a69d3c01",null),(0,b.registerServerReference)(C,"40fc8287535c514744bf050f489c80b78f2b517bae",null),(0,b.registerServerReference)(D,"40434b2df0d08ac7599ee16fe926fee0cef3e513d5",null),(0,b.registerServerReference)(E,"40bf86678b28d2d4e1b00d380d586ee4e2a013925e",null),(0,b.registerServerReference)(F,"40b723ed39b83027664342440f714dc651726d3c23",null),(0,b.registerServerReference)(G,"409d3835dbadcce7891d108cc38aca7df9dd59cd79",null),(0,b.registerServerReference)(H,"406a081c58cd1c8fc33d4e319bc2c608934e1ba9b0",null),(0,b.registerServerReference)(I,"0019ae0967e5acb14e32268bc3e9349e89c66fb26c",null),(0,b.registerServerReference)(J,"40a4e33544eac4558d46f01f8e3a48d33cc477802f",null),(0,b.registerServerReference)(K,"405bd5acd94357f9694d9c92a8a741119ae1c29574",null),(0,b.registerServerReference)(L,"00bb978d79c73575497dd6082dd2e81be6fcd00859",null),(0,b.registerServerReference)(M,"00b17e35464e69aafc2513bcf365e1f48ddb6dfff6",null),(0,b.registerServerReference)(N,"0078edb00f14e2ce06b7f70eff5732a076fa0cbdc7",null),a.s(["activateTheme",0,B,"createApiKey",0,J,"createPage",0,h,"createRedirect",0,s,"deletePage",0,l,"deleteRedirect",0,t,"deleteTheme",0,H,"duplicateTheme",0,F,"exportTheme",0,D,"getActiveTheme",0,A,"getAllSettings",0,y,"getApiKeys",0,I,"getEmailTemplates",0,u,"getMenuWithItems",0,p,"getMenus",0,o,"getPage",0,g,"getPageRevisions",0,n,"getPages",0,f,"getPublicAgents",0,N,"getPublicBuilders",0,M,"getPublicProjects",0,L,"getRedirects",0,r,"getSettingsGroup",0,w,"getThemes",0,z,"importTheme",0,E,"publishPage",0,j,"resetTheme",0,G,"revokeApiKey",0,K,"saveEmailTemplate",0,v,"saveMenuItems",0,q,"savePageBlocks",0,m,"saveSettingsGroup",0,x,"saveTheme",0,C,"unpublishPage",0,k,"updatePage",0,i])}];
|
|
1
|
+
module.exports=[883419,a=>{"use strict";var b=a.i(137936),c=a.i(118558),d=a.i(109307),e=a.i(257807);async function f(){try{let a=await e.repositories.pages.findAll();return{success:!0,data:a}}catch(a){return{success:!1,error:a.message}}}async function g(a){try{let b=await e.repositories.pages.findById(a);if(!b)return{success:!1,error:"Page not found"};return{success:!0,data:b}}catch(a){return{success:!1,error:a.message}}}async function h(a){try{let b=await (0,d.auth)();if(!b?.user?.id)return{success:!1,error:"Unauthorized"};if(await e.repositories.pages.findBy("slug",a.slug))return{success:!1,error:"A page with this slug already exists"};let f=await e.repositories.pages.create({...a,content:a.content??JSON.stringify({version:"1.0",blocks:[]}),template:a.template??"default",publish_status:a.publish_status??"draft",created_by:b.user.id});return(0,c.revalidatePath)("/admin/cms/pages"),{success:!0,data:f}}catch(a){return{success:!1,error:a.message}}}async function i(a,b){try{let f=await (0,d.auth)();if(!f?.user?.id)return{success:!1,error:"Unauthorized"};let g=await e.repositories.pages.findById(a);if(!g)return{success:!1,error:"Page not found"};await e.repositories.pageRevisions.createRevision(a,g.title,g.content,f.user.id);let h=await e.repositories.pages.update(a,b);if(!h)return{success:!1,error:"Update failed"};return(0,c.revalidatePath)("/admin/cms/pages"),(0,c.revalidatePath)(`/${g.slug}`),{success:!0,data:h}}catch(a){return{success:!1,error:a.message}}}async function j(a){return i(a,{publish_status:"published",published_at:new Date().toISOString()})}async function k(a){return i(a,{publish_status:"draft"})}async function l(a){try{let b=await (0,d.auth)();if(!b?.user?.id)return{success:!1,error:"Unauthorized"};let f=await e.repositories.pages.delete(a);return(0,c.revalidatePath)("/admin/cms/pages"),{success:!0,data:f}}catch(a){return{success:!1,error:a.message}}}async function m(a,b){return i(a,{content:JSON.stringify(b)})}async function n(a){try{let b=await e.repositories.pageRevisions.findByPage(a);return{success:!0,data:b}}catch(a){return{success:!1,error:a.message}}}async function o(){try{let a=await e.repositories.navigationMenus.findAll();return{success:!0,data:a}}catch(a){return{success:!1,error:a.message}}}async function p(a){try{let b=await e.repositories.navigationMenus.findById(a);if(!b)return{success:!1,error:"Menu not found"};let c=await e.repositories.menuItems.findByMenu(a);return{success:!0,data:{...b,items:c}}}catch(a){return{success:!1,error:a.message}}}async function q(a,b){try{for(let b of(await e.repositories.menuItems.findByMenu(a)))await e.repositories.menuItems.delete(b.id);for(let c of b)await e.repositories.menuItems.create({menu_id:a,label:c.label,url:c.url,page_id:c.page_id,parent_id:c.parent_id??null,target:c.target??"_self",icon:c.icon,sort_order:c.sort_order,is_active:c.is_active});return(0,c.revalidatePath)("/admin/cms/menus"),{success:!0,data:!0}}catch(a){return{success:!1,error:a.message}}}async function r(){try{let a=await e.repositories.redirects.findAll();return{success:!0,data:a}}catch(a){return{success:!1,error:a.message}}}async function s(a){try{return await e.repositories.redirects.create(a),(0,c.revalidatePath)("/admin/cms/redirects"),{success:!0,data:!0}}catch(a){return{success:!1,error:a.message}}}async function t(a){try{return await e.repositories.redirects.delete(a),(0,c.revalidatePath)("/admin/cms/redirects"),{success:!0,data:!0}}catch(a){return{success:!1,error:a.message}}}async function u(){try{let a=await e.repositories.settings.db.execute("SELECT * FROM email_templates ORDER BY name ASC");return{success:!0,data:a}}catch(a){return{success:!1,error:a.message}}}async function v(b){try{if(b.id){let a=e.repositories.settings.db;await a.execute("UPDATE email_templates SET name=?, slug=?, subject=?, html_body=?, text_body=?, variables=?, description=?, is_active=?, updated_at=? WHERE id=?",[b.name,b.slug,b.subject,b.html_body,b.text_body??"",b.variables??"",b.description??"",b.is_active?"1":"0",new Date().toISOString(),b.id])}else{let c=e.repositories.settings.db,{v4:d}=await a.A(837706);await c.execute("INSERT INTO email_templates (id, name, slug, subject, html_body, text_body, variables, description, is_active, created_at, updated_at) VALUES (?,?,?,?,?,?,?,?,?,?,?)",[d(),b.name,b.slug,b.subject,b.html_body,b.text_body??"",b.variables??"",b.description??"",b.is_active?"1":"0",new Date().toISOString(),new Date().toISOString()])}return(0,c.revalidatePath)("/admin/cms/email-templates"),{success:!0,data:!0}}catch(a){return{success:!1,error:a.message}}}async function w(a){try{let b=await e.repositories.settings.getGroup(a);return{success:!0,data:b}}catch(a){return{success:!1,error:a.message}}}async function x(a,b){try{for(let[a,c]of Object.entries(b))await e.repositories.settings.set(a,c);return(0,c.revalidatePath)("/admin/settings"),(0,c.revalidatePath)("/"),{success:!0,data:!0}}catch(a){return{success:!1,error:a.message}}}async function y(){try{let a=await e.repositories.settings.getAll();return{success:!0,data:a}}catch(a){return{success:!1,error:a.message}}}async function z(){try{let a=await e.repositories.themes.findAll();return{success:!0,data:a}}catch(a){return{success:!1,error:a.message}}}async function A(){try{let a=await e.repositories.themes.getActive();return{success:!0,data:a}}catch(a){return{success:!1,error:a.message}}}async function B(a){try{return await e.repositories.themes.setActive(a),(0,c.revalidatePath)("/"),(0,c.revalidatePath)("/admin"),{success:!0,data:!0}}catch(a){return{success:!1,error:a.message}}}async function C(a){try{if(a.id){let b=await e.repositories.themes.findBySlug(a.slug);if(b&&b.id!==a.id)return{success:!1,error:"A theme with this slug or name already exists."};await e.repositories.themes.update(a.id,a)}else{if(await e.repositories.themes.findBySlug(a.slug))return{success:!1,error:"A theme with this slug or name already exists."};await e.repositories.themes.create({...a,is_active:!1,is_system:!1})}return(0,c.revalidatePath)("/admin/theme"),{success:!0,data:!0}}catch(a){return{success:!1,error:a.message}}}async function D(a){try{let b=await e.repositories.themes.exportTheme(a);if(!b)return{success:!1,error:"Theme not found"};return{success:!0,data:b}}catch(a){return{success:!1,error:a.message}}}async function E(a){try{let b=JSON.parse(a),d=await e.repositories.themes.findBySlug(b.slug);return d?await e.repositories.themes.update(d.id,{name:b.name,description:b.description,tokens:JSON.stringify(b.tokens),version:b.version,author:b.author}):await e.repositories.themes.create({name:b.name,slug:b.slug,description:b.description,tokens:JSON.stringify(b.tokens),version:b.version,author:b.author,is_active:!1,is_system:!1}),(0,c.revalidatePath)("/admin/theme"),{success:!0,data:!0}}catch(a){return{success:!1,error:a.message}}}async function F(a){try{let b=await e.repositories.themes.findById(a);if(!b)return{success:!1,error:"Theme not found"};let d=`${b.slug}-copy-${Math.random().toString(36).slice(2,6)}`;return await e.repositories.themes.create({name:`${b.name} (Copy)`,slug:d,description:b.description,tokens:b.tokens,is_active:!1,is_system:!1,author:"PropVault Custom",version:"1.0"}),(0,c.revalidatePath)("/admin/theme"),{success:!0,data:!0}}catch(a){return{success:!1,error:a.message}}}async function G(b){try{if(!await e.repositories.themes.findById(b))return{success:!1,error:"Theme not found"};let{getSystemDefaultTokens:d}=await a.A(245770),f=d();return await e.repositories.themes.update(b,{tokens:JSON.stringify(f)}),(0,c.revalidatePath)("/admin/theme"),(0,c.revalidatePath)("/"),{success:!0,data:!0}}catch(a){return{success:!1,error:a.message}}}async function H(a){try{let b=await e.repositories.themes.findById(a);if(!b)return{success:!1,error:"Theme not found"};let d=b.is_active;if("1"===d||"1.0"===d||"true"===d||!0===d)return{success:!1,error:"Cannot delete the active theme."};return await e.repositories.themes.delete(a),(0,c.revalidatePath)("/admin/theme"),{success:!0,data:!0}}catch(a){return{success:!1,error:a.message}}}async function I(){try{let a=await (0,d.auth)();if(!a?.user?.id)return{success:!1,error:"Unauthorized"};let b=await e.repositories.settings.db.execute("SELECT id, name, key_prefix, permissions, is_active, last_used_at, expires_at, rate_limit, created_at FROM api_keys WHERE user_id = ? ORDER BY created_at DESC",[a.user.id]);return{success:!0,data:b}}catch(a){return{success:!1,error:a.message}}}async function J(b){try{let f=await (0,d.auth)();if(!f?.user?.id)return{success:!1,error:"Unauthorized"};let{v4:g}=await a.A(837706),h=await a.A(485685),i=`pv_${g().replace(/-/g,"")}`,j=i.slice(0,10),k=h.createHash("sha256").update(i).digest("hex"),l=e.repositories.settings.db;return await l.execute("INSERT INTO api_keys (id, name, key_hash, key_prefix, user_id, permissions, is_active, rate_limit, expires_at, created_at, updated_at) VALUES (?,?,?,?,?,?,?,?,?,?,?)",[g(),b.name,k,j,f.user.id,b.permissions??"","1",String(b.rate_limit??1e3),b.expires_at??"",new Date().toISOString(),new Date().toISOString()]),(0,c.revalidatePath)("/admin/settings/api-keys"),{success:!0,data:{key:i,prefix:j}}}catch(a){return{success:!1,error:a.message}}}async function K(a){try{let b=e.repositories.settings.db;return await b.execute("UPDATE api_keys SET is_active = '0', updated_at = ? WHERE id = ?",[new Date().toISOString(),a]),(0,c.revalidatePath)("/admin/settings/api-keys"),{success:!0,data:!0}}catch(a){return{success:!1,error:a.message}}}async function L(){try{let a=(await e.repositories.projects.findAll()).filter(a=>"published"===a.publish_status||"published"===a.status);return{success:!0,data:a}}catch(a){return{success:!1,error:a.message}}}async function M(){try{let a=(await e.repositories.builders.findAll()).filter(a=>"1"===String(a.is_active)||!0===a.is_active);return{success:!0,data:a}}catch(a){return{success:!1,error:a.message}}}async function N(){try{let a=(await e.repositories.agents.findAll()).filter(a=>"1"===String(a.is_active)||!0===a.is_active);return{success:!0,data:a}}catch(a){return{success:!1,error:a.message}}}(0,a.i(713095).ensureServerEntryExports)([f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N]),(0,b.registerServerReference)(f,"002146bdc5032081859b01f629bd9cfc80743c1300",null),(0,b.registerServerReference)(g,"404195eafcb0a3429098e58da0d20e36f07f67a474",null),(0,b.registerServerReference)(h,"405e7d47de2440cd12ddc65af1ae5ffc0a6c2122a4",null),(0,b.registerServerReference)(i,"6002543835684312354fc1afa68f197d01bdc05f55",null),(0,b.registerServerReference)(j,"40868c2b7b1314761b196708b54ecd895365879dec",null),(0,b.registerServerReference)(k,"40a3cc0eb430c78457910ab521310f8b80b3b11f05",null),(0,b.registerServerReference)(l,"40bf8bd1b25882167ccaa4d90d1bbffe55096e9317",null),(0,b.registerServerReference)(m,"60014c62703b1b140febe8a4f902a3eeeebe3d4ee7",null),(0,b.registerServerReference)(n,"400830d31ec0158fa816adfa23e1dacc32b6ac536c",null),(0,b.registerServerReference)(o,"001693ab44a20533b156d7e7e02851dd61dc132fdc",null),(0,b.registerServerReference)(p,"40487504e0861b22d14c8e30f4192e7e9e0ad708be",null),(0,b.registerServerReference)(q,"6090d735bd365ff19772707a212d52dc9c6e1fbef9",null),(0,b.registerServerReference)(r,"00a017bd7945294000dda28861283775c157d128a6",null),(0,b.registerServerReference)(s,"407f54003b848bf60df0ef0c468d815e6361ee587f",null),(0,b.registerServerReference)(t,"40c57563aac66a43cccd99e6065023ab4f2bc6d3e1",null),(0,b.registerServerReference)(u,"00114fe810594e9aa29b06992aaee6e03ed2e7e0ea",null),(0,b.registerServerReference)(v,"40fcd155bc44aac31fd33539b9523032b00d4189e5",null),(0,b.registerServerReference)(w,"40ccf7e8a80cc7ef1082037fe14289f738d367ac67",null),(0,b.registerServerReference)(x,"6060a4b26d62d4d4cec46005debf62b42d4f2aa197",null),(0,b.registerServerReference)(y,"0089ec708868f762cbb7d002ab62bec69bf9408ec7",null),(0,b.registerServerReference)(z,"00c9edc3314e91bbea40b61df943369716704b389d",null),(0,b.registerServerReference)(A,"0053440abae7915719ed33bfde1519ce3832947937",null),(0,b.registerServerReference)(B,"40684e26f1f57404931991a6db47c96dd6d2ad9159",null),(0,b.registerServerReference)(C,"40c7f9ce9f9f66174ff0ebc3af96bbd73bf75e22e5",null),(0,b.registerServerReference)(D,"40f08be68e37bce786d46de2289911e97fc6e5afaf",null),(0,b.registerServerReference)(E,"40430f0a1f096d5e662f37dff5ac62db2fd0956d35",null),(0,b.registerServerReference)(F,"4076bff9e18505081df3bf9a381be6f5afcf4f81c5",null),(0,b.registerServerReference)(G,"40aa389c4d708594be77f44aa638c0ff1948170d70",null),(0,b.registerServerReference)(H,"40db76e57f0ba5e9fdbc949d502bc19e2d9b028e14",null),(0,b.registerServerReference)(I,"0098b7d8409962a1417fa5eb7d5b23b67ef6361039",null),(0,b.registerServerReference)(J,"4003cc04b7b368043cc72554e8bcdd7155575bc271",null),(0,b.registerServerReference)(K,"4083adfc733d598fd7fa24296a8826f29894978399",null),(0,b.registerServerReference)(L,"0058a3b1a48e94c5432629dba5491d35ecfff26cbe",null),(0,b.registerServerReference)(M,"00bf9f63948c2c6bcf332adcc92f8221f7381e1b09",null),(0,b.registerServerReference)(N,"00ea4ec3168f8e372709be502a009293fe346a5288",null),a.s(["activateTheme",0,B,"createApiKey",0,J,"createPage",0,h,"createRedirect",0,s,"deletePage",0,l,"deleteRedirect",0,t,"deleteTheme",0,H,"duplicateTheme",0,F,"exportTheme",0,D,"getActiveTheme",0,A,"getAllSettings",0,y,"getApiKeys",0,I,"getEmailTemplates",0,u,"getMenuWithItems",0,p,"getMenus",0,o,"getPage",0,g,"getPageRevisions",0,n,"getPages",0,f,"getPublicAgents",0,N,"getPublicBuilders",0,M,"getPublicProjects",0,L,"getRedirects",0,r,"getSettingsGroup",0,w,"getThemes",0,z,"importTheme",0,E,"publishPage",0,j,"resetTheme",0,G,"revokeApiKey",0,K,"saveEmailTemplate",0,v,"saveMenuItems",0,q,"savePageBlocks",0,m,"saveSettingsGroup",0,x,"saveTheme",0,C,"unpublishPage",0,k,"updatePage",0,i])}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_actions_cms_ts_0_rm7-x._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[600592,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(50944),e=a.i(823292),f=a.i(262036),g=a.i(403512),h=a.i(980180),i=a.i(341476),j=a.i(589027),k=a.i(585650),l=a.i(755681),m=a.i(777064),n=a.i(442674),n=n,o=a.i(348982),o=o,p=a.i(879675),q=a.i(696732),r=a.i(873019),s=a.i(982453),t=a.i(71215),u=a.i(803649),u=u,v=a.i(520293),w=a.i(328423),x=a.i(360061),x=x,y=a.i(285888),z=a.i(308311),A=a.i(704803),A=A,B=a.i(104647),C=a.i(682314),C=C,D=a.i(149429),D=D,E=a.i(492378),F=a.i(483138),G=a.i(113608),H=a.i(912265),I=a.i(371789),I=I,J=a.i(139353),K=a.i(674078),K=K,L=a.i(640268),L=L,M=a.i(847730),M=M,N=a.i(368114),O=a.i(699570),P=a.i(866718),Q=a.i(870430),R=a.i(429246),S=a.i(563658),T=a.i(692351),U=a.i(224453),V=a.i(675181);let W=[{type:"hero",label:"Hero Banner",description:"Full-width hero with headline, subtitle, and CTA",icon:r.Layout,category:"Layout",defaultConfig:{title:"Signature Real Estate Collection",subtitle:"Discover curated premium luxury apartments, villas, and commercial spaces across India's top cities.",backgroundImage:"https://images.unsplash.com/photo-1600585154340-be6161a56a0c",primaryBtnText:"Explore Properties",primaryBtnLink:"/projects",secondaryBtnText:"Contact Advisory",secondaryBtnLink:"/contact",overlayOpacity:.6,align:"center",height:"600px"}},{type:"heading",label:"Heading",description:"Section title with optional subtitle",icon:s.Type,category:"Typography",defaultConfig:{title:"Section Heading",level:"h2",subtitle:"",align:"center"}},{type:"text",label:"Rich Text",description:"Formatted text content block",icon:F.FileText,category:"Typography",defaultConfig:{content:"Your content goes here...",align:"left"}},{type:"image",label:"Image",description:"Single image with optional caption",icon:t.Image,category:"Media",defaultConfig:{src:"",alt:"",caption:"",width:"full",rounded:!0}},{type:"gallery",label:"Gallery",description:"Grid or masonry photo gallery",icon:C.default,category:"Media",defaultConfig:{images:[],columns:3,gap:"medium",style:"grid"}},{type:"video",label:"Video",description:"Embedded video player",icon:u.default,category:"Media",defaultConfig:{url:"",autoplay:!1,loop:!1,muted:!0,poster:""}},{type:"testimonials",label:"Testimonials",description:"Customer testimonials carousel",icon:w.MessageSquare,category:"Social Proof",defaultConfig:{items:[],layout:"carousel",show_rating:!0}},{type:"pricing",label:"Pricing Table",description:"Pricing plans with features",icon:x.default,category:"Commerce",defaultConfig:{plans:[],columns:3,highlight_index:1}},{type:"team",label:"Team Grid",description:"Team member profiles",icon:y.Users,category:"People",defaultConfig:{members:[],columns:4,show_social:!0}},{type:"timeline",label:"Timeline",description:"Chronological events",icon:z.Clock,category:"Content",defaultConfig:{events:[],layout:"vertical",alternating:!0}},{type:"faq",label:"FAQ Accordion",description:"Frequently asked questions accordion",icon:A.default,category:"Content",defaultConfig:{items:[],style:"accordion"}},{type:"counters",label:"Counters",description:"Animated stat counters",icon:v.BarChart2,category:"Content",defaultConfig:{items:[{label:"Projects",value:500,suffix:"+"}],columns:4}},{type:"cta",label:"Call to Action",description:"High-impact CTA section",icon:E.Zap,category:"Conversion",defaultConfig:{headline:"Ready to Get Started?",description:"",primary_label:"Contact Us",primary_url:"/contact",secondary_label:"",secondary_url:"",background:"primary"}},{type:"property_grid",label:"Property Grid",description:"Featured properties from database",icon:C.default,category:"Real Estate",defaultConfig:{title:"Featured Listings",subtitle:"Curated premium properties",limit:6}},{type:"builders_grid",label:"Builders Grid",description:"Developer partners logos",icon:D.default,category:"Real Estate",defaultConfig:{title:"Our Developer Partners",subtitle:"RERA verified creators only",limit:8}},{type:"map",label:"Interactive Map",description:"Google or Leaflet Map container",icon:B.Map,category:"Layout",defaultConfig:{title:"Location Coordinates",address:"Bandra Kurla Complex, Mumbai, India",latitude:"19.0596",longitude:"72.8696"}}],X=()=>Math.random().toString(36).substring(2,9),Y={"site.name":"PropVault","site.description":"Signature Luxury Real Estate Collection. Direct builder pricing and RERA verified only.","organization.industry":"Luxury Real Estate","contact.email":"concierge@propvault.luxury","contact.phone":"+91 99999 88888","contact.address":"Marina One Suite, Bandra Kurla Complex, Mumbai","footer.certifications":"RERA Registration No: AG000001234","site.tagline":"Frictionless Luxury Housing","branding.logo":"/logo/logo.png","navigation.header":JSON.stringify([{label:"Home",href:"/"},{label:"Projects",href:"/projects"},{label:"Builders",href:"/builders"},{label:"Blog",href:"/blog"},{label:"Contact",href:"/contact"}])};function Z({block:a,onChange:c}){let d=W.find(b=>b.type===a.type),e=a.config||{},f=(a,b)=>{c({...e,[a]:b})};return(0,b.jsxs)("div",{className:"h-full overflow-y-auto",children:[(0,b.jsxs)("div",{className:"p-4 border-b border-border sticky top-0 bg-card/95 backdrop-blur-sm z-10",children:[(0,b.jsxs)("p",{className:"text-sm font-semibold text-foreground flex items-center gap-1.5",children:[(0,b.jsx)(M.default,{className:"w-4 h-4 text-primary"})," ",d?.label??a.type]}),(0,b.jsx)("p",{className:"text-[10px] text-muted-foreground",children:d?.description})]}),(0,b.jsxs)("div",{className:"p-4 space-y-5",children:[(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsx)(Q.Label,{className:"text-xs font-bold text-foreground uppercase tracking-wider block border-b pb-1",children:"Spacing & Spans"}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)(Q.Label,{className:"text-[9px] text-muted-foreground uppercase",children:"Padding Top"}),(0,b.jsx)(P.Input,{placeholder:"py-16",value:String(e.paddingTop||""),onChange:a=>f("paddingTop",a.target.value),className:"h-7 text-[11px]"})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)(Q.Label,{className:"text-[9px] text-muted-foreground uppercase",children:"Padding Bottom"}),(0,b.jsx)(P.Input,{placeholder:"py-16",value:String(e.paddingBottom||""),onChange:a=>f("paddingBottom",a.target.value),className:"h-7 text-[11px]"})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)(Q.Label,{className:"text-[9px] text-muted-foreground uppercase",children:"Margin Top"}),(0,b.jsx)(P.Input,{placeholder:"mt-0",value:String(e.marginTop||""),onChange:a=>f("marginTop",a.target.value),className:"h-7 text-[11px]"})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)(Q.Label,{className:"text-[9px] text-muted-foreground uppercase",children:"Margin Bottom"}),(0,b.jsx)(P.Input,{placeholder:"mb-0",value:String(e.marginBottom||""),onChange:a=>f("marginBottom",a.target.value),className:"h-7 text-[11px]"})]})]})]}),(0,b.jsxs)("div",{className:"space-y-3 border-t pt-3 border-border/40",children:[(0,b.jsx)(Q.Label,{className:"text-xs font-bold text-foreground uppercase tracking-wider block border-b pb-1",children:"Elementor Advanced"}),(0,b.jsxs)("div",{className:"space-y-1.5 pt-1",children:[(0,b.jsx)(Q.Label,{className:"text-[9px] text-muted-foreground uppercase block mb-1",children:"Responsive Hide Rules"}),(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between py-1",children:[(0,b.jsx)("span",{className:"text-[11px] text-foreground",children:"Hide on Desktop"}),(0,b.jsx)(S.Switch,{checked:!!e.hideOnDesktop,onCheckedChange:a=>f("hideOnDesktop",a)})]}),(0,b.jsxs)("div",{className:"flex items-center justify-between py-1",children:[(0,b.jsx)("span",{className:"text-[11px] text-foreground",children:"Hide on Tablet"}),(0,b.jsx)(S.Switch,{checked:!!e.hideOnTablet,onCheckedChange:a=>f("hideOnTablet",a)})]}),(0,b.jsxs)("div",{className:"flex items-center justify-between py-1",children:[(0,b.jsx)("span",{className:"text-[11px] text-foreground",children:"Hide on Mobile"}),(0,b.jsx)(S.Switch,{checked:!!e.hideOnMobile,onCheckedChange:a=>f("hideOnMobile",a)})]})]})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)(Q.Label,{className:"text-[9px] text-muted-foreground uppercase",children:"Entry Animation"}),(0,b.jsxs)("select",{value:String(e.entryAnimation||"none"),onChange:a=>f("entryAnimation",a.target.value),className:"w-full text-xs p-1.5 border border-border bg-card rounded-md focus:ring-1 focus:ring-primary focus:outline-none",children:[(0,b.jsx)("option",{value:"none",children:"None"}),(0,b.jsx)("option",{value:"fade-in",children:"Fade In"}),(0,b.jsx)("option",{value:"zoom-in",children:"Zoom In"}),(0,b.jsx)("option",{value:"slide-up",children:"Slide Up"}),(0,b.jsx)("option",{value:"slide-down",children:"Slide Down"})]})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)(Q.Label,{className:"text-[9px] text-muted-foreground uppercase",children:"Background Gradient / Overlay"}),(0,b.jsx)(P.Input,{placeholder:"linear-gradient(to right, #000, #fff)",value:String(e.backgroundGradient||""),onChange:a=>f("backgroundGradient",a.target.value),className:"h-8 text-xs font-mono"})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)(Q.Label,{className:"text-[9px] text-muted-foreground uppercase",children:"Custom CSS"}),(0,b.jsx)(R.Textarea,{placeholder:"opacity: 0.9; transform: rotate(1deg);",value:String(e.customCSS||""),onChange:a=>f("customCSS",a.target.value),className:"text-xs font-mono min-h-[50px] leading-snug"})]})]}),(0,b.jsxs)("div",{className:"space-y-3 border-t pt-3 border-border/40",children:[(0,b.jsx)(Q.Label,{className:"text-xs font-bold text-foreground uppercase tracking-wider block border-b pb-1",children:"Block Properties"}),Object.entries(e).filter(([a,b])=>!Array.isArray(b)&&"object"!=typeof b&&!["paddingTop","paddingBottom","marginTop","marginBottom","borderRadius","boxShadow","typographyClass","hideOnDesktop","hideOnTablet","hideOnMobile","entryAnimation","backgroundGradient","customCSS"].includes(a)).map(([a,c])=>{let d,e;return d=a.toLowerCase().includes("color")||"backgroundColor"===a||"textColor"===a,e="description"===a||"subtitle"===a||"content"===a||"code"===a,"boolean"==typeof c?(0,b.jsxs)("div",{className:"flex items-center justify-between py-1.5",children:[(0,b.jsx)(Q.Label,{className:"capitalize text-xs text-muted-foreground",children:a.replace(/_/g," ")}),(0,b.jsx)(S.Switch,{checked:c,onCheckedChange:b=>f(a,b)})]},a):(0,b.jsxs)("div",{className:"space-y-1.5 pt-1",children:[(0,b.jsx)(Q.Label,{className:"capitalize text-[10px] font-bold text-muted-foreground",children:a.replace(/_/g," ")}),d?(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)(P.Input,{type:"color",value:String(c||"#000000"),onChange:b=>f(a,b.target.value),className:"w-10 h-8 p-1 bg-transparent border rounded shrink-0 cursor-pointer"}),(0,b.jsx)(P.Input,{value:String(c||""),onChange:b=>f(a,b.target.value),className:"h-8 text-xs font-mono"})]}):e?(0,b.jsx)(R.Textarea,{value:String(c||""),onChange:b=>f(a,b.target.value),className:"text-xs leading-relaxed min-h-[60px]"}):(0,b.jsx)(P.Input,{value:String(c||""),onChange:b=>f(a,b.target.value),className:"h-8 text-xs"})]},a)}),Object.entries(e).filter(([a,b])=>Array.isArray(b)&&!["paddingTop","paddingBottom","marginTop","marginBottom","borderRadius","boxShadow","typographyClass","hideOnDesktop","hideOnTablet","hideOnMobile","entryAnimation","backgroundGradient","customCSS"].includes(a)).map(([a,c])=>"items"===a||"features"===a||"counters"===a?(0,b.jsxs)("div",{className:"space-y-4 pt-4 border-t border-border/60",children:[(0,b.jsx)(Q.Label,{className:"text-xs font-bold text-foreground uppercase tracking-wider capitalize",children:a}),(0,b.jsx)("div",{className:"space-y-3",children:c.map((c,d)=>(0,b.jsxs)("div",{className:"p-3 rounded-lg border border-border bg-secondary/20 space-y-2 relative",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between border-b border-border/60 pb-1",children:[(0,b.jsxs)("span",{className:"text-[11px] font-semibold text-muted-foreground",children:["Item #",d+1]}),(0,b.jsx)("button",{onClick:()=>{let b;return b=Array.isArray(e[a])?[...e[a]]:[],void f(a,b.filter((a,b)=>b!==d))},className:"text-muted-foreground hover:text-destructive transition-colors",children:(0,b.jsx)(h.Trash2,{className:"h-3.5 w-3.5"})})]}),Object.keys(c).map(g=>(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)(Q.Label,{className:"text-[10px] text-muted-foreground capitalize",children:g}),(0,b.jsx)(P.Input,{value:c[g]||"",onChange:b=>{var c;let h;return c=b.target.value,void((h=Array.isArray(e[a])?[...e[a]]:[])[d]&&(h[d]={...h[d],[g]:c},f(a,h)))},className:"h-8 text-xs"})]},g))]},d))}),(0,b.jsxs)(O.Button,{onClick:()=>{var b;let d;return b=c[0]?{...c[0]}:{title:"New Item",desc:""},d=Array.isArray(e[a])?[...e[a]]:[],void f(a,[...d,b])},variant:"outline",size:"sm",className:"w-full text-xs py-1 h-8",children:[(0,b.jsx)(g.Plus,{className:"h-3 w-3 mr-1"})," Add Item"]})]},a):null)]})]})]})}function $({initialTree:a,pageId:d,pageTitle:s="Untitled Page",onSave:t,onPublish:u}){let v=a?.blocks??[],[w,x]=(0,c.useState)(v),[y,z]=(0,c.useState)(null),[A,B]=(0,c.useState)("blocks"),[D,E]=(0,c.useState)(""),[F,M]=(0,c.useState)(!1),[Q,R]=(0,c.useState)(!1),[S,_]=(0,c.useState)("desktop"),[aa,ab]=(0,c.useState)(1),[ac,ad]=(0,c.useState)(!1),[ae,af]=(0,c.useState)(new Set),[ag,ah]=(0,c.useState)(new Set),[ai,aj]=(0,c.useState)({}),[ak,al]=(0,c.useState)([{blocks:v,selectedId:null}]),[am,an]=(0,c.useState)(0),ao=(0,c.useCallback)((a,b)=>{al(c=>[...c.slice(0,am+1),{blocks:a,selectedId:b}].slice(-50)),an(a=>Math.min(a+1,50))},[am]),ap=(a,b)=>{let c=w.findIndex(b=>b.id===a);if(c<0||"up"===b&&0===c||"down"===b&&c===w.length-1)return;let d=[...w],e="up"===b?c-1:c+1;[d[c],d[e]]=[d[e],d[c]],x(d),ao(d,a)},aq=async()=>{M(!0);try{await t({version:"1.0",blocks:w}),e.toast.success("Draft saved successfully!")}catch{e.toast.error("Failed to save draft.")}finally{M(!1)}},ar=w.find(a=>a.id===y)??null,as=W.filter(a=>!D||a.label.toLowerCase().includes(D.toLowerCase()));return(0,b.jsxs)("div",{className:"flex flex-col h-screen bg-background overflow-hidden select-none",children:[(0,b.jsxs)("div",{className:"h-14 border-b border-border bg-card/80 backdrop-blur-sm flex items-center px-4 gap-3 shrink-0 z-20 justify-between",children:[(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)("h1",{className:"text-sm font-semibold text-foreground truncate max-w-[150px]",children:s}),(0,b.jsxs)("span",{className:"text-[10px] bg-secondary/80 text-muted-foreground px-2 py-0.5 rounded-full",children:[w.length," blocks"]})]}),!Q&&(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("div",{className:"flex items-center border border-border bg-secondary/30 rounded-lg p-0.5 gap-0.5",children:["desktop","laptop","tablet-landscape","tablet-portrait","mobile-large","mobile-small"].map(a=>(0,b.jsx)("button",{onClick:()=>_(a),className:(0,N.cn)("px-2 py-1 rounded-md text-[10px] font-semibold capitalize transition-all",S===a?"bg-primary text-primary-foreground shadow":"text-muted-foreground hover:text-foreground"),children:a.replace("-"," ")},a))}),(0,b.jsxs)("div",{className:"flex items-center border border-border bg-secondary/30 rounded-lg p-0.5 gap-0.5",children:[(0,b.jsx)("button",{onClick:()=>ab(a=>Math.max(.5,a-.1)),className:"p-1 rounded text-muted-foreground hover:bg-secondary",title:"Zoom Out",children:(0,b.jsx)(I.default,{className:"w-3.5 h-3.5"})}),(0,b.jsxs)("span",{className:"text-[10px] font-mono px-1 text-muted-foreground",children:[Math.round(100*aa),"%"]}),(0,b.jsx)("button",{onClick:()=>ab(a=>Math.min(1.5,a+.1)),className:"p-1 rounded text-muted-foreground hover:bg-secondary",title:"Zoom In",children:(0,b.jsx)(H.ZoomIn,{className:"w-3.5 h-3.5"})}),(0,b.jsx)("button",{onClick:()=>ab(1),className:"p-1 rounded text-[9px] text-muted-foreground hover:bg-secondary font-bold",title:"Reset Zoom",children:"100%"})]}),(0,b.jsx)("button",{onClick:()=>ad(!ac),className:(0,N.cn)("p-1.5 rounded-lg border border-border hover:bg-secondary text-muted-foreground transition-all",ac&&"bg-primary/10 border-primary text-primary"),title:"Dotted Canvas Grid",children:(0,b.jsx)(C.default,{className:"w-3.5 h-3.5"})})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)("div",{className:"flex items-center gap-0.5 mr-2",children:[(0,b.jsx)("button",{onClick:()=>{if(am<=0)return;let a=ak[am-1];x(a.blocks),z(a.selectedId),an(a=>a-1),e.toast.info("Action Undone")},disabled:am<=0,className:"h-8 w-8 rounded-lg hover:bg-secondary flex items-center justify-center text-muted-foreground disabled:opacity-30 transition-colors",title:"Undo",children:(0,b.jsx)(n.default,{className:"h-4 w-4"})}),(0,b.jsx)("button",{onClick:()=>{if(am>=ak.length-1)return;let a=ak[am+1];x(a.blocks),z(a.selectedId),an(a=>a+1),e.toast.info("Action Redone")},disabled:am>=ak.length-1,className:"h-8 w-8 rounded-lg hover:bg-secondary flex items-center justify-center text-muted-foreground disabled:opacity-30 transition-colors",title:"Redo",children:(0,b.jsx)(o.default,{className:"h-4 w-4"})})]}),(0,b.jsxs)("button",{onClick:()=>R(a=>!a),className:(0,N.cn)("h-8 px-3 rounded-lg text-xs font-medium flex items-center gap-2 transition-colors",Q?"bg-primary/15 text-primary":"hover:bg-secondary text-muted-foreground"),children:[Q?(0,b.jsx)(m.EyeOff,{className:"h-3.5 w-3.5"}):(0,b.jsx)(l.Eye,{className:"h-3.5 w-3.5"}),Q?"Exit Preview":"Preview Mode"]}),(0,b.jsxs)(O.Button,{onClick:aq,disabled:F,variant:"outline",size:"sm",className:"gap-2",children:[(0,b.jsx)(p.Save,{className:"h-3.5 w-3.5"}),F?"Saving…":"Save Draft"]}),u&&(0,b.jsxs)(O.Button,{onClick:u,size:"sm",className:"btn-gold gap-2",children:[(0,b.jsx)(q.Globe,{className:"h-3.5 w-3.5"}),"Publish"]})]})]}),(0,b.jsxs)("div",{className:"flex flex-1 overflow-hidden",children:[!Q&&(0,b.jsxs)("div",{className:"w-72 border-r border-border bg-card/60 flex flex-col shrink-0",children:[(0,b.jsx)("div",{className:"flex border-b border-border",children:["blocks","layers"].map(a=>(0,b.jsx)("button",{onClick:()=>B(a),className:(0,N.cn)("flex-1 py-3 text-xs font-semibold capitalize transition-colors",A===a?"text-primary border-b-2 border-primary":"text-muted-foreground hover:text-foreground"),children:a},a))}),"blocks"===A&&(0,b.jsxs)("div",{className:"flex-1 flex flex-col min-h-0",children:[(0,b.jsx)("div",{className:"p-3 border-b border-border shrink-0",children:(0,b.jsx)(P.Input,{placeholder:"Search blocks...",value:D,onChange:a=>E(a.target.value),className:"h-8 text-xs"})}),(0,b.jsx)("div",{className:"flex-1 overflow-y-auto p-2 space-y-4",children:["Layout","Typography","Media","Social Proof","Commerce","People","Content","Real Estate"].map(a=>{let c=as.filter(b=>b.category===a);return 0===c.length?null:(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("p",{className:"text-[10px] font-bold text-muted-foreground uppercase tracking-widest px-2 mb-1",children:a}),c.map(a=>(0,b.jsxs)("div",{onClick:()=>{let b,c;x(c=[...w,b={id:X(),type:a.type,config:{...a.defaultConfig}}]),z(b.id),B("properties"),ao(c,b.id),e.toast.success(`${a.label} block added`)},className:"w-full flex items-center gap-3 px-3 py-2.5 rounded-xl hover:bg-secondary text-left transition-colors cursor-pointer group",children:[(0,b.jsx)("div",{className:"h-8 w-8 rounded-lg bg-secondary group-hover:bg-primary/10 flex items-center justify-center shrink-0 transition-colors",children:(0,b.jsx)(a.icon,{className:"h-4 w-4 text-muted-foreground group-hover:text-primary transition-colors"})}),(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("p",{className:"text-xs font-medium text-foreground",children:a.label}),(0,b.jsx)("p",{className:"text-[10px] text-muted-foreground truncate",children:a.description})]})]},a.type))]},a)})})]}),"layers"===A&&(0,b.jsxs)("div",{className:"flex-1 overflow-y-auto p-4 space-y-2",children:[(0,b.jsxs)("h3",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground mb-3 flex items-center gap-1.5",children:[(0,b.jsx)(L.default,{className:"w-3.5 h-3.5 text-primary"})," Page Hierarchy"]}),w.map((a,c)=>{let d=y===a.id,e=ae.has(a.id),f=ag.has(a.id),g=W.find(b=>b.type===a.type),h=g?.icon||r.Layout,i=ai[a.id]||g?.label||a.type;return(0,b.jsxs)("div",{onClick:()=>{z(a.id),B("properties")},className:(0,N.cn)("flex items-center justify-between p-2.5 rounded-xl border cursor-pointer transition-all",d?"bg-primary/10 border-primary text-primary":"bg-card/45 border-border hover:bg-secondary/40 text-foreground"),children:[(0,b.jsxs)("div",{className:"flex items-center gap-2.5 min-w-0",children:[(0,b.jsx)(h,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),(0,b.jsx)(P.Input,{value:i,onClick:a=>a.stopPropagation(),onChange:b=>{var c,d;return c=a.id,d=b.target.value,void aj(a=>({...a,[c]:d}))},className:"h-6 px-1 border-0 bg-transparent text-xs font-medium p-0 focus-visible:ring-1 focus-visible:ring-primary focus-visible:bg-background/80"})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1 shrink-0",onClick:a=>a.stopPropagation(),children:[(0,b.jsx)("button",{onClick:()=>{var b;return b=a.id,void af(a=>{let c=new Set(a);return c.has(b)?c.delete(b):c.add(b),c})},className:(0,N.cn)("p-1 rounded hover:bg-secondary text-muted-foreground",e&&"text-primary bg-primary/5"),title:e?"Unlock block":"Lock block",children:e?(0,b.jsx)(J.Lock,{className:"h-3 w-3"}):(0,b.jsx)(K.default,{className:"h-3 w-3"})}),(0,b.jsx)("button",{onClick:()=>{var b;return b=a.id,void ah(a=>{let c=new Set(a);return c.has(b)?c.delete(b):c.add(b),c})},className:(0,N.cn)("p-1 rounded hover:bg-secondary text-muted-foreground",f&&"text-destructive bg-destructive/5"),title:f?"Show block":"Hide block",children:f?(0,b.jsx)(m.EyeOff,{className:"h-3 w-3"}):(0,b.jsx)(l.Eye,{className:"h-3 w-3"})}),(0,b.jsx)("button",{onClick:()=>ap(a.id,"up"),disabled:0===c,className:"p-1 rounded hover:bg-secondary text-muted-foreground disabled:opacity-30",children:(0,b.jsx)(G.ChevronUp,{className:"h-3 w-3"})}),(0,b.jsx)("button",{onClick:()=>ap(a.id,"down"),disabled:c===w.length-1,className:"p-1 rounded hover:bg-secondary text-muted-foreground disabled:opacity-30",children:(0,b.jsx)(j.ChevronDown,{className:"h-3 w-3"})})]})]},a.id)})]})]}),(0,b.jsxs)("div",{className:"flex-1 overflow-y-auto bg-muted/20 relative p-8 flex justify-center items-start min-h-[90vh]",children:[ac&&(0,b.jsx)("div",{className:"absolute inset-0 z-0 pointer-events-none opacity-40",style:{backgroundImage:"radial-gradient(circle, hsl(var(--border)) 1.5px, transparent 1.5px)",backgroundSize:"20px 20px"}}),(0,b.jsx)("div",{style:{width:Q?"100%":`${({desktop:1440,laptop:1024,"tablet-landscape":1024,"tablet-portrait":768,"mobile-large":425,"mobile-small":320})[S]}px`,transform:`scale(${aa})`,transformOrigin:"top center"},className:(0,N.cn)("transition-all duration-300 relative bg-background border border-border shadow-2xl overflow-hidden min-h-[85vh]",!Q&&"desktop"!==S&&"rounded-3xl ring-8 ring-secondary"),onClick:()=>z(null),children:(0,b.jsxs)("div",{className:"flex flex-col min-h-screen text-foreground relative",children:[(0,b.jsx)(U.Navbar,{settings:Y}),(0,b.jsx)("div",{className:"flex-grow pt-16 pb-20",children:0===w.length?(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center gap-4 py-24 text-center",children:[(0,b.jsx)(g.Plus,{className:"h-8 w-8 text-muted-foreground"}),(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"font-medium text-foreground",children:"Start building your visual page layout"}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground mt-1",children:"Select visual blocks from the left sidebar to add them"})]})]}):(0,b.jsx)(f.AnimatePresence,{mode:"popLayout",children:w.map((a,c)=>{let d=y===a.id,f=ae.has(a.id),g=ag.has(a.id),i=W.find(b=>b.type===a.type),l=ai[a.id]||i?.label||a.type;if(g)return null;let m=a.config?.customCSS?`#block-${a.id} { ${a.config.customCSS} }`:"";return(0,b.jsxs)("div",{id:`block-${a.id}`,onClick:b=>{(b.stopPropagation(),f)?e.toast.info("Block is locked. Unlock it in the Layers panel to edit."):(z(a.id),B("properties"))},style:{marginTop:a.config?.marginTop?String(a.config.marginTop):void 0,marginBottom:a.config?.marginBottom?String(a.config.marginBottom):void 0,paddingTop:a.config?.paddingTop?String(a.config.paddingTop):void 0,paddingBottom:a.config?.paddingBottom?String(a.config.paddingBottom):void 0,borderRadius:a.config?.borderRadius?String(a.config.borderRadius):void 0,boxShadow:a.config?.boxShadow?String(a.config.boxShadow):void 0,background:a.config?.backgroundGradient?String(a.config.backgroundGradient):void 0},className:(0,N.cn)("relative group transition-all duration-200 border-2 cursor-pointer",d?"border-primary ring-4 ring-primary/10":"border-transparent hover:border-primary/30",!!a.config?.hideOnDesktop&&!Q&&"opacity-40 border-dashed",!!a.config?.hideOnTablet&&!Q&&"opacity-40 border-dashed",!!a.config?.hideOnMobile&&!Q&&"opacity-40 border-dashed"),children:[m&&(0,b.jsx)("style",{dangerouslySetInnerHTML:{__html:m}}),!Q&&(0,b.jsx)("div",{className:"absolute top-0 left-0 bg-primary text-primary-foreground text-[9px] font-bold px-2 py-0.5 rounded-br-lg z-30 opacity-60 group-hover:opacity-100 transition-opacity",children:l}),!Q&&!f&&(0,b.jsxs)("div",{className:"absolute top-3 right-3 z-30 flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity bg-background border border-border p-1 rounded-lg shadow-lg",onClick:a=>a.stopPropagation(),children:[(0,b.jsx)("button",{onClick:()=>ap(a.id,"up"),disabled:0===c,className:"h-6 w-6 rounded-md hover:bg-secondary flex items-center justify-center text-muted-foreground disabled:opacity-30",children:(0,b.jsx)(G.ChevronUp,{className:"h-3.5 w-3.5"})}),(0,b.jsx)("button",{onClick:()=>ap(a.id,"down"),disabled:c===w.length-1,className:"h-6 w-6 rounded-md hover:bg-secondary flex items-center justify-center text-muted-foreground disabled:opacity-30",children:(0,b.jsx)(j.ChevronDown,{className:"h-3.5 w-3.5"})}),(0,b.jsx)("button",{onClick:()=>(a=>{let b=w.find(b=>b.id===a);if(!b)return;let c={...b,id:X(),config:{...b.config}},d=w.findIndex(b=>b.id===a),f=[...w.slice(0,d+1),c,...w.slice(d+1)];x(f),z(c.id),ao(f,c.id),e.toast.success("Block duplicated")})(a.id),className:"h-6 w-6 rounded-md hover:bg-secondary flex items-center justify-center text-muted-foreground",children:(0,b.jsx)(k.Copy,{className:"h-3.5 w-3.5"})}),(0,b.jsx)("button",{onClick:()=>{var b;let c;return b=a.id,void(x(c=w.filter(a=>a.id!==b)),z(a=>a===b?null:a),ao(c,y===b?null:y),e.toast.error("Block removed"))},className:"h-6 w-6 rounded-md hover:bg-destructive/15 flex items-center justify-center text-muted-foreground hover:text-destructive",children:(0,b.jsx)(h.Trash2,{className:"h-3.5 w-3.5"})})]}),(0,b.jsx)(T.PageBuilderRenderer,{layout:[a]})]},a.id)})})}),(0,b.jsx)(V.Footer,{settings:Y})]})})]}),!Q&&(0,b.jsx)("div",{className:"w-80 border-l border-border bg-card/60 flex flex-col shrink-0",children:ar?(0,b.jsx)(Z,{block:ar,onChange:a=>{let b;return y&&void(x(b=w.map(b=>b.id===y?{...b,config:a}:b)),ao(b,y))}}):(0,b.jsxs)("div",{className:"flex-1 flex flex-col items-center justify-center p-6 text-center text-muted-foreground",children:[(0,b.jsx)(i.Settings,{className:"w-8 h-8 mb-2 opacity-40"}),(0,b.jsx)("p",{className:"text-xs font-semibold",children:"No block selected"}),(0,b.jsx)("p",{className:"text-[10px] mt-1",children:"Select a block on the visual canvas to edit its spacing, typography, and content values."})]})})]})]})}var _=a.i(405050);let aa=(0,_.createServerReference)("60dd31271122c807118ac25f777211a5379c879cd4",_.callServer,void 0,_.findSourceMapURL,"savePageBlocks"),ab=(0,_.createServerReference)("40491e13c34b160127e0728ff9231cdb61a44a9031",_.callServer,void 0,_.findSourceMapURL,"publishPage");a.s(["default",0,function({page:a}){let f,g=(0,d.useRouter)(),[h,i]=(0,c.useTransition)();try{if(a.content){let b=JSON.parse(a.content);if(Array.isArray(b)){let a=b.map(a=>({id:a.id||`blk_${Math.random().toString(36).slice(2,9)}`,type:a.type,config:a.settings||a.config||{}}));f={version:"1.0",blocks:a}}else if(b&&"object"==typeof b){let a=b.blocks||[];f={version:b.version||"1.0",blocks:a}}}}catch(a){}f?.blocks||(f={version:"1.0",blocks:[]});let j=async b=>{let c=await aa(a.id,b);c.success?e.toast.success("Draft saved successfully"):e.toast.error(c.error??"Failed to save")},k=async()=>{i(async()=>{let b=await ab(a.id);b.success?(e.toast.success("Page published!"),g.refresh()):e.toast.error(b.error??"Failed to publish")})};return(0,b.jsx)($,{initialTree:f,pageId:a.id,pageTitle:a.title,onSave:j,onPublish:"published"!==a.publish_status?k:void 0})}],600592)}];
|
|
1
|
+
module.exports=[600592,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(50944),e=a.i(823292),f=a.i(262036),g=a.i(403512),h=a.i(980180),i=a.i(341476),j=a.i(589027),k=a.i(585650),l=a.i(755681),m=a.i(777064),n=a.i(442674),n=n,o=a.i(348982),o=o,p=a.i(879675),q=a.i(696732),r=a.i(873019),s=a.i(982453),t=a.i(71215),u=a.i(803649),u=u,v=a.i(520293),w=a.i(328423),x=a.i(360061),x=x,y=a.i(285888),z=a.i(308311),A=a.i(704803),A=A,B=a.i(104647),C=a.i(682314),C=C,D=a.i(149429),D=D,E=a.i(492378),F=a.i(483138),G=a.i(113608),H=a.i(912265),I=a.i(371789),I=I,J=a.i(139353),K=a.i(674078),K=K,L=a.i(640268),L=L,M=a.i(847730),M=M,N=a.i(368114),O=a.i(699570),P=a.i(866718),Q=a.i(870430),R=a.i(429246),S=a.i(563658),T=a.i(692351),U=a.i(224453),V=a.i(675181);let W=[{type:"hero",label:"Hero Banner",description:"Full-width hero with headline, subtitle, and CTA",icon:r.Layout,category:"Layout",defaultConfig:{title:"Signature Real Estate Collection",subtitle:"Discover curated premium luxury apartments, villas, and commercial spaces across India's top cities.",backgroundImage:"https://images.unsplash.com/photo-1600585154340-be6161a56a0c",primaryBtnText:"Explore Properties",primaryBtnLink:"/projects",secondaryBtnText:"Contact Advisory",secondaryBtnLink:"/contact",overlayOpacity:.6,align:"center",height:"600px"}},{type:"heading",label:"Heading",description:"Section title with optional subtitle",icon:s.Type,category:"Typography",defaultConfig:{title:"Section Heading",level:"h2",subtitle:"",align:"center"}},{type:"text",label:"Rich Text",description:"Formatted text content block",icon:F.FileText,category:"Typography",defaultConfig:{content:"Your content goes here...",align:"left"}},{type:"image",label:"Image",description:"Single image with optional caption",icon:t.Image,category:"Media",defaultConfig:{src:"",alt:"",caption:"",width:"full",rounded:!0}},{type:"gallery",label:"Gallery",description:"Grid or masonry photo gallery",icon:C.default,category:"Media",defaultConfig:{images:[],columns:3,gap:"medium",style:"grid"}},{type:"video",label:"Video",description:"Embedded video player",icon:u.default,category:"Media",defaultConfig:{url:"",autoplay:!1,loop:!1,muted:!0,poster:""}},{type:"testimonials",label:"Testimonials",description:"Customer testimonials carousel",icon:w.MessageSquare,category:"Social Proof",defaultConfig:{items:[],layout:"carousel",show_rating:!0}},{type:"pricing",label:"Pricing Table",description:"Pricing plans with features",icon:x.default,category:"Commerce",defaultConfig:{plans:[],columns:3,highlight_index:1}},{type:"team",label:"Team Grid",description:"Team member profiles",icon:y.Users,category:"People",defaultConfig:{members:[],columns:4,show_social:!0}},{type:"timeline",label:"Timeline",description:"Chronological events",icon:z.Clock,category:"Content",defaultConfig:{events:[],layout:"vertical",alternating:!0}},{type:"faq",label:"FAQ Accordion",description:"Frequently asked questions accordion",icon:A.default,category:"Content",defaultConfig:{items:[],style:"accordion"}},{type:"counters",label:"Counters",description:"Animated stat counters",icon:v.BarChart2,category:"Content",defaultConfig:{items:[{label:"Projects",value:500,suffix:"+"}],columns:4}},{type:"cta",label:"Call to Action",description:"High-impact CTA section",icon:E.Zap,category:"Conversion",defaultConfig:{headline:"Ready to Get Started?",description:"",primary_label:"Contact Us",primary_url:"/contact",secondary_label:"",secondary_url:"",background:"primary"}},{type:"property_grid",label:"Property Grid",description:"Featured properties from database",icon:C.default,category:"Real Estate",defaultConfig:{title:"Featured Listings",subtitle:"Curated premium properties",limit:6}},{type:"builders_grid",label:"Builders Grid",description:"Developer partners logos",icon:D.default,category:"Real Estate",defaultConfig:{title:"Our Developer Partners",subtitle:"RERA verified creators only",limit:8}},{type:"map",label:"Interactive Map",description:"Google or Leaflet Map container",icon:B.Map,category:"Layout",defaultConfig:{title:"Location Coordinates",address:"Bandra Kurla Complex, Mumbai, India",latitude:"19.0596",longitude:"72.8696"}}],X=()=>Math.random().toString(36).substring(2,9),Y={"site.name":"PropVault","site.description":"Signature Luxury Real Estate Collection. Direct builder pricing and RERA verified only.","organization.industry":"Luxury Real Estate","contact.email":"concierge@propvault.luxury","contact.phone":"+91 99999 88888","contact.address":"Marina One Suite, Bandra Kurla Complex, Mumbai","footer.certifications":"RERA Registration No: AG000001234","site.tagline":"Frictionless Luxury Housing","branding.logo":"/logo/logo.png","navigation.header":JSON.stringify([{label:"Home",href:"/"},{label:"Projects",href:"/projects"},{label:"Builders",href:"/builders"},{label:"Blog",href:"/blog"},{label:"Contact",href:"/contact"}])};function Z({block:a,onChange:c}){let d=W.find(b=>b.type===a.type),e=a.config||{},f=(a,b)=>{c({...e,[a]:b})};return(0,b.jsxs)("div",{className:"h-full overflow-y-auto",children:[(0,b.jsxs)("div",{className:"p-4 border-b border-border sticky top-0 bg-card/95 backdrop-blur-sm z-10",children:[(0,b.jsxs)("p",{className:"text-sm font-semibold text-foreground flex items-center gap-1.5",children:[(0,b.jsx)(M.default,{className:"w-4 h-4 text-primary"})," ",d?.label??a.type]}),(0,b.jsx)("p",{className:"text-[10px] text-muted-foreground",children:d?.description})]}),(0,b.jsxs)("div",{className:"p-4 space-y-5",children:[(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsx)(Q.Label,{className:"text-xs font-bold text-foreground uppercase tracking-wider block border-b pb-1",children:"Spacing & Spans"}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)(Q.Label,{className:"text-[9px] text-muted-foreground uppercase",children:"Padding Top"}),(0,b.jsx)(P.Input,{placeholder:"py-16",value:String(e.paddingTop||""),onChange:a=>f("paddingTop",a.target.value),className:"h-7 text-[11px]"})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)(Q.Label,{className:"text-[9px] text-muted-foreground uppercase",children:"Padding Bottom"}),(0,b.jsx)(P.Input,{placeholder:"py-16",value:String(e.paddingBottom||""),onChange:a=>f("paddingBottom",a.target.value),className:"h-7 text-[11px]"})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)(Q.Label,{className:"text-[9px] text-muted-foreground uppercase",children:"Margin Top"}),(0,b.jsx)(P.Input,{placeholder:"mt-0",value:String(e.marginTop||""),onChange:a=>f("marginTop",a.target.value),className:"h-7 text-[11px]"})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)(Q.Label,{className:"text-[9px] text-muted-foreground uppercase",children:"Margin Bottom"}),(0,b.jsx)(P.Input,{placeholder:"mb-0",value:String(e.marginBottom||""),onChange:a=>f("marginBottom",a.target.value),className:"h-7 text-[11px]"})]})]})]}),(0,b.jsxs)("div",{className:"space-y-3 border-t pt-3 border-border/40",children:[(0,b.jsx)(Q.Label,{className:"text-xs font-bold text-foreground uppercase tracking-wider block border-b pb-1",children:"Elementor Advanced"}),(0,b.jsxs)("div",{className:"space-y-1.5 pt-1",children:[(0,b.jsx)(Q.Label,{className:"text-[9px] text-muted-foreground uppercase block mb-1",children:"Responsive Hide Rules"}),(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between py-1",children:[(0,b.jsx)("span",{className:"text-[11px] text-foreground",children:"Hide on Desktop"}),(0,b.jsx)(S.Switch,{checked:!!e.hideOnDesktop,onCheckedChange:a=>f("hideOnDesktop",a)})]}),(0,b.jsxs)("div",{className:"flex items-center justify-between py-1",children:[(0,b.jsx)("span",{className:"text-[11px] text-foreground",children:"Hide on Tablet"}),(0,b.jsx)(S.Switch,{checked:!!e.hideOnTablet,onCheckedChange:a=>f("hideOnTablet",a)})]}),(0,b.jsxs)("div",{className:"flex items-center justify-between py-1",children:[(0,b.jsx)("span",{className:"text-[11px] text-foreground",children:"Hide on Mobile"}),(0,b.jsx)(S.Switch,{checked:!!e.hideOnMobile,onCheckedChange:a=>f("hideOnMobile",a)})]})]})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)(Q.Label,{className:"text-[9px] text-muted-foreground uppercase",children:"Entry Animation"}),(0,b.jsxs)("select",{value:String(e.entryAnimation||"none"),onChange:a=>f("entryAnimation",a.target.value),className:"w-full text-xs p-1.5 border border-border bg-card rounded-md focus:ring-1 focus:ring-primary focus:outline-none",children:[(0,b.jsx)("option",{value:"none",children:"None"}),(0,b.jsx)("option",{value:"fade-in",children:"Fade In"}),(0,b.jsx)("option",{value:"zoom-in",children:"Zoom In"}),(0,b.jsx)("option",{value:"slide-up",children:"Slide Up"}),(0,b.jsx)("option",{value:"slide-down",children:"Slide Down"})]})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)(Q.Label,{className:"text-[9px] text-muted-foreground uppercase",children:"Background Gradient / Overlay"}),(0,b.jsx)(P.Input,{placeholder:"linear-gradient(to right, #000, #fff)",value:String(e.backgroundGradient||""),onChange:a=>f("backgroundGradient",a.target.value),className:"h-8 text-xs font-mono"})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)(Q.Label,{className:"text-[9px] text-muted-foreground uppercase",children:"Custom CSS"}),(0,b.jsx)(R.Textarea,{placeholder:"opacity: 0.9; transform: rotate(1deg);",value:String(e.customCSS||""),onChange:a=>f("customCSS",a.target.value),className:"text-xs font-mono min-h-[50px] leading-snug"})]})]}),(0,b.jsxs)("div",{className:"space-y-3 border-t pt-3 border-border/40",children:[(0,b.jsx)(Q.Label,{className:"text-xs font-bold text-foreground uppercase tracking-wider block border-b pb-1",children:"Block Properties"}),Object.entries(e).filter(([a,b])=>!Array.isArray(b)&&"object"!=typeof b&&!["paddingTop","paddingBottom","marginTop","marginBottom","borderRadius","boxShadow","typographyClass","hideOnDesktop","hideOnTablet","hideOnMobile","entryAnimation","backgroundGradient","customCSS"].includes(a)).map(([a,c])=>{let d,e;return d=a.toLowerCase().includes("color")||"backgroundColor"===a||"textColor"===a,e="description"===a||"subtitle"===a||"content"===a||"code"===a,"boolean"==typeof c?(0,b.jsxs)("div",{className:"flex items-center justify-between py-1.5",children:[(0,b.jsx)(Q.Label,{className:"capitalize text-xs text-muted-foreground",children:a.replace(/_/g," ")}),(0,b.jsx)(S.Switch,{checked:c,onCheckedChange:b=>f(a,b)})]},a):(0,b.jsxs)("div",{className:"space-y-1.5 pt-1",children:[(0,b.jsx)(Q.Label,{className:"capitalize text-[10px] font-bold text-muted-foreground",children:a.replace(/_/g," ")}),d?(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)(P.Input,{type:"color",value:String(c||"#000000"),onChange:b=>f(a,b.target.value),className:"w-10 h-8 p-1 bg-transparent border rounded shrink-0 cursor-pointer"}),(0,b.jsx)(P.Input,{value:String(c||""),onChange:b=>f(a,b.target.value),className:"h-8 text-xs font-mono"})]}):e?(0,b.jsx)(R.Textarea,{value:String(c||""),onChange:b=>f(a,b.target.value),className:"text-xs leading-relaxed min-h-[60px]"}):(0,b.jsx)(P.Input,{value:String(c||""),onChange:b=>f(a,b.target.value),className:"h-8 text-xs"})]},a)}),Object.entries(e).filter(([a,b])=>Array.isArray(b)&&!["paddingTop","paddingBottom","marginTop","marginBottom","borderRadius","boxShadow","typographyClass","hideOnDesktop","hideOnTablet","hideOnMobile","entryAnimation","backgroundGradient","customCSS"].includes(a)).map(([a,c])=>"items"===a||"features"===a||"counters"===a?(0,b.jsxs)("div",{className:"space-y-4 pt-4 border-t border-border/60",children:[(0,b.jsx)(Q.Label,{className:"text-xs font-bold text-foreground uppercase tracking-wider capitalize",children:a}),(0,b.jsx)("div",{className:"space-y-3",children:c.map((c,d)=>(0,b.jsxs)("div",{className:"p-3 rounded-lg border border-border bg-secondary/20 space-y-2 relative",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between border-b border-border/60 pb-1",children:[(0,b.jsxs)("span",{className:"text-[11px] font-semibold text-muted-foreground",children:["Item #",d+1]}),(0,b.jsx)("button",{onClick:()=>{let b;return b=Array.isArray(e[a])?[...e[a]]:[],void f(a,b.filter((a,b)=>b!==d))},className:"text-muted-foreground hover:text-destructive transition-colors",children:(0,b.jsx)(h.Trash2,{className:"h-3.5 w-3.5"})})]}),Object.keys(c).map(g=>(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)(Q.Label,{className:"text-[10px] text-muted-foreground capitalize",children:g}),(0,b.jsx)(P.Input,{value:c[g]||"",onChange:b=>{var c;let h;return c=b.target.value,void((h=Array.isArray(e[a])?[...e[a]]:[])[d]&&(h[d]={...h[d],[g]:c},f(a,h)))},className:"h-8 text-xs"})]},g))]},d))}),(0,b.jsxs)(O.Button,{onClick:()=>{var b;let d;return b=c[0]?{...c[0]}:{title:"New Item",desc:""},d=Array.isArray(e[a])?[...e[a]]:[],void f(a,[...d,b])},variant:"outline",size:"sm",className:"w-full text-xs py-1 h-8",children:[(0,b.jsx)(g.Plus,{className:"h-3 w-3 mr-1"})," Add Item"]})]},a):null)]})]})]})}function $({initialTree:a,pageId:d,pageTitle:s="Untitled Page",onSave:t,onPublish:u}){let v=a?.blocks??[],[w,x]=(0,c.useState)(v),[y,z]=(0,c.useState)(null),[A,B]=(0,c.useState)("blocks"),[D,E]=(0,c.useState)(""),[F,M]=(0,c.useState)(!1),[Q,R]=(0,c.useState)(!1),[S,_]=(0,c.useState)("desktop"),[aa,ab]=(0,c.useState)(1),[ac,ad]=(0,c.useState)(!1),[ae,af]=(0,c.useState)(new Set),[ag,ah]=(0,c.useState)(new Set),[ai,aj]=(0,c.useState)({}),[ak,al]=(0,c.useState)([{blocks:v,selectedId:null}]),[am,an]=(0,c.useState)(0),ao=(0,c.useCallback)((a,b)=>{al(c=>[...c.slice(0,am+1),{blocks:a,selectedId:b}].slice(-50)),an(a=>Math.min(a+1,50))},[am]),ap=(a,b)=>{let c=w.findIndex(b=>b.id===a);if(c<0||"up"===b&&0===c||"down"===b&&c===w.length-1)return;let d=[...w],e="up"===b?c-1:c+1;[d[c],d[e]]=[d[e],d[c]],x(d),ao(d,a)},aq=async()=>{M(!0);try{await t({version:"1.0",blocks:w}),e.toast.success("Draft saved successfully!")}catch{e.toast.error("Failed to save draft.")}finally{M(!1)}},ar=w.find(a=>a.id===y)??null,as=W.filter(a=>!D||a.label.toLowerCase().includes(D.toLowerCase()));return(0,b.jsxs)("div",{className:"flex flex-col h-screen bg-background overflow-hidden select-none",children:[(0,b.jsxs)("div",{className:"h-14 border-b border-border bg-card/80 backdrop-blur-sm flex items-center px-4 gap-3 shrink-0 z-20 justify-between",children:[(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)("h1",{className:"text-sm font-semibold text-foreground truncate max-w-[150px]",children:s}),(0,b.jsxs)("span",{className:"text-[10px] bg-secondary/80 text-muted-foreground px-2 py-0.5 rounded-full",children:[w.length," blocks"]})]}),!Q&&(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("div",{className:"flex items-center border border-border bg-secondary/30 rounded-lg p-0.5 gap-0.5",children:["desktop","laptop","tablet-landscape","tablet-portrait","mobile-large","mobile-small"].map(a=>(0,b.jsx)("button",{onClick:()=>_(a),className:(0,N.cn)("px-2 py-1 rounded-md text-[10px] font-semibold capitalize transition-all",S===a?"bg-primary text-primary-foreground shadow":"text-muted-foreground hover:text-foreground"),children:a.replace("-"," ")},a))}),(0,b.jsxs)("div",{className:"flex items-center border border-border bg-secondary/30 rounded-lg p-0.5 gap-0.5",children:[(0,b.jsx)("button",{onClick:()=>ab(a=>Math.max(.5,a-.1)),className:"p-1 rounded text-muted-foreground hover:bg-secondary",title:"Zoom Out",children:(0,b.jsx)(I.default,{className:"w-3.5 h-3.5"})}),(0,b.jsxs)("span",{className:"text-[10px] font-mono px-1 text-muted-foreground",children:[Math.round(100*aa),"%"]}),(0,b.jsx)("button",{onClick:()=>ab(a=>Math.min(1.5,a+.1)),className:"p-1 rounded text-muted-foreground hover:bg-secondary",title:"Zoom In",children:(0,b.jsx)(H.ZoomIn,{className:"w-3.5 h-3.5"})}),(0,b.jsx)("button",{onClick:()=>ab(1),className:"p-1 rounded text-[9px] text-muted-foreground hover:bg-secondary font-bold",title:"Reset Zoom",children:"100%"})]}),(0,b.jsx)("button",{onClick:()=>ad(!ac),className:(0,N.cn)("p-1.5 rounded-lg border border-border hover:bg-secondary text-muted-foreground transition-all",ac&&"bg-primary/10 border-primary text-primary"),title:"Dotted Canvas Grid",children:(0,b.jsx)(C.default,{className:"w-3.5 h-3.5"})})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)("div",{className:"flex items-center gap-0.5 mr-2",children:[(0,b.jsx)("button",{onClick:()=>{if(am<=0)return;let a=ak[am-1];x(a.blocks),z(a.selectedId),an(a=>a-1),e.toast.info("Action Undone")},disabled:am<=0,className:"h-8 w-8 rounded-lg hover:bg-secondary flex items-center justify-center text-muted-foreground disabled:opacity-30 transition-colors",title:"Undo",children:(0,b.jsx)(n.default,{className:"h-4 w-4"})}),(0,b.jsx)("button",{onClick:()=>{if(am>=ak.length-1)return;let a=ak[am+1];x(a.blocks),z(a.selectedId),an(a=>a+1),e.toast.info("Action Redone")},disabled:am>=ak.length-1,className:"h-8 w-8 rounded-lg hover:bg-secondary flex items-center justify-center text-muted-foreground disabled:opacity-30 transition-colors",title:"Redo",children:(0,b.jsx)(o.default,{className:"h-4 w-4"})})]}),(0,b.jsxs)("button",{onClick:()=>R(a=>!a),className:(0,N.cn)("h-8 px-3 rounded-lg text-xs font-medium flex items-center gap-2 transition-colors",Q?"bg-primary/15 text-primary":"hover:bg-secondary text-muted-foreground"),children:[Q?(0,b.jsx)(m.EyeOff,{className:"h-3.5 w-3.5"}):(0,b.jsx)(l.Eye,{className:"h-3.5 w-3.5"}),Q?"Exit Preview":"Preview Mode"]}),(0,b.jsxs)(O.Button,{onClick:aq,disabled:F,variant:"outline",size:"sm",className:"gap-2",children:[(0,b.jsx)(p.Save,{className:"h-3.5 w-3.5"}),F?"Saving…":"Save Draft"]}),u&&(0,b.jsxs)(O.Button,{onClick:u,size:"sm",className:"btn-gold gap-2",children:[(0,b.jsx)(q.Globe,{className:"h-3.5 w-3.5"}),"Publish"]})]})]}),(0,b.jsxs)("div",{className:"flex flex-1 overflow-hidden",children:[!Q&&(0,b.jsxs)("div",{className:"w-72 border-r border-border bg-card/60 flex flex-col shrink-0",children:[(0,b.jsx)("div",{className:"flex border-b border-border",children:["blocks","layers"].map(a=>(0,b.jsx)("button",{onClick:()=>B(a),className:(0,N.cn)("flex-1 py-3 text-xs font-semibold capitalize transition-colors",A===a?"text-primary border-b-2 border-primary":"text-muted-foreground hover:text-foreground"),children:a},a))}),"blocks"===A&&(0,b.jsxs)("div",{className:"flex-1 flex flex-col min-h-0",children:[(0,b.jsx)("div",{className:"p-3 border-b border-border shrink-0",children:(0,b.jsx)(P.Input,{placeholder:"Search blocks...",value:D,onChange:a=>E(a.target.value),className:"h-8 text-xs"})}),(0,b.jsx)("div",{className:"flex-1 overflow-y-auto p-2 space-y-4",children:["Layout","Typography","Media","Social Proof","Commerce","People","Content","Real Estate"].map(a=>{let c=as.filter(b=>b.category===a);return 0===c.length?null:(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("p",{className:"text-[10px] font-bold text-muted-foreground uppercase tracking-widest px-2 mb-1",children:a}),c.map(a=>(0,b.jsxs)("div",{onClick:()=>{let b,c;x(c=[...w,b={id:X(),type:a.type,config:{...a.defaultConfig}}]),z(b.id),B("properties"),ao(c,b.id),e.toast.success(`${a.label} block added`)},className:"w-full flex items-center gap-3 px-3 py-2.5 rounded-xl hover:bg-secondary text-left transition-colors cursor-pointer group",children:[(0,b.jsx)("div",{className:"h-8 w-8 rounded-lg bg-secondary group-hover:bg-primary/10 flex items-center justify-center shrink-0 transition-colors",children:(0,b.jsx)(a.icon,{className:"h-4 w-4 text-muted-foreground group-hover:text-primary transition-colors"})}),(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("p",{className:"text-xs font-medium text-foreground",children:a.label}),(0,b.jsx)("p",{className:"text-[10px] text-muted-foreground truncate",children:a.description})]})]},a.type))]},a)})})]}),"layers"===A&&(0,b.jsxs)("div",{className:"flex-1 overflow-y-auto p-4 space-y-2",children:[(0,b.jsxs)("h3",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground mb-3 flex items-center gap-1.5",children:[(0,b.jsx)(L.default,{className:"w-3.5 h-3.5 text-primary"})," Page Hierarchy"]}),w.map((a,c)=>{let d=y===a.id,e=ae.has(a.id),f=ag.has(a.id),g=W.find(b=>b.type===a.type),h=g?.icon||r.Layout,i=ai[a.id]||g?.label||a.type;return(0,b.jsxs)("div",{onClick:()=>{z(a.id),B("properties")},className:(0,N.cn)("flex items-center justify-between p-2.5 rounded-xl border cursor-pointer transition-all",d?"bg-primary/10 border-primary text-primary":"bg-card/45 border-border hover:bg-secondary/40 text-foreground"),children:[(0,b.jsxs)("div",{className:"flex items-center gap-2.5 min-w-0",children:[(0,b.jsx)(h,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),(0,b.jsx)(P.Input,{value:i,onClick:a=>a.stopPropagation(),onChange:b=>{var c,d;return c=a.id,d=b.target.value,void aj(a=>({...a,[c]:d}))},className:"h-6 px-1 border-0 bg-transparent text-xs font-medium p-0 focus-visible:ring-1 focus-visible:ring-primary focus-visible:bg-background/80"})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1 shrink-0",onClick:a=>a.stopPropagation(),children:[(0,b.jsx)("button",{onClick:()=>{var b;return b=a.id,void af(a=>{let c=new Set(a);return c.has(b)?c.delete(b):c.add(b),c})},className:(0,N.cn)("p-1 rounded hover:bg-secondary text-muted-foreground",e&&"text-primary bg-primary/5"),title:e?"Unlock block":"Lock block",children:e?(0,b.jsx)(J.Lock,{className:"h-3 w-3"}):(0,b.jsx)(K.default,{className:"h-3 w-3"})}),(0,b.jsx)("button",{onClick:()=>{var b;return b=a.id,void ah(a=>{let c=new Set(a);return c.has(b)?c.delete(b):c.add(b),c})},className:(0,N.cn)("p-1 rounded hover:bg-secondary text-muted-foreground",f&&"text-destructive bg-destructive/5"),title:f?"Show block":"Hide block",children:f?(0,b.jsx)(m.EyeOff,{className:"h-3 w-3"}):(0,b.jsx)(l.Eye,{className:"h-3 w-3"})}),(0,b.jsx)("button",{onClick:()=>ap(a.id,"up"),disabled:0===c,className:"p-1 rounded hover:bg-secondary text-muted-foreground disabled:opacity-30",children:(0,b.jsx)(G.ChevronUp,{className:"h-3 w-3"})}),(0,b.jsx)("button",{onClick:()=>ap(a.id,"down"),disabled:c===w.length-1,className:"p-1 rounded hover:bg-secondary text-muted-foreground disabled:opacity-30",children:(0,b.jsx)(j.ChevronDown,{className:"h-3 w-3"})})]})]},a.id)})]})]}),(0,b.jsxs)("div",{className:"flex-1 overflow-y-auto bg-muted/20 relative p-8 flex justify-center items-start min-h-[90vh]",children:[ac&&(0,b.jsx)("div",{className:"absolute inset-0 z-0 pointer-events-none opacity-40",style:{backgroundImage:"radial-gradient(circle, hsl(var(--border)) 1.5px, transparent 1.5px)",backgroundSize:"20px 20px"}}),(0,b.jsx)("div",{style:{width:Q?"100%":`${({desktop:1440,laptop:1024,"tablet-landscape":1024,"tablet-portrait":768,"mobile-large":425,"mobile-small":320})[S]}px`,transform:`scale(${aa})`,transformOrigin:"top center"},className:(0,N.cn)("transition-all duration-300 relative bg-background border border-border shadow-2xl overflow-hidden min-h-[85vh]",!Q&&"desktop"!==S&&"rounded-3xl ring-8 ring-secondary"),onClick:()=>z(null),children:(0,b.jsxs)("div",{className:"flex flex-col min-h-screen text-foreground relative",children:[(0,b.jsx)(U.Navbar,{settings:Y}),(0,b.jsx)("div",{className:"flex-grow pt-16 pb-20",children:0===w.length?(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center gap-4 py-24 text-center",children:[(0,b.jsx)(g.Plus,{className:"h-8 w-8 text-muted-foreground"}),(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"font-medium text-foreground",children:"Start building your visual page layout"}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground mt-1",children:"Select visual blocks from the left sidebar to add them"})]})]}):(0,b.jsx)(f.AnimatePresence,{mode:"popLayout",children:w.map((a,c)=>{let d=y===a.id,f=ae.has(a.id),g=ag.has(a.id),i=W.find(b=>b.type===a.type),l=ai[a.id]||i?.label||a.type;if(g)return null;let m=a.config?.customCSS?`#block-${a.id} { ${a.config.customCSS} }`:"";return(0,b.jsxs)("div",{id:`block-${a.id}`,onClick:b=>{(b.stopPropagation(),f)?e.toast.info("Block is locked. Unlock it in the Layers panel to edit."):(z(a.id),B("properties"))},style:{marginTop:a.config?.marginTop?String(a.config.marginTop):void 0,marginBottom:a.config?.marginBottom?String(a.config.marginBottom):void 0,paddingTop:a.config?.paddingTop?String(a.config.paddingTop):void 0,paddingBottom:a.config?.paddingBottom?String(a.config.paddingBottom):void 0,borderRadius:a.config?.borderRadius?String(a.config.borderRadius):void 0,boxShadow:a.config?.boxShadow?String(a.config.boxShadow):void 0,background:a.config?.backgroundGradient?String(a.config.backgroundGradient):void 0},className:(0,N.cn)("relative group transition-all duration-200 border-2 cursor-pointer",d?"border-primary ring-4 ring-primary/10":"border-transparent hover:border-primary/30",!!a.config?.hideOnDesktop&&!Q&&"opacity-40 border-dashed",!!a.config?.hideOnTablet&&!Q&&"opacity-40 border-dashed",!!a.config?.hideOnMobile&&!Q&&"opacity-40 border-dashed"),children:[m&&(0,b.jsx)("style",{dangerouslySetInnerHTML:{__html:m}}),!Q&&(0,b.jsx)("div",{className:"absolute top-0 left-0 bg-primary text-primary-foreground text-[9px] font-bold px-2 py-0.5 rounded-br-lg z-30 opacity-60 group-hover:opacity-100 transition-opacity",children:l}),!Q&&!f&&(0,b.jsxs)("div",{className:"absolute top-3 right-3 z-30 flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity bg-background border border-border p-1 rounded-lg shadow-lg",onClick:a=>a.stopPropagation(),children:[(0,b.jsx)("button",{onClick:()=>ap(a.id,"up"),disabled:0===c,className:"h-6 w-6 rounded-md hover:bg-secondary flex items-center justify-center text-muted-foreground disabled:opacity-30",children:(0,b.jsx)(G.ChevronUp,{className:"h-3.5 w-3.5"})}),(0,b.jsx)("button",{onClick:()=>ap(a.id,"down"),disabled:c===w.length-1,className:"h-6 w-6 rounded-md hover:bg-secondary flex items-center justify-center text-muted-foreground disabled:opacity-30",children:(0,b.jsx)(j.ChevronDown,{className:"h-3.5 w-3.5"})}),(0,b.jsx)("button",{onClick:()=>(a=>{let b=w.find(b=>b.id===a);if(!b)return;let c={...b,id:X(),config:{...b.config}},d=w.findIndex(b=>b.id===a),f=[...w.slice(0,d+1),c,...w.slice(d+1)];x(f),z(c.id),ao(f,c.id),e.toast.success("Block duplicated")})(a.id),className:"h-6 w-6 rounded-md hover:bg-secondary flex items-center justify-center text-muted-foreground",children:(0,b.jsx)(k.Copy,{className:"h-3.5 w-3.5"})}),(0,b.jsx)("button",{onClick:()=>{var b;let c;return b=a.id,void(x(c=w.filter(a=>a.id!==b)),z(a=>a===b?null:a),ao(c,y===b?null:y),e.toast.error("Block removed"))},className:"h-6 w-6 rounded-md hover:bg-destructive/15 flex items-center justify-center text-muted-foreground hover:text-destructive",children:(0,b.jsx)(h.Trash2,{className:"h-3.5 w-3.5"})})]}),(0,b.jsx)(T.PageBuilderRenderer,{layout:[a]})]},a.id)})})}),(0,b.jsx)(V.Footer,{settings:Y})]})})]}),!Q&&(0,b.jsx)("div",{className:"w-80 border-l border-border bg-card/60 flex flex-col shrink-0",children:ar?(0,b.jsx)(Z,{block:ar,onChange:a=>{let b;return y&&void(x(b=w.map(b=>b.id===y?{...b,config:a}:b)),ao(b,y))}}):(0,b.jsxs)("div",{className:"flex-1 flex flex-col items-center justify-center p-6 text-center text-muted-foreground",children:[(0,b.jsx)(i.Settings,{className:"w-8 h-8 mb-2 opacity-40"}),(0,b.jsx)("p",{className:"text-xs font-semibold",children:"No block selected"}),(0,b.jsx)("p",{className:"text-[10px] mt-1",children:"Select a block on the visual canvas to edit its spacing, typography, and content values."})]})})]})]})}var _=a.i(405050);let aa=(0,_.createServerReference)("60014c62703b1b140febe8a4f902a3eeeebe3d4ee7",_.callServer,void 0,_.findSourceMapURL,"savePageBlocks"),ab=(0,_.createServerReference)("40868c2b7b1314761b196708b54ecd895365879dec",_.callServer,void 0,_.findSourceMapURL,"publishPage");a.s(["default",0,function({page:a}){let f,g=(0,d.useRouter)(),[h,i]=(0,c.useTransition)();try{if(a.content){let b=JSON.parse(a.content);if(Array.isArray(b)){let a=b.map(a=>({id:a.id||`blk_${Math.random().toString(36).slice(2,9)}`,type:a.type,config:a.settings||a.config||{}}));f={version:"1.0",blocks:a}}else if(b&&"object"==typeof b){let a=b.blocks||[];f={version:b.version||"1.0",blocks:a}}}}catch(a){}f?.blocks||(f={version:"1.0",blocks:[]});let j=async b=>{let c=await aa(a.id,b);c.success?e.toast.success("Draft saved successfully"):e.toast.error(c.error??"Failed to save")},k=async()=>{i(async()=>{let b=await ab(a.id);b.success?(e.toast.success("Page published!"),g.refresh()):e.toast.error(b.error??"Failed to publish")})};return(0,b.jsx)($,{initialTree:f,pageId:a.id,pageTitle:a.title,onSave:j,onPublish:"published"!==a.publish_status?k:void 0})}],600592)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_app_admin_cms_pages_%5Bid%5D_edit_page-editor-client_tsx_0hbosvr._.js.map
|
package/.next/server/chunks/ssr/src_components_admin_branding_icon-generator_tsx_0-p-crb._.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[627870,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(346271),e=a.i(262036),f=a.i(823292),g=a.i(201661),h=a.i(875160),i=a.i(613412),j=a.i(71215),k=a.i(526634),l=a.i(341476),m=a.i(1195),n=a.i(609225),n=n,o=a.i(699570),p=a.i(771511),q=a.i(46216);a.s(["BrandingEditor",0,function({initialValues:a}){let[r,s]=(0,c.useState)("assets"),[t,u]=(0,c.useState)(a.logo),[v,w]=(0,c.useState)(a.logo_dark),[x,y]=(0,c.useState)(a.favicon),[z,A]=(0,c.useState)(a.apple_icon),[B,C]=(0,c.useState)(a.og_image),[D,E]=(0,c.useState)(!1),[F,G]=(0,c.useState)(null),[H,I]=(0,c.useState)(""),[J,K]=(0,c.useState)(!1),[L,M]=(0,c.useState)(0),[N,O]=(0,c.useState)(""),[P,Q]=(0,c.useState)([]),R=(0,c.useRef)(null),S=async(a,b,c)=>{let d=f.toast.loading(`Uploading ${c}…`);try{let e=new FormData;e.append("file",a);let g=await fetch("/api/upload",{method:"POST",body:e});if(!g.ok)throw Error("Upload request failed");let h=await g.json();if(h.success&&h.url)b(h.url),f.toast.success(`${c} uploaded successfully!`,{id:d});else throw Error(h.error||"Failed to retrieve URL")}catch(a){f.toast.error(`Upload failed: ${a.message}`,{id:d})}},T=async()=>{E(!0);try{await (0,q.saveSettingsGroup)("branding",{logo:t,logo_dark:v,favicon:x,apple_icon:z}),await (0,q.saveSettingsGroup)("seo",{og_image:B}),f.toast.success("Branding settings saved successfully! Changes are now live.")}catch(a){f.toast.error(a.message||"Failed to save branding assets")}finally{E(!1)}},U=a=>{G(a),I(URL.createObjectURL(a)),Q([])},V=async()=>{if(!F)return void f.toast.error("Please select a primary logo first");K(!0),M(0),O("Preparing logo…");try{let a=new FormData;a.append("file",F),M(20),O("Uploading logo…");let b=await fetch("/api/generate-icons",{method:"POST",body:a});if(M(60),O("Generating platform icon sizes…"),!b.ok){let a=await b.json();throw Error(a.error??"Generation failed")}let c=await b.json();M(90),O("Saving settings URLs…"),Q(c.generated??[]);let d=c.generated?.find(a=>"favicon-32x32.png"===a.name),e=c.generated?.find(a=>"apple-touch-icon.png"===a.name),g=c.generated?.find(a=>"og-image.png"===a.name);d?.url&&y(d.url),e?.url&&A(e.url),g?.url&&C(g.url),await (0,q.saveSettingsGroup)("branding",{logo:H||t,favicon:d?.url??x,apple_icon:e?.url??z}),g?.url&&await (0,q.saveSettingsGroup)("seo",{og_image:g.url}),M(100),O("Done!"),f.toast.success(`Generated ${c.generated?.length??0} platform icons successfully!`)}catch(a){f.toast.error(a.message??"Generation failed")}finally{setTimeout(()=>K(!1),800)}},W={16:"Favicon 16px",32:"Favicon 32px",48:"Favicon 48px",72:"PWA 72px",96:"PWA 96px",128:"Chrome 128px",144:"MS Tile 144px",150:"MS Tile 150px",152:"iOS 152px",180:"Apple Touch",192:"Android 192px",384:"PWA 384px",512:"Android 512px"};return(0,b.jsxs)("div",{className:"max-w-6xl space-y-8",children:[(0,b.jsx)("div",{className:"flex flex-col md:flex-row md:items-center justify-between gap-4 border-b border-border/60 pb-6",children:(0,b.jsxs)("div",{children:[(0,b.jsx)("h1",{className:"text-3xl font-bold text-foreground tracking-tight",children:"Branding & Logo Settings"}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground mt-1",children:"Configure your corporate logo assets, favicons, social Open Graph images, and platform icons."})]})}),(0,b.jsxs)("div",{className:"flex gap-2 border-b border-border/40 pb-px",children:[(0,b.jsxs)("button",{onClick:()=>s("assets"),className:`flex items-center gap-2 px-4 py-2.5 text-sm font-semibold border-b-2 transition-all ${"assets"===r?"border-primary text-primary":"border-transparent text-muted-foreground hover:text-foreground"}`,children:[(0,b.jsx)(m.Palette,{className:"w-4 h-4"}),(0,b.jsx)("span",{children:"Branding Assets"})]}),(0,b.jsxs)("button",{onClick:()=>s("generator"),className:`flex items-center gap-2 px-4 py-2.5 text-sm font-semibold border-b-2 transition-all ${"generator"===r?"border-primary text-primary":"border-transparent text-muted-foreground hover:text-foreground"}`,children:[(0,b.jsx)(n.default,{className:"w-4 h-4"}),(0,b.jsx)("span",{children:"Auto Icon Generator"})]})]}),"assets"===r?(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[(0,b.jsxs)("div",{className:"p-6 rounded-2xl border border-border bg-card/20 space-y-4 flex flex-col justify-between",children:[(0,b.jsxs)("div",{children:[(0,b.jsxs)("h3",{className:"font-semibold text-foreground flex items-center gap-2 mb-1",children:[(0,b.jsx)(j.Image,{className:"w-4 h-4 text-primary"}),"Primary Logo (Light Theme)"]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"Default logo rendered on transparent or light page headers."}),(0,b.jsx)("div",{className:"my-4 h-32 rounded-xl bg-white border border-border/40 flex items-center justify-center p-4",children:t?(0,b.jsx)("img",{src:t,alt:"Logo Light",className:"max-h-24 object-contain"}):(0,b.jsx)("span",{className:"text-xs text-slate-400",children:"No logo uploaded"})})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("input",{type:"text",value:t,onChange:a=>u(a.target.value),placeholder:"/logo/logo.png",className:"w-full px-3 py-2 bg-secondary/50 border border-border rounded-lg text-xs text-foreground focus:outline-none focus:ring-1 focus:ring-primary"}),(0,b.jsx)("input",{type:"file",id:"logo-light-file",accept:"image/*",className:"sr-only",onChange:a=>{let b=a.target.files?.[0];b&&S(b,u,"Light Logo")}}),(0,b.jsxs)(o.Button,{onClick:()=>document.getElementById("logo-light-file")?.click(),variant:"gold-outline",size:"sm",className:"w-full h-9 gap-2 text-xs",children:[(0,b.jsx)(g.Upload,{className:"w-3.5 h-3.5"}),(0,b.jsx)("span",{children:"Upload Logo File"})]})]})]}),(0,b.jsxs)("div",{className:"p-6 rounded-2xl border border-border bg-card/20 space-y-4 flex flex-col justify-between",children:[(0,b.jsxs)("div",{children:[(0,b.jsxs)("h3",{className:"font-semibold text-foreground flex items-center gap-2 mb-1",children:[(0,b.jsx)(j.Image,{className:"w-4 h-4 text-primary"}),"Dark Mode Logo"]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"High-contrast logo used specifically for dark mode headers."}),(0,b.jsx)("div",{className:"my-4 h-32 rounded-xl bg-[hsl(240,20%,5%)] border border-border/40 flex items-center justify-center p-4",children:v?(0,b.jsx)("img",{src:v,alt:"Logo Dark",className:"max-h-24 object-contain"}):(0,b.jsx)("span",{className:"text-xs text-slate-400",children:"No dark logo uploaded"})})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("input",{type:"text",value:v,onChange:a=>w(a.target.value),placeholder:"/logo/logo_dark.png",className:"w-full px-3 py-2 bg-secondary/50 border border-border rounded-lg text-xs text-foreground focus:outline-none focus:ring-1 focus:ring-primary"}),(0,b.jsx)("input",{type:"file",id:"logo-dark-file",accept:"image/*",className:"sr-only",onChange:a=>{let b=a.target.files?.[0];b&&S(b,w,"Dark Logo")}}),(0,b.jsxs)(o.Button,{onClick:()=>document.getElementById("logo-dark-file")?.click(),variant:"gold-outline",size:"sm",className:"w-full h-9 gap-2 text-xs",children:[(0,b.jsx)(g.Upload,{className:"w-3.5 h-3.5"}),(0,b.jsx)("span",{children:"Upload Dark Logo"})]})]})]}),(0,b.jsxs)("div",{className:"p-6 rounded-2xl border border-border bg-card/20 space-y-4 flex flex-col justify-between",children:[(0,b.jsxs)("div",{children:[(0,b.jsxs)("h3",{className:"font-semibold text-foreground flex items-center gap-2 mb-1",children:[(0,b.jsx)(j.Image,{className:"w-4 h-4 text-primary"}),"Favicon (Tab Icon)"]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"The icon displayed in browser address bar and tabs."}),(0,b.jsx)("div",{className:"my-4 h-32 rounded-xl bg-secondary/20 border border-border/40 flex items-center justify-center p-4",children:x?(0,b.jsx)("img",{src:x,alt:"Favicon",className:"h-10 w-10 object-contain"}):(0,b.jsx)("span",{className:"text-xs text-slate-400",children:"No favicon uploaded"})})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("input",{type:"text",value:x,onChange:a=>y(a.target.value),placeholder:"/favicon.ico",className:"w-full px-3 py-2 bg-secondary/50 border border-border rounded-lg text-xs text-foreground focus:outline-none focus:ring-1 focus:ring-primary"}),(0,b.jsx)("input",{type:"file",id:"favicon-file",accept:"image/*",className:"sr-only",onChange:a=>{let b=a.target.files?.[0];b&&S(b,y,"Favicon")}}),(0,b.jsxs)(o.Button,{onClick:()=>document.getElementById("favicon-file")?.click(),variant:"gold-outline",size:"sm",className:"w-full h-9 gap-2 text-xs",children:[(0,b.jsx)(g.Upload,{className:"w-3.5 h-3.5"}),(0,b.jsx)("span",{children:"Upload Favicon"})]})]})]}),(0,b.jsxs)("div",{className:"p-6 rounded-2xl border border-border bg-card/20 space-y-4 flex flex-col justify-between",children:[(0,b.jsxs)("div",{children:[(0,b.jsxs)("h3",{className:"font-semibold text-foreground flex items-center gap-2 mb-1",children:[(0,b.jsx)(j.Image,{className:"w-4 h-4 text-primary"}),"Open Graph Image (Social Sharing)"]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"Primary sharing banner displayed on LinkedIn, Facebook, and Twitter links."}),(0,b.jsx)("div",{className:"my-4 h-32 rounded-xl bg-secondary/20 border border-border/40 flex items-center justify-center overflow-hidden p-2",children:B?(0,b.jsx)("img",{src:B,alt:"OG Banner",className:"h-full w-full object-cover rounded-lg"}):(0,b.jsx)("span",{className:"text-xs text-slate-400",children:"No OG image uploaded"})})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("input",{type:"text",value:B,onChange:a=>C(a.target.value),placeholder:"/og/propVault.png",className:"w-full px-3 py-2 bg-secondary/50 border border-border rounded-lg text-xs text-foreground focus:outline-none focus:ring-1 focus:ring-primary"}),(0,b.jsx)("input",{type:"file",id:"og-file",accept:"image/*",className:"sr-only",onChange:a=>{let b=a.target.files?.[0];b&&S(b,C,"OG Image")}}),(0,b.jsxs)(o.Button,{onClick:()=>document.getElementById("og-file")?.click(),variant:"gold-outline",size:"sm",className:"w-full h-9 gap-2 text-xs",children:[(0,b.jsx)(g.Upload,{className:"w-3.5 h-3.5"}),(0,b.jsx)("span",{children:"Upload OG Image"})]})]})]})]}),(0,b.jsx)("div",{className:"flex justify-end pt-4",children:(0,b.jsx)(o.Button,{onClick:T,disabled:D,className:"btn-gold h-11 px-8 gap-2 text-sm font-semibold",children:D?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(h.Loader2,{className:"w-4 h-4 animate-spin"})," Saving Assets…"]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(l.Settings,{className:"w-4 h-4"})," Save Branding Assets"]})})})]}):(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsxs)("div",{className:"p-6 rounded-2xl border border-border bg-card/40 space-y-4",children:[(0,b.jsxs)("h2",{className:"font-semibold text-foreground flex items-center gap-2",children:[(0,b.jsx)(k.Star,{className:"h-4 w-4 text-primary"}),"Upload Source Logo"]}),(0,b.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[(0,b.jsxs)("div",{onClick:()=>R.current?.click(),onDragOver:a=>a.preventDefault(),onDrop:a=>{a.preventDefault();let b=a.dataTransfer.files[0];b?.type.startsWith("image/")&&U(b)},className:"relative flex flex-col items-center justify-center gap-3 p-8 rounded-2xl border-2 border-dashed border-border/60 hover:border-primary/40 cursor-pointer transition-all min-h-[180px] bg-secondary/20",children:[(0,b.jsx)("input",{ref:R,type:"file",accept:"image/*",className:"sr-only",onChange:a=>{let b=a.target.files?.[0];b&&U(b),a.target.value=""}}),(0,b.jsx)(g.Upload,{className:"h-8 w-8 text-muted-foreground"}),(0,b.jsxs)("div",{className:"text-center",children:[(0,b.jsx)("p",{className:"text-sm font-medium text-foreground",children:"Select Source Logo"}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5",children:"PNG, SVG, or WebP — min 512×512px recommended"})]})]}),(0,b.jsx)("div",{className:"flex flex-col items-center justify-center gap-3 p-6 rounded-2xl bg-secondary/30 min-h-[180px]",children:H?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("img",{src:H,alt:"Logo preview",className:"max-h-24 max-w-full object-contain"}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:F?.name??"Selected logo"})]}):(0,b.jsxs)("div",{className:"flex flex-col items-center gap-2 text-muted-foreground",children:[(0,b.jsx)(j.Image,{className:"h-10 w-10"}),(0,b.jsx)("p",{className:"text-xs",children:"No logo selected yet"})]})})]}),(0,b.jsx)(o.Button,{onClick:V,disabled:!F||J,className:"btn-gold w-full h-11 gap-2",children:J?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(h.Loader2,{className:"h-4 w-4 animate-spin"})," Generating Icons…"]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(k.Star,{className:"h-4 w-4"})," Generate All Icons & Favicons"]})})]}),(0,b.jsx)(e.AnimatePresence,{children:P.length>0&&(0,b.jsxs)(d.motion.div,{initial:{opacity:0,y:16},animate:{opacity:1,y:0},className:"p-6 rounded-2xl border border-emerald-500/20 bg-emerald-500/5 space-y-4",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(i.CheckCircle2,{className:"h-5 w-5 text-emerald-400"}),(0,b.jsxs)("h2",{className:"font-semibold text-foreground",children:[P.length," Icons Generated"]})]}),(0,b.jsx)("div",{className:"grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-4 xl:grid-cols-6 gap-3",children:P.map(a=>(0,b.jsxs)("a",{href:a.url,target:"_blank",rel:"noopener noreferrer",className:"group flex flex-col items-center gap-2 p-3 rounded-xl bg-card/60 border border-border hover:border-primary/30 transition-all",children:[(0,b.jsx)("img",{src:a.url,alt:a.name,className:"h-10 w-10 object-contain"}),(0,b.jsxs)("div",{className:"text-center",children:[(0,b.jsx)("p",{className:"text-[10px] font-medium text-foreground truncate w-full",children:a.size?W[a.size]??`${a.size}\xd7${a.size}`:`${a.width}\xd7${a.height}`}),(0,b.jsx)("p",{className:"text-[9px] text-muted-foreground truncate",children:a.name})]})]},a.name))}),(0,b.jsxs)("p",{className:"text-xs text-emerald-400/80",children:["All icons successfully generated and saved to ",(0,b.jsx)("code",{className:"font-mono",children:"/public/icons/"}),"."]})]})})]}),(0,b.jsx)(p.ProgressDialog,{open:J,title:"Generating Icons",description:"Creating all platform-specific icon sizes from your logo",progress:L,status:N})]})}],627870)}];
|
|
1
|
+
module.exports=[627870,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(346271),e=a.i(262036),f=a.i(823292),g=a.i(201661),h=a.i(875160),i=a.i(613412),j=a.i(71215),k=a.i(526634),l=a.i(341476),m=a.i(1195),n=a.i(609225),n=n,o=a.i(699570),p=a.i(771511),q=a.i(504648);a.s(["BrandingEditor",0,function({initialValues:a}){let[r,s]=(0,c.useState)("assets"),[t,u]=(0,c.useState)(a.logo),[v,w]=(0,c.useState)(a.logo_dark),[x,y]=(0,c.useState)(a.favicon),[z,A]=(0,c.useState)(a.apple_icon),[B,C]=(0,c.useState)(a.og_image),[D,E]=(0,c.useState)(!1),[F,G]=(0,c.useState)(null),[H,I]=(0,c.useState)(""),[J,K]=(0,c.useState)(!1),[L,M]=(0,c.useState)(0),[N,O]=(0,c.useState)(""),[P,Q]=(0,c.useState)([]),R=(0,c.useRef)(null),S=async(a,b,c)=>{let d=f.toast.loading(`Uploading ${c}…`);try{let e=new FormData;e.append("file",a);let g=await fetch("/api/upload",{method:"POST",body:e});if(!g.ok)throw Error("Upload request failed");let h=await g.json();if(h.success&&h.url)b(h.url),f.toast.success(`${c} uploaded successfully!`,{id:d});else throw Error(h.error||"Failed to retrieve URL")}catch(a){f.toast.error(`Upload failed: ${a.message}`,{id:d})}},T=async()=>{E(!0);try{await (0,q.saveSettingsGroup)("branding",{logo:t,logo_dark:v,favicon:x,apple_icon:z}),await (0,q.saveSettingsGroup)("seo",{og_image:B}),f.toast.success("Branding settings saved successfully! Changes are now live.")}catch(a){f.toast.error(a.message||"Failed to save branding assets")}finally{E(!1)}},U=a=>{G(a),I(URL.createObjectURL(a)),Q([])},V=async()=>{if(!F)return void f.toast.error("Please select a primary logo first");K(!0),M(0),O("Preparing logo…");try{let a=new FormData;a.append("file",F),M(20),O("Uploading logo…");let b=await fetch("/api/generate-icons",{method:"POST",body:a});if(M(60),O("Generating platform icon sizes…"),!b.ok){let a=await b.json();throw Error(a.error??"Generation failed")}let c=await b.json();M(90),O("Saving settings URLs…"),Q(c.generated??[]);let d=c.generated?.find(a=>"favicon-32x32.png"===a.name),e=c.generated?.find(a=>"apple-touch-icon.png"===a.name),g=c.generated?.find(a=>"og-image.png"===a.name);d?.url&&y(d.url),e?.url&&A(e.url),g?.url&&C(g.url),await (0,q.saveSettingsGroup)("branding",{logo:H||t,favicon:d?.url??x,apple_icon:e?.url??z}),g?.url&&await (0,q.saveSettingsGroup)("seo",{og_image:g.url}),M(100),O("Done!"),f.toast.success(`Generated ${c.generated?.length??0} platform icons successfully!`)}catch(a){f.toast.error(a.message??"Generation failed")}finally{setTimeout(()=>K(!1),800)}},W={16:"Favicon 16px",32:"Favicon 32px",48:"Favicon 48px",72:"PWA 72px",96:"PWA 96px",128:"Chrome 128px",144:"MS Tile 144px",150:"MS Tile 150px",152:"iOS 152px",180:"Apple Touch",192:"Android 192px",384:"PWA 384px",512:"Android 512px"};return(0,b.jsxs)("div",{className:"max-w-6xl space-y-8",children:[(0,b.jsx)("div",{className:"flex flex-col md:flex-row md:items-center justify-between gap-4 border-b border-border/60 pb-6",children:(0,b.jsxs)("div",{children:[(0,b.jsx)("h1",{className:"text-3xl font-bold text-foreground tracking-tight",children:"Branding & Logo Settings"}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground mt-1",children:"Configure your corporate logo assets, favicons, social Open Graph images, and platform icons."})]})}),(0,b.jsxs)("div",{className:"flex gap-2 border-b border-border/40 pb-px",children:[(0,b.jsxs)("button",{onClick:()=>s("assets"),className:`flex items-center gap-2 px-4 py-2.5 text-sm font-semibold border-b-2 transition-all ${"assets"===r?"border-primary text-primary":"border-transparent text-muted-foreground hover:text-foreground"}`,children:[(0,b.jsx)(m.Palette,{className:"w-4 h-4"}),(0,b.jsx)("span",{children:"Branding Assets"})]}),(0,b.jsxs)("button",{onClick:()=>s("generator"),className:`flex items-center gap-2 px-4 py-2.5 text-sm font-semibold border-b-2 transition-all ${"generator"===r?"border-primary text-primary":"border-transparent text-muted-foreground hover:text-foreground"}`,children:[(0,b.jsx)(n.default,{className:"w-4 h-4"}),(0,b.jsx)("span",{children:"Auto Icon Generator"})]})]}),"assets"===r?(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[(0,b.jsxs)("div",{className:"p-6 rounded-2xl border border-border bg-card/20 space-y-4 flex flex-col justify-between",children:[(0,b.jsxs)("div",{children:[(0,b.jsxs)("h3",{className:"font-semibold text-foreground flex items-center gap-2 mb-1",children:[(0,b.jsx)(j.Image,{className:"w-4 h-4 text-primary"}),"Primary Logo (Light Theme)"]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"Default logo rendered on transparent or light page headers."}),(0,b.jsx)("div",{className:"my-4 h-32 rounded-xl bg-white border border-border/40 flex items-center justify-center p-4",children:t?(0,b.jsx)("img",{src:t,alt:"Logo Light",className:"max-h-24 object-contain"}):(0,b.jsx)("span",{className:"text-xs text-slate-400",children:"No logo uploaded"})})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("input",{type:"text",value:t,onChange:a=>u(a.target.value),placeholder:"/logo/logo.png",className:"w-full px-3 py-2 bg-secondary/50 border border-border rounded-lg text-xs text-foreground focus:outline-none focus:ring-1 focus:ring-primary"}),(0,b.jsx)("input",{type:"file",id:"logo-light-file",accept:"image/*",className:"sr-only",onChange:a=>{let b=a.target.files?.[0];b&&S(b,u,"Light Logo")}}),(0,b.jsxs)(o.Button,{onClick:()=>document.getElementById("logo-light-file")?.click(),variant:"gold-outline",size:"sm",className:"w-full h-9 gap-2 text-xs",children:[(0,b.jsx)(g.Upload,{className:"w-3.5 h-3.5"}),(0,b.jsx)("span",{children:"Upload Logo File"})]})]})]}),(0,b.jsxs)("div",{className:"p-6 rounded-2xl border border-border bg-card/20 space-y-4 flex flex-col justify-between",children:[(0,b.jsxs)("div",{children:[(0,b.jsxs)("h3",{className:"font-semibold text-foreground flex items-center gap-2 mb-1",children:[(0,b.jsx)(j.Image,{className:"w-4 h-4 text-primary"}),"Dark Mode Logo"]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"High-contrast logo used specifically for dark mode headers."}),(0,b.jsx)("div",{className:"my-4 h-32 rounded-xl bg-[hsl(240,20%,5%)] border border-border/40 flex items-center justify-center p-4",children:v?(0,b.jsx)("img",{src:v,alt:"Logo Dark",className:"max-h-24 object-contain"}):(0,b.jsx)("span",{className:"text-xs text-slate-400",children:"No dark logo uploaded"})})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("input",{type:"text",value:v,onChange:a=>w(a.target.value),placeholder:"/logo/logo_dark.png",className:"w-full px-3 py-2 bg-secondary/50 border border-border rounded-lg text-xs text-foreground focus:outline-none focus:ring-1 focus:ring-primary"}),(0,b.jsx)("input",{type:"file",id:"logo-dark-file",accept:"image/*",className:"sr-only",onChange:a=>{let b=a.target.files?.[0];b&&S(b,w,"Dark Logo")}}),(0,b.jsxs)(o.Button,{onClick:()=>document.getElementById("logo-dark-file")?.click(),variant:"gold-outline",size:"sm",className:"w-full h-9 gap-2 text-xs",children:[(0,b.jsx)(g.Upload,{className:"w-3.5 h-3.5"}),(0,b.jsx)("span",{children:"Upload Dark Logo"})]})]})]}),(0,b.jsxs)("div",{className:"p-6 rounded-2xl border border-border bg-card/20 space-y-4 flex flex-col justify-between",children:[(0,b.jsxs)("div",{children:[(0,b.jsxs)("h3",{className:"font-semibold text-foreground flex items-center gap-2 mb-1",children:[(0,b.jsx)(j.Image,{className:"w-4 h-4 text-primary"}),"Favicon (Tab Icon)"]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"The icon displayed in browser address bar and tabs."}),(0,b.jsx)("div",{className:"my-4 h-32 rounded-xl bg-secondary/20 border border-border/40 flex items-center justify-center p-4",children:x?(0,b.jsx)("img",{src:x,alt:"Favicon",className:"h-10 w-10 object-contain"}):(0,b.jsx)("span",{className:"text-xs text-slate-400",children:"No favicon uploaded"})})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("input",{type:"text",value:x,onChange:a=>y(a.target.value),placeholder:"/favicon.ico",className:"w-full px-3 py-2 bg-secondary/50 border border-border rounded-lg text-xs text-foreground focus:outline-none focus:ring-1 focus:ring-primary"}),(0,b.jsx)("input",{type:"file",id:"favicon-file",accept:"image/*",className:"sr-only",onChange:a=>{let b=a.target.files?.[0];b&&S(b,y,"Favicon")}}),(0,b.jsxs)(o.Button,{onClick:()=>document.getElementById("favicon-file")?.click(),variant:"gold-outline",size:"sm",className:"w-full h-9 gap-2 text-xs",children:[(0,b.jsx)(g.Upload,{className:"w-3.5 h-3.5"}),(0,b.jsx)("span",{children:"Upload Favicon"})]})]})]}),(0,b.jsxs)("div",{className:"p-6 rounded-2xl border border-border bg-card/20 space-y-4 flex flex-col justify-between",children:[(0,b.jsxs)("div",{children:[(0,b.jsxs)("h3",{className:"font-semibold text-foreground flex items-center gap-2 mb-1",children:[(0,b.jsx)(j.Image,{className:"w-4 h-4 text-primary"}),"Open Graph Image (Social Sharing)"]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"Primary sharing banner displayed on LinkedIn, Facebook, and Twitter links."}),(0,b.jsx)("div",{className:"my-4 h-32 rounded-xl bg-secondary/20 border border-border/40 flex items-center justify-center overflow-hidden p-2",children:B?(0,b.jsx)("img",{src:B,alt:"OG Banner",className:"h-full w-full object-cover rounded-lg"}):(0,b.jsx)("span",{className:"text-xs text-slate-400",children:"No OG image uploaded"})})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("input",{type:"text",value:B,onChange:a=>C(a.target.value),placeholder:"/og/propVault.png",className:"w-full px-3 py-2 bg-secondary/50 border border-border rounded-lg text-xs text-foreground focus:outline-none focus:ring-1 focus:ring-primary"}),(0,b.jsx)("input",{type:"file",id:"og-file",accept:"image/*",className:"sr-only",onChange:a=>{let b=a.target.files?.[0];b&&S(b,C,"OG Image")}}),(0,b.jsxs)(o.Button,{onClick:()=>document.getElementById("og-file")?.click(),variant:"gold-outline",size:"sm",className:"w-full h-9 gap-2 text-xs",children:[(0,b.jsx)(g.Upload,{className:"w-3.5 h-3.5"}),(0,b.jsx)("span",{children:"Upload OG Image"})]})]})]})]}),(0,b.jsx)("div",{className:"flex justify-end pt-4",children:(0,b.jsx)(o.Button,{onClick:T,disabled:D,className:"btn-gold h-11 px-8 gap-2 text-sm font-semibold",children:D?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(h.Loader2,{className:"w-4 h-4 animate-spin"})," Saving Assets…"]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(l.Settings,{className:"w-4 h-4"})," Save Branding Assets"]})})})]}):(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsxs)("div",{className:"p-6 rounded-2xl border border-border bg-card/40 space-y-4",children:[(0,b.jsxs)("h2",{className:"font-semibold text-foreground flex items-center gap-2",children:[(0,b.jsx)(k.Star,{className:"h-4 w-4 text-primary"}),"Upload Source Logo"]}),(0,b.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[(0,b.jsxs)("div",{onClick:()=>R.current?.click(),onDragOver:a=>a.preventDefault(),onDrop:a=>{a.preventDefault();let b=a.dataTransfer.files[0];b?.type.startsWith("image/")&&U(b)},className:"relative flex flex-col items-center justify-center gap-3 p-8 rounded-2xl border-2 border-dashed border-border/60 hover:border-primary/40 cursor-pointer transition-all min-h-[180px] bg-secondary/20",children:[(0,b.jsx)("input",{ref:R,type:"file",accept:"image/*",className:"sr-only",onChange:a=>{let b=a.target.files?.[0];b&&U(b),a.target.value=""}}),(0,b.jsx)(g.Upload,{className:"h-8 w-8 text-muted-foreground"}),(0,b.jsxs)("div",{className:"text-center",children:[(0,b.jsx)("p",{className:"text-sm font-medium text-foreground",children:"Select Source Logo"}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5",children:"PNG, SVG, or WebP — min 512×512px recommended"})]})]}),(0,b.jsx)("div",{className:"flex flex-col items-center justify-center gap-3 p-6 rounded-2xl bg-secondary/30 min-h-[180px]",children:H?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("img",{src:H,alt:"Logo preview",className:"max-h-24 max-w-full object-contain"}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:F?.name??"Selected logo"})]}):(0,b.jsxs)("div",{className:"flex flex-col items-center gap-2 text-muted-foreground",children:[(0,b.jsx)(j.Image,{className:"h-10 w-10"}),(0,b.jsx)("p",{className:"text-xs",children:"No logo selected yet"})]})})]}),(0,b.jsx)(o.Button,{onClick:V,disabled:!F||J,className:"btn-gold w-full h-11 gap-2",children:J?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(h.Loader2,{className:"h-4 w-4 animate-spin"})," Generating Icons…"]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(k.Star,{className:"h-4 w-4"})," Generate All Icons & Favicons"]})})]}),(0,b.jsx)(e.AnimatePresence,{children:P.length>0&&(0,b.jsxs)(d.motion.div,{initial:{opacity:0,y:16},animate:{opacity:1,y:0},className:"p-6 rounded-2xl border border-emerald-500/20 bg-emerald-500/5 space-y-4",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(i.CheckCircle2,{className:"h-5 w-5 text-emerald-400"}),(0,b.jsxs)("h2",{className:"font-semibold text-foreground",children:[P.length," Icons Generated"]})]}),(0,b.jsx)("div",{className:"grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-4 xl:grid-cols-6 gap-3",children:P.map(a=>(0,b.jsxs)("a",{href:a.url,target:"_blank",rel:"noopener noreferrer",className:"group flex flex-col items-center gap-2 p-3 rounded-xl bg-card/60 border border-border hover:border-primary/30 transition-all",children:[(0,b.jsx)("img",{src:a.url,alt:a.name,className:"h-10 w-10 object-contain"}),(0,b.jsxs)("div",{className:"text-center",children:[(0,b.jsx)("p",{className:"text-[10px] font-medium text-foreground truncate w-full",children:a.size?W[a.size]??`${a.size}\xd7${a.size}`:`${a.width}\xd7${a.height}`}),(0,b.jsx)("p",{className:"text-[9px] text-muted-foreground truncate",children:a.name})]})]},a.name))}),(0,b.jsxs)("p",{className:"text-xs text-emerald-400/80",children:["All icons successfully generated and saved to ",(0,b.jsx)("code",{className:"font-mono",children:"/public/icons/"}),"."]})]})})]}),(0,b.jsx)(p.ProgressDialog,{open:J,title:"Generating Icons",description:"Creating all platform-specific icon sizes from your logo",progress:L,status:N})]})}],627870)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_components_admin_branding_icon-generator_tsx_0-p-crb._.js.map
|