import { r as __toESM } from "../_runtime.mjs"; import { n as require_jsx_runtime, r as require_react } from "../_libs/react+tanstack__react-query.mjs"; import { t as PageHero } from "./PageHero-JlNjeanC.mjs"; import { C as Calculator } from "../_libs/lucide-react.mjs"; import { t as company } from "./router-eHxkqfmM.mjs"; import { t as hero1_default } from "./hero1-B6ZL9Cko.mjs"; //#region node_modules/.nitro/vite/services/ssr/assets/quote-BdIUXmCZ.js var import_react = /* @__PURE__ */ __toESM(require_react()); var import_jsx_runtime = require_jsx_runtime(); var initialCourierValues = { originPincode: "", destinationPincode: "", weight: "", shipmentValue: "", serviceType: "" }; var initialPtlValues = { pickupCity: "", deliveryCity: "", weight: "", packages: "", dimensions: "" }; var inputClass = "w-full rounded-md border border-input bg-background px-3.5 py-3 text-sm text-navy outline-none transition-colors focus:border-gold focus:ring-2 focus:ring-gold/30"; function Field({ id, label, required = false, children }) { return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("label", { htmlFor: id, className: "mb-2 block text-sm font-semibold text-navy", children: [ label, " ", required ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "text-gold", children: "*" }) : null ] }), children] }); } function QuoteResult({ type }) { return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "mt-8 rounded-lg border border-gold/30 bg-surface p-6", children: [ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center gap-3", children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "flex h-10 w-10 items-center justify-center rounded-md bg-navy text-gold", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(CheckCircle2, { className: "h-5 w-5" }) }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("h3", { className: "text-lg font-bold text-navy", children: "Quote Summary" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "text-xs text-muted-foreground", children: "Estimated quote details" })] })] }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "mt-6 space-y-3", children: type === "courier" ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex justify-between gap-4 text-sm", children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "text-muted-foreground", children: "Freight" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "font-semibold text-navy", children: "₹ --" })] }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex justify-between gap-4 text-sm", children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "text-muted-foreground", children: "Fuel Surcharge" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "font-semibold text-navy", children: "₹ --" })] }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex justify-between gap-4 text-sm", children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "text-muted-foreground", children: "GST" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "font-semibold text-navy", children: "₹ --" })] }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "border-t border-border pt-3", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex justify-between gap-4", children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "font-bold text-navy", children: "Total Amount" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "font-bold text-lg text-navy", children: "₹ --" })] }) }) ] }) : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex justify-between gap-4 text-sm", children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "text-muted-foreground", children: "Freight Cost" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "font-semibold text-navy", children: "₹ --" })] }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex justify-between gap-4 text-sm", children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "text-muted-foreground", children: "Transit Time" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "font-semibold text-navy", children: "--" })] }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex justify-between gap-4 text-sm", children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "text-muted-foreground", children: "Insurance" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "font-semibold text-navy", children: "₹ --" })] }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex justify-between gap-4 text-sm", children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "text-muted-foreground", children: "GST" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "font-semibold text-navy", children: "₹ --" })] }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "border-t border-border pt-3", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex justify-between gap-4", children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "font-bold text-navy", children: "Final Cost" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "font-bold text-lg text-navy", children: "₹ --" })] }) }) ] }) }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "mt-5 text-xs leading-relaxed text-muted-foreground", children: "Final pricing will be confirmed based on the applicable service rates and shipment details." }) ] }); } function QuoteForm() { const [activeTab, setActiveTab] = (0, import_react.useState)("courier"); const [courierValues, setCourierValues] = (0, import_react.useState)(initialCourierValues); const [ptlValues, setPtlValues] = (0, import_react.useState)(initialPtlValues); const [showCourierResult, setShowCourierResult] = (0, import_react.useState)(false); const [showPtlResult, setShowPtlResult] = (0, import_react.useState)(false); const updateCourier = (event) => { const { name, value } = event.target; setCourierValues((previous) => ({ ...previous, [name]: value })); setShowCourierResult(false); }; const updatePtl = (event) => { const { name, value } = event.target; setPtlValues((previous) => ({ ...previous, [name]: value })); setShowPtlResult(false); }; const handleCourierSubmit = (event) => { event.preventDefault(); setShowCourierResult(true); }; const handlePtlSubmit = (event) => { event.preventDefault(); setShowPtlResult(true); }; const switchTab = (tab) => { setActiveTab(tab); setShowCourierResult(false); setShowPtlResult(false); }; return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("section", { className: "section-pad bg-surface", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "mx-auto max-w-5xl px-6", children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "mx-auto max-w-3xl text-center", children: [ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "text-xs font-semibold uppercase tracking-[0.22em] text-gold", children: "Instant Quote" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h2", { className: "mt-3 text-3xl font-bold text-navy sm:text-4xl", children: "Calculate Your Logistics Quote" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "gold-rule mx-auto mt-5", "aria-hidden": "true" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "mt-5 text-base leading-relaxed text-muted-foreground", children: "Enter your shipment details to get an estimated logistics quotation." }) ] }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "mt-10 rounded-lg border border-border bg-background p-6 shadow-sm sm:p-8", children: [ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "grid grid-cols-2 rounded-md border border-border bg-surface p-1", children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { type: "button", onClick: () => switchTab("courier"), className: `rounded-md px-4 py-3 text-sm font-semibold transition-colors ${activeTab === "courier" ? "bg-navy text-white shadow-sm" : "text-navy hover:bg-background"}`, children: "Courier Calculator" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { type: "button", onClick: () => switchTab("ptl"), className: `rounded-md px-4 py-3 text-sm font-semibold transition-colors ${activeTab === "ptl" ? "bg-navy text-white shadow-sm" : "text-navy hover:bg-background"}`, children: "PTL Calculator" })] }), activeTab === "courier" ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("form", { onSubmit: handleCourierSubmit, className: "mt-8", children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center gap-3", children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "flex h-10 w-10 items-center justify-center rounded-md bg-navy text-gold", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Calculator, { className: "h-5 w-5" }) }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("h3", { className: "text-xl font-bold text-navy", children: "Courier Calculator" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "mt-1 text-sm text-muted-foreground", children: "Calculate an estimated courier shipment cost." })] })] }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "mt-7 grid gap-5 md:grid-cols-2", children: [ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Field, { id: "originPincode", label: "Origin Pincode", required: true, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("input", { id: "originPincode", name: "originPincode", type: "text", inputMode: "numeric", maxLength: 6, value: courierValues.originPincode, onChange: updateCourier, placeholder: "Enter 6-digit pincode", className: inputClass }) }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Field, { id: "destinationPincode", label: "Destination Pincode", required: true, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("input", { id: "destinationPincode", name: "destinationPincode", type: "text", inputMode: "numeric", maxLength: 6, value: courierValues.destinationPincode, onChange: updateCourier, placeholder: "Enter 6-digit pincode", className: inputClass }) }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Field, { id: "weight", label: "Weight", required: true, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("input", { id: "weight", name: "weight", type: "number", min: "0", step: "0.1", value: courierValues.weight, onChange: updateCourier, placeholder: "Weight in kg", className: inputClass }) }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Field, { id: "shipmentValue", label: "Shipment Value", required: true, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("input", { id: "shipmentValue", name: "shipmentValue", type: "number", min: "0", value: courierValues.shipmentValue, onChange: updateCourier, placeholder: "Enter shipment value", className: inputClass }) }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "md:col-span-2", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Field, { id: "serviceType", label: "Service Type", required: true, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("select", { id: "serviceType", name: "serviceType", value: courierValues.serviceType, onChange: updateCourier, className: inputClass, children: [ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("option", { value: "", children: "Select service type" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("option", { value: "domestic-courier", children: "Domestic Courier" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("option", { value: "international-courier", children: "International Courier" }) ] }) }) }) ] }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("button", { type: "submit", className: "mt-7 inline-flex w-full items-center justify-center gap-2 rounded-md bg-gold px-6 py-3.5 text-sm font-semibold text-navy-deep transition-colors hover:bg-gold-soft sm:w-auto", children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Calculator, { className: "h-4 w-4" }), "Calculate Quote"] }) ] }), showCourierResult ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(QuoteResult, { type: "courier" }) : null] }) : null, activeTab === "ptl" ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("form", { onSubmit: handlePtlSubmit, className: "mt-8", children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center gap-3", children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "flex h-10 w-10 items-center justify-center rounded-md bg-navy text-gold", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Calculator, { className: "h-5 w-5" }) }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("h3", { className: "text-xl font-bold text-navy", children: "PTL Calculator" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "mt-1 text-sm text-muted-foreground", children: "Calculate an estimated Part Truck Load cost." })] })] }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "mt-7 grid gap-5 md:grid-cols-2", children: [ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Field, { id: "pickupCity", label: "Pickup City", required: true, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("input", { id: "pickupCity", name: "pickupCity", type: "text", value: ptlValues.pickupCity, onChange: updatePtl, placeholder: "Enter pickup city", className: inputClass }) }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Field, { id: "deliveryCity", label: "Delivery City", required: true, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("input", { id: "deliveryCity", name: "deliveryCity", type: "text", value: ptlValues.deliveryCity, onChange: updatePtl, placeholder: "Enter delivery city", className: inputClass }) }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Field, { id: "ptlWeight", label: "Weight", required: true, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("input", { id: "ptlWeight", name: "weight", type: "number", min: "0", step: "0.1", value: ptlValues.weight, onChange: updatePtl, placeholder: "Weight in kg", className: inputClass }) }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Field, { id: "packages", label: "Number of Packages", required: true, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("input", { id: "packages", name: "packages", type: "number", min: "1", value: ptlValues.packages, onChange: updatePtl, placeholder: "Enter number of packages", className: inputClass }) }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "md:col-span-2", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Field, { id: "dimensions", label: "Dimensions", required: true, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("input", { id: "dimensions", name: "dimensions", type: "text", value: ptlValues.dimensions, onChange: updatePtl, placeholder: "Example: 50 × 40 × 30 cm", className: inputClass }) }) }) ] }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("button", { type: "submit", className: "mt-7 inline-flex w-full items-center justify-center gap-2 rounded-md bg-gold px-6 py-3.5 text-sm font-semibold text-navy-deep transition-colors hover:bg-gold-soft sm:w-auto", children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Calculator, { className: "h-4 w-4" }), "Calculate Quote"] }) ] }), showPtlResult ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(QuoteResult, { type: "ptl" }) : null] }) : null ] })] }) }); } function QuotePage() { return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(PageHero, { title: "Request a Quote", subtitle: "Share your shipment requirement and our team will respond with a suitable logistics plan and quotation.", image: hero1_default, breadcrumb: "Request Quote" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("section", { className: "section-pad bg-surface", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "mx-auto grid max-w-7xl gap-10 px-6 lg:grid-cols-[minmax(0,2fr)_minmax(0,1fr)]", children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(QuoteForm, {}), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("aside", { className: "rounded-lg border border-border bg-background p-7 shadow-sm", children: [ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h2", { className: "text-lg font-bold text-navy", children: "Prefer to speak directly?" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "gold-rule mt-3", "aria-hidden": "true" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "mt-4 text-sm leading-relaxed text-muted-foreground", children: "Our team can help you choose the right service for your route, cargo type and timelines." }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("dl", { className: "mt-6 space-y-4 text-sm", children: [ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("dt", { className: "font-semibold text-navy", children: "Phone" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("dd", { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("a", { href: company.phoneHref, className: "text-muted-foreground hover:text-gold", children: company.phone }) })] }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("dt", { className: "font-semibold text-navy", children: "Email" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("dd", { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("a", { href: `mailto:${company.email}`, className: "break-all text-muted-foreground hover:text-gold", children: company.email }) })] }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("dt", { className: "font-semibold text-navy", children: "Office" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("dd", { className: "text-muted-foreground", children: company.addressLines.map((line) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "block", children: line }, line)) })] }) ] }) ] })] }) })] }); } //#endregion export { QuotePage as component };