PageSourceSearch

https://asenno.com/_app/immutable/chunks/CWPbcHHC.js

js asenno.com collected 2026-10-08 13:54:15 UTC 17,464 bytes, 107 lines download raw bytes

1function e(e,{width:l,height:o},a){const{mode:n}=a
2switch(e.imageSmoothingEnabled=!1,e.clearRect(0,0,l,o),e.fillStyle="#1a1a1a",e.fillRect(0,0,l,o),n){case"profile":((e,l,o,a)=>{const{renderIntent:n,showComparison:r,showLabels:i,testAsset:f}=a,c=["ICC v2","ICC v4"],h=l/c.length
3c.forEach((l,a)=>{const r=Math.floor(a*h),c=Math.floor((a+1)*h)-r
4e.fillStyle="#333333",e.fillRect(r,0,c,40),e.fillStyle="#ffffff",e.font="bold 14px monospace",e.textAlign="center",e.fillText(l,r+c/2,25),t(e,{x:r,y:40,width:c,height:o-80},f,e=>((e,t,l)=>{let o=1
5return o="ICC v4"===t?"perceptual"===l?.95:1.02:"relative"===l?.98:1,[Math.min(255,Math.round(e[0]*o)),Math.min(255,Math.round(e[1]*o)),Math.min(255,Math.round(e[2]*o))]})(e,l,n),i)}),r&&((e,t,l,o)=>{e.fillStyle="rgba(0, 0, 0, 0.8)",e.fillRect(10,l,t-20,35),e.fillStyle="#ffffff",e.font="11px monospace",e.textAlign="left",e.fillText(`Rendering Intent: ${s[o]}`,20,l+22)})(e,l,o-40,n)})(e,l,o,a)
6break
7case"cssColor":((e,l,o,a)=>{const{showLabels:n,testAsset:r}=a,i=[{name:"color(display-p3)",colors:["color(display-p3 1 0 0)","color(display-p3 0 1 0)","color(display-p3 0 0 1)","color(display-p3 1 1 0)","color(display-p3 1 0 1)","color(display-p3 0 1 1)"],fallback:["#ff0000","#00ff00","#0000ff","#ffff00","#ff00ff","#00ffff"]},{name:"lab() / lch()",colors:["lab(50% 50 0)","lab(70% 0 50)","lab(30% -50 0)","lch(50% 50 0)","lch(70% 30 90)","lch(60% 40 180)"],fallback:["#d17c7c","#b8b849","#006a4e","#d1527c","#7cb85c","#3cb8b8"]},{name:"oklch() / oklab()",colors:["oklch(60% 0.15 30)","oklch(70% 0.2 120)","oklch(50% 0.25 240)","oklab(0.6 0.1 0.05)","oklab(0.7 -0.1 0.1)","oklab(0.5 0 -0.15)"],fallback:["#c97a6d","#6daf6d","#5b6dc9","#b88080","#8ab88a","#6d8ab8"]}],f=o/i.length
8i.forEach((o,a)=>{const i=Math.floor(a*f),c=Math.floor((a+1)*f)-i,s=l/o.colors.length
9e.fillStyle="#2a2a2a",e.fillRect(0,i,l,30),e.fillStyle="#ffffff",e.font="bold 12px monospace",e.textAlign="left",e.fillText(o.name,10,i+20),"patches"===r||"gradient"===r?o.colors.forEach((t,l)=>{const a=Math.floor(l*s),r=Math.floor((l+1)*s)-a,f=i+30,h=c-30
10try{CSS.supports("color",t)?e.fillStyle=t:e.fillStyle=o.fallback[l]}catch{e.fillStyle=o.fallback[l]}e.fillRect(a,f,r,h),e.strokeStyle="rgba(255, 255, 255, 0.2)",e.lineWidth=1,e.strokeRect(a,f,r,h),n&&r>80&&(e.fillStyle="#ffffff",e.font="9px monospace",e.textAlign="center",e.save(),e.translate(a+r/2,f+h/2),e.rotate(-Math.PI/4),e.fillText(t.substring(0,20),0,0),e.restore())}):t(e,{x:0,y:i+30,width:l,height:c-30},r,e=>e.map(e=>Math.min(255,e*(1+.05*a))),n)})})(e,l,o,a)
11break
12case"canvas":((e,l,o,a)=>{const{showLabels:n,testAsset:r}=a,i=[{name:"srgb (default)",value:"srgb"},{name:"display-p3",value:"display-p3"},{name:"rec2020",value:"rec2020"}],f=l/i.length
13i.forEach((l,a)=>{const i=a*f
14e.fillStyle="#333333",e.fillRect(i,0,f,40),e.fillStyle="#ffffff",e.font="bold 12px monospace",e.textAlign="center",e.fillText(l.name,i+f/2,25),t(e,{x:i,y:40,width:f,height:o-80},r,e=>"display-p3"===l.value?[Math.min(255,1.05*e[0]),Math.min(255,1.03*e[1]),Math.min(255,1.07*e[2])]:"rec2020"===l.value?[Math.min(255,1.08*e[0]),Math.min(255,1.05*e[1]),Math.min(255,1.1*e[2])]:e,n)
15const c=(e=>{try{const t=document.createElement("canvas").getContext("2d",{colorSpace:e})
16return t&&t.getContextAttributes().colorSpace===e}catch{return!1}})(l.value)
17e.fillStyle=c?"#00ff00":"#ff0000",e.font="10px monospace",e.fillText(c?"\u2713 Supported":"\u2717 Not Supported",i+f/2,o-10)})})(e,l,o,a)
18break
19case"webgl":((e,l,o,a)=>{const{showLabels:n,testAsset:r}=a,i=["sRGB Framebuffer","Linear Framebuffer"],f=l/i.length
20i.forEach((l,a)=>{const i=Math.floor(a*f),c=Math.floor((a+1)*f)-i
21e.fillStyle="#333333",e.fillRect(i,0,c,40),e.fillStyle="#ffffff",e.font="bold 12px monospace",e.textAlign="center",e.fillText(l,i+c/2,25),t(e,{x:i,y:40,width:c,height:o-40},r,e=>"Linear Framebuffer"===l?e.map(e=>Math.round(255*Math.pow(e/255,2.2))):e,n)})})(e,l,o,a)
22break
23case"tagged":((e,l,o,a)=>{const{showLabels:n,testAsset:r}=a,i=["Untagged sRGB","Tagged sRGB","Tagged AdobeRGB","Tagged ProPhoto"],f=o/i.length
24i.forEach((o,a)=>{const i=Math.floor(a*f),c=Math.floor((a+1)*f)-i
25e.fillStyle="#2a2a2a",e.fillRect(0,i,l,25),e.fillStyle="#ffffff",e.font="bold 11px monospace",e.textAlign="left",e.fillText(o,10,i+17)
26t(e,{x:0,y:i+25,width:l,height:c-25},r,e=>{const t=((e,t)=>{let l=1
27switch(t){case"Tagged AdobeRGB":l=1.1
28break
29case"Tagged ProPhoto":l=1.15
30break
31case"Untagged sRGB":l=.95
32break
33default:l=1}return{r:Math.min(255,Math.round(e.r*l)),g:Math.min(255,Math.round(e.g*l)),b:Math.min(255,Math.round(e.b*l))}})({r:e[0],g:e[1],b:e[2]},o)
34return[t.r,t.g,t.b]},n)})})(e,l,o,a)
35break
36case"fallback":((e,l,o,a)=>{const{showLabels:n,testAsset:r}=a,i=[{name:"P3 \u2192 sRGB Fallback",supported:"color(display-p3 1 0.2 0)",fallback:"rgb(255, 51, 0)"},{name:"LAB \u2192 RGB Fallback",supported:"lab(60% 40 30)",fallback:"rgb(230, 120, 95)"},{name:"Rec2020 \u2192 sRGB Fallback",supported:"color(rec2020 0.9 0.1 0.1)",fallback:"rgb(230, 25, 25)"}],f=o/i.length
37i.forEach((o,a)=>{const i=Math.floor(a*f),c=Math.floor((a+1)*f),s=c-i,h=Math.floor(l/2)
38e.fillStyle="#333333",e.fillRect(0,i,l,30),e.fillStyle="#ffffff",e.font="bold 12px monospace",e.textAlign="center",e.fillText(o.name,l/2,i+20)
39const p={x:h,y:i+30,width:l-h,height:s-30}
40t(e,{x:0,y:i+30,width:h,height:s-30},r,e=>e.map(e=>Math.min(255,e*(1+.1*a))),!1),t(e,p,r,e=>e,!1),n&&(e.fillStyle="#ffffff",e.font="11px monospace",e.textAlign="center",e.fillText("Attempted",h/2,i+s/2+20),e.fillText("Fallback",h+(l-h)/2,i+s/2+20)),e.strokeStyle="rgba(255, 255, 255, 0.3)",e.lineWidth=2,e.beginPath(),e.moveTo(h,i+30),e.lineTo(h,c),e.stroke()})})(e,l,o,a)
41break
42case"pipeline-latency":((e,l,o,a)=>{const{frameCount:n,latencyResults:r,testRunning:i,testAsset:f}=a,c=["srgb","display-p3","rec2020"],s=l/c.length
43c.forEach((l,a)=>{const c=a*s
44e.fillStyle="#333333",e.fillRect(c,0,s,40),e.fillStyle="#FFFFFF",e.font="bold 14px monospace",e.textAlign="center",e.fillText(l,c+s/2,25)
45const h=performance.now()
46try{const a=new OffscreenCanvas(s,o-40)
47t(a.getContext("2d",{colorSpace:l}),{x:0,y:0,width:s,height:o-40},f,e=>{const t=.2*Math.sin(.1*n)
48return e.map(e=>Math.min(255,Math.max(0,e*(1+t))))},!1),e.drawImage(a,c,40)
49const p=performance.now()-h
50i&&r.length<1e3&&r.push({space:l,time:p,frame:n}),e.fillStyle="rgba(0, 0, 0, 0.8)",e.fillRect(c+10,o-100,s-20,80),e.fillStyle="#00FF00",e.font="12px monospace",e.textAlign="left",e.fillText(`Render: ${p.toFixed(2)}ms`,c+20,o-75)
51const m=r.filter(e=>e.space===l)
52if(m.length>10){const t=m.slice(-60).reduce((e,t)=>e+t.time,0)/Math.min(60,m.length)
53if(e.fillText(`Avg: ${t.toFixed(2)}ms`,c+20,o-55),"srgb"!==l){const l=r.filter(e=>"srgb"===e.space)
54if(l.length>10){const a=l.slice(-60).reduce((e,t)=>e+t.time,0)/Math.min(60,l.length),n=t-a,r=n/a*100
55e.fillStyle=n>0?"#FF0000":"#00FF00",e.fillText(`\u0394: ${n>0?"+":""}${n.toFixed(2)}ms (${r.toFixed(1)}%)`,c+20,o-35)}}}}catch{e.fillStyle="#FF0000",e.fillRect(c,40,s,o-40),e.fillStyle="#FFFFFF",e.font="14px monospace",e.textAlign="center",e.fillText("Not Supported",c+s/2,o/2)}})
56const h=(l-400)/2
57e.fillStyle="rgba(0, 0, 0, 0.9)",e.fillRect(h,60,400,180),e.fillStyle="#FFFFFF",e.font="bold 14px monospace",e.textAlign="center",e.fillText("ICC Pipeline Latency Test",h+200,85),e.font="12px monospace",e.fillStyle="#CCCCCC",e.textAlign="left",["Compares render time across color spaces.","Higher latency = more processing overhead.","","Test Status: "+(i?"RUNNING":"STOPPED"),`Samples: ${r.length}`,"","Press SPACE to start/stop test"].forEach((t,l)=>{e.fillText(t,h+20,105+18*l)})})(e,l,o,a)
58break
59case"multi-monitor":((e,l,o,a)=>{const{showLabels:n,testAsset:r}=a,i=[{name:"Monitor 1 (sRGB)",profile:"srgb",gamut:"srgb",calibrated:!0},{name:"Monitor 2 (P3)",profile:"display-p3",gamut:"p3",calibrated:!1},{name:"Monitor 3 (Wide)",profile:"rec2020",gamut:"rec2020",calibrated:!0}],f=l/i.length
60i.forEach((l,a)=>{const i=a*f
61e.fillStyle=l.calibrated?"#1a4a1a":"#4a1a1a",e.fillRect(i,0,f,60),e.fillStyle="#FFFFFF",e.font="bold 14px monospace",e.textAlign="center",e.fillText(l.name,i+f/2,20),e.font="11px monospace",e.fillText(`Profile: ${l.profile}`,i+f/2,35),e.fillText(`Gamut: ${l.gamut}`,i+f/2,50)
62const c=i+f-20
63e.fillStyle=l.calibrated?"#00FF00":"#FF0000",e.fillRect(c,8,12,12),t(e,{x:i,y:60,width:f,height:o-60-100},r,e=>{let t=[...e]
64switch(l.gamut){case"p3":t=t.map((e,t)=>Math.min(255,e*[1.05,1.03,1.07][t]))
65break
66case"rec2020":t=t.map((e,t)=>Math.min(255,e*[1.08,1.05,1.1][t]))}return l.calibrated||(t=[Math.min(255,1.1*t[0]),Math.min(255,.95*t[1]),Math.min(255,1.05*t[2])]),t},n)
67const s=o-90
68e.fillStyle="rgba(0, 0, 0, 0.8)",e.fillRect(i+5,s,f-10,80)
69const h=[{name:"Hardware LUT",supported:l.calibrated},{name:"ICC v4",supported:"srgb"!==l.profile},{name:"Wide Gamut",supported:"srgb"!==l.gamut},{name:"Auto Switching",supported:l.calibrated&&"srgb"!==l.gamut}]
70e.font="10px monospace",h.forEach((t,l)=>{const o=s+15+15*l
71e.fillStyle=t.supported?"#00FF00":"#FF6666",e.textAlign="left",e.fillText((t.supported?"\u2713":"\u2717")+" "+t.name,i+10,o)})}),((e,t)=>{const l=380,o=(t-l)/2
72e.fillStyle="rgba(0, 0, 0, 0.9)",e.fillRect(o,80,l,120),e.strokeStyle="rgba(255, 255, 255, 0.3)",e.lineWidth=1,e.strokeRect(o,80,l,120),e.fillStyle="#FFFFFF",e.font="bold 14px monospace",e.textAlign="center",e.fillText("Multi-Monitor Color Management",o+190,100),e.font="11px monospace",e.fillStyle="#CCCCCC",e.textAlign="left",["Tests color consistency across multiple displays.",'Each "monitor" shows different profile behavior.',"Green indicator = Calibrated, Red = Uncalibrated","Look for color shifts between panels.","","Real multi-monitor setups need per-display profiles."].forEach((t,l)=>{e.fillText(t,o+15,120+13*l)})})(e,l),((e,t,l,o)=>{const a=140,n=t-300-20,r=l-a-20
73e.fillStyle="rgba(0, 0, 0, 0.9)",e.fillRect(n,r,300,a),e.strokeStyle="rgba(255, 255, 255, 0.3)",e.lineWidth=1,e.strokeRect(n,r,300,a),e.fillStyle="#FFFFFF",e.font="bold 12px monospace",e.textAlign="left",e.fillText("Profile Detection:",n+15,r+20),e.font="10px monospace",o.forEach((t,l)=>{const o=r+35+30*l
74e.fillStyle=t.calibrated?"#00AA00":"#AA0000",e.fillRect(n+15,o-8,20,12),e.fillStyle="#CCCCCC",e.fillText(t.name.split(" ")[0]+" "+t.name.split(" ")[1],n+45,o),e.font="9px monospace",e.fillStyle="#888888",e.fillText(`${t.profile} | ${t.calibrated?"Cal.":"Uncal."}`,n+45,o+12),e.font="10px monospace"}),e.fillStyle="#666666",e.font="9px monospace",e.fillText("OS Color Management: Active",n+15,r+a-25),e.fillText("Browser: Color-aware",n+15,r+a-15),e.fillText("Profile switching: Automatic",n+15,r+a-5)})(e,l,o,i)})(e,l,o,a)}((e,t,l)=>{const o=t-220,a=l-120
75e.fillStyle="rgba(0, 0, 0, 0.9)",e.fillRect(o-10,a-10,210,110),e.fillStyle="#ffffff",e.font="bold 11px monospace",e.fillText("Color Management Status:",o,a+10),e.font="10px monospace"
76const n=window.matchMedia("(color-gamut: p3)").matches,r=window.matchMedia("(color-gamut: rec2020)").matches,i=CSS.supports("color","lab(50% 0 0)"),f=CSS.supports("color","color(display-p3 1 0 0)")
77e.fillStyle=n?"#00ff00":"#ff0000",e.fillText((n?"\u2713":"\u2717")+" P3 Gamut",o,a+30),e.fillStyle=r?"#00ff00":"#ff0000",e.fillText((r?"\u2713":"\u2717")+" Rec.2020",o,a+45),e.fillStyle=i?"#00ff00":"#ff0000",e.fillText((i?"\u2713":"\u2717")+" CSS LAB/LCH",o,a+60),e.fillStyle=f?"#00ff00":"#ff0000",e.fillText((f?"\u2713":"\u2717")+" color() function",o,a+75),e.fillStyle="#888888",e.font="9px monospace",e.fillText(`UA: ${navigator.userAgent.
77substring(0,20)}...`,o,a+95)})(e,l,o)}function t(e,t,l,o,a){switch(l){case"patches":default:!function(e,t,l,o){const{x:a,y:n,width:r,height:i}=t,f=[{name:"Sky Blue",rgb:[135,206,235],lab:[79,-12,-20]},{name:"Grass Green",rgb:[124,252,0],lab:[88,-68,82]},{name:"Skin Tone",rgb:[255,220,177],lab:[89,8,21]},{name:"Deep Red",rgb:[220,20,60],lab:[47,70,45]},{name:"Purple",rgb:[128,0,128],lab:[30,59,-36]},{name:"Orange",rgb:[255,165,0],lab:[75,24,79]}],c=i/f.length
78f.forEach((t,i)=>{const f=Math.floor(n+i*c),s=Math.floor(n+(i+1)*c)-f,h=l?l(t.rgb):t.rgb
79var p
80e.fillStyle=`rgb(${h[0]}, ${h[1]}, ${h[2]})`,e.fillRect(a,f,r,s),e.strokeStyle="rgba(255, 255, 255, 0.1)",e.lineWidth=1,e.strokeRect(a,f,r,s),o&&(e.fillStyle=(.299*(p=h)[0]+.587*p[1]+.114*p[2])/255>.5?"#000000":"#ffffff",e.font="11px monospace",e.textAlign="center",e.fillText(t.name,a+r/2,f+s/2),e.font="9px monospace",e.fillText(`L*${t.lab[0]} a*${t.lab[1]} b*${t.lab[2]}`,a+r/2,f+s/2+15))})}(e,t,o,a)
81break
82case"gradient":((e,t,l,o)=>{const{x:a,y:n,width:r,height:i}=t,f=[{name:"Red",start:[0,0,0],end:[255,0,0]},{name:"Green",start:[0,0,0],end:[0,255,0]},{name:"Blue",start:[0,0,0],end:[0,0,255]},{name:"Gray",start:[0,0,0],end:[255,255,255]},{name:"Cyan-Mag",start:[0,255,255],end:[255,0,255]},{name:"Yel-Cyan",start:[255,255,0],end:[0,255,255]}],c=i/f.length
83f.forEach((t,i)=>{const f=Math.floor(n+i*c),s=Math.floor(n+(i+1)*c)-f
84for(let o=0;o<r;o++){const n=o/r,i=[Math.round(t.start[0]*(1-n)+t.end[0]*n),Math.round(t.start[1]*(1-n)+t.end[1]*n),Math.round(t.start[2]*(1-n)+t.end[2]*n)],c=l?l(i):i
85e.fillStyle=`rgb(${c[0]}, ${c[1]}, ${c[2]})`,e.fillRect(a+o,f,1,s)}o&&(e.fillStyle="rgba(0, 0, 0, 0.7)",e.fillRect(a,f,80,20),e.fillStyle="#ffffff",e.font="10px monospace",e.textAlign="left",e.fillText(t.name,a+5,f+14))})})(e,t,o,a)
86break
87case"photo":((e,t,l,o)=>{const{x:a,y:n,width:r,height:i}=t
88e.fillStyle="#87CEEB",e.fillRect(a,n,r,i),[{name:"Sky",color:[135,206,250],x:0,y:0,w:1,h:.3},{name:"Clouds",color:[240,248,255],x:.2,y:.05,w:.6,h:.15},{name:"Mountain",color:[105,105,105],x:0,y:.25,w:1,h:.25},{name:"Trees",color:[34,139,34],x:0,y:.45,w:1,h:.2},{name:"Grass",color:[124,252,0],x:0,y:.6,w:1,h:.4},{name:"Sun",color:[255,255,0],x:.7,y:.1,w:.1,h:.1},{name:"Water",color:[0,191,255],x:.3,y:.7,w:.4,h:.2}].forEach(t=>{const o=a+t.x*r,f=n+t.y*i,c=t.w*r,s=t.h*i,h=l?l(t.color):t.color,p=e.createLinearGradient(o,f,o,f+s),m=`rgb(${h[0]}, ${h[1]}, ${h[2]})`,g=`rgb(${Math.max(0,h[0]-20)}, ${Math.max(0,h[1]-20)}, ${Math.max(0,h[2]-20)})`
89if(p.addColorStop(0,m),p.addColorStop(1,g),e.fillStyle=p,"Sun"===t.name)e.beginPath(),e.arc(o+c/2,f+s/2,Math.min(c,s)/2,0,2*Math.PI),e.fill()
90else if("Clouds"===t.name)for(let t=0;t<3;t++)e.beginPath(),e.arc(o+(t+.5)*c/3,f+s/2,s/2,0,2*Math.PI),e.fill()
91else e.fillRect(o,f,c,s)}),o&&(e.fillStyle="rgba(0, 0, 0, 0.8)",e.fillRect(a+10,n+10,120,30),e.fillStyle="#ffffff",e.font="11px monospace",e.textAlign="left",e.fillText("Photo Simulation",a+15,n+30))})(e,t,o,a)
92break
93case"ui":((e,t,l,o)=>{const{x:a,y:n,width:r,height:i}=t
94e.fillStyle="#f0f0f0",e.fillRect(a,n,r,i)
95const f={primary:[0,122,255],success:[52,199,89],warning:[255,149,0],danger:[255,59,48],secondary:[142,142,147],background:[255,255,255],text:[0,0,0]},c=20
96let s=n+c;[{label:"Primary Action",color:"primary",textColor:"background"},{label:"Success",color:"success",textColor:"background"},{label:"Warning",color:"warning",textColor:"text"},{label:"Danger",color:"danger",textColor:"background"},{label:"Secondary",color:"secondary",textColor:"background"}].forEach(t=>{if(s+40>n+i-c)return
97const o=r-40,h=a+c,p=l?l(f[t.color]):f[t.color],m=l?l(f[t.textColor]):f[t.textColor]
98e.fillStyle=`rgb(${p[0]}, ${p[1]}, ${p[2]})`,e.beginPath(),e.roundRect(h,s,o,40,8),e.fill(),e.fillStyle=`rgb(${m[0]}, ${m[1]}, ${m[2]})`,e.font="14px monospace",e.textAlign="center",e.textBaseline="middle",e.fillText(t.label,h+o/2,s+20),s+=55})
99const h=30,p=n+i-c-h
100let m=a+c
101Object.entries(f).forEach(([,t])=>{if(m+h>a+r-c)return
102const o=l?l(t):t
103e.fillStyle=`rgb(${o[0]}, ${o[1]}, ${o[2]})`,e.fillRect(m,p,h,h),e.strokeStyle="rgba(0, 0, 0, 0.2)",e.lineWidth=1,e.strokeRect(m,p,h,h),m+=40}),o&&(e.fillStyle="rgba(0, 0, 0, 0.8)",e.fillRect(a+r-140,n+10,130,30),e.fillStyle="#ffffff",e.font="11px monospace",e.textAlign="right",e.fillText("UI Elements",a+r-15,n+30))})(e,t,o,a)}}function l(e){const t=Object.keys(c),l=t.indexOf(e)
104return t[(l+1)%t.length]}function o(e){const t=Object.keys(s),l=t.indexOf(e)
105return t[(l+1)%t.length]}function a(e){const t=Object.keys(h),l=t.indexOf(e)
106return t[(l+1)%t.length]}function n(e){return"pipeline-latency"===e.mode?{frameCount:e.frameCount+1}:{}}const r="Color Management Test - AV Tools | asenno",i="color-management",f={mode:"profile",renderIntent:"perceptual",showComparison:!0,colorSpace:"srgb",showLabels:!0,testAsset:"patches",frameCount:0,latencyResults:[],testRunning:!1},c={profile:"ICC Profile Test",cssColor:"CSS Color Functions",canvas:"Canvas ColorSpace",webgl:"WebGL Linear",tagged:"Tagged vs Untagged",fallback:"Fallback Behavior","pipeline-latency":"ICC Pipeline Latency","multi-monitor":"Multi-Monitor Profiles"},s={perceptual:"Perceptual",relative:"Relative Colorimetric",saturation:"Saturation",absolute:"Absolute Colorimetric"},h={patches:"Color Patches",gradient:"Gradient Ramp",photo:"Photo Simulation",ui:"UI Elements"},p={handlers:{m:e=>({...e,mode:l(e.mode)}),r:e=>({...e,renderIntent:o(e.renderIntent)}),c:e=>({...e,showComparison:!e.showComparison}),s:e=>({...e,colorSpace:"srgb"===e.colorSpace?"p3":"srgb"}),l:e=>({...e,showLabels:!e.showLabels}),t:e=>({...e,testAsset:a(e.testAsset)})," ":e=>"pipeline-latency"===e.mode?{...e,testRunning:!e.testRunning,latencyResults:e.testRunning?[]:e.latencyResults}:e}},m={infoText:"Test color management paths: ICC profiles, CSS color functions, Canvas colorSpace, WebGL linear/sRGB, pipeline latency.",animate:!0}
107export{m as controls,f as defaultSettings,i as id,p as keyboard,c as modes,e as render,s as renderIntents,h as testAssets,r as title,n as updatePosition}

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.