@distrohelena/canton-explorer 0.1.1 → 0.1.3

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@distrohelena/canton-explorer",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "Read-only operations explorer for Canton participant nodes and PQS-backed ledgers.",
5
5
  "author": "",
6
6
  "license": "Apache-2.0",
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/editor.api-8w-mShFJ.js","assets/editor-C5uazxST.css"])))=>i.map(i=>d[i]);
2
- import{A as e,C as t,D as n,E as r,M as i,N as a,O as o,S as s,T as c,_ as l,a as u,b as d,c as f,d as p,f as m,g as h,h as g,i as _,j as v,k as y,l as b,m as x,n as ee,o as te,p as S,r as ne,s as re,t as C,u as w,v as T,w as E,x as ie,y as D}from"./index-C96u6Tuy.js";var O={class:`debugger-control-panel`,"data-testid":`debugger-control-panel`,"aria-label":`Debugger controls`},k={class:`debugger-control-panel__actions`},A=[`disabled`],j=[`disabled`],M=[`disabled`],N=[`disabled`],P=[`disabled`],F=[`disabled`],ae=D({__name:`DebuggerControlPanel`,props:{actionLoading:{type:Boolean},isTerminal:{type:Boolean},currentStepIndex:{}},emits:[`drag-start`,`refresh`,`action`],setup(e){return(n,r)=>(t(),h(`section`,O,[S(`div`,{class:`debugger-control-panel__handle`,"data-testid":`debugger-control-panel-handle`,onPointerdown:r[0]||=w(e=>n.$emit(`drag-start`,e),[`stop`,`prevent`])},[...r[7]||=[S(`span`,{class:`debugger-control-panel__title`},`Replay Controls`,-1),S(`span`,{class:`debugger-control-panel__meta`},`drag to reposition`,-1)]],32),S(`div`,k,[S(`button`,{type:`button`,class:`debugger-control-panel__button`,disabled:e.actionLoading||e.currentStepIndex<=0,onClick:r[1]||=e=>n.$emit(`action`,`step-back`)},` Step Back `,8,A),S(`button`,{type:`button`,class:`debugger-control-panel__button`,disabled:e.actionLoading,onClick:r[2]||=e=>n.$emit(`refresh`)},` Refresh `,8,j),S(`button`,{type:`button`,class:`debugger-control-panel__button`,disabled:e.actionLoading||e.isTerminal,onClick:r[3]||=e=>n.$emit(`action`,`step-into`)},` Step Into `,8,M),S(`button`,{type:`button`,class:`debugger-control-panel__button`,disabled:e.actionLoading||e.isTerminal,onClick:r[4]||=e=>n.$emit(`action`,`step-over`)},` Step Over `,8,N),S(`button`,{type:`button`,class:`debugger-control-panel__button`,disabled:e.actionLoading||e.isTerminal,onClick:r[5]||=e=>n.$emit(`action`,`step-out`)},` Step Out `,8,P),S(`button`,{type:`button`,class:`debugger-control-panel__button`,disabled:e.actionLoading||e.isTerminal,onClick:r[6]||=e=>n.$emit(`action`,`continue`)},` Continue `,8,F)])]))}}),oe={class:`debugger-event-list`,"data-testid":`debugger-event-list`},I={class:`debugger-event-list__header`},L={class:`debugger-event-list__count`},R={class:`debugger-event-list__tabs`,role:`tablist`,"aria-label":`Ledger event views`},se=[`aria-selected`],z=[`aria-selected`],B={key:0,class:`debugger-event-list__empty`},V={key:1,class:`debugger-event-list__empty`},H={key:2,class:`debugger-event-list__empty`},U={key:3,class:`debugger-event-list__items`},ce=[`data-testid`,`onClick`],W={class:`debugger-event-list__ordinal`},le={class:`debugger-event-list__summary`},ue={class:`debugger-event-list__location`},G={key:4,class:`debugger-event-list__items`},K=[`data-testid`,`aria-expanded`,`onClick`],de={class:`debugger-event-list__ordinal`},q={class:`debugger-event-list__summary`},fe={class:`debugger-event-list__location`},J=[`data-testid`],Y={class:`debugger-event-list__detail-grid`},X={class:`debugger-event-list__detail-block`},pe={class:`debugger-event-list__detail-block`},me=D({__name:`DebuggerEventList`,props:{realEvents:{},replayEvents:{},currentStepId:{},loading:{type:Boolean}},emits:[`selectStep`],setup(e,{emit:n}){let r=e,i=n,s=o(`real`),l=o(new Set),u=m(()=>s.value===`real`?r.realEvents.length:r.replayEvents.length);function d(e){let t=e.templateId?.entityName??`unknown-template`,n=e.choice?`.${e.choice}`:``,r=e.targetContractId??e.createdContractId;return[e.kind??`event`,`${t}${n}`,r].filter(Boolean).join(` `)}function f(e){e&&i(`selectStep`,e)}function _(e){return e.stepId??`event-${e.stepIndex}`}function y(e){return l.value.has(_(e))}function b(e){let t=new Set(l.value),n=_(e);t.has(n)?t.delete(n):t.add(n),l.value=t}function x(e){if(e==null)return`n/a`;if(typeof e==`string`)return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}return c(()=>r.replayEvents.map(e=>_(e)),e=>{let t=new Set(e);l.value=new Set([...l.value].filter(e=>t.has(e)))}),(n,i)=>(t(),h(`section`,oe,[S(`div`,I,[i[2]||=S(`h3`,null,`Ledger Events`,-1),S(`span`,L,a(u.value)+` events`,1)]),S(`div`,R,[S(`button`,{type:`button`,role:`tab`,class:v([`debugger-event-list__tab`,{"debugger-event-list__tab--active":s.value===`real`}]),"aria-selected":s.value===`real`,onClick:i[0]||=e=>s.value=`real`},` Real Events `,10,se),S(`button`,{type:`button`,role:`tab`,class:v([`debugger-event-list__tab`,{"debugger-event-list__tab--active":s.value===`replay`}]),"aria-selected":s.value===`replay`,onClick:i[1]||=e=>s.value=`replay`},` Replay Events `,10,z)]),e.loading?(t(),h(`p`,B,`Loading ledger events…`)):s.value===`real`&&e.realEvents.length===0?(t(),h(`p`,V,` No real ledger events are available for this update. `)):s.value===`replay`&&e.replayEvents.length===0?(t(),h(`p`,H,` No replay ledger events were emitted in this session. `)):s.value===`real`?(t(),h(`ol`,U,[(t(!0),h(p,null,E(r.realEvents,n=>(t(),h(`li`,{key:n.stepId??`real-event-${n.stepIndex}`,class:`debugger-event-list__item`},[S(`button`,{type:`button`,class:v([`debugger-event-list__button`,{"debugger-event-list__button--active":n.stepId===e.currentStepId}]),"data-testid":`real-debugger-event-${n.stepIndex}`,onClick:e=>f(n.stepId)},[S(`span`,W,`#`+a(n.eventOrdinal??n.stepIndex),1),S(`span`,le,a(d(n)),1),S(`span`,ue,a(n.sourceLocation?.startLine??`n/a`),1)],10,ce)]))),128))])):(t(),h(`ol`,G,[(t(!0),h(p,null,E(r.replayEvents,e=>(t(),h(`li`,{key:_(e),class:`debugger-event-list__item`},[S(`button`,{type:`button`,class:v([`debugger-event-list__button`,{"debugger-event-list__button--expanded":y(e)}]),"data-testid":`debugger-event-${e.stepIndex}`,"aria-expanded":y(e),onClick:t=>b(e)},[S(`span`,de,`#`+a(e.eventOrdinal??e.stepIndex),1),S(`span`,q,a(d(e)),1),S(`span`,fe,a(e.sourceLocation?.startLine??`n/a`),1)],10,K),y(e)?(t(),h(`div`,{key:0,class:`debugger-event-list__details`,"data-testid":`debugger-event-details-${e.stepIndex}`},[S(`dl`,Y,[S(`div`,null,[i[3]||=S(`dt`,null,`Kind`,-1),S(`dd`,null,a(e.kind??`n/a`),1)]),S(`div`,null,[i[4]||=S(`dt`,null,`Template`,-1),S(`dd`,null,a(e.templateId?.entityName??`n/a`),1)]),S(`div`,null,[i[5]||=S(`dt`,null,`Choice`,-1),S(`dd`,null,a(e.choice??`n/a`),1)]),S(`div`,null,[i[6]||=S(`dt`,null,`Contract`,-1),S(`dd`,null,a(e.targetContractId??e.createdContractId??`n/a`),1)]),S(`div`,null,[i[7]||=S(`dt`,null,`Phase`,-1),S(`dd`,null,a(e.phase),1)]),S(`div`,null,[i[8]||=S(`dt`,null,`Source`,-1),S(`dd`,null,a(e.sourceLocation?.startLine??`n/a`),1)])]),S(`div`,X,[i[9]||=S(`h4`,null,`Choice Argument`,-1),S(`pre`,null,a(x(e.choiceArgument)),1)]),S(`div`,pe,[i[10]||=S(`h4`,null,`Payload`,-1),S(`pre`,null,a(x(e.payload)),1)])],8,J)):g(``,!0)]))),128))]))]))}}),he={class:`debugger-scope-panel`,"data-testid":`debugger-scope-panel`},ge={class:`debugger-scope-panel__header`},_e={class:`debugger-scope-panel__count`},ve={key:0,class:`debugger-scope-panel__empty`},ye=[`aria-expanded`,`onClick`],be={class:`debugger-scope-panel__scope-header`},xe={class:`debugger-scope-panel__scope-meta`},Se={class:`debugger-scope-panel__scope-id`},Ce={class:`debugger-scope-panel__scope-chevron`,"aria-hidden":`true`},we={key:0,class:`debugger-scope-panel__variables`},Z={class:`debugger-scope-panel__variable-meta`},Q={class:`debugger-scope-panel__kind`},Te={key:1,class:`debugger-scope-panel__empty`},Ee=D({__name:`DebuggerScopePanel`,props:{scopes:{},nodeId:{}},setup(n){let i=n,s=o(new Set);function u(e,t){return t===`contractId`&&e===`selfContractId`?`self`:e??`value`}function d(e,t){return e!==`contractId`||!i.nodeId||!t?null:`/nodes/${encodeURIComponent(i.nodeId)}/contracts/${encodeURIComponent(t)}`}function f(e){return e.frameId??e.name??`scope`}function m(e){return s.value.has(f(e))}function _(e){let t=new Set(s.value),n=f(e);t.has(n)?t.delete(n):t.add(n),s.value=t}return c(()=>i.scopes.map(e=>f(e)),e=>{let t=new Set(e);s.value=new Set([...s.value].filter(e=>t.has(e)))}),(i,o)=>(t(),h(`section`,he,[S(`div`,ge,[o[0]||=S(`h3`,null,`In-Scope Variables`,-1),S(`span`,_e,a(n.scopes.length)+` frames`,1)]),n.scopes.length===0?(t(),h(`p`,ve,` No scoped variables are available at this step. `)):g(``,!0),(t(!0),h(p,null,E(n.scopes,n=>(t(),h(`div`,{key:f(n),class:`debugger-scope-panel__scope`},[S(`button`,{type:`button`,class:`debugger-scope-panel__scope-toggle`,"aria-expanded":!m(n),onClick:e=>_(n)},[S(`div`,be,[S(`h4`,null,a(n.name??n.frameId??`Frame`),1),S(`div`,xe,[S(`span`,Se,a(n.frameId??`anonymous`),1),S(`span`,Ce,a(m(n)?`▸`:`▾`),1)])])],8,ye),!m(n)&&n.variables.length>0?(t(),h(`ul`,we,[(t(!0),h(p,null,E(n.variables,i=>(t(),h(`li`,{key:`${n.frameId??`scope`}:${i.name??`variable`}`,class:`debugger-scope-panel__variable`},[S(`div`,Z,[S(`strong`,null,a(u(i.name,i.kind)),1),S(`span`,Q,a(i.kind??`value`),1)]),S(`code`,null,[d(i.kind,i.value)?(t(),x(e(re),{key:0,class:`debugger-scope-panel__value-link`,to:d(i.kind,i.value)??``,target:`_blank`,rel:`noreferrer`},{default:r(()=>[l(a(i.value??`null`),1)]),_:2},1032,[`to`])):(t(),h(p,{key:1},[l(a(i.value??`null`),1)],64))])]))),128))])):m(n)?g(``,!0):(t(),h(`p`,Te,`No variables in this frame.`))]))),128))]))}});function De(e){return new Worker(`/assets/editor.worker-DQJwLooG.js`,{name:e?.name})}function Oe(e){return new Worker(`/assets/json.worker-DR52qCex.js`,{name:e?.name})}function ke(e){return new Worker(`/assets/css.worker-BKx7BC4h.js`,{name:e?.name})}function Ae(e){return new Worker(`/assets/html.worker-ChRLLxCa.js`,{name:e?.name})}function je(e){return new Worker(`/assets/ts.worker-Cqvg7802.js`,{name:e?.name})}var Me=`canton-explorer-noctis-uva`,Ne=`daml`,Pe=null;function Fe(){let e=globalThis;e.MonacoEnvironment||={getWorker(e,t){switch(t){case`json`:return new Oe;case`css`:case`scss`:case`less`:return new ke;case`html`:case`handlebars`:case`razor`:return new Ae;case`typescript`:case`javascript`:return new je;default:return new De}}}}function Ie(e){e.languages.register({id:Ne,extensions:[`.daml`],aliases:[`DAML`,`daml`]}),e.languages.setLanguageConfiguration(Ne,{comments:{lineComment:`--`,blockComment:[`{-`,`-}`]},brackets:[[`{`,`}`],[`[`,`]`],[`(`,`)`]],autoClosingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`}],surroundingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`}],indentationRules:{increaseIndentPattern:/^.*(\b(where|of|do|let|then|else)\b.*|[\[{(])$/,decreaseIndentPattern:/^\s*[\]})]/}}),e.languages.setMonarchTokensProvider(Ne,{defaultToken:``,tokenPostfix:`.daml`,keywords:`module.where.import.as.qualified.hiding.template.with.signatory.observer.controller.choice.nonconsuming.key.maintainer.archive.fetch.fetchByKey.lookupByKey.to.do.let.in.if.then.else.case.of.data.type.newtype.class.instance.deriving.interface.view.method.exception.message.exercise.exerciseByKey.create.createAndExercise.submit.submitMustFail.return.forall.from.when.unless.has.implements.interface.this.self.enum.struct`.split(`.`),builtins:[`True`,`False`,`None`,`Some`,`Optional`,`Text`,`Int`,`Decimal`,`Numeric`,`Bool`,`Party`,`Time`,`Date`,`RelTime`,`ContractId`,`Update`,`Scenario`,`Any`,`AnyException`,`List`,`Map`,`TextMap`,`Unit`],operators:[`=`,`->`,`<-`,`=>`,`::`,`:`,`\\`,`|`,`.`,`,`,`;`,`==`,`/=`,`<`,`>`,`<=`,`>=`,`&&`,`||`,`+`,`-`,`*`,`/`,`++`,`$`],escapes:/\\(?:[abfnrtv\\\"']|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/[ \t\r\n]+/,`white`],[/--.*$/,`comment`],[/\{-/,{token:`comment`,next:`@comment`}],[/"([^"\\]|\\.)*$/,`string.invalid`],[/"/,{token:`string.quote`,bracket:`@open`,next:`@string`}],[/'[^\\']'/,`string`],[/'/,`string.invalid`],[/\b[0-9][0-9_]*(\.[0-9_]+)?\b/,`number`],[/\b[A-Z][\w']*(\.[A-Z][\w']*)*\b/,{cases:{"@builtins":`type`,"@default":`type.identifier`}}],[/\b[a-z_][\w']*\b/,{cases:{"@keywords":`keyword`,"@default":`identifier`}}],[/[{}()[\]]/,`@brackets`],[/[;,.]/,`delimiter`],[/[:!#$%&*+./<=>?@\\^|\-~]+/,{cases:{"@operators":`operator`,"@default":`operator`}}]],comment:[[/[^\{-]+/,`comment`],[/\{-/,{token:`comment`,next:`@push`}],[/-\}/,{token:`comment`,next:`@pop`}],[/[\{-]/,`comment`]],string:[[/[^\\"]+/,`string`],[/@escapes/,`string.escape`],[/\\./,`string.escape.invalid`],[/"/,{token:`string.quote`,bracket:`@close`,next:`@pop`}]]}})}function Le(e){e.editor.defineTheme(Me,{base:`vs-dark`,inherit:!0,rules:[{token:``,foreground:`D8D3E8`,background:`252845`},{token:`comment`,foreground:`A39DBA`,fontStyle:`italic`},{token:`string`,foreground:`7FE6D7`},{token:`string.escape`,foreground:`FAD7A0`},{token:`number`,foreground:`A89BFF`},{token:`keyword`,foreground:`FFB86C`},{token:`operator`,foreground:`F2EFFA`},{token:`delimiter`,foreground:`D8D3E8`},{token:`type`,foreground:`7AD7FF`},{token:`type.identifier`,foreground:`7AD7FF`},{token:`identifier`,foreground:`F0E9FF`},{token:`identifier.daml`,foreground:`F0E9FF`},{token:`keyword.daml`,foreground:`FFB86C`},{token:`type.identifier.daml`,foreground:`7AD7FF`},{token:`variable`,foreground:`F0E9FF`},{token:`variable.parameter`,foreground:`FFCAA1`,fontStyle:`italic`},{token:`function`,foreground:`7AD7FF`},{token:`function.call`,foreground:`7FE6D7`},{token:`tag`,foreground:`FFB86C`},{token:`attribute.name`,foreground:`FFCAA1`}],colors:{"editor.background":`#252845`,"editor.foreground":`#D8D3E8`,"editorLineNumber.foreground":`#787291`,"editorLineNumber.activeForeground":`#D8D3E8`,"editorCursor.foreground":`#FFB86C`,"editor.selectionBackground":`#3A3E67`,"editor.inactiveSelectionBackground":`#303356`,"editor.lineHighlightBackground":`#2B2E4C`,"editorLineNumber.dimmedForeground":`#605B77`,"editorIndentGuide.background1":`#3A3D59`,"editorIndentGuide.activeBackground1":`#5A5E84`,"editorWhitespace.foreground":`#4A4E72`,"editorGutter.background":`#252845`,"editorWidget.background":`#2B2F4D`,"editorWidget.border":`#484C6B`,"scrollbarSlider.background":`#52577466`,"scrollbarSlider.hoverBackground":`#666C8C88`,"scrollbarSlider.activeBackground":`#7A82A699`}})}async function Re(){return Pe||=C(()=>import(`./editor.api-8w-mShFJ.js`).then(e=>(Fe(),Ie(e),Le(e),e)),__vite__mapDeps([0,1])),Pe}var ze={class:`monaco-surface`},Be={key:0,class:`monaco-surface__state monaco-surface__state--loading`},Ve={key:1,class:`monaco-surface__state monaco-surface__state--error`},He=[`aria-label`],Ue=D({__name:`MonacoCodeSurface`,props:{modelValue:{},language:{default:`plaintext`},theme:{default:`dark`},readOnly:{type:Boolean,default:!0},ariaLabel:{default:`Code editor`},highlightRange:{default:null}},setup(e){let r=e,i=o(null),l=o(!0),u=o(null),d=y(null),f=y(null),p=y(null),m=null,_=[];function v(e){return e===`light`?`vs`:Me}async function x(){if(i.value){l.value=!0,u.value=null;try{let e=await Re();if(!i.value)return;d.value=e,p.value=e.editor.createModel(r.modelValue,r.language),e.editor.setTheme(v(r.theme)),f.value=e.editor.create(i.value,{model:p.value,readOnly:r.readOnly,automaticLayout:!1,minimap:{enabled:!1},scrollBeyondLastLine:!1,lineNumbers:`on`,wordWrap:`on`,glyphMargin:!0,renderLineHighlight:`all`,fontSize:13,tabSize:2,ariaLabel:r.ariaLabel}),m=new ResizeObserver(e=>{let t=e[0],n=t?.contentRect.width??i.value?.clientWidth??0,r=t?.contentRect.height??i.value?.clientHeight??0;n>0&&r>0&&f.value?.layout({width:n,height:r})}),m.observe(i.value),ee()}catch(e){u.value=e instanceof Error?e.message:`Failed to load Monaco editor`}finally{l.value=!1}}}function ee(){let e=d.value,t=f.value;if(!e||!t)return;if(!r.highlightRange){_=t.deltaDecorations(_,[]);return}let{startLine:n,startColumn:i,endLine:a,endColumn:o}=r.highlightRange;_=t.deltaDecorations(_,[{range:new e.Range(n,i,a,o),options:{className:`monaco-surface__highlight`,isWholeLine:!1}},{range:new e.Range(n,1,n,1),options:{isWholeLine:!0,className:`monaco-surface__execution-line`,linesDecorationsClassName:`monaco-surface__execution-line-gutter`}}]),t.revealLineInCenter(n)}return c(()=>r.modelValue,e=>{!p.value||e===p.value.getValue()||p.value.setValue(e)}),c(()=>r.language,e=>{!p.value||!d.value||d.value.editor.setModelLanguage(p.value,e)}),c(()=>r.theme,e=>{d.value?.editor.setTheme(v(e))}),c(()=>r.readOnly,e=>{f.value?.updateOptions({readOnly:e})}),c(()=>r.highlightRange,()=>{ee()},{deep:!0}),s(()=>{x()}),ie(()=>{m?.disconnect(),f.value&&(_=f.value.deltaDecorations(_,[])),f.value?.dispose(),p.value?.dispose()}),(r,o)=>(t(),h(`div`,ze,[l.value?(t(),h(`div`,Be,` Loading editor... `)):u.value?(t(),h(`div`,Ve,a(u.value),1)):g(``,!0),n(S(`div`,{ref_key:`container`,ref:i,class:`monaco-surface__editor`,"aria-label":e.ariaLabel},null,8,He),[[b,!l.value&&!u.value]])]))}}),We={class:`debugger-view`},Ge={key:0,class:`node-detail__message node-detail__message--error`},Ke={key:1,class:`node-detail__message`},qe={class:`debugger-view__editor-shell`,"data-testid":`debugger-editor-shell`},Je={class:`debugger-view__summary`,"data-testid":`debugger-summary`},Ye={class:`debugger-view__summary-columns`},Xe={class:`debugger-view__summary-column debugger-view__summary-column--context`,"data-testid":`debugger-summary-context`},Ze={class:`debugger-view__summary-header`},Qe={class:`debugger-view__panel-meta`},$e={class:`debugger-view__signal-row`},et={class:`debugger-view__status`},tt={class:`debugger-view__status`},nt={class:`debugger-view__summary-section`},rt={class:`debugger-view__panel-copy`},it={class:`detail-grid debugger-view__summary-grid`},at={class:`update-detail__id`},ot={class:`debugger-view__summary-item debugger-view__summary-item--canonical`},st={class:`update-detail__canonical`},ct={key:1},lt={class:`update-detail__canonical`},ut={class:`debugger-view__summary-column debugger-view__summary-column--events`,"data-testid":`debugger-summary-events`},dt=14,ft=320,pt=420,mt=48,$=16,ht=D({__name:`DebuggerView`,setup(n){let p=f(),v=o(`dark`),y=o(null),b=o([]),C=o(!1),w=o(!1),E=o(!1),D=o(null),O=o(null),k=o(null),A=o(null),j=o(typeof window>`u`?1280:window.innerWidth),M=o(null),N=null,P=null,F=null,oe=0,I=0;function L(){v.value=document.documentElement.dataset.theme===`light`?`light`:`dark`}let R=m(()=>j.value<=980);function se(e){let t=O.value;if(!t)return e;let n=Math.max(pt,t.clientWidth-ft-dt);return Math.min(Math.max(e,pt),n)}function z(e){A.value=se(e)}function B(){P=null,window.removeEventListener(`pointermove`,G),window.removeEventListener(`pointerup`,K),window.removeEventListener(`pointercancel`,K),document.body.classList.remove(`debugger-view--resizing`)}function V(e){let t=O.value,n=k.value;if(!t||!n)return e;let r=Math.max($,t.clientWidth-n.offsetWidth-$),i=Math.max($,t.clientHeight-n.offsetHeight-$);return{x:Math.min(Math.max(e.x,$),r),y:Math.min(Math.max(e.y,$),i)}}function H(){if(R.value)return;let e=O.value,t=k.value;if(!e||!t)return;let n=Math.max($,Math.round((e.clientWidth-t.offsetWidth)/2));M.value=V({x:n,y:$})}function U(){F=null,window.removeEventListener(`pointermove`,ce),window.removeEventListener(`pointerup`,W),window.removeEventListener(`pointercancel`,W),document.body.classList.remove(`debugger-view--dragging-panel`)}function ce(e){let t=O.value;if(!t)return;let n=t.getBoundingClientRect();M.value=V({x:e.clientX-n.left-oe,y:e.clientY-n.top-I})}function W(e){e&&F!==null&&e.pointerId!==F||U()}function le(e){if(R.value||!k.value)return;let t=k.value.getBoundingClientRect();F=e.pointerId,oe=e.clientX-t.left,I=e.clientY-t.top,document.body.classList.add(`debugger-view--dragging-panel`),window.addEventListener(`pointermove`,ce),window.addEventListener(`pointerup`,W),window.addEventListener(`pointercancel`,W)}function ue(){if(j.value=window.innerWidth,R.value){U();return}if(M.value===null){d().then(()=>{H()});return}M.value=V(M.value)}function G(e){let t=O.value;if(!t)return;let n=t.getBoundingClientRect();z(e.clientX-n.left)}function K(e){e&&P!==null&&e.pointerId!==P||B()}function de(e){window.innerWidth<=980||(P=e.pointerId,document.body.classList.add(`debugger-view--resizing`),window.addEventListener(`pointermove`,G),window.addEventListener(`pointerup`,K),window.addEventListener(`pointercancel`,K),G(e))}function q(e){let t=O.value;if(!t)return;let n=Math.max(pt,Math.round((t.clientWidth-dt)*.6));z((A.value??n)+e)}function fe(e){window.innerWidth<=980||(e.key===`ArrowLeft`&&(e.preventDefault(),q(-48)),e.key===`ArrowRight`&&(e.preventDefault(),q(mt)))}let J=m(()=>{let e=p.query.nodeId;return typeof e==`string`&&e.trim().length>0?e.trim():null}),Y=m(()=>{let e=p.query.updateId;return typeof e==`string`&&e.trim().length>0?e.trim():null}),X=m(()=>{let e=p.query.eventOffset;return typeof e==`string`&&e.trim().length>0?e.trim():null}),pe=m(()=>y.value?.source?.content?y.value.source.content:y.value?JSON.stringify(y.value.currentStep,null,2):``),he=m(()=>(y.value?.source?.path?.toLowerCase()??``).endsWith(`.daml`)?`daml`:`plaintext`),ge=m(()=>{let e=y.value?.source;return!e||e.startLine===null||e.startColumn===null||e.endLine===null||e.endColumn===null?null:{startLine:e.startLine,startColumn:e.startColumn,endLine:e.endLine,endColumn:e.endColumn}}),_e=m(()=>y.value?`${y.value.currentStepIndex+1} / ${Math.max(1,y.value.stepCount)}`:`Not loaded`),ve=m(()=>y.value?y.value.currentStep.phase.replace(/([a-z])([A-Z])/g,`$1 $2`).replace(/^./,e=>e.toUpperCase()):`n/a`),ye=m(()=>!y.value?.nodeId||!y.value.offset?null:`/nodes/${encodeURIComponent(y.value.nodeId)}/updates/${encodeURIComponent(y.value.offset)}`),be=m(()=>y.value?.currentStep.scopes??[]),xe=m(()=>b.value),Se=m(()=>y.value?b.value.filter(e=>e.stepIndex<=y.value.currentStepIndex):[]),Ce=m(()=>A.value===null?void 0:{gridTemplateColumns:`${A.value}px ${dt}px minmax(${ft}px, 1fr)`}),we=m(()=>R.value?{top:`${$}px`,left:`${$}px`,right:`${$}px`}:M.value===null?{visibility:`hidden`}:{left:`${M.value.x}px`,top:`${M.value.y}px`});async function Z(e){E.value=!0;try{let t=await ne(e);b.value=t.replayEvents}finally{E.value=!1}}async function Q(){if(!J.value||!X.value){y.value=null,D.value=`Open the debugger from an update detail page to launch a replay session.`;return}C.value=!0,D.value=null;try{let e=await ee(J.value,X.value);y.value=e,await Z(e.sessionId)}catch(e){D.value=e instanceof Error?e.message:`Unknown error`,y.value=null,b.value=[]}finally{C.value=!1}}async function Te(e){if(y.value?.sessionId){w.value=!0,D.value=null;try{let t=await te(y.value.sessionId,e);y.value=t,await Z(t.sessionId)}catch(e){D.value=e instanceof Error?e.message:`Unknown error`}finally{w.value=!1}}}async function De(){if(y.value?.sessionId){C.value=!0,D.value=null;try{let e=await _(y.value.sessionId);y.value=e,await Z(e.sessionId)}catch(e){D.value=e instanceof Error?e.message:`Unknown error`}finally{C.value=!1}}}async function Oe(e){if(y.value?.sessionId){w.value=!0,D.value=null;try{let t=await u(y.value.sessionId,e);y.value=t,await Z(t.sessionId)}catch(e){D.value=e instanceof Error?e.message:`Unknown error`}finally{w.value=!1}}}return c([J,X],()=>{M.value=null,Q()}),c(()=>y.value?.sessionId,async e=>{e&&(await d(),H())}),s(()=>{L(),j.value=window.innerWidth,N=new MutationObserver(()=>{L()}),N.observe(document.documentElement,{attributes:!0,attributeFilter:[`data-theme`]}),window.addEventListener(`resize`,ue),Q()}),ie(()=>{N?.disconnect(),B(),U(),window.removeEventListener(`resize`,ue)}),(n,o)=>(t(),h(`section`,We,[D.value?(t(),h(`p`,Ge,a(D.value),1)):C.value&&!y.value?(t(),h(`p`,Ke,`Loading debugger session...`)):g(``,!0),y.value?(t(),h(`div`,{key:2,ref_key:`workspace`,ref:O,class:`debugger-view__workspace`,style:i(Ce.value),"data-testid":`debugger-workspace`},[S(`div`,{ref_key:`controlPanel`,ref:k,class:`debugger-view__floating-controls`,style:i(we.value),"data-testid":`debugger-floating-controls`},[T(ae,{"action-loading":w.value,"is-terminal":y.value.isTerminal,"current-step-index":y.value.currentStepIndex,onDragStart:le,onRefresh:De,onAction:Te},null,8,[`action-loading`,`is-terminal`,`current-step-index`])],4),S(`section`,qe,[T(Ue,{"model-value":pe.value,theme:v.value,language:he.value,"highlight-range":ge.value,"aria-label":`DAML debugger code surface`},null,8,[`model-value`,`theme`,`language`,`highlight-range`])]),S(`div`,{class:`debugger-view__divider`,role:`separator`,"aria-label":`Resize editor panel`,"aria-orientation":`vertical`,tabindex:`0`,"data-testid":`debugger-editor-divider`,onPointerdown:de,onKeydown:fe},null,32),S(`aside`,Je,[S(`div`,Ye,[S(`div`,Xe,[S(`div`,Ze,[S(`div`,Qe,[S(`div`,$e,[o[0]||=S(`span`,{class:`debugger-view__signal`},`Replay Session`,-1),S(`span`,et,a(_e.value),1),S(`span`,tt,a(ve.value),1)]),o[1]||=S(`h2`,null,`Launch Context`,-1)])]),S(`div`,nt,[o[2]||=S(`h3`,null,`Execution Script`,-1),S(`p`,rt,a(y.value.source?.path??`Source mapping unavailable for this step.`),1)]),S(`dl`,it,[S(`div`,null,[o[3]||=S(`dt`,null,`Node`,-1),S(`dd`,null,a(y.value.nodeId),1)]),S(`div`,null,[o[4]||=S(`dt`,null,`Event Offset`,-1),S(`dd`,at,a(y.value.offset),1)]),S(`div`,ot,[o[5]||=S(`dt`,null,`Canonical Update ID`,-1),S(`dd`,st,[ye.value&&(y.value.updateId??Y.value)?(t(),x(e(re),{key:0,class:`update-detail__debug-action`,to:ye.value,target:`_blank`,rel:`noreferrer`},{default:r(()=>[l(a(y.value.updateId??Y.value),1)]),_:1},8,[`to`])):(t(),h(`span`,ct,a(y.value.updateId??Y.value??`n/a`),1))])]),S(`div`,null,[o[6]||=S(`dt`,null,`Session`,-1),S(`dd`,lt,a(y.value.sessionId),1)]),S(`div`,null,[o[7]||=S(`dt`,null,`Step`,-1),S(`dd`,null,a(_e.value),1)]),S(`div`,null,[o[8]||=S(`dt`,null,`Phase`,-1),S(`dd`,null,a(ve.value),1)])]),T(Ee,{scopes:be.value,"node-id":y.value.nodeId},null,8,[`scopes`,`node-id`])]),S(`div`,ut,[T(me,{"real-events":xe.value,"replay-events":Se.value,"current-step-id":y.value.currentStep.stepId,loading:E.value,onSelectStep:Oe},null,8,[`real-events`,`replay-events`,`current-step-id`,`loading`])])])])],4)):g(``,!0)]))}});export{ht as default};
@@ -1 +0,0 @@
1
- :root{--font-body:"IBM Plex Sans", Inter, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--text-900:#1f2937;--text-800:#334155;--text-700:#4b5563;--text-600:#5f6b7d;--text-500:#6b7280;--muted-text:#64748b;--surface-0:#edf2fb;--surface-2:#e6ecf7;--surface-page:#f6f8fb;--surface-card:#fff;--surface-muted:#f2f5fb;--line-soft:#e5e7eb;--line-strong:#d1d5db;--accent-600:#1f6feb;--blue-500:#4a7ef5;--blue-600:#1f6feb;--blue-700:#0f4aa6;--blue-50:#eef5ff;--green-600:#11845b;--amber-600:#b7791f;--red-600:#d14343;--danger-600:#d14343;--shadow-soft:0 10px 24px #0f172a0f;--nav-active-border:#bfd3f6;--nav-active-bg:#f5f8fe;--nav-active-text:#0f4aa6;--panel-border:#dde6f4;--panel-gradient-start:#f5f8fee6;--panel-gradient-end:#fff;--chart-gradient-start:#eef5ffb3;--chart-gradient-end:#ffffffb3;--chart-guide:#1f6feb1f;--chart-line:#1f6feb;--panel-divider:#e3ebf7;--filter-active-border:#bfd4fb;--filter-active-bg:#f3f7ff;--filter-chip-border:#d7e4fb;--filter-chip-bg:#f6f9ff;--back-button-border:#cfe0fb;--back-button-bg:#f7faff;--back-button-shadow:0 8px 18px #1f6feb14;--error-border:#fecaca;--status-healthy-bg:#e8f7f0;--status-healthy-border:#bfe8d3;--status-degraded-bg:#fff5e8;--status-degraded-border:#f2d19a;--status-down-bg:#feeeee;--status-down-border:#f6b8b8;font-family:var(--font-body);color:var(--text-900);background:var(--surface-page)}.search-results-view{flex-direction:column;gap:18px;width:min(1120px,100%);margin:0 auto;display:flex}.search-results-view__header{flex-direction:column;gap:6px;display:flex}.search-results-view__header h2{letter-spacing:-.04em;margin:0;font-size:1.9rem}.search-results-view__query{color:var(--muted-text);margin:0}.search-results-view__content{flex-direction:column;gap:16px;display:flex}.search-results-view__loading,.search-results-view__error,.search-results-view__empty,.search-results-group{border:1px solid var(--line-soft);background:var(--surface-card);box-shadow:var(--shadow-soft);border-radius:20px;padding:18px 20px}.search-results-group{flex-direction:column;gap:10px;display:flex}.search-results-group__heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.search-results-group__heading h3{text-transform:uppercase;letter-spacing:.12em;margin:0;font-size:1rem}.search-results-group__subheading{text-transform:uppercase;letter-spacing:.14em;color:var(--muted-text);margin-top:2px;font-size:.76rem;font-weight:700}.search-results-group__warning{color:#b45309;margin:0;font-size:.92rem}.search-results-row{color:inherit;background:color-mix(in srgb, var(--surface-muted) 88%, transparent);border:1px solid color-mix(in srgb, var(--line-soft) 72%, transparent);border-radius:14px;grid-template-columns:minmax(220px,1.15fr) minmax(180px,.9fr) minmax(140px,.7fr);align-items:center;gap:12px;padding:12px 14px;text-decoration:none;transition:background-color .14s,transform .14s;display:grid}.search-results-row:hover{background:color-mix(in srgb, var(--blue-50) 92%, transparent);transform:translateY(-1px)}.search-results-row__primary{text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}:root[data-theme=dark]{--text-900:#d9d4e9;--text-800:#c5bfd9;--text-700:#b2acc8;--text-600:#9f98b7;--text-500:#8a84a1;--muted-text:#918aa9;--surface-0:#1f2237;--surface-2:#2b2f49;--surface-page:#1e2136;--surface-card:#272a43;--surface-muted:#22253b;--line-soft:#3a3d57;--line-strong:#4a4d6a;--accent-600:#74d5ff;--blue-500:#74d5ff;--blue-600:#78cfff;--blue-700:#d4e8ff;--blue-50:#2c3150;--green-600:#7fd7c3;--amber-600:#ffb86c;--red-600:#f08ea0;--danger-600:#f08ea0;--shadow-soft:0 18px 32px #0b0c1838;--nav-active-border:#505577;--nav-active-bg:#303453;--nav-active-text:#e5e0f4;--panel-border:#3b3f5c;--panel-gradient-start:#292c44fa;--panel-gradient-end:#22253bfa;--chart-gradient-start:#3439598f;--chart-gradient-end:#21243975;--chart-guide:#74d5ff1f;--chart-line:#8fdfff;--panel-divider:#393c58;--filter-active-border:#505679;--filter-active-bg:#313654;--filter-chip-border:#4a4f72;--filter-chip-bg:#2b2f49;--back-button-border:#4c5177;--back-button-bg:#2a2f49;--back-button-shadow:0 14px 28px #0d0f1a38;--error-border:#6a4958;--status-healthy-bg:#243b3a;--status-healthy-border:#41615c;--status-degraded-bg:#43362f;--status-degraded-border:#7a5d47;--status-down-bg:#46313b;--status-down-border:#7c5061}body{background:var(--surface-page);min-height:100vh;color:var(--text-900);font-family:var(--font-body);margin:0}#app{min-height:100vh}.app-shell{background:linear-gradient(180deg, color-mix(in srgb, var(--surface-page) 96%, transparent), var(--surface-page)), var(--surface-page);flex-direction:column;min-height:100vh;display:flex}.app-shell--debugger{height:100vh;min-height:100vh;overflow:hidden}.app-frame{box-sizing:border-box;flex-direction:column;flex:1;width:100%;max-width:1280px;min-height:0;margin:0 auto;padding:24px 24px 40px;display:flex}.app-frame--debugger{max-width:none;margin:0;padding:0;overflow:hidden}.app-header{background:color-mix(in srgb, var(--surface-card) 94%, var(--surface-page));border-bottom:1px solid var(--line-soft);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);width:100%}.app-header__inner{max-width:1280px;margin:0 auto;padding:0 24px}.app-footer{border-top:1px solid var(--line-soft);background:color-mix(in srgb, var(--surface-card) 94%, var(--surface-page))}.app-footer__inner{max-width:1280px;margin:0 auto;padding:14px 24px 18px}.app-footer__text{color:var(--text-500);text-align:center;margin:0;font-size:.85rem}.app-footer__package{color:var(--text-700);font-family:IBM Plex Mono,SFMono-Regular,Consolas,Liberation Mono,monospace;text-decoration:none}.app-footer__package:hover{color:var(--accent-600)}.app-titlebar{justify-content:space-between;align-items:center;gap:20px;min-height:72px;display:flex}.monaco-surface{border:1px solid var(--panel-border);background:#252845;border-radius:18px;width:100%;height:100%;min-height:0;position:relative;overflow:hidden}.monaco-surface__editor{width:100%;height:100%;min-height:0}.monaco-surface__highlight{background:color-mix(in srgb, var(--blue-500) 16%, transparent)}.monaco-surface__execution-line{background:color-mix(in srgb, var(--amber-600) 18%, transparent)}.monaco-surface__execution-line-gutter{border-left:3px solid color-mix(in srgb, var(--amber-600) 88%, white 12%);margin-left:4px}.monaco-surface__state{text-align:center;justify-content:center;align-items:center;height:100%;min-height:420px;padding:24px;font-weight:600;display:flex}.monaco-surface__state--loading{color:var(--text-900)}.monaco-surface__state--error{color:var(--red-600)}.debugger-view{box-sizing:border-box;background:linear-gradient(180deg, color-mix(in srgb, var(--surface-2) 52%, transparent), transparent 26%), color-mix(in srgb, var(--surface-page) 94%, black 6%);width:100%;height:100%;min-height:0;margin:0;padding:0;overflow:clip}.debugger-view__workspace{grid-template-columns:minmax(420px,3fr) 14px minmax(320px,2fr);align-items:stretch;gap:0;height:100%;min-height:0;display:grid;position:relative}.debugger-view__summary-grid{grid-template-columns:1fr}.debugger-view__summary-item--canonical{grid-column:1/-1}.debugger-view__summary-item--canonical .update-detail__canonical{flex-direction:column;align-items:flex-start;display:flex}.debugger-view__editor-shell{height:100%;min-height:0;overflow:hidden}.debugger-view__divider{cursor:col-resize;touch-action:none;background:linear-gradient(180deg, transparent 0, color-mix(in srgb, var(--line-soft) 84%, transparent) 18%, color-mix(in srgb, var(--line-soft) 84%, transparent) 82%, transparent 100%);outline:none;min-height:0;position:relative}.debugger-view__divider:before{content:"";background:color-mix(in srgb, var(--surface-muted) 84%, transparent);width:4px;height:64px;box-shadow:0 0 0 1px color-mix(in srgb, var(--line-soft) 60%, transparent);border-radius:999px;margin:auto;transition:background .14s,box-shadow .14s;position:absolute;inset:0}.debugger-view__divider:hover:before,.debugger-view__divider:focus-visible:before{background:color-mix(in srgb, var(--blue-500) 34%, var(--surface-muted));box-shadow:0 0 0 1px color-mix(in srgb, var(--blue-500) 58%, transparent)}.debugger-view--resizing,.debugger-view--resizing *{-webkit-user-select:none;user-select:none;cursor:col-resize!important}.debugger-view__summary{background:color-mix(in srgb, var(--surface-card) 96%, transparent);min-height:0;padding:24px;overflow:hidden}.debugger-view__summary h2{margin:0}.debugger-view__summary-columns{grid-template-columns:minmax(280px,.95fr) minmax(320px,1.15fr);gap:20px;height:100%;min-height:0;display:grid}.debugger-view__summary-column{min-height:0;overflow:auto}.debugger-view__summary-column--context{padding-right:4px}.debugger-view__summary-column--events{padding-left:4px}.debugger-view__panel-meta{min-width:0}.debugger-view__summary-header,.debugger-view__summary-section{margin-bottom:18px}.debugger-view__summary-section h3{margin:0 0 6px}.debugger-view__signal-row{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;display:flex}.debugger-view__signal,.debugger-view__status{letter-spacing:.08em;text-transform:uppercase;border-radius:999px;align-items:center;padding:6px 12px;font-size:.78rem;font-weight:700;display:inline-flex}.debugger-view__signal{background:color-mix(in srgb, var(--blue-500) 16%, transparent);color:var(--blue-700)}.debugger-view__status{background:color-mix(in srgb, var(--surface-muted) 76%, transparent);color:var(--text-700)}.debugger-view__panel-copy{color:var(--text-500);word-break:break-word;max-width:100%;margin:0}.debugger-view__floating-controls{z-index:6;min-width:min(700px,100% - 32px);max-width:min(760px,100% - 32px);position:absolute}.debugger-control-panel{border:1px solid color-mix(in srgb, var(--line-strong) 72%, transparent);background:color-mix(in srgb, var(--surface-card) 95%, var(--surface-page));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:14px;flex-direction:column;gap:12px;padding:12px;display:flex;box-shadow:0 14px 32px #0c0e1838}.debugger-control-panel__handle{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:12px;padding:2px 2px 0;display:flex}.debugger-control-panel__title{letter-spacing:.1em;text-transform:uppercase;color:var(--text-900);font-size:.8rem;font-weight:700}.debugger-control-panel__meta{color:var(--text-500);font-size:.75rem}.debugger-control-panel__actions{flex-wrap:wrap;gap:8px;display:flex}.debugger-control-panel__button{border:1px solid var(--line-soft);background:color-mix(in srgb, var(--surface-muted) 80%, var(--surface-card));min-height:36px;color:var(--text-800);font:inherit;cursor:pointer;border-radius:10px;padding:8px 12px;font-size:.88rem;font-weight:600;transition:border-color .16s,color .16s,background-color .16s}.debugger-control-panel__button:hover{border-color:color-mix(in srgb, var(--blue-500) 42%, var(--line-soft));background:var(--blue-50);color:var(--text-900)}.debugger-control-panel__button:disabled{opacity:.46;cursor:not-allowed}.debugger-view--dragging-panel,.debugger-view--dragging-panel *,.debugger-view--dragging-panel .debugger-control-panel__handle{cursor:grabbing!important}.debugger-view__editor-shell>.monaco-surface{background:#252845;border:0;border-radius:0;height:100%;min-height:0}.debugger-scope-panel,.debugger-event-list{border-top:1px solid color-mix(in srgb, var(--line-soft) 84%, transparent);margin-top:24px;padding-top:20px}.debugger-scope-panel__header,.debugger-event-list__header,.debugger-scope-panel__scope-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.debugger-scope-panel__header h3,.debugger-event-list__header h3,.debugger-scope-panel__scope-header h4{margin:0}.debugger-scope-panel__count,.debugger-event-list__count,.debugger-scope-panel__scope-id,.debugger-scope-panel__kind,.debugger-event-list__ordinal,.debugger-event-list__location{color:var(--text-500);font-size:.78rem}.debugger-scope-panel__scope{background:color-mix(in srgb, var(--surface-muted) 78%, transparent);border-radius:16px;margin-top:16px;padding:14px 16px}.debugger-scope-panel__scope-toggle{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0}.debugger-scope-panel__scope-toggle:focus-visible{outline:2px solid color-mix(in srgb, var(--blue-500) 52%, transparent);outline-offset:6px;border-radius:10px}.debugger-scope-panel__scope-meta{align-items:center;gap:10px;display:inline-flex}.debugger-scope-panel__scope-chevron{color:var(--text-500);font-size:.86rem}.debugger-scope-panel__variables,.debugger-event-list__items{margin:12px 0 0;padding:0;list-style:none}.debugger-scope-panel__variable{border-top:1px solid color-mix(in srgb, var(--line-soft) 60%, transparent);justify-content:space-between;align-items:flex-start;gap:12px;padding:10px 0;display:flex}.debugger-scope-panel__variable-meta{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.debugger-scope-panel__variable:first-child{border-top:0;padding-top:0}.debugger-scope-panel__variable code{white-space:pre-wrap;word-break:break-word;text-align:right}.debugger-scope-panel__value-link{color:var(--blue-700);text-decoration:none}.debugger-scope-panel__value-link:hover{color:var(--blue-500);text-decoration:underline}.debugger-scope-panel__empty,.debugger-event-list__empty{color:var(--text-500);margin:12px 0 0}.debugger-event-list__tabs{gap:8px;margin-top:14px;display:inline-flex}.debugger-event-list__tab{border:1px solid color-mix(in srgb, var(--line-soft) 82%, transparent);color:var(--text-500);font:inherit;cursor:pointer;background:0 0;border-radius:999px;padding:8px 14px}.debugger-event-list__tab--active{background:color-mix(in srgb, var(--blue-500) 10%, var(--surface-0));border-color:color-mix(in srgb, var(--blue-500) 66%, transparent);color:var(--text-900)}.debugger-event-list__item+.debugger-event-list__item{margin-top:10px}.debugger-event-list__button{border:1px solid color-mix(in srgb, var(--line-soft) 82%, transparent);background:color-mix(in srgb, var(--surface-0) 92%, transparent);width:100%;color:inherit;text-align:left;cursor:pointer;border-radius:14px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px;display:grid}.debugger-event-list__button--static{cursor:default}.debugger-event-list__button--active{border-color:color-mix(in srgb, var(--blue-500) 66%, transparent);background:color-mix(in srgb, var(--blue-500) 10%, var(--surface-0))}.debugger-event-list__summary{text-overflow:ellipsis;min-width:0;overflow:hidden}@media (width<=980px){.debugger-view{overflow:visible}.debugger-view__workspace{grid-template-columns:1fr;height:auto}.debugger-view__editor-shell{border-bottom:1px solid color-mix(in srgb, var(--line-soft) 84%, transparent);min-height:60vh}.debugger-view__summary{min-height:52vh}.debugger-view__summary-columns{grid-template-columns:minmax(240px,.95fr) minmax(280px,1.15fr)}.debugger-view__divider{display:none}.debugger-view__floating-controls{min-width:0;max-width:none}.debugger-control-panel{border-radius:12px}}.app-toolbar{flex:1;justify-content:flex-end;align-items:center;gap:12px;min-width:0;display:flex}.app-nav{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.app-search{border:1px solid var(--line-soft);background:color-mix(in srgb, var(--surface-muted) 88%, var(--surface-card));width:min(360px,100%);min-width:220px;color:var(--text-900);box-sizing:border-box;border-radius:10px;padding:10px 14px;font-size:.95rem;transition:border-color .16s,background-color .16s,color .16s}.app-search::placeholder{color:var(--text-500)}.nav-button{border:1px solid var(--line-soft);background:color-mix(in srgb, var(--surface-muted) 72%, var(--surface-card));color:var(--text-700);cursor:pointer;border-radius:10px;padding:10px 14px;font-size:.95rem;font-weight:500;text-decoration:none;transition:border-color .16s,color .16s,background-color .16s}.nav-button:hover{border-color:color-mix(in srgb, var(--blue-500) 42%, var(--line-soft));color:var(--text-900);background:var(--blue-50)}.router-link-active.nav-button{border-color:var(--nav-active-border);background:var(--nav-active-bg);color:var(--nav-active-text)}.app-theme-toggle{border:1px solid var(--line-soft);background:color-mix(in srgb, var(--surface-muted) 72%, var(--surface-card));width:42px;height:42px;color:var(--text-700);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;font-size:1rem;line-height:1;transition:border-color .16s,color .16s,background-color .16s,transform .16s;display:inline-flex}.app-theme-toggle:hover{border-color:color-mix(in srgb, var(--blue-500) 42%, var(--line-soft));color:var(--text-900);background:var(--blue-50)}.app-theme-toggle:focus-visible{outline:2px solid var(--blue-600);outline-offset:2px}.nav-button--disabled{cursor:not-allowed;opacity:.45}h1,h2,h3{font-family:var(--font-body);letter-spacing:-.02em;color:var(--text-900);margin:0;font-weight:700}.app-brand{min-width:0;color:inherit;align-items:center;gap:12px;text-decoration:none;display:flex}.app-brand__logo{object-fit:cover;border-radius:8px;flex:none;width:34px;height:34px}.app-brand__title{min-width:0;font-size:1.3rem;line-height:1.2}h2{font-size:1.5rem;line-height:1.2}h3{font-size:1.05rem;line-height:1.35}.app-main{flex-direction:column;flex:1;gap:20px;min-height:0;display:flex}.app-frame--debugger .app-main{gap:0;overflow:hidden}.dashboard{flex-direction:column;gap:16px;display:flex}.activity-home{flex-direction:column;gap:18px;display:flex}.activity-home__hero{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.activity-home__copy{max-width:44rem}.activity-home__eyebrow{color:var(--accent-600);text-transform:uppercase;letter-spacing:.14em;margin:0 0 10px;font-size:.72rem;font-weight:700}.activity-home__lede{color:var(--text-500);margin:8px 0 0;font-size:.98rem;line-height:1.6}.activity-home__controls{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;display:flex}.activity-home__grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:18px;display:grid}.activity-home__updates-section{flex-direction:column;gap:14px;margin-top:20px;display:flex}.activity-home__updates-header h3{margin:0}.activity-home__updates-node{color:var(--text-900);font-weight:600}.activity-home__selector{border:1px solid var(--line-soft);background:color-mix(in srgb, var(--surface-card) 92%, var(--surface-muted));border-radius:999px;align-items:center;gap:8px;padding:6px;display:inline-flex}.activity-home__selector-button{min-width:40px;color:var(--text-500);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:8px 12px;font-size:.9rem;font-weight:700;transition:background-color .16s,color .16s}.activity-home__selector-button:hover{background:var(--blue-50);color:var(--text-900)}.activity-home__selector-button--active{background:color-mix(in srgb, var(--blue-500) 18%, var(--surface-card));color:var(--text-900)}.activity-panel{border:1px solid var(--panel-border);background:linear-gradient(180deg, var(--panel-gradient-start), var(--panel-gradient-end));box-shadow:var(--shadow-soft);border-radius:16px;padding:20px}.activity-panel-link{color:inherit;text-decoration:none}.activity-panel__header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.activity-panel__meta,.activity-panel__footer p{color:var(--text-500);margin:6px 0 0;font-size:.92rem}.activity-panel__status{background:var(--surface-card);border:1px solid var(--line-soft);border-radius:999px;justify-content:center;align-items:center;padding:7px 10px;font-size:.82rem;font-weight:700;display:inline-flex}.activity-panel__status[data-status=healthy]{color:var(--green-600)}.activity-panel__status[data-status=degraded]{color:var(--amber-600)}.activity-panel__status[data-status=down]{color:var(--red-600)}.activity-panel__chart-layout{grid-template-columns:34px minmax(0,1fr);align-items:stretch;gap:10px;margin-top:18px;display:grid}.activity-panel__scale{flex-direction:column;justify-content:space-between;align-items:flex-end;padding:6px 0;display:flex}.activity-panel__scale-label{color:var(--text-500);font-variant-numeric:tabular-nums;font-size:.74rem;font-weight:700;line-height:1}.activity-panel__chart{background:linear-gradient(180deg, var(--chart-gradient-start), var(--chart-gradient-end));border-radius:12px;width:100%;height:120px}.activity-panel__guide{stroke:var(--chart-guide);stroke-width:1px}.activity-panel__line{stroke:var(--chart-line)}.activity-panel__axis{justify-content:space-between;gap:12px;margin-top:8px;display:flex}.activity-panel__axis-label{color:var(--text-500);letter-spacing:.01em;font-size:.78rem;font-weight:600}.activity-panel__footer{border-top:1px solid var(--panel-divider);flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:14px;padding-top:14px;display:flex}.activity-panel-link:hover .activity-panel{border-color:color-mix(in srgb, var(--blue-500) 30%, var(--panel-border));box-shadow:0 16px 28px color-mix(in srgb, var(--surface-page) 78%, transparent)}.node-updates,.node-updates__content{flex-direction:column;gap:18px;display:flex}.node-updates__pager{align-items:center;gap:10px;display:flex}.node-updates__page-size{color:var(--text-600);align-items:center;gap:8px;font-size:.88rem;font-weight:600;display:inline-flex}.node-updates__page-size-label{white-space:nowrap}.node-updates__page-size-select{border:1px solid var(--line-soft);background:var(--surface-card);min-width:88px;color:var(--text-900);appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--text-700) 50%), linear-gradient(135deg, var(--text-700) 50%, transparent 50%);cursor:pointer;background-position:calc(100% - 18px) calc(50% - 2px),calc(100% - 12px) calc(50% - 2px);background-repeat:no-repeat;background-size:6px 6px,6px 6px;border-radius:10px;padding:10px 34px 10px 12px;font-size:.95rem;font-weight:500;line-height:1.2}.node-updates__page-size-select:focus{outline:2px solid var(--blue-600);outline-offset:2px}.node-updates__pager .dashboard__refresh:disabled{border-color:var(--line-soft);background:var(--surface-muted);color:var(--text-500);cursor:not-allowed}.node-updates__advanced-filter{border:1px solid var(--line-soft);background:var(--surface-card);box-shadow:var(--shadow-soft);border-radius:14px;padding:18px 20px;overflow:visible}.node-updates__advanced-filter-title{margin-bottom:14px}.node-updates__advanced-filter-grid{grid-template-columns:minmax(240px,720px);gap:14px;display:grid}.node-updates__advanced-filter-field{color:var(--text-700);flex-direction:column;gap:8px;font-size:.9rem;font-weight:600;display:flex}.node-updates__advanced-filter-field--party{max-width:420px}.node-updates__advanced-filter-field--template{max-width:720px}.node-updates__advanced-filter-input-row{flex-wrap:wrap;align-items:center;gap:10px;min-width:0;display:flex}.node-updates__advanced-filter-input-row--template{flex-wrap:nowrap}.node-updates__advanced-filter-input-row--template .searchable-combobox{flex:360px;max-width:none}.node-updates__advanced-filter-field input{border:1px solid var(--line-soft);background:var(--surface-muted);color:var(--text-500);border-radius:10px;flex:1;padding:10px 14px;font-size:.95rem}.searchable-combobox{flex:auto;min-width:0;position:relative}.searchable-combobox__input{box-sizing:border-box;width:100%}.searchable-combobox__menu{z-index:50;border:1px solid var(--line-soft);background:var(--surface-card);max-height:240px;box-shadow:var(--shadow-soft);border-radius:12px;flex-direction:column;gap:4px;padding:8px;display:flex;position:absolute;top:calc(100% + 8px);left:0;right:0;overflow-y:auto}.searchable-combobox__option{width:100%;color:var(--text-500);cursor:pointer;font:inherit;text-align:left;background:0 0;border:none;border-radius:8px;padding:10px 12px}.searchable-combobox__option:hover,.searchable-combobox__option--active{background:var(--blue-50);color:var(--blue-700)}.searchable-combobox__empty{color:var(--text-700);padding:10px 12px;font-size:.9rem}.node-updates__advanced-filter-add{border:1px solid var(--line-soft);background:var(--surface-card);width:40px;height:40px;color:var(--blue-600);cursor:pointer;border-radius:10px;flex:0 0 40px;font-size:1.1rem;font-weight:700;transition:border-color .16s,background-color .16s,color .16s}.node-updates__advanced-filter-add:hover{border-color:var(--blue-600);background:var(--blue-50)}.node-updates__advanced-filter-mode{border:1px solid var(--line-soft);background:var(--surface-card);min-width:54px;height:40px;color:var(--text-700);cursor:pointer;border-radius:10px;font-size:.84rem;font-weight:700;transition:border-color .16s,background-color .16s,color .16s}.node-updates__advanced-filter-mode:hover{border-color:var(--blue-600);background:var(--blue-50);color:var(--blue-600)}.node-updates__advanced-filter-mode--active{border-color:var(--filter-active-border);background:var(--filter-active-bg);color:var(--blue-700)}.node-updates__advanced-filter-chips{flex-wrap:wrap;gap:10px;display:flex}.node-updates__advanced-filter-chip{border:1px solid var(--filter-chip-border);background:var(--filter-chip-bg);color:var(--blue-700);border-radius:999px;align-items:center;gap:8px;padding:8px 12px;font-size:.9rem;font-weight:600;display:inline-flex}.node-updates__advanced-filter-chip-remove{color:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-size:1rem;line-height:1}.node-updates__advanced-filter-toggle{color:var(--text-700);white-space:nowrap;flex:none;align-items:center;gap:12px;margin-left:auto;font-size:.9rem;font-weight:600;display:inline-flex}.node-updates__advanced-filter-checkbox{appearance:none;border:1px solid var(--line-soft);background:var(--surface-muted);cursor:pointer;border-radius:8px;flex:none;place-items:center;width:32px;height:32px;margin:0;transition:border-color .16s,background-color .16s,box-shadow .16s,transform .16s;display:inline-grid;position:relative;box-shadow:inset 0 0 0 1px #0000}.node-updates__advanced-filter-checkbox:hover{border-color:var(--blue-600)}.node-updates__advanced-filter-checkbox:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--blue-600) 26%, transparent);outline:none}.node-updates__advanced-filter-checkbox:after{content:"";opacity:0;transform-origin:50%;border-bottom:2px solid #fff;border-right:2px solid #fff;width:8px;height:14px;margin:auto;transition:opacity .12s,transform .12s;position:absolute;inset:0;transform:rotate(45deg)scale(.82)}.node-updates__advanced-filter-checkbox:checked{border-color:var(--blue-600);background:var(--blue-600);box-shadow:inset 0 0 0 1px #ffffff14}.node-updates__advanced-filter-checkbox:checked:after{opacity:1;transform:translateY(-1px)rotate(45deg)scale(1)}:root[data-theme=dark] .node-updates__advanced-filter-checkbox{background:var(--surface-muted)}:root[data-theme=dark] .node-updates__advanced-filter-checkbox:checked{background:var(--blue-600)}.node-updates-filter-enter-active,.node-updates-filter-leave-active{transform-origin:top;transition:opacity .18s,transform .18s,max-height .18s,margin .18s}.node-updates-filter-enter-from,.node-updates-filter-leave-to{opacity:0;max-height:0;transform:translateY(-6px)}.node-updates-filter-enter-to,.node-updates-filter-leave-from{opacity:1;max-height:260px;transform:translateY(0)}.node-updates__section{border:1px solid var(--line-soft);background:var(--surface-card);box-shadow:var(--shadow-soft);border-radius:14px;position:relative;overflow:hidden}.node-updates__table{flex-direction:column;display:flex}.node-updates__table--loading{pointer-events:none;filter:saturate(.82)}.node-updates__overlay{z-index:2;background:color-mix(in srgb, var(--surface-card) 74%, transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.node-updates__spinner{border:3px solid color-mix(in srgb, var(--blue-600) 18%, white);border-top-color:var(--blue-600);border-radius:999px;width:40px;height:40px;animation:.85s linear infinite node-updates-spin;box-shadow:0 8px 22px #0a25401f}@keyframes node-updates-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.node-updates__row{border-top:1px solid var(--line-soft);grid-template-columns:minmax(52px,.34fr) minmax(90px,.55fr) minmax(518px,3.01fr);align-items:center;gap:16px;padding:16px 20px;display:grid}.node-updates__row--link{color:inherit;cursor:pointer;text-decoration:none;transition:background-color .16s}.node-updates__row--link:hover{background:var(--blue-50)}.node-updates__row--link:focus-visible{outline:2px solid var(--blue-600);outline-offset:-2px}.node-updates__row--head{background:var(--surface-muted);color:var(--text-500);letter-spacing:.06em;text-transform:uppercase;border-top:none;font-size:.82rem;font-weight:700}.node-updates__id{color:var(--blue-600);word-break:break-all;font-weight:600}.node-updates__time{flex-direction:column;gap:2px;display:flex}.node-updates__time-date{color:var(--text-900);font-weight:600}.node-updates__time-clock{color:var(--text-500);font-size:.9rem}.node-updates__parties{flex-direction:column;align-items:flex-start;gap:4px;min-width:0;display:flex}.node-updates__party{white-space:nowrap;text-overflow:ellipsis;max-width:100%;display:block;overflow:hidden}.node-updates__row--with-node,.node-updates__row.activity-home__updates-row{grid-template-columns:minmax(120px,.8fr) minmax(52px,.34fr) minmax(110px,.55fr) minmax(300px,2fr)}.update-detail,.contract-detail,.party-detail,.contract-detail__content,.update-detail__content{flex-direction:column;gap:18px;display:flex}.update-detail__action-rail{position:absolute;top:2px;right:0}.update-detail__debug-action{border:1px solid var(--line-soft);background:var(--surface-card);min-height:40px;color:var(--text-900);box-shadow:var(--shadow-soft);border-radius:999px;justify-content:center;align-items:center;padding:0 16px;font-size:.9rem;font-weight:600;text-decoration:none;transition:border-color .16s,background-color .16s,color .16s,transform .16s;display:inline-flex}.update-detail__debug-action:hover{border-color:var(--blue-600);background:var(--blue-50);color:var(--blue-700);transform:translateY(-1px)}.update-detail__id,.update-detail__canonical{word-break:break-all}.update-detail__id{color:var(--blue-600);font-weight:600}.update-detail__canonical{color:var(--text-500);font-family:ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,monospace;font-size:.92rem}.update-detail__time{flex-direction:column;gap:2px;display:flex}.update-detail__time-date{color:var(--text-900);font-weight:600}.update-detail__time-clock{color:var(--text-500);font-size:.9rem}.update-detail__parties{flex-direction:column;align-items:flex-start;gap:2px;line-height:1.6;display:flex}.update-detail__party{white-space:nowrap;display:block}.update-detail__meta{color:#dbe7ff;background:#0f172a;border-radius:10px;margin:0;padding:16px;font-size:.88rem;line-height:1.6;overflow-x:auto}.update-detail__section--summary,.update-detail__section--meta,.update-detail__events-section,.contract-detail__section--summary,.contract-detail__section--data{grid-column:1/-1}.update-detail__events{flex-direction:column;gap:14px;display:flex}.update-detail__event{border:1px solid var(--line-soft);background:var(--surface-card);border-radius:12px;flex-direction:column;gap:14px;padding:16px;display:flex}.contract-detail__summary-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.contract-detail__summary-item{min-width:0}.contract-detail__summary-item dt,.contract-detail__summary-subitem dt{font-size:.82rem}.contract-detail__summary-item dd,.contract-detail__summary-subitem dd{font-size:1rem}.contract-detail__summary-item--contract-id,.contract-detail__summary-item--full-row{grid-column:1/-1}.contract-detail__summary-pair{grid-template-columns:repeat(2,max-content);justify-content:start;gap:14px;max-width:100%;display:grid}.contract-detail__summary-subitem{min-width:0}.contract-detail__summary-inline{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.token-transfer-detail__amount{white-space:nowrap}.package-detail,.package-detail__content{flex-direction:column;gap:18px;display:flex}.package-detail__section--summary,.package-detail__section--nodes,.package-detail__section--decoded{grid-column:1/-1}.package-detail__summary-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.package-detail__summary-item{min-width:0}.package-detail__summary-item dt,.package-detail__summary-subitem dt{font-size:.82rem}.package-detail__summary-item dd,.package-detail__summary-subitem dd{font-size:1rem}.package-detail__summary-item--full-row{grid-column:1/-1}.package-detail__summary-pair{grid-template-columns:repeat(2,max-content);justify-content:start;gap:14px;max-width:100%;display:grid}.package-detail__summary-subitem{min-width:0}.package-detail__seen-list,.package-detail__list{flex-direction:column;gap:8px;display:flex}.node-detail__sections.party-detail__sections{grid-template-columns:1fr}.party-detail__summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.party-detail__summary-item{min-width:0}.party-detail__summary-item--full-row{grid-column:1/-1}.party-detail__title{overflow-wrap:anywhere;word-break:break-word}.party-detail__section-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.party-detail__row-main{min-width:0}.party-detail__row-text,.party-detail__row-main .contract-detail__link,.party-detail__summary-item .update-detail__id{overflow-wrap:anywhere;word-break:break-word}.party-topology__list{flex-direction:column;gap:12px;display:flex}.party-topology__card{border:1px solid var(--line-soft);background:var(--surface-card);border-radius:12px;flex-direction:column;gap:14px;padding:14px 16px;display:flex}.party-topology__header{justify-content:space-between;align-items:center;gap:12px;display:flex}.party-topology__node{color:var(--text-900);margin:0;font-weight:700}.party-topology__group{flex-direction:column;gap:10px;display:flex}.party-topology__group h4{color:var(--text-900);margin:0;font-size:.95rem}.party-topology__rows{flex-direction:column;gap:8px;display:flex}.party-topology__row{border:1px solid var(--line-soft);background:color-mix(in srgb, var(--surface-card) 82%, var(--surface-2) 18%);border-radius:10px;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:10px 12px;display:grid}.party-topology__row--participant{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}.party-topology__row--key{grid-template-columns:repeat(3,minmax(0,1fr))}.party-topology__field{min-width:0;color:var(--text-700);overflow-wrap:anywhere;word-break:break-word;flex-direction:column;gap:4px;font-size:.92rem;display:flex}.party-topology__field--participant-uid{overflow-wrap:normal;word-break:normal;overflow:hidden}.party-topology__field--key-identity{grid-column:span 2}.party-topology__field strong{color:var(--text-500);letter-spacing:.06em;text-transform:uppercase;font-size:.78rem;font-weight:700}.party-topology__pill-list{flex-wrap:wrap;gap:6px;display:flex}.party-topology__pill{border:1px solid var(--line-soft);background:color-mix(in srgb, var(--filter-active-bg) 72%, var(--surface-card));min-height:28px;color:var(--blue-700);letter-spacing:.04em;white-space:nowrap;border-radius:999px;align-self:flex-start;align-items:center;padding:0 10px;font-size:.78rem;font-weight:700;display:inline-flex}.party-topology__stacked-value{flex-direction:column;gap:4px;min-width:0;display:flex}.party-topology__uid-link{text-overflow:ellipsis;white-space:nowrap;max-width:100%;display:block;overflow:hidden}.party-topology__state{color:var(--text-500);margin:0}.party-topology__state--error{color:var(--danger-600)}.package-detail__seen-row,.package-detail__list-row{border:1px solid var(--line-soft);background:var(--surface-card);border-radius:10px;justify-content:space-between;gap:16px;padding:10px 12px;display:flex}.package-detail__list-row{color:var(--text-900);font-weight:600}.package-detail__list-row--stacked{display:block}.package-detail__entry-title{color:var(--text-900);margin-bottom:10px;font-weight:700}.package-detail__seen-node{color:var(--text-900);margin:0;font-weight:600}.package-detail__seen-meta{color:var(--text-500);margin:4px 0 0;font-size:.9rem}.package-family__subtitle{color:var(--text-500);margin:8px 0 0}.package-family__row{border:1px solid var(--line-soft);background:var(--surface-card);border-radius:10px;justify-content:space-between;gap:16px;padding:12px 14px;display:flex}.package-tree{flex-direction:column;gap:10px;min-width:0;display:flex}.package-tree--embedded{border-left:1px solid var(--line-soft);padding-left:14px}.package-tree__embedded-head{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.package-tree__embedded-kind{color:var(--text-500);letter-spacing:.08em;text-transform:uppercase;font-size:.78rem;font-weight:700}.package-tree__headline{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.package-tree__kind{background:var(--surface-muted);color:var(--text-500);letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:3px 8px;font-size:.72rem;font-weight:700}.package-tree__label{color:var(--text-900);overflow-wrap:anywhere;word-break:break-word;font-weight:600}.package-tree__note,.package-tree__meta,.package-tree__leaf,.package-tree__group-title{color:var(--text-500);font-size:.84rem}.package-tree__group,.package-tree__children,.package-tree__rows{flex-direction:column;gap:8px;display:flex}.package-tree__children{border-left:1px solid var(--line-soft);padding-left:14px}.package-tree__row{grid-template-columns:minmax(120px,180px) minmax(0,1fr);align-items:start;gap:12px;min-width:0;display:grid}.package-tree__row--stacked{align-items:stretch}.package-tree__row-label{color:var(--text-500);letter-spacing:.04em;text-transform:uppercase;padding-top:4px;font-size:.84rem;font-weight:700}.package-tree__choice{flex-direction:column;gap:8px;min-width:0;display:flex}.package-schema{border-left:1px solid var(--line-soft);flex-direction:column;gap:10px;min-width:0;padding-left:14px;display:flex}.package-schema__kind,.package-schema__group-title{color:var(--text-900);letter-spacing:.08em;text-transform:uppercase;font-size:.82rem;font-weight:800}.package-schema__label,.package-schema__choice-mode{color:var(--text-500);letter-spacing:.06em;text-transform:uppercase;font-size:.8rem;font-weight:700}.package-schema__label{overflow-wrap:anywhere;word-break:break-word;min-width:0}.package-schema__groups,.package-schema__group,.package-schema__rows{flex-direction:column;gap:8px;min-width:0;display:flex}.package-schema__row{grid-template-columns:minmax(120px,180px) minmax(0,1fr);align-items:start;gap:12px;min-width:0;display:grid}.package-schema__row--choice .package-schema__value{flex-direction:column;gap:4px;display:flex}.package-schema__group-value,.package-schema__value,.package-schema__empty{color:var(--text-900);overflow-wrap:anywhere;word-break:break-word;font-weight:600}.package-family__primary{min-width:0;font-weight:600}.package-family__meta{color:var(--text-500);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:18px;display:flex}.package-family__version,.package-family__size{color:var(--text-900)}@media (width<=720px){.contract-detail__summary-pair,.package-detail__summary-pair{grid-template-columns:minmax(0,1fr)}.package-detail__seen-row,.package-detail__list-row,.package-family__row,.package-family__meta{flex-direction:column;align-items:flex-start}}.contract-detail__summary-time-inline{color:var(--text-500);align-items:baseline;gap:8px;font-size:.9rem;display:inline-flex}.contract-detail__summary-time-date{color:var(--text-900);font-weight:600}.contract-detail__summary-time-clock{color:var(--text-500)}.update-detail__event-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.update-detail__event-item{min-width:0}.update-detail__event-item--template{grid-column:span 2}.update-detail__event-item--choice,.update-detail__event-item--contract{grid-column:1/-1}.update-detail__event-item:has(.update-detail__witnesses){grid-column:1/-1}.update-detail__event-item--exercise-data{grid-column:1/-1}.update-detail__witnesses{flex-direction:column;gap:2px;min-width:0;display:flex}.update-detail__exercise-data{flex-direction:column;gap:8px;display:flex}.update-detail__exercise-data-row{border:1px solid var(--line-soft);background:var(--surface-muted);border-radius:10px;justify-content:space-between;gap:16px;padding:10px 12px;display:flex}.update-detail__exercise-data-key{color:var(--text-500);text-transform:uppercase;letter-spacing:.06em;font-size:.85rem}.update-detail__exercise-data-value{color:var(--text-900);text-align:right;word-break:break-word;font-weight:600}.contract-detail__data{flex-direction:column;gap:8px;display:flex}.contract-detail__data-row{border:1px solid var(--line-soft);background:var(--surface-muted);border-radius:10px;justify-content:space-between;gap:16px;padding:10px 12px;display:flex}.contract-detail__data-key{color:var(--text-500);text-transform:uppercase;letter-spacing:.06em;margin:0;font-size:.85rem}.contract-detail__data-value{color:var(--text-900);text-align:right;word-break:break-word;margin:0;font-weight:600}.contract-detail__link{color:var(--blue-600);font-weight:600;text-decoration:none}.contract-detail__link:hover{text-decoration:underline}.update-detail__witness{white-space:nowrap;word-break:normal;overflow-wrap:normal;display:block}.update-detail__empty{color:var(--text-500);margin:0;line-height:1.6}.dashboard__hero{background:0 0;border:none;border-radius:0;justify-content:space-between;align-items:center;gap:20px;padding:0;display:flex}.dashboard__hero-copy{max-width:36rem}.dashboard__controls{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.dashboard__lede{color:var(--text-500);margin:6px 0 0;font-size:.95rem;line-height:1.55}.dashboard__search{border:1px solid var(--line-soft);background:var(--surface-card);width:min(420px,100%);min-width:260px;color:var(--text-900);box-sizing:border-box;border-radius:10px;padding:10px 14px;font-size:.95rem}.dashboard__search::placeholder{color:var(--text-500)}.dashboard__refresh{border:1px solid var(--line-soft);background:var(--surface-card);color:var(--text-700);cursor:pointer;border-radius:10px;padding:10px 14px;font-size:.95rem;font-weight:500;transition:border-color .16s,color .16s,background-color .16s}.dashboard__refresh:hover{border-color:var(--blue-600);color:var(--blue-600);background:var(--blue-50)}.dashboard__message{border:1px solid var(--line-soft);background:var(--surface-card);border-radius:12px;margin:0;padding:14px 16px}.dashboard__message--error{border-color:var(--error-border);color:var(--red-600)}.dashboard__grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;display:grid}.parties-page{flex-direction:column;gap:16px;display:flex}.parties-page__hero{margin-bottom:4px}.parties-page__section{flex-direction:column;gap:16px;display:flex}.parties-page__mode-switch,.parties-page__node-list{flex-wrap:wrap;gap:10px;display:flex}.parties-page__mode-button,.parties-page__node-button{border:1px solid var(--line-soft);background:var(--surface-card);min-height:42px;color:var(--text-700);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:10px;padding:10px 14px;font-size:.95rem;font-weight:600;transition:border-color .16s,color .16s,background-color .16s,box-shadow .16s;display:inline-flex}.parties-page__mode-button:hover,.parties-page__node-button:hover{border-color:var(--blue-600);color:var(--blue-600);background:var(--blue-50)}.parties-page__mode-button--active,.parties-page__node-button--active{border-color:var(--filter-active-border);background:var(--filter-active-bg);color:var(--blue-700);box-shadow:inset 0 0 0 1px #1f6feb14}.parties-page__node-button{white-space:nowrap;flex:none;width:auto;min-width:0}.parties-page__node-button:disabled,.parties-page__node-button--disabled{border-color:var(--line-soft);background:var(--surface-muted);color:var(--text-500);cursor:not-allowed;box-shadow:none}.parties-page__node-button:disabled:hover,.parties-page__node-button--disabled:hover{border-color:var(--line-soft);background:var(--surface-muted);color:var(--text-500)}.parties-page__node-label{font-weight:600}.parties-page__node-meta,.parties-page__results-copy{margin:0}.parties-page__node-meta{color:var(--text-500);font-size:.82rem;font-weight:500}.parties-page__results-header h3{margin-bottom:4px}.parties-page__party-link{justify-content:flex-start;text-decoration:none}.parties-page__results{padding-top:60px;position:relative}.parties-page__results--inline-actions{padding-top:24px}.results-section__source-pill{z-index:1;position:absolute;top:20px;right:20px}.contracts-page__results-header,.parties-page__results-header{justify-content:space-between;align-items:center;gap:16px;display:flex}.parties-page__namespace-filter{margin-top:4px}.parties-page__namespace-filter-grid{gap:16px;display:grid}.parties-page__namespace-filter-field{flex-direction:column;gap:8px;display:flex}.parties-page__namespace-filter-field--full{grid-column:1/-1}.parties-page__namespace-filter-field textarea,.parties-page__namespace-filter-field select{border:1px solid var(--line-soft);background:var(--surface-card);width:100%;color:var(--text-900);border-radius:10px;padding:10px 12px;font-size:.95rem;font-weight:500}.parties-page__namespace-filter-field textarea{resize:vertical;min-height:96px}.parties-page__namespace-filter-actions{align-items:center;gap:12px;margin-top:16px;display:flex}.results-header__actions{align-items:center;gap:12px;display:inline-flex}.tokens-page,.tokens-page__section{flex-direction:column;gap:16px;display:flex}.tokens-page__known-list{flex-direction:column;gap:12px;display:flex}.tokens-page__known-card{border:1px solid var(--line-soft);background:var(--surface-card);color:inherit;border-radius:12px;justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;text-decoration:none;display:flex}.tokens-page__known-card:hover{border-color:var(--line-strong);background:color-mix(in srgb, var(--surface-card) 84%, var(--surface-muted) 16%)}.tokens-page__known-main{flex-direction:column;gap:6px;min-width:0;display:flex}.tokens-page__known-main h4{color:var(--text-900);margin:0;font-size:1rem}.tokens-page__row{border-top:1px solid var(--line-soft);grid-template-columns:minmax(130px,1fr) minmax(90px,.6fr) minmax(126px,.84fr) minmax(100px,.78fr) minmax(100px,.78fr) minmax(140px,.9fr);align-items:center;gap:16px;padding:16px 20px;display:grid}.tokens-page__row--head{background:var(--surface-muted);color:var(--text-500);letter-spacing:.06em;text-transform:uppercase;border-top:none;font-size:.82rem;font-weight:700}.tokens-page__cell{min-width:0;color:var(--text-700);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tokens-page__token{white-space:normal;flex-direction:column;gap:4px;display:flex}.tokens-page__token-link{flex-direction:column;gap:4px;min-width:0;display:flex}.tokens-page__nodes{white-space:normal;flex-direction:column;gap:4px;display:flex}.tokens-page__nodes-item{display:block}.tokens-page__token strong{color:var(--text-900);font-size:.95rem}.tokens-page__token span{color:var(--text-500);font-size:.82rem}.tokens-page__movement-pill{border:1px solid var(--filter-chip-border);background:var(--filter-chip-bg);max-width:100%;color:var(--text-700);letter-spacing:.03em;white-space:nowrap;border-radius:999px;align-self:flex-start;padding:4px 10px;font-size:.72rem;font-weight:700;display:inline-flex}.tokens-page__time{white-space:normal;flex-direction:column;gap:2px;display:flex}.token-detail__sections{grid-template-columns:1fr}.token-detail__section{grid-column:1/-1}.token-detail__holders-table,.token-detail__transfers-table{border:1px solid var(--line-soft);background:var(--surface-card);border-radius:14px;flex-direction:column;display:flex;overflow:hidden}.token-detail__holders-row{border-top:1px solid var(--line-soft);grid-template-columns:minmax(220px,1.4fr) minmax(120px,.8fr) minmax(180px,1fr);align-items:center;gap:16px;padding:16px 20px;display:grid}.token-detail__transfers-row{border-top:1px solid var(--line-soft);grid-template-columns:minmax(130px,1fr) minmax(126px,.84fr) minmax(100px,.78fr) minmax(100px,.78fr) minmax(140px,.9fr);align-items:center;gap:16px;padding:16px 20px;display:grid;position:relative}.token-detail__holders-row:first-child,.token-detail__transfers-row:first-child{border-top:none}.token-detail__holders-row--head,.token-detail__transfers-row--head{background:var(--surface-muted);color:var(--text-500);letter-spacing:.06em;text-transform:uppercase;font-size:.82rem;font-weight:700}.token-detail__cell{min-width:0;color:var(--text-700)}.token-detail__party,.token-detail__nodes{flex-direction:column;gap:4px;display:flex}.token-detail__party-link{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.token-detail__party .contract-detail__link,.token-detail__nodes,.token-detail__cell.tokens-page__time{z-index:1;position:relative}.token-detail__amount{white-space:nowrap}.token-detail__row-link{z-index:0;position:absolute;inset:0}@media (width<=720px){.parties-page__results{padding-top:72px}.results-section__source-pill{top:16px;right:16px}}.query-source-pill{border:1px solid var(--line-soft);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;min-height:34px;padding:0 12px;font-size:.8rem;font-weight:800;display:inline-flex}.query-source-pill--pqs{border-color:var(--filter-active-border);background:var(--filter-active-bg);color:var(--blue-700)}.query-source-pill--grpc.query-source-pill--fallback{border-color:color-mix(in srgb, var(--amber-600) 58%, var(--line-soft));background:color-mix(in srgb, var(--amber-600) 16%, var(--surface-card));color:var(--amber-600)}.contracts-table__row{grid-template-columns:minmax(220px,1.7fr) minmax(200px,1.1fr) minmax(170px,.9fr);align-items:center}.contracts-table__row--with-node{grid-template-columns:minmax(140px,.9fr) minmax(220px,1.55fr) minmax(180px,1fr) minmax(170px,.85fr)}.contracts-table__contract-id{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.contracts-table__cell{min-width:0;color:var(--text-700)}.contracts-table__template{flex-direction:column;gap:2px;display:flex}.contracts-table__template-namespace,.contracts-table__template-name{display:block}.contracts-table__template-namespace{color:var(--text-700)}.contracts-table__template-name{color:var(--text-900);font-weight:600}.node-card{border:1px solid var(--line-soft);background:var(--surface-card);color:inherit;box-shadow:var(--shadow-soft);border-radius:14px;flex-direction:column;gap:18px;min-height:148px;padding:20px;text-decoration:none;transition:border-color .16s,box-shadow .16s;display:flex}.node-card:hover{border-color:var(--blue-600);box-shadow:0 14px 28px #1f6feb14}.node-card__topline{justify-content:space-between;align-items:center;gap:12px;display:flex}.node-card__eyebrow{color:var(--text-500);text-transform:uppercase;letter-spacing:.12em;margin:0;font-size:.72rem}.node-card__state-dot{width:10px;height:10px;box-shadow:none;border-radius:999px}.node-card__state-dot[data-status=healthy]{background:var(--green-600)}.node-card__state-dot[data-status=degraded]{background:var(--amber-600)}.node-card__state-dot[data-status=down]{background:var(--red-600)}.node-card__body{flex-direction:column;gap:8px;display:flex}.node-card__status{color:var(--text-500);margin:0;font-size:.95rem;font-weight:600}.node-card__status[data-status=healthy]{color:var(--green-600)}.node-card__status[data-status=degraded]{color:var(--amber-600)}.node-card__status[data-status=down]{color:var(--red-600)}.node-page{position:relative}.node-page__rail{position:absolute;top:4px;left:0;transform:translate(-120%)}.node-page__main{width:100%;min-width:0;margin:0}.node-detail__content{flex-direction:column;gap:18px;max-width:100%;display:flex}.node-detail__back{border:1px solid var(--back-button-border);background:var(--back-button-bg);width:40px;height:40px;color:var(--blue-600);box-shadow:var(--back-button-shadow);border-radius:999px;justify-content:center;align-items:center;font-size:1.1rem;font-weight:700;line-height:1;text-decoration:none;transition:border-color .16s,background-color .16s,transform .16s;display:inline-flex}.node-detail__back:hover{border-color:var(--blue-600);background:var(--blue-50);transform:translate(-1px)}.node-detail__hero{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.node-detail__sections{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;min-width:0;display:grid}.node-detail__section{border:1px solid var(--line-soft);background:var(--surface-muted);border-radius:12px;min-width:0;padding:20px}.node-detail__section h3{margin-bottom:16px}.node-detail__section--half{grid-column:span 1}.node-detail__message{border:1px solid var(--line-soft);background:var(--surface-card);border-radius:12px;margin:0;padding:14px 16px}.node-detail__message--error{border-color:var(--error-border);color:var(--red-600)}.node-detail__section--packages,.node-detail__section--participant-status{grid-column:1/-1}.node-participant-status{flex-direction:column;gap:16px;min-width:0;display:flex}.node-participant-status__block{flex-direction:column;gap:10px;min-width:0;display:flex}.node-participant-status__mini-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.node-synchronizers{flex-direction:column;gap:10px;display:flex}.node-synchronizers__row{border:1px solid var(--line-soft);background:var(--surface-card);border-radius:10px;padding:14px 16px}.node-synchronizers__grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.node-synchronizers__grid>div{min-width:0}.node-packages{flex-direction:column;gap:16px;display:flex}.node-packages__group{flex-direction:column;gap:10px;min-width:0;display:flex}.node-packages__title{color:var(--text-900);margin:0;font-size:1rem}.node-packages__list{flex-direction:column;gap:8px;min-width:0;display:flex}.node-packages__row{border:1px solid var(--line-soft);background:var(--surface-card);border-radius:10px;justify-content:space-between;gap:16px;min-width:0;padding:10px 12px;display:flex}.node-packages__primary{flex-wrap:wrap;align-items:center;gap:12px;min-width:0;display:flex}.node-packages__version{min-width:72px;color:var(--text-900);align-items:center;font-weight:700;display:inline-flex}.node-packages__timestamp{color:var(--text-500)}.detail-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:14px;min-width:0;display:grid}.detail-grid>div{min-width:0}.detail-grid dt{color:var(--text-500);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px;font-size:.82rem}.detail-grid dd{color:var(--text-900);overflow-wrap:anywhere;word-break:break-word;margin:0;line-height:1.5}.update-detail__summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.update-detail__summary-item{min-width:0}.update-detail__summary-item--parties{grid-column:1/-1}.status-pill{text-transform:capitalize;border:1px solid #0000;border-radius:999px;padding:6px 10px;font-size:.85rem;font-weight:600}.status-pill[data-status=healthy]{background:var(--status-healthy-bg);color:var(--green-600);border-color:var(--status-healthy-border)}.status-pill[data-status=degraded]{background:var(--status-degraded-bg);color:var(--amber-600);border-color:var(--status-degraded-border)}.status-pill[data-status=down]{background:var(--status-down-bg);color:var(--red-600);border-color:var(--status-down-border)}@media (width<=720px){.app-titlebar{flex-direction:column;align-items:flex-start;padding:14px 0}.app-header__inner,.app-frame{padding-left:18px;padding-right:18px}.app-toolbar{flex-direction:column;align-items:stretch;width:100%}.app-nav{justify-content:flex-start}.app-search{width:100%;min-width:0}.activity-home__hero,.dashboard__hero{flex-direction:column;align-items:stretch}.update-detail__action-rail{justify-content:flex-end;margin-bottom:12px;display:flex;position:static}.activity-home__controls,.dashboard__controls{justify-content:flex-start}.dashboard__search{width:100%;min-width:0}.activity-home__grid{grid-template-columns:1fr}.activity-panel__footer{flex-direction:column}.node-updates__row{grid-template-columns:1fr;gap:8px}.node-page{flex-direction:column;gap:14px;display:flex}.node-detail__sections{grid-template-columns:1fr}.node-page__rail{justify-content:flex-start;display:flex;position:static;transform:none}.node-page__main{width:100%;margin:0}.node-detail__hero{flex-direction:column}.node-packages__row{flex-direction:column;align-items:flex-start}}