PageSourceSearch

https://fitdietaihkapp.manus.space/assets/ProfileSetup-R-f9uDHU.js

js fitdietaihkapp.manus.space collected 2026-10-03 05:01:39 UTC 58,716 bytes, 16 lines download raw bytes

1import{f as ae,g as De,j as e,X as Ee,B as v,u as Le,r as g,t as C,A as qe,L as $e,h as Ie,C as R,c as W,d as Y,ak as ze,e as Q,F as Ve,S as pe,ag as He,s as Ae,b as f}from"./index-bM8UT4Os.js";import{I as k}from"./input-BwpLlRYf.js";import{L as n}from"./label-2Seh_wFH.js";import{S as b,a as S,b as j,c as y,d as c}from"./select-CDP2pHh8.js";import{C as Oe}from"./circle-help-d9Ix-JKs.js";import{U as Ue}from"./users-DdYaOfd2.js";import"./dialog-CxcTDVnZ.js";import"./useComposition-DO5dIJEj.js";import"./chevron-up-TG6jWiKP.js";/**
2 * @license lucide-react v0.453.0 - ISC
3 *
4 * This source code is licensed under the ISC license.
5 * See the LICENSE file in the root directory of this source tree.
6 */const Ge=ae("Briefcase",[["path",{d:"M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16",key:"jecpp"}],["rect",{width:"20",height:"14",x:"2",y:"6",rx:"2",key:"i6l2r4"}]]);/**
7 * @license lucide-react v0.453.0 - ISC
8 *
9 * This source code is licensed under the ISC license.
10 * See the LICENSE file in the root directory of this source tree.
11 */const Re=ae("Shuffle",[["path",{d:"M2 18h1.4c1.3 0 2.5-.6 3.3-1.7l6.1-8.6c.7-1.1 2-1.7 3.3-1.7H22",key:"1wmou1"}],["path",{d:"m18 2 4 4-4 4",key:"pucp1d"}],["path",{d:"M2 6h1.9c1.5 0 2.9.9 3.6 2.2",key:"10bdb2"}],["path",{d:"M22 18h-5.9c-1.3 0-2.6-.7-3.3-1.8l-.5-.8",key:"vgxac0"}],["path",{d:"m18 14 4 4-4 4",key:"10pe0f"}]]);/**
12 * @license lucide-react v0.453.0 - ISC
13 *
14 * This source code is licensed under the ISC license.
15 * See the LICENSE file in the root directory of this source tree.
16 */const We=ae("UtensilsCrossed",[["path",{d:"m16 2-2.3 2.3a3 3 0 0 0 0 4.2l1.8 1.8a3 3 0 0 0 4.2 0L22 8",key:"n7qcjb"}],["path",{d:"M15 15 3.3 3.3a4.2 4.2 0 0 0 0 6l7.3 7.3c.7.7 2 .7 2.8 0L15 15Zm0 0 7 7",key:"d0u48b"}],["path",{d:"m2.1 21.8 6.4-6.3",key:"yn04lh"}],["path",{d:"m19 5-7 7",key:"194lzd"}]]),Ye={female:[{min:15,max:20,label:"運動型",color:"bg-green-500"},{min:21,max:25,label:"正常",color:"bg-blue-500"},{min:26,max:32,label:"適中",color:"bg-yellow-500"},{min:33,max:39,label:"較高",color:"bg-orange-500"},{min:40,max:100,label:"重度肥胖",color:"bg-red-500"}],male:[{min:8,max:14,label:"運動型",color:"bg-green-500"},{min:15,max:20,label:"正常",color:"bg-blue-500"},{min:21,max:26,label:"適中",color:"bg-yellow-500"},{min:27,max:32,label:"較高",color:"bg-orange-500"},{min:33,max:100,label:"重度肥胖",color:"bg-red-500"}]};function Qe({gender:B,onClose:h}){const{theme:_}=De(),a=_==="dark",x=B==="female"||B==="male"?B:"male",r=x==="female"?"https://d2xsxph8kpxj0f.cloudfront.net/310519663733004993/7ZhqwHvGgwSaWMAUrYFFS2/bf-female-chart-PKBej6pbDGzJMHDeqpGcSL.webp":"https://d2xsxph8kpxj0f.cloudfront.net/310519663733004993/7ZhqwHvGgwSaWMAUrYFFS2/bf-male-chart-MTWpkbUx54tf6rWv9SAorp.webp";return e.jsx("div",{"data-loc":"client/src/components/BodyFatEstimator.tsx:39",className:"fixed inset-0 z-[100] flex items-center justify-center bg-black/70 p-4 backdrop-blur-sm",role:"presentation",children:e.jsxs("section",{"data-loc":"client/src/components/BodyFatEstimator.tsx:40",role:"dialog","aria-modal":"true","aria-labelledby":"body-fat-reference-title",className:`w-full max-w-2xl max-h-[calc(100dvh-2rem)] overflow-auto rounded-2xl border shadow-2xl ${a?"border-white/15 bg-zinc-950 text-zinc-100":"border-slate-200 bg-white text-slate-900"}`,children:[e.jsxs("div",{"data-loc":"client/src/components/BodyFatEstimator.tsx:47",className:`sticky top-0 z-10 flex items-center justify-between border-b p-4 ${a?"border-white/10 bg-zinc-950/95":"border-slate-200 bg-white/95"}`,children:[e.jsx("h2",{"data-loc":"client/src/components/BodyFatEstimator.tsx:48",id:"body-fat-reference-title",className:`text-lg font-semibold ${a?"text-zinc-50":"text-slate-950"}`,children:x==="female"?"女性體脂率參考圖":"男性體脂率參考圖"}),e.jsx("button",{"data-loc":"client/src/components/BodyFatEstimator.tsx:51",type:"button",onClick:h,"aria-label":"關閉體脂率參考圖",className:`rounded-lg p-2 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-cyan-400 ${a?"text-zinc-100 hover:bg-white/10":"text-slate-700 hover:bg-slate-100"}`,children:e.jsx(Ee,{"data-loc":"client/src/components/BodyFatEstimator.tsx:57",className:"w-5 h-5"})})]}),e.jsxs("div",{"data-loc":"client/src/components/BodyFatEstimator.tsx:62",className:"space-y-4 p-5 sm:p-6",children:[e.jsx("div",{"data-loc":"client/src/components/BodyFatEstimator.tsx:64",className:"flex justify-center",children:e.jsx("img",{"data-loc":"client/src/components/BodyFatEstimator.tsx:65",src:r,alt:x==="female"?"女性體脂率參考圖":"男性體脂率參考圖",className:"max-w-full h-auto rounded-lg"})}),e.jsxs("div",{"data-loc":"client/src/components/BodyFatEstimator.tsx:73",className:"space-y-2 mt-6",children:[e.jsx("h3",{"data-loc":"client/src/components/BodyFatEstimator.tsx:74",className:`text-sm font-semibold ${a?"text-zinc-100":"text-slate-900"}`,children:"分類說明:"}),e.jsx("div",{"data-loc":"client/src/components/BodyFatEstimator.tsx:75",className:"grid grid-cols-1 gap-2",children:Ye[x]?.map(u=>e.jsxs("div",{"data-loc":"client/src/components/BodyFatEstimator.tsx:77",className:"flex items-center gap-3",children:[e.jsx("div",{"data-loc":"client/src/components/BodyFatEstimator.tsx:78",className:`w-4 h-4 rounded ${u.color}`}),e.jsxs("span",{"data-loc":"client/src/components/BodyFatEstimator.tsx:79",className:`text-sm font-medium ${a?"text-zinc-200":"text-slate-700"}`,children:[u.min,"–",u.max,"%:",u.label]})]},u.label))})]}),e.jsx("div",{"data-loc":"client/src/components/BodyFatEstimator.tsx:88",className:`rounded-xl border p-3 text-xs font-medium leading-relaxed ${a?"border-cyan-300/25 bg-cyan-300/10 text-cyan-100":"border-cyan-200 bg-cyan-50 text-cyan-900"}`,children:"呢個只係參考,實際體脂率以專業儀器測量為準。"}),e.jsx(v,{"data-loc":"client/src/components/BodyFatEstimator.tsx:93",onClick:h,className:"w-full bg-cyan-600 text-white shadow-lg shadow-cyan-900/20 hover:bg-cyan-700",children:"明白,關閉"})]})]})})}const ge=["肥嘟嘟","瘦蜢蜢","大隻","結實","軟腍腍","懶洋洋","勤力","貪食","暴走","佛系","硬淨","躁底","淡定","衝動","堅毅","餓爆","飽到嘔","瞓唔醒","精力充沛","半死不活","元氣滿滿","攰到癲","充滿鬥志","hea爆","勁chur","香噴噴","熱辣辣","甜蜜蜜","酸溜溜","辣到飛起","走雞","甩轆","爆肌","食極唔肥","飲水都肥","永遠遲到","日日OT","周身郁","坐唔定","靜雞雞"],ue=["叉燒包","菠蘿油","蛋撻","雞蛋仔","魚蛋","燒賣","腸粉","牛腩","雲吞","西多士","奶茶","檸茶","菠蘿","芒果","榴槤","雞翼","豬扒","牛丸","蝦餃","鳳爪","肥
16貓","柴犬","倉鼠","水豚","企鵝","熊貓","海豚","兔仔","鸚鵡","樹懶","啞鈴","跑鞋","瑜伽墊","拳套","單車","巴士迷","港鐵通","行山王","茶記常客","gym友","外賣達人","早餐王","宵夜黨","蛋白粉","雞胸肉"],me=["","","","","","仔","妹","哥","姐","王","達人","戰士","勇者","大師","新手"];function Ze(){const B=ge[Math.floor(Math.random()*ge.length)],h=ue[Math.floor(Math.random()*ue.length)],_=me[Math.floor(Math.random()*me.length)];return`${B}${h}${_}`}const Xe=[{value:"gym",label:"去 Gym / 重訓"},{value:"running",label:"跑步"},{value:"hiking",label:"行山"},{value:"swimming",label:"游水"},{value:"basketball",label:"打籃球"},{value:"badminton",label:"打羽毛球"},{value:"yoga",label:"瑜伽 / Pilates"},{value:"cycling",label:"踩單車"},{value:"boxing",label:"拳擊 / 搏擊"},{value:"tennis",label:"網球"},{value:"football",label:"踢波"},{value:"dance",label:"跳舞"},{value:"climbing",label:"攀石"},{value:"martial_arts",label:"武術 / 柔道"},{value:"none",label:"基本上唔做運動"}],Je=[{value:"cramps",label:"腹部不適"},{value:"fatigue",label:"攰"},{value:"headache",label:"頭痛"},{value:"mood",label:"心情起伏"},{value:"bloating",label:"脹"},{value:"sleep",label:"瞓得差"},{value:"appetite",label:"胃口轉變"}];function ot(){Le();const B=new URLSearchParams(window.location.search).get("from")==="weekly-review",[h,_]=g.useState(1),[a,x]=g.useState({gender:"male",height:170,weight:70,bodyFatPercentage:25,targetBodyFatPercentage:20,targetMusclePercentage:35,goal:"lose_weight",goalTimelineMonths:3,age:25,activityLevel:"light",socialDiningFrequency:"once_week",businessDiningFrequency:"rarely",drinkingHabit:"social_only",exerciseTypes:[],exerciseFrequency:"two_three_week",workType:"office_sitting",lateNightSnack:"sometimes",mealPattern:"regular_three",cookingHabit:"mostly_eat_out"}),[r,u]=g.useState({age:"",height:"",weight:"",bodyFatPercentage:"",targetBodyFatPercentage:"",targetMusclePercentage:"",goalTimelineMonths:""}),[se,he]=g.useState(!1),[p,le]=g.useState(null),{data:s,isLoading:fe}=C.profile.getProfile.useQuery(),Z=C.profile.updateProfile.useMutation(),{data:L}=C.cycle.getSettings.useQuery(),{data:Pe}=C.cycle.getLogs.useQuery(),X=C.cycle.updateSettings.useMutation(),ce=C.cycle.addLog.useMutation(),[q,re]=g.useState(!1),[ie,oe]=g.useState("28"),[I,ne]=g.useState(""),[de,be]=g.useState([]),[Se,xe]=g.useState(!1),[D,J]=g.useState(""),{data:K}=C.profile.getNickname.useQuery(),ee=C.profile.updateNickname.useMutation(),z=C.useUtils(),je=()=>{xe(!1)};g.useEffect(()=>{K?.nickname&&!D&&J(K.nickname)},[K]),g.useEffect(()=>{L&&(re(L.enabled),oe(String(L.averageCycleLength||28)),ne(L.lastPeriodStart?new Date(L.lastPeriodStart).toISOString().slice(0,10):""))},[L]);const ye=()=>{const t=Ze();J(t)},ve=async()=>{if(!D.trim()){f.error("要填個花名先得咕");return}try{await ee.mutateAsync({nickname:D.trim()}),z.profile.getNickname.invalidate(),z.auth.me.invalidate(),f.success(`花名已設定為「${D.trim()}」 🎉`)}catch{f.error("儲存唔到,試多次")}},Ne=async()=>{const t=Number(ie);if(!Number.isInteger(t)||t<21||t>45){f.error("週期長度請填 21 至 45 日");return}try{await X.mutateAsync({enabled:q,averageCycleLength:t,lastPeriodStart:I?new Date(`${I}T12:00:00`):null}),z.cycle.getSettings.invalidate(),f.success(q?"週期追蹤設定已儲存":"已暫停週期追蹤")}catch{f.error("儲存唔到,試多次")}},we=async()=>{if(!I){f.error("請先填最近一次開始日");return}try{await ce.mutateAsync({periodStart:new Date(`${I}T12:00:00`),symptoms:de}),z.cycle.getLogs.invalidate(),z.cycle.getSettings.invalidate(),f.success("已記低呢次週期開始日")}catch{f.error("記錄唔到,試多次")}};g.useEffect(()=>{if(s&&!se&&(he(!0),x(t=>({...t,gender:s.gender||"male",height:s.height||170,weight:s.weight?Number(s.weight):70,bodyFatPercentage:s.bodyFatPercentage?Number(s.bodyFatPercentage):25,targetBodyFatPercentage:s.targetBodyFatPercentage?Number(s.targetBodyFatPercentage):20,targetMusclePercentage:s.targetMusclePercentage?Number(s.targetMusclePercentage):35,goal:s.goal||"lose_weight",goalTimelineMonths:s.goalTimelineMonths||3,age:s.age||25,activityLevel:s.activityLevel||"light",socialDiningFrequency:s.socialDiningFrequency||"once_week",businessDiningFrequency:s.businessDiningFrequency||"rarely",drinkingHabit:s.drinkingHabit||"social_only",exerciseTypes:s.exerciseTypes||[],exerciseFrequency:s.exerciseFrequency||"two_three_week",workType:s.workType||"office_sitting",lateNightSnack:s.lateNightSnack||"sometimes",mealPattern:s.mealPattern||"regular_three",cookingHabit:s.cookingHabit||"mostly_eat_out"})),u({age:s.age?String(s.age):"",height:s.height?String(s.height):"",weight:s.weight?String(Number(s.weight)):"",bodyFatPercentage:s.bodyFatPercentage?String(Number(s.bodyFatPercentage)):"",targetBodyFatPercentage:s.targetBodyFatPercentage?String(Number(s.targetBodyFatPercentage)):"",targetMusclePercentage:s.targetMusclePercentage?String(Number(s.targetMusclePercentage)):"",goalTimelineMonths:s.goalTimelineMonths?String(s.goalTimelineMonths):""}),s.bmr&&s.tdee)){const t=Math.round(Number(s.bmr)),l=Math.round(Number(s.tdee));Number(s.calorieDeficit),Number(s.weight);const m=Number(s.bodyFatPercentage)||25,i=Number(s.targetBodyFatPercentage)||m,O=s.goal||"maintain",V=s.goalTimelineMonths||3;let N,E,o;switch(O){case"lose_weight":N=Math.round(l*.8),E=l-N,o="減脂";break;case"gain_muscle":N=Math.round(l*1.15),E=l-N,o="增肌";break;
16case"recomp":N=Math.round(l*.92),E=l-N,o="增肌減脂";break;default:N=l,E=0,o="維持體重";break}const P=m-i,U=V>0?P/V:0,$=U/4.33,w=Math.abs(P)*7700,F=s.socialDiningFrequency||"rarely",M=s.businessDiningFrequency||"rarely",H=F==="three_plus_week"?1500:F==="twice_week"?1e3:F==="once_week"?500:0,G=M==="three_plus_week"?2e3:M==="twice_week"?1200:M==="once_week"?600:0;le({bmr:t,tdee:l,bodyFatDifference:P,monthlyChange:U.toFixed(2),weeklyChange:$.toFixed(2),dailyCalorieDeficit:E,totalCaloriesNeeded:Math.round(w),timeline:V,recommendedCalories:N,weeklyExtraSocialCalories:H,weeklyExtraBusinessCalories:G,goal:O,goalDescription:o})}},[s,se]);const[d,T]=g.useState({}),A=t=>/^\d+\.?\d*$/.test(t),te=t=>/^\d+$/.test(t),ke=()=>{const t={};if(!r.age)t.age="入返年齡";else if(!te(r.age))t.age="要入整數";else{const i=parseInt(r.age);(i<13||i>120)&&(t.age="年齡範圍: 13-120")}if(!r.height)t.height="入返身高";else if(!te(r.height))t.height="要入整數";else{const i=parseInt(r.height);(i<100||i>250)&&(t.height="身高範圍: 100-250cm")}if(!r.weight)t.weight="入返體重";else if(!A(r.weight))t.weight="格式不正確";else{const i=parseFloat(r.weight);(i<30||i>300)&&(t.weight="體重範圍: 30-300kg")}if(!r.bodyFatPercentage)t.bodyFatPercentage="入返體脂率";else if(!A(r.bodyFatPercentage))t.bodyFatPercentage="格式不正確";else{const i=parseFloat(r.bodyFatPercentage);(i<5||i>60)&&(t.bodyFatPercentage="體脂率範圍: 5-60%")}const l=a.goal==="lose_weight"||a.goal==="recomp",m=a.goal==="gain_muscle"||a.goal==="recomp";if(l&&!r.targetBodyFatPercentage)t.targetBodyFatPercentage="入返目標體脂率";else if(l&&!A(r.targetBodyFatPercentage))t.targetBodyFatPercentage="格式不正確";else if(l){const i=parseFloat(r.targetBodyFatPercentage);(i<5||i>60)&&(t.targetBodyFatPercentage="範圍: 5-60%")}if(m&&!r.targetMusclePercentage)t.targetMusclePercentage="入返目標肌肉率";else if(m&&!A(r.targetMusclePercentage))t.targetMusclePercentage="格式不正確";else if(m){const i=parseFloat(r.targetMusclePercentage);(i<10||i>80)&&(t.targetMusclePercentage="範圍: 10-80%")}if(a.goal!=="maintain"&&!r.goalTimelineMonths)t.goalTimelineMonths="入返目標時間";else if(a.goal!=="maintain"&&!te(r.goalTimelineMonths))t.goalTimelineMonths="要入整數";else if(a.goal!=="maintain"){const i=parseInt(r.goalTimelineMonths);(i<1||i>24)&&(t.goalTimelineMonths="範圍: 1-24個月")}return T(t),Object.keys(t).length===0},Fe=async t=>{if(t.preventDefault(),!ke()){f.error("填晒必填欄位先 ✍️");return}const l=parseInt(r.age),m=parseInt(r.height),i=parseFloat(r.weight),O=parseFloat(r.bodyFatPercentage),V=r.targetBodyFatPercentage?parseFloat(r.targetBodyFatPercentage):a.targetBodyFatPercentage,N=r.targetMusclePercentage?parseFloat(r.targetMusclePercentage):a.targetMusclePercentage,E=r.goalTimelineMonths?parseInt(r.goalTimelineMonths):a.goalTimelineMonths,o={...a,age:Math.max(13,Math.min(120,l)),height:Math.max(100,Math.min(250,m)),weight:Math.max(30,Math.min(300,i)),bodyFatPercentage:Math.max(5,Math.min(60,O)),targetBodyFatPercentage:Math.max(5,Math.min(60,V)),targetMusclePercentage:Math.max(10,Math.min(80,N)),goalTimelineMonths:Math.max(1,Math.min(24,E))};x(o);try{const P=await Z.mutateAsync(o),U=P.bmr,$=P.tdee;let w,F,M;switch(o.goal){case"lose_weight":w=P.calorieDeficit,F=$-w,M="減脂";break;case"gain_muscle":w=P.calorieDeficit,F=$-w,M="增肌";break;case"recomp":w=P.calorieDeficit,F=$-w,M="增肌減脂";break;default:w=P.calorieDeficit,F=0,M="維持體重";break}const H=o.bodyFatPercentage-(o.targetBodyFatPercentage||o.bodyFatPercentage),G=o.goalTimelineMonths>0?H/o.goalTimelineMonths:0,Ce=G/4.33,_e=Math.abs(H)*7700,Te=o.socialDiningFrequency==="three_plus_week"?1500:o.socialDiningFrequency==="twice_week"?1e3:o.socialDiningFrequency==="once_week"?500:0,Be=o.businessDiningFrequency==="three_plus_week"?2e3:o.businessDiningFrequency==="twice_week"?1200:o.businessDiningFrequency==="once_week"?600:0;le({bmr:U,tdee:$,bodyFatDifference:H,monthlyChange:G.toFixed(2),weeklyChange:Ce.toFixed(2),dailyCalorieDeficit:F,totalCaloriesNeeded:Math.round(_e),timeline:o.goalTimelineMonths,recommendedCalories:w,weeklyExtraSocialCalories:Te,weeklyExtraBusinessCalories:Be,goal:o.goal,goalDescription:M}),f.success("資料已儲存!你嘅個人化計劃已更新 🎉")}catch{f.error("儲存唔到,試多次")}},Me=t=>{x(l=>{const m=l.exerciseTypes.includes(t)?l.exerciseTypes.filter(i=>i!==t):[...l.exerciseTypes,t];return{...l,exerciseTypes:m}})};return fe?e.jsx("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:408",className:"min-h-screen flex items-center justify-center",children:e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:409",className:"text-center space-y-3",children:[e.jsx("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:410",className:"animate-spin w-8 h-8 border-4 border-blue-600 border-t-transparent roun
16ded-full mx-auto"}),e.jsx("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:411",className:"text-muted-foreground",children:"載入中..."})]})}):e.jsxs(qe,{"data-loc":"client/src/pages/ProfileSetup.tsx:418",title:"我嘱資料",showBack:!0,children:[Se&&e.jsx(Qe,{"data-loc":"client/src/pages/ProfileSetup.tsx:420",gender:a.gender,onClose:je}),e.jsx("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:425",className:"py-6 px-4",children:e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:426",className:"max-w-3xl mx-auto px-4 py-6",children:[B&&e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:428",className:"mb-4 rounded-xl border border-primary/25 bg-primary/10 p-3 text-sm text-foreground",children:[e.jsx("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:429",className:"font-semibold",children:"由每週覆盤調整計劃"}),e.jsx("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:430",className:"mt-1 text-xs text-muted-foreground",children:"你而家修改嘅目標時間、體脂/肌肉目標、運動習慣同生活模式,儲存後會用來重新計算每日熱量與 AI 建議。"})]}),e.jsxs($e,{"data-loc":"client/src/pages/ProfileSetup.tsx:434",href:"/",className:"inline-flex items-center gap-2 text-muted-foreground hover:text-foreground/90 transition-colors",children:[e.jsx(Ie,{"data-loc":"client/src/pages/ProfileSetup.tsx:435",className:"w-4 h-4"}),e.jsx("span",{"data-loc":"client/src/pages/ProfileSetup.tsx:436",className:"text-sm",children:"返去首頁"})]}),e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:440",className:"mb-2",children:[e.jsx("h1",{"data-loc":"client/src/pages/ProfileSetup.tsx:441",className:"text-2xl md:text-3xl font-bold text-foreground mb-2",children:"個人資料設定"}),e.jsx("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:442",className:"text-muted-foreground text-sm",children:"填多啊資料,我哋先至可以俣你最貼身嘉建議 💪"}),e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:446",className:"flex items-center justify-center gap-2 mt-4",children:[[1,2,3].map(t=>e.jsx("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:448",className:`w-3 h-3 rounded-full transition-all ${h===t?a.gender==="male"?"bg-blue-600 scale-125":"bg-pink-600 scale-125":h>t?"bg-green-400":"bg-gray-300"}`},t)),e.jsx("span",{"data-loc":"client/src/pages/ProfileSetup.tsx:459",className:"text-xs text-muted-foreground ml-2",children:h===1?"基本資料":h===2?"生活習慣":"目標設定"})]})]}),p&&e.jsxs(R,{"data-loc":"client/src/pages/ProfileSetup.tsx:467",className:"card-premium profile-settings-card mb-6 animate-in fade-in duration-500",children:[e.jsx(W,{"data-loc":"client/src/pages/ProfileSetup.tsx:468",children:e.jsxs(Y,{"data-loc":"client/src/pages/ProfileSetup.tsx:469",className:"text-foreground flex items-center gap-2",children:[e.jsx(ze,{"data-loc":"client/src/pages/ProfileSetup.tsx:470",className:"w-5 h-5"}),"你嘅個人化健身計劃"]})}),e.jsxs(Q,{"data-loc":"client/src/pages/ProfileSetup.tsx:474",className:"space-y-5",children:[e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:476",className:"grid grid-cols-2 md:grid-cols-4 gap-3",children:[e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:477",className:"bg-white/5 dark:bg-white/3 backdrop-blur-sm p-4 rounded-xl border border-blue-500/20 shadow-sm",children:[e.jsx("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:478",className:"text-xs text-muted-foreground",children:"基礎代謝率 (BMR)"}),e.jsx("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:479",className:"text-2xl font-bold text-blue-400",children:p.bmr}),e.jsx("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:480",className:"text-xs text-muted-foreground",children:"kcal/日"})]}),e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:482",className:"bg-white/5 dark:bg-white/3 backdrop-blur-sm p-4 rounded-xl border border-blue-500/20 shadow-sm",children:[e.jsx("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:483",className:"text-xs text-muted-foreground",children:"每日消耗 (TDEE)"}),e.jsx("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:484",className:"text-2xl font-bold text-blue-400",children:p.tdee}),e.jsx("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:485",className:"text-xs text-muted-foreground",children:"kcal/日"})]}),e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:487",className:"bg-white/5 dark:bg-white/3 backdrop-blur-sm p-4 rounded-xl border border-green-500/20 shadow-sm",children:[e.jsx("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:488",className:"text-xs text-muted-foreground",children:"建議每日攝取"}),e.jsx("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:489",className:"text-2xl font-bold text-green-400",children:p.recommendedCalories}),e.jsx("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:490",className:"text-xs text-muted-foreground",children:"kcal/日"})]}),e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:492",className:`bg-white/5 dark:bg-white/3 backdrop-blur-sm p-4 rounded-xl border shadow-sm ${p.dailyCalorieDeficit>=0?"border-red-500/20":"border-emerald-500/20"}`,children:[e.jsx("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:493",className:"text-xs text-muted-foreground",children:p.dailyCalorieDeficit>=0?"每日熱量赤字":"每日熱量盈餘"}),e.jsx("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:494",className:`text-2xl font-bold ${p.dailyCalorieDeficit>=0?"text-red-400":"text-emerald-400"}`,children:Math.abs(p.dailyCalorieDeficit)}),e.jsx("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:495",className:"text-xs text-muted-foreground",children:"kcal/日"})]})]}),p.goalDescription&&e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:500",className:"bg-white/5 dark:bg-white/3 backdrop-blur-sm p-4 rounded-xl border border-indigo-500/20 shadow-sm",children:[e.jsxs("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:501",className:"text-sm text-indigo-300 font-semibold mb-1",children:["🎯 目標策略:",p.goalDescription]}),e.jsxs("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:502",className:"text-xs text-muted-foreground",children:[p.goal==="lose_weight"&&"透過 20% 熱量赤字加速減脂,配合適量
16運動保留肌肉。",p.goal==="gain_muscle"&&"透過 15% 熱量盈餘支持肌肉生長,配合重訓和高蛋白飲食。",p.goal==="recomp"&&"透過 8% 輕微赤字 + 高蛋白 (2.2g/kg) + 重訓,同時增肌減脂。進度較慢但更健康。",p.goal==="maintain"&&"熱量攝入等於 TDEE,維持現有體重和體態。"]})]}),p.bodyFatDifference>0&&e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:512",className:"grid grid-cols-3 gap-3",children:[e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:513",className:"bg-white/5 dark:bg-white/3 p-3 rounded-xl border border-amber-500/20 shadow-sm text-center",children:[e.jsx("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:514",className:"text-xs text-muted-foreground",children:"目標時間"}),e.jsxs("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:515",className:"text-lg font-bold text-amber-400",children:[p.timeline," 個月"]})]}),e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:517",className:"bg-white/5 dark:bg-white/3 p-3 rounded-xl border border-amber-500/20 shadow-sm text-center",children:[e.jsx("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:518",className:"text-xs text-muted-foreground",children:"每月減脂"}),e.jsxs("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:519",className:"text-lg font-bold text-amber-400",children:[p.monthlyChange,"%"]})]}),e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:521",className:"bg-white/5 dark:bg-white/3 p-3 rounded-xl border border-amber-500/20 shadow-sm text-center",children:[e.jsx("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:522",className:"text-xs text-muted-foreground",children:"每週減脂"}),e.jsxs("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:523",className:"text-lg font-bold text-amber-400",children:[p.weeklyChange,"%"]})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:528",className:"grid grid-cols-2 gap-3",children:[e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:529",className:"bg-white/5 dark:bg-white/3 backdrop-blur-sm p-4 rounded-xl border border-cyan-500/20 shadow-sm",children:[e.jsx("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:530",className:"text-xs text-muted-foreground",children:"💧 建議每日飲水量"}),e.jsxs("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:531",className:"text-2xl font-bold text-cyan-400",children:[Math.round(a.weight*35)," ml"]}),e.jsx("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:532",className:"text-xs text-muted-foreground mt-1",children:"體重×35ml,運動日加 500ml"})]}),e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:534",className:"bg-white/5 dark:bg-white/3 backdrop-blur-sm p-4 rounded-xl border border-purple-500/20 shadow-sm",children:[e.jsx("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:535",className:"text-xs text-muted-foreground",children:"😴 建議每日睡眠"}),e.jsx("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:536",className:"text-2xl font-bold text-purple-400",children:"7-9 小時"}),e.jsx("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:537",className:"text-xs text-muted-foreground mt-1",children:"竇唔夠會影響肌肉復原"})]})]})]})]}),e.jsxs("form",{"data-loc":"client/src/pages/ProfileSetup.tsx:544",onSubmit:Fe,children:[h===1&&e.jsxs(R,{"data-loc":"client/src/pages/ProfileSetup.tsx:547",className:"card-premium profile-settings-card animate-in fade-in duration-300",children:[e.jsxs(W,{"data-loc":"client/src/pages/ProfileSetup.tsx:548",children:[e.jsxs(Y,{"data-loc":"client/src/pages/ProfileSetup.tsx:549",className:"text-xl flex items-center gap-2",children:[e.jsx(Ve,{"data-loc":"client/src/pages/ProfileSetup.tsx:550",className:"w-5 h-5 text-orange-500"}),"基本身體數據"]}),e.jsx("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:553",className:"text-sm text-muted-foreground",children:"呢啲數據會用嚟計算你嘅 BMR 同 TDEE"})]}),e.jsxs(Q,{"data-loc":"client/src/pages/ProfileSetup.tsx:555",className:"space-y-5",children:[e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:557",className:"profile-nickname-card p-4 rounded-xl border",children:[e.jsxs(n,{"data-loc":"client/src/pages/ProfileSetup.tsx:558",className:"text-sm font-medium flex items-center gap-2 mb-2",children:[e.jsx(pe,{"data-loc":"client/src/pages/ProfileSetup.tsx:559",className:"w-4 h-4 text-purple-400"}),"你嘅花名"]}),e.jsx("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:562",className:"text-xs text-muted-foreground mb-3",children:"設個花名代替真名,在 App 入面顯示ã€
16‚唔鐘意可以隨時改!"}),e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:563",className:"flex gap-2",children:[e.jsx(k,{"data-loc":"client/src/pages/ProfileSetup.tsx:564",placeholder:"例: 爆肌叉燒包仔",value:D,onChange:t=>J(t.target.value),className:"input-fitdiet flex-1",maxLength:50,autoComplete:"off",autoCorrect:"off",spellCheck:!1,name:"nickname-fd-x9z","data-form-type":"other",onFocus:t=>setTimeout(()=>t.target.scrollIntoView({behavior:"smooth",block:"center"}),350)}),e.jsx(v,{"data-loc":"client/src/pages/ProfileSetup.tsx:577",type:"button",variant:"outline",size:"icon",onClick:ye,className:"profile-nickname-random shrink-0",title:"隨機生成花名",children:e.jsx(Re,{"data-loc":"client/src/pages/ProfileSetup.tsx:585",className:"w-4 h-4 text-purple-400"})})]}),D&&e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:589",className:"flex items-center justify-between mt-3",children:[e.jsxs("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:590",className:"profile-nickname-preview text-sm",children:["預覽:",e.jsx("span",{"data-loc":"client/src/pages/ProfileSetup.tsx:590",className:"font-bold",children:D})]}),e.jsx(v,{"data-loc":"client/src/pages/ProfileSetup.tsx:591",type:"button",size:"sm",onClick:ve,disabled:ee.isPending,className:"profile-nickname-save text-xs h-7 px-3",children:ee.isPending?"儲存中...":"儲存花名"})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:605",className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:606",children:[e.jsx(n,{"data-loc":"client/src/pages/ProfileSetup.tsx:607",className:"text-sm font-medium",children:"性別"}),e.jsxs(b,{"data-loc":"client/src/pages/ProfileSetup.tsx:608",value:a.gender,onValueChange:t=>x({...a,gender:t}),children:[e.jsx(S,{"data-loc":"client/src/pages/ProfileSetup.tsx:609",className:"mt-1.5",children:e.jsx(j,{"data-loc":"client/src/pages/ProfileSetup.tsx:609"})}),e.jsxs(y,{"data-loc":"client/src/pages/ProfileSetup.tsx:610",children:[e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:611",value:"male",children:"男性 👨"}),e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:612",value:"female",children:"女性 👩"})]})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:616",children:[e.jsx(n,{"data-loc":"client/src/pages/ProfileSetup.tsx:617",className:"text-sm font-medium",children:"年齡"}),e.jsx(k,{"data-loc":"client/src/pages/ProfileSetup.tsx:618",type:"text",inputMode:"numeric",pattern:"[0-9]*",placeholder:"例: 25",value:r.age,onChange:t=>{u(l=>({...l,age:t.target.value.replace(/[^0-9]/g,"")})),T(l=>({...l,age:""}))},className:`mt-1.5 ${d.age?"border-red-500":""}`,autoComplete:"off",name:"age-fd-x9z","data-form-type":"other",onFocus:t=>setTimeout(()=>t.target.scrollIntoView({behavior:"smooth",block:"nearest"}),350)}),d.age&&e.jsx("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:631",className:"text-xs text-red-400 mt-0.5",children:d.age})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:636",className:"grid grid-cols-3 gap-4",children:[e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:637",children:[e.jsx(n,{"data-loc":"client/src/pages/ProfileSetup.tsx:638",className:"text-sm font-medium",children:"身高 (cm)"}),e.jsx(k,{"data-loc":"client/src/pages/ProfileSetup.tsx:639",type:"text",inputMode:"numeric",pattern:"[0-9]*",placeholder:"例: 170",value:r.height,onChange:t=>{u(l=>({...l,height:t.target.value.replace(/[^0-9]/g,"")})),T(l=>({...l,height:""}))},className:`mt-1.5 ${d.height?"border-red-500":""}`,autoComplete:"off",name:"height-fd-x9z","data-form-type":"other",onFocus:t=>setTimeout(()=>t.target.scrollIntoView({behavior:"smooth",block:"nearest"}),350)}),d.height&&e.jsx("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:652",className:"text-xs text-red-400 mt-0.5",children:d.height})]}),e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:654",children:[e.jsx(n,{"data-loc":"client/src/pages/ProfileSetup.tsx:655",className:"text-sm font-medium",children:"體重 (kg)"}),e.jsx(k,{"data-loc":"client/src/pages/ProfileSetup.tsx:656",type:"text",inputMode:"decimal",pattern:"[0-9]*\\.?[0-9]*",placeholder:"ä¾
16‹: 70",value:r.weight,onChange:t=>{u(l=>({...l,weight:t.target.value.replace(/[^0-9.]/g,"")})),T(l=>({...l,weight:""}))},className:`mt-1.5 ${d.weight?"border-red-500":""}`,autoComplete:"off",name:"weight-fd-x9z","data-form-type":"other",onFocus:t=>setTimeout(()=>t.target.scrollIntoView({behavior:"smooth",block:"nearest"}),350)}),d.weight&&e.jsx("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:669",className:"text-xs text-red-400 mt-0.5",children:d.weight})]}),e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:671",children:[e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:672",className:"flex items-center justify-between",children:[e.jsx(n,{"data-loc":"client/src/pages/ProfileSetup.tsx:673",className:"text-sm font-medium",children:"體脂率 (%)"}),e.jsx(v,{"data-loc":"client/src/pages/ProfileSetup.tsx:674",type:"button",variant:"ghost",size:"sm",className:"h-6 w-6 p-0 rounded-full hover:bg-primary/20",onClick:()=>xe(!0),children:e.jsx(Oe,{"data-loc":"client/src/pages/ProfileSetup.tsx:681",className:"h-4 w-4 text-primary"})})]}),e.jsx(k,{"data-loc":"client/src/pages/ProfileSetup.tsx:684",type:"text",inputMode:"decimal",pattern:"[0-9]*\\.?[0-9]*",placeholder:"例: 25",value:r.bodyFatPercentage,onChange:t=>{u(l=>({...l,bodyFatPercentage:t.target.value.replace(/[^0-9.]/g,"")})),T(l=>({...l,bodyFatPercentage:""}))},className:`mt-1.5 ${d.bodyFatPercentage?"border-red-500":""}`,autoComplete:"off",name:"bodyfat-fd-x9z","data-form-type":"other",onFocus:t=>setTimeout(()=>t.target.scrollIntoView({behavior:"smooth",block:"nearest"}),350)}),d.bodyFatPercentage&&e.jsx("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:697",className:"text-xs text-red-400 mt-0.5",children:d.bodyFatPercentage})]})]}),a.gender==="female"&&e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:703",className:"profile-health-note p-4 rounded-xl border",children:[e.jsx("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:704",className:"text-sm font-semibold text-violet-600 dark:text-violet-200 mb-1",children:"💡 女仔健康提示"}),e.jsx("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:705",className:"text-xs text-foreground/80 leading-relaxed",children:"健康嘅女性體脂率範圍係 18-25%。過度減脂會影響胸部、皮膚質量同月經周期。 我哋會幫你設計保留女性曲線嘅減脂方案,唔使擔心!"})]}),a.gender==="female"&&e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:712",className:"profile-health-note rounded-xl border p-4 space-y-3",children:[e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:713",className:"flex items-start justify-between gap-3",children:[e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:714",children:[e.jsxs("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:715",className:"text-sm font-semibold text-violet-600 dark:text-violet-200 flex items-center gap-2",children:[e.jsx(pe,{"data-loc":"client/src/pages/ProfileSetup.tsx:715",className:"w-4 h-4"}),"週期追蹤(可選)"]}),e.jsx("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:716",className:"mt-1 text-xs leading-relaxed text-muted-foreground",children:"只用作你自己觀察睡眠、胃口、精神同訓練感受嘅模式,唔會作醫療診斷或自動改動計劃。"})]}),e.jsx("button",{"data-loc":"client/src/pages/ProfileSetup.tsx:718",type:"button",role:"switch","aria-checked":q,onClick:()=>re(t=>!t),className:`relative h-7 w-12 shrink-0 rounded-full transition-colors ${q?"bg-violet-500":"bg-muted/70"}`,children:e.jsx("span",{"data-loc":"client/src/pages/ProfileSetup.tsx:725",className:`absolute top-1 h-5 w-5 rounded-full bg-white shadow transition-transform ${q?"translate-x-6":"translate-x-1"}`})})]}),q&&e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:729",className:"space-y-3 pt-1",children:[e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:730",className:"grid grid-cols-2 gap-3",children:[e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:731",children:[e.jsx(n,{"data-loc":"client/src/pages/ProfileSetup.tsx:732",className:"text-xs",children:"平均週期(日)"}),e.jsx(k,{"data-loc":"client/src/pages/ProfileSetup.tsx:733",type:"text",inputMode:"numeric",value:ie,onChange:t=>oe(t.target.value.replace(/[^0-9]/g,"")),className:"mt-1"})]}),e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:735",children:[e.jsx(n,{"data-loc":"client/src/pages/ProfileSetup.tsx:736",className:"text-xs",children:"最近一次開始日"}),e.jsx(k,{"data-loc":"client/src/pages/ProfileSetup.tsx:737",type:"date",value:I,onChange:t=>ne(t.target.value),className:"mt-1"})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:740",children:[e.jsx(n,{"data-loc":"client/src/pages/ProfileSetup.tsx:741",className:"text-xs",children:"今次感受(可複選,只作自己觀察)"}),e.jsx("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:742",className:"mt-2 flex flex-wrap gap-2",children:Je.map(t=>{const l=de.includes(t.value);return e.jsx("button",{"data-loc":"client/src/pages/ProfileSetup.tsx:745",type:"button",onClick:()=>be(m=>l?m.filter(i=>i!==t.value):[...m,t.value]),className:`rounded-full border px-2.5 py-1 text-xs transition-colors ${l?"border-violet-400 bg-vi
16olet-500/15 text-violet-700 dark:text-violet-100":"border-border/70 text-muted-foreground hover:bg-muted/60"}`,children:t.label},t.value)})})]}),e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:749",className:"flex items-center justify-between gap-3 rounded-lg bg-black/10 px-3 py-2 text-xs text-muted-foreground",children:[e.jsxs("span",{"data-loc":"client/src/pages/ProfileSetup.tsx:750",children:["已記錄 ",Pe?.length||0," 次開始日"]}),e.jsx(v,{"data-loc":"client/src/pages/ProfileSetup.tsx:751",type:"button",variant:"ghost",size:"sm",onClick:we,disabled:ce.isPending,className:"h-7 px-2 text-violet-700 dark:text-violet-200 hover:bg-violet-500/15",children:"記錄今次"})]})]}),e.jsx(v,{"data-loc":"client/src/pages/ProfileSetup.tsx:755",type:"button",variant:"outline",size:"sm",onClick:Ne,disabled:X.isPending,className:"border-violet-400/35 text-violet-700 dark:text-violet-100 hover:bg-violet-500/15",children:X.isPending?"儲存中...":"儲存週期設定"})]}),a.gender==="male"&&e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:761",className:"profile-health-note p-4 rounded-xl border",children:[e.jsx("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:762",className:"text-sm font-semibold text-cyan-700 dark:text-cyan-200 mb-1",children:"💡 男仔健康提示"}),e.jsx("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:763",className:"text-xs text-foreground/80 leading-relaxed",children:"健康嘅男性體脂率範圍係 10-18%。可以根據目標進行更激進嘅減脂計劃。 確保進行足夠嘅重訓以保持肌肉量,唔好淨係做有氧!"})]}),e.jsx(v,{"data-loc":"client/src/pages/ProfileSetup.tsx:770",type:"button",onClick:()=>_(2),className:"w-full h-11 font-semibold",children:"下一步:生活習慣 →"})]})]}),h===2&&e.jsxs(R,{"data-loc":"client/src/pages/ProfileSetup.tsx:783",className:"card-premium profile-settings-card animate-in fade-in duration-300",children:[e.jsxs(W,{"data-loc":"client/src/pages/ProfileSetup.tsx:784",children:[e.jsxs(Y,{"data-loc":"client/src/pages/ProfileSetup.tsx:785",className:"text-xl flex items-center gap-2",children:[e.jsx(Ue,{"data-loc":"client/src/pages/ProfileSetup.tsx:785",className:"w-5 h-5 text-violet-500"}),"你嘅生活節奏"]}),e.jsx("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:786",className:"text-sm text-muted-foreground",children:"先揀最影響建議嘅兩項;其餘資料可稍後再補。"})]}),e.jsxs(Q,{"data-loc":"client/src/pages/ProfileSetup.tsx:788",className:"space-y-5",children:[e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:789",className:"profile-quick-panel grid gap-4 rounded-2xl border p-4",children:[e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:790",children:[e.jsxs(n,{"data-loc":"client/src/pages/ProfileSetup.tsx:791",className:"text-sm font-medium flex items-center gap-2",children:[e.jsx(Ge,{"data-loc":"client/src/pages/ProfileSetup.tsx:791",className:"w-4 h-4 text-cyan-600"}),"平日工作/活動"]}),e.jsxs(b,{"data-loc":"client/src/pages/ProfileSetup.tsx:792",value:a.workType,onValueChange:t=>x({...a,workType:t}),children:[e.jsx(S,{"data-loc":"client/src/pages/ProfileSetup.tsx:793",className:"input-fitdiet mt-1.5",children:e.jsx(j,{"data-loc":"client/src/pages/ProfileSetup.tsx:793"})}),e.jsxs(y,{"data-loc":"client/src/pages/ProfileSetup.tsx:794",children:[e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:794",value:"office_sitting",children:"Office 坐成日"}),e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:794",value:"office_standing",children:"Office 但成日企/行"}),e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:794",value:"retail_service",children:"零售/服務業(企成日)"}),e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:794",value:"outdoor_physical",children:"戶外/體力勞動"}),e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:794",value:"wfh",children:"WFH 在家工作"}),e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:794",value:"student",children:"學生"})]})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:797",children:[e.jsxs(n,{"data-loc":"client/src/pages/ProfileSetup.tsx:798",className:"text-sm font-medium flex items-center gap-2",children:[e.jsx(We,{"data-loc":"client/src/pages/ProfileSetup.tsx:798",className:"w-4 h-4 text-amber-500"}),"平日飲食節奏"]}),e.jsxs(b,{"data-loc":"client/src/pages/ProfileSetup.tsx:799",value:a.mealPattern,onValueChange:t=>x({...a,mealPattern:t}),children:[e.jsx(S,{"data-loc":"client/src/pages/ProfileSetup.tsx:800",className:"input-fitdiet mt-1.5",children:e.jsx(j,{"data-loc":"client/src/pages/ProfileSetup.tsx:800"})}),e.jsxs(y,{"data-loc":"client/src/pages/ProfileSetup.tsx:801",children:[e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:801",value:"regular_three",children:"正常三餐"}),e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:801",value:"skip_breakfast",children:"16:8 斷食(唔食早餐)"}),e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:801",value:"fasting_1410",children:"14:10 斷食"}),e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:801",value:"occasional_fasting",children:"間中斷食"}),e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:801",value:"irregular",children:"食飯時間唔定"}),e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:801",value:"many_small",children:"少食多餐"})]})]})]})]}),e.jsxs("details",{"data-loc":"client/src/pages/ProfileSetup.tsx:806",className:"profile-optional-panel roun
16ded-2xl border",children:[e.jsxs("summary",{"data-loc":"client/src/pages/ProfileSetup.tsx:807",className:"cursor-pointer list-none px-4 py-3 text-sm font-semibold text-foreground",children:[e.jsx("span",{"data-loc":"client/src/pages/ProfileSetup.tsx:807",className:"mr-2 text-cyan-600",children:"+"}),"補充生活資料 ",e.jsx("span",{"data-loc":"client/src/pages/ProfileSetup.tsx:807",className:"ml-1 font-normal text-muted-foreground",children:"(可略過)"})]}),e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:808",className:"grid grid-cols-1 gap-4 border-t border-border/60 px-4 pb-4 pt-3 sm:grid-cols-2",children:[e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:809",children:[e.jsx(n,{"data-loc":"client/src/pages/ProfileSetup.tsx:809",className:"text-xs",children:"朋友聚餐頻率"}),e.jsxs(b,{"data-loc":"client/src/pages/ProfileSetup.tsx:809",value:a.socialDiningFrequency,onValueChange:t=>x({...a,socialDiningFrequency:t}),children:[e.jsx(S,{"data-loc":"client/src/pages/ProfileSetup.tsx:809",className:"input-fitdiet mt-1",children:e.jsx(j,{"data-loc":"client/src/pages/ProfileSetup.tsx:809"})}),e.jsxs(y,{"data-loc":"client/src/pages/ProfileSetup.tsx:809",children:[e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:809",value:"rarely",children:"好少"}),e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:809",value:"once_week",children:"一星期一次左右"}),e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:809",value:"twice_week",children:"一星期兩次"}),e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:809",value:"three_plus_week",children:"一星期三次或以上"})]})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:810",children:[e.jsx(n,{"data-loc":"client/src/pages/ProfileSetup.tsx:810",className:"text-xs",children:"工作應酬"}),e.jsxs(b,{"data-loc":"client/src/pages/ProfileSetup.tsx:810",value:a.businessDiningFrequency,onValueChange:t=>x({...a,businessDiningFrequency:t}),children:[e.jsx(S,{"data-loc":"client/src/pages/ProfileSetup.tsx:810",className:"input-fitdiet mt-1",children:e.jsx(j,{"data-loc":"client/src/pages/ProfileSetup.tsx:810"})}),e.jsxs(y,{"data-loc":"client/src/pages/ProfileSetup.tsx:810",children:[e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:810",value:"rarely",children:"基本上冇"}),e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:810",value:"once_week",children:"一星期一次"}),e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:810",value:"twice_week",children:"一星期兩次"}),e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:810",value:"three_plus_week",children:"成日要應酬"})]})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:811",children:[e.jsx(n,{"data-loc":"client/src/pages/ProfileSetup.tsx:811",className:"text-xs",children:"飲酒習慣"}),e.jsxs(b,{"data-loc":"client/src/pages/ProfileSetup.tsx:811",value:a.drinkingHabit,onValueChange:t=>x({...a,drinkingHabit:t}),children:[e.jsx(S,{"data-loc":"client/src/pages/ProfileSetup.tsx:811",className:"input-fitdiet mt-1",children:e.jsx(j,{"data-loc":"client/src/pages/ProfileSetup.tsx:811"})}),e.jsxs(y,{"data-loc":"client/src/pages/ProfileSetup.tsx:811",children:[e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:811",value:"never",children:"完全唔飲"}),e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:811",value:"social_only",children:"社交場合先飲"}),e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:811",value:"once_week",children:"每星期飲一次"}),e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:811",value:"frequent",children:"經常飲"})]})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:812",children:[e.jsx(n,{"data-loc":"client/src/pages/ProfileSetup.tsx:812",className:"text-xs",children:"自己煮定出街食"}),e.jsxs(b,{"data-loc":"client/src/pages/ProfileSetup.tsx:812",value:a.cookingHabit,onValueChange:t=>x({...a,cookingHabit:t}),children:[e.jsx(S,{"data-loc":"client/src/pages/ProfileSetup.tsx:812",className:"input-fitdiet mt-1",children:e.jsx(j,{"data-loc":"client/src/pages/ProfileSetup.tsx:812"})}),e.jsxs(y,{"data-loc":"client/src/pages/ProfileSetup.tsx:812",children:[e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:812",value:"mostly_cook",children:"多數自己煮"}),e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:812",value:"half_half",children:"一半一半"}),e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:812",value:"mostly_eat_out",children:"多數出街食/叫外賣"}),e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:812",value:"always_eat_out",children:"全部出街食"})]})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:813",className:"sm:col-span-2",children:[e.jsx(n,{"data-loc":"client/src/pages/ProfileSetup.tsx:813",className:"text-xs",children:"宵夜習慣"}),e.jsxs(b,{"data-loc":"client/src/pages/ProfileSetup.tsx:813",value:a.lateNightSnack,onValueChange:t=>x({...a,lateNightSnack:t}),children:[e.jsx(S,{"data-loc":"client/src/pages/ProfileSetup.tsx:813",className:"input-fitdiet mt-1",children:e.jsx(j,{"data-loc":"client/src/pages/ProfileSetup.tsx:813"})}),e.jsxs(y,{"data-loc":"client/src/pages/ProfileSetup.tsx:813",children:[e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:813",value:"never",children:"從來唔食"}),e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:813",value:"sometimes",children:"間中食(一星期 1–2 次)"}),e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:813",value:"often",children:"成日食(一星期 3–4 次)"}),e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:813",value:"always",children:"幾乎每日都食"})]})]})]})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:817",className:"flex gap-3 pt-1",children:[e.jsx(v,{"data-loc":"client/src/pages/ProfileSetup.tsx:817",type:"button",variant:"outline",onClick:()=>_(1),className:"flex-1 h-11",children:"← 上一步"}),e.jsx(v,{"data-loc":"client/src/pages/ProfileSetup.tsx:817",type:"button",onClick:()=>_(3),className:"flex-1 h-11 font-semibold",children:"下一步:運動同目標 →"})]})]})]}),h===3&&e.jsxs(R,{"data-loc":"client/src/pages/ProfileSetup.tsx:824",className:"card-premium profile-settings-card animate-in fade-in duration-300",children:[e.jsxs(W,{"data-loc":"client/src/pages/ProfileSetup.tsx:825",children:[e.jsxs(Y,{"data-loc":"client/src/pages/ProfileSetup.tsx:826",className:"text-xl flex items-center gap-2",children:[e.jsx(He,{"data-loc":"client/src/pages/ProfileSetup.tsx:826",className:"w-5 h-5 text-cyan-600"}),"運動同目標"]}),e.jsx("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:827",className:"text-sm text-muted-foreground",children:"三個選項已足夠建立第一版計劃;細節可按需要補充。"})]}),e.jsxs(Q,{"data-loc":"client/src/pages/ProfileSetup.tsx:829",className:"space-y-5",children:[e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:831",className:"profile-quick-panel grid gap-4 roun
16ded-2xl border p-4",children:[e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:832",children:[e.jsx(n,{"data-loc":"client/src/pages/ProfileSetup.tsx:833",className:"text-sm font-medium",children:"主要目標"}),e.jsxs(b,{"data-loc":"client/src/pages/ProfileSetup.tsx:834",value:a.goal,onValueChange:t=>x({...a,goal:t}),children:[e.jsx(S,{"data-loc":"client/src/pages/ProfileSetup.tsx:834",className:"input-fitdiet mt-1.5",children:e.jsx(j,{"data-loc":"client/src/pages/ProfileSetup.tsx:834"})}),e.jsxs(y,{"data-loc":"client/src/pages/ProfileSetup.tsx:834",children:[e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:834",value:"lose_weight",children:"減脂"}),e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:834",value:"gain_muscle",children:"增肌"}),e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:834",value:"recomp",children:"增肌減脂"}),e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:834",value:"maintain",children:"維持體重"})]})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:836",children:[e.jsx(n,{"data-loc":"client/src/pages/ProfileSetup.tsx:837",className:"text-sm font-medium",children:"每星期運動次數"}),e.jsxs(b,{"data-loc":"client/src/pages/ProfileSetup.tsx:838",value:a.exerciseFrequency,onValueChange:t=>x({...a,exerciseFrequency:t}),children:[e.jsx(S,{"data-loc":"client/src/pages/ProfileSetup.tsx:838",className:"input-fitdiet mt-1.5",children:e.jsx(j,{"data-loc":"client/src/pages/ProfileSetup.tsx:838"})}),e.jsxs(y,{"data-loc":"client/src/pages/ProfileSetup.tsx:838",children:[e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:838",value:"rarely",children:"好少(一個月幾次)"}),e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:838",value:"once_week",children:"一星期一次"}),e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:838",value:"two_three_week",children:"一星期 2–3 次"}),e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:838",value:"four_five_week",children:"一星期 4–5 次"}),e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:838",value:"daily",children:"幾乎每日"})]})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:840",children:[e.jsx(n,{"data-loc":"client/src/pages/ProfileSetup.tsx:841",className:"text-sm font-medium",children:"整體活動程度"}),e.jsxs(b,{"data-loc":"client/src/pages/ProfileSetup.tsx:842",value:a.activityLevel,onValueChange:t=>x({...a,activityLevel:t}),children:[e.jsx(S,{"data-loc":"client/src/pages/ProfileSetup.tsx:842",className:"input-fitdiet mt-1.5",children:e.jsx(j,{"data-loc":"client/src/pages/ProfileSetup.tsx:842"})}),e.jsxs(y,{"data-loc":"client/src/pages/ProfileSetup.tsx:842",children:[e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:842",value:"sedentary",children:"久坐為主 · ×1.20"}),e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:842",value:"light",children:"日常輕度活動 · ×1.30"}),e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:842",value:"moderate",children:"規律訓練+較多走動 · ×1.40"}),e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:842",value:"active",children:"每日活動量高 · ×1.55"}),e.jsx(c,{"data-loc":"client/src/pages/ProfileSetup.tsx:842",value:"very_active",children:"體力工作/高時數訓練 · ×1.70"})]})]})]})]}),e.jsxs("details",{"data-loc":"client/src/pages/ProfileSetup.tsx:846",className:"profile-optional-panel rounded-2xl border",children:[e.jsxs("summary",{"data-loc":"client/src/pages/ProfileSetup.tsx:847",className:"cursor-pointer list-none px-4 py-3 text-sm font-semibold text-foreground",children:[e.jsx("span",{"data-loc":"client/src/pages/ProfileSetup.tsx:847",className:"mr-2 text-cyan-600",children:"+"}),"我做開咩運動 ",e.jsx("span",{"data-loc":"client/src/pages/ProfileSetup.tsx:847",className:"ml-1 font-normal text-muted-foreground",children:"(可揀多個)"})]}),e.jsx("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:848",className:"grid grid-cols-2 gap-2 border-t border-border/60 px-4 pb-4 pt-3 sm:grid-cols-3",children:Xe.map(t=>e.jsx("button",{"data-loc":"client/src/pages/ProfileSetup.tsx:850",type:"button",onClick:()=>Me(t.value),className:`px-3 py-2 rounded-lg text-sm font-medium transition-all border ${a.exerciseTypes.includes(t.value)?"bg-vi
16olet-500/15 border-violet-400 text-violet-700 dark:text-violet-200":"bg-secondary border-border text-foreground/80 hover:border-gray-400"}`,children:t.label},t.value))})]}),e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:867",className:"profile-goal-panel p-4 rounded-2xl border",children:[e.jsxs("h3",{"data-loc":"client/src/pages/ProfileSetup.tsx:868",className:"font-semibold mb-3 flex items-center gap-2",children:[e.jsx(Ae,{"data-loc":"client/src/pages/ProfileSetup.tsx:868",className:"w-5 h-5 text-amber-500"}),"目標細節"]}),a.goal!=="maintain"&&e.jsx("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:871",className:"mb-4",children:e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:872",children:[e.jsx(n,{"data-loc":"client/src/pages/ProfileSetup.tsx:873",className:"text-sm font-medium",children:"目標時間(月)"}),e.jsx(k,{"data-loc":"client/src/pages/ProfileSetup.tsx:874",type:"text",inputMode:"numeric",pattern:"[0-9]*",placeholder:"例: 3",value:r.goalTimelineMonths,onChange:t=>{u(l=>({...l,goalTimelineMonths:t.target.value.replace(/[^0-9]/g,"")})),T(l=>({...l,goalTimelineMonths:""}))},className:`mt-1.5 ${d.goalTimelineMonths?"border-red-500":""}`,autoComplete:"off",name:"timeline-fd-x9z","data-form-type":"other",onFocus:t=>setTimeout(()=>t.target.scrollIntoView({behavior:"smooth",block:"nearest"}),350)}),d.goalTimelineMonths&&e.jsx("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:887",className:"text-xs text-red-400 mt-0.5",children:d.goalTimelineMonths})]})}),e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:892",className:"grid grid-cols-2 gap-4",children:[(a.goal==="lose_weight"||a.goal==="recomp")&&e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:893",children:[e.jsx(n,{"data-loc":"client/src/pages/ProfileSetup.tsx:894",className:"text-sm font-medium",children:"目標體脂率 (%)"}),e.jsx(k,{"data-loc":"client/src/pages/ProfileSetup.tsx:895",type:"text",inputMode:"decimal",pattern:"[0-9]*\\.?[0-9]*",placeholder:"例: 20",value:r.targetBodyFatPercentage,onChange:t=>{u(l=>({...l,targetBodyFatPercentage:t.target.value.replace(/[^0-9.]/g,"")})),T(l=>({...l,targetBodyFatPercentage:""}))},className:`mt-1.5 ${d.targetBodyFatPercentage?"border-red-500":""}`,autoComplete:"off",name:"targetbf-fd-x9z","data-form-type":"other",onFocus:t=>setTimeout(()=>t.target.scrollIntoView({behavior:"smooth",block:"nearest"}),350)}),d.targetBodyFatPercentage&&e.jsx("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:908",className:"text-xs text-red-400 mt-0.5",children:d.targetBodyFatPercentage}),e.jsx("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:909",className:"text-xs text-amber-200/70 mt-1",children:a.gender==="female"?"女性建議: 18-25%":"男性建議: 10-18%"})]}),(a.goal==="gain_muscle"||a.goal==="recomp")&&e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:913",children:[e.jsx(n,{"data-loc":"client/src/pages/ProfileSetup.tsx:914",className:"text-sm font-medium",children:"目標肌肉率 (%)"}),e.jsx(k,{"data-loc":"client/src/pages/ProfileSetup.tsx:915",type:"text",inputMode:"decimal",pattern:"[0-9]*\\.?[0-9]*",placeholder:"例: 35",value:r.targetMusclePercentage,onChange:t=>{u(l=>({...l,targetMusclePercentage:t.target.value.replace(/[^0-9.]/g,"")})),T(l=>({...l,targetMusclePercentage:""}))},className:`mt-1.5 ${d.targetMusclePercentage?"border-red-500":""}`,autoComplete:"off",name:"targetmuscle-fd-x9z","data-form-type":"other",onFocus:t=>setTimeout(()=>t.target.scrollIntoView({behavior:"smooth",block:"nearest"}),350)}),d.targetMusclePercentage&&e.jsx("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:928",className:"text-xs text-red-400 mt-0.5",children:d.targetMusclePercentage})]})]}),a.goal==="maintain"&&e.jsx("p",{"data-loc":"client/src/pages/ProfileSetup.tsx:931",className:"text-sm text-muted-foreground",children:"以維持現有體態為主,日後隨時可以再加入體脂或肌肉目標。"})]}),e.jsxs("div",{"data-loc":"client/src/pages/ProfileSetup.tsx:935",className:"flex gap-3",children:[e.jsx(v,{"data-loc":"client/src/pages/ProfileSetup.tsx:936",type:"button",variant:"outline",onClick:()=>_(2),className:"flex-1 h-11",children:"← 上一步"}),e.jsx(v,{"data-loc":"client/src/pages/ProfileSetup.tsx:939",type:"submit",disabled:Z.isPending,className:"flex-1 h-11 font-semibold",children:Z.isPending?"儲存緊...":"儲存資料 ✓"})]})]})]})]})]})})]})}export{ot as default};

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.