tether-ui 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +41 -0
- package/dist/cli/format.js +3 -2
- package/dist/cli/index.js +10 -5
- package/dist/cli/json.d.ts +2 -1
- package/dist/cli/json.js +1 -0
- package/dist/contract/describe.d.ts +2 -0
- package/dist/contract/describe.js +6 -0
- package/dist/contract/infer.d.ts +2 -2
- package/dist/contract/infer.js +69 -2
- package/dist/contract/read.d.ts +3 -0
- package/dist/contract/read.js +67 -0
- package/dist/contract/scopes.d.ts +5 -0
- package/dist/contract/scopes.js +150 -0
- package/dist/drift/compare.js +24 -6
- package/dist/scanner/collect.d.ts +3 -2
- package/dist/scanner/collect.js +46 -1
- package/dist/scanner/scan.js +1 -0
- package/dist/types.d.ts +44 -1
- package/dist/utils/config.js +3 -0
- package/package.json +4 -3
- package/report/out/404/index.html +1 -1
- package/report/out/404.html +1 -1
- package/report/out/__next.__PAGE__.txt +3 -3
- package/report/out/__next._full.txt +3 -3
- package/report/out/__next._tree.txt +2 -2
- package/report/out/_next/static/chunks/679-a159f64a448d339d.js +1 -0
- package/report/out/_next/static/css/7fbedb5502367c5e.css +1 -0
- package/report/out/_not-found/__next._full.txt +2 -2
- package/report/out/_not-found/__next._not-found.__PAGE__.txt +2 -2
- package/report/out/_not-found/__next._tree.txt +2 -2
- package/report/out/_not-found/index.html +1 -1
- package/report/out/_not-found/index.txt +2 -2
- package/report/out/contract/__next._full.txt +3 -3
- package/report/out/contract/__next._tree.txt +2 -2
- package/report/out/contract/__next.contract.__PAGE__.txt +3 -3
- package/report/out/contract/index.html +1 -1
- package/report/out/contract/index.txt +3 -3
- package/report/out/drift/__next._full.txt +3 -3
- package/report/out/drift/__next._tree.txt +2 -2
- package/report/out/drift/__next.drift.__PAGE__.txt +3 -3
- package/report/out/drift/index.html +1 -1
- package/report/out/drift/index.txt +3 -3
- package/report/out/index.html +1 -1
- package/report/out/index.txt +3 -3
- package/report/out/viewports/__next._full.txt +3 -3
- package/report/out/viewports/__next._tree.txt +2 -2
- package/report/out/viewports/__next.viewports.__PAGE__.txt +3 -3
- package/report/out/viewports/index.html +1 -1
- package/report/out/viewports/index.txt +3 -3
- package/report/out/_next/static/chunks/679-ea0b2616e7a83e6d.js +0 -1
- package/report/out/_next/static/css/5f0345b3d96e2143.css +0 -1
- /package/report/out/_next/static/{MCyQw-tRQ7-eGxwnJHR0Q → l8qlXIaCzWbRx2ZWOTp_i}/_buildManifest.js +0 -0
- /package/report/out/_next/static/{MCyQw-tRQ7-eGxwnJHR0Q → l8qlXIaCzWbRx2ZWOTp_i}/_ssgManifest.js +0 -0
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
1:"$Sreact.fragment"
|
|
2
2
|
2:I[1133,[],""]
|
|
3
3
|
3:I[4297,[],""]
|
|
4
|
-
4:I[
|
|
4
|
+
4:I[6652,["979","static/chunks/979-2cc4e681ca63e0b3.js","679","static/chunks/679-a159f64a448d339d.js","230","static/chunks/app/viewports/page-6e44561586c30871.js"],"default"]
|
|
5
5
|
5:I[1872,[],"OutletBoundary"]
|
|
6
6
|
6:"$Sreact.suspense"
|
|
7
7
|
9:I[1872,[],"ViewportBoundary"]
|
|
8
8
|
b:I[1872,[],"MetadataBoundary"]
|
|
9
9
|
d:I[7567,[],"default",1]
|
|
10
|
-
:HL["/_next/static/css/
|
|
10
|
+
:HL["/_next/static/css/7fbedb5502367c5e.css","style"]
|
|
11
11
|
8:X
|
|
12
|
-
0:{"P":null,"c":["","viewports",""],"q":"","i":false,"f":[[["",{"children":["viewports",{"children":["__PAGE__",{},"$undefined","$undefined",4608]},"$undefined","$undefined",4608]},"$undefined","$undefined",4624],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/
|
|
12
|
+
0:{"P":null,"c":["","viewports",""],"q":"","i":false,"f":[[["",{"children":["viewports",{"children":["__PAGE__",{},"$undefined","$undefined",4608]},"$undefined","$undefined",4608]},"$undefined","$undefined",4624],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/7fbedb5502367c5e.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L4",null,{"page":"viewports"}],null,["$","$L5",null,{"children":["$","$6",null,{"name":"Next.MetadataOutlet","children":"$@7"}]}]]}],{},null,false,null]},null,false,"$8"]},null,false,null],["$","$1","h",{"children":[null,["$","$L9",null,{"children":"$La"}],["$","div",null,{"hidden":true,"children":["$","$Lb",null,{"children":["$","$6",null,{"name":"Next.Metadata","children":"$Lc"}]}]}],null]}],false]],"m":"$undefined","G":["$d",[]],"S":true,"h":null,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"l8qlXIaCzWbRx2ZWOTp_i"}
|
|
13
13
|
8:C
|
|
14
14
|
a:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
15
15
|
e:I[2569,[],"IconMark"]
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
:HL["/_next/static/css/
|
|
2
|
-
0:{"tree":{"name":"","param":null,"prefetchHints":4176,"slots":{"children":{"name":"viewports","param":null,"prefetchHints":4192,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":4256,"slots":null}}}}},"staleTime":300,"buildId":"
|
|
1
|
+
:HL["/_next/static/css/7fbedb5502367c5e.css","style"]
|
|
2
|
+
0:{"tree":{"name":"","param":null,"prefetchHints":4176,"slots":{"children":{"name":"viewports","param":null,"prefetchHints":4192,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":4256,"slots":null}}}}},"staleTime":300,"buildId":"l8qlXIaCzWbRx2ZWOTp_i"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
1:"$Sreact.fragment"
|
|
2
|
-
2:I[
|
|
2
|
+
2:I[6652,["979","static/chunks/979-2cc4e681ca63e0b3.js","679","static/chunks/679-a159f64a448d339d.js","230","static/chunks/app/viewports/page-6e44561586c30871.js"],"default"]
|
|
3
3
|
3:I[1872,[],"OutletBoundary"]
|
|
4
4
|
4:"$Sreact.suspense"
|
|
5
5
|
8:I[1872,[],"ViewportBoundary"]
|
|
@@ -7,11 +7,11 @@
|
|
|
7
7
|
a:I[2569,[],"IconMark"]
|
|
8
8
|
c:I[1133,[],""]
|
|
9
9
|
d:I[4297,[],""]
|
|
10
|
-
:HL["/_next/static/css/
|
|
10
|
+
:HL["/_next/static/css/7fbedb5502367c5e.css","style"]
|
|
11
11
|
7:X
|
|
12
12
|
f:X
|
|
13
13
|
f:C
|
|
14
|
-
0:{"buildId":"
|
|
14
|
+
0:{"buildId":"l8qlXIaCzWbRx2ZWOTp_i","data":[{"rsc":["$","$1","c",{"children":[["$","$L2",null,{"page":"viewports"}],null,["$","$L3",null,{"children":["$","$4",null,{"name":"Next.MetadataOutlet","children":"$@5"}]}]]}],"isPartial":"$@6","staleTime":"$7","varyParams":null},{"rsc":["$","$1","h",{"children":[null,["$","$L8",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L9",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"tether — Visual linting"}],["$","meta","1",{"name":"description","content":"tether learns your UI’s existing design language, then catches drift as humans and agents make changes."}],["$","link","2",{"rel":"icon","href":"/knot.svg"}],["$","$La","3",{}]]}]}]}],null]}],"isPartial":"$@b","staleTime":"$7","varyParams":null},{"rsc":["$","$1","c",{"children":[null,["$","$Lc",null,{"parallelRouterKey":"children","template":["$","$Ld",null,{}]}]]}],"isPartial":"$@e","staleTime":"$7","varyParams":"$f"},{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/7fbedb5502367c5e.css","precedence":"next"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"children":["$","$Lc",null,{"parallelRouterKey":"children","template":["$","$Ld",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]]}],"isPartial":"$@10","staleTime":"$7","varyParams":null}],"isUpgradeableISRFallback":false,"a":"$@11","rootVaryParams":null,"needsRuntimeRequest":"$@12"}
|
|
15
15
|
5:null
|
|
16
16
|
7:300
|
|
17
17
|
12:true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/knot.svg"/><link rel="stylesheet" href="/_next/static/css/5f0345b3d96e2143.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-21c0bda91597affb.js"/><script src="/_next/static/chunks/c7879cf7-33323d49ba6da96a.js" async=""></script><script src="/_next/static/chunks/158-65f5491737ca4c2e.js" async=""></script><script src="/_next/static/chunks/main-app-e3082ce30f616b80.js" async=""></script><script src="/_next/static/chunks/979-2cc4e681ca63e0b3.js" async=""></script><script src="/_next/static/chunks/679-ea0b2616e7a83e6d.js" async=""></script><script src="/_next/static/chunks/app/viewports/page-6e44561586c30871.js" async=""></script><title>tether — Visual linting</title><meta name="description" content="tether learns your UI’s existing design language, then catches drift as humans and agents make changes."/><link rel="icon" href="/knot.svg"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div class="shell"><a href="#main" class="skip">Skip to report</a><aside class="sidebar"><a class="brand" href="/"><img class="brand-symbol" src="/knot.svg" alt="" width="34" height="34"/>tether<span class="version">0.2</span></a><div class="workspace"><div class="workspace-icon"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-scan-line" aria-hidden="true"><path d="M3 7V5a2 2 0 0 1 2-2h2"></path><path d="M17 3h2a2 2 0 0 1 2 2v2"></path><path d="M21 17v2a2 2 0 0 1-2 2h-2"></path><path d="M7 21H5a2 2 0 0 1-2-2v-2"></path><path d="M7 12h10"></path></svg></div><div><strong>Local workspace</strong><small>Latest scan</small></div><span class="connection" title="Local report"></span></div><nav aria-label="Report navigation"><a class="" href="/"><svg xmlns="http://www.w3.org/2000/svg" width="17" height="17" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layout-dashboard" aria-hidden="true"><rect width="7" height="9" x="3" y="3" rx="1"></rect><rect width="7" height="5" x="14" y="3" rx="1"></rect><rect width="7" height="9" x="14" y="12" rx="1"></rect><rect width="7" height="5" x="3" y="16" rx="1"></rect></svg>Overview</a><a class="" href="/drift/"><svg xmlns="http://www.w3.org/2000/svg" width="17" height="17" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-activity" aria-hidden="true"><path d="M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2"></path></svg>Drift</a><a class="" href="/contract/"><svg xmlns="http://www.w3.org/2000/svg" width="17" height="17" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-fingerprint-pattern" aria-hidden="true"><path d="M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4"></path><path d="M14 13.12c0 2.38 0 6.38-1 8.88"></path><path d="M17.29 21.02c.12-.6.43-2.3.5-3.02"></path><path d="M2 12a10 10 0 0 1 18-6"></path><path d="M2 16h.01"></path><path d="M21.8 16c.2-2 .131-5.354 0-6"></path><path d="M5 19.5C5.5 18 6 15 6 12a6 6 0 0 1 .34-2"></path><path d="M8.65 22c.21-.66.45-1.32.57-2"></path><path d="M9 6.8a6 6 0 0 1 9 5.2v2"></path></svg>Visual contract</a><a class="active" aria-current="page" href="/viewports/"><svg xmlns="http://www.w3.org/2000/svg" width="17" height="17" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-monitor" aria-hidden="true"><rect width="20" height="14" x="2" y="3" rx="2"></rect><line x1="8" x2="16" y1="21" y2="21"></line><line x1="12" x2="12" y1="17" y2="21"></line></svg>Viewports</a></nav><div class="sidebar-bottom"><div class="local-note"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield-check" aria-hidden="true"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path><path d="m9 12 2 2 4-4"></path></svg><span>Data stays on this device</span></div></div></aside><div class="main-shell"><header class="topbar"><div>tether <svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right" aria-hidden="true"><path d="m9 18 6-6-6-6"></path></svg><b>Viewports</b></div><span class="local-pill"><i></i> Local report</span></header><main id="main"><div class="page-heading"><div><h1>Viewports</h1><p>Screenshots and layout issues at each screen size.</p></div><button class="button" disabled=""><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg>Copy agent brief</button></div><div class="empty" role="status">Loading scan…</div></main></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-21c0bda91597affb.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[1133,[],\"\"]\n3:I[4297,[],\"\"]\n4:I[469,[\"979\",\"static/chunks/979-2cc4e681ca63e0b3.js\",\"679\",\"static/chunks/679-ea0b2616e7a83e6d.js\",\"230\",\"static/chunks/app/viewports/page-6e44561586c30871.js\"],\"default\"]\n5:I[1872,[],\"OutletBoundary\"]\n6:\"$Sreact.suspense\"\n9:I[1872,[],\"ViewportBoundary\"]\nb:I[1872,[],\"MetadataBoundary\"]\nd:I[7567,[],\"default\",1]\n:HL[\"/_next/static/css/5f0345b3d96e2143.css\",\"style\"]\n8:X\n0:{\"P\":null,\"c\":[\"\",\"viewports\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"viewports\",{\"children\":[\"__PAGE__\",{},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4624],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/5f0345b3d96e2143.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L4\",null,{\"page\":\"viewports\"}],null,[\"$\",\"$L5\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@7\"}]}]]}],{},null,false,null]},null,false,\"$8\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L9\",null,{\"children\":\"$La\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lc\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$d\",[]],\"S\":true,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"MCyQw-tRQ7-eGxwnJHR0Q\"}\n8:C\na:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\ne:I[2569,[],\"IconMark\"]\n7:null\nc:[[\"$\",\"title\",\"0\",{\"children\":\"tether — Visual linting\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"tether learns your UI’s existing design language, then catches drift as humans and agents make changes.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/knot.svg\"}],[\"$\",\"$Le\",\"3\",{}]]\n"])</script></body></html>
|
|
1
|
+
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/knot.svg"/><link rel="stylesheet" href="/_next/static/css/7fbedb5502367c5e.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-21c0bda91597affb.js"/><script src="/_next/static/chunks/c7879cf7-33323d49ba6da96a.js" async=""></script><script src="/_next/static/chunks/158-65f5491737ca4c2e.js" async=""></script><script src="/_next/static/chunks/main-app-e3082ce30f616b80.js" async=""></script><script src="/_next/static/chunks/979-2cc4e681ca63e0b3.js" async=""></script><script src="/_next/static/chunks/679-a159f64a448d339d.js" async=""></script><script src="/_next/static/chunks/app/viewports/page-6e44561586c30871.js" async=""></script><title>tether — Visual linting</title><meta name="description" content="tether learns your UI’s existing design language, then catches drift as humans and agents make changes."/><link rel="icon" href="/knot.svg"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div class="shell"><a href="#main" class="skip">Skip to report</a><aside class="sidebar"><a class="brand" href="/"><img class="brand-symbol" src="/knot.svg" alt="" width="34" height="34"/>tether<span class="version">0.3</span></a><div class="workspace"><div class="workspace-icon"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-scan-line" aria-hidden="true"><path d="M3 7V5a2 2 0 0 1 2-2h2"></path><path d="M17 3h2a2 2 0 0 1 2 2v2"></path><path d="M21 17v2a2 2 0 0 1-2 2h-2"></path><path d="M7 21H5a2 2 0 0 1-2-2v-2"></path><path d="M7 12h10"></path></svg></div><div><strong>Local workspace</strong><small>Latest scan</small></div><span class="connection" title="Local report"></span></div><nav aria-label="Report navigation"><a class="" href="/"><svg xmlns="http://www.w3.org/2000/svg" width="17" height="17" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layout-dashboard" aria-hidden="true"><rect width="7" height="9" x="3" y="3" rx="1"></rect><rect width="7" height="5" x="14" y="3" rx="1"></rect><rect width="7" height="9" x="14" y="12" rx="1"></rect><rect width="7" height="5" x="3" y="16" rx="1"></rect></svg>Overview</a><a class="" href="/drift/"><svg xmlns="http://www.w3.org/2000/svg" width="17" height="17" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-activity" aria-hidden="true"><path d="M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2"></path></svg>Drift</a><a class="" href="/contract/"><svg xmlns="http://www.w3.org/2000/svg" width="17" height="17" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-fingerprint-pattern" aria-hidden="true"><path d="M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4"></path><path d="M14 13.12c0 2.38 0 6.38-1 8.88"></path><path d="M17.29 21.02c.12-.6.43-2.3.5-3.02"></path><path d="M2 12a10 10 0 0 1 18-6"></path><path d="M2 16h.01"></path><path d="M21.8 16c.2-2 .131-5.354 0-6"></path><path d="M5 19.5C5.5 18 6 15 6 12a6 6 0 0 1 .34-2"></path><path d="M8.65 22c.21-.66.45-1.32.57-2"></path><path d="M9 6.8a6 6 0 0 1 9 5.2v2"></path></svg>Visual contract</a><a class="active" aria-current="page" href="/viewports/"><svg xmlns="http://www.w3.org/2000/svg" width="17" height="17" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-monitor" aria-hidden="true"><rect width="20" height="14" x="2" y="3" rx="2"></rect><line x1="8" x2="16" y1="21" y2="21"></line><line x1="12" x2="12" y1="17" y2="21"></line></svg>Viewports</a></nav><div class="sidebar-bottom"><div class="local-note"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield-check" aria-hidden="true"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path><path d="m9 12 2 2 4-4"></path></svg><span>Data stays on this device</span></div></div></aside><div class="main-shell"><header class="topbar"><div>tether <svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right" aria-hidden="true"><path d="m9 18 6-6-6-6"></path></svg><b>Viewports</b></div><span class="local-pill"><i></i> Local report</span></header><main id="main"><div class="page-heading"><div><h1>Viewports</h1><p>Screenshots and layout issues at each screen size.</p></div><button class="button" disabled=""><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg>Copy agent brief</button></div><div class="empty" role="status">Loading scan…</div></main></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-21c0bda91597affb.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[1133,[],\"\"]\n3:I[4297,[],\"\"]\n4:I[6652,[\"979\",\"static/chunks/979-2cc4e681ca63e0b3.js\",\"679\",\"static/chunks/679-a159f64a448d339d.js\",\"230\",\"static/chunks/app/viewports/page-6e44561586c30871.js\"],\"default\"]\n5:I[1872,[],\"OutletBoundary\"]\n6:\"$Sreact.suspense\"\n9:I[1872,[],\"ViewportBoundary\"]\nb:I[1872,[],\"MetadataBoundary\"]\nd:I[7567,[],\"default\",1]\n:HL[\"/_next/static/css/7fbedb5502367c5e.css\",\"style\"]\n8:X\n0:{\"P\":null,\"c\":[\"\",\"viewports\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"viewports\",{\"children\":[\"__PAGE__\",{},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4624],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/7fbedb5502367c5e.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L4\",null,{\"page\":\"viewports\"}],null,[\"$\",\"$L5\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@7\"}]}]]}],{},null,false,null]},null,false,\"$8\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L9\",null,{\"children\":\"$La\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lc\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$d\",[]],\"S\":true,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"l8qlXIaCzWbRx2ZWOTp_i\"}\n8:C\na:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\ne:I[2569,[],\"IconMark\"]\n7:null\nc:[[\"$\",\"title\",\"0\",{\"children\":\"tether — Visual linting\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"tether learns your UI’s existing design language, then catches drift as humans and agents make changes.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/knot.svg\"}],[\"$\",\"$Le\",\"3\",{}]]\n"])</script></body></html>
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
1:"$Sreact.fragment"
|
|
2
2
|
2:I[1133,[],""]
|
|
3
3
|
3:I[4297,[],""]
|
|
4
|
-
4:I[
|
|
4
|
+
4:I[6652,["979","static/chunks/979-2cc4e681ca63e0b3.js","679","static/chunks/679-a159f64a448d339d.js","230","static/chunks/app/viewports/page-6e44561586c30871.js"],"default"]
|
|
5
5
|
5:I[1872,[],"OutletBoundary"]
|
|
6
6
|
6:"$Sreact.suspense"
|
|
7
7
|
9:I[1872,[],"ViewportBoundary"]
|
|
8
8
|
b:I[1872,[],"MetadataBoundary"]
|
|
9
9
|
d:I[7567,[],"default",1]
|
|
10
|
-
:HL["/_next/static/css/
|
|
10
|
+
:HL["/_next/static/css/7fbedb5502367c5e.css","style"]
|
|
11
11
|
8:X
|
|
12
|
-
0:{"P":null,"c":["","viewports",""],"q":"","i":false,"f":[[["",{"children":["viewports",{"children":["__PAGE__",{},"$undefined","$undefined",4608]},"$undefined","$undefined",4608]},"$undefined","$undefined",4624],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/
|
|
12
|
+
0:{"P":null,"c":["","viewports",""],"q":"","i":false,"f":[[["",{"children":["viewports",{"children":["__PAGE__",{},"$undefined","$undefined",4608]},"$undefined","$undefined",4608]},"$undefined","$undefined",4624],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/7fbedb5502367c5e.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L4",null,{"page":"viewports"}],null,["$","$L5",null,{"children":["$","$6",null,{"name":"Next.MetadataOutlet","children":"$@7"}]}]]}],{},null,false,null]},null,false,"$8"]},null,false,null],["$","$1","h",{"children":[null,["$","$L9",null,{"children":"$La"}],["$","div",null,{"hidden":true,"children":["$","$Lb",null,{"children":["$","$6",null,{"name":"Next.Metadata","children":"$Lc"}]}]}],null]}],false]],"m":"$undefined","G":["$d",[]],"S":true,"h":null,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"l8qlXIaCzWbRx2ZWOTp_i"}
|
|
13
13
|
8:C
|
|
14
14
|
a:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
15
15
|
e:I[2569,[],"IconMark"]
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[679],{469:(e,s,i)=>{"use strict";i.d(s,{default:()=>F});var n=i(3365),a=i(1521),t=i(9568),l=i.n(t),c=i(3382);function r({label:e,capture:s,viewport:i}){let[t,l]=(0,a.useState)(!1);(0,a.useEffect)(()=>l(!1),[s?.screenshot]);let c=function(e,s){if(!e||![e.x,e.y,e.width,e.height,s.width,s.height].every(Number.isFinite)||e.width<=0||e.height<=0||s.width<=0||s.height<=0)return;let i=Math.max(0,e.x),n=Math.max(0,e.y),a=Math.min(s.width,e.x+e.width),t=Math.min(s.height,e.y+e.height);if(!(a<=i)&&!(t<=n))return{x:i,y:n,width:a-i,height:t-n}}(s?.bounds,i),d=!!s?.screenshot&&!t;return(0,n.jsxs)("figure",{className:"evidence-capture",children:[(0,n.jsx)("figcaption",{children:e}),d?(0,n.jsxs)("div",{className:"evidence-image",style:{aspectRatio:`${i.width} / ${i.height}`},children:[(0,n.jsx)("img",{src:`/${s.screenshot}`,alt:`${e.toLowerCase()} capture at ${i.name}`,onError:()=>l(!0)}),c&&(0,n.jsx)("span",{className:"evidence-outline","aria-label":"Matched element",style:{left:`${c.x/i.width*100}%`,top:`${c.y/i.height*100}%`,width:`${c.width/i.width*100}%`,height:`${c.height/i.height*100}%`}})]}):(0,n.jsx)("div",{className:"evidence-unavailable",children:"Capture unavailable."}),(0,n.jsx)("p",{className:"muted",children:d&&c?"Outline shows the visible portion of the matched element.":d&&s?.bounds?"Element outside this capture or bounds unavailable. No outline shown.":d?"No exact element location available. No outline shown.":"The screenshot may be missing from this checkout."})]})}function d({issue:e,report:s,onClose:i}){let t=(0,a.useRef)(null),[l,o]=(0,a.useState)(0),h=e.evidence??s.scan.snapshots.filter(s=>s.route===e.route&&e.viewports.includes(s.viewport.name)).map(e=>({viewport:e.viewport,current:{screenshot:e.screenshot}})),x=h[l];return(0,a.useEffect)(()=>{t.current?.showModal()},[]),(0,n.jsx)("dialog",{ref:t,className:"finding-dialog","aria-labelledby":"finding-title",onClose:i,onClick:e=>{e.target===t.current&&t.current?.close()},children:(0,n.jsxs)("div",{className:"finding-content",children:[(0,n.jsxs)("header",{className:"finding-header",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("span",{className:`severity ${e.severity}`,children:e.severity}),(0,n.jsx)("h2",{id:"finding-title",children:e.title})]}),(0,n.jsx)("button",{autoFocus:!0,"aria-label":"Close evidence",onClick:()=>t.current?.close(),children:(0,n.jsx)(c.A,{size:20})})]}),(0,n.jsxs)("dl",{className:"finding-facts",children:[(0,n.jsx)("dt",{children:"Property"}),(0,n.jsx)("dd",{children:(0,n.jsx)("code",{children:e.property})}),(0,n.jsx)("dt",{children:"Current"}),(0,n.jsx)("dd",{children:(0,n.jsx)("code",{children:e.current})}),(0,n.jsx)("dt",{children:"Expected"}),(0,n.jsx)("dd",{children:(0,n.jsx)("code",{children:e.expected.join(" \xb7 ")||"Review baseline"})}),(0,n.jsx)("dt",{children:"Element"}),(0,n.jsx)("dd",{children:(0,n.jsx)("code",{children:e.selector})}),(0,n.jsx)("dt",{children:"Identity"}),(0,n.jsxs)("dd",{children:[(0,n.jsx)("code",{children:e.identity??"Legacy selector"})," \xb7"," ",e.identityConfidence??"low"," confidence"]})]}),x?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("label",{className:"evidence-viewport",children:["Viewport"," ",(0,n.jsx)("select",{value:l,onChange:e=>o(Number(e.target.value)),children:h.map((e,s)=>(0,n.jsxs)("option",{value:s,children:[e.viewport.name," \xb7 ",e.viewport.width," \xd7 ",e.viewport.height]},e.viewport.name))}),(0,n.jsx)("code",{children:e.route})]}),(0,n.jsxs)("div",{className:"evidence-pair",children:[(0,n.jsx)(r,{label:"CURRENT",capture:x.current,viewport:x.viewport}),(0,n.jsx)(r,{label:"BASELINE",capture:x.baseline,viewport:x.viewport})]})]}):(0,n.jsx)("p",{children:"No screenshot evidence was recorded for this finding. Run a new check to collect it."})]})})}var o=i(9376),h=i(6504),x=i(21),j=i(4639),m=i(2665),p=i(8768),u=i(3960),v=i(634),g=i(4582),N=i(7494),w=i(8232),y=i(1613),f=i(6687),b=i(1838),k=i(2293);let S={overview:"Overview",drift:"Visual drift",contract:"Visual contract",viewports:"Viewports"},A={colors:"Color",fontFamilies:"Typography",fontSizes:"Typography",fontWeights:"Typography",lineHeights:"Typography",spacing:"Spacing",radii:"Radius",shadows:"Shadow",borders:"Border",elementHeights:"Height",layout:"Layout"},C=["All","Color","Typography","Spacing","Radius","Layout","Shadow","Border","Height"];function z(e){return new Date(e).toLocaleString("en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function E({children:e}){return(0,n.jsx)("span",{className:"count",children:e})}function $({severity:e}){return(0,n.jsxs)("span",{className:`severity ${e}`,children:[(0,n.jsx)("i",{}),e]})}function R(){return(0,n.jsx)("p",{className:"muted",children:"No recurring values in this category."})}function T({issue:e,onInspect:s}){return(0,n.jsxs)("article",{className:"issue-card",children:[(0,n.jsxs)("div",{className:"issue-heading",children:[(0,n.jsx)("span",{className:"category",children:A[e.category]}),(0,n.jsx)($,{severity:e.severity})]}),(0,n.jsx)("h3",{children:e.title}),(0,n.jsxs)("div",{className:"comparison",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("span",{className:"micro",children:"CURRENT"}),(0,n.jsxs)("code",{className:"current",children:["colors"===e.category&&(0,n.jsx)("i",{className:"tiny-swatch",style:{background:e.current}}),e.current]})]}),(0,n.jsx)(o.A,{size:15,className:"muted"}),(0,n.jsxs)("div",{children:[(0,n.jsx)("span",{className:"micro",children:"EXPECTED"}),(0,n.jsx)("p",{className:"expected",children:e.expected.join(" \xb7 ")||"Review baseline"})]})]}),(0,n.jsxs)("div",{className:"issue-meta",children:[(0,n.jsx)("code",{children:e.selector}),(0,n.jsxs)("span",{children:[e.route," ",(0,n.jsx)("span",{className:"dot",children:"\xb7"})," ",e.viewports.join(", ")]})]}),(0,n.jsxs)("button",{className:"evidence-button",onClick:()=>s(e),children:["View evidence ",(0,n.jsx)(h.A,{size:14})]}),(0,n.jsxs)("details",{children:[(0,n.jsx)("summary",{children:"Inspect property"}),(0,n.jsx)("code",{children:e.property})]})]})}function F({page:e}){let[s,i]=(0,a.useState)(null),[t,r]=(0,a.useState)(""),[$,R]=(0,a.useState)("All"),[M,H]=(0,a.useState)("all"),[I,V]=(0,a.useState)(!1),[B,D]=(0,a.useState)(!1),[P,U]=(0,a.useState)(null),[O,_]=(0,a.useState)(null);async function W(){if(s)try{await navigator.clipboard.writeText(s.agentMarkdown),V(!0),D(!1),setTimeout(()=>V(!1),2200)}catch{D(!0)}}(0,a.useEffect)(()=>{fetch("/report.json",{cache:"no-store"}).then(e=>{if(!e.ok)throw Error("No scan data found. Run tether check, then reopen tether report.");return e.json()}).then(i).catch(e=>r(e.message))},[]),(0,a.useEffect)(()=>{if(!O)return;let e=e=>{"Escape"===e.key&&_(null)};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[O]);let q=[{key:"overview",href:"/",icon:x.A},{key:"drift",href:"/drift/",icon:j.A},{key:"contract",href:"/contract/",icon:m.A},{key:"viewports",href:"/viewports/",icon:p.A}],X=new Set,G=(s?.issues??[]).filter(e=>{let s=A[e.category];return!X.has(s)&&(X.add(s),!0)}).slice(0,4),J=s?.issues.filter(e=>("All"===$||A[e.category]===$)&&("all"===M||e.severity===M))??[];return(0,n.jsxs)("div",{className:"shell",children:[(0,n.jsx)("a",{href:"#main",className:"skip",children:"Skip to report"}),(0,n.jsxs)("aside",{className:"sidebar",children:[(0,n.jsxs)(l(),{href:"/",className:"brand",children:[(0,n.jsx)("img",{className:"brand-symbol",src:"/knot.svg",alt:"",width:34,height:34}),"tether",(0,n.jsx)("span",{className:"version",children:"0.2"})]}),(0,n.jsxs)("div",{className:"workspace",children:[(0,n.jsx)("div",{className:"workspace-icon",children:(0,n.jsx)(u.A,{size:18})}),(0,n.jsxs)("div",{children:[(0,n.jsx)("strong",{children:"Local workspace"}),(0,n.jsx)("small",{children:"Latest scan"})]}),(0,n.jsx)("span",{className:"connection",title:"Local report"})]}),(0,n.jsx)("nav",{"aria-label":"Report navigation",children:q.map(({key:i,href:a,icon:t})=>(0,n.jsxs)(l(),{href:a,className:e===i?"active":"","aria-current":e===i?"page":void 0,children:[(0,n.jsx)(t,{size:17}),"drift"===i?"Drift":S[i],"drift"===i&&!!s?.issues.length&&(0,n.jsx)(E,{children:s.issues.length})]},i))}),(0,n.jsx)("div",{className:"sidebar-bottom",children:(0,n.jsxs)("div",{className:"local-note",children:[(0,n.jsx)(v.A,{size:16}),(0,n.jsx)("span",{children:"Data stays on this device"})]})})]}),(0,n.jsxs)("div",{className:"main-shell",children:[(0,n.jsxs)("header",{className:"topbar",children:[(0,n.jsxs)("div",{children:["tether ",(0,n.jsx)(g.A,{size:13}),(0,n.jsx)("b",{children:S[e]})]}),(0,n.jsxs)("span",{className:"local-pill",children:[(0,n.jsx)("i",{})," Local report"]})]}),(0,n.jsxs)("main",{id:"main",children:[(0,n.jsxs)("div",{className:"page-heading",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h1",{children:S[e]}),(0,n.jsx)("p",{children:"overview"===e?"Changes since your baseline scan.":"drift"===e?"Review changes by category and severity.":"contract"===e?"Saved colors, typography, spacing, and other styles.":"Screenshots and layout issues at each screen size."})]}),(0,n.jsxs)("button",{className:"button",onClick:W,disabled:!s,children:[I?(0,n.jsx)(N.A,{size:15}):(0,n.jsx)(w.A,{size:15}),I?"Copied to clipboard":"Copy agent brief"]})]}),B&&(0,n.jsxs)("p",{role:"status",className:"notice",children:["Clipboard unavailable."," ",(0,n.jsx)("a",{href:"data:text/markdown;charset=utf-8,"+encodeURIComponent(s?.agentMarkdown??""),download:"tether-agent.md",children:"Download the agent brief"}),"."]}),t&&(0,n.jsxs)("div",{role:"alert",className:"empty",children:[(0,n.jsx)(y.A,{}),(0,n.jsx)("h2",{children:"No scan yet"}),(0,n.jsx)("p",{children:t}),(0,n.jsx)("code",{children:"tether init && tether check"})]}),!t&&!s&&(0,n.jsx)("div",{className:"empty",role:"status",children:"Loading scan…"}),s&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"scan-strip",children:[(0,n.jsxs)("span",{className:"scan-state",children:[(0,n.jsx)(f.A,{size:15})," Scan complete"]}),(0,n.jsx)("code",{children:s.scan.url}),(0,n.jsx)("span",{className:"scan-time",children:z(s.scan.createdAt)}),(0,n.jsxs)("span",{className:"snapshot-label",children:[s.scan.snapshots.length," snapshots"]})]}),s.scan.snapshots.some(e=>e.truncated)&&(0,n.jsx)("p",{className:"notice",children:"Partial coverage: an element limit was reached. Increase maxElements and scan again."}),"overview"===e&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("section",{className:"stats-grid","aria-label":"Findings by severity",children:[{label:"Total drift findings",count:s.issues.length},...["high","medium","low"].map(e=>({label:`${e[0].toUpperCase()}${e.slice(1)} priority`,count:s.issues.filter(s=>s.severity===e).length}))].map(e=>(0,n.jsxs)("div",{className:"stat",children:[(0,n.jsx)("span",{className:"stat-label",children:e.label}),(0,n.jsx)("strong",{children:e.count})]},e.label))}),(0,n.jsxs)("p",{className:"scan-context",children:[s.elementCount," elements inspected \xb7"," ",new Set(s.scan.snapshots.map(e=>e.route)).size," ",1===new Set(s.scan.snapshots.map(e=>e.route)).size?"route":"routes"," ","\xb7"," ",new Set(s.scan.snapshots.map(e=>e.viewport.name)).size," ","viewport sizes"]}),(0,n.jsxs)("div",{className:"overview-columns",children:[(0,n.jsxs)("section",{children:[(0,n.jsxs)("div",{className:"section-heading",children:[(0,n.jsxs)("h2",{children:["Visual drift ",(0,n.jsx)(E,{children:s.issues.length})]}),(0,n.jsxs)(l(),{href:"/drift/",children:["View all deviations ",(0,n.jsx)(h.A,{size:14})]})]}),(0,n.jsx)("p",{className:"section-description",children:"One finding from each affected category."}),(0,n.jsxs)("div",{className:"issue-list",children:[G.map(e=>(0,n.jsx)(T,{issue:e,onInspect:U},e.id)),!s.issues.length&&(0,n.jsxs)("div",{className:"empty",children:[(0,n.jsx)(f.A,{}),(0,n.jsx)("h3",{children:"No drift detected"}),(0,n.jsx)("p",{children:"The scan matches your visual contract."})]})]})]}),(0,n.jsxs)("aside",{className:"overview-aside",children:[(0,n.jsxs)("div",{className:"contract-summary",children:[(0,n.jsx)("div",{className:"small-icon",children:(0,n.jsx)(m.A,{size:22})}),(0,n.jsx)("h3",{children:"Baseline styles"}),(0,n.jsx)("p",{children:"Styles saved from your baseline scan."}),(0,n.jsx)("div",{className:"palette-strip",children:s.contract.colors.slice(0,7).map(e=>(0,n.jsx)("span",{style:{background:e.value},title:e.value},e.value))}),(0,n.jsxs)("div",{className:"summary-pairs",children:[(0,n.jsx)("span",{children:"Color palette"}),(0,n.jsxs)("b",{children:[s.contract.colors.length," colors"]}),(0,n.jsx)("span",{children:"Type scale"}),(0,n.jsxs)("b",{children:[s.contract.fontSizes.length," sizes"]}),(0,n.jsx)("span",{children:"Spacing scale"}),(0,n.jsxs)("b",{children:[s.contract.spacing.length," values"]})]}),(0,n.jsxs)(l(),{className:"text-link",href:"/contract/",children:["View contract ",(0,n.jsx)(o.A,{size:15})]})]}),(0,n.jsxs)("div",{className:"viewport-summary",children:[(0,n.jsxs)("div",{className:"section-heading",children:[(0,n.jsx)("h3",{children:"Responsive checks"}),(0,n.jsx)(p.A,{size:16})]}),Array.from(new Map(s.scan.snapshots.map(e=>[e.viewport.name,e.viewport])).values()).map(e=>{let i=s.issues.filter(s=>"layout"===s.category&&s.viewports.includes(e.name)).length;return(0,n.jsxs)("div",{className:"viewport-line",children:[(0,n.jsxs)("span",{children:[e.name," ",(0,n.jsxs)("small",{children:[e.width,"px"]})]}),i?(0,n.jsxs)("span",{className:"layout-warning",children:[i," layout issues"]}):(0,n.jsx)(N.A,{size:15,className:"green"})]},e.name)}),(0,n.jsxs)(l(),{href:"/viewports/",className:"text-link",children:["Inspect screenshots ",(0,n.jsx)(o.A,{size:15})]})]}),(0,n.jsxs)("div",{className:"baseline-note",children:[(0,n.jsx)(v.A,{size:15}),(0,n.jsxs)("span",{children:["Baseline created ",z(s.baselineAt),(0,n.jsx)("br",{}),"Stored locally in ",(0,n.jsx)("code",{children:".tether/"})]})]})]})]})]}),"drift"===e&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"filter-toolbar",children:[(0,n.jsx)("div",{className:"filters","aria-label":"Filter by category",children:C.map(e=>(0,n.jsx)("button",{onClick:()=>R(e),"aria-pressed":$===e,className:$===e?"selected":"",children:e},e))}),(0,n.jsxs)("label",{className:"severity-select",children:[(0,n.jsx)("span",{className:"sr-only",children:"Severity"}),(0,n.jsxs)("select",{value:M,onChange:e=>H(e.target.value),children:[(0,n.jsx)("option",{value:"all",children:"All severities"}),(0,n.jsx)("option",{value:"high",children:"High severity"}),(0,n.jsx)("option",{value:"medium",children:"Medium severity"}),(0,n.jsx)("option",{value:"low",children:"Low severity"})]})]})]}),(0,n.jsxs)("div",{className:"results-line",children:[J.length," ",1===J.length?"deviation":"deviations",(0,n.jsx)("span",{children:"Sorted by severity"})]}),(0,n.jsx)("div",{className:"drift-grid",children:J.map(e=>(0,n.jsx)(T,{issue:e,onInspect:U},e.id))}),!J.length&&(0,n.jsxs)("div",{className:"empty",children:[(0,n.jsx)(f.A,{}),(0,n.jsx)("h2",{children:"No matching deviations"}),(0,n.jsx)("p",{children:"No deviations match these filters."})]})]}),"contract"===e&&(0,n.jsx)(L,{report:s}),"viewports"===e&&(0,n.jsx)(n.Fragment,{children:(0,n.jsx)("div",{className:"viewport-grid",children:s.scan.snapshots.map(e=>{let i=s.issues.filter(s=>s.route===e.route&&s.viewports.includes(e.viewport.name)),a=i.filter(e=>"layout"===e.category);return(0,n.jsxs)("article",{className:"viewport-card",children:[(0,n.jsxs)("div",{className:"viewport-card-heading",children:[e.viewport.width<500?(0,n.jsx)(b.A,{size:18}):(0,n.jsx)(p.A,{size:18}),(0,n.jsx)("h3",{children:e.viewport.name}),(0,n.jsxs)("span",{children:[e.viewport.width," \xd7 ",e.viewport.height]})]}),(0,n.jsx)("button",{className:"screenshot-button",onClick:()=>_("/"+e.screenshot),"aria-label":`Enlarge ${e.viewport.name} screenshot for ${e.route}`,children:(0,n.jsx)("img",{src:"/"+e.screenshot,alt:`${e.route} at ${e.viewport.width} pixels`})}),(0,n.jsxs)("div",{className:"viewport-caption",children:[(0,n.jsx)("code",{children:e.route}),(0,n.jsxs)("span",{children:[i.length," deviations"]})]}),(0,n.jsxs)("div",{className:a.length?"viewport-status warning":"viewport-status",children:[a.length?(0,n.jsx)(y.A,{size:14}):(0,n.jsx)(f.A,{size:14}),a.length?a.map(e=>e.title).join(" \xb7 "):"Content fits the viewport"]}),(0,n.jsxs)("a",{href:"/"+e.screenshot,download:!0,className:"download-shot",children:[(0,n.jsx)(k.A,{size:13}),"Download capture"]})]},`${e.route}-${e.viewport.name}`)})})})]})]})]}),P&&s&&(0,n.jsx)(d,{issue:P,report:s,onClose:()=>U(null)},P.id),O&&(0,n.jsxs)("div",{className:"preview",role:"dialog","aria-modal":"true","aria-label":"Screenshot preview",onClick:()=>_(null),children:[(0,n.jsx)("button",{autoFocus:!0,onClick:()=>_(null),"aria-label":"Close preview",children:(0,n.jsx)(c.A,{size:22})}),(0,n.jsx)("img",{src:O,alt:"Full viewport capture",onClick:e=>e.stopPropagation()})]})]})}function L({report:e}){let s=e.contract,i=e=>[...e].sort((e,s)=>parseFloat(e.value)-parseFloat(s.value));return(0,n.jsxs)("div",{className:"contract-content",children:[(0,n.jsxs)("div",{className:"contract-banner",children:[(0,n.jsx)(m.A,{size:20}),(0,n.jsxs)("div",{children:[(0,n.jsx)("b",{children:"Saved tokens"}),(0,n.jsxs)("span",{children:["Recurring values \xb7 target of ",s.minOccurrences,"+ distinct elements per token"]})]}),(0,n.jsxs)("span",{className:"contract-date",children:["Baseline \xb7 ",z(e.baselineAt)]})]}),(0,n.jsxs)("section",{className:"token-section",children:[(0,n.jsxs)("div",{className:"section-heading",children:[(0,n.jsxs)("h2",{children:["01 ",(0,n.jsx)("span",{children:"Color palette"})]}),(0,n.jsxs)(E,{children:[s.colors.length," tokens"]})]}),(0,n.jsxs)("div",{className:"color-grid",children:[s.colors.map(e=>(0,n.jsxs)("div",{className:"color-token",children:[(0,n.jsx)("div",{className:"swatch",style:{background:e.value}}),(0,n.jsxs)("div",{children:[(0,n.jsx)("code",{children:e.value}),(0,n.jsxs)("small",{children:[e.count," elements"]})]})]},e.value)),!s.colors.length&&(0,n.jsx)(R,{})]})]}),(0,n.jsxs)("div",{className:"contract-two-columns",children:[(0,n.jsxs)("section",{className:"token-section",children:[(0,n.jsxs)("div",{className:"section-heading",children:[(0,n.jsxs)("h2",{children:["02 ",(0,n.jsx)("span",{children:"Typography"})]}),(0,n.jsxs)(E,{children:[s.fontSizes.length," sizes"]})]}),(0,n.jsxs)("div",{className:"type-info",children:[(0,n.jsx)("span",{children:s.fontFamilies.map(e=>e.value).join(" \xb7 ")}),(0,n.jsx)("code",{children:s.fontWeights.map(e=>e.value).join(" / ")})]}),(0,n.jsxs)("div",{className:"type-scale",children:[i(s.fontSizes).reverse().map(e=>(0,n.jsxs)("div",{children:[(0,n.jsx)("code",{children:e.value}),(0,n.jsx)("span",{style:{fontSize:e.value},children:"The quick brown fox"}),(0,n.jsxs)("small",{children:["\xd7",e.count]})]},e.value)),!s.fontSizes.length&&(0,n.jsx)(R,{})]}),(0,n.jsxs)("p",{className:"token-footnote",children:["Line heights:"," ",s.lineHeights.map(e=>e.value).join(" \xb7 ")||"Browser default"]})]}),(0,n.jsxs)("section",{className:"token-section",children:[(0,n.jsxs)("div",{className:"section-heading",children:[(0,n.jsxs)("h2",{children:["03 ",(0,n.jsx)("span",{children:"Spacing"})]}),(0,n.jsxs)(E,{children:[s.spacing.length," steps"]})]}),(0,n.jsx)("p",{className:"token-caption",children:"Margins, padding, and gaps."}),(0,n.jsxs)("div",{className:"spacing-scale",children:[i(s.spacing).map(e=>(0,n.jsxs)("div",{children:[(0,n.jsx)("code",{children:e.value}),(0,n.jsx)("div",{className:"spacing-track",children:(0,n.jsx)("span",{style:{width:`${Math.min(4*Math.abs(parseFloat(e.value)),260)}px`}})}),(0,n.jsxs)("small",{children:["\xd7",e.count]})]},e.value)),!s.spacing.length&&(0,n.jsx)(R,{})]})]})]}),(0,n.jsxs)("div",{className:"contract-two-columns",children:[(0,n.jsxs)("section",{className:"token-section",children:[(0,n.jsxs)("div",{className:"section-heading",children:[(0,n.jsxs)("h2",{children:["04 ",(0,n.jsx)("span",{children:"Corner radii"})]}),(0,n.jsxs)(E,{children:[s.radii.length," tokens"]})]}),(0,n.jsxs)("div",{className:"radius-grid",children:[i(s.radii).map(e=>(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{className:"radius-example",style:{borderRadius:e.value}}),(0,n.jsx)("code",{children:e.value}),(0,n.jsxs)("small",{children:[e.count," elements"]})]},e.value)),!s.radii.length&&(0,n.jsx)(R,{})]})]}),(0,n.jsxs)("section",{className:"token-section",children:[(0,n.jsx)("div",{className:"section-heading",children:(0,n.jsxs)("h2",{children:["05 ",(0,n.jsx)("span",{children:"Shadows & borders"})]})}),(0,n.jsxs)("div",{className:"shadow-grid",children:[s.shadows.map(e=>(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{className:"shadow-example",style:{boxShadow:e.value},children:"Aa"}),(0,n.jsx)("code",{children:e.value})]},e.value)),!s.shadows.length&&(0,n.jsx)(R,{})]}),(0,n.jsx)("div",{className:"border-list",children:s.borders.map(e=>(0,n.jsxs)("div",{children:[(0,n.jsx)("span",{style:{borderTop:e.value}}),(0,n.jsx)("code",{children:e.value}),(0,n.jsxs)("small",{children:["\xd7",e.count]})]},e.value))})]})]}),(0,n.jsxs)("section",{className:"token-section control-section",children:[(0,n.jsx)("div",{className:"section-heading",children:(0,n.jsxs)("h2",{children:["06 ",(0,n.jsx)("span",{children:"Control heights"})]})}),(0,n.jsxs)("div",{children:[i(s.elementHeights).map(e=>(0,n.jsxs)("span",{className:"control-token",children:[(0,n.jsx)("code",{children:e.value}),(0,n.jsxs)("small",{children:[e.count," controls"]})]},e.value)),!s.elementHeights.length&&(0,n.jsx)(R,{})]})]})]})}},5679:(e,s,i)=>{Promise.resolve().then(i.bind(i,469))}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid}}}@layer theme{:host,:root{--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.static{position:static}.sticky{position:sticky}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.border{border-style:var(--tw-border-style);border-width:1px}.uppercase{text-transform:uppercase}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--white:#fff;--muted:#7d7d7d;--line:#e4e4e4;--green:#606060;--sage:#efefef;--amber:#6c6c6c;--rose:#656565}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:13px;line-height:1.55}a,button,input,select{-webkit-tap-highlight-color:transparent}button,select{font:inherit}a,button{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.45;cursor:default}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--green);outline-offset:4px}code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px}h1,h2,h3,p{margin:0}h2{letter-spacing:-.3px;font-size:16px}h2,h3{font-weight:550}h3{font-size:14px}svg{flex-shrink:0}small{font-size:11px}button{border:0}.muted{color:var(--muted)}.green{color:var(--green)}.sidebar{border-right:1px solid var(--line);background:#f0f0f0;flex-direction:column;width:218px;padding:29px 16px 0;display:flex;position:fixed;inset:0 auto 0 0}.brand{align-items:center;gap:9px;padding:0 12px;font-size:24px;font-weight:600;display:flex}.version{letter-spacing:0;color:var(--muted);border:1px solid #d8d8d8;border-radius:4px;margin-left:3px;padding:1px 5px;font-size:10px;font-weight:400}.workspace{background:#f7f7f7;border:1px solid #e0e0e0;border-radius:7px;align-items:center;gap:9px;margin:32px 0 27px;padding:11px 10px;display:flex}.workspace-icon{color:var(--green);background:#e9e9e9;border:1px solid #dedede;border-radius:5px;padding:7px}.workspace strong{font-size:11px;font-weight:550;display:block}.workspace small{color:var(--muted);font-size:10px}.connection{background:#7d7d7d;border-radius:50%;width:5px;height:5px;margin-left:auto}.nav-label{letter-spacing:1.25px;color:#8c8c8c;margin-bottom:10px;padding:0 12px;font-size:9px}nav{gap:4px;display:grid}nav a{color:#6d6d6d;border-radius:6px;align-items:center;gap:10px;padding:10px 12px;font-size:12px;display:flex}nav a.active{color:#3d3d3d;background:#e4e4e4;font-weight:550}nav .count{background:#f8f8f8;margin-left:auto}.sidebar-bottom{margin-top:auto}.local-note{color:#717171;gap:9px;padding:24px 10px;font-size:11px;line-height:1.7;display:flex}.local-note small{color:#8e8e8e;font-size:10px}.sidebar-footer{color:#949494;border-top:1px solid #e1e1e1;justify-content:space-between;align-items:center;margin:0 -16px;padding:16px 23px;font-size:9px;display:flex}.main-shell{margin-left:218px}.topbar{border-bottom:1px solid var(--line);height:68px;color:var(--muted);background:#fbfbfb;justify-content:space-between;padding:0 40px;font-size:11px}.topbar,.topbar>div{align-items:center;display:flex}.topbar>div{gap:14px}.topbar b{color:var(--ink);font-weight:500}.local-pill{border:1px solid var(--line);color:#747474;border-radius:20px;align-items:center;gap:6px;padding:4px 9px;font-size:10px;display:flex}.local-pill i{background:#8c8c8c;border-radius:50%;width:5px;height:5px}main{max-width:1600px;margin:auto;padding:34px 40px 0}.page-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:25px;display:flex}.eyebrow{letter-spacing:1.45px;color:#949494;margin-bottom:9px;font-size:9px}h1{letter-spacing:-1.2px;font-size:32px;font-weight:550;line-height:1.15}.page-heading p{color:var(--muted);margin-top:9px;font-size:12px}.button{background:var(--white);white-space:nowrap;border:1px solid #dbdbdb;border-radius:6px;justify-content:center;align-items:center;gap:7px;padding:9px 12px;font-size:11px;display:flex;box-shadow:0 1px 2px #28282805}.button:hover{background:#f1f1f1}.scan-strip{border:1px solid var(--line);color:var(--muted);background:#f4f4f4;border-radius:6px;gap:18px;padding:10px 13px;font-size:10px}.scan-state,.scan-strip{align-items:center;display:flex}.scan-state{color:#707070;white-space:nowrap;gap:7px}.scan-strip code{text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.scan-time{white-space:nowrap;margin-left:auto}.snapshot-label{white-space:nowrap;border-left:1px solid #dedede;padding-left:16px}.stats-grid{border:1px solid var(--line);background:#fff;border-radius:8px;grid-template-columns:1.25fr 1fr 1.15fr 1fr;margin-top:22px;display:grid;overflow:hidden}.stats-grid>div{border-right:1px solid var(--line);padding:21px 25px}.stats-grid>div:last-child{border-right:0}.stat-label{color:#757575;align-items:center;gap:8px;font-size:11px;display:flex}.stat-label>span{color:#a7a7a7;font-size:11px}.score-number{letter-spacing:-1.5px;font-size:40px;font-weight:500;line-height:1.4}.score-number>span{color:#9b9b9b;letter-spacing:0;margin-left:7px;font-size:13px}.score-track{background:#ebebeb;border-radius:10px;margin:3px 0 10px}.score-track span{background:#878787;height:100%;display:block}.stats-grid small{color:#909090;font-size:10px}.stat>strong{letter-spacing:-1.5px;margin:3px 0 11px;font-size:40px;font-weight:500;line-height:1.4;display:block}.stat small{align-items:center;gap:5px;display:flex}.warning-dot{background:#9c9c9c;border-radius:50%;width:5px;height:5px}.overview-columns{grid-template-columns:minmax(0,1fr) 290px;gap:25px;margin-top:29px;display:grid}.section-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.section-heading h2{align-items:center;gap:9px;display:flex}.section-heading>a,.section-heading>span{color:var(--muted);align-items:center;gap:4px;font-size:10px;display:flex}.count{color:#767676;white-space:nowrap;letter-spacing:0;background:#efefef;border-radius:4px;padding:1px 6px;font-size:10px;font-weight:400}.section-description{color:var(--muted);margin-top:4px;margin-bottom:17px;font-size:11px}.issue-list{gap:12px;display:grid}.issue-card{border:1px solid var(--line);background:#fff;border-radius:7px;min-width:0;padding:15px 17px;box-shadow:0 2px 3px #31313102}.issue-heading{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.category{color:#959595;text-transform:uppercase;letter-spacing:1px;font-size:9px}.severity{text-transform:capitalize;border-radius:4px;align-items:center;gap:5px;padding:1px 6px;font-size:9px;display:flex}.severity i{background:currentColor;border-radius:100%;width:4px;height:4px}.issue-card h3{font-size:13px}.comparison{grid-template-columns:minmax(90px,1fr) 16px minmax(0,1.7fr);align-items:center;gap:12px;margin:11px 0 12px;display:grid}.micro{letter-spacing:.8px;color:#a2a2a2;margin-bottom:4px;font-size:8px;display:block}.current{color:#686868;align-items:center;gap:6px;font-size:11px;display:flex}.current,.expected{overflow-wrap:anywhere}.expected{color:#797979;font:10px/1.65 ui-monospace,SFMono-Regular,Consolas,monospace}.tiny-swatch{border-radius:3px;flex-shrink:0;width:11px;height:11px;display:inline-block}.issue-meta{border-top:1px solid #f0f0f0;justify-content:space-between;align-items:center;gap:8px;padding-top:10px;display:flex}.issue-meta code{color:#747474;overflow-wrap:anywhere;font-size:9px}.issue-meta>span{color:#959595;text-align:right;font-size:9px}.dot{padding:0 4px}details{color:var(--muted);margin-top:7px;font-size:10px}summary{cursor:pointer;color:#959595;font-size:9px}details code{overflow-wrap:anywhere;margin-top:6px;font-size:10px;display:block}.overview-aside{padding-top:2px}.contract-summary{background:#f0f0f0;border:1px solid #e2e2e2;border-radius:7px;padding:22px}.small-icon{color:#818181;margin-bottom:15px}.contract-summary h3{letter-spacing:-.25px;font-size:14px}.contract-summary>p{color:#858585;margin-top:7px;font-size:11px;line-height:1.8}.palette-strip{border-radius:4px;gap:4px;height:28px;margin:20px 0;display:flex;overflow:hidden}.palette-strip span{border:1px solid #00000007;border-radius:3px;flex:1}.summary-pairs{color:#8c8c8c;grid-template-columns:1fr auto;row-gap:8px;font-size:10px;display:grid}.summary-pairs b{color:#6a6a6a;font-weight:450}.text-link{color:#6a6a6a;border-top:1px solid #e2e2e2;justify-content:space-between;align-items:center;margin-top:19px;padding-top:14px;font-size:10px;display:flex}.viewport-summary{border:1px solid var(--line);background:#fff;border-radius:7px;margin-top:17px;padding:18px 20px}.viewport-summary h3{font-size:12px}.viewport-summary .section-heading svg{color:#919191}.viewport-line{text-transform:capitalize;justify-content:space-between;align-items:center;padding-top:15px;font-size:11px;display:flex}.viewport-line small{color:#9a9a9a;padding-left:5px;font-size:9px}.layout-warning{color:#7b7b7b;text-transform:none;font-size:9px}.baseline-note{color:#9d9d9d;gap:7px;margin-top:19px;font-size:9px;line-height:1.9;display:flex}.baseline-note code{font-size:9px}.report-footer{border-top:1px solid var(--line);color:#9e9e9e;justify-content:space-between;align-items:center;margin-top:35px;padding:20px 0;font-size:9px;display:flex}.report-footer>span:first-child{align-items:center;gap:6px;display:flex}.filter-toolbar{justify-content:space-between;align-items:center;gap:12px;margin:24px 0 18px}.filter-toolbar,.filters{flex-wrap:wrap;display:flex}.filters{gap:3px}.filters button{color:var(--muted);background:0 0;border-radius:5px;padding:6px 10px;font-size:11px}.filters button.selected{color:#585858;background:#e9e9e9}.severity-select select{border:1px solid var(--line);color:#707070;background:#fff;border-radius:5px;padding:6px 9px;font-size:11px}.results-line{color:var(--muted);justify-content:space-between;margin-bottom:12px;font-size:11px;display:flex}.results-line>span{font-size:10px}.drift-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.drift-grid .issue-card{padding:20px}.empty{text-align:center;border:1px dashed var(--line);color:var(--muted);border-radius:8px;margin-top:20px;padding:50px 20px}.empty>svg{margin:0 auto 12px}.empty h2,.empty h3{color:var(--ink);margin:10px 0}.empty code{margin-top:15px;display:inline-block}.notice{background:#eee;border-radius:5px;margin:15px 0;padding:12px;font-size:12px}.notice a{text-decoration:underline}.contract-banner{color:#848484;border-bottom:1px solid var(--line);align-items:center;gap:11px;padding:20px 0;display:flex}.contract-banner b{color:#5e5e5e;font-size:12px;font-weight:500;display:block}.contract-banner span{color:#9c9c9c;font-size:10px;display:block}.contract-date{margin-left:auto}.token-section{border-bottom:1px solid var(--line);min-width:0;padding:24px 0}.token-section h2{color:#a9a9a9;gap:12px;font-size:11px}.token-section h2>span{color:var(--ink);font-size:15px}.color-grid{grid-template-columns:repeat(auto-fit,minmax(95px,1fr));gap:12px;margin-top:20px;display:grid}.swatch{border:1px solid #00000009;border-radius:5px;height:65px}.color-token>div:last-child{padding:9px 1px 0}.color-token code{font-size:10px;display:block}.color-token small{color:#a3a3a3;margin-top:3px;font-size:9px;display:block}.contract-two-columns{grid-template-columns:1fr 1fr;gap:35px;display:grid}.type-info{color:#969696;justify-content:space-between;align-items:flex-start;gap:12px;margin:17px 0;font-size:10px;display:flex}.type-info>span{overflow-wrap:anywhere;max-width:290px}.type-info code{white-space:nowrap;font-size:9px}.type-scale>div{align-items:center;gap:15px;padding:6px 0;display:flex}.type-scale code{color:#929292;width:35px;font-size:10px}.type-scale>div>span{letter-spacing:-.5px;white-space:nowrap;line-height:1.5}.type-scale small{color:#a6a6a6;margin-left:auto;font-size:9px}.token-footnote{color:#a6a6a6;margin-top:14px;font-size:9px}.token-caption{color:#979797;margin:16px 0;font-size:11px}.spacing-scale{gap:10px;display:grid}.spacing-scale>div{align-items:center;gap:12px;display:flex}.spacing-scale code{color:#858585;width:35px;font-size:10px}.spacing-track{flex:1}.spacing-track>span{background:#e0e0e0;border-left:2px solid #a4a4a4;border-radius:0 2px 2px 0;max-width:100%;height:13px;display:block}.spacing-scale small{color:#a6a6a6;font-size:9px}.radius-grid{flex-wrap:wrap;gap:22px;padding-top:24px;display:flex}.radius-example{background:#f0f0f0;border:1px solid #d2d2d2;width:60px;height:55px;margin-bottom:9px}.radius-grid code,.radius-grid small{font-size:10px;display:block}.radius-grid small{color:#a6a6a6;margin-top:3px;font-size:9px}.shadow-grid{flex-wrap:wrap;gap:15px;margin-top:24px;display:flex}.shadow-grid>div{max-width:190px}.shadow-example{color:#828282;background:#fff;border:1px solid #f0f0f0;border-radius:8px;place-items:center;width:100px;height:55px;margin:0 0 12px;font-size:20px;display:grid}.shadow-grid code{color:#a1a1a1;overflow-wrap:anywhere;font-size:9px;display:block}.border-list{gap:10px;margin-top:20px;display:grid}.border-list>div{align-items:center;gap:10px;display:flex}.border-list>div>span{width:25px}.border-list code{color:#999;font-size:9px}.border-list small{color:#a6a6a6;margin-left:auto;font-size:9px}.control-section>div:last-child{flex-wrap:wrap;gap:12px;margin-top:15px;display:flex}.control-token{border:1px solid var(--line);background:#fff;border-radius:6px;align-items:center;gap:10px;padding:8px 12px;display:flex}.control-token small{color:#979797;font-size:10px}.viewport-intro{margin:26px 0 18px}.viewport-grid{grid-template-columns:1fr 1fr;gap:22px;display:grid}.viewport-card{border:1px solid var(--line);background:#fff;border-radius:8px;overflow:hidden}.viewport-card-heading{color:#888;align-items:center;gap:9px;padding:16px;display:flex}.viewport-card-heading h3{text-transform:capitalize;color:var(--ink)}.viewport-card-heading>span{color:#999;margin-left:auto;font-size:10px}.screenshot-button{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#eee;justify-content:center;width:100%;height:300px;padding:16px;display:flex;overflow:hidden}.screenshot-button img{object-fit:contain;object-position:top;max-width:100%;height:100%;box-shadow:0 3px 12px #2e2e2e12}.viewport-caption{color:#949494;justify-content:space-between;align-items:center;padding:15px 17px 7px;font-size:11px;display:flex}.viewport-status{color:#909090;align-items:center;gap:7px;padding:0 17px 13px;font-size:10px;display:flex}.viewport-status.warning{color:#7b7b7b}.download-shot{color:#8e8e8e;gap:5px;padding:0 17px 16px;font-size:10px}.download-shot,.preview{align-items:center;display:flex}.preview{z-index:50;background:#262626dd;justify-content:center;padding:45px;position:fixed;inset:0}.preview img{object-fit:contain;max-width:100%;max-height:100%}.preview>button{background:#fff;border-radius:100%;place-items:center;width:32px;height:32px;display:grid;position:absolute;top:12px;right:14px}.skip{z-index:100;background:#fff;padding:12px;position:fixed;top:-100px}.skip:focus{top:10px;left:10px}@media (min-width:1500px){main{padding-left:55px;padding-right:55px}.overview-columns{grid-template-columns:minmax(0,1fr) 330px}}@media (max-width:1150px){.sidebar{width:190px}.main-shell{margin-left:190px}main{padding:28px}.topbar{padding:0 28px}.overview-columns{grid-template-columns:minmax(0,1fr) 245px;gap:18px}.contract-summary,.stats-grid>div{padding:18px}.type-scale>div>span{white-space:normal}.comparison{grid-template-columns:minmax(70px,1fr) 13px minmax(0,1.5fr)}}@media (max-width:900px){.sidebar{width:175px;padding-left:12px;padding-right:12px}.brand{padding:0 4px;font-size:21px}.workspace{padding:8px}.workspace-icon{display:none}nav a{padding:10px 8px;font-size:11px}.main-shell{margin-left:175px}.overview-columns{grid-template-columns:1fr}.overview-aside{grid-template-columns:1fr 1fr;gap:16px;display:grid}.viewport-summary{margin-top:0}.stats-grid{grid-template-columns:1fr 1fr}.stats-grid>div:nth-child(2){border-right:0}.stats-grid>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.scan-time{display:none}.snapshot-label{margin-left:auto}.contract-two-columns,.drift-grid{grid-template-columns:1fr}.contract-two-columns{gap:0}.contract-date{display:none}.viewport-grid{grid-template-columns:1fr}.filter-toolbar{align-items:flex-start}.type-info>span{max-width:none}.contract-two-columns .type-scale>div>span{white-space:nowrap}}@media (max-width:600px){.sidebar{width:100%;height:auto;padding:16px;position:relative}.brand{font-size:22px}.nav-label,.sidebar-bottom,.workspace{display:none}nav{justify-content:space-between;gap:3px;margin-top:16px;display:flex}nav a{gap:5px;padding:8px 7px;font-size:10px}nav svg{width:13px}.main-shell{margin:0}.topbar{height:45px;padding:0 20px}main{padding:24px 18px 0}.page-heading{flex-direction:column;align-items:flex-start;gap:18px}.eyebrow{font-size:8px}.scan-strip{flex-wrap:wrap;gap:9px}.scan-strip code{max-width:180px}.snapshot-label{display:none}.overview-aside{display:block}.viewport-summary{margin-top:16px}.stats-grid>div{padding:17px}.score-number,.stat>strong{font-size:34px}.stat-label{font-size:10px}.comparison{gap:8px}.issue-meta{flex-direction:column;align-items:flex-start}.issue-meta>span{text-align:left}.report-footer>span:last-child{display:none}.contract-banner{align-items:flex-start}.type-scale>div>span{font-size:min(28px,1em)}.radius-grid{gap:17px}.color-grid{grid-template-columns:repeat(3,1fr)}.preview{padding:36px 12px}.viewport-intro{flex-direction:column;align-items:flex-start}}@media (min-width:1100px){.contract-banner{padding:14px 0}.token-section{padding:18px 0}.color-grid{margin-top:14px}.swatch{height:52px}.type-info{margin:12px 0}.spacing-scale{gap:6px}.radius-grid{padding-top:15px}.shadow-grid{margin-top:15px}}:root{--paper:#f5f5f7;--ink:#1d1d1f;--muted:#707075;--line:#1c1c2013;--green:#535359;--sage:#eeeef0}body{letter-spacing:-.1px}.sidebar{-webkit-backdrop-filter:blur(28px)saturate(115%);background:#ffffff94;border:1px solid #ffffffe6;border-radius:18px;width:198px;inset:12px auto 12px 12px;overflow:hidden;box-shadow:0 8px 32px #00000006,inset 0 1px #fff}.brand{letter-spacing:-1px;padding:0 7px;font-size:23px}.brand-symbol{object-fit:contain;flex-shrink:0;width:34px;height:34px}.workspace{background:#fff8;border-color:#e4e4e8;border-radius:10px}.workspace-icon{color:#62626a;background:#f4f4f6;border-color:#e5e5e8;border-radius:7px}.connection,.local-pill i{background:#85858b}nav a{border-radius:9px}nav a.active{color:#252528;background:#ffffffcf;box-shadow:0 1px 4px #00000009,inset 0 0 0 1px #fff}nav a:hover{background:#ffffffa8}.sidebar-footer{border-color:#e7e7eb}.topbar{-webkit-backdrop-filter:blur(24px)}.local-pill,.topbar{background:#ffffff70}.local-pill{color:#77777d}h1{letter-spacing:-1.35px;font-size:34px;font-weight:600}.page-heading p{color:#77777d;font-size:13px}.eyebrow{color:#898990;letter-spacing:1.6px}.button{color:#3e3e43;background:#ffffffbe;border-color:#fff;border-radius:9px;transition:background .14s,box-shadow .14s;box-shadow:0 0 0 1px #00000009,0 3px 8px #00000006}.button:hover{background:#fff;box-shadow:0 0 0 1px #00000012,0 4px 12px #0000000b}.scan-strip{background:#ffffff65;border-color:#e6e6e9;border-radius:10px}.scan-state{color:#66666d}.stats-grid{background:#ffffffbf;border-color:#fff;border-radius:16px;box-shadow:0 0 0 1px #00000007,0 4px 20px #00000004}.score-number,.stat>strong{letter-spacing:-1.8px;font-weight:500}.score-track{background:#e8e8ec;height:3px}.score-track span{background:#71717a;border-radius:5px}.contract-summary,.issue-card,.viewport-card,.viewport-summary{-webkit-backdrop-filter:blur(16px);background:#ffffffc9;border-color:#fff;border-radius:14px;box-shadow:0 0 0 1px #00000008,0 4px 16px #00000004,inset 0 1px #fff}.issue-card{padding:17px 19px}.issue-card h3{letter-spacing:-.25px;font-size:14px}.issue-meta{border-color:#ededf0}.current{color:#3e3e43}.expected{color:#707078}.category,.micro{color:#85858d}.severity{border:1px solid #00000004}.severity.high{color:#925a53;background:#f6eeec}.severity.medium{color:#827052;background:#f4f1eb}.severity.low{color:#76767e;background:#f0f0f3}.contract-summary{background:#ffffff85}.baseline-note,.contract-summary>p,.summary-pairs{color:#85858d}.local-note,.summary-pairs b,.text-link{color:#66666e}.palette-strip{gap:5px}.palette-strip span{border-radius:5px}.small-icon{color:#72727c}.count{color:#777780;background:#eeeef2;border-radius:5px}.filters{background:#e8e8ed66;border-radius:10px;padding:4px}.filters button.selected{color:#303035;background:#ffffffdc;border-radius:7px;box-shadow:0 1px 4px #00000009}.filters button:hover{background:#ffffff85}.severity-select select{background:#ffffffb0;border-radius:9px}.contract-banner{color:#75757e}.contract-banner b{color:#55555d}.token-section h2{color:#96969f}.swatch{border-radius:9px;box-shadow:inset 0 0 0 1px #00000003}.type-scale>div>span{letter-spacing:-.6px}.spacing-track>span{background:#dcdce3;border-color:#9999a4}.radius-example{background:#ffffffa8;border-color:#d9d9df;box-shadow:0 2px 8px #00000003}.control-token{background:#ffffffb0;border-radius:9px}.screenshot-button{background:#eeeef2}.screenshot-button img{border-radius:5px;box-shadow:0 5px 18px #0000000d}.preview{-webkit-backdrop-filter:blur(18px);background:#16161c8c}.preview img{border-radius:9px;box-shadow:0 20px 80px #00000040}@media (max-width:1150px) and (min-width:901px){.sidebar{width:170px}}@media (max-width:900px) and (min-width:601px){.sidebar{width:155px}.workspace{padding:8px}.brand{font-size:20px}.version{display:none}}@media (max-width:600px){.sidebar{width:calc(100% - 20px);margin:10px;padding:16px;position:relative;inset:auto}.main-shell{margin-left:0}.brand{font-size:23px}.filters{max-width:100%}.page-heading{gap:18px}}@media (prefers-reduced-transparency:reduce){.contract-summary,.issue-card,.sidebar,.stats-grid,.topbar,.viewport-card,.viewport-summary{-webkit-backdrop-filter:none;background:#fff}}@media (prefers-reduced-motion:reduce){.button{transition:none}}@media (min-width:1100px){.color-grid{grid-template-columns:repeat(auto-fit,minmax(78px,1fr))}.workspace{gap:7px;padding:10px 8px}.local-note,.workspace strong{font-size:10px}.local-note{gap:7px}}.scan-context{color:var(--muted);margin:16px 0 24px;font-size:12px}.evidence-button{color:#34343b;font:inherit;cursor:pointer;background:#fff;border:1px solid #dedee4;border-radius:8px;align-items:center;gap:6px;margin:16px 0 10px;padding:8px 12px;font-size:12px;display:flex}.finding-dialog{color:#25252b;background:#f8f8fa;border:1px solid #fff;border-radius:20px;width:min(1200px,100vw - 32px);max-width:none;max-height:90dvh;margin:auto;padding:0;box-shadow:0 24px 100px #0003}.finding-dialog::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#20202666}.finding-content{padding:28px}.finding-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.finding-header .severity{display:inline-flex}.finding-header h2{margin:12px 0 20px;font-size:24px}.finding-header button{cursor:pointer;background:#fff;border:1px solid #dddde3;border-radius:50%;flex-shrink:0;place-items:center;width:36px;height:36px;display:grid}.finding-facts{grid-template-columns:90px minmax(0,1fr);gap:8px 16px;margin:0 0 24px;font-size:12px;display:grid}.finding-facts dt{color:#777780}.finding-facts dd{overflow-wrap:anywhere;margin:0}.evidence-viewport{border-top:1px solid #e2e2e8;flex-wrap:wrap;align-items:center;gap:12px;padding:16px 0;font-size:12px;display:flex}.evidence-viewport select{color:inherit;background:#fff;border:1px solid #dddde3;border-radius:8px;max-width:100%;padding:8px}.evidence-pair{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;display:grid}.evidence-capture{min-width:0;margin:0}.evidence-capture figcaption{color:#666670;letter-spacing:1px;margin-bottom:10px;font-size:11px}.evidence-image{background:#fff;border:1px solid #dddde3;border-radius:8px;position:relative;overflow:hidden}.evidence-image img{width:100%;height:100%;display:block}.evidence-outline{pointer-events:none;background:#b5533210;border:2px solid #b55332;position:absolute;box-shadow:0 0 0 1px #fff}.evidence-capture p{margin:10px 0 0;font-size:11px;line-height:1.6}.evidence-unavailable{color:#777;border:1px dashed #ccc;border-radius:8px;padding:40px 16px;font-size:13px}@media (max-width:700px){.finding-content{padding:18px}.evidence-pair{grid-template-columns:minmax(0,1fr)}.finding-facts{grid-template-columns:65px minmax(0,1fr);gap:8px}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}
|
/package/report/out/_next/static/{MCyQw-tRQ7-eGxwnJHR0Q → l8qlXIaCzWbRx2ZWOTp_i}/_buildManifest.js
RENAMED
|
File without changes
|
/package/report/out/_next/static/{MCyQw-tRQ7-eGxwnJHR0Q → l8qlXIaCzWbRx2ZWOTp_i}/_ssgManifest.js
RENAMED
|
File without changes
|