لیبل اور حقیقی حالات چیک کریں۔ پیش گوئی لیگیز کی واٹر پروف یا حرارتی صلاحیت کی ضمانت نہیں دیتی۔
موسم کی تفصیل سے جانچ کریں
گھنٹہ وار پیش گوئیاں، عملی لباس کی فہرست اور امریکی سرکاری الرٹس دیکھیں۔ ہم صرف وہی لوڈ کرتے ہیں جو آپ مانگتے ہیں۔
📈 اگلے 7 دن اور گھنٹے
درجہ حرارت، نمی، بارش، UV، صاف آسمان اور ہوا۔
🎒 موسم کے مطابق باہر جانے کی فہرست
محفوظ شدہ پیش گوئی کے ساتھ فہرست تیار کریں، بغیر اضافی خریداری یا کالز کے۔
⚠️ امریکی سرکاری الرٹس
National Weather Service کے جاری کردہ انتباہات برائے امریکی مقامات۔
ذرائع: MET Norway، PlaceDB (CC0) اور NWS۔ فہرست کیشڈ پیش گوئی استعمال کرتی ہے، لباس کے تجربات نہیں۔
مشورہ کیسے تیار کیا جاتا ہے
ہم پیش گوئی کو آپ کی پسند کے ساتھ جوڑتے ہیں، لباس کی خصوصیات کا اندازہ لگائے بغیر۔
حقیقی پیش گوئی
درجہ حرارت، دستیاب محسوس درجہ حرارت، ہوا اور بارش MET Norway کی طرف سے۔
آپ کی لیگنگز
آپ بتائیں کہ وہ ہلکے، معمولی یا تھرمل ہیں۔ یہ کوئی لیبارٹری ٹیسٹ نہیں ہے۔
آپ کی سرگرمی
شہری سفر اور طویل پیدل سفر کے لیے مختلف پرتوں کی ضرورت ہوتی ہے۔
سردی، بارش یا ہوا کے وقت لیگنگز کے ساتھ کیا پہنیں
سب سے پہلے حقیقی پیش گوئی دیکھیں۔ پرتوں کو درجہ حرارت، بارش، ہوا اور موسم کے مطابق ایڈجسٹ کریں۔ فائبر کا فیصد یہ نہیں بتاتا کہ وہ کتنی گرمائش فراہم کرتے ہیں۔
❄️
سردی کے لیے لیگنگز کے سیٹ
مختصر سفر کے لیے معمولی لیگنگز، جرسی اور کوٹ کام کر سکتے ہیں۔ صفر ڈگری کے قریب یا طویل پیدل سفر کے دوران، حقیقی انسولیشن اور بیرونی پرت پر غور کریں۔ اچھے گرفت والے بند جوتے پہنیں۔
🌧️
بارش کے وقت لیگنگز کے ساتھ کیا پہنیں
زیادہ تر لیگنگز واٹر پروف نہیں ہوتے۔ ایک واٹر ریزسٹنٹ بیرونی پرت، اچھے سول والے بند جوتے اور ایسی کپڑے پہنیں جو آپ اندر چھت کے نیچے اتار سکیں۔
🌬️
ہوا دار یا معتدل دن
ہوا کے وقت ونڈ بریکر جیکٹ فائبرز کے نام سے زیادہ اہم ہو سکتی ہے۔ نرم موسم میں آرام دہ ٹاپ اور ہلکی پرتیں پہنیں جو آسانی سے اتاری جا سکیں۔
حقیقی حالات کے لیے چھ سیٹ
پیش گوئی ایک رہنمائی ہے، یونیفارم نہیں۔ اپنی پرتوں کو اپنے راستے، سرگرمی اور موجودہ کپڑوں کے مطابق ایڈجسٹ کریں۔
🌧️
شہر میں بارش
اپیک لیگنگز کو جرسی، واٹر ریزسٹنٹ کوٹ اور اچھے گرفت والے جوتوں کے ساتھ جوڑیں۔
باہر نکلنے سے پہلے: گیلا فرش اور گرم اندرونی جگہوں کے لیے مختلف پرتوں کی ضرورت ہوتی ہے۔
اضافی مقامات اور اندازاً کوآرڈینیٹس: GeoNames, CC BY 4.0; ایڈیٹوریل انتخاب۔ GeoNames۔
(function(){
"use strict";
var root=document.querySelector('[data-tool=weather]');if(!root)return;
var L={"find":"مزید شہر تلاش کریں","hint":"کیا آپ اپنی جگہ نہیں ڈھونڈ پا رہے؟ منتخب ملک میں تلاش کریں یا مزید ممالک لوڈ کریں۔ GPS یا IP کی بنیاد پر تلاش نہیں۔","lookup":"جگہ کا نام","search":"مقامات تلاش کریں","countries":"مزید ممالک","empty":"کوئی نتائج نہیں۔","loading":"مقامات تلاش کیے جا رہے ہیں…","choose":"اس جگہ کا انتخاب کریں","intro":"موسم کی تفصیل سے جانچ کریں","lead":"گھنٹہ وار پیش گوئیاں، عملی لباس کی فہرست اور امریکی سرکاری الرٹس دیکھیں۔ ہم صرف وہی لوڈ کرتے ہیں جو آپ مانگتے ہیں۔","forecast":"گھنٹے اور اگلے 7 دن","forecastDesc":"درجہ حرارت، نمی، بارش، UV، صاف آسمان اور ہوا۔","alerts":"امریکی سرکاری الرٹس","alertsDesc":"National Weather Service کے جاری کردہ الرٹس برائے امریکی مقامات۔","go":"مشورہ کریں","hour":"اگلے گھنٹے (UTC)","days":"اگلے دن (تاریخیں UTC)","unavailable":"ذرائع عارضی طور پر دستیاب نہیں۔","nothing":"کوئی مطابقت رکھنے والی قیمتیں نہیں۔","notUS":"NWS کے الرٹس صرف امریکہ میں دستیاب ہیں۔","noAlerts":"کوئی فعال سرکاری انتباہات نہیں ہیں۔","countryReady":"ممالک کی فہرست لوڈ ہو گئی ہے۔","source":"ذرائع: MET Norway، PlaceDB (CC0) اور NWS۔ فہرست کیشڈ پیش گوئی استعمال کرتی ہے، لباس کے ٹیسٹ نہیں۔","pack":"موسم کے مطابق باہر جانے کی فہرست","packDesc":"محفوظ پیش گوئی استعمال کرتے ہوئے فہرست تیار کریں، بغیر اضافی خریداری یا کالز کے۔","packItems":["آپ کی لیگنگز","گرم کپڑا یا کوٹ","بارش سے بچاؤ کے لیے بیرونی پرت","ہوا روکنے والی جیکٹ","گرم موزے اور بند جوتے","آرام دہ جوتے جن میں گرفت ہو"],"packCopy":"فہرست نقل کریں","packSaved":"فہرست نقل ہو گئی"},country=root.querySelector('#wa-country'),city=root.querySelector('#wa-city');
var input=root.querySelector('#wa-place-query'),matches=root.querySelector('.wa-place-matches'),status=root.querySelector('.wa-place-status-text');
function item(tag,value){var e=document.createElement(tag);e.textContent=String(value);return e;}
function query(){
var opt=city.selectedOptions[0],p=new URLSearchParams();
if(opt&&opt.dataset.placeId){p.set('country',country.value);p.set('place',opt.dataset.placeId);p.set('q',opt.dataset.query);}
else if(city.value)p.set('city',city.value);
return p;
}
var placeEpoch=0,panelEpoch={forecast:0,pack:0,alerts:0};
function clear(){placeEpoch++;for(var mode in panelEpoch)panelEpoch[mode]++;matches.replaceChildren();status.textContent='';for(var e of root.querySelectorAll('.wa-deep-output'))e.replaceChildren();}
country.addEventListener('change',clear);city.addEventListener('change',clear);
var find=root.querySelector('.wa-place-find');
find.addEventListener('click',async function(){
var value=input.value.trim();if(value.length<2){input.focus();return;}
var findIntent=++placeEpoch,chosenCountry=country.value;
status.textContent=L.loading;matches.replaceChildren();find.disabled=true;
try{
var r=await fetch('/api/weather-places?country='+encodeURIComponent(country.value)+'&q='+encodeURIComponent(value));
if(!r.ok)throw Error('places');var d=await r.json();if(findIntent!==placeEpoch||country.value!==chosenCountry)return;if(!d.places||!d.places.length)status.textContent=L.empty;
else status.textContent=d.places.length+' · '+L.choose;
for(const p of d.places||[]){
var li=item('li',''),b=item('button',p.name);
b.type='button';b.addEventListener('click',function(){
if(findIntent!==placeEpoch||country.value!==chosenCountry)return;
var opt=document.createElement('option');opt.value='p-'+p.country+'-'+p.id;opt.textContent=p.name;
opt.dataset.placeId=String(p.id);opt.dataset.query=value;city.append(opt);city.disabled=false;city.value=opt.value;
city.dispatchEvent(new Event('change',{bubbles:true}));status.textContent=p.name+' ✓';matches.replaceChildren();
});li.append(b);matches.append(li);
}
}catch{if(findIntent===placeEpoch)status.textContent=L.unavailable;}finally{find.disabled=false;}
});
input.addEventListener('keydown',function(e){if(e.key==='Enter'){e.preventDefault();find.click();}});
root.querySelector('.wa-all-countries').addEventListener('click',async function(){
var button=this;button.disabled=true;status.textContent=L.loading;
try{
var r=await fetch('/api/weather-countries');if(!r.ok)throw Error('countries');
var d=await r.json(),already=new Set(Array.from(country.options,x=>x.value)),extra=[];
var fmt=new Intl.DisplayNames([document.documentElement.lang||'en'],{type:'region'});
for(var c of d.countries||[]){if(!/^[A-Z]{2}$/.test(c.code)||already.has(c.code))continue;
var o=document.createElement('option');o.value=c.code;o.textContent=fmt.of(c.code)||c.name;
country.append(o);extra.push(c.code);}
window.__leggicMoreCountries=[...new Set([...(window.__leggicMoreCountries||[]),...extra])];
status.textContent=L.countryReady;button.hidden=true;
}catch{status.textContent=L.unavailable;button.disabled=false;}
});
function line(box,name,value){var row=item('div','');row.className='wa-deep-line';row.append(item('span',name),item('strong',value));box.append(row);}
for(const btn of root.querySelectorAll('.wa-deep-fetch')){
btn.addEventListener('click',async function(){
var mode=btn.dataset.mode,box=root.querySelector('.wa-deep-output[data-mode="'+mode+'"]');
var intent=++panelEpoch[mode],selectedCountry=country.value,selectedCity=city.value;
if(!city.value){box.textContent=L.empty;return;}
box.textContent=L.loading;btn.disabled=true;
var p=query(),url=mode==='alerts'?'/api/weather-alerts':'/api/weather-advice';
if(mode==='forecast'||mode==='pack')p.set('view','extended');
try{
var r=await fetch(url+'?'+p.toString());if(!r.ok)throw Error('source');
var d=await r.json();if(intent!==panelEpoch[mode]||city.value!==selectedCity||country.value!==selectedCountry)return;box.replaceChildren();
if(mode==='forecast'){
var a=item('div','');a.className='wa-deep-lines';
if(Number.isFinite(d.humidity))line(a,'💧',d.humidity+'%');
if(Number.isFinite(d.uvClearSky))line(a,'UV (clear sky)',d.uvClearSky);
if(Number.isFinite(d.windGustMs))line(a,'Wind gust',d.windGustMs+' m/s');
for(var h of (d.hourly||[]).slice(0,18))line(a,h.time.slice(5,16).replace('T',' ')+' UTC',h.temperatureC+' °C'+(Number.isFinite(h.precipChance)?' · '+h.precipChance+'%':''));
box.append(a);
var b=item('div','');b.className='wa-deep-lines';
for(var day of d.daily||[])line(b,day.dayUTC,day.lowC+' / '+day.highC+' °C');
box.append(item('h4',L.days),b);
}else if(mode==='pack'){
if(!Number.isFinite(d.temperatureC))throw Error('missing temperature');
var items=[L.packItems[0]];
if(d.temperatureC<10)items.push(L.packItems[1]);
if((Number.isFinite(d.precipMm)&&d.precipMm>=0.2)||/rain|snow|sleet/i.test(d.symbol||''))items.push(L.packItems[2]);
if(d.windMs>=8)items.push(L.packItems[3]);
items.push(d.temperatureC<5?L.packItems[4]:L.packItems[5]);
var list=item('ul','');list.className='wa-packing-list';
for(const label of [...new Set(items)]){var li=item('li',label);list.append(li);}
box.append(list);
var copy=item('button',L.packCopy);copy.type='button';copy.className='wa-pack-copy';
copy.addEventListener('click',async function(){try{
await navigator.clipboard.writeText(items.join('\n'));copy.textContent=L.packSaved;
}catch{copy.textContent=L.unavailable;}});
box.append(copy);
}else{
if(!d.supported){box.textContent=L.notUS;return;}
if(!d.alerts?.length){box.textContent=L.noAlerts;return;}
for(var a of d.alerts)line(box,a.severity,a.event+': '+a.headline);
var link=item('a','National Weather Service');link.href='https://www.weather.gov/';link.rel='noopener noreferrer';box.append(link);
}
}catch{if(intent===panelEpoch[mode])box.textContent=L.unavailable;}finally{btn.disabled=false;}
});
}
})();document.addEventListener('DOMContentLoaded',()=>{setTimeout(()=>{
// The deferred app.js initializes its tool on DOMContentLoaded; run just after it.
const button=document.getElementById('buildLook');if(!button)return;
const labels={it:'Abbinamento',de:'Outfit',es:'Conjunto',fr:'Tenue',en:'Look'};
const enhance=()=>{
const result=document.querySelector('#lookResult .result');
if(!result||result.querySelector('.style-look-grid'))return;
const items=[...result.querySelectorAll('ol li')].slice(0,3);
if(!items.length)return;
const selectedText=id=>{
const element=document.getElementById(id);
return element?.selectedOptions?.[0]?.textContent?.trim()||element?.value||'';
};
const metaText=[selectedText('color'),selectedText('season'),selectedText('shoes')].filter(Boolean).join(' · ');
const grid=document.createElement('div');grid.className='style-look-grid';
items.forEach((item,index)=>{
const card=document.createElement('article');card.className='style-look';
const meta=document.createElement('span');meta.className='style-look-meta';meta.textContent=metaText;
const content=document.createElement('div'),title=document.createElement('b'),copy=document.createElement('p');
title.textContent=(labels[document.documentElement.lang]||labels.en)+' '+(index+1);
copy.innerHTML=item.innerHTML;
content.append(title,copy);card.append(meta,content);grid.append(card);
});
result.querySelector('ol')?.replaceWith(grid);
};
const next=()=>setTimeout(enhance,0);
button.addEventListener('click',next);
for(const id of ['color','season','occasion','shoes','finish'])document.getElementById(id)?.addEventListener('change',next);
next();
},0);});(()=>{const root=document.querySelector('header.site-header [data-lp]');if(!root)return;const t=root.querySelector('.lp-trigger'),d=root.querySelector('.lp-dialog');if(!d||typeof d.showModal!=='function')return;const f=d.querySelector('.lp-filter'),items=[...d.querySelectorAll('.lp-item')],groups=[...d.querySelectorAll('.lp-group')],empty=d.querySelector('.lp-empty');const norm=s=>s.toLowerCase().normalize('NFD').replace(/[\u0300-\u036f]/g,'');const apply=()=>{const q=norm(f.value.trim());let shown=0;items.forEach(a=>{const ok=!q||norm(a.dataset.names+' '+a.textContent).includes(q);a.parentElement.hidden=!ok;if(ok)shown++;});groups.forEach(g=>{g.hidden=![...g.querySelectorAll('li')].some(li=>!li.hidden)});empty.hidden=shown>0;};t.addEventListener('click',e=>{if(e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;e.preventDefault();d.showModal();f.value='';apply();if(window.matchMedia('(pointer:fine)').matches)f.focus();else d.querySelector('.lp-item.is-current')?.scrollIntoView({block:'center'});});d.querySelector('.lp-close').addEventListener('click',()=>d.close());d.addEventListener('click',e=>{if(e.target===d)d.close()});f.addEventListener('input',apply);f.addEventListener('keydown',e=>{if(e.key==='Enter'){const first=items.find(a=>!a.parentElement.hidden);if(first){e.preventDefault();first.click();}}});d.addEventListener('close',()=>t.focus());})();