PageSourceSearch

https://www.huntress.com/assets/transition-graphic-v2-BNXqLe-i.js

js huntress.com collected 2026-10-09 22:14:22 UTC 23,485 bytes, 33 lines download raw bytes

1import{j as F}from"./url-CY6EzJpc.js";const Ne=Math.PI/180,Be=e=>Math.round(e*100)/100,Ee=(e,t,l)=>t==="%"?e/100*l:e,be=(e,t=1440)=>{const n=String(e??"").trim().replace(/^calc\((.*)\)$/,"$1").match(/[+-]?\s*[\d.]+\s*(?:px|%)?/g);if(!n||n.length===0)return{px:0,expr:"0px"};const h=n.map(c=>c.replace(/\s+/g,"").match(/^([+-]?[\d.]+)(px|%)?$/)).filter(Boolean).map(c=>({value:parseFloat(c[1])||0,unit:c[2]||"px"})),s=h.reduce((c,g)=>c+Ee(g.value,g.unit,t),0);if(h.length===1)return{px:s,expr:`${h[0].value}${h[0].unit}`};const y=h.map((c,g)=>g===0?`${c.value}${c.unit}`:`${c.value<0?"-":"+"} ${Math.abs(c.value)}${c.unit}`).join(" ");return{px:s,expr:`calc(${y})`}},Ce=e=>{const t=String(e??"").trim();return t==="0px"||t==="0"||t==="0%"?"100%":t==="100%"?"0px":t.startsWith("calc(")?`calc(100% - (${t.slice(5,-1)}))`:`calc(100% - ${t})`},Te=89.9,Oe=e=>Math.max(-Te,Math.min(Te,e)),ke=e=>Math.tan(Oe(e)*Ne),Ge=(e=[],{refPx:t=1440,endExpr:l="100%",endPx:n=t,symmetric:h=!1}={})=>{const s=[{expr:"0px",x:0,y:0}];let y="0px",c=0,g=0,p=0;if(e.forEach(x=>{let v,d,f;if(x.positionMode==="relative"){const m=be(x.position,t).px,b=p*Ne,S=m*Math.cos(b);f=m*Math.sin(b),d=c+S,v=`calc(${y} + ${Be(S)}px)`}else{const m=be(x.position,t);d=m.px,v=m.expr,f=(d-c)*ke(p)}Math.abs(d-c)<1e-6&&Math.abs(f)<1e-6||(g+=f,s.push({expr:v,x:d,y:g}),c=d,y=v),p=Number(x.angle)||0}),h){const x=n/2;for(let v=s.length-1;v>=0;v--){const d=s[v];Math.abs(d.x-x)<1e-6||s.push({expr:Ce(d.expr),x:n-d.x,y:d.y})}}else g+=(n-c)*ke(p),s.push({expr:l,x:n,y:g});const C=s.map(x=>x.y);return{vertices:s,minY:Math.min(...C),maxY:Math.max(...C)}},je=(e,{heightAbove:t=28,heightBelow:l=28,thickness:n=2,glowThickness:h=n,bleed:s=3,orientation:y="horizontal",flipX:c=!1,flipY:g=!1}={})=>{const{vertices:p,minY:C,maxY:x}=e,v=t+(x-C)+l,d=i=>i.y-C+t,f=i=>Math.round(i*100)/100,A=y==="vertical",m=(i,T)=>A?`${T} ${i}`:`${i} ${T}`,b=(i,T)=>m(i,`${f(T)}px`),S=4,G=i=>({x:-i.y,y:i.x}),_=i=>{const T=i/2,J=n/2,oe=p.length,R=p.map(a=>({x:a.x,y:d(a)+J})),q=[];for(let a=0;a<oe-1;a++){const k=R[a+1].x-R[a].x,$=R[a+1].y-R[a].y,Q=Math.hypot(k,$)||1;q.push({x:k/Q,y:$/Q})}const ne=p.map((a,k)=>{const $=q[k-1]||q[k]||{x:1,y:0},Q=q[k]||q[k-1]||{x:1,y:0},ce=G($),W=G(Q);let Z=ce.x+W.x,ee=ce.y+W.y,X=Math.hypot(Z,ee);X<1e-6&&(Z=W.x,ee=W.y,X=Math.hypot(Z,ee)||1);const le=Z/X,we=ee/X,xe=le*W.x+we*W.y;let he=xe!==0?1/xe:S;return he=Math.max(1,Math.min(S,he)),{ox:le*T*he,oy:we*T*he}}),re=(a,k)=>k===0?a:`calc(${a} + ${f(k)}px)`,se=a=>m(re(p[a].expr,-ne[a].ox),`${f(R[a].y-ne[a].oy)}px`),o=a=>m(re(p[a].expr,ne[a].ox),`${f(R[a].y+ne[a].oy)}px`),r=[];for(let a=0;a<oe;a++)r.push(se(a));for(let a=oe-1;a>=0;a--)r.push(o(a));return`polygon(${r.join(", ")})`},z=_(n),P=_(h),M=p[0],B=p[p.length-1],U=`polygon(${[m(M.expr,`${-s}px`),m(B.expr,`${-s}px`),...[...p].reverse().map(i=>b(i.expr,d(i)))].join(", ")})`,te=`polygon(${[...p.map(i=>b(i.expr,d(i)+n)),m(B.expr,`${v+s}px`),m(M.expr,`${v+s}px`)].join(", ")})`,D=A?c:g,w=A?g:c,N=i=>w?Ce(i):i,L=i=>D?v-d(i):d(i),j=p.map(L),I=Math.min(...j),H=Math.max(...j),K=`polygon(${[...p.map(i=>b(N(i.expr),L(i)-I)),m(N("100%"),"100%"),m(N("0px"),"100%")].join(", ")})`,Y=`polygon(${[m(N("0px"),"0px"),m(N("100%"),"0px"),...[...p].reverse().map(i=>m(N(i.expr),`calc(100% - ${f(H-L(i))}px)`))].join(", ")})`;return{totalHeight:v,line:z,above:U,below:te,glow:P,startTopY:d(M),endTopY:d(B),nextClip:K,prevClip:Y}},ye={Footer:{orientation:"horizontal",symmetric:!0,segments:[{positionMode:"percent",position:"10%",angle:30},{positionMode:"relative",position:"48px",angle:0}],lineColor:"var(--color-gray-500)",lineThickness:"1.75px",showGlow:!0,glowLength:"100px",glowPosition:"50%",glowBlur:"0px",heightAbove:"28px",heightBelow:"28px"},"Single Step":{orientation:"horizontal",segments:[{positionMode:"percent",position:"45%",angle:30},{positionMode:"relative",position:"48px",angle:0}],showGlow:!1},"Over Step":{orientation:"horizontal",symmetric:!0,segments:[{positionMode:"percent",position:"0%",angle:-30},{positionMode:"relative",position:"48px",angle:0}],showGlow:!1},"Under Step":{orientation:"horizontal",symmetric:!0,segments:[{positionMode:"percent",position:"0%",angle:30},{positionMode:"relative",position:"48px",angle:0}],showGlow:!1},"Hero / CTA":{orientation:"horizontal",segments:[{positionMode:"percent",position:"40%",angle:20},{positionMode:"relative",position:"48px",angle:0}],showGlow:!0,parallax:!0},"Offset Card":{orientation:"vertical",segments:[{positionMode:"percent",position:"50%",angle:30},{positionMode:"relative",position:"60px",angle:0}
1],aboveColor:"var(--color-background)",belowColor:"transparent",pullAdjacent:!0}},Fe={Footer:"Footer: ‾‾\\_____/‾‾","Single Step":"Single Step: ‾‾‾‾‾\\_____","Over Step":"Over Step: /‾‾‾‾‾\\","Under Step":"Under Step: \\_____/"},Ve=e=>e==null||e===""||Array.isArray(e)&&e.length===0,_e=(e={})=>{const t=e.preset&&e.preset!=="Custom"?ye[e.preset]:null;if(!t)return e;const l={...e};return Object.entries(t).forEach(([n,h])=>{Ve(l[n])&&(l[n]=h)}),l},Le=new Function("options",`"use strict";
2  if (!options) return;
3  var name = options.get("preset");
4  if (!name || name === "Custom") return;
5  var PRESETS = ${JSON.stringify(ye)};
6  var preset = PRESETS[name];
7  if (!preset) return;
8  // Deep-copy arrays/objects so editing a seeded field never mutates the baked copy.
9  var clone = function (value) {
10    return Array.isArray(value) || (value !== null && typeof value === "object")
11      ? JSON.parse(JSON.stringify(value))
12      : value;
13  };
14  var setField = function (key, value) {
15    try {
16      options.set(key, clone(value));
17    } catch (err) {
18      // Editor-only path; keep going so the other fields still seed.
19      console.warn('TransitionGraphicV2 preset "' + name + '": failed to set "' + key + '"', err);
20    }
21  };
22  // Simple fields first, then the segments list last (a list set is the most likely
23  // to fail; ordering it last keeps the scalar fields populating regardless).
24  Object.keys(preset).forEach(function (key) {
25    if (key !== "segments") setField(key, preset[key]);
26  });
27  if (preset.segments) setField("segments", preset.segments);`),V={orientation:"horizontal",heightAbove:"28px",heightBelow:"28px",maxWidth:"1440px",lineThickness:"2px",lineColor:"#3a3a3a",glowColor:"#29d3d8",glowLength:"15%",glowThickness:"3px",glowBlur:"24px",glowStyle:"Bloom",glowPosition:"0%",aboveColor:"transparent",belowColor:"transparent",parallaxDistance:"50%",parallaxRangeStart:"cover 0%",parallaxRangeEnd:"cover 100%"},Se=["segments","heightAbove","heightBelow","maxWidth","lineThickness","glowThickness"],ze=[...Se,"aboveColor","belowColor","pullAdjacent","flipVertically","flipHorizontal"],Pe={maxWidth:"maxwidth",glowLength:"glow-len",glowBlur:"glow-blur",glowColor:"glow-color",glowPosition:"glow-pos",aboveColor:"above-color",belowColor:"below-color",parallaxDistance:"glow-dist",parallaxRangeStart:"parallax-range-start",parallaxRangeEnd:"parallax-range-end"},u=e=>e!=null&&e!=="",ge=e=>!u(e)||e==="transparent",ae=e=>e===!0||e==="Flipped"?"-1":e===!1||e==="Normal"?"1":null,E=e=>e===!0||e==="Flipped"?!0:e===!1||e==="Normal"?!1:null,me=e=>e===!0||e==="Shown"?"block":e===!1||e==="Hidden"?"none":null,O=e=>e===!0||e==="On"?!0:e===!1||e==="Off"?!1:null,ue=(e,t)=>e===!0||e==="On"?t:e===!1||e==="Off"?"none":null,de=e=>e==="vertical"?"vertical":e==="horizontal"?"horizontal":null,pe=e=>e==="Line"?"Line":e==="Bloom"?"Bloom":null,Ie="drop-shadow(0 0 calc(var(--tgv2-glow-blur) / 2) currentColor) drop-shadow(0 0 var(--tgv2-glow-blur) currentColor) drop-shadow(0 0 calc(var(--tgv2-glow-blur) * 2.5) currentColor)",Ye=e=>({outer:e==="Line"?"none":Ie,core:e==="Line"?"blur(calc(var(--tgv2-glow-blur) / 6))":"none"}),fe=(e,t)=>t!=="none"&&!u(e)?"transparent":u(e)?e:V.lineColor,ie=e=>`${Math.round(e*100)/100}px`,ve=(e,t={})=>{const l=u(e.maxWidth)?e.maxWidth:V.maxWidth,n=u(e.heightAbove)?e.heightAbove:V.heightAbove,h=u(e.heightBelow)?e.heightBelow:V.heightBelow,s=u(e.lineThickness)?e.lineThickness:V.lineThickness,y=u(e.glowThickness)?e.glowThickness:V.glowThickness,c=e.orientation==="vertical"?"vertical":"horizontal",g=parseFloat(l),p=Ge(Array.isArray(e.segments)?e.segments:[],{refPx:g,endExpr:"100%",endPx:g,symmetric:!!e.symmetric}),{totalHeight:C,line:x,above:v,below:d,glow:f,startTopY:A,endTopY:m,nextClip:b,prevClip:S}=je(p,{heightAbove:parseFloat(n),heightBelow:parseFloat(h),thickness:parseFloat(s),glowThickness:parseFloat(y),orientation:c,flipX:!!t.flipX,flipY:!!t.flipY});return{height:C,line:x,above:v,below:d,glowBand:f,startTopY:A,endTopY:m,nextClip:b,prevClip:S}},De=(e={})=>{const t={},l=e.tablet||{},n=e.mobile||{},h=e.orientation==="vertical"?"vertical":"horizontal",s=de(l.orientation)??h,y=de(n.orientation)??s,c=O(e.symmetric)??!1,g=O(l.symmetric)??c,p=O(n.symmetric)??g,C=(o,r,a,k)=>{const $=ve({...r,orientation:a,symmetric:k});t[`--tgv2-height-${o}`]=ie($.height),t[`--tgv2-line-${o}`]=$.line,t[`--tgv2-above-${o}`]=$.above,t[`--tgv2-below-${o}`]=$.below,t[`--tgv2-glow-band-${o}`]=$.glowBand,t[`--tgv2-start-top-${o}`]=ie($.startTopY),t[`--tgv2-end-top-${o}`]=ie($.endTopY)},x=o=>Se.some(r=>u(o[r]));C("d",e,h,c),(x(l)||s!==h||g!==c)&&C("t",{...e,...l},s,g),(x(n)||y!==s||p!==g)&&C("m",{...e,...l,...n},y,p);const v=(o,r)=>{t[`--tgv2-host-w-${o}`]=r?"var(--tgv2-height)":"100%",t[`--tgv2-host-h-${o}`]=r?"auto":"var(--tgv2-height)",t[`--tgv2-host-minh-${o}`]=r?"100%":"auto",t[`--tgv2-host-align-${o}`]=r?"stretch":"auto",t[`--tgv2-host-shrink-${o}`]=r?"0":"1",t[`--tgv2-host-minw-${o}
27`]=r?"var(--tgv2-height)":"auto",t[`--tgv2-host-maxw-${o}`]=r?"var(--tgv2-height)":"none",t[`--tgv2-core-maxw-${o}`]=r?"none":"var(--tgv2-maxwidth)",t[`--tgv2-core-maxh-${o}`]=r?"var(--tgv2-maxwidth)":"none",t[`--tgv2-core-mi-${o}`]=r?"0":"auto",t[`--tgv2-core-mbk-${o}`]=r?"auto":"0",t[`--tgv2-ext-display-${o}`]=r?"none":"block",t[`--tgv2-glow-image-${o}`]=r?"linear-gradient(180deg, transparent, currentColor 25%, currentColor 75%, transparent)":"linear-gradient(90deg, transparent, currentColor 25%, currentColor 75%, transparent)",t[`--tgv2-glow-size-${o}`]=r?"100% var(--tgv2-glow-len)":"var(--tgv2-glow-len) 100%",t[`--tgv2-glow-from-${o}`]=r?"center var(--tgv2-glow-pos, 0%)":"var(--tgv2-glow-pos, 0%) center",t[`--tgv2-glow-to-${o}`]=r?"center clamp(0%, calc(var(--tgv2-glow-pos, 0%) + var(--tgv2-glow-dist, 0%)), 100%)":"clamp(0%, calc(var(--tgv2-glow-pos, 0%) + var(--tgv2-glow-dist, 0%)), 100%) center"};v("d",h==="vertical"),s!==h&&v("t",s==="vertical"),y!==s&&v("m",y==="vertical");const d=o=>/^-?[\d.]+$/.test(String(o).trim())?`${o}px`:o;Object.entries(Pe).forEach(([o,r])=>{const a=o==="glowBlur"?d:k=>k;t[`--tgv2-${r}-d`]=a(u(e[o])?e[o]:V[o]),u(l[o])&&(t[`--tgv2-${r}-t`]=a(l[o])),u(n[o])&&(t[`--tgv2-${r}-m`]=a(n[o]))});const f=o=>ie(parseFloat(u(o)?o:V.lineThickness));t["--tgv2-thick-d"]=f(e.lineThickness),u(l.lineThickness)&&(t["--tgv2-thick-t"]=f(l.lineThickness)),u(n.lineThickness)&&(t["--tgv2-thick-m"]=f(n.lineThickness)),t["--tgv2-flipx-d"]=ae(e.flipHorizontal)||"1";const A=ae(l.flipHorizontal);A!=null&&(t["--tgv2-flipx-t"]=A);const m=ae(n.flipHorizontal);m!=null&&(t["--tgv2-flipx-m"]=m),t["--tgv2-flipy-d"]=ae(e.flipVertically)||"1";const b=ae(l.flipVertically);b!=null&&(t["--tgv2-flipy-t"]=b);const S=ae(n.flipVertically);S!=null&&(t["--tgv2-flipy-m"]=S),t["--tgv2-glow-display-d"]=me(e.showGlow)||"none";const G=me(l.showGlow);G!=null&&(t["--tgv2-glow-display-t"]=G);const _=me(n.showGlow);_!=null&&(t["--tgv2-glow-display-m"]=_);const z="tgv2-glow-parallax";t["--tgv2-parallax-name-d"]=ue(e.parallax,z)||"none";const P=ue(l.parallax,z);P!=null&&(t["--tgv2-parallax-name-t"]=P);const M=ue(n.parallax,z);M!=null&&(t["--tgv2-parallax-name-m"]=M);const B=e.glowStyle==="Line"?"Line":"Bloom",U=pe(l.glowStyle)??B,te=pe(n.glowStyle)??U,D=(o,r)=>{const a=Ye(r);t[`--tgv2-glow-outer-filter-${o}`]=a.outer,t[`--tgv2-glow-core-filter-${o}`]=a.core};D("d",B),pe(l.glowStyle)!=null&&D("t",U),pe(n.glowStyle)!=null&&D("m",te);const w=t["--tgv2-glow-display-d"];t["--tgv2-line-color-d"]=fe(e.lineColor,w);const N=G??w;(G!=null||u(l.lineColor))&&(t["--tgv2-line-color-t"]=fe(l.lineColor,N));const L=_??G??w;(_!=null||u(n.lineColor))&&(t["--tgv2-line-color-m"]=fe(n.lineColor,L)),u(e.transitionColor)&&(t["--tgv2-transition-color-d"]=e.transitionColor),u(l.transitionColor)&&(t["--tgv2-transition-color-t"]=l.transitionColor),u(n.transitionColor)&&(t["--tgv2-transition-color-m"]=n.transitionColor);const j=(o,r,a,k,$)=>{const Q=ve(r).height,ce=parseFloat(u(r.heightAbove)?r.heightAbove:V.heightAbove),W=parseFloat(u(r.heightBelow)?r.heightBelow:V.heightBelow),Z=a&&ge(r.aboveColor)?ie(-(Q-W)):"0px",ee=a&&ge(r.belowColor)?ie(-(Q-ce)):"0px",X=k?ee:Z,le=k?Z:ee;t[`--tgv2-mt-${o}`]=$?"0px":X,t[`--tgv2-mb-${o}`]=$?"0px":le,t[`--tgv2-ml-${o}`]=$?X:"0px",t[`--tgv2-mr-${o}`]=$?le:"0px",t[`--tgv2-z-${o}`]=X!=="0px"||le!=="0px"?"1":"auto"},I=O(e.pullAdjacent)??!1,H=O(l.pullAdjacent)??I,K=O(n.pullAdjacent)??H,Y=E(e.flipVertically)??!1,i=E(l.flipVertically)??Y,T=E(n.flipVertically)??i,J=E(e.flipHorizontal)??!1,oe=E(l.flipHorizontal)??J,R=E(n.flipHorizontal)??oe,q=h==="vertical"?J:Y,ne=s==="vertical"?oe:i,re=y==="vertical"?R:T;j("d",e,I,q,h==="vertical");const se=["pullAdjacent","aboveColor","belowColor","heightAbove","heightBelow","flipVertically","flipHorizontal"];return(se.some(o=>u(l[o]))||s!==h)&&j("t",{...e,...l},H,ne,s==="vertical"),(se.some(o=>u(n[o]))||y!==s)&&j("m",{...e,...l,...n},K,re,y==="vertical"),t},He=(e={},t)=>{if(!t)return"";const l=e.tablet||{},n=e.mobile||{},h=O(e.pullAdjacent)??!1,s=O(l.pullAdjacent)??h,y=O(n.pullAdjacent)??s,c=E(e.flipVertically)??!1,g=E(l.flipVertically)??c,p=E(n.flipVertically)??g,C=E(e.flipHorizontal)??!1,x=E(l.flipHorizontal)??C,v=E(n.flipHorizontal)??x,d=e.orientation==="vertical"?"vertical":"horizontal",f=de(l.orientation)??d,A=de(n.orientation)??f,m=O(e.symmetric)??!1,b=O(l.symmetric)??m,S=O(n.symmetric)??b,G=`.builder-${t} + *`,_=`:has(+ .builder-${t})`,z=(w,N,L,j,I,H)=>{if(!N)return{next:null,prev:null};const{nextClip:K,prevClip:Y}=ve({...w,orientation:I,symmetric:H},{flipX:L,flipY:j}),i=I==="vertical"?L:j,T=ge(w.aboveColor),J=ge(w.belowColor);return{next:(i?T:J)?K:null,prev:(i?J:T)?Y:null}},P=(w,N)=>`${w} { clip-path: ${N||"none"}; }`,M=z(e,h,C,c,d,m);let B="";M.next&&(B+=P(G,M.next)+`
28`),M.prev&&(B+=P(_,M.prev)+`
29`);const U=(w,N,L,j,I,H,K,Y)=>{const i=z(N,L,j,I,H,K);let T="";return i.next!==Y.next&&(T+="  "+P(G,i.next)+`
30`),i.prev!==Y.prev&&(T+="  "+P(_,i.prev)+`
31`),T?`@media screen and (max-width: ${w}) {
32${T}}
33`:""},te=w=>ze.some(N=>u(w[N]));let D=M;if(te(l)||f!==d||b!==m){const w={...e,...l};B+=U("767px",w,s,x,g,f,b,M),D=z(w,s,x,g,f,b)}if(te(n)||A!==f||S!==b){const w={...e,...l,...n};B+=U("479px",w,y,v,p,A,S,D)}return B},Re=e=>{if(!e)return null;
33const l=(String(e).match(/builder-[a-z0-9]+/g)||[]).find(n=>n!=="builder-block");return l?l.slice(8):null},We=e=>{const t=_e(e),l=De(t),n=["tgv2"];e.className&&n.push(e.className);const{className:h,style:s,key:y,...c}=(e==null?void 0:e.attributes)||{};h&&n.push(h);const g=Re(h),p=g?He(t,g):"";return F.jsxs("div",{...c,className:n.join(" "),style:{...s,...l,...e.style||{}},"aria-hidden":"true",children:[p?F.jsx("style",{children:p}):null,F.jsxs("div",{className:"tgv2-flip",children:[F.jsx("span",{className:"tgv2-ext tgv2-ext-left"}),F.jsx("span",{className:"tgv2-ext tgv2-ext-right"}),F.jsxs("div",{className:"tgv2-core",children:[F.jsx("div",{className:"tgv2-above"}),F.jsx("div",{className:"tgv2-below"}),F.jsx("div",{className:"tgv2-line"}),F.jsx("div",{className:"tgv2-glow",children:F.jsx("div",{className:"tgv2-glow-core"})})]})]})]},y)},Xe=[{name:"positionMode",friendlyName:"Position mode",type:"string",enum:["fixed","relative","percent"],defaultValue:"percent",helperText:"fixed = px from start; relative = px from previous segment; percent = % of core width."},{name:"position",friendlyName:"Position",type:"string",defaultValue:"10%",helperText:'px (fixed/relative) or % (percent). fixed/percent also accept a mixed expression, e.g. "90% - 36.4px", to place a corner at percent ± px.'},{name:"angle",friendlyName:"Angle (°)",type:"number",defaultValue:0,min:-180,max:180,helperText:"Absolute degrees for the run leaving this point, −180 to 180; positive descends toward the run's forward direction. Steep / near-vertical runs are best done with a relative segment (it travels an exact length at any angle). A fixed/percent segment reaches an x-coordinate, so it can't travel near-vertical (angles are clamped to ±89.9° there)."}],Me={name:"segments",friendlyName:"Segments",type:"list",helperText:"Each point where the line changes direction. Line starts horizontal at the left edge and continues at the last angle to the right edge.",defaultValue:[],subFields:Xe},Ae=[{name:"symmetric",friendlyName:"Symmetric",type:"boolean",help:"Author only the LEFT half of the shape in Segments; the divider mirrors it about the centre to build the right half. Guarantees equal ends and mirrored corners while holding the exact segment angles/lengths (use a relative diagonal for a true angle at any width). Turn off to author the full path yourself.",overrideEnum:["Inherit","On","Off"]},{name:"heightAbove",friendlyName:"Height above line",help:"Padding above the walked line; adds to the total height."},{name:"heightBelow",friendlyName:"Height below line",help:"Padding below the walked line; adds to the total height."},{name:"maxWidth",friendlyName:"Max width",help:"Caps the angled core; beyond this width the flat end lines continue to the viewport edges. Also the reference width percent positions resolve against."},{name:"lineThickness",friendlyName:"Line thickness",help:"Thickness of the transition line."},{name:"lineColor",friendlyName:"Line color",type:"color",help:"Color of the transition line. Leave blank when the glow is visible to hide the stroke (glow-only). When the glow is hidden, blanks fall back to #3a3a3a."},{name:"aboveColor",friendlyName:"Background above line",type:"color",help:"Background above the line (transparent allowed)."},{name:"belowColor",friendlyName:"Background below line",type:"color",help:"Background below the line (transparent allowed)."},{name:"pullAdjacent",friendlyName:"Pull adjacent section",type:"boolean",help:"When a side's fill is transparent, collapse that side's padding with a negative margin so the neighbouring section pulls in flush against the line.",overrideEnum:["Inherit","On","Off"]},{name:"showGlow",friendlyName:"Show glow",type:"boolean",help:"Show the accent glow. Off by default.",overrideEnum:["Inherit","Shown","Hidden"]},{name:"glowColor",friendlyName:"Glow color",type:"color",help:"Color of the accent glow."},{name:"glowLength",friendlyName:"Glow length",help:"Width of the accent glow."},{name:"glowThickness",friendlyName:"Glow thickness",help:"Thickness of the bright glow core."},{name:"glowBlur",friendlyName:"Glow blur",help:"Spread of the soft glow halo."},{name:"glowStyle",friendlyName:"Glow style",type:"string",enum:["Bloom","Line"],defaultValue:"Bloom",overrideEnum:["Inherit","Bloom","Line"],help:"Bloom = a bright core with a soft outward halo (default). Line = a tight glow contained on the line, no halo (the previous style)."},{name:"glowPosition",friendlyName:"Glow position",help:"Where the glow sits along the line (0% = start, 100% = end). With Parallax on, the glow starts here and travels by Parallax distance."},{name:"parallax",friendlyName:"Glow parallax",type:"boolean",help:"Slide the glow along the line as the graphic scrolls through the viewport (uses CSS scroll-driven animation; gracefully static where unsupported or when reduced motion is preferred).",overrideEnum:["Inherit","On","Off"]},{name:"parallaxDistance",friendlyName:"Parallax distance",help:"How far along the line the glow travels from Glow position as the section scrolls (signed % of the line; negative travels back toward the start). Only applies when Parallax is on."},{name:"parallaxRangeStart",friendlyName:"Parallax range start",help:"When the parallax sweep begins, as a scroll-driven animation range: a named range (`entry`, `cover`, `exit`, `contain`) + %, e.g. `cover 0%`. Use `entry`/`exit` for dividers near the top/bottom of the page (a `cover` range never fully plays for them)."},{name:"parallaxRangeEnd",friendlyName:"Parallax range end",help:"When the sweep ends, e.g. `cover 100%` (or `exit 100%`)."},{name:"transitionColor",friendlyName:"Glow transition color",type:"color",help:"When set, the glow fades from its Glow color to this color as the graphic scrolls (requires Parallax on). Leave blank for no color change."},{name:"flipVertically",friendlyName:"Flip vertically",type:"boolean",help:"Mirror the entire component top-to-bottom.",overrideEnum:["Inherit","Flipped","Normal"]},{name:"flipHorizontal",friendlyName:"Flip horizontal",type:"boolean",help:"Mirror the entire component left-to-right.",overrideEnum:["Inherit","Flipped","Normal"]}],Ue=Ae.map(e=>e.type==="boolean"?{name:e.name,friendlyName:e.friendlyName,type:"boolean",defaultValue:!1,helperText:e.help}:{name:e.name,friendlyName:e.friendlyName,type:e.type||"string",...e.enum?{enum:e.enum}:{},defaultValue:V[e.name],helperText:e.help}),$e=[{name:"orientation",friendlyName:"Orientation",type:"string",enum:["Inherit","horizontal","vertical"],defaultValue:"Inherit",helperText:"Override the orientation for this breakpoint."},{...Me,helperText:"Override the desktop segments for this breakpoint."},...Ae.map(e=>e.overrideEnum?{name:e.name,friendlyName:e.friendlyName,type:"string",enum:e.overrideEnum,defaultValue:"Inherit",helperText:`Override the desktop "${e.friendlyName}" for this breakpoint.`}:{name:e.name,friendlyName:e.friendlyName,type:e.type||"string",helperText:"Leave blank to inherit the desktop value."})],Je={component:We,name:"v2:TransitionGraphic",friendlyName:"Transition Graphic (v2)",noWrap:!0,description:"A decorative transition divider driven by an author-defined array of segments (position + angle), with an accent glow that traces — and optionally follows — the line. Desktop / Tablet / Mobile are independently configurable.",input
33s:[{name:"preset",friendlyName:"Preset",type:"string",enum:["Custom",...Object.keys(ye)].map(e=>({label:Fe[e]||e,value:e})),defaultValue:"Custom",helperText:"Pick a predefined shape to fill styling fields below. The selected preset also drives the line shape at render while Segments is empty — add or edit Segments to take over.",onChange:Le},{name:"orientation",friendlyName:"Orientation",type:"string",enum:["horizontal","vertical"],defaultValue:"horizontal",helperText:"Horizontal spans between stacked sections; vertical is an in-card divider between side-by-side halves (aboveColor = near/left side, belowColor = far/right). A vertical divider fills the row height automatically — place it in a flex row between two halves (no explicit height needed); it also fills a definite-height parent. With no flex row and no definite-height ancestor it collapses to 0 and is invisible. pullAdjacent works in both orientations (vertical pulls the left/right siblings)."},Me,...Ue,{name:"tablet",friendlyName:"Tablet overrides",type:"object",collapsed:!0,defaultValue:{},helperText:"Optional overrides applied at ≤ 767px. Blank fields inherit desktop.",subFields:$e},{name:"mobile",friendlyName:"Mobile overrides",type:"object",collapsed:!0,defaultValue:{},helperText:"Optional overrides applied at ≤ 479px. Blank fields inherit tablet, then desktop.",subFields:$e}]};export{We as T,Je as a};

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.