PageSourceSearch

https://www.smithyacht.com/_next/static/chunks/de22a0bc965a77ad.js?dpl=dpl_7LGeKGmHpgXS6uk6YNYBmArcRW8k

js smithyacht.com collected 2026-09-26 08:00:01 UTC 45,112 bytes, 9 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,95899,e=>{"use strict";var t=e.i(96534),s=e.i(31903),i=e.i(60960),a=e.i(3975);e.i(17027);var r=e.i(59203),n=e.i(87860);e.i(83861);var l=e.i(66422);e.i(16233);var c=e.i(51156),o=e.i(33885),h=e.i(62396);let d=({size:e=18})=>(0,t.jsxs)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M5 12h14"}),(0,t.jsx)("path",{d:"m12 5 7 7-7 7"})]}),m=({size:e=14})=>(0,t.jsxs)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z"}),(0,t.jsx)("circle",{cx:"12",cy:"10",r:"3"})]}),g=({size:e=12})=>(0,t.jsxs)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M21.3 15.3a2.4 2.4 0 0 1 0 3.4l-2.6 2.6a2.4 2.4 0 0 1-3.4 0L2.7 8.7a2.41 2.41 0 0 1 0-3.4l2.6-2.6a2.41 2.41 0 0 1 3.4 0Z"}),(0,t.jsx)("path",{d:"m14.5 12.5 2-2"}),(0,t.jsx)("path",{d:"m11.5 9.5 2-2"}),(0,t.jsx)("path",{d:"m8.5 6.5 2-2"}),(0,t.jsx)("path",{d:"m17.5 15.5 2-2"})]}),u=({size:e=12})=>(0,t.jsxs)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M8 2v4"}),(0,t.jsx)("path",{d:"M16 2v4"}),(0,t.jsx)("rect",{width:"18",height:"18",x:"3",y:"4",rx:"2"}),(0,t.jsx)("path",{d:"M3 10h18"})]}),_=({size:e=12})=>(0,t.jsxs)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M12 22V8"}),(0,t.jsx)("path",{d:"M5 12H2a10 10 0 0 0 20 0h-3"}),(0,t.jsx)("circle",{cx:"12",cy:"5",r:"3"})]}),x=({size:e=12})=>(0,t.jsxs)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("polyline",{points:"22 17 13.5 8.5 8.5 13.5 2 7"}),(0,t.jsx)("polyline",{points:"16 17 22 17 22 11"})]}),p=({size:e=20,filled:s=!1})=>(0,t.jsx)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:s?"currentColor":"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,t.jsx)("path",{d:"M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z"})});function y({boat:e,href:y,animationDelay:j=0,priority:f=!1,isFavorited:v=!1,onFavoriteChange:b,source:N="internal",showFavoriteButton:k=!0}){let{user:w}=(0,r.useAuth)(),{openAuthModal:C}=(0,o.useAuthModal)(),[S,L]=(0,s.useState)(v);(0,s.useEffect)(()=>{L(v)},[v]);let M=(e,t)=>e?`${"CAD"===t?"C$":"$"}${e.toLocaleString()}`:"Price on Request",$=e.last_price_change&&e.last_price_change.old_price>e.last_price_change.new_price,E=$?M(e.last_price_change.old_price,e.last_price_change.currency):null,B=[e.year,e.mfr,e.model].filter(Boolean).join(" "),A=(0,h.getImageUrl)((0,c.getBoatsGroupImageUrl)(e.primary_image,"md")),I=[e.city,e.province||e.country].filter(Boolean).join(", "),T=async t=>{if(t.preventDefault(),t.stopPropagation(),!w)return void C(async()=>{let t=String(e.id);L(!0),b?.(t,!0);try{let{isFavorite:e,error:s}=await (0,n.toggleFavorite)(t,l.OrganizationSlugs.SMITH_YACHT_SALES,N);s?(L(S),b?.(t,S),console.error("Error favoriting boat:",s)):(L(e),b?.(t,e))}catch(e){L(S),b?.(t,S),console.error("Error favoriting boat:",e)}});let s=String(e.id),i=!S;L(i),b?.(s,i);try{let{isFavorite:e,error:t}=await (0,n.toggleFavorite)(s,l.OrganizationSlugs.SMITH_YACHT_SALES,N);if(t){L(S),b?.(s,S),console.error("Error toggling favorite:",t);return}L(e),b?.(s,e)}catch(e){L(S),b?.(s,S),console.error("Error toggling favorite:",e)}};return(0,t.jsx)("article",{className:"smith-yachts-boat-card",style:{animationDelay:`${j}ms`},"data-testid":"boat-card","data-boat-id":e.id,"data-boat-name":e.boat_name||"",children:(0,t.jsxs)(a.default,{href:y,className:"smith-yachts-boat-card__link","data-testid":"boat-card-link",children:[(0,t.jsxs)("div",{className:"smith-yachts-boat-card__image-container",children:[A?(0,t.jsx)(i.default,{src:A,alt:B||"Yacht for sale",fill:!0,sizes:"(max-width: 640px) 100v
1w, (max-width: 1024px) 50vw, 33vw",className:"smith-yachts-boat-card__image",priority:f,unoptimized:(0,c.isUnoptimized)(A)}):(0,t.jsxs)("div",{className:"smith-yachts-boat-card__no-image",children:[(0,t.jsx)(_,{size:32}),(0,t.jsx)("span",{children:"No Image"})]}),(0,t.jsx)("div",{className:"smith-yachts-boat-card__image-overlay"}),"sold"===e.status?(0,t.jsx)("span",{className:"smith-yachts-boat-card__badge smith-yachts-boat-card__badge--sold",children:"Sold"}):$?(0,t.jsxs)("span",{className:"smith-yachts-boat-card__badge smith-yachts-boat-card__badge--reduced",children:[(0,t.jsx)(x,{}),"Price Reduced"]}):e.condition&&"new"===e.condition.toLowerCase()&&(0,t.jsx)("span",{className:"smith-yachts-boat-card__badge smith-yachts-boat-card__badge--new",children:"New"}),"pending"===e.status&&(0,t.jsx)("span",{className:"smith-yachts-boat-card__badge smith-yachts-boat-card__badge--pending",children:"Under Contract"}),k&&(0,t.jsx)("button",{className:`smith-yachts-boat-card__favorite-button ${S?"smith-yachts-boat-card__favorite-button--active":""}`,onClick:T,"aria-label":S?"Remove from favorites":"Add to favorites","data-testid":"boat-card-favorite-button","data-is-favorited":S,children:(0,t.jsx)(p,{size:20,filled:S})}),(0,t.jsxs)("div",{className:"smith-yachts-boat-card__hover-action",children:[(0,t.jsx)("span",{className:"smith-yachts-boat-card__hover-text",children:"View Details"}),(0,t.jsx)(d,{size:18})]})]}),(0,t.jsxs)("div",{className:"smith-yachts-boat-card__content",children:[(0,t.jsxs)("div",{className:"smith-yachts-boat-card__meta",children:[e.year&&(0,t.jsxs)("span",{className:"smith-yachts-boat-card__meta-item",children:[(0,t.jsx)(u,{}),e.year]}),e.length_ft&&(0,t.jsxs)("span",{className:"smith-yachts-boat-card__meta-item","data-testid":"boat-card-length",children:[(0,t.jsx)(g,{}),e.length_ft,"'"]}),e.boat_type&&(0,t.jsxs)("span",{className:"smith-yachts-boat-card__meta-item","data-testid":"boat-card-category",children:[(0,t.jsx)(_,{}),e.boat_type]})]}),(0,t.jsx)("h3",{className:"smith-yachts-boat-card__title","data-testid":"boat-card-title",children:B||"Yacht"}),e.boat_name&&(0,t.jsx)("span",{className:"smith-yachts-boat-card__boat-name","data-testid":"boat-card-boat-name",children:e.boat_name}),I&&(0,t.jsxs)("p",{className:"smith-yachts-boat-card__location",children:[(0,t.jsx)(m,{}),I]}),(0,t.jsxs)("div",{className:"smith-yachts-boat-card__footer",children:[(0,t.jsxs)("div",{className:"smith-yachts-boat-card__price-container",children:[$&&E&&(0,t.jsx)("span",{className:"smith-yachts-boat-card__old-price",children:E}),(0,t.jsx)("span",{className:`smith-yachts-boat-card__price ${$?"smith-yachts-boat-card__price--reduced":""}`,"data-testid":"boat-card-price",children:M(e.price_usd,"USD")})]}),(0,t.jsxs)("span",{className:"smith-yachts-boat-card__cta",children:["Details",(0,t.jsx)(d,{size:14})]})]})]}),(0,t.jsx)("div",{className:"smith-yachts-boat-card__corner"})]})})}function j(){return(0,t.jsxs)("div",{className:"smith-yachts-boat-card smith-yachts-boat-card--skeleton",children:[(0,t.jsx)("div",{className:"smith-yachts-boat-card__image-container smith-yachts-boat-card__skeleton-image"}),(0,t.jsxs)("div",{className:"smith-yachts-boat-card__content",children:[(0,t.jsx)("div",{className:"smith-yachts-boat-card__skeleton-meta"}),(0,t.jsx)("div",{className:"smith-yachts-boat-card__skeleton-title"}),(0,t.jsx)("div",{className:"smith-yachts-boat-card__skeleton-location"}),(0,t.jsxs)("div",{className:"smith-yachts-boat-card__skeleton-footer",children:[(0,t.jsx)("div",{className:"smith-yachts-boat-card__skeleton-price"}),(0,t.jsx)("div",{className:"smith-yachts-boat-card__skeleton-cta"})]})]})]})}e.s(["BoatCardSkeleton",()=>j,"default",()=>y])},26982,e=>{"use strict";function t(e){return e.toString().toLowerCase().trim().replace(/['"`]/g,"").replace(/[^\w\s-]/g," ").replace(/\s+/g,"-").replace(/-+/g,"-").replace(/^-+|-+$/g,"")}function s(e,s,i){let a,r,n,l,c=(a=[],e.year&&a.push(e.year.toString()),e.mfr&&a.push(t(e.mfr)),e.model&&a.push(t(e.model)),(r=e.length_ft||e.display_length_ft)&&a.push(Math.round(r).toString()),n=0===a.length?"boat":a.join("-"),l=function(e,t){if("database"===t){if(!0===e.pool_shared){if(null==e.public_id)throw Error(`Database boat missing public_id. Boat id: ${e.id}`);return e.public_id.toString()}if(e.boatsgroup_api_boat_id)return e.boatsgroup_api_boat_id;if(e.yachtbroker_api_boat_id)return e.yachtbroker_api_boat_id;if(e.BoatId)return e.BoatId.toString();if(null==e.public_id)throw Error(`Database boat missing public_id. Boat id: ${e.id}`);return e.public_id.toString()}if("api"===t){if(null==e.BoatId)throw Error("Boating.ca API boat missing BoatId");return e.BoatId.toString()}if(null==e.id)throw Error(`API boat missing id. Data source: ${t}`);return e.id.toString()}(e,s),`${n}-${l}`),o=i.replace(/\/$/,"");return`${o}/${c}`}e.s(["buildBoatDetailUrl",()=>s])},51156,e=>{"use strict";e.i(83861);var t=e.i(79116),s=e.i(66422);let i=["boatsgroup.com","cdn.yachtbroker.org","media.iyba.pro"],a=RegExp(`/storage/v1/object/public/${t.BOAT_IMAGE_BUCKET}/([^/]+)/boats/`);function r(e){let t=e.match(a);return!!t&&(0,s.hasVariantMigratedImages)(t[1])}function n(e){return!!e&&(!!(r(e)||e.includes("/vessel-images/"))||i.some(t=>e.includes(t)))}
1let l=t.BOAT_IMAGE_VARIANT_SIZES;function c(e,s="hd"){if(!e)return"";if(r(e)){let i=e.lastIndexOf("/"),a=e.slice(0,i),r=(0,t.boatImageBaseName)(e.slice(i+1));return`${a}/${r}_${s}.webp`}if(!e.includes("images.boatsgroup.com"))return e;let i=l[s],a=e.split("?")[0].replace("/images/","/resize/");return`${a}?w=${i}&h=${i}&format=webp`}e.s(["getBoatsGroupImageUrl",()=>c,"isUnoptimized",()=>n])},99688,e=>{"use strict";var t=e.i(31903);let s=(...e)=>e.filter((e,t,s)=>!!e&&""!==e.trim()&&s.indexOf(e)===t).join(" ").trim();var i={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let a=(0,t.forwardRef)(({color:e="currentColor",size:a=24,strokeWidth:r=2,absoluteStrokeWidth:n,className:l="",children:c,iconNode:o,...h},d)=>(0,t.createElement)("svg",{ref:d,...i,width:a,height:a,stroke:e,strokeWidth:n?24*Number(r)/Number(a):r,className:s("lucide",l),...h},[...o.map(([e,s])=>(0,t.createElement)(e,s)),...Array.isArray(c)?c:[c]])),r=(e,i)=>{let r=(0,t.forwardRef)(({className:r,...n},l)=>(0,t.createElement)(a,{ref:l,iconNode:i,className:s(`lucide-${e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,r),...n}));return r.displayName=`${e}`,r};e.s(["default",()=>r],99688)},55069,e=>{"use strict";let t=(0,e.i(99688).default)("TriangleAlert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);e.s(["AlertTriangle",()=>t],55069)},6088,7234,66393,e=>{"use strict";var t=e.i(99688);let s=(0,t.default)("Image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);e.s(["Image",()=>s],6088);var i=e.i(96534);let a=(0,t.default)("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);e.s(["LoadingSpinner",0,({size:e=24,className:t=""})=>(0,i.jsx)(a,{size:e,className:`loading-spinner ${t}`})],7234);var r=e.i(31903);let n=(0,r.createContext)(void 0);function l(){return(0,r.useContext)(n)}function c(e,t){if(!e||!t||/^(https?:|data:|blob:)/i.test(e)||e.startsWith("//"))return e;let s=t.replace(/\/+$/,""),i=e.startsWith("/")?e:`/${e}`;return`${s}${i}`}e.s(["resolveAssetUrl",()=>c,"useAssetBase",()=>l],66393)},23341,e=>{"use strict";let t=["mp4","webm","ogg","ogv","m4v","mov"],s=["mp4","webm","m4v"],i=["mp4","webm"],a=["mkv","avi","wmv","flv","mpg","mpeg","m2ts","mts","ts","3gp","vob","asf","divx"],r=e=>{if(!e)return"";let t=(e.split(/[?#]/)[0]??"").split("/").pop()??"";return t.includes(".")?t.split(".").pop()?.toLowerCase()??"":""};e.s(["getMediaExtension",0,r,"isKnownVideoFile",0,e=>{let s=r(e);return t.includes(s)||a.includes(s)},"isRecommendedVideo",0,e=>i.includes(r(e)),"isUploadableVideo",0,e=>s.includes(r(e)),"isVideoUrl",0,e=>t.includes(r(e))])},72082,e=>{"use strict";var t=e.i(96534),s=e.i(31903),i=e.i(6088),a=e.i(55069),r=e.i(60960),n=e.i(7234),l=e.i(66393),c=e.i(23341);e.s(["EditableMedia",0,({src:e,alt:o="Media",className:h="",isEditable:d=!1,onUpload:m,onChange:g,renderAs:u="element",accept:_="image/*,video/*",testId:x,sizes:p="100vw",priority:y=!1,quality:j,unoptimized:f=!1,poster:v})=>{let[b,N]=(0,s.useState)(!1),[k,w]=(0,s.useState)(!1),[C,S]=(0,s.useState)(null),L=(0,s.useRef)(g);L.current=g;let M=(0,l.useAssetBase)(),$=(0,l.resolveAssetUrl)(e,M),E=v?(0,l.resolveAssetUrl)(v,M):void 0,B=(0,c.getMediaExtension)($),A=(0,c.isVideoUrl)($),I=async()=>{if(!m)return;let e=document.createElement("input");e.type="file",e.accept=_,e.onchange=async e=>{let t=e.target.files?.[0];if(t){let e=(0,c.getMediaExtension)(t.name);if(t.type.startsWith("video/")||(0,c.isKnownVideoFile)(t.name)){if(!(0,c.isUploadableVideo)(t.name))return void alert(`This is ${e?`a .${e.toUpperCase()} file`:"a file with no extension"}, which doesn't play reliably in every web browser.
2
3Please convert it to MP4 and upload again. Free tools like HandBrake (handbrake.fr) or CloudConvert (cloudconvert.com) will do this.`);(0,c.isRecommendedVideo)(t.name)||console.warn("[EditableMedia] Uploading a non-standard container:",e);let s=t.size/1048576;if(s>125)return void alert(`This video is ${Math.round(s)}MB, and the maximum is 125MB.
4
5Try a shorter clip, or compress it before uploading.`);if(s>20&&!confirm(`This video is ${Math.round(s)}MB. Hero videos work best under 20MB.
6
7Larger files are slow to load for visitors on phones or slower connections.
8
9Upload anyway?`))return}try{S(null),N(!0),console.log("[EditableMedia] Starting upload…",{fileName:t.name,fileSize:t.size,fileType:t.type,testId:x});let e=await m(t);console.log("[EditableMedia] Upload returned URL:",e),N(!1),w(!0),console.log("[EditableMedia] Calling onChange with URL…"),L.current?.(e),console.log("[EditableMedia] onChange c
9alled. isVideo after src change:",(0,c.isVideoUrl)(e)?"yes":"no")}catch(s){console.error("[EditableMedia] Upload failed:",s);let e=s instanceof Error?s.message:"",t=/size|too large|413|125MB/i.test(e)?"That file is too large to upload. The maximum is 125MB.":"The upload didn't finish. Check your connection and try again.";N(!1),w(!1),S(t)}}},e.click()},T=()=>{console.log("[EditableMedia] Media loaded (onLoad/onLoadedData fired). Clearing loading state.",{testId:x}),w(!1),S(null)},F=e=>{console.error("[EditableMedia] Media failed to load:",{src:$,testId:x}),w(!1),S(t=>t===e?t:e)},U=()=>F("This image couldn't be loaded. Please try uploading it again."),z=b||k;return(0,t.jsxs)("div",{className:`editable-media ${"background"===u?"editable-media--background":""}`,children:[A?(0,t.jsxs)(t.Fragment,{children:[y&&E?(0,t.jsx)("link",{rel:"preload",as:"image",href:E,fetchPriority:"high"}):null,(0,t.jsx)("video",{src:$,className:h,autoPlay:!0,loop:!0,muted:!0,playsInline:!0,preload:"metadata",poster:E,onLoadedData:T,onError:e=>{let t=e.currentTarget.error?.code;F(4===t||3===t?`This video couldn't be played — the browser doesn't support ${B?`.${B.toUpperCase()} files`:"this file type"}. Convert it to MP4 and upload it again.`:"This video couldn't be loaded. Check your connection and try again.")},"data-testid":x?`${x}-video`:void 0})]}):"background"===u?(0,t.jsx)("div",{className:h,children:(0,t.jsx)(r.default,{src:$,alt:o,fill:!0,sizes:p,priority:y,quality:j,unoptimized:f,onLoad:T,onError:U,"data-testid":x?`${x}-image`:void 0,style:{objectFit:"cover",objectPosition:"center"}})}):(0,t.jsx)(r.default,{src:$,alt:o,width:0,height:0,className:h,sizes:p,priority:y,quality:j,unoptimized:f,onLoad:T,onError:U,"data-testid":x?`${x}-image`:void 0,style:{width:"100%",height:"auto"}}),d&&m&&(0,t.jsxs)("div",{className:"editable-media__overlay",onClick:e=>{e.preventDefault(),e.stopPropagation()},children:[(0,t.jsxs)("button",{onClick:e=>{e.preventDefault(),e.stopPropagation(),I()},className:"editable-media__button",type:"button",disabled:z,"data-testid":`${x}-button`,children:[z?(0,t.jsx)(n.LoadingSpinner,{size:20}):(0,t.jsx)(i.Image,{size:20}),(0,t.jsx)("span",{children:z?"Loading...":"Change Media"})]}),C?(0,t.jsxs)("p",{className:"editable-media__error",role:"alert","data-testid":x?`${x}-error`:void 0,children:[(0,t.jsx)(a.AlertTriangle,{size:16,"aria-hidden":"true"}),(0,t.jsx)("span",{children:C})]}):null]})]})}])},62396,e=>{"use strict";function t(e){return e?e.startsWith("http://")||e.startsWith("https://")?e:`https://cdn.boatingca.com/${e}`:null}e.s(["getImageUrl",()=>t])},92386,61567,3440,e=>{"use strict";var t=e.i(99688);let s=(0,t.default)("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);e.s(["ChevronLeft",()=>s],92386);let i=(0,t.default)("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);function a(e){return e?{"--gallery-primary":e.primaryColor,"--gallery-accent":e.accentColor,"--gallery-radius":e.borderRadius||"8px","--gallery-overlay-bg":e.overlayBg||"rgba(15, 34, 53, 0.96)"}:{}}e.s(["ChevronRight",()=>i],61567),e.s(["themeToStyle",()=>a],3440)},9552,9632,e=>{"use strict";var t=e.i(31903);let s=()=>"undefined"!=typeof crypto&&"randomUUID"in crypto?crypto.randomUUID():Math.random().toString(36).slice(2);function i(e,t=s){return e.map(e=>e._key?e:{...e,_key:t(e)})}function a(e,t,s){return e.map((e,i)=>i===t?{...s,_key:e._key}:e)}function r(e,t,s){let i=e.findIndex(e=>e._key===t),a=e.findIndex(e=>e._key===s);return -1===i||-1===a||i===a?e:function(e,t,s){let i=t+s;if(t<0||t>=e.length||i<0||i>=e.length)return e;let a=[...e],[r]=a.splice(t,1);return a.splice(i,0,r),a}(e,i,a-i)}function n(e,t,s=0){return e.length<=s?e:e.filter((e,s)=>s!==t)}function l(e,t,i,a=s){return void 0!==i&&e.length>=i?e:[...e,{...t,_key:a()}]}function c(e,r){let n=(0,t.useRef)(new WeakMap),l=(0,t.useRef)(e);l.current=e;let c=(0,t.useRef)(r);c.current=r;let o=e=>{if(e._key)return e._key;let t=n.current.get(e);return t||(t=s(),n.current.set(e,t)),t},h=()=>i(l.current,o),d=e=>{e!==l.current&&c.current?.(e)},m=(e,t,s)=>{let i=e.findIndex(e=>e._key===t);return -1===i?s:i};return{keyFor:o,keyed:h,commit:d,indexOf:m,update:(e,t,s)=>{let i=h();d(a(i,m(i,e,t),s))}}}e.s(["ensureListKeys",()=>i,"generateKey",0,s,"listAdd",()=>l,"listRemove",()=>n,"listReorder",()=>r,"listUpdate",()=>a],9632),e.s(["useListMutations",()=>c],9552)},16713,e=>{"use strict";var t=e.i(96534),s=e.i(31903),i=e.i(3536),a=e.i(72082);function r({isEditable:e=!1,content:r={},onUpdate:n,onUploadImage:l}
9){let[c,o]=(0,s.useState)(!1),h=(0,s.useRef)(null),d=r.title||"Featured",m=r.titleAccent||"Yachts For Sale",g=r.subtitle||"Discover exceptional vessels from our curated inventory. Each yacht has been thoroughly inspected by our certified brokers for quality and seaworthiness.",u=r.scrollText||"Browse Vessels",_=r.backgroundImage||"https://scdn.malibuboats.dev/cdn.pursuitboats.com/Video/DC326/857916616-pw.webp";(0,s.useEffect)(()=>{let e=setTimeout(()=>o(!0),100);return()=>clearTimeout(e)},[]);let x=(e,t)=>{n&&n({...r,[e]:t})},p=async e=>{x("backgroundImage",e)};return(0,t.jsxs)("section",{ref:h,className:"smith-yachts-listing-hero",children:[(0,t.jsxs)("div",{className:"smith-yachts-listing-hero__background",children:[(0,t.jsx)(a.EditableMedia,{src:_,className:"smith-yachts-listing-hero__background-image",isEditable:e,onUpload:l,onChange:p,renderAs:"background",accept:"image/*",testId:"smith-listing-hero-image"}),(0,t.jsx)("div",{className:"smith-yachts-listing-hero__overlay"}),(0,t.jsx)("div",{className:"smith-yachts-listing-hero__vignette"}),(0,t.jsx)("div",{className:"smith-yachts-listing-hero__accent smith-yachts-listing-hero__accent--left"}),(0,t.jsx)("div",{className:"smith-yachts-listing-hero__accent smith-yachts-listing-hero__accent--right"})]}),(0,t.jsxs)("div",{className:"smith-yachts-listing-hero__decorative",children:[(0,t.jsx)("div",{className:"smith-yachts-listing-hero__corner smith-yachts-listing-hero__corner--top-left"}),(0,t.jsx)("div",{className:"smith-yachts-listing-hero__corner smith-yachts-listing-hero__corner--top-right"}),(0,t.jsx)("div",{className:"smith-yachts-listing-hero__corner smith-yachts-listing-hero__corner--bottom-left"}),(0,t.jsx)("div",{className:"smith-yachts-listing-hero__corner smith-yachts-listing-hero__corner--bottom-right"})]}),(0,t.jsx)("div",{className:"smith-yachts-listing-hero__content",children:(0,t.jsxs)("div",{className:`smith-yachts-listing-hero__inner ${c?"smith-yachts-listing-hero__inner--visible":""}`,children:[(0,t.jsx)("div",{className:"smith-yachts-listing-hero__line-wrapper",children:(0,t.jsx)("span",{className:"smith-yachts-listing-hero__line"})}),(0,t.jsxs)("h1",{className:"smith-yachts-listing-hero__title",children:[(0,t.jsx)(i.EditableText,{value:d,onChange:e=>x("title",e),isEditable:e,as:"span",className:"smith-yachts-listing-hero__title-line","data-testid":"smith-listing-hero-title"}),(0,t.jsx)("span",{className:"smith-yachts-listing-hero__title-line smith-yachts-listing-hero__title-accent",children:(0,t.jsx)(i.EditableText,{value:m,onChange:e=>x("titleAccent",e),isEditable:e,as:"span","data-testid":"smith-listing-hero-title-accent"})})]}),(0,t.jsx)(i.EditableText,{value:g,onChange:e=>x("subtitle",e),isEditable:e,as:"p",className:"smith-yachts-listing-hero__subtitle","data-testid":"smith-listing-hero-subtitle"})]})}),(0,t.jsxs)("div",{className:"smith-yachts-listing-hero__scroll",children:[(0,t.jsx)("svg",{className:"smith-yachts-listing-hero__scroll-icon",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,t.jsx)("path",{d:"M6 9l6 6 6-6"})}),(0,t.jsx)(i.EditableText,{value:u,onChange:e=>x("scrollText",e),isEditable:e,as:"span",className:"smith-yachts-listing-hero__scroll-text","data-testid":"smith-listing-hero-scroll-text"})]})]})}e.s(["default",()=>r])},58951,e=>{"use strict";var t=e.i(96534),s=e.i(31903),i=e.i(89158),a=e.i(26982);e.i(17027);var r=e.i(59203),n=e.i(87860);e.i(83861);var l=e.i(66422);let c=()=>(0,t.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("circle",{cx:"11",cy:"11",r:"8"}),(0,t.jsx)("path",{d:"m21 21-4.3-4.3"})]}),o=({size:e=20})=>(0,t.jsxs)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M18 6 6 18"}),(0,t.jsx)("path",{d:"m6 6 12 12"})]}),h=()=>(0,t.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("line",{x1:"21",x2:"14",y1:"4",y2:"4"}),(0,t.jsx)("line",{x1:"10",x2:"3",y1:"4",y2:"4"}),(0,t.jsx)("line",{x1:"21",x2:"12",y1:"12",y2:"12"}),(0,t.jsx)("line",{x1:"8",x2:"3",y1:"12",y2:"12"}),(0,t.jsx)("line",{x1:"21",x2:"16",y1:"20",y2:"20"}),(0,t.jsx)("line",{x1:"12",x2:"3",y1:"20",y2:"20"}),(0,t.jsx)("line",{x1:"14",x2:"14",y1:"2",y2:"6"}),(0,t.jsx)("line",{x1:"8",x2:"8",y1:"10",y2:"14"}),(0,t.jsx)("line",{x1:"16",x2:"16",y1:"18",y2:"22"})]}),d=()=>(0,t.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"}),(0,t.jsx)("path",{d:"M3 3v5h5"})]});function m({onFilterChange:e,loading:a=!1,isOpen:r=!1,onClose:n,initialFilters:l={},initialSearchParams:m=null,topSlot:g}
9){let u=(0,i.usePathname)(),[_,x]=(0,s.useState)(l),[p,y]=(0,s.useState)(m),[j,f]=(0,s.useState)(l.search||"");(0,s.useEffect)(()=>{m||fetch("/api/boating/search-parameters").then(e=>e.json()).then(e=>{e.success&&y(e.data)}).catch(console.error)},[m]);let v=(0,s.useCallback)(e=>{let t=new URLSearchParams;Object.entries(e).forEach(([e,s])=>{null!=s&&""!==s&&t.set(e,String(s))});let s=t.toString(),i=s?`${u}?${s}`:u;window.history.replaceState(null,"",i)},[u]),b=(t,s)=>{let i={..._};""===s||null==s?delete i[t]:i[t]=s,delete i.page,x(i),v(i),e(i)},N=Object.keys(_).length>0,k=e=>e>=1e6?`$${(e/1e6).toFixed(1)}M`:`$${(e/1e3).toFixed(0)}K`,w=Object.keys(_).filter(e=>"sort"!==e&&"page"!==e&&"per_page"!==e).length;return(0,t.jsxs)(t.Fragment,{children:[r&&(0,t.jsx)("div",{className:"smith-yachts-filters__overlay",onClick:n}),(0,t.jsxs)("aside",{className:`smith-yachts-filters ${r?"smith-yachts-filters--open":""}`,children:[(0,t.jsxs)("div",{className:"smith-yachts-filters__mobile-header",children:[(0,t.jsxs)("div",{className:"smith-yachts-filters__mobile-title",children:[(0,t.jsx)(h,{}),(0,t.jsx)("span",{children:"Refine Search"}),w>0&&(0,t.jsx)("span",{className:"smith-yachts-filters__badge",children:w})]}),(0,t.jsx)("button",{className:"smith-yachts-filters__close",onClick:n,"aria-label":"Close filters",children:(0,t.jsx)(o,{})})]}),(0,t.jsxs)("div",{className:"smith-yachts-filters__content",children:[g,(0,t.jsxs)("form",{onSubmit:e=>{e.preventDefault(),b("search",j)},className:"smith-yachts-filters__search",children:[(0,t.jsxs)("div",{className:"smith-yachts-filters__search-wrapper",children:[(0,t.jsx)("span",{className:"smith-yachts-filters__search-icon",children:(0,t.jsx)(c,{})}),(0,t.jsx)("input",{type:"text",placeholder:"Search by make, model, year...",value:j,onChange:e=>f(e.target.value),className:"smith-yachts-filters__search-input","data-testid":"boats-filters-search-input"}),j&&(0,t.jsx)("button",{type:"button",className:"smith-yachts-filters__search-clear",onClick:()=>{f(""),b("search","")},"aria-label":"Clear search",children:(0,t.jsx)(o,{size:14})})]}),(0,t.jsx)("button",{type:"submit",className:"smith-yachts-filters__search-btn",children:"Search"})]}),N&&(0,t.jsxs)("button",{onClick:()=>{x({}),f(""),v({}),e({})},className:"smith-yachts-filters__clear","data-testid":"boats-filters-clear-all",children:[(0,t.jsx)(d,{}),(0,t.jsx)("span",{children:"Clear all filters"})]}),(0,t.jsxs)("div",{className:"smith-yachts-filters__section",children:[(0,t.jsx)("div",{className:"smith-yachts-filters__section-title",children:"Manufacturer"}),(0,t.jsx)("div",{className:"smith-yachts-filters__section-content",children:(0,t.jsxs)("select",{value:_.mfr||"",onChange:e=>b("mfr",e.target.value),className:"smith-yachts-filters__select","data-testid":"boats-filters-manufacturer-select",children:[(0,t.jsx)("option",{value:"",children:"All Manufacturers"}),p?.manufacturers?.map(e=>(0,t.jsx)("option",{value:e,"data-testid":"boats-filters-manufacturer-option","data-option-value":e,children:e},e))]})})]}),(0,t.jsxs)("div",{className:"smith-yachts-filters__section",children:[(0,t.jsx)("div",{className:"smith-yachts-filters__section-title",children:"Vessel Type"}),(0,t.jsx)("div",{className:"smith-yachts-filters__section-content",children:(0,t.jsxs)("div",{className:"smith-yachts-filters__buttons smith-yachts-filters__buttons--1",children:[(0,t.jsx)("button",{className:`smith-yachts-filters__type-btn ${!_.type?"smith-yachts-filters__type-btn--active":""}`,onClick:()=>b("type",""),children:"All Types"}),p?.boat_types?.map(e=>(0,t.jsx)("button",{className:`smith-yachts-filters__type-btn ${_.type===e?"smith-yachts-filters__type-btn--active":""}`,onClick:()=>b("type",e),children:e},e))]})})]}),p?.categories&&p.categories.length>0&&(0,t.jsxs)("div",{className:"smith-yachts-filters__section",children:[(0,t.jsx)("div",{className:"smith-yachts-filters__section-title",children:"Category"}),(0,t.jsx)("div",{className:"smith-yachts-filters__section-content",children:(0,t.jsxs)("select",{value:_.category||"",onChange:e=>b("category",e.target.value),className:"smith-yachts-filters__select","data-testid":"boats-filters-category-select",children:[(0,t.jsx)("option",{value:"",children:"All Categories"}),p.categories.map(e=>(0,t.jsx)("option",{value:e,"data-testid":"boats-filters-category-option","data-option-value":e,children:e},e))]})})]}),(0,t.jsxs)("div",{className:"smith-yachts-filters__section",children:[(0,t.jsx)("div",{className:"smith-yachts-filters__section-title",children:"Price Range"}),(0,t.jsx)("div",{className:"smith-yachts-filters__section-content",children:(0,t.jsx)("div",{className:"smith-yachts-filters__range",children:(0,t.jsxs)("div",{className:"smith-yachts-filters__range-inputs",children:[(0,t.jsx)("div",{className:"smith-yachts-filters__range-field",children:(0,t.jsx)("input",{type:"number",placeholder:p?.numeric_ranges?.price_usd?k(p.numeric_ranges.price_usd.min):"Min",value:_.price_min||"",onChange:e=>b("price_min",e.target.value?parseInt(e.target.value):""),className:"smith-yachts-filters__range-input","data-testid":"boats-filters-price-min"})}),(0,t.jsx)("span",{className:"smith-yachts-filters__range-separator",children:"—"}),(0,t.jsx)("div",{className:"smith-yachts-filters__range-field",children:(0,t.jsx)("input",{type:"number",placeholder:p?.numeric_ranges?.price_usd?k(p.numeric_ranges.price_usd.max):"Max",value:_.price_max||"",onChange:e=>b("price_max",e.target.value?parseInt(e.target.value):""),className:"smith-yachts-filters__range-input","data-testid":"boats-filters-price-max"})})]})})})]}),(0,t.jsxs)("div",{className:"smith-yachts-filters__section",children:[(0,t.jsx)("div",{className:"smith-yachts-filters__section-title",children:"Length (ft)"}),(0,t.jsx)("div",{className:"smith-yachts-filters__section-content",children:(0,t.jsx)("div",{className:"smith-yachts-filters__range",children:(0,t.jsxs)("div",{className:"smith-yachts-filters__range-inputs",children:[(0,t.jsx)("div",{className:"smith-yachts-filters__range-field",children:(0,t.jsx)("input",{type:"number",placeholder:p?.numeric_ranges?.length_ft?`${p.numeric_ranges.length_ft.min}'`:"Min",value:_.length_min||"",onChange:e=>b("length_min",e.target.value?parseFloat(e.target.value):""),className:"smith-yachts-filters__range-input","data-testid":"boats-filters-length-min"})}),(0,t.jsx)("span",{className:"smith-yachts-filters__range-separator",children:"—"}),(0,t.jsx)("div",{className:"smith-yachts-filters__range-field",children:(0,t.jsx)("input",{type:"number",placeholder:p?.numeric_ranges?.length_ft?`${p.numeric_ranges.length_ft.max}'`:"Max",value:_.length_max||"",onChange:e=>b("length_max",e.target.value?parseFloat(e.target.value):""),className:"smith-yachts-filters__range-input","data-testid":"boats-filters-length-max"})})]})})})]}),(0,t.jsxs)("div",{className:"smith-yachts-filters__section",children:[(0,t.jsx)("div",{className:"smith-yachts-filters__section-title",children:"Year"}),(0,t.jsx)("div",{className:"smith-yachts-filters__section-content",children:(0,t.jsx)("div",{className:"smith-yachts-filters__range",children:(0,t.jsxs)("div",{className:"smith-yachts-filters__range-inputs",children:[(0,t.jsx)("div",{className:"smith-yachts-filters__range-field",children:(0,t.jsx)("input",{type:"number",placeholder:p?.numeric_ranges?.year?String(p.numeric_ranges.year.min):"Min",value:_.year_min||"",onChange:e=>b("year_min",e.target.value?parseInt(e.target.value):""),className:"smith-yachts-filters__range-input","data-testid":"boats-filters-year-min"})}),(0,t.jsx)("span",{className:"smith-yachts-filters__range-separator",children:"—"}),(0,t.jsx)("div",{className:"smith-yachts-filters__range-field",children:(0,t.jsx)("input",{type:"number",placeholder:p?.numeric_ranges?.year?String(p.numeric_ranges.year.max):"Max",value:_.year_max||"",onChange:e=>b("year_max",e.target.value?parseInt(e.target.value):""),className:"smith-yachts-filters__range-input","data-testid":"boats-filters-year-max"})})]})})})]}),(0,t.jsxs)("div",{className:"smith-yachts-filters__section",children:[(0,t.jsx)("div",{className:"smith-yachts-filters__section-title",children:"Condition"}),(0,t.jsx)("div",{className:"smith-yachts-filters__section-content",children:(0,t.jsxs)("div",{className:"smith-yachts-filters__buttons smith-yachts-filters__buttons--2",children:[(0,t.jsx)("button",{className:`smith-yachts-filters__type-btn ${!_.condition?"smith-yachts-filters__type-btn--active":""}`,onClick:()=>b("condition",""),children:"All"}),(0,t.jsx)("button",{className:`smith-yachts-filters__type-btn ${"new"===_.condition?"smith-yachts-filters__type-btn--active":""}`,onClick:()=>b("condition","new"),children:"New"}),(0,t.jsx)("button",{className:`smith-yachts-filters__type-btn ${"used"===_.condition?"smith-yachts-filters__type-btn--active":""}`,onClick:()=>b("condition","used"),children:"Pre-Owned"})]})})]})]}),(0,t.jsx)("div",{className:"smith-yachts-filters__mobile-footer",children:(0,t.jsx)("button",{onClick:n,className:"smith-yachts-filters__apply-btn",children:"View Results"})})]})]})}e.i(40053);var g=e.i(77889),u=e.i(16035);let _=()=>(0,t.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"smith-ask-concierge-sidebar__icon",children:[(0,t.jsx)("path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z"}),(0,t.jsx)("path",{d:"M20 3v4"}),(0,t.jsx)("path",{d:"M22 5h-4"})]});function x(){return(0,u.useConciergeEnabled)()?(0,t.jsxs)("button",{type:"button",className:"smith-ask-concierge-sidebar",onClick:()=>(0,g.openConcierge)(),"data-testid":"ask-concierge-sidebar",children:[(0,t.jsx)(_,{}),(0,t.jsx)("span",{className:"smith-ask-concierge-sidebar__text",children:"Ask our AI Concierge instead"})]}):null}var p=e.i(95899);let y=()=>(0,t.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("line",{x1:"21",x2:"14",y1:"4",y2:"4"}),(0,t.jsx)("line",{x1:"10",x2:"3",y1:"4",y2:"4"}),(0,t.jsx)("line",{x1:"21",x2:"12",y1:"12",y2:"12"}),(0,t.jsx)("line",{x1:"8",x2:"3",y1:"12",y2:"12"}),(0,t.jsx)("line",{x1:"21",x2:"16",y1:"20",y2:"20"}),(0,t.jsx)("line",{x1:"12",x2:"3",y1:"20",y2:"20"}),(0,t.jsx)("line",{x1:"14",x2:"14",y1:"2",y2:"6"}),(0,t.jsx)("line",{x1:"8",x2:"8",y1:"10",y2:"14"}),(0,t.jsx)("line",{x1:"16",x2:"16",y1:"18",y2:"22"})]}),j=({size:e=48})=>(0,t.jsxs)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M2 21c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1 .6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1"}),(0,t.jsx)("path",{d:"M19.38 20A11.6 11.6 0 0 0 21 14l-9-4-9 4c0 2.9.94 5.34 2.81 7.76"}),(0,t.jsx)("path",{d:"M19 13V7a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2v6"}),(0,t.jsx)("path",{d:"M12 10v4"}),(0,t.jsx)("path",{d:"M12 2v3"})]}),f=({size:e=24})=>(0,t.jsxs)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M12 22V8"}),(0,t.jsx)("path",{d:"M5 12H2a10 10 0 0 0 20 0h-3"}),(0,t.jsx)("circle",{cx:"12",cy:"5",r:"3"})]});function v({initialBoats:e=[],initialFilters:c={},initialSearchParams:o=null,totalBoats:h=0,statusFilter:d,showFavoriteButton:g=!0}){let u=(0,i.useSearchParams)(),_=(0,i.usePathname)(),{user:v}
9=(0,r.useAuth)(),[b,N]=(0,s.useState)(c),[k,w]=(0,s.useState)(e),[C,S]=(0,s.useState)(!1),[L,M]=(0,s.useState)(!1),[$,E]=(0,s.useState)(null),[B,A]=(0,s.useState)(1),[I,T]=(0,s.useState)(e.length>=24),[F,U]=(0,s.useState)(h),[z,P]=(0,s.useState)(e.length),[R,O]=(0,s.useState)(!1),[W,D]=(0,s.useState)(new Set),V=(0,s.useRef)(null),H=(0,s.useRef)(!0);(0,s.useEffect)(()=>{v?(0,n.getFavoriteBoatIds)(l.OrganizationSlugs.SMITH_YACHT_SALES).then(e=>{D(e)}):D(new Set)},[v]);let Y=(0,s.useCallback)((e,t)=>{D(s=>{let i=new Set(s);return t?i.add(e):i.delete(e),i})},[]),K=(0,s.useCallback)(async(e,t=!1)=>{try{t?M(!0):(S(!0),w([])),E(null);let s=new URLSearchParams;Object.entries(b).forEach(([e,t])=>{null!=t&&""!==t&&s.append(e,String(t))}),d&&s.set("status",d),s.set("page",String(e)),s.set("per_page",String(24)),s.has("sort")||s.set("sort","sold"===d?"-sold_date":"-price_usd");let i=await fetch(`/api/boating/boats?${s.toString()}`),a=await i.json();if(!a.success)throw Error(a.error||"Failed to fetch boats");let r=a.data;t?w(e=>[...e,...r.data]):(w(r.data),U(r.total),P(r.data.length)),T(r.has_next)}catch(e){E(e instanceof Error?e.message:"Failed to load yachts")}finally{S(!1),M(!1)}},[b,d]);(0,s.useEffect)(()=>{let e={};u.get("search")&&(e.search=u.get("search")),u.get("model")&&(e.model=u.get("model")),u.get("mfr")&&(e.mfr=u.get("mfr")),u.get("type")&&(e.type=u.get("type")),u.get("category")&&(e.category=u.get("category")),u.get("city")&&(e.city=u.get("city")),u.get("province")&&(e.province=u.get("province")),u.get("country")&&(e.country=u.get("country")),u.get("currency")&&(e.currency=u.get("currency")),u.get("sort")&&(e.sort=u.get("sort")),u.get("condition")&&(e.condition=u.get("condition")),u.get("price_min")&&(e.price_min=parseInt(u.get("price_min"),10)),u.get("price_max")&&(e.price_max=parseInt(u.get("price_max"),10)),u.get("length_min")&&(e.length_min=parseFloat(u.get("length_min"))),u.get("length_max")&&(e.length_max=parseFloat(u.get("length_max"))),u.get("year_min")&&(e.year_min=parseInt(u.get("year_min"),10)),u.get("year_max")&&(e.year_max=parseInt(u.get("year_max"),10)),u.get("page")&&(e.page=parseInt(u.get("page"),10)),u.get("per_page")&&(e.per_page=parseInt(u.get("per_page"),10)),Object.keys(e).length>0&&N(e)},[u]),(0,s.useEffect)(()=>{if(H.current&&e.length>0){H.current=!1;return}A(1),T(!0),K(1,!1)},[b,K,e.length]),(0,s.useEffect)(()=>{let e=new IntersectionObserver(e=>{if(e[0].isIntersecting&&I&&!C&&!L){let e=B+1;A(e),K(e,!0)}},{threshold:.1}),t=V.current;return t&&e.observe(t),()=>{t&&e.unobserve(t)}},[I,C,L,B,K]);let q=e=>{N(e)};return C&&0===k.length?(0,t.jsxs)("section",{className:"smith-yachts-listing","data-testid":"boats-list-loading",children:[(0,t.jsxs)("button",{className:"smith-yachts-listing__filter-button",onClick:()=>O(!0),"aria-label":"Open filters",children:[(0,t.jsx)(y,{}),(0,t.jsx)("span",{children:"Filters"})]}),(0,t.jsxs)("div",{className:"smith-yachts-listing__container",children:[(0,t.jsx)(m,{onFilterChange:q,loading:C,isOpen:R,onClose:()=>O(!1),initialFilters:b,initialSearchParams:o,topSlot:(0,t.jsx)(x,{})}),(0,t.jsx)("div",{className:"smith-yachts-listing__content",children:(0,t.jsx)("div",{className:"smith-yachts-listing__grid","data-testid":"boats-list-grid",children:Array.from({length:12}).map((e,s)=>(0,t.jsx)(p.BoatCardSkeleton,{},s))})})]})]}):$?(0,t.jsx)("section",{className:"smith-yachts-listing","data-testid":"boats-list-error",children:(0,t.jsxs)("div",{className:"smith-yachts-listing__container",children:[(0,t.jsx)(m,{onFilterChange:q,loading:C,isOpen:R,onClose:()=>O(!1),initialFilters:b,initialSearchParams:o,topSlot:(0,t.jsx)(x,{})}),(0,t.jsx)("div",{className:"smith-yachts-listing__content",children:(0,t.jsxs)("div",{className:"smith-yachts-listing__error","data-testid":"boats-list-error",children:[(0,t.jsx)("div",{className:"smith-yachts-listing__error-icon",children:(0,t.jsx)(f,{size:48})}),(0,t.jsx)("h3",{children:"Something went wrong"}),(0,t.jsx)("p",{children:$}),(0,t.jsx)("button",{onClick:()=>K(1,!1),className:"smith-yachts-listing__retry-btn",children:"Try Again"})]})})]})}):0===k.length?(0,t.jsxs)("section",{className:"smith-yachts-listing","data-testid":"boats-list-empty",children:[(0,t.jsxs)("button",{className:"smith-yachts-listing__filter-button",onClick:()=>O(!0),"aria-label":"Open filters",children:[(0,t.jsx)(y,{}),(0,t.jsx)("span",{children:"Filters"})]}),(0,t.jsxs)("div",{className:"smith-yachts-listing__container",children:[(0,t.jsx)(m,{onFilterChange:q,loading:C,isOpen:R,onClose:()=>O(!1),initialFilters:b,initialSearchParams:o,topSlot:(0,t.jsx)(x,{})}),(0,t.jsx)("div",{className:"smith-yachts-listing__content",children:(0,t.jsxs)("div",{className:"smith-yachts-listing__empty","data-testid":"boats-list-empty",children:[(0,t.jsx)("div",{className:"smith-yachts-listing__empty-icon",children:(0,t.jsx)(j,{size:64})}),(0,t.jsx)("h3",{className:"smith-yachts-listing__empty-title",children:"No Yachts Found"}),(0,t.jsx)("p",{className:"smith-yachts-listing__empty-text",children:"We couldn't find any yachts matching your criteria."}),(0,t.jsx)("p",{className:"smith-yachts-listing__empty-subtext",children:"Try adjusting your filters or browse our full collection."})]})})]})]}):(0,t.jsxs)("section",{className:"smith-yachts-listing","data-testid":"smith-boats-list",children:[(0,t.jsxs)("button",{className:"smith-yachts-listing__filter-button",onClick:()=>O(!0),"aria-label":"Open filters",children:[(0,t.jsx)(y,{}),(0,t.jsx)("span",{children:"Filters"})]}),(0,t.jsxs)("div",{className:"smith-yachts-listing__container",children:[(0,t.jsx)(m,{onFilterChange:q,loading:C,isOpen:R,onClose:()=>O(!1),initialFilters:b,initialSearchParams:o,topSlot:(0,t.jsx)(x,{})}),(0,t.jsxs)("div",{className:"smith-yachts-listing__content",children:[(0,t.jsxs)("div",{className:"smith-yachts-listing__header",children:[(0,t.jsxs)("div",{className:"smith-yachts-listing__count","data-testid":"boats-list-count",children:[(0,t.jsx)("span",{className:"smith-yachts-listing__count-number",children:k.length}),(0,t.jsxs)("span",{className:"smith-yachts-listing__count-text",children:["of ",(0,t.jsx)("strong",{children:F})," ",1===F?"yacht":"yachts"]})]}),(0,t.jsx)("div",{className:"smith-yachts-listing__header-line"}),(0,t.jsxs)("select",{value:b.sort||"-price_usd",onChange:e=>{var t;let s,i,a,r;return t=e.target.value,s={...b,sort:t},delete s.page,N(s),i=new URLSearchParams,Object.entries(s).forEac
9h(([e,t])=>{null!=t&&""!==t&&i.set(e,String(t))}),r=(a=i.toString())?`${_}?${a}`:_,void window.history.replaceState(null,"",r)},className:"smith-yachts-listing__sort-select","data-testid":"boats-filters-sort-select",children:[(0,t.jsx)("option",{value:"-price_usd",children:"Price: High to Low"}),(0,t.jsx)("option",{value:"price_usd",children:"Price: Low to High"}),(0,t.jsx)("option",{value:"-length_ft",children:"Length: Largest First"}),(0,t.jsx)("option",{value:"length_ft",children:"Length: Smallest First"}),(0,t.jsx)("option",{value:"-year",children:"Year: Newest First"}),(0,t.jsx)("option",{value:"year",children:"Year: Oldest First"})]})]}),(0,t.jsx)("div",{className:"smith-yachts-listing__grid","data-testid":"boats-list-grid",children:k.map((e,s)=>(0,t.jsx)(p.default,{boat:e,href:(0,a.buildBoatDetailUrl)(e,"database","/yacht-details"),animationDelay:s<z?50*s:0,priority:s<6,isFavorited:W.has(String(e.id)),onFavoriteChange:Y,source:"internal",showFavoriteButton:g},e.id))}),(0,t.jsx)("div",{ref:V,className:"smith-yachts-listing__observer"}),L&&(0,t.jsxs)("div",{className:"smith-yachts-listing__loading-more",children:[(0,t.jsxs)("div",{className:"smith-yachts-listing__spinner",children:[(0,t.jsx)("div",{className:"smith-yachts-listing__spinner-ring"}),(0,t.jsx)("div",{className:"smith-yachts-listing__spinner-ring smith-yachts-listing__spinner-ring--inner"})]}),(0,t.jsx)("p",{children:"Discovering more yachts..."})]}),!I&&k.length>0&&(0,t.jsxs)("div",{className:"smith-yachts-listing__end",children:[(0,t.jsx)("div",{className:"smith-yachts-listing__end-line"}),(0,t.jsxs)("div",{className:"smith-yachts-listing__end-content",children:[(0,t.jsx)(f,{size:24}),(0,t.jsx)("p",{children:"You've explored our entire collection"})]}),(0,t.jsx)("div",{className:"smith-yachts-listing__end-line"})]})]})]})]})}function b(e){return(0,t.jsx)(s.Suspense,{fallback:(0,t.jsx)("section",{className:"smith-yachts-listing",children:(0,t.jsx)("div",{className:"smith-yachts-listing__container",children:(0,t.jsxs)("div",{className:"smith-yachts-listing__loading-initial",children:[(0,t.jsxs)("div",{className:"smith-yachts-listing__loading-animation",children:[(0,t.jsx)("div",{className:"smith-yachts-listing__loading-ship",children:(0,t.jsx)(j,{size:48})}),(0,t.jsxs)("div",{className:"smith-yachts-listing__loading-waves",children:[(0,t.jsx)("span",{}),(0,t.jsx)("span",{}),(0,t.jsx)("span",{})]})]}),(0,t.jsx)("p",{children:"Loading yachts..."})]})})}),children:(0,t.jsx)(v,{...e})})}e.s(["default",()=>b],58951)},93526,e=>{e.v(t=>Promise.all(["static/chunks/53bbecd0de3cab44.css","static/chunks/92aa307878da661a.js"].map(t=>e.l(t))).then(()=>t(47845)))},14171,e=>{e.v(t=>Promise.all(["static/chunks/396e136d60434e74.css","static/chunks/9b38e3b601908729.js"].map(t=>e.l(t))).then(()=>t(99973)))}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.