PageSourceSearch

https://foodie.plus/_next/static/chunks/1_c5osvp6fah-.js

js foodie.plus collected 2026-10-09 23:35:22 UTC 92,638 bytes, 4 lines download raw bytes

1;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="524a8742-1e13-5eb9-858a-2ef5f473349a")}catch(e){}}();
2(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,602307,e=>{e.v({copy:"videoSteps-module__8P_TVG__copy",directions:"videoSteps-module__8P_TVG__directions",layout:"videoSteps-module__8P_TVG__layout",omittedSteps:"videoSteps-module__8P_TVG__omittedSteps",preview:"videoSteps-module__8P_TVG__preview",proof:"videoSteps-module__8P_TVG__proof",proofContent:"videoSteps-module__8P_TVG__proofContent",section:"videoSteps-module__8P_TVG__section",step:"videoSteps-module__8P_TVG__step",stepLabel:"videoSteps-module__8P_TVG__stepLabel",steps:"videoSteps-module__8P_TVG__steps",videoColumn:"videoSteps-module__8P_TVG__videoColumn",videoLabel:"videoSteps-module__8P_TVG__videoLabel"})},462446,e=>{e.v({countContents:"videoStepPills-module__8SPY9G__countContents",countFace:"videoStepPills-module__8SPY9G__countFace",countGlyph:"videoStepPills-module__8SPY9G__countGlyph",countScale:"videoStepPills-module__8SPY9G__countScale",countSlot:"videoStepPills-module__8SPY9G__countSlot",gold:"videoStepPills-module__8SPY9G__gold","gold-sheen":"videoStepPills-module__8SPY9G__gold-sheen","number-roll":"videoStepPills-module__8SPY9G__number-roll",numberSlot:"videoStepPills-module__8SPY9G__numberSlot",rollingNumber:"videoStepPills-module__8SPY9G__rollingNumber",sheen:"videoStepPills-module__8SPY9G__sheen"})},497653,e=>{e.v({captionOverlay:"videoWatching-module__4zXv-G__captionOverlay",creator:"videoWatching-module__4zXv-G__creator",foodie:"videoWatching-module__4zXv-G__foodie","foodie-pull":"videoWatching-module__4zXv-G__foodie-pull","foodie-throw":"videoWatching-module__4zXv-G__foodie-throw",foodieStack:"videoWatching-module__4zXv-G__foodieStack",importAnnotation:"videoWatching-module__4zXv-G__importAnnotation",phone:"videoWatching-module__4zXv-G__phone",phoneCamera:"videoWatching-module__4zXv-G__phoneCamera",phoneFrame:"videoWatching-module__4zXv-G__phoneFrame",phoneScreen:"videoWatching-module__4zXv-G__phoneScreen",phoneScreenPlane:"videoWatching-module__4zXv-G__phoneScreenPlane",platformBadge:"videoWatching-module__4zXv-G__platformBadge",post:"videoWatching-module__4zXv-G__post",poster:"videoWatching-module__4zXv-G__poster","preview-arrival":"videoWatching-module__4zXv-G__preview-arrival",previewCard:"videoWatching-module__4zXv-G__previewCard",previewSlot:"videoWatching-module__4zXv-G__previewSlot",savedRecipes:"videoWatching-module__4zXv-G__savedRecipes",scene:"videoWatching-module__4zXv-G__scene",sceneInner:"videoWatching-module__4zXv-G__sceneInner",screen:"videoWatching-module__4zXv-G__screen",scrubber:"videoWatching-module__4zXv-G__scrubber",scrubberFill:"videoWatching-module__4zXv-G__scrubberFill",scrubberMark:"videoWatching-module__4zXv-G__scrubberMark",sources:"videoWatching-module__4zXv-G__sources",video:"videoWatching-module__4zXv-G__video","video-reveal":"videoWatching-module__4zXv-G__video-reveal",videoPlaceholder:"videoWatching-module__4zXv-G__videoPlaceholder",watcher:"videoWatching-module__4zXv-G__watcher"})},794651,e=>{e.v({direction:"recipeVideoScreen-module__2SHTGG__direction","direction-in":"recipeVideoScreen-module__2SHTGG__direction-in",directions:"recipeVideoScreen-module__2SHTGG__directions",heading:"recipeVideoScreen-module__2SHTGG__heading",metadata:"recipeVideoScreen-module__2SHTGG__metadata",player:"recipeVideoScreen-module__2SHTGG__player",recipe:"recipeVideoScreen-module__2SHTGG__recipe",screen:"recipeVideoScreen-module__2SHTGG__screen",sectionLabel:"recipeVideoScreen-module__2SHTGG__sectionLabel",stepCard:"recipeVideoScreen-module__2SHTGG__stepCard",stepHeading:"recipeVideoScreen-module__2SHTGG__stepHeading",stepPlayerSlot:"recipeVideoScreen-module__2SHTGG__stepPlayerSlot",title:"recipeVideoScreen-module__2SHTGG__title",videoBadge:"recipeVideoScreen-module__2SHTGG__videoBadge"})},44415,e=>{e.v({caption:"savedRecipeOutput-module__1J0ZxW__caption",card:"savedRecipeOutput-module__1J0ZxW__card",output:"savedRecipeOutput-module__1J0ZxW__output",photo:"savedRecipeOutput-module__1J0ZxW__photo","recipe-exit":"savedRecipeOutput-module__1J0ZxW__recipe-exit","recipe-float":"savedRecipeOutput-module__1J0ZxW__recipe-float","recipe-pull":"savedRecipeOutput-module__1J0ZxW__recipe-pull","recipe-throw":"savedRecipeOutput-module__1J0ZxW__recipe-throw",title:"savedRecipeOutput-module__1J0ZxW__title",videoBadge:"savedRecipeOutput-module__1J0ZxW__videoBadge"})},267521,e=>{e.v({copy:"videoWatchingSection-module__n0Ex8G__copy",layout:"videoWatchingSection-module__n0Ex8G__layout",mobileVideoLine:"videoWatchingSection-module__n0Ex8G__mobileVideoLine",section:"videoWatchingSection-module__n0Ex8G__section",visual:"videoWatchingSection-module__n0Ex8G__visual"})},539424,e=>{"use strict";var t=e.i(843476),a=e.i(271645),i=e.i(522016),s=e.i(511152),n=e.i(980388),r=e.i(658073),o=e.i(187491),l=e.i(706482),d=e.i(662434),c=e.i(278669),u=e.i(543822),h=e.i(657688),p=e.i(846932),m=e.i(853010),f=e.i(513043);let g={src:e.i(809868).default,width:232,height:72,blurWidth:0,blurHeight:0},x={src:e.i(410333).default,width:326,height:72,blurWidth:0,blurHeight:0},v={src:e.i(877671).default,width:270,height:72,blurWidth:0,blurHeight:0},b={src:e.i(803406).default,width:270,height:72,blurWidth:0,blurHeight:0},j={src:e.i(710583).default,width:1254,height:1254,blurWidth:0,blurHeight:0};var y=e.i(647163),_=e.i(999663),N=e.i(387652);function w(e){return(0,N.useInView)(e,{amount:.8,once:!0})}var S=e.i(158865);let k=["I'm lactose intolerant.","I usually swap red onion for shallots.","I'm trying to eat more protein."],C=k[2],R={hidden:{},visible:{transition:{delayChildren:.12,staggerChildren:.42}},static:{transition:{duration:0}}},I={hidden:e=>({opacity:0,x:24*e}),visible:{opacity:1,x:0,transition:{duration:.42,ease:[.16,1,.3,1]}},static:{opacity:1,x:0,transition:{duration:0}}},$="140%";function T({className:e,deliveryNote:a=!1,preference:i}
2){let s=i===k[0]?{className:_.default.assistantLactoseBubble,src:g}:i===k[1]?{className:_.default.assistantOnionBubble,src:x}:{className:_.default.assistantProteinBubble,src:v};return(0,t.jsxs)("span",{className:(0,y.cn)(_.default.assistantPreferenceBubble,s.className,e),"data-assistant-preference-bubble":!0,"data-assistant-protein-bubble":i===C||void 0,"data-assistant-delivery-note":a||void 0,"data-assistant-shared-preference":a&&i===C?"protein":void 0,children:[(0,t.jsx)(h.default,{src:s.src,alt:"","aria-hidden":"true",className:"h-auto w-full",unoptimized:!0}),(0,t.jsx)("span",{className:`${_.default.assistantPreferenceBubbleText} font-body`,"data-assistant-preference-bubble-text":!0,children:i})]})}function E({className:e,deliveryNote:a}={}){return(0,t.jsx)(T,{className:e,deliveryNote:a,preference:C})}function P({annotation:e="strike",delay:a,original:i,replacement:s,replacementTilt:n=-2,shouldReduceMotion:r,show:o}){let l=r?{duration:0}:{delay:a,duration:.55,ease:[.16,1,.3,1]};return(0,t.jsxs)("span",{"aria-label":`${i} changed to ${s}`,className:_.default.assistantValueChange,children:[(0,t.jsxs)("span",{"aria-hidden":"true",className:_.default.assistantValueOriginal,"data-assistant-original-value":i,children:[i,"circle"===e?(0,t.jsx)("svg",{"aria-hidden":"true",className:_.default.assistantHanddrawnCircle,"data-assistant-handdrawn-circle":!0,preserveAspectRatio:"none",viewBox:"0 0 100 38",children:(0,t.jsx)(p.motion.path,{d:"M 3 21 C 5 7, 25 2, 51 3 C 78 2, 96 8, 97 20 C 96 32, 74 37, 49 35 C 24 37, 4 33, 3 21",initial:!r&&{pathLength:0,opacity:0},animate:o?{pathLength:1,opacity:.94}:{pathLength:0},transition:l})}):(0,t.jsx)("svg",{"aria-hidden":"true",className:_.default.assistantHandwrittenStrike,"data-assistant-handwritten-strike":!0,preserveAspectRatio:"none",viewBox:"0 0 100 24",children:(0,t.jsx)(p.motion.path,{d:"M 2 15 C 19 8, 35 18, 53 11 S 82 17, 98 8",initial:!r&&{pathLength:0,opacity:0},animate:o?{pathLength:1,opacity:.94}:{pathLength:0},transition:l})})]}),(0,t.jsx)(p.motion.span,{"aria-hidden":"true",className:_.default.assistantValueReplacement,"data-assistant-pill-expose":!0,"data-assistant-pill-tilt":n,"data-assistant-replacement-value":s,initial:!r&&{opacity:0,rotate:n-5,scale:.55},animate:o?r?{opacity:1,rotate:n,scale:1}:{opacity:[0,1,1,1],rotate:[n-5,n+2,n-1,n],scale:[.55,1.12,.96,1]}:{opacity:0,rotate:n-5,scale:.55},transition:r?{duration:0}:{delay:a+.5,duration:.62,ease:"linear",times:[0,.31,.67,1]},children:s})]})}function M({courierReturned:e=!1,forceReducedMotion:i=!1,onTransferReady:s}){let n=(0,a.useRef)(null),r=w(n),o=(0,m.useIsMobile)(),l=(0,S.usePrototypeReducedMotion)(i),d=l||r,[c,u]=(0,a.useState)(!1),[g,x]=(0,a.useState)(!1),v=o?"-48%":"-40%",{frame:N}=(0,f.useRigatoniBlink)(e&&!l,!1);return(0,a.useEffect)(()=>{if(l)return void s?.();if(!r)return;let e=window.setTimeout(()=>u(!0),2200),t=window.setTimeout(()=>x(!0),2850),a=window.setTimeout(()=>s?.(),3750);return()=>{window.clearTimeout(e),window.clearTimeout(t),window.clearTimeout(a)}},[r,s,l]),(0,t.jsx)("div",{ref:n,className:`${_.default.proofStage} ${_.default.assistantProofStage}`,"data-memory-transfer-source":!0,"data-assistant-handoff-active":c||void 0,"data-assistant-courier-leaving":g||void 0,children:(0,t.jsxs)("div",{className:_.default.assistantPreferenceFlow,children:[(0,t.jsx)(p.motion.div,{initial:l?"static":"hidden",animate:l?"static":d?"visible":"hidden",className:_.default.assistantPreferences,variants:R,children:k.map((e,a)=>(0,t.jsxs)(p.motion.div,{className:(0,y.cn)(_.default.assistantPreferenceSlot,e===C&&_.default.assistantPreferenceSlotFinal),custom:a%2==0?1:-1,"data-assistant-entry-side":a%2==0?"right":"left",variants:I,children:[e===C?(0,t.jsx)(p.motion.div,{"aria-hidden":"true","data-assistant-transfer-placeholder":!0,className:_.default.assistantTransferredPlaceholder,initial:!1,animate:g&&!l?{opacity:1,scale:1}:{opacity:0,scale:1},transition:{delay:.1*!!g,duration:.3,ease:[.16,1,.3,1]},children:(0,t.jsx)(h.default,{src:b,alt:"","aria-hidden":"true",className:_.default.assistantProteinPlaceholder,unoptimized:!0})}):null,e!==C?(0,t.jsx)(p.motion.div,{"data-assistant-preference":a+1,className:_.default.assistantPreferenceMessage,initial:!1,children:(0,t.jsx)(T,{preference:e})}):null]},e))}),(0,t.jsxs)(p.motion.div,{"data-assistant-pickup-carrier":!0,"data-assistant-attachment-point":"head-message-tail","data-assistant-entry-side":"right","data-assistant-exit-path":"bottom-right","data-assistant-handoff-hold":"short",initial:!1,animate:l||e?{opacity:1,x:"0%",y:"0%"}:g?{opacity:1,x:["0%","12%","78%"],y:["0%","30%","118%"]}:{opacity:1,x:"0%",y:"0%"},transition:l?{duration:0}:e?{duration:.65,ease:[.16,1,.3,1]}:g?{duration:.9,ease:[.45,0,.55,1],times:[0,.62,1]}:{duration:0},className:_.default.assistantPickupCarrier,children:[(0,t.jsx)(p.motion.div,{"data-assistant-preference":3,"data-assistant-pickup-bubble":!0,"data-assistant-pickup-motion":"stationary","data-assistant-return-visibility":"hidden-before-return",className:_.default.assistantPickupBubble,style:{visibility:e&&!l?"hidden":"visible"},initial:!l&&{opacity:0,rotate:0,scale:1,x:"9%",y:"0%"},animate:e&&!l?{opacity:0,rotate:0,scale:1,x:"0%",y:"0%"}:c&&!l||d?{opacity:1,rotate:0,scale:1,x:"0%",y:"0%"}:{opacity:0,rotate:0,scale:1,x:"9%",y:"0%"},transition:l||e||c?{duration:0}:{delay:.95,duration:.42,ease:[.16,1,.3,1]},children:(0,t.jsx)(E,{})}),(0,t.jsx)(p.motion.div,{initial:!l&&{opacity:0,rotate:-12,x:"48%",y:"92%"},animate:d?e?{opacity:1,rotate:-7,scale:1,x:"0%",y:"0%"}:g?{opacity:1,rotate:-14,scale:1,x:"10%",y:v}:{opacity:1,rotate:c?-14:-7,scale:1,x:c?"10%":"0%",y:c?v:"0%"}:{},transition:l?{duration:0}:e?{duration:.95,ease:[.16,1,.3,1]}:g?{duration:0}:{delay:1.35*!c,duration:c?.5:.55,ease:[.25,1,.5,1]},className:_.default.assistantMascot,"data-assistant-mascot":!0,"data-assistant-grab-angle":"left","data-assistant-contact-motion":"direct","data-assistant-exit-rotation":"none","data-assistant-courier-returned":e||void 0,children:e?(0,t.jsx)("div",{className:"relative w-full","data-assistant-blink-enabled":!l||void 0,"data-assistant-blink-frame":N,children:f.RIGATONI_BLINK_FRAMES.map(({frame:e,src:a})=>(0,t.jsx)(h.default,{src:a,alt:"",width:1254,height:1254,"data-rigatoni-frame":e,className:(0,y.cn)("h-auto w-full object-contain","open"===e?"relative":"absolute inset-0",N===e?"opacity-100":"opacity-0")},e))}):(0,t.jsx)(h.default,{src:j,alt:"",className:"h-auto w-full object-contain"})})]})]})})}function L({forceReducedMotion:e=!1,onDeliveryComplete:i,transferReady:s=!1}){let n=(0,a.useRef)(null),r=w(n),o=(0,S.usePrototypeReducedMotion)(e),l=o||r&&s,[d,c]=(0,a.useState)(!1),u=o||d;return(0,a.useEffect)(()=>
2{if(o){c(!0),i?.();return}if(!l)return;let e=window.setTimeout(()=>c(!0),1600),t=window.setTimeout(()=>i?.(),1750);return()=>{window.clearTimeout(e),window.clearTimeout(t)}},[i,o,l]),(0,t.jsxs)("div",{ref:n,className:`${_.default.proofStage} ${_.default.assistantProofStage}`,"data-assistant-delivery-active":l||void 0,children:[(0,t.jsxs)("p",{className:"sr-only",children:["The remembered preference, ",C,", carries into this illustrative pasta adaptation, swapping rigatoni for chickpea rigatoni, adjusting cooking time from 11 to 7 minutes, and increasing protein from 6 to 20 grams per serving."]}),(0,t.jsxs)("div",{className:_.default.assistantAdaptationSequence,children:[(0,t.jsx)("div",{"data-memory-transfer-target":!0,"data-assistant-received-preference":!0,"aria-hidden":"true",className:_.default.assistantReceivedPreference,children:(0,t.jsxs)(p.motion.div,{"data-assistant-delivery-carrier":!0,"data-assistant-attachment-point":"head-message-tail","data-assistant-entry-path":"clean-diagonal-right-center","data-assistant-offscreen-start":$,initial:!o&&{opacity:1,rotate:0,scale:1,x:$,y:"190%"},animate:o||l?{opacity:1,rotate:0,scale:1,x:"0%",y:"0%"}:{opacity:1,rotate:0,scale:1,x:$,y:"190%"},transition:o?{duration:0}:{delay:.08,duration:.85,ease:[.22,1,.36,1]},className:_.default.assistantDeliveryCarrier,children:[(0,t.jsx)(E,{className:_.default.assistantDeliveryPreference,deliveryNote:!0}),(0,t.jsx)(p.motion.div,{"data-assistant-delivery-mascot":!0,"data-assistant-visibility":"clip-only",initial:!o&&{opacity:1,rotate:-10,x:"0%",y:"0%"},animate:o?{opacity:0,rotate:8,x:"112%",y:"42%"}:l?{opacity:1,rotate:[-10,-10,-1,8],x:["0%","0%","28%","190%"],y:["0%","0%","10%","78%"]}:void 0,transition:o?{duration:0}:{delay:.08,duration:1.65,ease:[.45,0,.55,1],times:[0,.63,.78,1]},className:_.default.assistantDeliveryMascot,"data-assistant-entry-rotation":"none","data-assistant-exit-rotation":"clockwise","data-assistant-exit-rotation-degrees":"18",children:(0,t.jsx)(h.default,{src:j,alt:"",className:"h-auto w-full object-contain"})})]})}),(0,t.jsx)("div",{className:_.default.assistantAdaptationContent,"data-assistant-adaptation-content":!0,"data-assistant-base-state":"visible","data-assistant-recipe-adaptation":!0,children:(0,t.jsxs)("div",{className:_.default.assistantAdaptationEdits,children:[(0,t.jsxs)("section",{className:_.default.assistantAdaptationEdit,"data-assistant-adaptation-section":"ingredients",children:[(0,t.jsx)("p",{className:_.default.assistantAdaptationLabel,children:"Ingredients"}),(0,t.jsx)("p",{className:_.default.assistantAdaptationLine,children:(0,t.jsx)(P,{delay:.1,original:"rigatoni",replacement:"chickpea rigatoni",replacementTilt:-2,shouldReduceMotion:o,show:u})})]}),(0,t.jsxs)("section",{className:_.default.assistantAdaptationEdit,"data-assistant-adaptation-section":"directions",children:[(0,t.jsx)("p",{className:_.default.assistantAdaptationLabel,children:"Directions"}),(0,t.jsxs)("p",{className:_.default.assistantAdaptationLine,children:["cook until just tender, about"," ",(0,t.jsx)(P,{delay:.65,original:"11 minutes",replacement:"7 minutes",replacementTilt:2,shouldReduceMotion:o,show:u})]})]}),(0,t.jsxs)("section",{className:_.default.assistantAdaptationEdit,"data-assistant-adaptation-section":"nutrition","data-assistant-protein-impact":!0,children:[(0,t.jsx)("p",{className:_.default.assistantAdaptationLabel,children:"Nutrition"}),(0,t.jsxs)("div",{className:_.default.assistantNutritionLine,children:[(0,t.jsx)("p",{className:_.default.assistantAdaptationLine,children:"protein per serving"}),(0,t.jsx)(P,{delay:1.2,original:"6 g",replacement:"20 g",replacementTilt:-2,shouldReduceMotion:o,show:u})]})]})]})})]})]})}var G=e.i(88653);let H=[{id:"olive-oil",input:"EVOO?",thought:"extra virgin olive oil",resultIndicator:"squiggle-arrow",recipeTitle:"Crisp Tomato Salad",truth:{status:"verified",evidence:"Recorded passing placement evaluation fixture"}},{id:"flour",input:"2 cup + 1 tbsp flour?",thought:"247.5g flour",resultIndicator:"equals",compactRaw:!0,outputFact:"247.5 g",recipeTitle:"Sunday Dinner Rolls",truth:{status:"prototype-fixture",launchCheck:"Verify the exact flour gram conversion against current product output before launch"}},{id:"flour",input:"ap flour?",thought:"all-purpose flour",resultIndicator:"squiggle-arrow",recipeTitle:"Sunday Dinner Rolls",truth:{status:"prototype-fixture",launchCheck:"Verify the AP flour synonym resolution against current product output before launch"}},{id:"coriander",input:"coriander?",thought:"cilantro",resultIndicator:"equals",recipeTitle:"Crisp Tomato Salad",truth:{status:"prototype-fixture",launchCheck:"Verify the coriander synonym resolution against current product output before launch"}},{id:"milk",input:"1 cup whole milk",thought:"8g protein",resultIndicator:"equals",outputFact:"8 g protein",recipeTitle:"Soft Milk Bread",truth:{status:"prototype-fixture",launchCheck:"Verify the exact whole-milk protein value against current product output before launch"}}],F="Soft Milk Bread calls for 1 cup whole milk. Crisp Tomato Salad calls for EVOO. Sunday Dinner Rolls calls for 2 cups + 1 tbsp AP flour. ",W=[{title:"Dinner Rolls",originalWording:"AP flour",source:"tiktok"},{title:"Cake",originalWording:"all-purpose flour",source:"instagram"},{title:"Flatbread",originalWording:"plain flour",source:"facebook"},{title:"Biscuits",originalWording:"white flour",source:"instagram"}],A=["Melt 113 g butter over medium heat until it begins to foam.","Whisk in 100 g granulated sugar and 110 g brown sugar until glossy.","Fold in 180 g flour, then add the chopped chocolate."],V={creator:"@dougdoesdelicious",caption:"",durationSeconds:18,sourceStartSeconds:0,video:{src:"/homepage/video-watching/hainanese-chicken-rice-broll.mp4",poster:"/homepage/video-watching/hainanese-chicken-rice-broll.webp"},recipeTitle:"Hainanese Chicken & Rice",importNote:"",ingredients:[{id:"rice",amount:"2 rice cooker cups",item:"jasmine rice",grams:"320 g"},{id:"broth",amount:"2 cups",item:"chicken broth",grams:"480 g"},{id:"chicken",amount:"2",item:"chicken thighs",grams:"450 g"}],evidence:[{ingredientId:"rice",kind:"shown",atSeconds:.5,text:"jasmine rice"},{ingredientId:"broth",kind:"shown",atSeconds:4.5,text:"chicken broth"},{ingredientId:"chicken",kind:"shown",atSeconds:8.2,text:"2 chicken thighs"}
2],directions:["Place chicken thighs on top of the rice.","Pour hot oil into the bowl with the rest of the ginger scallion sauce and mix."],truth:{status:"prototype-fixture",launchCheck:"Recipe amounts and shared directions checked against Doug's supplied Foodie page; observations manually matched to his 100 Cooks footage. Verify stored import evidence, social caption and direction segments before claiming automatic matching. The linked recipe uses a rice cooker; the film shows a stovetop pot."}},z="110%",O=[16,26,36,31,25,19,16,14,18,24,20,17,26,34,38,30,18,10,6],B=[920,1140,860,1280,1010,1190,890,1320,1080,940,1240,990,1170,840,1260,1040,1210,900,1120];function D(){return(0,t.jsx)("div",{className:_.default.handsFreeVoicePill,"data-hands-free-voice":!0,"aria-hidden":"true",children:(0,t.jsx)("div",{className:_.default.handsFreeVoiceWave,children:O.map((e,a)=>(0,t.jsx)("span",{className:_.default.voiceBar,style:{"--voice-bar-delay":`${Math.round(-48*a*1.15)}ms`,"--voice-bar-duration":`${Math.round(1.15*B[a])}ms`,"--voice-bar-height":`${e}px`}},e+"-"+a))})})}function X({forceReducedMotion:e=!1}){let i=(0,a.useRef)(null),s=(0,a.useRef)(null),n=(0,N.useInView)(i,{amount:.3}),r=w(s),o=(0,S.usePrototypeReducedMotion)(e),[l,d]=(0,a.useState)(o),c=o||l,[u,m]=(0,a.useState)(()=>o?A.length-1:0);return(0,a.useEffect)(()=>{if(o)return void d(!0);if(!r)return;let e=window.setTimeout(()=>{d(!0)},1e3);return()=>window.clearTimeout(e)},[r,o]),(0,a.useEffect)(()=>{if(o)return void m(A.length-1);if(!n)return;let e=window.setTimeout(()=>{m(e=>(e+1)%A.length)},3600);return()=>window.clearTimeout(e)},[u,n,o]),(0,t.jsxs)("div",{ref:i,className:_.default.handsFreeProof,"data-hands-free-proof":!0,children:[(0,t.jsxs)("p",{className:"sr-only",children:["From across the kitchen, Foodie moves from step ",u+1," to the next step in ","Brown Butter Cookies",", shows progress, and reads the relevant ingredient measurement aloud while the cook keeps both hands on the bowl."]}),(0,t.jsx)("div",{className:_.default.handsFreeHeroFrame,"data-hands-free-hero-frame":!0,children:(0,t.jsxs)("div",{"aria-hidden":"true",className:_.default.handsFreeStage,"data-hands-free-stage":!0,children:[(0,t.jsx)(h.default,{src:"/ingredient-illustrations/foodie-whisking-bowl-v23-lighter-skin.svg",alt:"",width:1536,height:1254,className:_.default.handsFreeIllustration,"data-hands-free-illustration":!0,unoptimized:!0}),(0,t.jsxs)("div",{ref:s,className:_.default.phoneGlow+" "+_.default.handsFreePhone+" relative overflow-hidden rounded-[2.4rem] border-[7px] border-[#2b0b08] bg-white p-3","data-hands-free-phone":!0,children:[(0,t.jsx)("div",{className:"mx-auto mb-3 h-1.5 w-16 rounded-full bg-foodie-brown/20"}),(0,t.jsxs)("div",{className:`${_.default.handsFreeScreen} bg-white px-4 pb-4`,"data-hands-free-screen":!0,children:[(0,t.jsxs)("div",{"data-hands-free-step-progress":!0,children:[(0,t.jsxs)("p",{className:"text-center text-[10px] font-bold uppercase tracking-[0.1em] text-foodie-brown/90",children:["Step ",u+1," of ",A.length]}),(0,t.jsx)("div",{className:"mt-2 flex gap-1.5",children:A.map((e,a)=>(0,t.jsx)("span",{className:a<=u?"h-1.5 flex-1 rounded-full bg-foodie-orange":"h-1.5 flex-1 rounded-full bg-foodie-brown/12"},a))})]}),(0,t.jsx)("div",{className:"relative mt-4 h-[10.5rem] overflow-hidden rounded-2xl bg-foodie-beige/60","data-hands-free-direction-stage":!0,children:(0,t.jsx)(G.AnimatePresence,{initial:!1,children:(0,t.jsx)(p.motion.div,{"data-hands-free-direction":u+1,initial:!o&&{opacity:0,x:"100%"},animate:{opacity:1,x:0},exit:{opacity:0,x:"-100%"},transition:{duration:.7*!o,ease:"easeInOut"},className:"absolute inset-0 p-5",children:(0,t.jsx)("p",{className:"text-sm font-semibold leading-relaxed text-foodie-brown",children:A[u]})},u)})}),(0,t.jsx)("div",{className:_.default.handsFreeFoodieMask,"data-hands-free-foodie-mask":!0,children:(0,t.jsx)(p.motion.div,{className:_.default.handsFreeFoodieReveal,"data-foodie-revealed":c,"data-hands-free-foodie-reveal":!0,initial:!o&&{y:z,rotate:-8},animate:c?{y:0,rotate:11}:{y:z,rotate:-8},transition:{duration:.58*!o,ease:[.22,1,.36,1]},children:(0,t.jsx)(h.default,{src:"/ingredient-illustrations/foodie-phone-call-v9-clean-handset-contact.png",alt:"",width:1254,height:1254,className:_.default.handsFreeFoodie,"data-hands-free-foodie":!0,unoptimized:!0})})}),(0,t.jsx)("div",{className:`${_.default.handsFreeMeasurement} text-center`,"data-hands-free-measurement":!0,children:(0,t.jsx)(D,{})})]})]})]})})]})}function Y({text:e,straight:a=!1}){return(0,t.jsxs)("span",{className:_.default.heroSavePhrase,children:[e,(0,t.jsx)("svg",{"aria-hidden":"true",className:_.default.heroSaveHighlight,preserveAspectRatio:"none",viewBox:"0 0 240 40",children:(0,t.jsx)("path",{className:_.default.heroSaveHighlightStroke,d:a?"M4 20 H236":"M4 18 C42 18 76 19 111 20 C150 20 190 21 236 22",fill:"none",pathLength:1})})]})}function Z(){return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("svg",{"aria-hidden":"true",focusable:"false",className:_.default.heroSaveBookmark,viewBox:"0 0 24 40",children:(0,t.jsx)("path",{d:"M5 2H19A3 3 0 0 1 22 5V38L12 31L2 38V5A3 3 0 0 1 5 2Z",stroke:"currentColor",strokeWidth:2.2,strokeLinejoin:"round"})}),(0,t.jsx)("span",{className:"sr-only",children:"."})]})}let q=[{name:"Red onion",src:"/ingredient-illustrations/foodie-red-onion.svg"},{name:"Lemon",src:"/ingredient-illustrations/foodie-lemon.svg"},{name:"Mushroom",src:"/ingredient-illustrations/foodie-mushroom.svg"},{name:"Carrot",src:"/ingredient-illustrations/foodie-carrot.svg"},{name:"Avocado",src:"/ingredient-illustrations/foodie-avocado.svg"},{name:"Garlic",src:"/ingredient-illustrations/foodie-garlic-bulb.svg"},{name:"Tomato",src:"/ingredient-illustrations/foodie-tomato.svg"},{name:"Broccoli",src:"/ingredient-illustrations/foodie-broccoli.svg"},{name:"Chili pepper",src:"/ingredient-illustrations/foodie-chili-pepper.svg"}],U=[12,-14,16,-11,13,-16,10,-12,15],K=26/q.length,J=q.map((e,t)=>({ingredient:e,entryDelaySeconds:t*K,rotationDelaySeconds:-(t*(24/q.length)),rotate:U[t]})),Q=[...f.RIGATONI_BLINK_FRAMES,{frame:"glance",src:"/foodie-rigatoni-glance.svg"}];function ee({paused:e}){let i=(0,a.useRef)(null),s=(0,a.useRef)(null),[n,r]=(0,a.useState)(0),[o,l]=(0,a.useState)(null);(0,a.useLayoutEffect)(()=>{let e=i.current;if(!e)return;let t=()=>{let{width:t,height:a}=e.getBoundingClientRect();l({width:t,height:a})};t();let a=new ResizeObserver(t);return a.observe(e),()=>a.disconnect()},[]),(0,a.useEffect)(()=>{let e=s.current;if(!e||!o)return;let t=!1,a=document.fonts,i=()=>
2{if(t)return;let a=e.getComputedTextLength();Number.isFinite(a)&&!(a<=0)&&r(a)};return i(),a.ready.then(i),a.addEventListener("loadingdone",i),()=>{t=!0,a.removeEventListener("loadingdone",i)}},[o]);let d=F.repeat(4),c=o?.width??1,u=o?.height??1,h=function(e,t){let a=e<240,i=e<=512,s=(e,t)=>`${+e.toFixed(2)} ${+t.toFixed(2)}`;if(i&&!a)return`M ${s(-.04*e,.34*t)} C ${s(.1*e,.54*t)} ${s(.35*e,.4*t)} ${s(.35*e,.235*t)} C ${s(.35*e,.13*t)} ${s(.28*e,.05*t)} ${s(.19*e,.05*t)} C ${s(.1*e,.05*t)} ${s(.03*e,.14*t)} ${s(.03*e,.252*t)} C ${s(.03*e,.467*t)} ${s(.28*e,.536625*t)} ${s(.39*e,.56*t)} C ${s(.5*e,.583375*t)} ${s(.75*e,.62*t)} ${s(e,.62*t)}`;let n=a?Math.max(e,420):e,r=a?.5:1,o=a?-.115*n:0,l=a?.4:1,d=.62*t,c=e=>i?d+t*(e-.36)*l:t*e,u=e=>i?d:c(e),h=.035*n*r+o,p=c(0),m=.31*e,f=u(.46),g=m-(m-h)*.48;return`M ${s(-.04*n*r+o,c(.175))} C ${s(.1*n*r+o,c(.36))} ${s(.385*n*r+o,c(.235))} ${s(.385*n*r+o,c(-.02))} C ${s(.385*n*r+o,c(-.263*.55))} ${s(.34*n*r+o,c(-.263))} ${s(.23*n*r+o,c(-.263))} C ${s(.12*n*r+o,c(-.263))} ${s(.035*n*r+o,c(-.14991))} ${s(h,p)} C ${s(h,i?p+(f-p)*.48:c(.15))} ${s(i?g:.11*e,i?f:u(.29))} ${s(m,f)} C ${s(i?m+(m-g):.51*e,u(.63))} ${s(.75*e,d)} ${s(e,d)}`}(c,u);return(0,t.jsx)("div",{ref:i,className:_.default.inputRailViewport,children:(0,t.jsxs)("svg",{viewBox:`0 0 ${c} ${u}`,preserveAspectRatio:"xMinYMid meet",className:_.default.sourceRibbonSvg,style:{visibility:o?"visible":"hidden"},children:[(0,t.jsx)("defs",{children:(0,t.jsx)("path",{id:"hero-input-text-path",d:h})}),(0,t.jsx)("text",{ref:s,className:_.default.sourceRibbonText,opacity:"0",pointerEvents:"none",children:F}),(0,t.jsx)("text",{className:`${_.default.sourceRibbonText} ${_.default.sourceRibbonStatic}`,children:(0,t.jsx)("textPath",{href:"#hero-input-text-path",startOffset:"-30%",children:d})}),(0,t.jsx)("text",{className:`${_.default.sourceRibbonText} ${_.default.sourceRibbonAnimated}`,children:(0,t.jsxs)("textPath",{href:"#hero-input-text-path",startOffset:n>0?-n:0,children:[d,!e&&n>0?(0,t.jsx)("animate",{attributeName:"startOffset",from:`${-n}`,to:"0",dur:"14s",repeatCount:"indefinite"},n):null]})})]})})}function et({shouldReduceMotion:e}){let{frame:a,isGlancing:i}=(0,f.useRigatoniBlink)(!e,!0),s="open"!==a?a:i?"glance":"open";return(0,t.jsx)("div",{"aria-hidden":"true","data-blink-frame":a,"data-expression-frame":s,"data-glance-active":i,className:`${_.default.heroFoodieCrop} ${_.default.rigatoniSizing}`,children:Q.map(({frame:e,src:a})=>(0,t.jsx)(h.default,{src:a,alt:"",width:1254,height:1254,priority:"open"===e,loading:"open"===e?void 0:"eager","data-rigatoni-frame":e,className:`${_.default.heroFoodieFrame} pointer-events-none ${s===e?"opacity-100":"opacity-0"}`},e))})}function ea({paused:e}){return(0,t.jsx)("div",{className:_.default.outputRailViewport,children:(0,t.jsx)("div",{className:`${_.default.outputIngredientTrack} ${e?_.default.outputIngredientTrackPaused:""}`,children:J.map((e,a)=>(0,t.jsx)("div",{style:{"--output-cycle-duration":"26s","--output-entry-delay":`${e.entryDelaySeconds}s`,"--output-static-left":`${12*a}%`},className:_.default.outputIngredientSlot,children:(0,t.jsx)("div",{className:_.default.outputIngredientTravel,children:(0,t.jsx)("div",{"data-output-sequence-index":a,className:_.default.outputIngredientPop,children:(0,t.jsx)("div",{style:{transform:`rotate(${e.rotate}deg)`},className:_.default.outputIngredientTilt,children:(0,t.jsx)(h.default,{src:e.ingredient.src,alt:"",width:1254,height:1254,sizes:"(min-width: 640px) 92px, 76px",style:{animationDelay:`${e.rotationDelaySeconds}s`},"data-output-ingredient":e.ingredient.name,className:_.default.outputIngredientImage})})})})},a))})})}let ei={equals:22,"squiggle-arrow":58};function es({animated:e,type:a}){return"equals"===a?(0,t.jsx)(p.motion.span,{"aria-hidden":"true",className:_.default.islandEquals,initial:!!e&&{opacity:0,rotate:-16,scale:0},animate:{opacity:1,rotate:0,scale:1.1},transition:e?{delay:.05,damping:15,stiffness:400,type:"spring"}:{duration:0},children:"="}):(0,t.jsx)(en,{animated:e})}function en({animated:e}){let[i,s]=(0,a.useState)(!e);return(0,t.jsxs)("svg",{"aria-hidden":"true",focusable:"false",preserveAspectRatio:"xMidYMid meet",viewBox:"0 0 58 28",className:_.default.islandSquiggleArrow,children:[(0,t.jsx)(p.motion.path,{className:_.default.islandSquiggleStroke,d:"M 3 15 C 13 7, 23 8, 34 13 C 41 17, 47 18, 53 14",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",initial:!!e&&{opacity:1,pathLength:0}
2,animate:{opacity:1,pathLength:1},transition:e?{duration:.14,ease:"linear"}:{duration:0},onAnimationComplete:()=>s(!0)}),i&&(0,t.jsx)(p.motion.path,{className:_.default.islandSquiggleStroke,d:"M 45 7 C 47 9, 49 12, 53 14 C 51 17, 49 21, 47 24",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",initial:!!e&&{opacity:1,pathLength:0},animate:{opacity:1,pathLength:1},transition:e?{duration:.34,ease:[.22,1,.36,1]}:{duration:0}})]})}function er({className:e,side:a}){let i="left"===a?"M14 2 C8 7 4 15 4.5 22 C4.5 30 8 36 14 40":"M2 2 C8 7 12 15 11.5 22 C11.5 30 8 36 2 40",s=.1*("right"===a);return(0,t.jsxs)("svg",{"aria-hidden":"true",focusable:"false",viewBox:"0 0 16 42",className:`${_.default.flourParenthesis} ${e??""}`,children:[(0,t.jsx)(p.motion.path,{d:i,fill:"none",stroke:"#f9cd58",strokeLinecap:"round",strokeWidth:"6",initial:{opacity:0,pathLength:0},animate:{opacity:1,pathLength:1},transition:{delay:s,duration:.48,ease:[.25,1,.5,1]}}),(0,t.jsx)(p.motion.path,{d:i,fill:"none",stroke:"#ea602f",strokeLinecap:"round",strokeWidth:"2.2",initial:{opacity:0,pathLength:0},animate:{opacity:.88,pathLength:1},transition:{delay:s+.06,duration:.44,ease:[.25,1,.5,1]}})]})}function eo({className:e,shouldReduceMotion:a,text:i}){return(0,t.jsx)(p.motion.p,{"aria-label":i,className:e,initial:!a&&"hidden",animate:"visible",variants:{hidden:{opacity:0,y:92},visible:{opacity:1,y:0,transition:{delayChildren:.05,duration:.58,ease:[.25,1,.5,1],staggerChildren:.03}}},children:Array.from(i).map((e,a)=>(0,t.jsx)(p.motion.span,{"aria-hidden":"true",className:"inline-block",variants:{hidden:{opacity:0,rotate:45,scale:.5,y:30},visible:{opacity:1,rotate:0,scale:1,y:0,transition:{duration:.4,rotate:{damping:8,stiffness:150,type:"spring"},scale:{damping:10,stiffness:300,type:"spring"},y:{damping:12,mass:.8,stiffness:200,type:"spring"}}}},children:" "===e?" ":e},`${e}-${a}`))})}function el({className:e,converted:i,covered:s,grouping:n,input:r,result:o,source:l}){let d=(0,a.useRef)(null),[c,u]=(0,a.useState)(null),h=r.startsWith(l)?r.slice(l.length):"",m=h?l:r;(0,a.useLayoutEffect)(()=>{let e=!1,t=()=>{!e&&d.current&&u(d.current.offsetWidth)};return t(),document.fonts.ready.then(t),()=>{e=!0}},[]);let f=0,g=e=>Array.from(e).map(e=>{let a=f++;return(0,t.jsx)(p.motion.span,{"aria-hidden":"true",className:"inline-block",initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:.05+.025*a,duration:.42,ease:[.25,1,.5,1]},children:" "===e?" ":e},`char-${a}`)});return(0,t.jsxs)(p.motion.p,{"aria-label":r,className:e,initial:{opacity:0,y:92},animate:s?{opacity:0}:{opacity:1,y:0},exit:{opacity:0,scale:.97,y:-12,transition:{duration:.24,ease:[.4,0,1,1]}},transition:s?{delay:.3,duration:0}:{duration:.58,ease:[.25,1,.5,1]},children:[(0,t.jsxs)(p.motion.span,{className:_.default.measureSlot,initial:!1,animate:{width:i&&null!==c?c:"auto",marginRight:n&&!i?"0.65em":"0em"},transition:{duration:.3,ease:[.4,0,1,1]},children:[(0,t.jsxs)(p.motion.span,{className:_.default.measureGroup,animate:i?{opacity:0,scaleX:.36}:{opacity:1,scaleX:1},transition:{duration:.28,ease:[.4,0,1,1]},children:[n&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(er,{side:"left",className:`${_.default.measureParen} ${_.default.measureParenLeft}`}),(0,t.jsx)(er,{side:"right",className:`${_.default.measureParen} ${_.default.measureParenRight}`})]}),g(m)]}),(0,t.jsx)(p.motion.span,{ref:d,"aria-hidden":"true",className:_.default.measureResult,initial:!1,animate:i?{opacity:1,scale:1}:{opacity:0,scale:.8},transition:i?{delay:.14,duration:.36,ease:[.25,1,.5,1]}:{duration:0},children:o})]}),g(h)]})}function ed({cycleIndex:e,phase:i,shouldReduceMotion:s}){let n=H[e],r=n.measurement,o="resolved"===i,[l,d]=(0,a.useState)(!1),[c,u]=(0,a.useState)(null),[h,m]=(0,a.useState)(null),[f,g]=(0,a.useState)(!1),[x,v]=(0,a.useState)(!1),b=(0,a.useRef)(null),j=(0,a.useRef)(null),y=(0,a.useRef)(null),N=r?`${n.thought} \xb7 ${r.result}`:n.thought,w=`${_.default.capturedIngredient} ${n.compactRaw?_.default.capturedIngredientCompact:""}`,S=`${_.default.thoughtIsland} flex items-center justify-center overflow-hidden text-center`,k=`${_.default.islandText} whitespace-nowrap font-body font-semibold leading-none ${r?"text-[1.1rem] sm:text-[1.25rem]":"text-[1.35rem] sm:text-[1.45rem]"}`,C={marginRight:9,width:ei[n.resultIndicator]};return((0,a.useLayoutEffect)(()=>{let e=!1,t=()=>{if(e)return;let t=b.current?.getBoundingClientRect().width??0,a=j.current?.getBoundingClientRect().width??0,i=y.current?.getBoundingClientRect().width??0,s=Math.max(14,window.innerWidth-32),r=ei[n.resultIndicator]+9,o=Math.ceil(Math.max(t+24,a));u(Math.min(s,o)),m(Math.min(s,Math.ceil(Math.max(o+r,i))))};t(),document.fonts.ready.then(t);let a=new ResizeObserver(t);return b.current&&a.observe(b.current),j.current&&a.observe(j.current),y.current&&a.observe(y.current),window.addEventListener("resize",t),()=>{e=!0,a.disconnect(),window.removeEventListener("resize",t)}},[n.input,n.resultIndicator,n.thought,N]),(0,a.useEffect)(()=>
2{if(!o||s){d(!1),g(!1),v(!1);return}let e=window.setTimeout(()=>{g(!0),"equals"===n.resultIndicator&&v(!0)},760);return()=>window.clearTimeout(e)},[n.resultIndicator,e,o,s]),s)?(0,t.jsx)("div",{className:_.default.thoughtSequence,children:(0,t.jsx)("div",{className:_.default.thoughtStack,children:(0,t.jsx)("div",{className:S,children:(0,t.jsxs)("span",{className:"flex items-center px-5",children:[(0,t.jsx)("span",{className:_.default.islandIndicatorSlot,style:C,children:(0,t.jsx)(es,{animated:!1,type:n.resultIndicator})}),(0,t.jsx)("p",{className:k,children:N})]})})})}):(0,t.jsx)("div",{className:_.default.thoughtSequence,children:(0,t.jsxs)("div",{className:_.default.thoughtStack,children:[(0,t.jsx)("span",{ref:b,"aria-hidden":"true",className:`${w} ${_.default.thoughtMeasure}`,children:n.input}),(0,t.jsx)("div",{ref:j,"aria-hidden":"true",className:`${S} ${_.default.thoughtMeasure}`,children:(0,t.jsx)("span",{className:"flex items-center px-5",children:(0,t.jsx)("span",{className:k,children:N})})}),(0,t.jsx)("div",{ref:y,"aria-hidden":"true",className:`${S} ${_.default.thoughtMeasure}`,children:(0,t.jsxs)("span",{className:"flex items-center px-5",children:[(0,t.jsx)("span",{className:_.default.islandIndicatorSlot,style:C}),(0,t.jsx)("span",{className:k,children:N})]})}),r?"rest"===i?null:(0,t.jsx)(el,{className:w,converted:"measurement-convert"===i||o,covered:o,grouping:"measurement-focus"===i||"measurement-convert"===i||o,input:n.input,result:r.result,source:r.source},`measured-${e}-${n.id}`):"capture"===i||o&&!l?(0,t.jsx)(eo,{className:w,shouldReduceMotion:s,text:n.input},`captured-${e}-${n.id}`):null,(0,t.jsx)(G.AnimatePresence,{initial:!1,children:o&&(0,t.jsx)(p.motion.div,{className:S,initial:{width:14},animate:{width:"equals"===n.resultIndicator||f?h??"auto":c??"auto"},exit:{width:14,transition:{duration:.3,ease:[.4,0,1,1]}},transition:{duration:f?.46:.52,ease:[.22,1,.36,1]},onAnimationComplete:()=>{f?"squiggle-arrow"!==n.resultIndicator||x||v(!0):d(!0)},children:(0,t.jsxs)("span",{className:"flex items-center px-5",children:[(0,t.jsx)(p.motion.span,{className:_.default.islandIndicatorSlot,initial:{marginRight:0,width:0},animate:f?C:{marginRight:0,width:0},transition:{duration:.46,ease:[.22,1,.36,1]},children:x&&(0,t.jsx)(es,{animated:!0,type:n.resultIndicator})}),(0,t.jsx)(p.motion.p,{className:k,initial:{opacity:0,y:14},animate:{opacity:1,y:0},transition:{delay:.18,duration:.32,ease:[.25,1,.5,1]},children:N})]})},`island-${n.id}`)})]})})}function ec({forceReducedMotion:e=!1}){let i=(0,S.usePrototypeReducedMotion)(e),[s,n]=(0,a.useState)({phase:"capture",cycleIndex:0});return(0,a.useEffect)(()=>{i&&n({phase:"resolved",cycleIndex:0})},[i]),(0,a.useEffect)(()=>{if(i)return;let e=H[s.cycleIndex],t="capture"===s.phase&&e.measurement?1100:({capture:1950,"measurement-convert":900,"measurement-focus":1e3,resolved:3050,rest:850})[s.phase],a=window.setTimeout(()=>{n(e=>"capture"===e.phase?{...e,phase:H[e.cycleIndex].measurement?"measurement-focus":"resolved"}:"measurement-focus"===e.phase?{...e,phase:"measurement-convert"}:"measurement-convert"===e.phase?{...e,phase:"resolved"}:"resolved"===e.phase?{...e,phase:"rest"}:{...e,phase:"capture",cycleIndex:(e.cycleIndex+1)%H.length})},t);return()=>window.clearTimeout(a)},[s,i]),(0,t.jsx)("div",{className:`${_.default.heroStage} relative left-1/2 w-screen -translate-x-1/2`,children:(0,t.jsx)("div",{role:"img","aria-label":"Ingredient wording from recipes flows into Foodie one example at a time. Foodie recognizes EVOO as extra virgin olive oil, converts a flour quantity to 247.5 grams, understands AP flour as all-purpose flour and coriander as cilantro, and identifies 8 grams of protein in one cup of whole milk. Each result appears in a confirming capsule while a continuous trail of illustrated ingredients flows out of Foodie.",className:"pointer-events-none pb-8",children:(0,t.jsx)("div",{"aria-hidden":"true",children:(0,t.jsxs)("div",{className:`${_.default.heroCanvas} relative min-h-[27rem] lg:min-h-[31rem]`,children:[(0,t.jsx)(ee,{paused:i}),(0,t.jsx)("div",{className:"pointer-events-none absolute inset-y-0 left-1/2 z-20 flex w-0 -translate-x-1/2 items-center justify-center",children:(0,t.jsxs)("div",{className:_.default.heroFoodieStack,children:[(0,t.jsx)(ed,{cycleIndex:s.cycleIndex,phase:s.phase,shouldReduceMotion:i}),(0,t.jsx)(et,{shouldReduceMotion:i})]})}),(0,t.jsx)(ea,{paused:i})]})})})})}let eu=["olive-oil","milk","flour-scoop","flour-sack","carrot"],eh=["soft","companion","sticker"],ep={"olive-oil":"Olive oil",milk:"Milk","flour-scoop":"Flour scoop","flour-sack":"Flour sack",carrot:"Carrot"},em={soft:"Soft object",companion:"Foodie friend",sticker:"Sticker outline"},ef="#6c3b18",eg="#fef8e4",ex="#4caf50",ev="#e79613",eb="#f5b22e",ej="#fdc853";function ey({mouthY:e,scale:a=1,x:i,y:s}){return(0,t.jsxs)("g",{transform:`translate(${i} ${s}) scale(${a})`,children:[(0,t.jsx)("ellipse",{cx:"-7.5",cy:"0",rx:"7",ry:"8.5",fill:ef}),(0,t.jsx)("ellipse",{cx:"7.5",cy:"0",rx:"7",ry:"8.5",fill:ef}),(0,t.jsx)("circle",{cx:"-5.5",cy:"-1.5",r:"3.2",fill:eg}),(0,t.jsx)("circle",{cx:"9.5",cy:"-1.5",r:"3.2",fill:eg}),(0,t.jsx)("path",{d:`M-5 ${e} C-1 ${e+4} 4 ${e+4} 8 ${e}`,fill:"none",stroke:ef,strokeLinecap:"round",strokeWidth:"2.6"})]})}function e_({children:e,label:a}){return(0,t.jsx)("svg",{"aria-hidden":!a||void 0,"aria-label":a,focusable:"false",role:a?"img":void 0,viewB
2ox:"0 0 96 96",className:"h-full w-full",children:e})}function eN({style:e}){let a="sticker"===e?ef:"none";return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("path",{d:"M38 14h20v16c0 5 14 12 14 26v21c0 6-5 10-11 10H35c-6 0-11-4-11-10V56c0-14 14-21 14-26V14Z",fill:eg,stroke:a,strokeLinejoin:"round",strokeWidth:"3"}),(0,t.jsx)("path",{d:"M27 51c9-4 15 2 23-1 8-3 13 2 19-1v28c0 4-3 7-8 7H35c-5 0-8-3-8-7V51Z",fill:ej}),(0,t.jsx)("path",{d:"M59 52c6 7 7 17 4 27",fill:"none",stroke:ev,strokeLinecap:"round",strokeWidth:"5"}),(0,t.jsx)("path",{d:"M35 12h26v11H35z",fill:eb,stroke:a,strokeLinejoin:"round",strokeWidth:"3"}),(0,t.jsx)("path",{d:"M59 31c9-8 17-5 19 4-8 3-15 1-19-4Z",fill:ex,stroke:a,strokeLinejoin:"round",strokeWidth:"2.5"}),(0,t.jsx)("path",{d:"M32 43c-3 5-4 11-4 18",fill:"none",stroke:eb,strokeLinecap:"round",strokeWidth:"3"}),"companion"===e&&(0,t.jsx)(ey,{mouthY:10,scale:.68,x:48,y:62})]})}function ew({style:e}){let a="sticker"===e?ef:"none";return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("path",{d:"M36 16h24v15c0 5 11 11 11 22v24c0 6-5 10-11 10H36c-6 0-11-4-11-10V53c0-11 11-17 11-22V16Z",fill:eg,stroke:a,strokeLinejoin:"round",strokeWidth:"3"}),(0,t.jsx)("path",{d:"M28 52c8 4 15-3 22 0 8 3 12 0 18-2v27c0 4-3 7-8 7H36c-5 0-8-3-8-7V52Z",fill:"#e7decf"}),(0,t.jsx)("path",{d:"M37 12h22c3 0 5 2 5 5v5H32v-5c0-3 2-5 5-5Z",fill:ej,stroke:a,strokeLinejoin:"round",strokeWidth:"3"}),(0,t.jsx)("path",{d:"M31 47c-3 6-3 13-3 22",fill:"none",stroke:eb,strokeLinecap:"round",strokeWidth:"3.5"}),(0,t.jsx)("path",{d:"M62 54c2 7 2 15 0 23",fill:"none",stroke:eg,strokeLinecap:"round",strokeWidth:"4"}),"companion"===e&&(0,t.jsx)(ey,{mouthY:10,scale:.65,x:48,y:63})]})}function eS({style:e}){let a="sticker"===e,i=a?ef:"none";return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("path",{d:"M20 55c2-17 13-29 29-29 15 0 26 12 28 29H20Z",fill:eg,stroke:i,strokeLinejoin:"round",strokeWidth:"3"}),(0,t.jsx)("circle",{cx:"31",cy:"29",r:"3.5",fill:"#e7decf"}),(0,t.jsx)("circle",{cx:"66",cy:"31",r:"4.5",fill:"#e7decf"}),(0,t.jsx)("circle",{cx:"75",cy:"39",r:"2.5",fill:"#e7decf"}),(0,t.jsx)("path",{d:"M17 53h62l-7 25c-1 6-7 10-13 10H37c-6 0-12-4-13-10l-7-25Z",fill:ej,stroke:i,strokeLinejoin:"round",strokeWidth:"3"}),(0,t.jsx)("path",{d:"M26 71c12 7 31 7 44 0l-2 8c-1 4-5 6-9 6H37c-4 0-8-2-9-6l-2-8Z",fill:ev}),(0,t.jsx)("path",{d:"m67 34 15-14",fill:"none",stroke:ef,strokeLinecap:"round",strokeWidth:a?5:6}),(0,t.jsx)("path",{d:"m77 16 8 8",fill:"none",stroke:eb,strokeLinecap:"round",strokeWidth:"8"}),"companion"===e&&(0,t.jsx)(ey,{mouthY:9,scale:.58,x:46,y:67})]})}function ek({style:e}){return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("path",{d:"M32 14c10 4 21 4 32 0l-4 17c10 9 15 23 14 39-1 11-9 18-20 18H42c-11 0-19-7-20-18-1-16 4-30 14-39l-4-17Z",fill:eg,stroke:"sticker"===e?ef:"none",strokeLinejoin:"round",strokeWidth:"3"}),(0,t.jsx)("path",{d:"M34 16c9 3 19 3 28 0l-3 12c-8 3-15 3-22 0l-3-12Z",fill:eb}),(0,t.jsx)("path",{d:"M36 30c8 4 16 4 24 0",fill:"none",stroke:ev,strokeLinecap:"round",strokeWidth:"4"}),(0,t.jsx)("path",{d:"M29 62c13 5 25 5 39 0v10c0 8-6 12-14 12H42c-8 0-14-4-14-12l1-10Z",fill:ej}),(0,t.jsx)("path",{d:"M32 44c-4 7-5 16-4 25",fill:"none",stroke:eb,strokeLinecap:"round",strokeWidth:"3"}),"companion"===e&&(0,t.jsx)(ey,{mouthY:10,scale:.65,x:48,y:59})]})}function eC({style:e}){let a="sticker"===e?ef:"none";return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("path",{d:"M46 28c-3-13 2-20 12-22 4 10-1 19-12 22Zm4 0c8-12 17-14 25-7-4 11-14 14-25 7Zm-7 1c-12-6-15-15-9-23 11 3 15 13 9 23Z",fill:ex,stroke:a,strokeLinejoin:"round",strokeWidth:"2.5"}),(0,t.jsx)("path",{d:"M28 35c12-10 29-10 40 0-2 21-9 38-20 54C37 73 30 56 28 35Z",fill:ej,stroke:a,strokeLinejoin:"round",strokeWidth:"3"}),(0,t.jsx)("path",{d:"M58 34c-1 20-6 36-14 49",fill:"none",stroke:ev,strokeLinecap:"round",strokeWidth:"6"}),(0,t.jsx)("path",{d:"m34 48 9 3m-6 12 9 3m4-17 8 3m-8 13 7 2",fill:"none",stroke:eb,strokeLinecap:"round",strokeWidth:"2.5"}),"companion"===e&&(0,t.jsx)(ey,{mouthY:9,scale:.58,x:46,y:49})]})}function eR({className:e,label:a,style:i,subject:s}){let n={"olive-oil":(0,t.jsx)(eN,{style:i}),milk:(0,t.jsx)(ew,{style:i}),"flour-scoop":(0,t.jsx)(eS,{style:i}),"flour-sack":(0,t.jsx)(ek,{style:i}),carrot:(0,t.jsx)(eC,{style:i})}[s];return(0,t.jsx)("span",{className:e,children:(0,t.jsx)(e_,{label:a,children:n})})}let eI=[...eu,...eu],e$=[{label:"96",size:"6rem"},{label:"64",size:"4rem"},{label:"40",size:"2.5rem"}];function eT({style:e}){return(0,t.jsxs)("section",{"aria-labelledby":`ingredient-style-${e}`,className:_.default.ingredientLabVariant,children:[(0,t.jsxs)("div",{className:_.default.ingredientLabVariantHeading,children:[(0,t.jsxs)("p",{className:_.default.ingredientLabVariantNumber,children:["0",eh.indexOf(e)+1]}),(0,t.jsx)("h2",{id:`ingredient-style-${e}`,className:"font-display text-2xl font-semibold",children:em[e]})]}),(0,t.jsx)("div",{className:_.default.ingredientLabSubjectList,children:eu.map(a=>(0,t.jsxs)("figure",{className:_.default.ingredientLabSubject,children:[(0,t.jsx)("figcaption",{className:"text-sm font-semibold text-foodie-brown/80",children:ep[a]}),(0,t.jsx)("div",{className:_.default.ingredientLabSizeRow,children:e$.map(i=>(0,t.jsxs)("div",{className:_.default.ingredientLabSizeSample,style:{"--ingredient-lab-sample-size":i.size},children:[(0,t.jsx)(eR,{label:`${em[e]} ${ep[a]} at ${i.label} pixels`,style:e,subject:a,className:_.default.ingredientLabArtwork}),(0,t.jsx)("span",{className:"text-[0.65rem] font-bold tracking-[0.08em] text-foodie-brown/45",children:i.label})]},i.label))})]},a))})]})}function eE({forceReducedMotion:e,selectedStyle:a}){return(0,t.jsxs)("section",{"aria-labelledby":"ingredient-lab-rail-heading",className:_.default.ingredientLabRailSection,children:[(0,t.jsx)("div",{className:"site-padding",children:(0,t.jsxs)("div",{className:"mx-auto max-w-6xl",children:[(0,t.jsx)("p",{className:"text-xs font-bold uppercase tracking-[0.2em] text-foodie-brown/55",children:"Selected output treatment"}),(0,t.jsxs)("h2",{id:"ingredient-lab-rail-heading",className:"mt-2 font-display text-3xl font-semibold sm:text-4xl",children:[em[a]," in motion"]})]})}),(0,t.jsx)("div",{"aria-hidden":"true",className:_.default.ingredientLabRailViewport,children:(0,t.jsx)("div",{className:`${_.default.ingredientLabRailTrack} ${e?_.default.ingredientLabRailTrackPaused:""}`,children:eI.map((e,i)=>(0,t.jsx)(eR,{style:a,subject:e,className:_.default.ingredientLabRailArtwork},`${e}-${i}`))})})]})}function eP({forceReducedMotion:e=!1,selectedStyle:a}){return(0,t.jsxs)("div",{className:_.default.ingredientLab,children:[(0,t.jsx)("section",{"aria-labelledby":"ingredient-lab-heading",className:"site-padding pb-12 pt-8 sm:pb-16 sm:pt-12",children:(0,t.jsxs)("div",{className:"mx-auto max-w-6xl",children:[(0,t.jsxs)("div",{className:"max-w-3xl",children:[(0,t.jsx)("p",{className:"text-xs font-bold uppercase tracking-[0.2em] text-foodie-burgundy",children:"Prototype only"}),(0,t.jsx)("h1",{id:"ingredient-lab-heading",className:"mt-4 font-display text-[clamp(2.5rem,6vw,4.75rem)] font-semibold leading-[0.98] tracking-[-0.04em]",children:"Ingredients in Foodie's visual language."}),(0,t.jsx)("p",{className:"mt-4 max-w-2xl text-lg leading-relaxed text-foodie-brown/80 sm:text-xl",children:"Five recognizable ingredients, three treatments, and one transparent output rail for judging shape, personality, and small-size clarity."})]}),(0,t.jsx)("div",{className:_.default.ingredientLabGrid,children:eh.map(e=>(0,t.jsx)(eT,{style:e},e))})]})}),(0,t.jsx)(eE,{forceReducedMotion:e,selectedStyle:a}),(0,t.jsxs)("nav",{"aria-label":"Ingredient illustration prototype views",className:_.default.ingredientLabSwitcher,children:[(0,t.jsx)(i.default,{href:"/homepage-v1-prototype",className:_.default.ingredientLabSwitcherLink,children:"Homepage"}),(0,t.jsx)("span",{"aria-hidden":"true",className:_.default.ingredientLabSwitcherDivider}),eh.map(s=>(0,t.jsx)(i.default,{href:`/homepage-v1-prototype?ingredient-options=1&ingredient-style=${s}${e?"&motion=reduce":""}`,"aria-current":a===s?"page":void 0,className:`${_.default.ingredientLabSwitcherLink} ${a===s?_.default.ingredientLabSwitcherLinkActive:""}`,children:em[s]},s))]})]})}var eM=e.i(555436),eL=e.i(868127);let eG="all-purpose flour",eH=Math.min(3,W.length),eF={hidden:{opacity:0}
2,visible:{opacity:1,transition:{delayChildren:.1,staggerChildren:.07}},static:{opacity:1,transition:{duration:0}}},eW={hidden:{opacity:0,y:20},visible:{opacity:1,y:0,transition:{duration:.36}},static:{opacity:1,y:0,transition:{duration:0}}},eA={hidden:{opacity:0,scale:0},visible:{opacity:1,scale:1,transition:{damping:15,stiffness:400,type:"spring"}},static:{opacity:1,scale:1,transition:{duration:0}}},eV={instagram:{className:_.default.sourceIconInstagram,icon:(0,t.jsx)(eL.SiInstagram,{"aria-hidden":"true"}),label:"Instagram"},tiktok:{className:_.default.sourceIconTikTok,icon:(0,t.jsx)(eL.SiTiktok,{"aria-hidden":"true"}),label:"TikTok"},facebook:{className:_.default.sourceIconFacebook,icon:(0,t.jsx)(eL.SiFacebook,{"aria-hidden":"true"}),label:"Facebook"}};function ez({compact:e=!1,forceReducedMotion:i=!1}){let s=(0,a.useRef)(null),n=w(s),r=(0,S.usePrototypeReducedMotion)(i),[o,l]=(0,a.useState)(i?eG.length:0),[d,c]=(0,a.useState)(i);(0,a.useEffect)(()=>{if(r){l(eG.length),c(!0);return}if(!n||o>=eG.length)return;let e=window.setTimeout(()=>{l(e=>Math.min(e+1,eG.length))},0===o?100:34);return()=>window.clearTimeout(e)},[o,n,r]);let u=r||o>=eG.length,h=r?eG:eG.slice(0,o),m=!r&&n;return(0,t.jsx)("div",{ref:s,className:e?`${_.default.proofStage} ${_.default.proofStageCompact} ${_.default.ingredientProofCard}`:`${_.default.proofStage} relative left-1/2 mt-12 w-screen -translate-x-1/2 py-10 sm:py-14 lg:mt-16 lg:py-20`,children:(0,t.jsx)("div",{className:e?_.default.ingredientProofGridCompact:"mx-auto grid max-w-[90rem] gap-12 px-6 lg:grid-cols-[0.9fr_1.1fr] lg:gap-16 lg:px-10",children:(0,t.jsxs)("article",{className:"min-w-0 font-body",children:[(0,t.jsxs)("div",{"aria-label":`Ingredient search: ${eG}`,className:"flex min-h-12 items-center gap-3 rounded-xl border-2 border-foodie-brown bg-white px-4 shadow-sm",children:[(0,t.jsx)(eM.Search,{"aria-hidden":"true",className:"h-5 w-5 text-foodie-brown/45"}),(0,t.jsxs)("span",{className:"flex min-w-0 flex-1 items-center gap-4",children:[(0,t.jsxs)("span",{"aria-hidden":"true",className:"relative grid min-w-0 py-3 text-base font-semibold text-foodie-brown",children:[(0,t.jsx)("span",{className:"invisible col-start-1 row-start-1",children:eG}),(0,t.jsxs)("span",{className:"col-start-1 row-start-1",children:[h,m?(0,t.jsx)("span",{className:_.default.ingredientSearchCursor}):null]})]}),(0,t.jsxs)(p.motion.span,{"aria-hidden":!r&&!u,className:"shrink-0 rounded-full bg-foodie-beige px-2.5 py-1 text-xs font-bold tabular-nums text-foodie-brown/75",animate:r?"static":u?"visible":"hidden",initial:r?"static":"hidden",onAnimationComplete:e=>{"visible"===e&&c(!0)},style:{transformOrigin:"left center"},variants:eA,children:[(0,t.jsxs)("span",{className:_.default.ingredientResultsCountCompact,children:[eH," results"]}),(0,t.jsxs)("span",{className:_.default.ingredientResultsCountExpanded,children:[W.length," results"]})]})]})]}),(0,t.jsx)(p.motion.div,{className:`${_.default.ingredientRecipeGrid} mt-4 grid gap-3`,animate:r?"static":d?"visible":"hidden",initial:r?"static":"hidden",variants:eF,children:W.map(e=>{let a=eV[e.source];return(0,t.jsxs)(p.motion.article,{className:`${_.default.ingredientRecipeCard} relative flex min-h-32 flex-col rounded-2xl border-2 border-foodie-brown bg-white p-4 shadow-sm`,variants:eW,children:[(0,t.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col pt-1",children:[(0,t.jsx)("h3",{className:"pr-7 font-body text-xs font-semibold leading-tight text-foodie-brown/60",children:e.title}),(0,t.jsx)("p",{className:`${_.default.ingredientRecipeWording} mt-2 pr-7 font-body text-lg font-extrabold leading-tight tracking-[-0.015em] text-foodie-brown`,children:e.originalWording}),(0,t.jsxs)("span",{"aria-hidden":"true",className:_.default.ingredientRecipeRules,children:[(0,t.jsx)("span",{}),(0,t.jsx)("span",{}),(0,t.jsx)("span",{})]})]}),(0,t.jsxs)("span",{className:`${_.default.ingredientRecipeSourceIcon} ${a.className}`,children:[a.icon,(0,t.jsxs)("span",{className:"sr-only",children:["Recipe imported from ",a.label]})]})]},e.title)})})]})})})}let eO=["milk","240g","8g of protein"];function eB({forceReducedMotion:e=!1}){let i=(0,a.useRef)(null),s=w(i),n=(0,S.usePrototypeReducedMotion)(e),[r,o]=(0,a.useState)(e?eO.length:0);return(0,a.useEffect)(()=>
2{if(n)return void o(eO.length);if(!s)return;let e=eO.map((e,t)=>window.setTimeout(()=>o(t+1),140+420*t));return()=>e.forEach(window.clearTimeout)},[s,n]),(0,t.jsx)("div",{ref:i,"aria-label":"Illustrative ingredient understanding example: one cup of whole milk is recognized as milk, measured as 240 grams, with 8 grams of protein.",className:`${_.default.proofStage} ${_.default.proofStageCompact} ${_.default.ingredientProofCard} ${_.default.ingredientRecognitionProof}`,role:"img",children:(0,t.jsxs)("div",{"aria-hidden":"true",className:_.default.ingredientRecognitionPaper,children:[(0,t.jsx)("p",{className:_.default.ingredientRecognitionInput,children:"1 cup whole milk"}),(0,t.jsx)("div",{className:_.default.ingredientRecognitionSteps,children:eO.map((e,a)=>{let i=0===a?"squiggle-arrow":"equals";return(0,t.jsx)("p",{className:_.default.ingredientRecognitionStep,children:a<r&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:_.default.ingredientRecognitionIndicator,"data-ingredient-indicator":i,children:(0,t.jsx)(es,{animated:!n,type:i})}),(0,t.jsx)(p.motion.span,{initial:!n&&{opacity:0,y:14},animate:{opacity:1,y:0},transition:{delay:.08*!n,duration:.28*!n,ease:[.25,1,.5,1]},children:e})]})},e)})})]})})}var eD=e.i(215652),eX=e.i(612891);function eY({open:e,onOpenChange:a,onProcessingStart:i}){return(0,t.jsx)(eD.default,{open:e,onOpenChange:a,title:"Import your first recipe",children:(0,t.jsx)("div",{className:"flex min-h-[380px] flex-col sm:min-h-[357px]",children:(0,t.jsx)(eX.default,{onClose:()=>a(!1),onNavigate:e=>window.location.assign(e),onProcessingStart:i})})})}var eZ=e.i(390175),eq=e.i(618566),eU=e.i(818344),eK=e.i(656135);let eJ="foodie:homepage-import-after-auth";function eQ(e,t){return(0,c.track)("Homepage Import CTA Clicked",{location:e,action:t})}function e0(e,t){console.error("Unable to persist the homepage import sign-in intent:",e),(0,eK.captureError)(e,{flow:"recipe-import",operation:t,surface:"client"})}function e1(){try{localStorage.removeItem(eJ)}catch(e){e0(e,"homepage-import-auth-intent-clear")}}var e2=e.i(602307);let e5=[{platform:"facebook",creator:"@dougdoesdelicious",recipeTitle:"Thai chili lettuce wraps",sourceStartSeconds:0,durationSeconds:15.8,video:{src:"/homepage/video-watching/lettuce-wraps-broll.mp4",poster:"/homepage/video-watching/lettuce-wraps-broll.webp"},evidence:[{ingredientId:"minced-meat",kind:"shown",atSeconds:8.8,text:"minced meat"},{ingredientId:"lime",kind:"shown",atSeconds:11.9,text:"lime zest"},{ingredientId:"herbs",kind:"shown",atSeconds:13.2,text:"fresh herbs"}]},{platform:"instagram",creator:"@dougdoesdelicious",recipeTitle:"Clam Dashi Udon",sourceStartSeconds:0,durationSeconds:20,video:{src:"/homepage/video-watching/clam-noodles-broll.mp4",poster:"/homepage/video-watching/clam-noodles-broll.webp"},evidence:[{ingredientId:"clams",kind:"shown",atSeconds:4.1,text:"clams"},{ingredientId:"lemon",kind:"shown",atSeconds:12.5,text:"lemon"},{ingredientId:"noodles",kind:"shown",atSeconds:14.2,text:"noodles"}]},{...V,platform:"tiktok"},{platform:"youtube",creator:"@dougdoesdelicious",recipeTitle:"Linguini alle vongole",sourceStartSeconds:0,durationSeconds:13.9,video:{src:"/homepage/video-watching/linguini-vongole-broll.mp4",poster:"/homepage/video-watching/linguini-vongole-broll.webp"},evidence:[{ingredientId:"clams",kind:"shown",atSeconds:.6,text:"clams"},{ingredientId:"parsley",kind:"shown",atSeconds:1.8,text:"parsley"},{ingredientId:"garlic",kind:"shown",atSeconds:6.5,text:"garlic"},{ingredientId:"linguini",kind:"shown",atSeconds:10,text:"linguini"}]}],e4=[{number:3,text:"Place chicken thighs on top of the rice.",heroText:"Place chicken thighs on top of the rice.",start:8,end:9.9},{number:5,text:"Start by adding ginger, green onion and salt into a bowl.",heroText:"Ginger, green onion and salt into a bowl.",start:10,end:11.9},{number:7,text:"Pour hot oil into the bowl with the rest of the ginger scallion sauce and mix.",heroText:"Pour hot oil into the bowl and mix.",start:12,end:14.9}],e3=[{...e5[2],importScenario:"No written recipe",recipe:{videoStepCount:7,steps:e4,stepDockSeconds:6.8,pullAtSeconds:15,savedImage:"/homepage/video-watching/hainanese-chicken-rice-saved.jpg",stepPoster:"/homepage/video-watching/hainanese-step-chicken-broll.webp"}},{...e5[3],importScenario:"Recipe on my website",recipe:{videoStepCount:5,steps:[{number:2,text:"Finely chop the garlic.",start:6.3,end:7.3},{number:3,text:"Add the clams to the pan.",start:7.3,end:9.6},{number:4,text:"Toss the linguini with the clams.",start:9.6,end:11}],stepDockSeconds:5.1,pullAtSeconds:11,savedImage:"/homepage/video-watching/linguini-vongole-saved.jpg",stepPoster:"/homepage/video-watching/linguini-vongole-step.jpg"}},{...e5[0],importScenario:"Recipe in bio",recipe:{videoStepCount:8,steps:[{number:2,text:"Stir the dressing together.",start:7.7,end:8.8},{number:3,text:"Add the aromatics to the minced meat.",start:8.8,end:11.9},{number:4,text:"Add lime zest and fresh herbs.",start:11.9,end:13.6}],stepDockSeconds:6.5,pullAtSeconds:13.6,savedImage:"/homepage/video-watching/lettuce-wraps-saved.jpg",stepPoster:"/homepage/video-watching/lettuce-wraps-step.jpg"}},{...e5[1],importScenario:"Comment for the recipe",recipe:{videoStepCount:6,steps:[{number:2,text:"Steam the clams until they open.",start:6,end:10},{number:3,text:"Add the green onions.",start:10,end:12.5},{number:4,text:"Finish with lemon juice.",start:12.5,end:16}],stepDockSeconds:4.8,pullAtSeconds:16,savedImage:"/homepage/video-watching/clam-noodles-saved.jpg",stepPoster:"/homepage/video-watching/clam-noodles-step.jpg"}}];function e6(e,t,a,i){let s=e.recipe,n=!!s,r=n&&(a||i)?i||t>=s.pullAtSeconds?"saved":t>=s.stepDockSeconds?"step":"watching":"watching";return{enabled:n,phase:r,step:i?s?.steps[0]:[...s?.steps??[]].reverse().find(e=>t>=e.start)??s?.steps[0]}}e.i(105369);var e8=e.i(965566),e9=e.i(197989),e7=e.i(145161);
2function te(e,t){[...t].reverse().forEach(a=>{let i=e.getVariant(a);i&&(0,e9.setTarget)(e,i),e.variantChildren&&e.variantChildren.forEach(e=>{te(e,t)})})}function tt(){let e=!1,t=new Set,a={subscribe:e=>(t.add(e),()=>void t.delete(e)),start(a,i){(0,e8.invariant)(e,"controls.start() should only be called after a component has mounted. Consider calling within a useEffect hook.");let s=[];return t.forEach(e=>{s.push((0,e7.animateVisualElement)(e,a,{transitionOverride:i}))}),Promise.all(s)},set:a=>((0,e8.invariant)(e,"controls.set() should only be called after a component has mounted. Consider calling within a useEffect hook."),t.forEach(e=>{var t,i;t=e,Array.isArray(i=a)?te(t,i):"string"==typeof i?te(t,[i]):(0,e9.setTarget)(t,i)})),stop(){t.forEach(e=>{e.values.forEach(e=>e.stop())})},mount:()=>(e=!0,()=>{e=!1,a.stop()})};return a}var ta=e.i(947414),ti=e.i(674008),ts=e.i(636372),tn=e.i(462446);function tr(){return(0,t.jsx)("svg",{viewBox:"0 0 12 12",fill:"currentColor","aria-hidden":"true",children:(0,t.jsx)("path",{d:"M2 1.4c0-.7.7-1 1.3-.7l7 4.5c.6.4.6 1.2 0 1.6l-7 4.5c-.6.3-1.3 0-1.3-.7z"})})}function to({count:e,reducedMotion:i,isActive:s=!0,onCountTick:n}){let r,o=(0,a.useRef)(null),l=(0,N.useInView)(o,{amount:1})&&s,d=(0,a.useRef)(!1),c=(0,a.useRef)(!1),u=(r=(0,ta.useConstant)(tt),(0,ti.useIsomorphicLayoutEffect)(r.mount,[]),r),[{phase:h,number:m},f]=(0,a.useState)({phase:"waiting",number:0}),g=Math.min(110,900/e),x=g*e;(0,a.useEffect)(()=>{if(i||!l&&d.current){c.current=!0,f({phase:"settled",number:e});return}if(!l||c.current)return;d.current=!0,f({phase:"entering",number:0});let t=[],a=(e,a)=>{t.push(setTimeout(a,e))};a(550,()=>f({phase:"counting",number:0}));for(let t=1;t<=e;t++)a(550+g*t,()=>{f({phase:t===e?"finale":"counting",number:t}),n?.(t===e)});return a(550+x+600,()=>f({phase:"fading",number:e})),a(550+x+600+800,()=>{c.current=!0,f({phase:"settled",number:e})}),()=>t.forEach(clearTimeout)},[e,x,n,i,g,l]),(0,a.useEffect)(()=>{let e=!1;return i||"settled"===h?(u.stop(),u.set({scale:1,rotate:0})):m>0&&("counting"===h||"finale"===h)&&(async()=>{await u.start({scale:1.07,rotate:m%2?.5:-.5,transition:{duration:.05}}),e||await u.start({scale:1,rotate:0,transition:{scale:{type:"spring",duration:.15,bounce:0},rotate:{type:"spring",duration:.2,bounce:0}}})})(),()=>{e=!0}},[u,m,h,i]);let v=i||"settled"===h,b=!i&&"waiting"===h,j=v?e:m;return(0,t.jsxs)("span",{ref:o,className:tn.default.countSlot,"data-count-phase":v?"settled":h,children:[(0,t.jsxs)("span",{className:"sr-only",children:[e," video steps"]}),(0,t.jsx)(p.motion.span,{"aria-hidden":"true",className:tn.default.countScale,initial:!1,animate:{scale:b?.6:v?1:1.25,opacity:+!b},transition:i?{duration:0}:v?ts.STEP_CLIP_DISCLOSURE:{type:"spring",duration:.5,bounce:.4},children:(0,t.jsxs)(p.motion.span,{className:tn.default.countFace,animate:u,children:[(0,t.jsx)(p.motion.span,{className:tn.default.gold,initial:!1,animate:{opacity:!v&&["counting","finale"].includes(h)?1:0},transition:{duration:i?0:"fading"===h?.8:x/1e3,ease:"fading"===h?"easeInOut":"easeIn"}}),(0,t.jsxs)("span",{className:tn.default.countContents,children:[(0,t.jsx)("span",{className:tn.default.countGlyph,children:(0,t.jsx)(tr,{})}),(0,t.jsx)("span",{className:tn.default.numberSlot,children:(0,t.jsx)("span",{className:!v&&j>0?tn.default.rollingNumber:void 0,children:j},j)}),(0,t.jsx)("span",{children:"video steps"})]}),"finale"===h&&!i&&(0,t.jsx)("span",{className:tn.default.sheen})]})})]})}function tl(e){return e.webkitSupportsPresentationMode?.("inline")!==!1}let td=e4[0].start-V.sourceStartSeconds,tc=e4[e4.length-1].end-V.sourceStartSeconds;function tu(e){e.play().catch(()=>{})}function th({forceReducedMotion:e,isActive:i=!0,onCountTick:s,isCountVisible:n=!0,countReplayKey:r=0}){let o=(0,a.useRef)(null),l=(0,a.useRef)(null),d=(0,N.useInView)(o,{amount:.35}),c=(0,N.useInView)(o,{once:!0,margin:"600px"}),u=(0,S.usePrototypeReducedMotion)(e),[h,p]=(0,a.useState)(0),m=e4[u?0:h],f=i&&d&&!u,g=c&&!u;(0,a.useEffect)(()=>{let e=l.current;if(!e)return;if(!f||!tl(e))return void e.pause();let t=()=>{(e.currentTime<td||e.currentTime>=tc)&&(e.currentTime=td,p(0)),e.playbackRate=1,tu(e)};return e.readyState>=1?t():e.addEventListener("loadedmetadata",t,{once:!0}),()=>{e.removeEventListener("loadedmetadata",t),e.pause()}},[f]);let x=()=>{let e=l.current;if(!e||!f||e.seeking)return;if(e.currentTime>=tc){let t=e.ended;e.currentTime=td,p(0),t&&tu(e);return}let t=e.currentTime+V.sourceStartSeconds,a=e4.findIndex(e=>e.start>t);p(-1===a?e4.length-1:Math.max(0,a-1))},v=()=>{let e=l.current;e&&f&&(e.style.display="none",e.offsetHeight,e.style.removeProperty("display"))};return(0,t.jsx)("div",{ref:o,className:e2.default.proof,role:"group","aria-label":"Hainanese chicken rice directions paired with matching video moments: place chicken on the rice, prepare ginger and green onion, and pour hot oil over the aromatics.","data-vi
2deo-step-proof":!0,"data-reduced-motion":u,children:(0,t.jsxs)("div",{className:e2.default.proofContent,children:[(0,t.jsxs)("div",{className:e2.default.videoColumn,children:[(0,t.jsx)(to,{count:e3[0].recipe.videoStepCount,reducedMotion:u,isActive:i&&n,onCountTick:s},r),(0,t.jsxs)("div",{className:e2.default.preview,children:[(0,t.jsx)("video",{ref:l,src:g?V.video?.src:void 0,poster:"/homepage/video-watching/hainanese-step-chicken-broll.webp","aria-label":`Video for step ${m.number}`,muted:!0,playsInline:!0,preload:"metadata",onTimeUpdate:x,onEnded:x,onSeeked:v,onPlaying:v}),(0,t.jsxs)("span",{className:e2.default.videoLabel,children:["Step ",m.number]})]})]}),(0,t.jsx)("div",{className:e2.default.directions,children:(0,t.jsx)("ol",{className:e2.default.steps,"aria-label":"Selected recipe steps; intermediate steps omitted",children:e4.map((e,a)=>(0,t.jsxs)("li",{value:e.number,className:e2.default.step,"data-active":e.number===m.number,children:[(0,t.jsxs)("span",{className:e2.default.stepLabel,children:["Step ",e.number]}),(0,t.jsx)("p",{children:e.text}),a<e4.length-1&&(0,t.jsx)("span",{className:e2.default.omittedSteps,"aria-hidden":"true",children:"···"})]},e.number))})})]})})}function tp({forceReducedMotion:e=!1}){return(0,t.jsx)("section",{className:`${e2.default.section} site-padding`,"aria-labelledby":"video-steps-heading",children:(0,t.jsxs)("div",{className:e2.default.layout,children:[(0,t.jsxs)("div",{className:e2.default.copy,children:[(0,t.jsxs)("h2",{id:"video-steps-heading",className:"font-display text-[clamp(2rem,3vw,3rem)] font-semibold leading-[1.06] tracking-[-0.025em]",children:["Never rewind a",(0,t.jsx)("br",{}),"recipe video again."]}),(0,t.jsxs)("p",{className:"mt-6 text-pretty text-fluid-body-lg leading-relaxed text-foodie-brown/90",children:["Foodie turns the cooking videos you save into recipes with video built into the directions.",(0,t.jsx)("br",{}),"Tap a video step to watch the exact moment in the original video."]})]}),(0,t.jsx)(th,{forceReducedMotion:e})]})})}var tm=e.i(494329),tf=e.i(497653);let tg={tiktok:{icon:eL.SiTiktok,tile:_.default.sourceIconTikTok},instagram:{icon:eL.SiInstagram,tile:_.default.sourceIconInstagram},facebook:{icon:eL.SiFacebook,tile:_.default.sourceIconFacebook},youtube:{icon:eL.SiYoutube,tile:_.default.sourceIconYoutube}};function tx({platform:e}){let{icon:a,tile:i}=tg[e];return(0,t.jsx)("div",{className:`${_.default.sourceIconTile} ${i} ${tf.default.platformBadge}`,"data-video-source":e,children:(0,t.jsx)(a,{"aria-hidden":"true"})})}function tv({text:e}){return e?(0,t.jsx)("div",{className:tf.default.importAnnotation,"data-video-import-scenario":!0,children:e}):null}function tb({demo:e}){let i=`preview-card-${(0,a.useId)().replaceAll(":","")}`;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("svg",{viewBox:`0 0 ${tm.PHONE_WIDTH} ${tm.PHONE_HEIGHT}`,className:tf.default.previewCard,"data-video-preview-card":!0,"aria-hidden":"true",focusable:"false",children:[(0,t.jsx)("defs",{children:(0,t.jsx)("clipPath",{id:i,children:(0,t.jsx)("rect",{x:tm.SCREEN_X,y:tm.SCREEN_Y,width:tm.SCREEN_WIDTH,height:tm.SCREEN_HEIGHT,rx:tm.SCREEN_RADIUS})})}),(0,t.jsx)("rect",{x:tm.SCREEN_X,y:tm.SCREEN_Y,width:tm.SCREEN_WIDTH,height:tm.SCREEN_HEIGHT,rx:tm.SCREEN_RADIUS,fill:"#f5efe5"}),(0,t.jsx)("g",{clipPath:`url(#${i})`,children:e.video&&(0,t.jsx)("image",{href:e.video.poster,x:tm.SCREEN_X,y:tm.SCREEN_Y,width:tm.SCREEN_WIDTH,height:tm.SCREEN_HEIGHT,preserveAspectRatio:"xMidYMid slice"})})]}),(0,t.jsx)(tx,{platform:e.platform}),(0,t.jsx)(tv,{text:e.importScenario})]})}function tj({demos:e,activeIndex:a,arriving:i,holding:s}){let n=e.slice(1).map((t,i)=>e[(a+i+1)%e.length]),r=s?[...n,e[a]]:n;return(0,t.jsx)("div",{className:tf.default.sources,"data-video-preview-queue":!0,children:r.map((e,a)=>{let s=a===n.length;return(0,t.jsx)("div",{className:tf.default.previewSlot,"data-video-preview":e.platform,"data-queue-position":s?-1:a,"data-arriving":i&&0===a,"data-holding":s,children:(0,t.jsx)(tb,{demo:e})},e.platform)})})}function ty({children:e,screenClipId:i}){let s=(0,a.useRef)(null),[n,r]=(0,a.useState)(0);return(0,a.useLayoutEffect)(()=>{let e=s.current;if(!e)return;let t=new ResizeObserver(([e])=>r(e.contentRect.width/tm.PHONE_WIDTH));return r(parseFloat(getComputedStyle(e).width)/tm.PHONE_WIDTH),t.observe(e),()=>t.disconnect()},[]),(0,t.jsxs)("div",{ref:s,style:{position:"relative",aspectRatio:`${tm.PHONE_WIDTH}/${tm.PHONE_HEIGHT}`},children:[(0,t.jsx)("svg",{viewBox:`0 0 ${tm.PHONE_WIDTH} ${tm.PHONE_HEIGHT}`,className:tf.default.phoneFrame,style:{position:"absolute",inset:0},"aria-hidden":"true",focusable:"false",children:(0,t.jsx)(tm.PrototypePhoneFrame,{screenClipId:i,screenFill:"#050505",children:null})}),(0,t.jsx)("div",{style:{position:"absolute",width:tm.PHONE_WIDTH,height:tm.PHONE_HEIGHT,transform:`scale(${n})`,transformOrigin:"top left"},children:(0,t.jsx)("div",{style:{position:"absolute",left:tm.SCREEN_X,top:tm.SCREEN_Y,width:tm.SCREEN_WIDTH,height:tm.SCREEN_HEIGHT,borderRadius:tm.SCREEN_RADIUS,overflow:"hidden",isolation:"isolate",background:"#050505"},children:e})}),(0,t.jsx)("svg",{viewBox:`0 0 ${tm.PHONE_WIDTH} ${tm.PHONE_HEIGHT}`,style:{position:"absolute",inset:0,width:"100%",height:"100%",pointerEvents:"none"},"aria-hidden":"true",focusable:"false",children:(0,t.jsx)(tm.PrototypePhoneCamera,{})})]})}var t_=e.i(431343),tN=e.i(794651);function tw({demo:e,videoRef:a,hasFrame:i,playId:s,videoSeconds:n,isNearViewport:r,reducedMotion:o,onMediaReady:l}){let{enabled:d,phase:c,step:u}=e6(e,n,i,o),p=d&&o?e.recipe?.stepPoster:e.video?.poster;return(0,t.jsxs)("div",{className:`${tf.default.screen} ${tN.default.screen}`,"data-recipe-phase":"saved"===c?"step":c,children:[e.recipe&&(0,t.jsx)("link",{rel:"preload",as:"image",href:e.recipe.savedImage}),e.recipe&&u&&(0,t.jsxs)("div",{className:tN.default.recipe,"data-vi
2deo-watching-recipe":!0,children:[(0,t.jsxs)("div",{className:tN.default.heading,children:[(0,t.jsx)("p",{className:`${tN.default.title} font-display`,children:e.recipeTitle}),(0,t.jsx)("div",{className:tN.default.metadata,children:(0,t.jsxs)("span",{className:tN.default.videoBadge,children:[(0,t.jsx)(t_.Play,{fill:"currentColor","aria-hidden":"true"}),e.recipe.videoStepCount," video steps"]})})]}),(0,t.jsxs)("div",{className:tN.default.directions,children:[(0,t.jsx)("p",{className:tN.default.sectionLabel,children:"Directions"}),(0,t.jsxs)("div",{className:tN.default.stepCard,"data-recipe-video-step":u.number,children:[(0,t.jsx)("div",{className:tN.default.stepHeading,children:(0,t.jsxs)("span",{children:["Step ",u.number]})}),(0,t.jsx)("p",{className:tN.default.direction,children:u.heroText??u.text},u.number),(0,t.jsx)("div",{className:tN.default.stepPlayerSlot,"data-recipe-player-slot":!0})]})]})]}),(0,t.jsxs)("div",{className:tN.default.player,"data-transforming-player":!0,children:[p&&(0,t.jsx)(h.default,{src:p,alt:"",width:480,height:854,className:tf.default.poster,unoptimized:!0,loading:"eager",onLoad:()=>l(s)}),e.video?(0,t.jsx)("video",{ref:a,className:tf.default.video,"data-ready":i,src:r?e.video.src:void 0,poster:p,muted:!0,loop:!0,playsInline:!0,preload:"none",onAnimationEnd:i?()=>l(s):void 0}):(0,t.jsx)("div",{className:tf.default.videoPlaceholder,children:(0,t.jsx)("span",{children:"Doug's clip"})}),(0,t.jsxs)("div",{className:tf.default.scrubber,"data-video-overlay":!0,children:[(0,t.jsx)("span",{className:tf.default.scrubberFill,style:{width:`${n/e.durationSeconds*100}%`}}),e.evidence.map(a=>(0,t.jsx)("span",{className:tf.default.scrubberMark,"data-reached":n>=a.atSeconds,style:{left:`${a.atSeconds/e.durationSeconds*100}%`}},a.ingredientId))]})]},s)]})}var tS=e.i(44415);function tk({demo:e,previous:a=!1,animate:i=!0}){return e.recipe?(0,t.jsx)("div",{className:tS.default.output,"data-saved-recipe":e.platform,"data-saved-position":a?"previous":"current","data-animate":i,children:(0,t.jsxs)("div",{className:tS.default.card,children:[(0,t.jsx)(h.default,{src:e.recipe.savedImage,alt:"",width:480,height:854,className:tS.default.photo,unoptimized:!0,loading:"eager"}),(0,t.jsxs)("span",{className:tS.default.videoBadge,children:[(0,t.jsx)(t_.Play,{fill:"currentColor","aria-hidden":"true"}),e.recipe.videoStepCount," video steps"]}),(0,t.jsx)("div",{className:tS.default.caption,children:(0,t.jsx)("p",{className:tS.default.title,children:e.recipeTitle})})]})}):null}let tC=[...f.RIGATONI_BLINK_FRAMES,{frame:"glance",src:"/foodie-rigatoni-glance.svg"}];function tR({demo:e,isNearViewport:i,hasFrame:s,playId:n,videoRef:r,videoSeconds:o,reducedMotion:l,htmlMediaLayer:d,onMediaReady:c}){let u=`watching-phone-${(0,a.useId)().replaceAll(":","")}`,h=(0,a.useRef)(null),[p,m]=(0,a.useState)(0),[f,g]=(0,a.useState)(null);return(0,a.useEffect)(()=>{let e=h.current;if(!e||d)return;let t=()=>m(e.getBoundingClientRect().width/tm.PHONE_WIDTH);t();let a=new ResizeObserver(t);return a.observe(e),()=>a.disconnect()},[d]),(0,t.jsx)("div",{className:tf.default.post,"data-show-import-scenario":o<2,children:(0,t.jsxs)("div",{ref:h,className:tf.default.phone,"data-video-watching-phone":!0,children:[d?(0,t.jsx)(ty,{screenClipId:u,children:(0,t.jsx)(tw,{demo:e,videoRef:r,hasFrame:s,playId:n,videoSeconds:o,isNearViewport:i,reducedMotion:l,onMediaReady:c})}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("svg",{viewBox:`0 0 ${tm.PHONE_WIDTH} ${tm.PHONE_HEIGHT}`,className:tf.default.phoneFrame,"aria-hidden":"true",focusable:"false",children:(0,t.jsx)(tm.PrototypePhoneFrame,{screenClipId:u,screenFill:"#050505",children:e.video&&(f!==n||0===p)&&(0,t.jsx)("image",{href:e.video.poster,x:tm.SCREEN_X,y:tm.SCREEN_Y,width:tm.SCREEN_WIDTH,height:tm.SCREEN_HEIGHT,preserveAspectRatio:"xMidYMid slice"})})}),(0,t.jsxs)("div",{className:tf.default.phoneScreenPlane,style:{width:tm.PHONE_WIDTH,height:tm.PHONE_HEIGHT,transform:`scale(${p})`},children:[(0,t.jsx)("div",{className:tf.default.phoneScreen,style:{left:tm.SCREEN_X,top:tm.SCREEN_Y,width:tm.SCREEN_WIDTH,height:tm.SCREEN_HEIGHT,borderRadius:tm.SCREEN_RADIUS},children:(0,t.jsx)(tw,{demo:e,videoRef:r,hasFrame:s,playId:n,videoSeconds:o,isNearViewport:i,reducedMotion:l,onMediaReady:e=>{g(e),c(e)}})}),(0,t.jsx)("svg",{viewBox:`0 0 ${tm.PHONE_WIDTH} ${tm.PHONE_HEIGHT}`,className:tf.default.phoneCamera,"aria-hidden":"true",focusable:"false",children:(0,t.jsx)(tm.PrototypePhoneCamera,{})})]})]}),(0,t.jsx)(tx,{platform:e.platform}),(0,t.jsx)(tv,{text:e.importScenario})]})})}function tI({watcherRef:e,shouldReduceMotion:a,isWatching:i,pullId:s}){let{frame:n}=(0,f.useRigatoniBlink)(i&&!a,!1),r="open"===n?"glance":n;return(0,t.jsx)("div",{ref:e,className:tf.default.watcher,"data-vi
2deo-watcher":!0,children:(0,t.jsx)("div",{className:`${_.default.heroFoodieStack} ${tf.default.foodieStack}`,children:(0,t.jsx)("div",{"data-foodie-pulling":void 0!==s,className:`${_.default.heroFoodieCrop} ${tf.default.foodie}`,children:tC.map(({frame:e,src:a})=>(0,t.jsx)(h.default,{src:a,alt:"",width:1254,height:1254,className:`${_.default.heroFoodieFrame} ${r===e?"opacity-100":"opacity-0"}`},e))},s??"watching")})})}function t$({demos:e=e3,forceReducedMotion:i=!1,contained:s=!1,htmlMediaLayer:n=!1,isActive:r=!0}){let o=(0,a.useRef)(null),l=(0,a.useRef)(null),d=(0,a.useRef)(null),c=(0,N.useInView)(l,{amount:.5})&&r,u=(0,N.useInView)(o,{once:!0,margin:"600px"}),h=(0,S.usePrototypeReducedMotion)(i),p=function(e,t,i,s){let[n,r]=(0,a.useState)({index:0,playId:0,phase:"playing",seconds:0,hasFrame:!1,hasCover:!1}),o=(n.index+1)%e.length,l=e[n.index];(0,a.useEffect)(()=>{if(!t||i||"arriving"!==n.phase)return;let e=window.setTimeout(()=>{r(e=>({...e,index:o,playId:e.playId+1,phase:"playing",seconds:0,hasFrame:!1,hasCover:!0}))},850);return()=>window.clearTimeout(e)},[o,t,i,n.phase]),(0,a.useEffect)(()=>{let e,a=s.current;if(!t||i)return void a?.pause();let n=!1,o=!1,d=a?.currentTime??0,c=Date.now(),u=()=>{n||o||(o=!0,r(e=>"arriving"===e.phase?e:{...e,phase:"arriving"}))},h=()=>{n||o||void 0!==e||(r(e=>({...e,hasFrame:!1})),e=window.setTimeout(u,8e3),a?.pause())},p=()=>{n||void 0!==e||r(e=>({...e,hasFrame:!0}))};a?(a.playbackRate=1.3,a.addEventListener("loadeddata",p),a.addEventListener("ended",u),a.addEventListener("error",h),a.readyState>=2&&p(),a.error||!tl(a)?h():a.play().catch(h)):h();let m=window.setInterval(()=>{if(!a||void 0!==e)return;let t=a.currentTime<d;if(a.currentTime!==d)d=a.currentTime,c=Date.now();else if(!o&&Date.now()-c>=8e3)return void h();let i=t?l.durationSeconds:Math.min(l.durationSeconds,a.currentTime);r(e=>({...e,seconds:"arriving"===e.phase?Math.max(e.seconds,i):i}));let s=Number.isFinite(a.duration)?Math.min(a.duration,l.durationSeconds):l.durationSeconds,n=Math.min(l.recipe?.pullAtSeconds??s,Math.max(0,s-1.2349999999999999));(t||a.ended||a.currentTime>=n)&&u()},100);return()=>{n=!0,window.clearInterval(m),window.clearTimeout(e),a?.removeEventListener("loadeddata",p),a?.removeEventListener("ended",u),a?.removeEventListener("error",h),a?.pause()}},[l,t,i,n.playId,s]);let d=(0,a.useCallback)(e=>{r(t=>t.playId===e&&t.hasCover?{...t,hasCover:!1}:t)},[]);return i?{index:0,incomingIndex:1%e.length,playId:0,phase:"playing",seconds:e[0].durationSeconds,hasFrame:!1,hasCover:!1,onMediaReady:d}:{...n,incomingIndex:o,onMediaReady:d}}(e,c,h,d),m=e[p.index],f=e6(m,p.seconds,p.hasFrame,h),[g,x]=(0,a.useState)(()=>{let t=e.at(-1),a=e.at(-2);return t?.recipe?{current:{demo:t,playId:-1,animate:!1},previous:a?.recipe?{demo:a,playId:-2,animate:!1}:void 0}:void 0});(0,a.useEffect)(()=>{h||"saved"!==f.phase||x(e=>e?.current.playId===p.playId?e:{current:{demo:m,playId:p.playId,animate:!0},previous:e?.current})},[m,p.playId,h,f.phase]);let v=h&&e[0].recipe?{demo:e[0],playId:-3,animate:!1}:g?.current,b=h?void 0:g?.previous,j=c&&!h&&p.hasFrame&&p.seconds>0;return(0,t.jsx)("div",{ref:o,className:tf.default.scene,"data-contained":s,"data-reduced-motion":h,"data-running":c&&!h,"data-video-watching-proof":!0,"data-platform":m.platform,"data-
2phase":p.phase,"data-recipe-phase":f.phase,"data-has-saved-recipe":void 0!==v,role:"img","aria-label":"Foodie watches a video, then the same playing video moves into its matching numbered direction. Rigatoni pulls the recipe out from behind the phone into a saved recipe collection. Illustrative scenarios include recipe in bio, comment for the recipe, a recipe on a creator’s website, and no written recipe. These annotations are examples, not the videos’ original captions. TikTok, Instagram, Facebook, and YouTube are supported sources. The examples use Doug’s own Hainanese Chicken & Rice, Clam Dashi Udon, Thai chili lettuce wraps, and linguini alle vongole footage.",children:(0,t.jsxs)("div",{"aria-hidden":"true",className:`${tf.default.sceneInner} ${_.default.rigatoniSizing}`,style:{"--arrival-ms":"850ms","--recipe-morph-ms":"900ms","--recipe-pull-ms":"1500ms"},children:[(0,t.jsx)(tj,{demos:e,activeIndex:p.index,arriving:"arriving"===p.phase&&!h,holding:p.hasCover&&!h}),(0,t.jsx)(tR,{demo:m,videoRef:d,isNearViewport:u&&!h,hasFrame:p.hasFrame&&!h,playId:p.playId,videoSeconds:h&&f.enabled?f.step?.start??0:p.seconds,reducedMotion:h,htmlMediaLayer:n,onMediaReady:p.onMediaReady}),(0,t.jsx)(tI,{watcherRef:l,shouldReduceMotion:h,isWatching:j,pullId:v?.animate?v.playId:void 0}),(0,t.jsxs)("div",{className:tf.default.savedRecipes,"data-saved-recipe-output":!0,children:[b&&(0,t.jsx)(tk,{demo:b.demo,previous:!0,animate:v?.animate},b.playId),v&&(0,t.jsx)(tk,{demo:v.demo,animate:v.animate},v.playId)]})]})})}var tT=e.i(267521);function tE({forceReducedMotion:e=!1}){return(0,t.jsx)("section",{className:`${tT.default.section} site-padding`,"aria-labelledby":"video-watching-heading",children:(0,t.jsxs)("div",{className:tT.default.layout,children:[(0,t.jsxs)("div",{className:tT.default.copy,children:[(0,t.jsxs)("h2",{id:"video-watching-heading",className:"text-balance font-display text-[clamp(2rem,3vw,3rem)] font-semibold leading-[1.06] tracking-[-0.025em]",children:["Get the recipe.",(0,t.jsx)("br",{}),"Even when it",(0,t.jsx)("br",{}),"isn’t written down."]}),(0,t.jsxs)("p",{className:"mt-6 text-pretty text-fluid-body-lg leading-relaxed text-foodie-brown/90",children:["Foodie tracks down the ingredients and directions, whether they’re in the caption, on the creator’s website, or"," ",(0,t.jsx)("span",{className:tT.default.mobileVideoLine,children:"only in the video."})]})]}),(0,t.jsx)("div",{className:tT.default.visual,"data-video-feature-visual":!0,children:(0,t.jsx)(t$,{forceReducedMotion:e,contained:!0})})]})})}let tP=(0,o.foodieButtonVariants)({appearance:"expressive",size:"lg",className:"h-auto min-h-12 gap-2 px-6 py-3 text-base"}),tM=(0,o.foodieButtonVariants)({appearance:"expressive",size:"lg",className:"h-auto min-h-12 gap-2 bg-foodie-orange px-6 py-3 text-base text-white !shadow-foodie-featured-action"}),tL="Import your first recipe",tG="Get started on iPhone";e.s(["HomepageV1Prototype",0,function({forceReducedMotion:e=!1,ingredientIllustrationStyle:h="soft",isAuthenticated:p=!1,isIosBrowser:m=!1,privateAnalyticsBoundary:f=!0,resumeImportAfterAuth:g=!1,showIngredientOptions:x=!1,userRecipesEnabled:v=!1}){let{handleImportButtonClick:b,handlePublicImportLinkClick:j,handleSignedOutImportClick:y,handleSigninModalOpenChange:N,importDialogOpen:w,setImportDialogOpen:S,shouldPromptForAuth:k,signinModalOpen:C}=function({isAuthenticated:e,privateAnalyticsBoundary:t,resumeImportAfterAuth:i,userRecipesEnabled:s}){let n=(0,eq.useRouter)(),{foodieUser:r}=(0,eU.useFoodieUser)(),[o,l]=(0,a.useState)("idle"),d=(0,a.useRef)(!1),c=(0,a.useRef)(!1),u=e||!!r?.authUser,h=(0,a.useCallback)(e=>{eQ(e,"open_import_dialog"),l("import")},[]),p=(0,a.useCallback)(e=>{eQ(e,"open_signin_modal"),l("signin");try{localStorage.setItem(eJ,"true")}catch(e){e0(e,"homepage-import-auth-intent-write")}},[]),m=(0,a.useCallback)(e=>{e?l("signin"):u||(e1(),l("idle"))},[u]),f=(0,a.useCallback)(async(e,t)=>{if(0!==e.button||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return void eQ(t,"navigate_to_my_recipes");if(e.preventDefault(),!c.current){c.current=!0;try{await eQ(t,"navigate_to_my_recipes")}finally{n.push("/my-recipes")}}},[n]);return(0,a.useEffect)(()=>{!t&&(i||function(){try{return"true"===localStorage.getItem(eJ)}catch(e){return e0(e,"homepage-import-auth-intent-read"),!1}}())&&l("signin")},[t,i]),(0,a.useEffect)(()=>
2{if("signin"===o||"refreshing"===o){if(!u){"signin"!==o&&l("signin");return}if(!e){l("refreshing"),d.current||(d.current=!0,n.refresh());return}e1(),i&&n.replace("/",{scroll:!1}),s?l("import"):(l("idle"),n.push("/my-recipes"))}},[o,e,u,i,n,s]),{handleImportButtonClick:h,handlePublicImportLinkClick:f,handleSignedOutImportClick:p,handleSigninModalOpenChange:m,importDialogOpen:"import"===o,setImportDialogOpen:e=>l(e?"import":"idle"),shouldPromptForAuth:!t&&!u,signinModalOpen:"signin"===o&&!u}}({isAuthenticated:p,privateAnalyticsBoundary:f,resumeImportAfterAuth:g,userRecipesEnabled:v}),[R,I]=(0,a.useState)(e),[$,T]=(0,a.useState)(e),E=(0,a.useRef)(!1),P=(0,a.useRef)(!1),G=(0,a.useCallback)(()=>I(!0),[]),H=(0,a.useCallback)(()=>T(!0),[]),F=(0,a.useCallback)((e,t)=>{if(P.current)return;if(0!==e.button||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return void(0,c.track)("Homepage App Store CTA Clicked",{location:t});if(e.preventDefault(),E.current)return;E.current=!0;let a=e.currentTarget;(0,c.trackBeforeNavigation)("Homepage App Store CTA Clicked",{location:t}).finally(()=>{P.current=!0;try{a.click()}finally{P.current=!1,E.current=!1}})},[]),W=f?n.PrivateAnalyticsLink:i.default;return x?(0,t.jsx)("div",{className:`${_.default.prototypeRoot} ${e?_.default.reducedMotion:""} bg-foodie-beige text-foodie-brown`,children:(0,t.jsx)(eP,{forceReducedMotion:e,selectedStyle:h})}):(0,t.jsxs)("div",{className:`${_.default.prototypeRoot} ${e?_.default.reducedMotion:""} bg-foodie-beige text-foodie-brown`,children:[(0,t.jsxs)("div",{className:"overflow-hidden",children:[(0,t.jsx)("section",{"aria-labelledby":"homepage-prototype-heading",className:`${_.default.heroIntroSection} site-padding pb-4 sm:pb-6 lg:pb-8`,children:(0,t.jsxs)("div",{className:_.default.heroIntroLayout,children:[(0,t.jsxs)("div",{className:_.default.heroIntroCopy,"data-hero-copy":!0,children:[(0,t.jsxs)("h1",{id:"homepage-prototype-heading",className:`${_.default.heroHeading} ${_.default.heroPromiseHeading} mx-auto max-w-[64rem] font-display font-semibold leading-[1.07] tracking-[-0.035em]`,children:[(0,t.jsxs)("span",{children:["Make ",(0,t.jsx)(Y,{text:"cooking",straight:!0})," as"]})," ",(0,t.jsxs)("span",{children:["easy as saving",(0,t.jsx)(Z,{})]})]}),(0,t.jsxs)("p",{className:`${_.default.heroSubtitle} mx-auto max-w-2xl font-medium leading-relaxed text-foodie-brown/90`,style:{fontSize:"clamp(1.125rem, 1.7vw, 1.5rem)"},children:["The recipe organizer that takes your saved recipes from"," ",(0,t.jsx)("span",{className:_.default.heroPhoneToTable,children:"phone to table."})]}),(0,t.jsx)("div",{className:`${_.default.heroActionGroup} flex flex-col justify-center gap-4 sm:flex-row`,children:m?(0,t.jsxs)("a",{href:u.FOODIE_APP_STORE_URL,className:tP,onClick:e=>{F(e,"hero")},children:[(0,t.jsx)(s.FaApple,{"aria-hidden":"true",className:"size-5 shrink-0"}),(0,t.jsx)(r.CascadingTextLabel,{label:tG,disableMotion:e})]}):v?(0,t.jsx)(o.FoodieButton,{type:"button",appearance:"expressive",size:"lg",className:"h-auto min-h-12 gap-2 px-6 py-3 text-base",onClick:()=>b("hero"),children:(0,t.jsx)(r.CascadingTextLabel,{label:tL,disableMotion:e})}):k?(0,t.jsx)(o.FoodieButton,{type:"button",appearance:"expressive",size:"lg",className:"h-auto min-h-12 gap-2 px-6 py-3 text-base",onClick:()=>y("hero"),children:(0,t.jsx)(r.CascadingTextLabel,{label:tL,disableMotion:e})}):(0,t.jsx)(W,{href:"/my-recipes",className:tP,onClick:f?void 0:e=>{j(e,"hero")},children:(0,t.jsx)(r.CascadingTextLabel,{label:tL,disableMotion:e})})})]}),(0,t.jsx)(ec,{forceReducedMotion:e})]})}),(0,t.jsx)(tE,{forceReducedMotion:e}),(0,t.jsx)(tp,{forceReducedMotion:e}),(0,t.jsx)(eZ.RecipeSourceWave,{forceReducedMotion:e}),(0,t.jsx)("div",{className:_.default.featurePair,children:(0,t.jsx)("div",{id:"ingredient-intelligence",className:`${_.default.featureSection} ${_.default.featureSectionIngredient} scroll-mt-8`,children:(0,t.jsx)("div",{className:"site-padding",children:(0,t.jsxs)("div",{className:_.default.staggeredSubfeatureGrid,children:[(0,t.jsxs)("section",{"aria-labelledby":"ingredient-intelligence-heading",className:`${_.default.staggeredSubfeature} ${_.default.staggeredSubfeatureStepOne}`,children:[(0,t.jsxs)("div",{className:_.default.staggeredSubfeatureCopy,children:[(0,t.jsx)("h2",{id:"ingredient-intelligence-heading",className:"font-display text-[clamp(2rem,3vw,3rem)] font-semibold leading-[1.06] tracking-[-0.025em]",children:"Ingredient Intelligence"}),(0,t.jsx)("p",{className:"mt-6 text-fluid-body-lg leading-relaxed text-foodie-brown/90",children:"Foodie recognizes each ingredient and understands where it belongs. That understanding powers exact gram measurements and nutrition."})]}),(0,t.jsx)("div",{className:_.default.staggeredSubfeatureVisual,children:(0,t.jsx)(eB,{forceReducedMotion:e})})]}),(0,t.jsxs)("section",{id:"ingredient-search","aria-labelledby":"ingredient-search-heading",className:`${_.default.staggeredSubfeature} ${_.default.staggeredSubfeatureStepTwo} scroll-mt-8`,children:[(0,t.jsxs)("div",{className:_.default.staggeredSubfeatureCopy,children:[(0,t.jsx)("h2",{id:"ingredient-search-heading",className:"font-display text-[clamp(2rem,3vw,3rem)] font-semibold leading-[1.06] tracking-[-0.025em]",children:"Search Your Collection"}),(0,t.jsxs)("p",{className:"mt-6 text-fluid-body-lg leading-relaxed text-foodie-brown/90",children:[(0,t.jsx)("span",{children:"AP Flour. All-purpose flour. Plain flour."})," ",(0,t.jsx)("span",{className:"block",children:"Foodie knows they're the same ingredient."}),(0,t.jsx)("span",{className:"block",children:"One ingredient search f
2inds every matching recipe."})]})]}),(0,t.jsx)("div",{className:_.default.staggeredSubfeatureVisual,children:(0,t.jsx)(ez,{compact:!0,forceReducedMotion:e})})]}),(0,t.jsxs)("section",{"aria-labelledby":"assistant-preference-heading",className:`${_.default.staggeredSubfeature} ${_.default.staggeredSubfeatureStepThree}`,children:[(0,t.jsxs)("div",{className:_.default.staggeredSubfeatureCopy,children:[(0,t.jsx)("h2",{id:"assistant-preference-heading",className:"font-display text-[clamp(2rem,3vw,3rem)] font-semibold leading-[1.06] tracking-[-0.025em]",children:"Memory Across Recipes"}),(0,t.jsx)("p",{className:"mt-6 text-fluid-body-lg leading-relaxed text-foodie-brown/90",children:"Foodie remembers the little things like dietary needs, nutrition goals, and the swaps you usually make. You don't have to repeat yourself from one recipe to the next."})]}),(0,t.jsx)(M,{courierReturned:$,forceReducedMotion:e,onTransferReady:G})]}),(0,t.jsxs)("section",{"aria-labelledby":"assistant-adaptation-heading",className:`${_.default.staggeredSubfeature} ${_.default.staggeredSubfeatureStepFour}`,children:[(0,t.jsxs)("div",{className:_.default.staggeredSubfeatureCopy,children:[(0,t.jsx)("h2",{id:"assistant-adaptation-heading",className:"font-display text-[clamp(2rem,3vw,3rem)] font-semibold leading-[1.06] tracking-[-0.025em]",children:"Personalized Substitutions"}),(0,t.jsx)("p",{className:"mt-6 text-fluid-body-lg leading-relaxed text-foodie-brown/90",children:"Foodie learns your preferences and uses them to make precise recipe adjustments instead of relying on general rules."})]}),(0,t.jsx)(L,{forceReducedMotion:e,onDeliveryComplete:H,transferReady:R})]})]})})})}),(0,t.jsx)("section",{"aria-labelledby":"hands-free-heading",className:_.default.cookSection,children:(0,t.jsxs)("div",{className:`${_.default.cookSectionInner} site-padding`,children:[(0,t.jsx)("div",{className:_.default.cookIntroGrid,children:(0,t.jsxs)("div",{className:_.default.cookIntroCopy,children:[(0,t.jsx)("h2",{id:"hands-free-heading",className:"font-display text-[clamp(2.25rem,5vw,4.5rem)] font-semibold leading-[1.03] tracking-[-0.03em] text-foodie-brown",children:"Cook with Foodie"}),(0,t.jsxs)("p",{className:"mt-6 max-w-2xl text-fluid-body-lg leading-relaxed text-foodie-brown/90",children:["Need the next step or a measurement? Just ask. Foodie guides you through the recipe while you keep cooking. It's almost like having the recipe author in"," ",(0,t.jsx)("span",{className:_.default.cookMobileLine,children:"the kitchen with you."})]})]})}),(0,t.jsx)(X,{forceReducedMotion:e})]})}),(0,t.jsx)("section",{"aria-labelledby":"closing-conversion-heading",className:_.default.closingSection,"data-closing-wave-section":!0,children:(0,t.jsx)(eZ.RecipeSourceWaveCanvas,{className:_.default.closingWaveCanvas,ultrawideViewBox:"0 -180 1895 1090",children:(0,t.jsx)("div",{className:`${_.default.closingWaveContent} site-padding`,"data-closing-wave-content":!0,children:(0,t.jsxs)("div",{className:_.default.closingCopy,children:[(0,t.jsxs)("h2",{id:"closing-conversion-heading",className:"font-display text-[clamp(2.25rem,5vw,4.75rem)] font-semibold leading-[1.02] tracking-[-0.035em]",children:["Start with a recipe"," ",(0,t.jsx)("span",{className:"lg:block",children:"you already love."})]}),(0,t.jsxs)("p",{className:"mx-auto mt-6 max-w-2xl text-fluid-body-lg leading-relaxed text-foodie-brown/90",children:["Whether it lives in a link, social post,"," ",(0,t.jsx)("br",{className:"hidden max-[524px]:block"}),"cookbook photo, or note,",(0,t.jsx)("br",{}),"Foodie can save it."]}),m?(0,t.jsxs)("a",{href:u.FOODIE_APP_STORE_URL,className:`${tM} ${_.default.closingActionButton}`,onClick:e=>{F(e,"closing")},children:[(0,t.jsx)(s.FaApple,{"aria-hidden":"true",className:"size-5 shrink-0"}),(0,t.jsx)(r.CascadingTextLabel,{label:tG,disableMotion:e})]}):v?(0,t.jsx)(o.FoodieButton,{type:"button",appearance:"expressive",size:"lg",className:`${tM} ${_.default.closingActionButton}`,onClick:()=>b("closing"),children:(0,t.jsx)(r.CascadingTextLabel,{label:tL,disableMotion:e})}):k?(0,t.jsx)(o.FoodieButton,{type:"button",appearance:"expressive",size:"lg",className:`${tM} ${_.default.closingActionButton}`,onClick:()=>y("closing"),children:(0,t.jsx)(r.CascadingTextLabel,{label:tL,disableMotion:e})}):(0,t.jsx)(W,{href:"/my-recipes",className:`${tM} ${_.default.closingActionButton}`,onClick:f?void 0:e=>{j(e,"closing")},children:(0,t.jsx)(r.CascadingTextLabel,{label:tL,disableMotion:e})})]})})})})]}),v&&(0,t.jsx)(eY,{open:w,onOpenChange:S,onProcessingStart:()=>{}}),!f&&(0,t.jsx)(d.SigninModal,{authReturnTo:"/?resumeImport=1",isOpen:C,onOpenChange:N,showUpsell:!1}),(0,t.jsx)(l.Toaster,{richColors:!0,expand:!0,position:"top-right"})]})}],539424)}]);
3
4//# debugId=524a8742-1e13-5eb9-858a-2ef5f473349a

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.