PageSourceSearch

https://naughtonandbird.com/_next/static/chunks/210-603883f52abd1891.js

js naughtonandbird.com collected 2026-10-04 03:55:13 UTC 12,135 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[210],{199:(e,n,t)=>{t.r(n),t.d(n,{default:()=>l});var a=t(5155),i=t(2115);let r="#version 300 es\nprecision highp float;\n#define TRAIL ".concat(16,"\nuniform vec2 u_res;\nuniform float u_time;\nuniform vec4 u_trail[TRAIL]; // xy = pos (uv), z = age (1 fresh -> 0), w = stir energy\nuniform vec3 u_hot;   // the hot streak running through the curtains\nuniform vec3 u_base;  // the curtain body\nuniform vec3 u_fringe;\nuniform vec3 u_hi;    // the bright core where the field peaks\nuniform vec3 u_ink;   // the fill where the curtains thin out\n\nout vec4 o;\n\nfloat hash(vec2 p) { return fract(sin(dot(p, vec2(127.1, 311.7))) * 43758.5453123); }\nfloat noise(vec2 p) {\n  vec2 i = floor(p), f = fract(p);\n  f = f * f * (3.0 - 2.0 * f);\n  return mix(mix(hash(i), hash(i + vec2(1, 0)), f.x),\n             mix(hash(i + vec2(0, 1)), hash(i + vec2(1, 1)), f.x), f.y);\n}\nfloat fbm(vec2 p) {\n  float v = 0.0, a = 0.5;\n  for (int i = 0; i < 5; i++) { v += a * noise(p); p *= 2.03; a *= 0.5; }\n  return v;\n}\n\nvoid main() {\n  vec2 uv = gl_FragCoord.xy / u_res;\n  float aspect = u_res.x / u_res.y;\n  vec2 p = vec2(uv.x * aspect, uv.y);\n  float t = u_time * 0.11;\n\n  // The stir wake: decaying swirls along the pointer's recent path.\n  vec2 sw = vec2(0.0);\n  for (int i = 0; i < TRAIL; i++) {\n    vec4 tr = u_trail[i];\n    vec2 d = p - vec2(tr.x * aspect, tr.y);\n    float r = length(d);\n    float fall = exp(-r * r * 10.0);\n    sw += vec2(-d.y, d.x) / max(r, 0.06) * fall * tr.z * tr.w * 0.11;\n  }\n  float e = clamp(length(sw) * 2.0, 0.0, 1.0);\n\n  // Marbling: the field folds into itself, and the wake folds it further.\n  vec2 q = p + sw;\n  vec2 w1 = vec2(fbm(q * 1.6 + vec2(t * 0.6, -t * 0.3)),\n                 fbm(q * 1.6 + vec2(-t * 0.4, t * 0.5) + 5.2));\n  q += (w1 - 0.5) * 0.52;\n\n  float curtains = fbm(vec2(q.x * 2.3 + t, q.y * 0.9 - t * 0.4));\n  curtains = pow(curtains, 2.2);\n  float streaks = fbm(vec2(q.x * 6.0 - t * 1.5, q.y * 1.6 + t * 0.7));\n  float vshape = mix(0.3, 1.0, smoothstep(0.0, 0.72, uv.y));\n  float field = curtains * (0.5 + 0.5 * streaks) * vshape;\n  field += e * 0.28;\n\n  // Borealis: luminous curtains with contrasting fringes, coloured per\n  // variant through the palette uniforms.\n  float sel = fbm(vec2(q.x * 1.7 - t * 0.5, q.y * 1.2 + t * 0.35) + 3.7);\n  vec3 body = mix(u_base, u_hot, smoothstep(0.3, 0.7, streaks));\n  vec3 tint = mix(body, u_fringe, smoothstep(0.58, 0.86, sel) * 0.75);\n\n  vec3 col = tint * field * 1.25;\n  col += u_hi * pow(field, 2.4) * 0.6;\n\n  // The inky fill takes over where the curtains thin out, so the field\n  // never dies to flat black.\n  float inkCloud = 0.5 + 0.5 * fbm(vec2(q.x * 1.2 + t * 0.3, q.y - t * 0.2) + 9.1);\n  col += u_ink * (1.0 - smoothstep(0.0, 0.5, field)) * inkCloud * 0.6;\n\n  float vig = smoothstep(1.25, 0.4, length(uv - vec2(0.5, 0.65)));\n  col *= mix(0.72, 1.0, vig);\n\n  float a = clamp(max(col.r, max(col.g, col.b)), 0.0, 1.0);\n  o = vec4(col, a);\n}"),s={agentic:[[.494,.996,.012],[.15,.9,.45],[.55,.42,1],[.85,1,.82],[.07,.28,.5]],klaviyo:[[1,.42,.72],[.52,.36,.95],[.42,.62,1],[1,.88,.97],[.14,.15,.42]]};function l(e){let{variant:n="agentic"}=e,t=(0,i.useRef)(null);return(0,i.useEffect)(()=>{let e=t.current;if(!e||window.matchMedia("(prefers-reduced-motion: reduce)").matches)return;let a=document.createElement("canvas");e.appendChild(a);let i=a.getContext("webgl2",{alpha:!0,premultipliedAlpha:!0,antialias:!1});if(!i)return void e.removeChild(a);let l=(e,n)=>{let t=i.createShader(e);return i.shaderSource(t,n),i.compileShader(t),i.getShaderParameter(t,i.COMPILE_STATUS)?t:null},c=l(i.VERTEX_SHADER,"#version 300 es\nvoid main() {\n  vec2 pos = vec2(float((gl_VertexID << 1) & 2), float(gl_VertexID & 2));\n  gl_Position = vec4(pos * 2.0 - 1.0, 0.0, 1.0);\n}"),o=l(i.FRAGMENT_SHADER,r);if(!c||!o)return void e.removeChild(a);let m=i.createProgram();if(i.attachShader(m,c),i.attachShader(m,o),i.linkProgram(m),!i.getProgramParameter(m,i.LINK_STATUS))return void e.removeChild(a);i.useProgram(m);let d=i.getUniformLocation(m,"u_res"),h=i.getUniformLocation(m,"u_time"),u=i.getUniformLocation(m,"u_trail"),[f,v,g,p,x]=s[n];i.uniform3fv(i.getUniformLocation(m,"u_hot"),f),i.uniform3fv(i.getUniformLocation(m,"u_base"),v),i.uniform3fv(i.getUniformLocation(m,"u_fringe"),g),i.uniform3fv(i.getUniformLocation(m,"u_hi"),p),i.uniform3fv(i.getUniformLocation(m,"u_ink"),x);let _=Math.min(window.devicePixelRatio||1,1.5),y=()=>{let n=e.getBoundingClientRect();a.width=Math.max(1,Math.round(n.width*_)),a.height=Math.max(1,Math.round(n.height*_)),i.viewport(0,0,a.width,a.height)};y();let w=new ResizeObserver(y);w.observe(e);let b=[],N=0,j=null,q=null,k=null,A=e=>{let n=a.getBoundingClientRect();return 0===n.height?null:{x:(e.clientX-n.left)/n.width,y:1-(e.clientY-n.top)/n.height}},S=e=>{let n=A(e);if(n){if(n.x<-.2||n.x>1.2||n.y<-.5||n.y>1.5){j=null;return}j=n,q||(q={...n},k={...n})}};window.addEventListener("pointermove",S,{passive:!0});let M=e=>{let n=A(e);n&&(n.x<-.05||n.x>1.05||n.y<-.05||n.y>1.05||(b[N%16]={x:n.x,y:n.y,vx:0,vy:0,energy:1,born:performance.now()},N++,j=n,q={...n},k={...n}))};window.addEventListener("pointerdown",M,{passive:!0});let E=new Float32Array(64),L=0,R=!1,C=performance.now(),I=C,P=e=>{let n=Math.min((e-C)/1e3,.05);if(C=e,j&&q&&n>0){let t=1-Math.exp(-(2.2*n)),a=(j.x-q.x)*t,i=(j.y-q.y)*t,r=Math.hypot(a,i),s=.45*n;r>s&&(a*=s/r,i*=s/r),q.x+=a,q.y+=i;let l=Math.min(r,s)/n;k&&Math.hypot(q.x-k.x,q.y-k.y)>.02&&(b[N%16]={x:q.x,y:q.y,vx:a/n*.4,vy:i/n*.4,energy:Math.min(1.5*l,.75),born:e},N++,k={x:q.x,y:q.y})}let t=Math.exp(-(1.4*n));for(let a=0;a<16;a++){let i=b[a];if(!i)continue;i.x+=i.vx*n,i.y+=i.vy*n,i.vx*=t,i.vy*=t;let r=(e-i.born)/3400,s=Math.min(r/.4,1),l=Math.max(0,1-r);E[4*a]=i.x,E[4*a+1]=i.y,E[4*a+2]=s*l*l,E[4*a+3]=i.energy}i.uniform2f(d,a.width,a.height),i.uniform1f(h,(e-I)/1e3),i.uniform4fv(u,E),i.drawArrays(i.TRIANGLES,0,3),L=requestAnimationFrame(P)},T=e=>
1{e&&!R&&(R=!0,C=performance.now(),L=requestAnimationFrame(P)),!e&&R&&(R=!1,cancelAnimationFrame(L))},U=new IntersectionObserver(e=>{let[n]=e;return T(n.isIntersecting&&!document.hidden)});U.observe(e);let O=()=>T(!document.hidden);return document.addEventListener("visibilitychange",O),()=>{T(!1),U.disconnect(),w.disconnect(),window.removeEventListener("pointermove",S),window.removeEventListener("pointerdown",M),document.removeEventListener("visibilitychange",O),e.removeChild(a)}},[n]),(0,a.jsx)("div",{ref:t,className:"agentic-field","aria-hidden":"true"})}},728:(e,n,t)=>{t.d(n,{default:()=>r});var a=t(5155),i=t(2115);function r(e){let{items:n,defaultOpen:t=null}=e,[r,s]=(0,i.useState)(t);return(0,a.jsx)("div",{className:"svc-acc",children:n.map((e,n)=>(0,a.jsxs)("div",{className:"svc-acc__row",children:[(0,a.jsxs)("button",{className:"svc-acc__head","aria-expanded":r===n,onClick:()=>s(r===n?null:n),children:[(0,a.jsxs)("span",{className:"section-num svc-acc__num",children:["(",e.num,")"]}),(0,a.jsxs)("span",{className:"svc-acc__text",children:[(0,a.jsx)("h3",{className:"mb-8",children:e.name}),(0,a.jsx)("span",{className:"body-2 svc-acc__summary",children:e.summary})]}),(0,a.jsx)("span",{className:"svc-acc__toggle ".concat(r===n?"svc-acc__toggle--open":""),"aria-hidden":"true",children:"+"})]}),r===n&&(0,a.jsxs)("div",{className:"svc-acc__bodyrow",children:[(0,a.jsxs)("span",{className:"section-num svc-acc__num svc-acc__num--ghost","aria-hidden":"true",children:["(",e.num,")"]}),(0,a.jsx)("div",{className:"svc-acc__body",children:e.body})]})]},e.num))})}},1512:(e,n,t)=>{t.r(n),t.d(n,{default:()=>r});var a=t(5155),i=t(2115);function r(e){let{faqs:n}=e,[t,r]=(0,i.useState)(null);return(0,a.jsx)("div",{children:n.map((e,i)=>{let s=t===i;return(0,a.jsxs)("div",{className:"faq-item ".concat(i===n.length-1?"faq-item--last":""),children:[(0,a.jsxs)("button",{onClick:()=>r(s?null:i),className:"faq-item__toggle",children:[(0,a.jsx)("span",{className:"faq-item__question",children:e.q}),(0,a.jsx)("span",{className:"faq-item__icon ".concat(s?"faq-item__icon--open":""),children:"+"})]}),(0,a.jsx)("div",{className:"faq-item__content ".concat(s?"faq-item__content--open":""),children:(0,a.jsx)("div",{className:"faq-item__content-inner",children:(0,a.jsx)("p",{className:"body-2 faq-item__answer",children:e.a})})})]},e.q)})})}},2333:(e,n,t)=>{t.d(n,{default:()=>s});var a=t(5155),i=t(2115),r=t(5239);function s(e){let{photos:n,label:t}=e,s=(0,i.useRef)(null),[l,c]=(0,i.useState)(null);return(0,i.useEffect)(()=>{let e=s.current;if(!e)return;let n=()=>{c(e.scrollWidth/2/50)};n();let t=new ResizeObserver(n);return t.observe(e),()=>t.disconnect()},[]),(0,a.jsx)("section",{className:"photo-marquee","aria-label":t,children:(0,a.jsx)("div",{ref:s,className:"photo-marquee__track",style:l?{animationDuration:"".concat(l,"s")}:{animationPlayState:"paused"},children:[...n,...n].map((e,t)=>(0,a.jsx)("div",{className:"photo-marquee__item","aria-hidden":t>=n.length,children:(0,a.jsx)(r.default,{src:e.src,alt:t<n.length?e.alt:"",width:e.w,height:e.h,sizes:"(max-width: 768px) 60vw, 34vw",className:"photo-marquee__img"})},t))})})}},8936:(e,n,t)=>{t.d(n,{default:()=>m});var a=t(5155),i=t(2115),r=t(5239),s=t(2619),l=t.n(s),c=t(63);let o=["Agentic","GEO","Shopify SEO","Hong Kong","Dubai","Klaviyo"];function m(e){let{posts:n,basePath:t="/signals",showFilters:s=!0}=e,m=(0,c.useSearchParams)(),d=[...new Set(n.map(e=>e.category))],h=e=>{let n=o.indexOf(e);return -1===n?o.length:n},u=["All",...d.sort((e,n)=>h(e)-h(n)||e.localeCompare(n))],f=m.get("category")||"All",v=s&&u.includes(f)?f:"All",g="All"===v?n:n.filter(e=>e.category===v),p=Math.max(1,Math.ceil(g.length/12)),x=Number(m.get("page")||"1"),_=Number.isInteger(x)?Math.min(Math.max(x,1),p):1,y=g.slice((_-1)*12,12*_),w=(0,i.useRef)(null),b=(0,i.useRef)(null);(0,i.useEffect)(()=>{if(null!==b.current&&b.current!==_){var e;null==(e=w.current)||e.scrollIntoView({block:"start",behavior:"smooth"})}b.current=_},[_]);let N=e=>{let n=new URLSearchParams;"All"!==v&&n.set("category",v),e>1&&n.set("page",String(e));let a=n.toString();return a?"".concat(t,"?").concat(a):t};return(0,a.jsxs)("div",{ref:w,className:"signals-grid-root",children:[s&&(0,a.jsx)("div",{className:"signals-filters",children:u.map(e=>(0,a.jsx)(l(),{href:"All"===e?t:"".concat(t,"?category=").concat(encodeURIComponent(e)),scroll:!1,className:"signals-filter".concat(v===e?" signals-filter--active":""),children:e},e))}),(0,a.jsx)("div",{className:"cards-3",children:y.map(e=>{var n;return(0,a.jsxs)(l(),{href:"/signals/".concat(e.slug),className:"cards-3__item",children:[(0,a.jsx)("div",{className:"cards-3__img",children:(0,a.jsx)(r.default,{src:e.image,alt:null!=(n=e.imageAlt)?n:e.title,fill:!0,sizes:"(max-width: 768px) 100vw, 33vw",style:{objectFit:"cover"}})}),(0,a.jsxs)("div",{className:"cards-3__body",children:[(0,a.jsxs)("div",{className:"post-meta",children:[(0,a.jsx)("span",{children:e.category}),(0,a.jsx)("span",{children:"\xb7"}),(0,a.jsx)("span",{children:e.date})]}),(0,a.jsx)("h3",{className:"cards-3__title mb-12",children:e.title}),(0,a.jsx)("p",{className:"body-2 mb-20 flex-1",children:e.excerpt}),(0,a.jsx)("span",{className:"cards-3__read mt-auto",children:"Read →"})]})]},e.slug)})}),p>1&&(0,a.jsxs)("nav",{className:"signals-pagination","aria-label":"Article pages",children:[_>1?(0,a.jsx)(l(),{href:N(_-1),scroll:!1,className:"signals-pagination__arrow",children:"← Newer"}):(0,a.jsx)("span",{className:"signals-pagination__arrow signals-pagination__arrow--off",children:"← Newer"}),(0,a.jsx)("div",{className:"signals-pagination__pages",children:Array.from({length:p},(e,n)=>n+1).map(e=>e===_?(0,a.jsx)("span",{className:"signals-pagination__page signals-pagination__page--active","aria-current":"page",children:e},e):(0,a.jsx)(l(),{href:N(e),scroll:!1,className:"signals-pagination__page",children:e},e))}),_<p?(0,a.jsx)(l(),{href:N(_+1),scroll:!1,className:"signals-pagination__arrow",children:"Older →"}):(0,a.jsx)("span",{className:"signals-pagination__arrow signals-pagination__arrow--off",children:"Older →"})]})]})}}}]);

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.