1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3185],{9123:function(e,t,n){Promise.resolve().then(n.t.bind(n,8003,23)),Promise.resolve().then(n.bind(n,1523)),Promise.resolve().then(n.bind(n,49)),Promise.resolve().then(n.t.bind(n,784,23)),Promise.resolve().then(n.t.bind(n,2909,23)),Promise.resolve().then(n.bind(n,6917)),Promise.resolve().then(n.bind(n,9236)),Promise.resolve().then(n.t.bind(n,9268,23))},3515:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(t,{cancelIdleCallback:function(){return r},requestIdleCallback:function(){return n}});var n="undefined"!=typeof self&&self.requestIdleCallback&&self.requestIdleCallback.bind(window)||function(e){var t=Date.now();return self.setTimeout(function(){e({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-t))}})},1)},r="undefined"!=typeof self&&self.cancelIdleCallback&&self.cancelIdleCallback.bind(window)||function(e){return clearTimeout(e)};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},1523:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"BailoutToCSR",{enumerable:!0,get:function(){return s}});var r=n(8993);function s(e){var t=e.reason,n=e.children;if("undefined"==typeof window)throw new r.BailoutToCSRError(t);return n}},49:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(76);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"PreloadCss",{enumerable:!0,get:function(){return a}});var s=n(7437),o=n(544);function a(e){var t=e.moduleIds;if("undefined"!=typeof window)return null;var n=(0,o.getExpectedRequestStore)("next/dynamic css"),a=[];if(n.reactLoadableManifest&&t){var i=n.reactLoadableManifest,l=!0,u=!1,c=void 0;try{for(var d,f=t[Symbol.iterator]();!(l=(d=f.next()).done);l=!0){var m=d.value;if(i[m]){var h=i[m].files.filter(function(e){return e.endsWith(".css")});a.push.apply(a,r._(h))}}}catch(e){u=!0,c=e}finally{try{l||null==f.return||f.return()}finally{if(u)throw c}}}return 0===a.length?null:(0,s.jsx)(s.Fragment,{children:a.map(function(e){return(0,s.jsx)("link",{precedence:"dynamic",rel:"stylesheet",href:n.assetPrefix+"/_next/"+encodeURI(e),as:"style"},e)})})}},6917:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});
1var r=n(76),s=n(2265),o=n(8896),a=["hourglass","pear","apple","inverted-triangle","rectangle"],i={hourglass:"https://www.discoverfashions.com/body-shapes/hourglass/",pear:"https://www.discoverfashions.com/body-shapes/pear/",apple:"https://www.discoverfashions.com/body-shapes/apple/","inverted-triangle":"https://www.discoverfashions.com/body-shapes/inverted-triangle/",rectangle:"https://www.discoverfashions.com/body-shapes/rectangle/"};function l(){return(0,s.useEffect)(function(){if("undefined"!=typeof navigator&&(null===(e=navigator.modelContext)||void 0===e?void 0:e.provideContext)){var e,t=[{name:"calculate_body_shape",description:"Classify body shape (hourglass, pear, apple, inverted-triangle, rectangle) from shoulder, bust, waist, and hip measurements. Returns the shape name and the URL of the corresponding style guide.",inputSchema:{type:"object",properties:{shoulder:{type:"number",description:"Shoulder width",minimum:1},bust:{type:"number",description:"Bust circumference",minimum:1},waist:{type:"number",description:"Waist circumference",minimum:1},hips:{type:"number",description:"Hip circumference",minimum:1},unit:{type:"string",description:"Measurement unit",enum:["cm","inches"]}},required:["shoulder","bust","waist","hips"]},execute:function(e){var t,n="inches"===e.unit?"inches":"cm",r=(0,o.S$)({shoulder:Number(e.shoulder),bust:Number(e.bust),waist:Number(e.waist),hips:Number(e.hips),unit:n});return{shape:r,guideUrl:null!==(t=i[r])&&void 0!==t?t:null}}},{name:"open_body_shape_guide",description:"Get the URL of the DiscoverFashions style guide for a specific body shape.",inputSchema:{type:"object",properties:{shape:{type:"string",description:"Body shape name",enum:(0,r._)(a)}},required:["shape"]},execute:function(e){var t=String(e.shape),n=i[t];return n?{shape:t,url:n}:{error:"Unknown shape: ".concat(t),validShapes:a}}}];try{navigator.modelContext.provideContext({tools:t})}catch(e){}}},[]),null}},9236:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return i}});var r=n(3583),s=n(7437),o=n(2265),a="df_adblock_dismissed";function i(){var e=(0,r._)((0,o.useState)(!1),2),t=e[0],n=e[1],i=(0,o.useCallback)(function(){n(!1);try{sessionStorage.setItem(a,"1")}catch(e){}document.documentElement.classList.remove("df-modal-open")},[]);return((0,o.useEffect)(function(){try{if(sessionStorage.getItem(a))return}catch(e){return}var e=document.createElement("div");e.className="ad-banner ad-placeholder adsbox doubleclick",e.setAttribute("data-ad-slot","bait"),e.style.cssText="position:absolute;top:-1px;left:-1px;width:1px;height:1px;overflow:hidden;pointer-events:none;",document.body.appendChild(e);var t=setTimeout(function(){var t=window.getComputedStyle(e),r=0===e.offsetHeight||0===e.clientHeight||"none"===t.display||"hidden"===t.visibility||"0"===t.opacity;e.parentNode&&e.parentNode.removeChild(e),r&&(n(!0),document.documentElement.classList.add("df-modal-open"))},1500);return function(){clearTimeout(t),e.parentNode&&e.parentNode.removeChild(e),document.documentElement.classList.remove("df-modal-open")}},[]),(0,o.useEffect)(function(){if(t){var e=function(e){"Escape"===e.key&&i()};return document.addEventListener("keydown",e),function(){return document.removeEventListener("keydown",e)}}},[t,i]),t)?(0,s.jsx)("div",{role:"dialog","aria-modal":"true","aria-label":"Ad blocker detected",className:"fixed inset-0 flex items-center justify-center p-4",style:{zIndex:9998,backgroundColor:"rgba(0, 0, 0, 0.5)"},onClick:function(e){e.target===e.currentTarget&&i()},children:(0,s.jsxs)("div",{className:"bg-white rounded-2xl max-w-md w-full p-8 shadow-xl animate-fade-in",onClick:function(e){return e.stopPropagation()},children:[(0,s.jsx)("div",{className:"flex justify-end mb-2",children:(0,s.jsx)("button",{onClick:i,className:"text-gray-400 hover:text-gray-600 transition-colors","aria-label":"Close",children:(0,s.jsx)("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",children:(0,s.jsx)("path",{d:"M15 5L5 15M5 5l10 10",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})})})}),(0,s.jsx)("div",{className:"text-center mb-4",children:(0,s.jsx)("span",{className:"inline-block text-4xl",role:"img","aria-hidden":"true",children:"\uD83D\uDC9C"})}),(0,s.jsx)("h2",{className:"text-xl font-semibold text-center mb-3",style:{color:"#2D3436"},children:"You're using an ad blocker"}),(0,s.jsx)("p",{className:"text-center text-sm leading-relaxed mb-2",style:{color:"#525A5E"},children:"We totally understand, nobody loves ads. But DiscoverFashions is free because of them. Our calculators, quizzes, and style guides cost nothing to use, and we would love to keep it that way."}),(0,s.jsx)("p",{className:"text-center text-sm leading-relaxed mb-6",style:{color:"#525A5E"},children:"If you find our tools helpful, adding us to your whitelist would mean a lot. Thank y
1ou for supporting free fashion tools."}),(0,s.jsxs)("div",{className:"flex flex-col items-center gap-3",children:[(0,s.jsx)("button",{onClick:i,className:"w-full py-3 px-6 rounded-xl text-white font-medium text-sm transition-colors",style:{backgroundColor:"#D63384"},onMouseOver:function(e){return e.currentTarget.style.backgroundColor="#b82a70"},onMouseOut:function(e){return e.currentTarget.style.backgroundColor="#D63384"},children:"I'll whitelist this site"}),(0,s.jsx)("button",{onClick:i,className:"text-sm underline transition-colors",style:{color:"#525A5E"},onMouseOver:function(e){return e.currentTarget.style.color="#2D3436"},onMouseOut:function(e){return e.currentTarget.style.color="#525A5E"},children:"Continue anyway"})]})]})}):null}},8896:function(e,t,n){"use strict";function r(e){var t=[],n=e.shoulder,r=e.bust,s=e.waist,o=e.hips,a=e.unit,i="cm"===a?20:8,l="cm"===a?200:80;return!n||n<=0?t.push("Please enter your shoulder width"):(n<i||n>l)&&t.push("Shoulder must be between ".concat(i," and ").concat(l," ").concat(a)),!r||r<=0?t.push("Please enter your bust measurement"):(r<i||r>l)&&t.push("Bust must be between ".concat(i," and ").concat(l," ").concat(a)),!s||s<=0?t.push("Please enter your waist measurement"):(s<i||s>l)&&t.push("Waist must be between ".concat(i," and ").concat(l," ").concat(a)),!o||o<=0?t.push("Please enter your hip measurement"):(o<i||o>l)&&t.push("Hips must be between ".concat(i," and ").concat(l," ").concat(a)),0===t.length&&s>r&&s>o&&t.push("Waist measurement seems too large compared to bust and hips"),{isValid:0===t.length,errors:t}}function s(e){var t=e.shoulder,n=e.bust,r=e.waist,s=e.hips;return Math.abs(n-s)<=.05*s&&r<=.75*s&&r<=.75*n?"hourglass":s>1.05*n&&r<.85*s?"pear":r/s>=.85&&n>s?"apple":(t/s>1.05||n/s>1.05)&&r<n?"inverted-triangle":"rectangle"}function o(e){var t=e.shoulder,n=e.waist,r=e.hips;return n>=.95*t&&n>=.95*r?"oval":t>1.05*r&&t>1.15*n?"inverted-triangle":r>1.05*t?"triangle":t>1.1*n&&Math.abs(t-r)<=.06*t?"trapezoid":"rectangle"}function a(e){var t=[],n=e.shoulder,r=e.bust,s=e.waist,o=e.hips,a=e.unit,i="cm"===a?20:8,l="cm"===a?200:80,u=!0,c=!1,d=void 0;try{for(var f,m=[{value:n,label:"Shoulder",missing:"Please enter your shoulder width"},{value:r,label:"Chest",missing:"Please enter your chest measurement"},{value:s,label:"Waist",missing:"Please enter your waist measurement"},{value:o,label:"Hips",missing:"Please enter your hip measurement"}][Symbol.iterator]();!(u=(f=m.next()).done);u=!0){var h=f.value;!h.value||h.value<=0?t.push(h.missing):(h.value<i||h.value>l)&&t.push("".concat(h.label," must be between ").concat(i," and ").concat(l," ").concat(a))}}catch(e){c=!0,d=e}finally{try{u||null==m.return||m.return()}finally{if(c)throw d}}return{isValid:0===t.length,errors:t}}n.d(t,{S$:function(){return s},VS:function(){return r},YS:function(){return a},dg:function(){return o}})},9268:function(){},784:function(e){e.exports={style:{fontFamily:"'__Inter_f367f3', '__Inter_Fallback_f367f3'",fontStyle:"normal"},className:"__className_f367f3",variable:"__variable_f367f3"}},2909:function(e){e.exports={style:{fontFamily:"'__Playfair_Display_6b3ed8', '__Playfair_Display_Fallback_6b3ed8'",fontStyle:"normal"},className:"__className_6b3ed8",variable:"__variable_6b3ed8"}}},function(e){e.O(0,[5843,8003,2971,2117,1744],function(){return e(e.s=9123)}),_N_E=e.O()}]);
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.