durable-actors-observer 0.4.4 → 0.4.5
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 +8 -0
- package/dist/FilterCombobox.d.ts +6 -2
- package/dist/RequestObserver.d.ts +5 -1
- package/dist/StateInspector.d.ts +13 -0
- package/dist/assets/state-diff.worker-ieZNeZXJ.js +18 -0
- package/dist/client.d.ts +14 -0
- package/dist/components/ui/button.d.ts +1 -1
- package/dist/components/ui/native-select.d.ts +7 -0
- package/dist/components/ui/table.d.ts +3 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1691 -1149
- package/dist/standalone/app.css +1 -1
- package/dist/standalone/app.js +37 -20
- package/dist/standalone/assets/state-diff.worker-ieZNeZXJ.js +18 -0
- package/dist/state-data.d.ts +30 -0
- package/dist/state-diff.d.ts +1 -0
- package/dist/state-diff.worker.d.ts +1 -0
- package/dist/state-inspection.d.ts +11 -0
- package/dist/styles.css +1 -1
- package/package.json +3 -1
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
(function(){function e(e){let t=/^\/(.*)\/([gimyu]*)$/.exec(e.toString());if(!t)throw Error(`Invalid RegExp`);return new RegExp(t[1]??``,t[2])}function t(n){if(typeof n!=`object`)return n;if(n===null)return null;if(Array.isArray(n))return n.map(t);if(n instanceof Date)return new Date(n.getTime());if(n instanceof RegExp)return e(n);let r={};for(let e in n)Object.prototype.hasOwnProperty.call(n,e)&&(r[e]=t(n[e]));return r}function n(e,t){if(e.length===0)throw Error(t||`Expected a non-empty array`)}function r(e,t){if(e.length<2)throw Error(t||`Expected an array with at least 2 items`)}let i=e=>e[e.length-1];var a=class{setResult(e){return this.result=e,this.hasResult=!0,this}exit(){return this.exiting=!0,this}push(e,t){return e.parent=this,t!==void 0&&(e.childName=t),e.root=this.root||this,e.options=e.options||this.options,this.children?(n(this.children),i(this.children).next=e,this.children.push(e)):(this.children=[e],this.nextAfterChildren=this.next||null,this.next=e),e.next=this,this}},o=class extends a{constructor(e,t){super(),this.left=e,this.right=t,this.pipe=`diff`}prepareDeltaResult(e){if(typeof e==`object`&&(this.options?.omitRemovedValues&&Array.isArray(e)&&e.length>1&&(e.length===2||e[2]===0||e[2]===3)&&(e[0]=0),this.options?.cloneDiffValues)){let n=typeof this.options?.cloneDiffValues==`function`?this.options?.cloneDiffValues:t;typeof e[0]==`object`&&(e[0]=n(e[0])),typeof e[1]==`object`&&(e[1]=n(e[1]))}return e}setResult(e){return this.prepareDeltaResult(e),super.setResult(e)}},s=class extends a{constructor(e,t){super(),this.left=e,this.delta=t,this.pipe=`patch`}},c=class extends a{constructor(e){super(),this.delta=e,this.pipe=`reverse`}},l=class{constructor(e){this.name=e,this.filters=[]}process(e){if(!this.processor)throw Error(`add this pipe to a processor before using it`);let t=this.debug,n=this.filters.length,r=e;for(let e=0;e<n;e++){let n=this.filters[e];if(n&&(t&&this.log(`filter: ${n.filterName}`),n(r),typeof r==`object`&&r.exiting)){r.exiting=!1;break}}!r.next&&this.resultCheck&&this.resultCheck(r)}log(e){console.log(`[jsondiffpatch] ${this.name} pipe, ${e}`)}append(...e){return this.filters.push(...e),this}prepend(...e){return this.filters.unshift(...e),this}indexOf(e){if(!e)throw Error(`a filter name is required`);for(let t=0;t<this.filters.length;t++)if(this.filters[t]?.filterName===e)return t;throw Error(`filter not found: ${e}`)}list(){return this.filters.map(e=>e.filterName)}after(e,...t){let n=this.indexOf(e);return this.filters.splice(n+1,0,...t),this}before(e,...t){let n=this.indexOf(e);return this.filters.splice(n,0,...t),this}replace(e,...t){let n=this.indexOf(e);return this.filters.splice(n,1,...t),this}remove(e){let t=this.indexOf(e);return this.filters.splice(t,1),this}clear(){return this.filters.length=0,this}shouldHaveResult(e){return e===!1?(this.resultCheck=null,this):(this.resultCheck||=e=>{if(!e.hasResult){console.log(e);let t=Error(`${this.name} failed`);throw t.noResult=!0,t}},this)}},u=class{constructor(e){this.selfOptions=e||{},this.pipes={}}options(e){return e&&(this.selfOptions=e),this.selfOptions}pipe(e,t){let n=t;if(typeof e==`string`){if(n===void 0)return this.pipes[e];this.pipes[e]=n}if(e&&e.name){if(n=e,n.processor===this)return n;this.pipes[n.name]=n}if(!n)throw Error(`pipe is not defined: ${e}`);return n.processor=this,n}process(e,t){let n=e;n.options=this.options();let r=t||e.pipe||`default`,i;for(;r;)n.nextAfterChildren!==void 0&&(n.next=n.nextAfterChildren,n.nextAfterChildren=null),typeof r==`string`&&(r=this.pipe(r)),r.process(n),i=r,r=null,n&&n.next&&(n=n.next,r=n.pipe||i);return n.hasResult?n.result:void 0}};let d=(e,t,n,r)=>e[n]===t[r],f=(e,t,n,r)=>{let i=e.length,a=t.length,o,s,c=Array(i+1);for(o=0;o<i+1;o++){let e=Array(a+1);for(s=0;s<a+1;s++)e[s]=0;c[o]=e}for(c.match=n,o=1;o<i+1;o++){let i=c[o];if(i===void 0)throw Error(`LCS matrix row is undefined`);let l=c[o-1];if(l===void 0)throw Error(`LCS matrix row is undefined`);for(s=1;s<a+1;s++)n(e,t,o-1,s-1,r)?i[s]=(l[s-1]??0)+1:i[s]=Math.max(l[s]??0,i[s-1]??0)}return c},p=(e,t,n,r)=>{let i=t.length,a=n.length,o={sequence:[],indices1:[],indices2:[]};for(;i!==0&&a!==0;){if(e.match===void 0)throw Error(`LCS matrix match function is undefined`);if(e.match(t,n,i-1,a-1,r))o.sequence.unshift(t[i-1]),o.indices1.unshift(i-1),o.indices2.unshift(a-1),--i,--a;else{let t=e[i];if(t===void 0)throw Error(`LCS matrix row is undefined`);let n=t[a-1];if(n===void 0)throw Error(`LCS matrix value is undefined`);let r=e[i-1];if(r===void 0)throw Error(`LCS matrix row is undefined`);let o=r[a];if(o===void 0)throw Error(`LCS matrix value is undefined`);n>o?--a:--i}}return o};var m={get:(e,t,n,r)=>{let i=r||{},a=f(e,t,n||d,i);return p(a,e,t,i)}};function h(e,t,n,r){for(let i=0;i<n;i++){let n=e[i];for(let e=0;e<r;e++){let r=t[e];if(i!==e&&n===r)return!0}}return!1}function g(e,t,n,r,i){let a=e[n],o=t[r];if(a===o)return!0;if(typeof a!=`object`||typeof o!=`object`)return!1;let s=i.objectHash;if(!s)return i.matchByPosition&&n===r;i.hashCache1=i.hashCache1||[];let c=i.hashCache1[n];if(c===void 0&&(i.hashCache1[n]=c=s(a,n)),c===void 0)return!1;i.hashCache2=i.hashCache2||[];let l=i.hashCache2[r];return l===void 0&&(i.hashCache2[r]=l=s(o,r)),l!==void 0&&c===l}let _=function(e){if(!e.leftIsArray)return;let t={objectHash:e.options?.objectHash,matchByPosition:e.options?.matchByPosition},n=0,r=0,i,a,s,c=e.left,l=e.right,u=c.length,d=l.length,f;for(u>0&&d>0&&!t.objectHash&&typeof t.matchByPosition!=`boolean`&&(t.matchByPosition=!h(c,l,u,d));n<u&&n<d&&g(c,l,n,n,t);)i=n,f=new o(c[i],l[i]),e.push(f,i),n++;for(;r+n<u&&r+n<d&&g(c,l,u-1-r,d-1-r,t);)a=u-1-r,s=d-1-r,f=new o(c[a],l[s]),e.push(f,s),r++;let p;if(n+r===u){if(u===d){e.setResult(void 0).exit();return}for(p||={_t:`a`},i=n;i<d-r;i++)p[i]=[l[i]],e.prepareDeltaResult(p[i]);e.setResult(p).exit();return}if(n+r===d){for(p||={_t:`a`},i=n;i<u-r;i++){let t=`_${i}`;p[t]=[c[i],0,0],e.prepareDeltaResult(p[t])}e.setResult(p).exit();return}t.hashCache1=void 0,t.hashCache2=void 0;let _=c.slice(n,u-r),v=l.slice(n,d-r),y=m.get(_,v,g,t),b=[];for(p||={_t:`a`},i=n;i<u-r;i++)if(y.indices1.indexOf(i-n)<0){let t=`_${i}`;p[t]=[c[i],0,0],e.prepareDeltaResult(p[t]),b.push(i)}let x=!0;e.options?.arrays&&e.options.arrays.detectMove===!1&&(x=!1);let S=!1;e.options?.arrays?.includeValueOnMove&&(S=!0);let C=b.length;for(i=n;i<d-r;i++){let r=y.indices2.indexOf(i-n);if(r<0){let r=!1;if(x&&C>0)for(let u=0;u<C;u++){a=b[u];let d=a===void 0?void 0:p[`_${a}`];if(a!==void 0&&d&&g(_,v,a-n,i-n,t)){d.splice(1,2,i,3),d.splice(1,2,i,3),S||(d[0]=``),s=i,f=new o(c[a],l[s]),e.push(f,s),b.splice(u,1),r=!0;break}}r||(p[i]=[l[i]],e.prepareDeltaResult(p[i]))}else{if(y.indices1[r]===void 0)throw Error(`Invalid indexOnArray2: ${r}, seq.indices1: ${y.indices1}`);if(a=y.indices1[r]+n,y.indices2[r]===void 0)throw Error(`Invalid indexOnArray2: ${r}, seq.indices2: ${y.indices2}`);s=y.indices2[r]+n,f=new o(c[a],l[s]),e.push(f,s)}}e.setResult(p).exit()};_.filterName=`arrays`;let v={numerically(e,t){return e-t},numericallyBy(e){return(t,n)=>t[e]-n[e]}},y=function(e){if(!e.nested)return;let t=e.delta;if(t._t!==`a`)return;let n,r,i=t,a=e.left,o=[],c=[],l=[];for(n in i)if(n!==`_t`){if(n[0]===`_`){let e=n;if(i[e]!==void 0&&(i[e][2]===0||i[e][2]===3))o.push(Number.parseInt(n.slice(1),10));else throw Error(`only removal or move can be applied at original array indices, invalid diff type: ${i[e]?.[2]}`)}else{let e=n;i[e].length===1?c.push({index:Number.parseInt(e,10),value:i[e][0]}):l.push({index:Number.parseInt(e,10),delta:i[e]})}}for(o=o.sort(v.numerically),n=o.length-1;n>=0;n--){if(r=o[n],r===void 0)continue;let e=i[`_${r}`],t=a.splice(r,1)[0];e?.[2]===3&&c.push({index:e[1],value:t})}c=c.sort(v.numericallyBy(`index`));let u=c.length;for(n=0;n<u;n++){let e=c[n];e!==void 0&&a.splice(e.index,0,e.value)}let d=l.length;if(d>0)for(n=0;n<d;n++){let t=l[n];if(t===void 0)continue;let r=new s(a[t.index],t.delta);e.push(r,t.index)}if(!e.children){e.setResult(a).exit();return}e.exit()};y.filterName=`arrays`;let b=function(e){if(!e||!e.children||e.delta._t!==`a`)return;let t=e.left,n=e.children.length;for(let r=0;r<n;r++){let n=e.children[r];if(n===void 0)continue;let i=n.childName;t[i]=n.result}e.setResult(t).exit()};b.filterName=`arraysCollectChildren`;let x=function(e){if(!e.nested){let t=e.delta;if(t[2]===3){let n=t;e.newName=`_${n[1]}`,e.setResult([n[0],Number.parseInt(e.childName.substring(1),10),3]).exit()}return}let t=e.delta;if(t._t!==`a`)return;let n=t;for(let t in n){if(t===`_t`)continue;let r=new c(n[t]);e.push(r,t)}e.exit()};x.filterName=`arrays`;let S=(e,t,n)=>{if(typeof t==`string`&&t[0]===`_`)return Number.parseInt(t.substring(1),10);if(Array.isArray(n)&&n[2]===0)return`_${t}`;let r=+t;for(let n in e){let i=e[n];if(Array.isArray(i)){if(i[2]===3){let e=Number.parseInt(n.substring(1),10),a=i[1];if(a===+t)return e;e<=r&&a>r?r++:e>=r&&a<r&&r--}else i[2]===0?Number.parseInt(n.substring(1),10)<=r&&r++:i.length===1&&Number.parseInt(n,10)<=r&&r--}}return r},C=e=>{if(!e||!e.children)return;let t=e.delta;if(t._t!==`a`)return;let n=t,r=e.children.length,i={_t:`a`};for(let t=0;t<r;t++){let r=e.children[t];if(r===void 0)continue;let a=r.newName;if(a===void 0){if(r.childName===void 0)throw Error(`child.childName is undefined`);a=S(n,r.childName,r.result)}i[a]!==r.result&&(i[a]=r.result)}e.setResult(i).exit()};C.filterName=`arraysCollectChildren`;let w=function(e){e.left instanceof Date?(e.right instanceof Date&&e.left.getTime()===e.right.getTime()?e.setResult(void 0):e.setResult([e.left,e.right]),e.exit()):e.right instanceof Date&&e.setResult([e.left,e.right]).exit()};w.filterName=`dates`;let T=new Set([`__proto__`]),E=e=>{if(!e||!e.children)return;let t=e.children.length,n=e.result;for(let r=0;r<t;r++){let t=e.children[r];if(t!==void 0&&t.result!==void 0){if(n||={},t.childName===void 0)throw Error(`diff child.childName is undefined`);n[t.childName]=t.result}}n&&e.leftIsArray&&(n._t=`a`),e.setResult(n).exit()};E.filterName=`collectChildren`;let D=e=>{if(e.leftIsArray||e.leftType!==`object`)return;let t=e.left,n=e.right,r=e.options?.propertyFilter;for(let i in t){if(!Object.prototype.hasOwnProperty.call(t,i)||r&&!r(i,e))continue;let a=new o(t[i],n[i]);e.push(a,i)}for(let i in n)if(Object.prototype.hasOwnProperty.call(n,i)&&(!r||r(i,e))&&t[i]===void 0){let t=new o(void 0,n[i]);e.push(t,i)}if(!e.children||e.children.length===0){e.setResult(void 0).exit();return}e.exit()};D.filterName=`objects`;let O=function(e){if(!e.nested)return;let t=e.delta;if(t._t)return;let n=t,r=!1;for(let t in n){if(T.has(t)||!Object.prototype.hasOwnProperty.call(n,t))continue;let i=e.left,a=new s(typeof i==`object`&&i&&Object.prototype.hasOwnProperty.call(i,t)?i[t]:void 0,n[t]);e.push(a,t),r=!0}if(!r){e.setResult(e.left).exit();return}e.exit()};O.filterName=`objects`;let k=function(e){if(!e||!e.children||e.delta._t)return;if(e.left===null||typeof e.left!=`object`){e.setResult(e.left).exit();return}let t=e.left,n=e.children.length;for(let r=0;r<n;r++){let n=e.children[r];if(n===void 0)continue;let i=n.childName;T.has(i)||(Object.prototype.hasOwnProperty.call(e.left,i)&&n.result===void 0?delete t[i]:t[i]!==n.result&&(t[i]=n.result))}e.setResult(t).exit()};k.filterName=`collectChildren`;let A=function(e){if(!e.nested||e.delta._t)return;let t=e.delta,n=!1;for(let r in t){if(T.has(r)||!Object.prototype.hasOwnProperty.call(t,r))continue;let i=new c(t[r]);e.push(i,r),n=!0}if(!n){e.setResult({}).exit();return}e.exit()};A.filterName=`objects`;let j=e=>{if(!e||!e.children||e.delta._t)return;let t=e.children.length,n={};for(let r=0;r<t;r++){let t=e.children[r];if(t===void 0)continue;let i=t.childName;T.has(i)||n[i]!==t.result&&(n[i]=t.result)}e.setResult(n).exit()};j.filterName=`collectChildren`;let M=null;function N(e,t){if(!M){let n;if(e?.textDiff?.diffMatchPatch)n=new e.textDiff.diffMatchPatch;else{if(!t)return null;let e=Error("The diff-match-patch library was not provided. Pass the library in through the options or use the `jsondiffpatch/with-text-diffs` entry-point.");throw e.diff_match_patch_not_found=!0,e}M={diff:(e,t)=>n.patch_toText(n.patch_make(e,t)),patch:(e,t)=>{let r=n.patch_apply(n.patch_fromText(t),e);for(let e of r[1])if(!e){let e=Error(`text patch failed`);throw e.textPatchFailed=!0,e}return r[0]}}}return M}let P=function(e){if(e.leftType!==`string`)return;let t=e.left,n=e.right,r=e.options?.textDiff?.minLength||60;if(t.length<r||n.length<r){e.setResult([t,n]).exit();return}let i=N(e.options);if(!i){e.setResult([t,n]).exit();return}let a=i.diff;e.setResult([a(t,n),0,2]).exit()};P.filterName=`texts`;let F=function(e){if(e.nested)return;let t=e.delta;if(t[2]!==2)return;let n=t,r=N(e.options,!0).patch;e.setResult(r(e.left,n[0])).exit()};F.filterName=`texts`;let I=e=>{let t=/^@@ +-(\d+),(\d+) +\+(\d+),(\d+) +@@$/,n=e.split(`
|
|
2
|
+
`);for(let e=0;e<n.length;e++){let r=n[e];if(r===void 0)continue;let i=r.slice(0,1);if(i===`@`){let i=t.exec(r);if(i!==null){let t=e;n[t]=`@@ -${i[3]},${i[4]} +${i[1]},${i[2]} @@`}}else if(i===`+`){if(n[e]=`-${n[e]?.slice(1)}`,n[e-1]?.slice(0,1)===`+`){let t=n[e];n[e]=n[e-1],n[e-1]=t}}else i===`-`&&(n[e]=`+${n[e]?.slice(1)}`)}return n.join(`
|
|
3
|
+
`)},L=function(e){if(e.nested)return;let t=e.delta;if(t[2]!==2)return;let n=t;e.setResult([I(n[0]),0,2]).exit()};L.filterName=`texts`;let R=function(e){if(e.left===e.right){e.setResult(void 0).exit();return}if(e.left===void 0){if(typeof e.right==`function`)throw Error(`functions are not supported`);e.setResult([e.right]).exit();return}if(e.right===void 0){e.setResult([e.left,0,0]).exit();return}if(typeof e.left==`function`||typeof e.right==`function`)throw Error(`functions are not supported`);if(e.leftType=e.left===null?`null`:typeof e.left,e.rightType=e.right===null?`null`:typeof e.right,e.leftType!==e.rightType){e.setResult([e.left,e.right]).exit();return}if(e.leftType===`boolean`||e.leftType===`number`){e.setResult([e.left,e.right]).exit();return}if(e.leftType===`object`&&(e.leftIsArray=Array.isArray(e.left)),e.rightType===`object`&&(e.rightIsArray=Array.isArray(e.right)),e.leftIsArray!==e.rightIsArray){e.setResult([e.left,e.right]).exit();return}e.left instanceof RegExp&&(e.right instanceof RegExp?e.setResult([e.left.toString(),e.right.toString()]).exit():e.setResult([e.left,e.right]).exit())};R.filterName=`trivial`;let z=function(e){if(e.delta===void 0){e.setResult(e.left).exit();return}if(e.nested=!Array.isArray(e.delta),e.nested)return;let t=e.delta;if(t.length===1){e.setResult(t[0]).exit();return}if(t.length===2){if(e.left instanceof RegExp){let n=/^\/(.*)\/([gimyu]+)$/.exec(t[1]);if(n?.[1]){e.setResult(new RegExp(n[1],n[2])).exit();return}}e.setResult(t[1]).exit();return}t.length===3&&t[2]===0&&e.setResult(void 0).exit()};z.filterName=`trivial`;let B=function(e){if(e.delta===void 0){e.setResult(e.delta).exit();return}if(e.nested=!Array.isArray(e.delta),e.nested)return;let t=e.delta;if(t.length===1){e.setResult([t[0],0,0]).exit();return}if(t.length===2){e.setResult([t[1],t[0]]).exit();return}t.length===3&&t[2]===0&&e.setResult([t[0]]).exit()};B.filterName=`trivial`;var V=class{constructor(e){this.processor=new u(e),this.processor.pipe(new l(`diff`).append(E,R,w,P,D,_).shouldHaveResult()),this.processor.pipe(new l(`patch`).append(k,b,z,F,O,y).shouldHaveResult()),this.processor.pipe(new l(`reverse`).append(j,C,B,L,A,x).shouldHaveResult())}options(e){return this.processor.options(e)}diff(e,t){return this.processor.process(new o(e,t))}patch(e,t){return this.processor.process(new s(e,t))}reverse(e){return this.processor.process(new c(e))}unpatch(e,t){return this.patch(e,this.reverse(t))}clone(e){return t(e)}};function H(e){return new V(e)}var U=class{format(e,t){let n={};this.prepareContext(n);let r=n;return this.recurse(r,e,t),this.finalize(r)}prepareContext(e){e.buffer=[],e.out=function(...e){if(!this.buffer)throw Error(`context buffer is not initialized`);this.buffer.push(...e)}}typeFormattterNotFound(e,t){throw Error(`cannot format delta type: ${t}`)}typeFormattterErrorFormatter(e,t,n,r,i,a,o){}finalize({buffer:e}){return Array.isArray(e)?e.join(``):``}recurse(e,t,n,r,i,a,o){let s=t&&a?a.value:n;if(t===void 0&&r===void 0)return;let c=this.getDeltaType(t,a),l=c===`node`?t._t===`a`?`array`:`object`:``;r===void 0?this.rootBegin(e,c,l):this.nodeBegin(e,r,i,c,l,o??!1);let u;try{u=c===`unknown`?this.typeFormattterNotFound(e,c):this[`format_${c}`],u.call(this,e,t,s,r,i,a)}catch(n){this.typeFormattterErrorFormatter(e,n,t,s,r,i,a),typeof console<`u`&&console.error&&console.error(n.stack)}r===void 0?this.rootEnd(e,c,l):this.nodeEnd(e,r,i,c,l,o??!1)}formatDeltaChildren(e,t,n){this.forEachDeltaKey(t,n,(r,i,a,o)=>{this.recurse(e,t[r],n?n[i]:void 0,r,i,a,o)})}forEachDeltaKey(e,t,n){let r=[];if(e._t!==`a`){let i=Object.keys(e);typeof t==`object`&&t&&r.push(...Object.keys(t));for(let e of i)r.indexOf(e)>=0||r.push(e);for(let e=0;e<r.length;e++){let t=r[e];t!==void 0&&n(t,t,void 0,e===r.length-1)}return}let i={};for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t)){let n=e[t];if(Array.isArray(n)&&n[2]===3){let e=n;i[e[1]]=Number.parseInt(t.substring(1))}}let a=e,o=0,s=0,c=Array.isArray(t)?t:void 0,l=c?c.length:Object.keys(a).reduce((e,t)=>{if(t===`_t`)return e;if(t.substring(0,1)===`_`){let n=a[t],r=Number.parseInt(t.substring(1)),i=Array.isArray(n)&&n.length>=3&&n[2]===3?n[1]:void 0,o=Math.max(r,i??0);return o>e?o:e}let n=Number.parseInt(t),r=i[n],o=Math.max(r??0,n??0);return o>e?o:e},0)+1,u=l,d,f=(...e)=>{d&&n(...d),d=e},p=()=>{d&&n(d[0],d[1],d[2],!0)};for(;o<l||s<u||`${s}`in a;){let e=!1,t=`_${o}`,n=`${s}`,r=s in i?i[s]:void 0;if(t in a){e=!0;let n=a[t];f(t,r??o,r?{key:`_${r}`,value:c?c[r]:void 0}:void 0,!1),Array.isArray(n)?n[2]===0?(u--,o++):(n[2],o++):o++}if(n in a){e=!0;let t=a[n],i=Array.isArray(t)&&t.length===1;f(n,r??o,r?{key:`_${r}`,value:c?c[r]:void 0}:void 0,!1),i?(u++,s++):(r===void 0&&o++,s++)}e||((c&&r===void 0||this.includeMoveDestinations!==!1)&&f(n,r??o,r?{key:`_${r}`,value:c?c[r]:void 0}:void 0,!1),r===void 0&&o++,s++)}p()}getDeltaType(e,t){if(e===void 0)return t===void 0?`unchanged`:`movedestination`;if(Array.isArray(e)){if(e.length===1)return`added`;if(e.length===2)return`modified`;if(e.length===3&&e[2]===0)return`deleted`;if(e.length===3&&e[2]===2)return`textdiff`;if(e.length===3&&e[2]===3)return`moved`}else if(typeof e==`object`)return`node`;return`unknown`}parseTextDiff(e){let t=[],n=e.split(`
|
|
4
|
+
@@ `);for(let e of n){let n={pieces:[]},i=/^(?:@@ )?[-+]?(\d+),(\d+)/.exec(e)?.slice(1);if(!i)throw Error(`invalid text diff format`);r(i),n.location={line:i[0],chr:i[1]};let a=e.split(`
|
|
5
|
+
`).slice(1);for(let e=0,t=a.length;e<t;e++){let t=a[e];if(t===void 0||!t.length)continue;let r={type:`context`};t.substring(0,1)===`+`?r.type=`added`:t.substring(0,1)===`-`&&(r.type=`deleted`),r.text=t.slice(1),n.pieces.push(r)}t.push(n)}return t}},W=class extends U{typeFormattterErrorFormatter(e,t){let n=typeof t==`object`&&t&&`message`in t&&typeof t.message==`string`?t.message:String(t);e.out(`<pre class="jsondiffpatch-error">${G(n)}</pre>`)}formatValue(e,t){let n=t===void 0?`undefined`:G(JSON.stringify(t,null,2));e.out(`<pre>${n}</pre>`)}formatTextDiffString(e,t){let n=this.parseTextDiff(t);e.out(`<ul class="jsondiffpatch-textdiff">`);for(let t=0,r=n.length;t<r;t++){let r=n[t];if(r===void 0)return;e.out(`<li><div class="jsondiffpatch-textdiff-location"><span class="jsondiffpatch-textdiff-line-number">${r.location.line}</span><span class="jsondiffpatch-textdiff-char">${r.location.chr}</span></div><div class="jsondiffpatch-textdiff-line">`);let i=r.pieces;for(let t=0,n=i.length;t<n;t++){let n=i[t];if(n===void 0)return;e.out(`<span class="jsondiffpatch-textdiff-${n.type}">${G(decodeURI(n.text))}</span>`)}e.out(`</div></li>`)}e.out(`</ul>`)}rootBegin(e,t,n){let r=`jsondiffpatch-${t}${n?` jsondiffpatch-child-node-type-${n}`:``}`;e.out(`<div class="jsondiffpatch-delta ${r}">`)}rootEnd(e){e.out(`</div>${e.hasArrows?`<script type="text/javascript">setTimeout(${K.toString()},10);<\/script>`:``}`)}nodeBegin(e,t,n,r,i){let a=`jsondiffpatch-${r}${i?` jsondiffpatch-child-node-type-${i}`:``}`,o=typeof n==`number`&&t.substring(0,1)===`_`?t.substring(1):t;e.out(`<li class="${a}" data-key="${G(t)}"><div class="jsondiffpatch-property-name">${G(o)}</div>`)}nodeEnd(e){e.out(`</li>`)}format_unchanged(e,t,n){n!==void 0&&(e.out(`<div class="jsondiffpatch-value">`),this.formatValue(e,n),e.out(`</div>`))}format_movedestination(e,t,n){n!==void 0&&(e.out(`<div class="jsondiffpatch-value">`),this.formatValue(e,n),e.out(`</div>`))}format_node(e,t,n){let r=t._t===`a`?`array`:`object`;e.out(`<ul class="jsondiffpatch-node jsondiffpatch-node-type-${r}">`),this.formatDeltaChildren(e,t,n),e.out(`</ul>`)}format_added(e,t){e.out(`<div class="jsondiffpatch-value">`),this.formatValue(e,t[0]),e.out(`</div>`)}format_modified(e,t){e.out(`<div class="jsondiffpatch-value jsondiffpatch-left-value">`),this.formatValue(e,t[0]),e.out(`</div><div class="jsondiffpatch-value jsondiffpatch-right-value">`),this.formatValue(e,t[1]),e.out(`</div>`)}format_deleted(e,t){e.out(`<div class="jsondiffpatch-value">`),this.formatValue(e,t[0]),e.out(`</div>`)}format_moved(e,t){e.out(`<div class="jsondiffpatch-value">`),this.formatValue(e,t[0]),e.out(`</div><div class="jsondiffpatch-moved-destination">${t[1]}</div>`),e.out(`<div class="jsondiffpatch-arrow" style="position: relative; left: -34px;">
|
|
6
|
+
<svg width="30" height="60" style="position: absolute; display: none;">
|
|
7
|
+
<defs>
|
|
8
|
+
<marker id="markerArrow" markerWidth="8" markerHeight="8"
|
|
9
|
+
refx="2" refy="4" stroke="#88f"
|
|
10
|
+
orient="auto" markerUnits="userSpaceOnUse">
|
|
11
|
+
<path d="M1,1 L1,7 L7,4 L1,1" style="fill: #339;" />
|
|
12
|
+
</marker>
|
|
13
|
+
</defs>
|
|
14
|
+
<path d="M30,0 Q-10,25 26,50"
|
|
15
|
+
style="stroke: #88f; stroke-width: 2px; fill: none; stroke-opacity: 0.5; marker-end: url(#markerArrow);"
|
|
16
|
+
></path>
|
|
17
|
+
</svg>
|
|
18
|
+
</div>`),e.hasArrows=!0}format_textdiff(e,t){e.out(`<div class="jsondiffpatch-value">`),this.formatTextDiffString(e,t[0]),e.out(`</div>`)}};function G(e){if(typeof e==`number`)return e;let t=String(e);for(let e of[[/&/g,`&`],[/</g,`<`],[/>/g,`>`],[/'/g,`'`],[/"/g,`"`]])t=t.replace(e[0],e[1]);return t}let K=function(e){let t=e||document,n=({textContent:e,innerText:t})=>e||t,r=(e,t,n)=>{let r=e.querySelectorAll(t);for(let e=0,t=r.length;e<t;e++)n(r[e])},i=({children:e},t)=>{for(let n=0,r=e.length;n<r;n++){let r=e[n];r&&t(r,n)}};r(t,`.jsondiffpatch-arrow`,({parentNode:e,children:t,style:r})=>{let a=e,o=t[0],s=o.children[1];o.style.display=`none`;let c=a.querySelector(`.jsondiffpatch-moved-destination`);if(!(c instanceof HTMLElement))return;let l=n(c),u=a.parentNode;if(!u)return;let d;if(i(u,e=>{e.getAttribute(`data-key`)===l&&(d=e)}),d)try{let e=d.offsetTop-a.offsetTop;o.setAttribute(`height`,`${Math.abs(e)+6}`),r.top=`${-8+(e>0?0:e)}px`;let t=e>0?`M30,0 Q-10,${Math.round(e/2)} 26,${e-4}`:`M30,${-e} Q-10,${Math.round(-e/2)} 26,4`;s.setAttribute(`d`,t),o.style.display=``}catch(e){console.debug(`[jsondiffpatch] error adjusting arrows: ${e}`)}})},q;function J(e,t){return q||=new W,q.format(e,t)}let Y=H({arrays:{detectMove:!1}});function X(e,t){let n=Y.diff(e,t);return n?J(n,e)??``:``}self.onmessage=e=>{try{self.postMessage({html:X(e.data.before,e.data.after)})}catch{self.postMessage({error:`Could not compare these versions.`})}}})();
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export interface StateAttribution {
|
|
2
|
+
operation: string;
|
|
3
|
+
connectionId: string | null;
|
|
4
|
+
committedAtMs: number;
|
|
5
|
+
interleaved: boolean;
|
|
6
|
+
}
|
|
7
|
+
export interface StateRecord {
|
|
8
|
+
stateVersion: number;
|
|
9
|
+
ownerEpoch: number;
|
|
10
|
+
requestId: string;
|
|
11
|
+
attribution: StateAttribution | null;
|
|
12
|
+
}
|
|
13
|
+
export interface StateSnapshot extends StateRecord {
|
|
14
|
+
state: Record<string, unknown>;
|
|
15
|
+
}
|
|
16
|
+
export interface StateQuery {
|
|
17
|
+
actorName: string;
|
|
18
|
+
actorId: string;
|
|
19
|
+
version?: number;
|
|
20
|
+
}
|
|
21
|
+
export interface StateResponse {
|
|
22
|
+
snapshot: StateSnapshot | null;
|
|
23
|
+
schema: Record<string, unknown> | null;
|
|
24
|
+
}
|
|
25
|
+
export interface StateHistoryPage {
|
|
26
|
+
records: StateRecord[];
|
|
27
|
+
nextBefore: number | null;
|
|
28
|
+
}
|
|
29
|
+
export declare function parseStateResponse(value: unknown): StateResponse;
|
|
30
|
+
export declare function parseStateHistory(value: unknown): StateHistoryPage;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function stateDiff(before: object, after: object): string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ObserverClient } from "./client.js";
|
|
2
|
+
import type { StateHistoryPage, StateResponse } from "./state-data.js";
|
|
3
|
+
export declare function useStateInspection(client: ObserverClient, actorName: string, actorId: string): {
|
|
4
|
+
current: StateResponse | undefined;
|
|
5
|
+
history: StateHistoryPage | undefined;
|
|
6
|
+
failed: boolean;
|
|
7
|
+
loading: boolean;
|
|
8
|
+
knownVersion: number;
|
|
9
|
+
refresh: () => void;
|
|
10
|
+
loadOlder: () => void;
|
|
11
|
+
};
|
package/dist/styles.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
|
|
2
|
-
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--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-duration:initial;--tw-ease:initial;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0}}}@layer theme{:root,:host{--la-font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--la-color-white:#fff;--la-spacing:.25rem;--la-text-xs:.75rem;--la-text-xs--line-height:calc(1 / .75);--la-text-sm:.875rem;--la-text-sm--line-height:calc(1.25 / .875);--la-font-weight-normal:400;--la-font-weight-medium:500;--la-font-weight-semibold:600;--la-tracking-widest:.1em;--la-ease-out:cubic-bezier(0, 0, .2, 1);--la-default-transition-duration:.15s;--la-default-transition-timing-function:cubic-bezier(.4, 0, .2, 1)}}@layer base{.la-observer *,.la-observer :before,.la-observer :after,[data-slot=popover-content] *,[data-slot=popover-content] :before,[data-slot=popover-content] :after{box-sizing:border-box;border:0 solid var(--border)}.la-observer button,.la-observer input,.la-observer select,[data-slot=popover-content] button,[data-slot=popover-content] input{font-family:inherit}.la-observer button,.la-observer select,[data-slot=popover-content] button{cursor:pointer;touch-action:manipulation}}@layer components;@layer utilities{.la\:invisible{visibility:hidden}.la\:sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.la\:absolute{position:absolute}.la\:relative{position:relative}.la\:inset-0{inset:0}.la\:inset-x-0{inset-inline:0}.la\:top-0{top:0}.la\:top-full{top:100%}.la\:right-0{right:0}.la\:left-0{left:0}.la\:z-20{z-index:20}.la\:z-50{z-index:50}.la\:-mx-1{margin-inline:calc(var(--la-spacing) * -1)}.la\:mt-1\.5{margin-top:calc(var(--la-spacing) * 1.5)}.la\:mt-2{margin-top:calc(var(--la-spacing) * 2)}.la\:mt-4{margin-top:calc(var(--la-spacing) * 4)}.la\:ml-auto{margin-left:auto}.la\:flex{display:flex}.la\:grid{display:grid}.la\:inline-flex{display:inline-flex}.la\:aspect-square{aspect-ratio:1}.la\:size-\(--cell-size\){width:var(--cell-size);height:var(--cell-size)}.la\:size-4{width:calc(var(--la-spacing) * 4);height:calc(var(--la-spacing) * 4)}.la\:size-8{width:calc(var(--la-spacing) * 8);height:calc(var(--la-spacing) * 8)}.la\:size-9{width:calc(var(--la-spacing) * 9);height:calc(var(--la-spacing) * 9)}.la\:size-10{width:calc(var(--la-spacing) * 10);height:calc(var(--la-spacing) * 10)}.la\:size-auto{width:auto;height:auto}.la\:h-\(--cell-size\){height:var(--cell-size)}.la\:h-8{height:calc(var(--la-spacing) * 8)}.la\:h-9{height:calc(var(--la-spacing) * 9)}.la\:h-10{height:calc(var(--la-spacing) * 10)}.la\:h-full{height:100%}.la\:h-px{height:1px}.la\:max-h-\[300px\]{max-height:300px}.la\:w-\(--cell-size\){width:var(--cell-size)}.la\:w-24{width:calc(var(--la-spacing) * 24)}.la\:w-72{width:calc(var(--la-spacing) * 72)}.la\:w-\[22rem\]{width:22rem}.la\:w-auto{width:auto}.la\:w-fit{width:fit-content}.la\:w-full{width:100%}.la\:min-w-\(--cell-size\){min-width:var(--cell-size)}.la\:min-w-0{min-width:0}.la\:flex-1{flex:1}.la\:shrink-0{flex-shrink:0}.la\:caption-bottom{caption-side:bottom}.la\:border-collapse{border-collapse:collapse}.la\:origin-\(--radix-popover-content-transform-origin\){transform-origin:var(--radix-popover-content-transform-origin)}.la\:cursor-default{cursor:default}.la\:scroll-py-1{scroll-padding-block:var(--la-spacing)}.la\:flex-col{flex-direction:column}.la\:items-center{align-items:center}.la\:items-end{align-items:flex-end}.la\:justify-between{justify-content:space-between}.la\:justify-center{justify-content:center}.la\:justify-start{justify-content:flex-start}.la\:gap-0\.5{gap:calc(var(--la-spacing) * .5)}.la\:gap-1{gap:var(--la-spacing)}.la\:gap-1\.5{gap:calc(var(--la-spacing) * 1.5)}.la\:gap-2{gap:calc(var(--la-spacing) * 2)}.la\:gap-4{gap:calc(var(--la-spacing) * 4)}.la\:truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.la\:overflow-hidden{overflow:hidden}.la\:overflow-visible{overflow:visible}.la\:overflow-x-auto{overflow-x:auto}.la\:overflow-x-hidden{overflow-x:hidden}.la\:overflow-y-auto{overflow-y:auto}.la\:rounded-md{border-radius:calc(var(--radius) - 2px)}.la\:rounded-none{border-radius:0}.la\:rounded-sm{border-radius:calc(var(--radius) - 4px)}.la\:rounded-l-md{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.la\:rounded-r-md{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.la\:border{border-style:var(--tw-border-style);border-width:1px}.la\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.la\:border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.la\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.la\:border-border{border-color:var(--border)}.la\:border-input{border-color:var(--input)}.la\:border-transparent{border-color:#0000}.la\:bg-accent{background-color:var(--accent)}.la\:bg-background{background-color:var(--background)}.la\:bg-border{background-color:var(--border)}.la\:bg-card{background-color:var(--card)}.la\:bg-destructive{background-color:var(--destructive)}.la\:bg-muted,.la\:bg-muted\/50{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.la\:bg-muted\/50{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.la\:bg-popover{background-color:var(--popover)}.la\:bg-primary{background-color:var(--primary)}.la\:bg-secondary{background-color:var(--secondary)}.la\:bg-transparent{background-color:#0000}.la\:p-0{padding:0}.la\:p-1{padding:var(--la-spacing)}.la\:p-2{padding:calc(var(--la-spacing) * 2)}.la\:p-3{padding:calc(var(--la-spacing) * 3)}.la\:p-4{padding:calc(var(--la-spacing) * 4)}.la\:px-\(--cell-size\){padding-inline:var(--cell-size)}.la\:px-2{padding-inline:calc(var(--la-spacing) * 2)}.la\:px-3{padding-inline:calc(var(--la-spacing) * 3)}.la\:px-4{padding-inline:calc(var(--la-spacing) * 4)}.la\:px-5{padding-inline:calc(var(--la-spacing) * 5)}.la\:py-0\.5{padding-block:calc(var(--la-spacing) * .5)}.la\:py-1{padding-block:var(--la-spacing)}.la\:py-1\.5{padding-block:calc(var(--la-spacing) * 1.5)}.la\:py-2{padding-block:calc(var(--la-spacing) * 2)}.la\:py-2\.5{padding-block:calc(var(--la-spacing) * 2.5)}.la\:py-3{padding-block:calc(var(--la-spacing) * 3)}.la\:py-6{padding-block:calc(var(--la-spacing) * 6)}.la\:pr-1{padding-right:var(--la-spacing)}.la\:pb-3{padding-bottom:calc(var(--la-spacing) * 3)}.la\:pl-2{padding-left:calc(var(--la-spacing) * 2)}.la\:text-center{text-align:center}.la\:text-left{text-align:left}.la\:align-middle{vertical-align:middle}.la\:font-mono{font-family:var(--la-font-mono)}.la\:text-sm{font-size:var(--la-text-sm);line-height:var(--tw-leading,var(--la-text-sm--line-height))}.la\:text-xs{font-size:var(--la-text-xs);line-height:var(--tw-leading,var(--la-text-xs--line-height))}.la\:text-\[0\.8rem\]{font-size:.8rem}.la\:leading-none{--tw-leading:1;line-height:1}.la\:font-medium{--tw-font-weight:var(--la-font-weight-medium);font-weight:var(--la-font-weight-medium)}.la\:font-normal{--tw-font-weight:var(--la-font-weight-normal);font-weight:var(--la-font-weight-normal)}.la\:tracking-widest{--tw-tracking:var(--la-tracking-widest);letter-spacing:var(--la-tracking-widest)}.la\:whitespace-nowrap{white-space:nowrap}.la\:text-accent-foreground{color:var(--accent-foreground)}.la\:text-danger{color:var(--danger)}.la\:text-foreground{color:var(--foreground)}.la\:text-muted-foreground{color:var(--muted-foreground)}.la\:text-popover-foreground{color:var(--popover-foreground)}.la\:text-primary{color:var(--primary)}.la\:text-primary-foreground{color:var(--primary-foreground)}.la\:text-secondary-foreground{color:var(--secondary-foreground)}.la\:text-white{color:var(--la-color-white)}.la\:tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.la\:underline-offset-4{text-underline-offset:4px}.la\:opacity-0{opacity:0}.la\:opacity-50{opacity:.5}.la\:shadow-\[var\(--shadow-control\)\]{--tw-shadow:var(--shadow-control);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.la\:shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px 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)}.la\:shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.la\:outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.la\:outline-hidden{outline-offset:2px;outline:2px solid #0000}}.la\:transition-\[background-color\,border-color\,color\,box-shadow\,transform\]{transition-property:background-color,border-color,color,box-shadow,transform;transition-timing-function:var(--tw-ease,var(--la-default-transition-timing-function));transition-duration:var(--tw-duration,var(--la-default-transition-duration))}.la\:transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--la-default-transition-timing-function));transition-duration:var(--tw-duration,var(--la-default-transition-duration))}.la\:duration-150{--tw-duration:.15s;transition-duration:.15s}.la\:ease-out{--tw-ease:var(--la-ease-out);transition-timing-function:var(--la-ease-out)}.la\:outline-none{--tw-outline-style:none;outline-style:none}.la\:select-none{-webkit-user-select:none;user-select:none}.la\:\[--cell-size\:--spacing\(8\)\]{--cell-size:calc(var(--la-spacing) * 8)}.la\:group-data-\[focused\=true\]\/day\:relative:is(:where(.la\:group\/day)[data-focused=true] *){position:relative}.la\:group-data-\[focused\=true\]\/day\:z-10:is(:where(.la\:group\/day)[data-focused=true] *){z-index:10}.la\:group-data-\[focused\=true\]\/day\:border-ring:is(:where(.la\:group\/day)[data-focused=true] *){border-color:var(--ring)}.la\:group-data-\[focused\=true\]\/day\:ring-\[3px\]:is(:where(.la\:group\/day)[data-focused=true] *){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.la\:group-data-\[focused\=true\]\/day\:ring-ring\/50:is(:where(.la\:group\/day)[data-focused=true] *){--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.la\:group-data-\[focused\=true\]\/day\:ring-ring\/50:is(:where(.la\:group\/day)[data-focused=true] *){--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.la\:placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}@media (hover:hover){.la\:hover\:border-foreground\/20:hover{border-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.la\:hover\:border-foreground\/20:hover{border-color:color-mix(in oklab, var(--foreground) 20%, transparent)}}.la\:hover\:bg-accent:hover{background-color:var(--accent)}.la\:hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.la\:hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab, var(--destructive) 90%, transparent)}}.la\:hover\:bg-muted\/60:hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.la\:hover\:bg-muted\/60:hover{background-color:color-mix(in oklab, var(--muted) 60%, transparent)}}.la\:hover\:bg-primary\/88:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.la\:hover\:bg-primary\/88:hover{background-color:color-mix(in oklab, var(--primary) 88%, transparent)}}.la\:hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.la\:hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab, var(--secondary) 80%, transparent)}}.la\:hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.la\:hover\:underline:hover{text-decoration-line:underline}}.la\:focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.la\:focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.la\:focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.la\:focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.la\:focus-visible\:ring-ring:focus-visible,.la\:focus-visible\:ring-ring\/20:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.la\:focus-visible\:ring-ring\/20:focus-visible{--tw-ring-color:color-mix(in oklab, var(--ring) 20%, transparent)}}.la\:focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.la\:focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color:var(--background)}.la\:active\:translate-y-px:active{--tw-translate-y:1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.la\:disabled\:pointer-events-none:disabled{pointer-events:none}.la\:disabled\:translate-y-0:disabled{--tw-translate-y:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.la\:disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.la\:disabled\:opacity-45:disabled{opacity:.45}.la\:disabled\:opacity-50:disabled{opacity:.5}.la\:has-focus\:border-ring:has(:focus){border-color:var(--ring)}.la\:has-focus\:ring-\[3px\]:has(:focus){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.la\:has-focus\:ring-ring\/50:has(:focus){--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.la\:has-focus\:ring-ring\/50:has(:focus){--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.la\:has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--la-spacing) * 2.5)}.la\:has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--la-spacing) * 3)}.la\:has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--la-spacing) * 4)}.la\:aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.la\:aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.la\:aria-invalid\:ring-destructive\/25[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.la\:aria-invalid\:ring-destructive\/25[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 25%, transparent)}}.la\:aria-pressed\:font-semibold[aria-pressed=true]{--tw-font-weight:var(--la-font-weight-semibold);font-weight:var(--la-font-weight-semibold)}.la\:aria-selected\:text-muted-foreground[aria-selected=true]{color:var(--muted-foreground)}.la\:data-\[disabled\=true\]\:pointer-events-none[data-disabled=true]{pointer-events:none}.la\:data-\[disabled\=true\]\:opacity-50[data-disabled=true]{opacity:.5}.la\:data-\[range-end\=true\]\:rounded-md[data-range-end=true]{border-radius:calc(var(--radius) - 2px)}.la\:data-\[range-end\=true\]\:rounded-r-md[data-range-end=true]{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.la\:data-\[range-end\=true\]\:bg-primary[data-range-end=true]{background-color:var(--primary)}.la\:data-\[range-end\=true\]\:text-primary-foreground[data-range-end=true]{color:var(--primary-foreground)}.la\:data-\[range-middle\=true\]\:rounded-none[data-range-middle=true]{border-radius:0}.la\:data-\[range-middle\=true\]\:bg-accent[data-range-middle=true]{background-color:var(--accent)}.la\:data-\[range-middle\=true\]\:text-accent-foreground[data-range-middle=true]{color:var(--accent-foreground)}.la\:data-\[range-start\=true\]\:rounded-md[data-range-start=true]{border-radius:calc(var(--radius) - 2px)}.la\:data-\[range-start\=true\]\:rounded-l-md[data-range-start=true]{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.la\:data-\[range-start\=true\]\:bg-primary[data-range-start=true]{background-color:var(--primary)}.la\:data-\[range-start\=true\]\:text-primary-foreground[data-range-start=true]{color:var(--primary-foreground)}.la\:data-\[selected-single\=true\]\:bg-primary[data-selected-single=true]{background-color:var(--primary)}.la\:data-\[selected-single\=true\]\:text-primary-foreground[data-selected-single=true]{color:var(--primary-foreground)}.la\:data-\[selected\=true\]\:rounded-none[data-selected=true]{border-radius:0}.la\:data-\[selected\=true\]\:bg-accent[data-selected=true]{background-color:var(--accent)}.la\:data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:var(--accent-foreground)}.la\:data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:var(--muted)}@media not all and (width>=48rem){.la\:max-md\:size-11{width:calc(var(--la-spacing) * 11);height:calc(var(--la-spacing) * 11)}.la\:max-md\:min-h-11{min-height:calc(var(--la-spacing) * 11)}}@media (width>=48rem){.la\:md\:flex-row{flex-direction:row}}.la\:dark\:bg-card:is(.dark *){background-color:var(--card)}.la\:dark\:bg-destructive\/60:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.la\:dark\:bg-destructive\/60:is(.dark *){background-color:color-mix(in oklab, var(--destructive) 60%, transparent)}}@media (hover:hover){.la\:dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.la\:dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:color-mix(in oklab, var(--accent) 50%, transparent)}}.la\:dark\:hover\:text-accent-foreground:is(.dark *):hover{color:var(--accent-foreground)}}.la\:dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.la\:dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.la\:\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-inline:calc(var(--la-spacing) * 2)}.la\:\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-block:calc(var(--la-spacing) * 1.5)}.la\:\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:var(--la-text-xs);line-height:var(--tw-leading,var(--la-text-xs--line-height))}.la\:\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{--tw-font-weight:var(--la-font-weight-medium);font-weight:var(--la-font-weight-medium)}.la\:\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:var(--muted-foreground)}.la\:\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.la\:\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.la\:\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--la-spacing) * 4);height:calc(var(--la-spacing) * 4)}.la\:\[\&_svg\:not\(\[class\*\=\'text-\'\]\)\]\:text-muted-foreground svg:not([class*=text-]){color:var(--muted-foreground)}.la\:\[\&_tr\]\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.la\:\[\&_tr\:last-child\]\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}.la\:\[\&\:first-child\[data-selected\=true\]_button\]\:rounded-l-md:first-child[data-selected=true] button{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.la\:\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.la\:\[\&\:last-child\[data-selected\=true\]_button\]\:rounded-r-md:last-child[data-selected=true] button{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.la\:\[\&\:nth-child\(2\)\[data-selected\=true\]_button\]\:rounded-l-md:nth-child(2)[data-selected=true] button{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.la\:\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y:2px;translate:var(--tw-translate-x) var(--tw-translate-y)}.la\:\[\&\>span\]\:text-xs>span{font-size:var(--la-text-xs);line-height:var(--tw-leading,var(--la-text-xs--line-height))}.la\:\[\&\>span\]\:opacity-70>span{opacity:.7}.la\:\[\&\>svg\]\:size-3\.5>svg{width:calc(var(--la-spacing) * 3.5);height:calc(var(--la-spacing) * 3.5)}.la\:\[\&\>svg\]\:text-muted-foreground>svg{color:var(--muted-foreground)}.la\:\[\&\>tr\]\:last\:border-b-0>tr:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}[data-slot=card-content] .la\:\[\[data-slot\=card-content\]_\&\]\:bg-transparent,[data-slot=popover-content] .la\:\[\[data-slot\=popover-content\]_\&\]\:bg-transparent{background-color:#0000}}.la-observer{color:var(--foreground);-webkit-font-smoothing:antialiased;font-family:inherit;font-size:14px}.la-observer h1,.la-observer h2,.la-observer h3,.la-observer p{margin:0}.la-observer h1{letter-spacing:-.035em;font-size:1.75rem;font-weight:600;line-height:1.3}.la-observer h2,.la-observer h3{overflow-wrap:anywhere;flex-wrap:wrap;align-items:center;gap:8px;font-size:.875rem;font-weight:600;line-height:1.5;display:flex}.la-observer p{color:var(--muted-foreground);max-width:70ch;font-size:.8125rem;line-height:1.6}.la-observer-toolbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:28px;display:flex}.la-observer-toolbar>div{min-width:0}.la-observer-actions{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;gap:8px;display:flex}.la-observer-toolbar p{margin-top:8px}.la-observer-title{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.la-observer-title [data-slot=badge]{white-space:normal;overflow-wrap:anywhere;max-width:100%}.la-observer-summary{border:1px solid var(--border);background:var(--card);border-radius:8px;margin:0 0 32px;display:flex}.la-observer-summary>div{flex:1;min-width:0;padding:20px 24px}.la-observer-summary>div+div{border-left:1px solid var(--border)}.la-observer-summary dt{color:var(--muted-foreground);align-items:center;gap:7px;font-size:.75rem;display:flex}.la-observer-summary dd{letter-spacing:-.03em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:10px 0 4px;font-size:1.625rem;font-weight:600;line-height:1.2}.la-observer-summary p{font-size:.75rem}.la-observer-summary-compact{margin:16px 0 0}.la-observer-summary-compact>div{padding:14px 18px}.la-observer-summary-compact dd{font-size:1.25rem}.la-observer-queue-wait-detail{margin-top:28px}.la-observer-queue-wait-detail>p{margin-top:6px}.la-observer-table th.la-observer-wait-cell,.la-observer-table td.la-observer-wait-cell,.la-observer-instance-table th.la-observer-wait-cell,.la-observer-instance-table td.la-observer-wait-cell{text-align:right;width:150px}.la-observer-wait{font-variant-numeric:tabular-nums;flex-direction:column;align-items:flex-end;gap:2px;display:inline-flex}.la-observer-wait small{color:var(--muted-foreground);font-size:.6875rem}.la-observer-dot{background:var(--muted-foreground);border-radius:50%;flex:none;width:6px;height:6px;display:inline-block}.la-observer-dot-live{background:var(--success)}.la-observer-dot-unknown{background:var(--warning)}.la-observer-list-toolbar,.la-observer-filters{justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;display:flex}.la-observer-search{width:260px;max-width:100%;position:relative}.la-observer-search>svg{width:15px;height:15px;color:var(--muted-foreground);pointer-events:none;position:absolute;top:50%;left:11px;transform:translateY(-50%)}.la-observer-search input{caret-color:var(--foreground);padding-left:34px}.la-observer-table-frame{border:1px solid var(--border);background:var(--card);border-radius:8px;overflow:hidden}.la-observer table{border-collapse:collapse}.la-observer thead{background:var(--muted)}.la-observer th{height:40px}.la-observer th,.la-observer td{padding-left:20px;padding-right:20px}.la-observer td{height:60px}.la-observer-table th:not(:first-child),.la-observer-table td:not(:first-child){text-align:right;width:100px}.la-observer-table td:last-child{font-weight:600}.la-observer td:first-child{white-space:normal;overflow-wrap:anywhere}.la-observer-name{min-width:160px}.la-observer .la-observer-actor-button{text-align:left;white-space:normal;max-width:100%;height:auto;min-height:36px;color:var(--foreground);background:0 0;justify-content:flex-start;gap:10px;margin:-6px -8px;padding:6px 8px;font-size:.8125rem;font-weight:500;line-height:1.5;display:inline-flex}.la-observer-actor-button>span{overflow-wrap:anywhere;min-width:0}.la-observer-type-icon{color:var(--muted-foreground)}.la-observer-live,.la-observer-status-live{color:var(--success)}.la-observer-status-unknown{color:var(--warning)}.la-observer-breadcrumb{color:var(--muted-foreground);align-items:center;gap:8px;margin-bottom:16px;font-size:.8125rem;display:flex}.la-observer-breadcrumb button{height:auto;min-height:44px;color:var(--muted-foreground);background:0 0;padding:0}.la-observer-breadcrumb svg{flex:none;width:14px;height:14px}.la-observer-breadcrumb span,.la-observer-title h1{overflow-wrap:anywhere;min-width:0}.la-observer-class-button:hover>span{text-underline-offset:3px;text-decoration:underline}.la-observer-title h1:focus-visible{outline:2px solid var(--ring);outline-offset:4px}.la-observer-instances-heading{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.la-observer-instances-heading p{margin-top:4px;font-size:.75rem}.la-observer-filters{justify-content:flex-start;gap:8px}.la-observer-select{border:1px solid var(--input);background:var(--card);height:36px;color:var(--foreground);border-radius:6px;padding:0 32px 0 12px;font-size:.8125rem}.la-observer-select:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.la-observer-instance-table th:not(:first-child),.la-observer-instance-table td:not(:first-child){text-align:right;width:132px}.la-observer-instance-id,.la-observer-socket-id{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem}.la-observer-instance-id .la-observer-actor-button{font-family:inherit;font-size:inherit}.la-observer-instance-table td{height:56px}.la-observer .la-observer-connection-note{margin-top:10px;font-size:.75rem}.la-observer .la-observer-unknown{align-items:flex-start;gap:8px;margin-top:12px;font-size:.75rem;display:flex}.la-observer-unknown svg{flex:none;width:14px;height:14px;margin-top:3px}.la-observer-connections{margin-top:24px}.la-observer-connection-table th:first-child,.la-observer-connection-table td:first-child{width:30%}.la-observer-connection-table pre{background:var(--muted);max-width:100%;max-height:240px;color:var(--foreground);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:4px;margin:0;padding:12px;font:.75rem/1.7 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:auto}.la-observer .la-observer-instance-empty{border:1px dashed var(--border);border-radius:8px;padding:28px 20px}.la-observer-no-connections{border:1px dashed var(--border);border-radius:8px;align-items:center;gap:12px;padding:24px 20px;display:flex}.la-observer-no-connections svg{width:18px;height:18px;color:var(--muted-foreground)}.la-observer-footnote{color:var(--muted-foreground);flex-wrap:wrap;justify-content:space-between;gap:8px 20px;margin-top:20px;font-size:.75rem;line-height:1.5;display:flex}.la-observer-refresh-status{align-items:center;gap:7px;display:inline-flex}.la-observer-error{border:1px solid var(--danger);align-items:flex-start;gap:10px;margin-bottom:20px;padding:14px 16px;display:flex}@supports (color:color-mix(in lab, red, red)){.la-observer-error{border:1px solid color-mix(in srgb, var(--danger) 35%, var(--border))}}.la-observer-error{background:var(--danger);border-radius:8px}@supports (color:color-mix(in lab, red, red)){.la-observer-error{background:color-mix(in srgb, var(--danger) 5%, var(--card))}}.la-observer-error{color:var(--danger)}.la-observer-error svg{flex:none;width:16px;height:16px;margin-top:2px}.la-observer-error p{color:inherit}.la-observer-empty{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:48px 24px;display:flex}.la-observer-empty>svg{width:24px;height:24px;color:var(--muted-foreground);margin-bottom:4px}.la-observer-empty button{margin-top:8px}.la-observer-skeleton{gap:14px;display:grid}.la-observer-skeleton>div{background:var(--muted);border-radius:8px;height:60px;animation:1.5s ease-in-out infinite alternate la-pulse}.la-observer-skeleton>div:first-of-type{height:124px;margin-bottom:18px}.la-observer-spin{animation:1s linear infinite la-spin}@keyframes la-spin{to{transform:rotate(360deg)}}@keyframes la-pulse{to{opacity:.5}}@media (width<=640px){.la-observer-toolbar{align-items:flex-start}.la-observer h1{font-size:1.5rem}.la-observer-toolbar p{max-width:26ch}.la-observer-summary{flex-wrap:wrap}.la-observer-summary>div{flex-basis:33%;padding:16px}.la-observer-summary:has(>div:nth-child(4))>div{flex-basis:50%}.la-observer-summary:has(>div:nth-child(4))>div:nth-child(3){border-left:0}.la-observer-summary>div:nth-child(n+3):not(:last-child),.la-observer-summary>div:nth-child(4){border-top:1px solid var(--border)}.la-observer-summary p{font-size:.6875rem}.la-observer-list-toolbar{flex-direction:column;align-items:stretch;gap:12px}.la-observer-search{width:100%}.la-observer-filters .la-observer-search{flex:1;min-width:0}.la-observer-select{max-width:44%;height:44px}.la-observer th,.la-observer td{padding-left:12px;padding-right:12px}.la-observer-name{min-width:240px}.la-observer-table th:not(:first-child),.la-observer-table td:not(:first-child){min-width:68px}.la-observer-instance-table{min-width:360px}.la-observer .la-observer-actor-button{min-height:44px}}@media (prefers-reduced-motion:reduce){.la-observer *,.la-observer :before,.la-observer :after{transition:none!important;animation:none!important}}.la-request-actions{align-items:center;gap:12px;display:flex}.la-clickable-row{cursor:pointer}.la-clickable-row:hover,.la-clickable-row:focus-within{background:var(--accent)}.la-clickable-row:hover .la-observer-actor-button,.la-clickable-row:focus-within .la-observer-actor-button{text-underline-offset:3px;text-decoration:underline}.la-request-table{table-layout:fixed;min-width:980px}.la-request-table th{padding-inline:12px}.la-request-table th:first-child,.la-request-table th:nth-child(2){width:166px}.la-request-table th:nth-child(3){width:180px}.la-request-table th:nth-child(4){width:100px}.la-request-table th:nth-child(5){width:108px}.la-request-table th:nth-child(6),.la-request-table th:nth-child(7){width:90px}.la-request-table th:nth-child(8){width:80px}.la-requests .la-request-table td{white-space:nowrap;height:56px;padding:4px 12px;line-height:20px}.la-request-table th:nth-child(6),.la-request-table th:nth-child(7),.la-request-table td:nth-child(6),.la-request-table td:nth-child(7){text-align:right;font-variant-numeric:tabular-nums}.la-request-table time{font-variant-numeric:tabular-nums;color:var(--muted-foreground);font-size:12px}.la-request-operation,.la-request-actor{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.la-request-operation{font-weight:500}.la-request-actor{color:var(--muted-foreground);font-size:12px}.la-observer-instance-heading{align-items:center;gap:12px;margin:12px 0 28px;display:flex}.la-observer-instance-heading h2{font-size:1.25rem}.la-observer-instance-detail h2:focus-visible,.la-observer-instances h2:focus-visible{outline:2px solid var(--ring);outline-offset:4px}.la-observer-instance-detail>section+section{margin-top:28px}.la-observer-instance-detail>[data-slot=button]{padding-left:0}.la-sheet-overlay{z-index:50;background:#00000059;position:fixed;inset:0}.la-sheet{z-index:51;background:var(--card);width:min(480px,100%);color:var(--foreground);border-left:1px solid var(--border);padding:28px 24px;position:fixed;inset:0 0 0 auto;overflow-y:auto}.la-sheet>h2{padding-right:44px;font-size:18px}.la-sheet>p{margin-top:8px;padding-right:32px}.la-sheet-close{position:absolute;top:16px;right:16px}.la-request-outcome-completed{color:var(--success)}.la-request-outcome-failed,.la-request-outcome-rejected{color:var(--danger)}.la-request-outcome-interrupted,.la-request-outcome-rerouted{color:var(--warning)}.la-request-empty{text-align:center;padding:48px 24px}.la-request-empty p,.la-request-note{color:var(--muted-foreground);font-size:12px;line-height:1.6}.la-request-empty p{margin:8px auto 16px}.la-request-details{text-align:left;gap:12px;padding:8px 0;display:grid}.la-request-details div{grid-template-columns:100px minmax(0,1fr);gap:12px;display:grid}.la-request-details dt{color:var(--muted-foreground);font-size:12px}.la-request-details dd{overflow-wrap:anywhere;margin:0;font:12px/1.6 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}@media (width<=640px){.la-request-actions{flex-shrink:0}.la-requests .la-observer-toolbar{flex-wrap:wrap}}.la-request-history-filters{flex-wrap:wrap;align-items:end;gap:12px;margin-bottom:16px;display:flex}.la-request-history-filters label{min-width:0;color:var(--muted-foreground);flex:180px;gap:6px;font-size:13px;display:grid}.la-request-history-filters select{width:100%;max-width:none}.la-request-history-range{color:var(--muted-foreground);gap:6px;font-size:13px;display:grid}.la-request-history-range [data-slot=button]{height:36px}.la-request-load-older{margin-top:12px}.la-observer-instance-table th.la-observer-waiting-cell,.la-observer-instance-table td.la-observer-waiting-cell{text-align:left;width:420px;min-width:420px}.la-observer-queue{flex-wrap:wrap;align-items:center;gap:6px;margin:12px 0 0;padding:0;list-style:none;display:flex}.la-observer-queue-compact{flex-wrap:nowrap;margin:0}.la-observer-queue-bubble{max-width:280px;color:var(--foreground);background:var(--muted);border-radius:999px}.la-observer-queue-compact .la-observer-queue-bubble{max-width:110px}.la-observer-queue-operation{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.la-observer-queue-position,.la-observer-queue-empty{color:var(--muted-foreground);font-variant-numeric:tabular-nums}.la-observer-waiting>p{margin-top:6px}.console-shell{grid-template-columns:204px minmax(0,1fr);min-height:100dvh;display:grid}.console-sidebar{background:var(--console-sidebar,var(--muted));border-right:1px solid var(--border);flex-direction:column;min-width:0;padding:29px 16px 20px;display:flex}.console-brand{align-items:center;gap:14px;padding:3px 12px 33px;display:flex}.console-brand svg{width:19px;height:25px;color:var(--muted-foreground);stroke-width:1.5px}.console-brand strong{letter-spacing:-.02em;font-size:25px;font-weight:600}.console-sidebar nav{flex-direction:column;gap:4px;display:flex}.console-sidebar nav button{text-align:left;width:100%;min-height:39px;color:var(--muted-foreground);background:0 0;border:0;border-radius:5px;align-items:center;gap:11px;padding:8px 12px;font-size:13px;display:flex}.console-sidebar nav button:hover{background:var(--accent);color:var(--foreground)}.console-sidebar nav button[aria-current]{background:var(--console-selected,var(--accent));color:var(--foreground);font-weight:600}.console-sidebar-foot{border-top:1px solid var(--border);align-items:center;gap:10px;margin:auto 12px 0;padding-top:20px;font-size:12px;display:flex}.console-sidebar-foot svg{width:22px;color:var(--muted-foreground);stroke-width:1.3px}.console-sidebar-foot small{color:var(--muted-foreground);margin-top:4px;font-size:10px;display:block}.console-workspace{min-width:0}.console-topbar{border-bottom:1px solid var(--border);background:var(--card);justify-content:flex-end;align-items:center;gap:20px;height:64px;padding:0 32px;display:flex}.console-topbar a{color:var(--muted-foreground);border-left:1px solid var(--border);align-items:center;gap:8px;padding-left:20px;font-size:12px;text-decoration:none;display:flex}.console-topbar a:hover{color:var(--foreground);text-underline-offset:4px;text-decoration:underline}.console-shell .theme-toggle{width:36px;height:36px;color:var(--muted-foreground);background:0 0;border:0;border-radius:5px;place-items:center;display:grid}.console-shell .theme-toggle:hover{background:var(--accent);color:var(--foreground)}.console-workspace>main{outline:none;min-width:0;padding:29px 32px 48px}.console-shell .skip-link{z-index:10;background:var(--card);color:var(--foreground);padding:12px;position:fixed;top:-80px;left:16px}.console-shell .skip-link:focus{top:12px}.overview-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:25px;display:flex}.overview h1{letter-spacing:-.03em;font-size:29px;font-weight:550;line-height:1.2}.overview-controls{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.overview-updated{color:var(--muted-foreground);margin-right:8px;font-size:11px}.overview-updated time{color:var(--foreground);margin-left:5px}.overview select{border:1px solid var(--border);background:var(--card);min-height:33px;color:var(--foreground);border-radius:5px;padding:0 12px;font-size:11px}.overview-controls>button:not(.overview-range){width:33px;height:33px}.overview-metrics{grid-template-columns:.92fr 1.34fr 1fr;gap:14px;margin-bottom:28px;display:grid}.overview-metric{border:1px solid var(--border);background:var(--card);border-radius:7px;min-width:0;min-height:154px;padding:17px 19px}.overview-metric h2{font-size:12px;font-weight:500}.overview-value{flex-wrap:wrap;align-items:baseline;gap:10px;margin-top:10px;display:flex}.overview-value strong{letter-spacing:-.035em;font-variant-numeric:tabular-nums;font-size:33px;font-weight:450;line-height:1.2}.overview-value>span{color:var(--muted-foreground);font-size:11px}.overview-residency{background:var(--muted);border-radius:5px;gap:3px;height:5px;margin-top:18px;display:flex;overflow:hidden}.overview-residency span{flex-basis:0}.residency-live{background:var(--success)}.residency-dormant{background:#b5c59f}.residency-unknown{background:var(--warning)}.overview-metric-foot{color:var(--muted-foreground);flex-wrap:wrap;gap:17px;margin-top:12px;font-size:11px;display:flex}.overview-metric-foot b,.overview-health b{color:var(--foreground);font-weight:500}.overview-health{border-top:1px solid var(--border);color:var(--muted-foreground);flex-wrap:wrap;justify-content:space-between;gap:10px;margin-top:18px;padding-top:12px;font-size:11px;display:flex}.overview-section-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.overview-section-heading h2{font-size:15px;font-weight:550}.overview-section-heading h2>span{font:11px var(--console-mono,ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);color:var(--muted-foreground);margin-left:4px}.overview-panel{background:var(--card);border:1px solid var(--border);border-radius:7px;overflow:hidden}.overview-filterbar{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:12px 16px;display:flex}.overview-search{align-items:center;gap:8px;width:290px;min-width:0;display:flex}.overview-search>svg{width:14px;height:14px;color:var(--muted-foreground);flex-shrink:0}.overview-search input{box-shadow:none;background:0 0;border:0;height:28px;padding:0 3px;font-size:12px}.overview-filterbar>input{max-width:390px}.overview-table-scroll{overflow-x:auto}.overview-table{table-layout:fixed;border-collapse:collapse;text-align:right;font-variant-numeric:tabular-nums;width:100%;min-width:980px;font-size:12px}.overview-class-column{width:24%}.overview-table th,.overview-table td{border-bottom:1px solid var(--border);white-space:nowrap;padding:11px 12px}.overview-table th{background:var(--card)}@supports (color:color-mix(in lab, red, red)){.overview-table th{background:color-mix(in srgb, var(--card) 60%, var(--muted))}}.overview-table th{color:var(--muted-foreground);font-size:10px;font-weight:400}.overview-table th:first-child,.overview-table td:first-child{text-align:left}.overview-table th:nth-child(3),.overview-table td:nth-child(3),.overview-table th:nth-child(7),.overview-table td:nth-child(7){border-left:1px solid var(--border)}.overview-table .overview-groups th{text-align:left;font:9px var(--console-mono,ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);text-transform:uppercase;letter-spacing:.06em;border-bottom:0;padding:12px 12px 3px}.overview-table .overview-groups th+th{border-left:1px solid var(--border)}.overview-table .overview-groups+tr th{padding-top:6px}.overview-table tbody td{text-overflow:ellipsis;height:56px;font-family:var(--console-mono,ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);padding-top:5px;padding-bottom:5px;font-size:11px;overflow:hidden}.overview-table tbody tr:hover{background:var(--muted)}.overview-table tr:last-child td{border-bottom:0}.overview-class-link{width:100%;font:12px var(--console-mono,ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:24px;padding:3px 0;display:flex}.overview-class-link>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overview-class-link:hover{color:var(--success)}.overview-signal{border-radius:4px;justify-content:flex-end;align-items:center;gap:6px;padding:4px 7px;display:inline-flex}.signal-good{color:var(--success)}.signal-warn{color:var(--warning);background:var(--warning)}@supports (color:color-mix(in lab, red, red)){.signal-warn{background:color-mix(in srgb, var(--warning) 14%, var(--card))}}.signal-bad{color:var(--danger);background:var(--danger)}@supports (color:color-mix(in lab, red, red)){.signal-bad{background:color-mix(in srgb, var(--danger) 10%, var(--card))}}.overview-thresholds{color:var(--muted-foreground);font-size:11px;position:relative}.overview-thresholds summary{align-items:center;gap:10px;padding:6px 0;list-style:none;display:flex}.overview-thresholds summary::-webkit-details-marker{display:none}.threshold-dots{gap:4px;display:flex}.threshold-dots i{background:var(--success);border-radius:50%;width:6px;height:6px;display:block}.threshold-dots i:nth-child(2){background:var(--warning)}.threshold-dots i:nth-child(3){background:var(--danger)}.overview-thresholds>div{z-index:2;background:var(--card);border:1px solid var(--border);border-radius:7px;width:min(320px,100vw - 40px);padding:18px;position:absolute;top:34px;right:0}.overview-thresholds p{margin-top:10px;font-size:12px}.overview-empty{text-align:center;padding:44px 20px}.overview-empty p{margin:8px auto 16px}.overview-data-scope{margin-top:17px}.overview-data-scope p{max-width:110ch;font-size:11px;line-height:1.7}.overview-alert{border:1px solid var(--border);border-radius:5px;padding:12px 16px;max-width:none!important;margin-bottom:16px!important}.overview-alert,.overview-data-scope [role=alert]{color:var(--warning)}.websockets,.socket-timeline{--socket-open:#187442;--socket-closed:#2a78d6;--socket-lost:#898781}.dark .websockets,.dark .socket-timeline{--socket-open:#2fa862;--socket-closed:#3987e5}.overview-heading>div>p{margin-top:6px;font-size:12px}.socket-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.socket-metrics .overview-metric{min-height:0}.socket-filterbar{align-items:center;gap:10px;margin-bottom:14px;display:flex}.socket-filterbar .la-combobox{width:380px}.socket-filterbar [data-slot=command-input-wrapper]{border:1px solid var(--border);background:var(--card);border-radius:5px;height:33px}.socket-filterbar [data-slot=command-input]{height:31px;font-size:12px}.overview-controls>.overview-range{height:33px;padding:0 12px;font-size:11px}.socket-timeline-panel{margin-bottom:14px;overflow:visible}.socket-panel-heading{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;display:flex}.socket-panel-heading h2{font-size:13px;font-weight:550}.socket-panel-heading h2>span{font:11px var(--console-mono,ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);color:var(--muted-foreground);margin-left:6px}.socket-legend{color:var(--muted-foreground);flex-wrap:wrap;gap:18px;margin:0;padding:0;font-size:11px;list-style:none;display:flex}.socket-legend li{align-items:center;gap:7px;display:inline-flex}.socket-swatch{background:var(--socket-closed);border-radius:3px;flex-shrink:0;width:10px;height:10px;display:inline-block}.socket-swatch-open{background:var(--socket-open)}.socket-swatch-lost{background:var(--socket-lost);background-image:repeating-linear-gradient(135deg, transparent 0 2px, var(--card) 2px 3px)}.socket-timeline{padding:0 18px 14px;font-size:11px;position:relative}.socket-timeline-axis,.socket-timeline-row{grid-template-columns:200px minmax(0,1fr);gap:16px;display:grid}.socket-timeline-axis{height:34px;color:var(--muted-foreground);font:10px var(--console-mono,ui-monospace, SFMono-Regular, Menlo, Consolas, monospace)}.socket-timeline-axis>div{border-bottom:1px solid var(--border);position:relative}.socket-timeline-axis>div>span{white-space:nowrap;position:absolute;bottom:8px;transform:translate(-50%)}.socket-timeline-axis .socket-timeline-now{color:var(--foreground);left:auto;right:0;transform:none}.socket-timeline-body{max-height:420px;position:relative;overflow:hidden auto}.socket-timeline-grid{pointer-events:none;position:absolute;inset:0 0 0 216px}.socket-timeline-grid i{background:var(--border);width:1px;position:absolute;top:0;bottom:0}.socket-timeline-row+.socket-timeline-row{border-top:1px solid var(--border)}@supports (color:color-mix(in lab, red, red)){.socket-timeline-row+.socket-timeline-row{border-top:1px solid color-mix(in srgb, var(--border) 60%, transparent)}}.socket-timeline-label{min-width:0;font-family:var(--console-mono,ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);color:var(--muted-foreground);flex-direction:column;justify-content:center;gap:2px;padding:6px 0;display:flex}.socket-timeline-label span,.socket-timeline-label strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.socket-timeline-label strong{color:var(--foreground);font-weight:500}.socket-timeline-lanes{border-right:1px solid var(--foreground);min-height:34px;position:relative}.socket-bar{background:var(--socket-closed);min-width:6px;height:12px;box-shadow:0 0 0 2px var(--card);cursor:pointer;border:0;border-radius:4px;padding:0;position:absolute}.socket-bar-open{background:var(--socket-open);border-start-end-radius:0;border-end-end-radius:0}.socket-bar-lost{background:var(--socket-lost);background-image:repeating-linear-gradient(135deg, transparent 0 3px, var(--card) 3px 4px)}.socket-bar-unknown-start{border-start-start-radius:0;border-end-start-radius:0;-webkit-mask-image:linear-gradient(90deg,#0000,#000 14px);mask-image:linear-gradient(90deg,#0000,#000 14px)}.socket-bar-open:after{content:"";background:var(--card);border:2px solid var(--socket-open);border-radius:50%;width:8px;height:8px;animation:1.6s ease-in-out infinite alternate socket-pulse;position:absolute;top:50%;right:2px;transform:translateY(-50%)}.socket-bar:hover,.socket-bar:focus-visible,.socket-bar[data-state=selected]{filter:brightness(1.15);outline:2px solid var(--ring);outline-offset:2px}.socket-timeline-more{padding:10px 0 4px 216px;font-size:11px}.socket-timeline-empty{padding:36px 20px}.socket-tooltip{z-index:3;background:var(--popover);width:340px;color:var(--popover-foreground);border:1px solid var(--border);pointer-events:none;border-radius:7px;padding:12px 14px;font-size:11px;position:absolute;transform:translate(-50%,calc(-100% - 10px));box-shadow:0 8px 24px #0000001f}.socket-tooltip-below{transform:translate(-50%,10px)}.socket-tooltip dl{grid-template-columns:auto minmax(0,1fr);gap:4px 14px;margin:0;display:grid}.socket-tooltip dt{color:var(--muted-foreground)}.socket-tooltip dd{text-align:right;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:0}.socket-tooltip .socket-tooltip-metadata{border-bottom:1px solid var(--border);margin:0 0 10px;padding-bottom:10px;display:block}.socket-tooltip-metadata>div{gap:1px;display:grid}.socket-tooltip-metadata>div+div{margin-top:6px}.socket-tooltip .socket-tooltip-metadata dt{text-transform:uppercase;letter-spacing:.06em;font-size:10px}.socket-tooltip .socket-tooltip-metadata dd{text-align:left;font:12px/1.45 var(--console-mono,ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-weight:600;display:-webkit-box;overflow:hidden}.socket-tooltip-metadata p{color:var(--muted-foreground);margin:6px 0 0;font-size:10px}.socket-table{text-align:left;min-width:1080px}.socket-table th{text-align:left}.socket-table th:first-child{width:9%}.socket-table th:nth-child(2){width:13%}.socket-table th:nth-child(5){width:9%}.socket-table th:nth-child(6){width:17%}.socket-table th:nth-child(7){width:8%}.socket-table th:nth-child(3),.socket-table td:nth-child(3),.socket-table th:nth-child(7),.socket-table td:nth-child(7){border-left:0}.socket-table tbody td{height:48px}.socket-status{align-items:center;gap:8px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:12px;display:inline-flex}.socket-status-lost{color:var(--muted-foreground)}.socket-connection{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}.la-clickable-row:hover .socket-connection{color:var(--socket-closed);text-underline-offset:3px;text-decoration:underline}.socket-duration{align-items:center;gap:12px;display:flex}.socket-duration>span{min-width:62px}.socket-duration-bar{background:var(--muted);border-radius:2px;flex:1;height:4px;display:block;overflow:hidden}.socket-duration-bar b{background:var(--socket-closed);border-radius:2px;height:100%;display:block}.socket-duration-open b{background:var(--socket-open)}.socket-duration-lost b{background:var(--socket-lost)}.socket-metadata{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font:inherit;color:var(--muted-foreground);display:block;overflow:hidden}.socket-metadata-details{margin-top:18px;font-size:12px}.socket-metadata-details summary{color:var(--muted-foreground)}.socket-metadata-details pre{border:1px solid var(--border);background:var(--muted);font:12px/1.6 var(--console-mono,ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:6px;max-height:240px;margin:10px 0 0;padding:12px;overflow:auto}.la-sheet .la-request-details+details+[data-slot=button],.la-sheet .la-request-details+[data-slot=button]{margin-top:20px}@keyframes socket-pulse{to{background:var(--socket-open)}}@media (width<=1150px){.overview-metrics{grid-template-columns:1fr 1fr}.overview-metric:last-child{grid-column:1/-1;min-height:130px}.overview-heading{align-items:flex-start}.socket-metrics{grid-template-columns:1fr 1fr}.socket-metrics .overview-metric:last-child{grid-column:auto}}@media (width<=760px){.console-shell{grid-template-columns:1fr}.console-sidebar{border-right:0;border-bottom:1px solid var(--border);padding:16px 16px 0}.console-brand{padding:0 4px 16px}.console-brand strong{font-size:22px}.console-sidebar nav{flex-direction:row;gap:4px;padding-bottom:12px;overflow-x:auto}.console-sidebar nav button{flex-shrink:0;width:auto;min-height:44px;padding:8px 10px}.console-sidebar-foot{display:none}.console-topbar{height:52px;padding:0 20px}.console-workspace>main{padding:26px 20px 40px}.overview h1{font-size:25px}.overview-metrics{grid-template-columns:1fr}.overview-metric:last-child{grid-column:auto}.overview-controls{width:100%}.overview-updated{flex-basis:100%}.overview-filterbar,.socket-filterbar{flex-wrap:wrap;gap:10px}.socket-metrics{grid-template-columns:1fr}.socket-timeline-axis,.socket-timeline-row{grid-template-columns:120px minmax(0,1fr);gap:10px}.socket-timeline-grid{inset-inline-start:130px}.socket-timeline-more{padding-left:130px}.overview-search{width:100%}.overview select,.overview input,.overview-controls>button:not(.overview-range),.console-shell .theme-toggle,.overview-class-link,.overview-thresholds summary{min-height:44px}.overview-class-link{min-width:140px}.overview-thresholds>div{top:46px}.overview-table th,.overview-table td{padding-left:12px;padding-right:12px}}@media (prefers-reduced-motion:reduce){.console-shell *,.la-observer *,.la-sheet *,.socket-timeline *{transition:none!important;animation:none!important}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@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-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}
|
|
2
|
+
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--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-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--la-font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--la-color-white:#fff;--la-spacing:.25rem;--la-text-xs:.75rem;--la-text-xs--line-height:calc(1 / .75);--la-text-sm:.875rem;--la-text-sm--line-height:calc(1.25 / .875);--la-font-weight-normal:400;--la-font-weight-medium:500;--la-font-weight-semibold:600;--la-tracking-widest:.1em;--la-ease-out:cubic-bezier(0, 0, .2, 1);--la-default-transition-duration:.15s;--la-default-transition-timing-function:cubic-bezier(.4, 0, .2, 1)}}@layer base{.la-observer *,.la-observer :before,.la-observer :after,[data-slot=popover-content] *,[data-slot=popover-content] :before,[data-slot=popover-content] :after{box-sizing:border-box;border:0 solid var(--border)}.la-observer button,.la-observer input,.la-observer select,[data-slot=popover-content] button,[data-slot=popover-content] input{font-family:inherit}.la-observer button,.la-observer select,[data-slot=popover-content] button{cursor:pointer;touch-action:manipulation}}@layer components;@layer utilities{.la\:pointer-events-none{pointer-events:none}.la\:invisible{visibility:hidden}.la\:sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.la\:absolute{position:absolute}.la\:relative{position:relative}.la\:inset-0{inset:0}.la\:inset-x-0{inset-inline:0}.la\:top-0{top:0}.la\:top-1\/2{top:50%}.la\:top-full{top:100%}.la\:right-0{right:0}.la\:right-3\.5{right:calc(var(--la-spacing) * 3.5)}.la\:left-0{left:0}.la\:z-20{z-index:20}.la\:z-50{z-index:50}.la\:-mx-1{margin-inline:calc(var(--la-spacing) * -1)}.la\:mt-1\.5{margin-top:calc(var(--la-spacing) * 1.5)}.la\:mt-2{margin-top:calc(var(--la-spacing) * 2)}.la\:mt-4{margin-top:calc(var(--la-spacing) * 4)}.la\:ml-auto{margin-left:auto}.la\:flex{display:flex}.la\:grid{display:grid}.la\:inline-flex{display:inline-flex}.la\:aspect-square{aspect-ratio:1}.la\:size-\(--cell-size\){width:var(--cell-size);height:var(--cell-size)}.la\:size-4{width:calc(var(--la-spacing) * 4);height:calc(var(--la-spacing) * 4)}.la\:size-8{width:calc(var(--la-spacing) * 8);height:calc(var(--la-spacing) * 8)}.la\:size-9{width:calc(var(--la-spacing) * 9);height:calc(var(--la-spacing) * 9)}.la\:size-10{width:calc(var(--la-spacing) * 10);height:calc(var(--la-spacing) * 10)}.la\:size-auto{width:auto;height:auto}.la\:h-\(--cell-size\){height:var(--cell-size)}.la\:h-8{height:calc(var(--la-spacing) * 8)}.la\:h-9{height:calc(var(--la-spacing) * 9)}.la\:h-10{height:calc(var(--la-spacing) * 10)}.la\:h-full{height:100%}.la\:h-px{height:1px}.la\:max-h-\[300px\]{max-height:300px}.la\:w-\(--cell-size\){width:var(--cell-size)}.la\:w-24{width:calc(var(--la-spacing) * 24)}.la\:w-72{width:calc(var(--la-spacing) * 72)}.la\:w-\[22rem\]{width:22rem}.la\:w-auto{width:auto}.la\:w-fit{width:fit-content}.la\:w-full{width:100%}.la\:min-w-\(--cell-size\){min-width:var(--cell-size)}.la\:min-w-0{min-width:0}.la\:flex-1{flex:1}.la\:shrink-0{flex-shrink:0}.la\:caption-bottom{caption-side:bottom}.la\:border-collapse{border-collapse:collapse}.la\:origin-\(--radix-popover-content-transform-origin\){transform-origin:var(--radix-popover-content-transform-origin)}.la\:-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.la\:cursor-default{cursor:default}.la\:scroll-py-1{scroll-padding-block:var(--la-spacing)}.la\:appearance-none{appearance:none}.la\:flex-col{flex-direction:column}.la\:items-center{align-items:center}.la\:items-end{align-items:flex-end}.la\:justify-between{justify-content:space-between}.la\:justify-center{justify-content:center}.la\:justify-start{justify-content:flex-start}.la\:gap-0\.5{gap:calc(var(--la-spacing) * .5)}.la\:gap-1{gap:var(--la-spacing)}.la\:gap-1\.5{gap:calc(var(--la-spacing) * 1.5)}.la\:gap-2{gap:calc(var(--la-spacing) * 2)}.la\:gap-4{gap:calc(var(--la-spacing) * 4)}.la\:truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.la\:overflow-hidden{overflow:hidden}.la\:overflow-visible{overflow:visible}.la\:overflow-x-auto{overflow-x:auto}.la\:overflow-x-hidden{overflow-x:hidden}.la\:overflow-y-auto{overflow-y:auto}.la\:rounded-md{border-radius:calc(var(--radius) - 2px)}.la\:rounded-none{border-radius:0}.la\:rounded-sm{border-radius:calc(var(--radius) - 4px)}.la\:rounded-l-md{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.la\:rounded-r-md{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.la\:border{border-style:var(--tw-border-style);border-width:1px}.la\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.la\:border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.la\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.la\:border-border{border-color:var(--border)}.la\:border-input{border-color:var(--input)}.la\:border-transparent{border-color:#0000}.la\:bg-\[Canvas\]{background-color:canvas}.la\:bg-accent{background-color:var(--accent)}.la\:bg-background{background-color:var(--background)}.la\:bg-border{background-color:var(--border)}.la\:bg-card{background-color:var(--card)}.la\:bg-destructive{background-color:var(--destructive)}.la\:bg-muted,.la\:bg-muted\/50{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.la\:bg-muted\/50{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.la\:bg-popover{background-color:var(--popover)}.la\:bg-primary{background-color:var(--primary)}.la\:bg-secondary{background-color:var(--secondary)}.la\:bg-transparent{background-color:#0000}.la\:p-0{padding:0}.la\:p-1{padding:var(--la-spacing)}.la\:p-2{padding:calc(var(--la-spacing) * 2)}.la\:p-3{padding:calc(var(--la-spacing) * 3)}.la\:p-4{padding:calc(var(--la-spacing) * 4)}.la\:px-\(--cell-size\){padding-inline:var(--cell-size)}.la\:px-2{padding-inline:calc(var(--la-spacing) * 2)}.la\:px-3{padding-inline:calc(var(--la-spacing) * 3)}.la\:px-4{padding-inline:calc(var(--la-spacing) * 4)}.la\:px-5{padding-inline:calc(var(--la-spacing) * 5)}.la\:py-0\.5{padding-block:calc(var(--la-spacing) * .5)}.la\:py-1{padding-block:var(--la-spacing)}.la\:py-1\.5{padding-block:calc(var(--la-spacing) * 1.5)}.la\:py-2{padding-block:calc(var(--la-spacing) * 2)}.la\:py-2\.5{padding-block:calc(var(--la-spacing) * 2.5)}.la\:py-3{padding-block:calc(var(--la-spacing) * 3)}.la\:py-6{padding-block:calc(var(--la-spacing) * 6)}.la\:pr-1{padding-right:var(--la-spacing)}.la\:pr-9{padding-right:calc(var(--la-spacing) * 9)}.la\:pb-3{padding-bottom:calc(var(--la-spacing) * 3)}.la\:pl-2{padding-left:calc(var(--la-spacing) * 2)}.la\:text-center{text-align:center}.la\:text-left{text-align:left}.la\:align-middle{vertical-align:middle}.la\:font-mono{font-family:var(--la-font-mono)}.la\:text-sm{font-size:var(--la-text-sm);line-height:var(--tw-leading,var(--la-text-sm--line-height))}.la\:text-xs{font-size:var(--la-text-xs);line-height:var(--tw-leading,var(--la-text-xs--line-height))}.la\:text-\[0\.8rem\]{font-size:.8rem}.la\:leading-none{--tw-leading:1;line-height:1}.la\:font-medium{--tw-font-weight:var(--la-font-weight-medium);font-weight:var(--la-font-weight-medium)}.la\:font-normal{--tw-font-weight:var(--la-font-weight-normal);font-weight:var(--la-font-weight-normal)}.la\:tracking-widest{--tw-tracking:var(--la-tracking-widest);letter-spacing:var(--la-tracking-widest)}.la\:whitespace-nowrap{white-space:nowrap}.la\:text-\[CanvasText\]{color:canvastext}.la\:text-accent-foreground{color:var(--accent-foreground)}.la\:text-danger{color:var(--danger)}.la\:text-foreground{color:var(--foreground)}.la\:text-muted-foreground{color:var(--muted-foreground)}.la\:text-popover-foreground{color:var(--popover-foreground)}.la\:text-primary{color:var(--primary)}.la\:text-primary-foreground{color:var(--primary-foreground)}.la\:text-secondary-foreground{color:var(--secondary-foreground)}.la\:text-white{color:var(--la-color-white)}.la\:tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.la\:underline-offset-4{text-underline-offset:4px}.la\:opacity-0{opacity:0}.la\:opacity-50{opacity:.5}.la\:shadow-\[var\(--shadow-control\)\]{--tw-shadow:var(--shadow-control);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.la\:shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px 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)}.la\:shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.la\:outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.la\:outline-hidden{outline-offset:2px;outline:2px solid #0000}}.la\:transition-\[background-color\,border-color\,color\,box-shadow\,transform\]{transition-property:background-color,border-color,color,box-shadow,transform;transition-timing-function:var(--tw-ease,var(--la-default-transition-timing-function));transition-duration:var(--tw-duration,var(--la-default-transition-duration))}.la\:transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--la-default-transition-timing-function));transition-duration:var(--tw-duration,var(--la-default-transition-duration))}.la\:transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--la-default-transition-timing-function));transition-duration:var(--tw-duration,var(--la-default-transition-duration))}.la\:duration-150{--tw-duration:.15s;transition-duration:.15s}.la\:ease-out{--tw-ease:var(--la-ease-out);transition-timing-function:var(--la-ease-out)}.la\:outline-none{--tw-outline-style:none;outline-style:none}.la\:select-none{-webkit-user-select:none;user-select:none}.la\:\[--cell-size\:--spacing\(8\)\]{--cell-size:calc(var(--la-spacing) * 8)}.la\:group-data-\[focused\=true\]\/day\:relative:is(:where(.la\:group\/day)[data-focused=true] *){position:relative}.la\:group-data-\[focused\=true\]\/day\:z-10:is(:where(.la\:group\/day)[data-focused=true] *){z-index:10}.la\:group-data-\[focused\=true\]\/day\:border-ring:is(:where(.la\:group\/day)[data-focused=true] *){border-color:var(--ring)}.la\:group-data-\[focused\=true\]\/day\:ring-\[3px\]:is(:where(.la\:group\/day)[data-focused=true] *){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.la\:group-data-\[focused\=true\]\/day\:ring-ring\/50:is(:where(.la\:group\/day)[data-focused=true] *){--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.la\:group-data-\[focused\=true\]\/day\:ring-ring\/50:is(:where(.la\:group\/day)[data-focused=true] *){--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.la\:selection\:bg-primary ::selection{background-color:var(--primary)}.la\:selection\:bg-primary::selection{background-color:var(--primary)}.la\:selection\:text-primary-foreground ::selection{color:var(--primary-foreground)}.la\:selection\:text-primary-foreground::selection{color:var(--primary-foreground)}.la\:placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}@media (hover:hover){.la\:hover\:border-foreground\/20:hover{border-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.la\:hover\:border-foreground\/20:hover{border-color:color-mix(in oklab, var(--foreground) 20%, transparent)}}.la\:hover\:bg-accent:hover{background-color:var(--accent)}.la\:hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.la\:hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab, var(--destructive) 90%, transparent)}}.la\:hover\:bg-muted\/60:hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.la\:hover\:bg-muted\/60:hover{background-color:color-mix(in oklab, var(--muted) 60%, transparent)}}.la\:hover\:bg-primary\/88:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.la\:hover\:bg-primary\/88:hover{background-color:color-mix(in oklab, var(--primary) 88%, transparent)}}.la\:hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.la\:hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab, var(--secondary) 80%, transparent)}}.la\:hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.la\:hover\:underline:hover{text-decoration-line:underline}}.la\:focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.la\:focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.la\:focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.la\:focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.la\:focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.la\:focus-visible\:ring-ring:focus-visible,.la\:focus-visible\:ring-ring\/20:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.la\:focus-visible\:ring-ring\/20:focus-visible{--tw-ring-color:color-mix(in oklab, var(--ring) 20%, transparent)}}.la\:focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.la\:focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.la\:focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.la\:focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color:var(--background)}.la\:active\:translate-y-px:active{--tw-translate-y:1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.la\:disabled\:pointer-events-none:disabled{pointer-events:none}.la\:disabled\:translate-y-0:disabled{--tw-translate-y:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.la\:disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.la\:disabled\:opacity-45:disabled{opacity:.45}.la\:disabled\:opacity-50:disabled{opacity:.5}.la\:has-focus\:border-ring:has(:focus){border-color:var(--ring)}.la\:has-focus\:ring-\[3px\]:has(:focus){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.la\:has-focus\:ring-ring\/50:has(:focus){--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.la\:has-focus\:ring-ring\/50:has(:focus){--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.la\:has-\[select\:disabled\]\:opacity-50:has(:is(select:disabled)){opacity:.5}.la\:has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--la-spacing) * 2.5)}.la\:has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--la-spacing) * 3)}.la\:has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--la-spacing) * 4)}.la\:aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.la\:aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.la\:aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.la\:aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.la\:aria-invalid\:ring-destructive\/25[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.la\:aria-invalid\:ring-destructive\/25[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 25%, transparent)}}.la\:aria-pressed\:font-semibold[aria-pressed=true]{--tw-font-weight:var(--la-font-weight-semibold);font-weight:var(--la-font-weight-semibold)}.la\:aria-selected\:text-muted-foreground[aria-selected=true]{color:var(--muted-foreground)}.la\:data-\[disabled\=true\]\:pointer-events-none[data-disabled=true]{pointer-events:none}.la\:data-\[disabled\=true\]\:opacity-50[data-disabled=true]{opacity:.5}.la\:data-\[range-end\=true\]\:rounded-md[data-range-end=true]{border-radius:calc(var(--radius) - 2px)}.la\:data-\[range-end\=true\]\:rounded-r-md[data-range-end=true]{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.la\:data-\[range-end\=true\]\:bg-primary[data-range-end=true]{background-color:var(--primary)}.la\:data-\[range-end\=true\]\:text-primary-foreground[data-range-end=true]{color:var(--primary-foreground)}.la\:data-\[range-middle\=true\]\:rounded-none[data-range-middle=true]{border-radius:0}.la\:data-\[range-middle\=true\]\:bg-accent[data-range-middle=true]{background-color:var(--accent)}.la\:data-\[range-middle\=true\]\:text-accent-foreground[data-range-middle=true]{color:var(--accent-foreground)}.la\:data-\[range-start\=true\]\:rounded-md[data-range-start=true]{border-radius:calc(var(--radius) - 2px)}.la\:data-\[range-start\=true\]\:rounded-l-md[data-range-start=true]{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.la\:data-\[range-start\=true\]\:bg-primary[data-range-start=true]{background-color:var(--primary)}.la\:data-\[range-start\=true\]\:text-primary-foreground[data-range-start=true]{color:var(--primary-foreground)}.la\:data-\[selected-single\=true\]\:bg-primary[data-selected-single=true]{background-color:var(--primary)}.la\:data-\[selected-single\=true\]\:text-primary-foreground[data-selected-single=true]{color:var(--primary-foreground)}.la\:data-\[selected\=true\]\:rounded-none[data-selected=true]{border-radius:0}.la\:data-\[selected\=true\]\:bg-accent[data-selected=true]{background-color:var(--accent)}.la\:data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:var(--accent-foreground)}.la\:data-\[size\=sm\]\:h-8[data-size=sm]{height:calc(var(--la-spacing) * 8)}.la\:data-\[size\=sm\]\:py-1[data-size=sm]{padding-block:var(--la-spacing)}.la\:data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:var(--muted)}@media not all and (width>=48rem){.la\:max-md\:size-11{width:calc(var(--la-spacing) * 11);height:calc(var(--la-spacing) * 11)}.la\:max-md\:min-h-11{min-height:calc(var(--la-spacing) * 11)}}@media (width>=48rem){.la\:md\:flex-row{flex-direction:row}}.la\:dark\:bg-card:is(.dark *){background-color:var(--card)}.la\:dark\:bg-destructive\/60:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.la\:dark\:bg-destructive\/60:is(.dark *){background-color:color-mix(in oklab, var(--destructive) 60%, transparent)}}.la\:dark\:bg-input\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.la\:dark\:bg-input\/30:is(.dark *){background-color:color-mix(in oklab, var(--input) 30%, transparent)}}@media (hover:hover){.la\:dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.la\:dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:color-mix(in oklab, var(--accent) 50%, transparent)}}.la\:dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.la\:dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:color-mix(in oklab, var(--input) 50%, transparent)}}.la\:dark\:hover\:text-accent-foreground:is(.dark *):hover{color:var(--accent-foreground)}}.la\:dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.la\:dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.la\:dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.la\:dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.la\:\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-inline:calc(var(--la-spacing) * 2)}.la\:\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-block:calc(var(--la-spacing) * 1.5)}.la\:\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:var(--la-text-xs);line-height:var(--tw-leading,var(--la-text-xs--line-height))}.la\:\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{--tw-font-weight:var(--la-font-weight-medium);font-weight:var(--la-font-weight-medium)}.la\:\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:var(--muted-foreground)}.la\:\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.la\:\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.la\:\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--la-spacing) * 4);height:calc(var(--la-spacing) * 4)}.la\:\[\&_svg\:not\(\[class\*\=\'text-\'\]\)\]\:text-muted-foreground svg:not([class*=text-]){color:var(--muted-foreground)}.la\:\[\&_tr\]\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.la\:\[\&_tr\:last-child\]\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}.la\:\[\&\:first-child\[data-selected\=true\]_button\]\:rounded-l-md:first-child[data-selected=true] button{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.la\:\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.la\:\[\&\:last-child\[data-selected\=true\]_button\]\:rounded-r-md:last-child[data-selected=true] button{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.la\:\[\&\:nth-child\(2\)\[data-selected\=true\]_button\]\:rounded-l-md:nth-child(2)[data-selected=true] button{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.la\:\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y:2px;translate:var(--tw-translate-x) var(--tw-translate-y)}.la\:\[\&\>span\]\:text-xs>span{font-size:var(--la-text-xs);line-height:var(--tw-leading,var(--la-text-xs--line-height))}.la\:\[\&\>span\]\:opacity-70>span{opacity:.7}.la\:\[\&\>svg\]\:size-3\.5>svg{width:calc(var(--la-spacing) * 3.5);height:calc(var(--la-spacing) * 3.5)}.la\:\[\&\>svg\]\:text-muted-foreground>svg{color:var(--muted-foreground)}.la\:\[\&\>tr\]\:last\:border-b-0>tr:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}[data-slot=card-content] .la\:\[\[data-slot\=card-content\]_\&\]\:bg-transparent,[data-slot=popover-content] .la\:\[\[data-slot\=popover-content\]_\&\]\:bg-transparent{background-color:#0000}}.la-observer{color:var(--foreground);-webkit-font-smoothing:antialiased;font-family:inherit;font-size:14px}.la-observer h1,.la-observer h2,.la-observer h3,.la-observer p{margin:0}.la-observer h1{letter-spacing:-.035em;font-size:1.75rem;font-weight:600;line-height:1.3}.la-observer h2,.la-observer h3{overflow-wrap:anywhere;flex-wrap:wrap;align-items:center;gap:8px;font-size:.875rem;font-weight:600;line-height:1.5;display:flex}.la-observer p{color:var(--muted-foreground);max-width:70ch;font-size:.8125rem;line-height:1.6}.la-observer-toolbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:28px;display:flex}.la-observer-toolbar>div{min-width:0}.la-observer-actions{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;gap:8px;display:flex}.la-observer-toolbar p{margin-top:8px}.la-observer-title{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.la-observer-title [data-slot=badge]{white-space:normal;overflow-wrap:anywhere;max-width:100%}.la-observer-summary{border:1px solid var(--border);background:var(--card);border-radius:8px;margin:0 0 32px;display:flex}.la-observer-summary>div{flex:1;min-width:0;padding:20px 24px}.la-observer-summary>div+div{border-left:1px solid var(--border)}.la-observer-summary dt{color:var(--muted-foreground);align-items:center;gap:7px;font-size:.75rem;display:flex}.la-observer-summary dd{letter-spacing:-.03em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:10px 0 4px;font-size:1.625rem;font-weight:600;line-height:1.2}.la-observer-summary p{font-size:.75rem}.la-observer-summary-compact{margin:16px 0 0}.la-observer-summary-compact>div{padding:14px 18px}.la-observer-summary-compact dd{font-size:1.25rem}.la-observer-queue-wait-detail{margin-top:28px}.la-observer-queue-wait-detail>p{margin-top:6px}.la-observer-table th.la-observer-wait-cell,.la-observer-table td.la-observer-wait-cell,.la-observer-instance-table th.la-observer-wait-cell,.la-observer-instance-table td.la-observer-wait-cell{text-align:right;width:150px}.la-observer-wait{font-variant-numeric:tabular-nums;flex-direction:column;align-items:flex-end;gap:2px;display:inline-flex}.la-observer-wait small{color:var(--muted-foreground);font-size:.6875rem}.la-observer-dot{background:var(--muted-foreground);border-radius:50%;flex:none;width:6px;height:6px;display:inline-block}.la-observer-dot-live{background:var(--success)}.la-observer-dot-unknown{background:var(--warning)}.la-observer-list-toolbar,.la-observer-filters{justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;display:flex}.la-observer-search{width:260px;max-width:100%;position:relative}.la-observer-search>svg{width:15px;height:15px;color:var(--muted-foreground);pointer-events:none;position:absolute;top:50%;left:11px;transform:translateY(-50%)}.la-observer-search input{caret-color:var(--foreground);padding-left:34px}.la-observer-lookup{border:1px solid var(--input);width:360px;max-width:100%}.la-observer-lookup [data-slot=command-input-wrapper]{border-bottom:0}.la-observer-table-frame{border:1px solid var(--border);background:var(--card);border-radius:8px;overflow:hidden}.la-observer table{border-collapse:collapse}.la-observer thead{background:var(--muted)}.la-observer th{height:40px}.la-observer th,.la-observer td{padding-left:20px;padding-right:20px}.la-observer td{height:60px}.la-observer-table th:not(:first-child),.la-observer-table td:not(:first-child){text-align:right;width:100px}.la-observer-table td:last-child{font-weight:600}.la-observer td:first-child{white-space:normal;overflow-wrap:anywhere}.la-observer-name{min-width:160px}.la-observer .la-observer-actor-button{text-align:left;white-space:normal;max-width:100%;height:auto;min-height:36px;color:var(--foreground);background:0 0;justify-content:flex-start;gap:10px;margin:-6px -8px;padding:6px 8px;font-size:.8125rem;font-weight:500;line-height:1.5;display:inline-flex}.la-observer-actor-button>span{overflow-wrap:anywhere;min-width:0}.la-observer-type-icon{color:var(--muted-foreground)}.la-observer-live,.la-observer-status-live{color:var(--success)}.la-observer-status-unknown{color:var(--warning)}.la-observer-breadcrumb{color:var(--muted-foreground);align-items:center;gap:8px;margin-bottom:16px;font-size:.8125rem;display:flex}.la-observer-breadcrumb button{height:auto;min-height:44px;color:var(--muted-foreground);background:0 0;padding:0}.la-observer-breadcrumb svg{flex:none;width:14px;height:14px}.la-observer-breadcrumb span,.la-observer-title h1{overflow-wrap:anywhere;min-width:0}.la-observer-class-button:hover>span{text-underline-offset:3px;text-decoration:underline}.la-observer-title h1:focus-visible{outline:2px solid var(--ring);outline-offset:4px}.la-observer-instances-heading{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.la-observer-instances-heading p{margin-top:4px;font-size:.75rem}.la-observer-filters{justify-content:flex-start;gap:8px}.la-observer-select{border:1px solid var(--input);background:var(--card);height:36px;color:var(--foreground);border-radius:6px;padding:0 32px 0 12px;font-size:.8125rem}.la-observer-select:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.la-observer-instance-table th:not(:first-child),.la-observer-instance-table td:not(:first-child){text-align:right;width:132px}.la-observer-instance-id,.la-observer-socket-id{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem}.la-observer-instance-id .la-observer-actor-button{font-family:inherit;font-size:inherit}.la-observer-instance-table td{height:56px}.la-observer .la-observer-connection-note{margin-top:10px;font-size:.75rem}.la-observer .la-observer-unknown{align-items:flex-start;gap:8px;margin-top:12px;font-size:.75rem;display:flex}.la-observer-unknown svg{flex:none;width:14px;height:14px;margin-top:3px}.la-observer-connections{margin-top:24px}.la-observer-connection-table th:first-child,.la-observer-connection-table td:first-child{width:30%}.la-observer-connection-table pre{background:var(--muted);max-width:100%;max-height:240px;color:var(--foreground);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:4px;margin:0;padding:12px;font:.75rem/1.7 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:auto}.la-observer .la-observer-instance-empty{border:1px dashed var(--border);border-radius:8px;padding:28px 20px}.la-observer-no-connections{border:1px dashed var(--border);border-radius:8px;align-items:center;gap:12px;padding:24px 20px;display:flex}.la-observer-no-connections svg{width:18px;height:18px;color:var(--muted-foreground)}.la-observer-footnote{color:var(--muted-foreground);flex-wrap:wrap;justify-content:space-between;gap:8px 20px;margin-top:20px;font-size:.75rem;line-height:1.5;display:flex}.la-observer-refresh-status{align-items:center;gap:7px;display:inline-flex}.la-observer-error{border:1px solid var(--danger);align-items:flex-start;gap:10px;margin-bottom:20px;padding:14px 16px;display:flex}@supports (color:color-mix(in lab, red, red)){.la-observer-error{border:1px solid color-mix(in srgb, var(--danger) 35%, var(--border))}}.la-observer-error{background:var(--danger);border-radius:8px}@supports (color:color-mix(in lab, red, red)){.la-observer-error{background:color-mix(in srgb, var(--danger) 5%, var(--card))}}.la-observer-error{color:var(--danger)}.la-observer-error svg{flex:none;width:16px;height:16px;margin-top:2px}.la-observer-error p{color:inherit}.la-observer-empty{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:48px 24px;display:flex}.la-observer-empty>svg{width:24px;height:24px;color:var(--muted-foreground);margin-bottom:4px}.la-observer-empty button{margin-top:8px}.la-observer-skeleton{gap:14px;display:grid}.la-observer-skeleton>div{background:var(--muted);border-radius:8px;height:60px;animation:1.5s ease-in-out infinite alternate la-pulse}.la-observer-skeleton>div:first-of-type{height:124px;margin-bottom:18px}.la-observer-spin{animation:1s linear infinite la-spin}@keyframes la-spin{to{transform:rotate(360deg)}}@keyframes la-pulse{to{opacity:.5}}@media (width<=640px){.la-observer-toolbar{align-items:flex-start}.la-observer h1{font-size:1.5rem}.la-observer-toolbar p{max-width:26ch}.la-observer-summary{flex-wrap:wrap}.la-observer-summary>div{flex-basis:33%;padding:16px}.la-observer-summary:has(>div:nth-child(4))>div{flex-basis:50%}.la-observer-summary:has(>div:nth-child(4))>div:nth-child(3){border-left:0}.la-observer-summary>div:nth-child(n+3):not(:last-child),.la-observer-summary>div:nth-child(4){border-top:1px solid var(--border)}.la-observer-summary p{font-size:.6875rem}.la-observer-list-toolbar{flex-direction:column;align-items:stretch;gap:12px}.la-observer-search{width:100%}.la-observer-filters .la-observer-search{flex:1;min-width:0}.la-observer-select{max-width:44%;height:44px}.la-observer th,.la-observer td{padding-left:12px;padding-right:12px}.la-observer-name{min-width:240px}.la-observer-table th:not(:first-child),.la-observer-table td:not(:first-child){min-width:68px}.la-observer-instance-table{min-width:360px}.la-observer .la-observer-actor-button{min-height:44px}}@media (prefers-reduced-motion:reduce){.la-observer *,.la-observer :before,.la-observer :after{transition:none!important;animation:none!important}}.la-request-actions{align-items:center;gap:12px;display:flex}.la-clickable-row{cursor:pointer}.la-clickable-row:hover,.la-clickable-row:focus-within{background:var(--accent)}.la-clickable-row:hover .la-observer-actor-button,.la-clickable-row:focus-within .la-observer-actor-button{text-underline-offset:3px;text-decoration:underline}.la-request-table{table-layout:fixed;min-width:980px}.la-request-table th{padding-inline:12px}.la-request-table th:first-child,.la-request-table th:nth-child(2){width:166px}.la-request-table th:nth-child(3){width:180px}.la-request-table th:nth-child(4){width:100px}.la-request-table th:nth-child(5){width:108px}.la-request-table th:nth-child(6),.la-request-table th:nth-child(7){width:90px}.la-request-table th:nth-child(8){width:80px}.la-requests .la-request-table td{white-space:nowrap;height:56px;padding:4px 12px;line-height:20px}.la-request-table th:nth-child(6),.la-request-table th:nth-child(7),.la-request-table td:nth-child(6),.la-request-table td:nth-child(7){text-align:right;font-variant-numeric:tabular-nums}.la-request-table time{font-variant-numeric:tabular-nums;color:var(--muted-foreground);font-size:12px}.la-request-operation,.la-request-actor{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.la-request-operation{font-weight:500}.la-request-actor{color:var(--muted-foreground);font-size:12px}.la-observer-instance-heading{align-items:center;gap:12px;margin:12px 0 28px;display:flex}.la-observer-instance-heading h2{font-size:1.25rem}.la-observer-instance-detail h2:focus-visible,.la-observer-instances h2:focus-visible{outline:2px solid var(--ring);outline-offset:4px}.la-observer-instance-detail>section+section{margin-top:28px}.la-observer-instance-detail>[data-slot=button]{padding-left:0}.la-sheet-overlay{z-index:50;background:#00000059;position:fixed;inset:0}.la-sheet{z-index:51;background:var(--card);width:min(480px,100%);color:var(--foreground);border-left:1px solid var(--border);padding:28px 24px;position:fixed;inset:0 0 0 auto;overflow-y:auto}.la-sheet>h2{padding-right:44px;font-size:18px}.la-sheet>p{margin-top:8px;padding-right:32px}.la-sheet-close{position:absolute;top:16px;right:16px}.la-request-outcome-completed{color:var(--success)}.la-request-outcome-failed,.la-request-outcome-rejected{color:var(--danger)}.la-request-outcome-interrupted,.la-request-outcome-rerouted{color:var(--warning)}.la-request-empty{text-align:center;padding:48px 24px}.la-request-empty p,.la-request-note{color:var(--muted-foreground);font-size:12px;line-height:1.6}.la-request-empty p{margin:8px auto 16px}.la-request-details{text-align:left;gap:12px;padding:8px 0;display:grid}.la-request-details div{grid-template-columns:100px minmax(0,1fr);gap:12px;display:grid}.la-request-details dt{color:var(--muted-foreground);font-size:12px}.la-request-details dd{overflow-wrap:anywhere;margin:0;font:12px/1.6 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}@media (width<=640px){.la-request-actions{flex-shrink:0}.la-requests .la-observer-toolbar{flex-wrap:wrap}}.la-request-history-filters{flex-wrap:wrap;align-items:end;gap:12px;margin-bottom:16px;display:flex}.la-request-history-field{flex:180px;gap:6px;min-width:0;display:grid}.la-request-history-field label{color:var(--muted-foreground);font-size:13px}.la-request-history-filters select{width:100%;max-width:none}.la-request-history-range{color:var(--muted-foreground);gap:6px;font-size:13px;display:grid}.la-request-history-range [data-slot=button]{height:36px}.la-request-load-older{margin-top:12px}.la-observer-instance-table th.la-observer-waiting-cell,.la-observer-instance-table td.la-observer-waiting-cell{text-align:left;width:420px;min-width:420px}.la-observer-queue{flex-wrap:wrap;align-items:center;gap:6px;margin:12px 0 0;padding:0;list-style:none;display:flex}.la-observer-queue-compact{flex-wrap:nowrap;margin:0}.la-observer-queue-bubble{max-width:280px;color:var(--foreground);background:var(--muted);border-radius:999px}.la-observer-queue-compact .la-observer-queue-bubble{max-width:110px}.la-observer-queue-operation{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.la-observer-queue-position,.la-observer-queue-empty{color:var(--muted-foreground);font-variant-numeric:tabular-nums}.la-observer-waiting>p{margin-top:6px}.console-shell{grid-template-columns:204px minmax(0,1fr);min-height:100dvh;display:grid}.console-sidebar{background:var(--console-sidebar,var(--muted));border-right:1px solid var(--border);flex-direction:column;min-width:0;padding:29px 16px 20px;display:flex}.console-brand{align-items:center;gap:14px;padding:3px 12px 33px;display:flex}.console-brand svg{width:19px;height:25px;color:var(--muted-foreground);stroke-width:1.5px}.console-brand strong{letter-spacing:-.02em;font-size:25px;font-weight:600}.console-sidebar nav{flex-direction:column;gap:4px;display:flex}.console-sidebar nav button{text-align:left;width:100%;min-height:39px;color:var(--muted-foreground);background:0 0;border:0;border-radius:5px;align-items:center;gap:11px;padding:8px 12px;font-size:13px;display:flex}.console-sidebar nav button:hover{background:var(--accent);color:var(--foreground)}.console-sidebar nav button[aria-current]{background:var(--console-selected,var(--accent));color:var(--foreground);font-weight:600}.console-sidebar-foot{border-top:1px solid var(--border);align-items:center;gap:10px;margin:auto 12px 0;padding-top:20px;font-size:12px;display:flex}.console-sidebar-foot svg{width:22px;color:var(--muted-foreground);stroke-width:1.3px}.console-sidebar-foot small{color:var(--muted-foreground);margin-top:4px;font-size:10px;display:block}.console-workspace{min-width:0}.console-topbar{border-bottom:1px solid var(--border);background:var(--card);justify-content:flex-end;align-items:center;gap:20px;height:64px;padding:0 32px;display:flex}.console-topbar a{color:var(--muted-foreground);border-left:1px solid var(--border);align-items:center;gap:8px;padding-left:20px;font-size:12px;text-decoration:none;display:flex}.console-topbar a:hover{color:var(--foreground);text-underline-offset:4px;text-decoration:underline}.console-shell .theme-toggle{width:36px;height:36px;color:var(--muted-foreground);background:0 0;border:0;border-radius:5px;place-items:center;display:grid}.console-shell .theme-toggle:hover{background:var(--accent);color:var(--foreground)}.console-workspace>main{outline:none;min-width:0;padding:29px 32px 48px}.console-shell .skip-link{z-index:10;background:var(--card);color:var(--foreground);padding:12px;position:fixed;top:-80px;left:16px}.console-shell .skip-link:focus{top:12px}.overview-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:25px;display:flex}.overview h1{letter-spacing:-.03em;font-size:29px;font-weight:550;line-height:1.2}.overview-controls{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.overview-updated{color:var(--muted-foreground);margin-right:8px;font-size:11px}.overview-updated time{color:var(--foreground);margin-left:5px}.overview select{border:1px solid var(--border);background:var(--card);min-height:33px;color:var(--foreground);border-radius:5px;padding:0 12px;font-size:11px}.overview-controls>button:not(.overview-range){width:33px;height:33px}.overview-metrics{grid-template-columns:.92fr 1.34fr 1fr;gap:14px;margin-bottom:28px;display:grid}.overview-metric{border:1px solid var(--border);background:var(--card);border-radius:7px;min-width:0;min-height:154px;padding:17px 19px}.overview-metric h2{font-size:12px;font-weight:500}.overview-value{flex-wrap:wrap;align-items:baseline;gap:10px;margin-top:10px;display:flex}.overview-value strong{letter-spacing:-.035em;font-variant-numeric:tabular-nums;font-size:33px;font-weight:450;line-height:1.2}.overview-value>span{color:var(--muted-foreground);font-size:11px}.overview-residency{background:var(--muted);border-radius:5px;gap:3px;height:5px;margin-top:18px;display:flex;overflow:hidden}.overview-residency span{flex-basis:0}.residency-live{background:var(--success)}.residency-dormant{background:#b5c59f}.residency-unknown{background:var(--warning)}.overview-metric-foot{color:var(--muted-foreground);flex-wrap:wrap;gap:17px;margin-top:12px;font-size:11px;display:flex}.overview-metric-foot b,.overview-health b{color:var(--foreground);font-weight:500}.overview-health{border-top:1px solid var(--border);color:var(--muted-foreground);flex-wrap:wrap;justify-content:space-between;gap:10px;margin-top:18px;padding-top:12px;font-size:11px;display:flex}.overview-section-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.overview-section-heading h2{font-size:15px;font-weight:550}.overview-section-heading h2>span{font:11px var(--console-mono,ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);color:var(--muted-foreground);margin-left:4px}.overview-panel{background:var(--card);border:1px solid var(--border);border-radius:7px;overflow:hidden}.overview-filterbar{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:12px 16px;display:flex}.overview-search{align-items:center;gap:8px;width:290px;min-width:0;display:flex}.overview-search>svg{width:14px;height:14px;color:var(--muted-foreground);flex-shrink:0}.overview-search input{box-shadow:none;background:0 0;border:0;height:28px;padding:0 3px;font-size:12px}.overview-filterbar>input{max-width:390px}.overview-table-scroll{overflow-x:auto}.overview-table{table-layout:fixed;border-collapse:collapse;text-align:right;font-variant-numeric:tabular-nums;width:100%;min-width:980px;font-size:12px}.overview-class-column{width:24%}.overview-table th,.overview-table td{border-bottom:1px solid var(--border);white-space:nowrap;padding:11px 12px}.overview-table th{background:var(--card)}@supports (color:color-mix(in lab, red, red)){.overview-table th{background:color-mix(in srgb, var(--card) 60%, var(--muted))}}.overview-table th{color:var(--muted-foreground);font-size:10px;font-weight:400}.overview-table th:first-child,.overview-table td:first-child{text-align:left}.overview-table th:nth-child(3),.overview-table td:nth-child(3),.overview-table th:nth-child(7),.overview-table td:nth-child(7){border-left:1px solid var(--border)}.overview-table .overview-groups th{text-align:left;font:9px var(--console-mono,ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);text-transform:uppercase;letter-spacing:.06em;border-bottom:0;padding:12px 12px 3px}.overview-table .overview-groups th+th{border-left:1px solid var(--border)}.overview-table .overview-groups+tr th{padding-top:6px}.overview-table tbody td{text-overflow:ellipsis;height:56px;font-family:var(--console-mono,ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);padding-top:5px;padding-bottom:5px;font-size:11px;overflow:hidden}.overview-table tbody tr:hover{background:var(--muted)}.overview-table tr:last-child td{border-bottom:0}.overview-class-link{width:100%;font:12px var(--console-mono,ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:24px;padding:3px 0;display:flex}.overview-class-link>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overview-class-link:hover{color:var(--success)}.overview-signal{border-radius:4px;justify-content:flex-end;align-items:center;gap:6px;padding:4px 7px;display:inline-flex}.signal-good{color:var(--success)}.signal-warn{color:var(--warning);background:var(--warning)}@supports (color:color-mix(in lab, red, red)){.signal-warn{background:color-mix(in srgb, var(--warning) 14%, var(--card))}}.signal-bad{color:var(--danger);background:var(--danger)}@supports (color:color-mix(in lab, red, red)){.signal-bad{background:color-mix(in srgb, var(--danger) 10%, var(--card))}}.overview-thresholds{color:var(--muted-foreground);font-size:11px;position:relative}.overview-thresholds summary{align-items:center;gap:10px;padding:6px 0;list-style:none;display:flex}.overview-thresholds summary::-webkit-details-marker{display:none}.threshold-dots{gap:4px;display:flex}.threshold-dots i{background:var(--success);border-radius:50%;width:6px;height:6px;display:block}.threshold-dots i:nth-child(2){background:var(--warning)}.threshold-dots i:nth-child(3){background:var(--danger)}.overview-thresholds>div{z-index:2;background:var(--card);border:1px solid var(--border);border-radius:7px;width:min(320px,100vw - 40px);padding:18px;position:absolute;top:34px;right:0}.overview-thresholds p{margin-top:10px;font-size:12px}.overview-empty{text-align:center;padding:44px 20px}.overview-empty p{margin:8px auto 16px}.overview-data-scope{margin-top:17px}.overview-data-scope p{max-width:110ch;font-size:11px;line-height:1.7}.overview-alert{border:1px solid var(--border);border-radius:5px;padding:12px 16px;max-width:none!important;margin-bottom:16px!important}.overview-alert,.overview-data-scope [role=alert]{color:var(--warning)}.websockets,.socket-timeline{--socket-open:#187442;--socket-closed:#2a78d6;--socket-lost:#898781}.dark .websockets,.dark .socket-timeline{--socket-open:#2fa862;--socket-closed:#3987e5}.overview-heading>div>p{margin-top:6px;font-size:12px}.socket-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.socket-metrics .overview-metric{min-height:0}.socket-filterbar{align-items:center;gap:10px;margin-bottom:14px;display:flex}.socket-filterbar .la-combobox{width:380px}.socket-filterbar [data-slot=command-input-wrapper]{border:1px solid var(--border);background:var(--card);border-radius:5px;height:33px}.socket-filterbar [data-slot=command-input]{height:31px;font-size:12px}.overview-controls>.overview-range{height:33px;padding:0 12px;font-size:11px}.socket-timeline-panel{margin-bottom:14px;overflow:visible}.socket-panel-heading{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;display:flex}.socket-panel-heading h2{font-size:13px;font-weight:550}.socket-panel-heading h2>span{font:11px var(--console-mono,ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);color:var(--muted-foreground);margin-left:6px}.socket-legend{color:var(--muted-foreground);flex-wrap:wrap;gap:18px;margin:0;padding:0;font-size:11px;list-style:none;display:flex}.socket-legend li{align-items:center;gap:7px;display:inline-flex}.socket-swatch{background:var(--socket-closed);border-radius:3px;flex-shrink:0;width:10px;height:10px;display:inline-block}.socket-swatch-open{background:var(--socket-open)}.socket-swatch-lost{background:var(--socket-lost);background-image:repeating-linear-gradient(135deg, transparent 0 2px, var(--card) 2px 3px)}.socket-timeline{padding:0 18px 14px;font-size:11px;position:relative}.socket-timeline-axis,.socket-timeline-row{grid-template-columns:200px minmax(0,1fr);gap:16px;display:grid}.socket-timeline-axis{height:34px;color:var(--muted-foreground);font:10px var(--console-mono,ui-monospace, SFMono-Regular, Menlo, Consolas, monospace)}.socket-timeline-axis>div{border-bottom:1px solid var(--border);position:relative}.socket-timeline-axis>div>span{white-space:nowrap;position:absolute;bottom:8px;transform:translate(-50%)}.socket-timeline-axis .socket-timeline-now{color:var(--foreground);left:auto;right:0;transform:none}.socket-timeline-body{max-height:420px;position:relative;overflow:hidden auto}.socket-timeline-grid{pointer-events:none;position:absolute;inset:0 0 0 216px}.socket-timeline-grid i{background:var(--border);width:1px;position:absolute;top:0;bottom:0}.socket-timeline-row+.socket-timeline-row{border-top:1px solid var(--border)}@supports (color:color-mix(in lab, red, red)){.socket-timeline-row+.socket-timeline-row{border-top:1px solid color-mix(in srgb, var(--border) 60%, transparent)}}.socket-timeline-label{min-width:0;font-family:var(--console-mono,ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);color:var(--muted-foreground);flex-direction:column;justify-content:center;gap:2px;padding:6px 0;display:flex}.socket-timeline-label span,.socket-timeline-label strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.socket-timeline-label strong{color:var(--foreground);font-weight:500}.socket-timeline-lanes{border-right:1px solid var(--foreground);min-height:34px;position:relative}.socket-bar{background:var(--socket-closed);min-width:6px;height:12px;box-shadow:0 0 0 2px var(--card);cursor:pointer;border:0;border-radius:4px;padding:0;position:absolute}.socket-bar-open{background:var(--socket-open);border-start-end-radius:0;border-end-end-radius:0}.socket-bar-lost{background:var(--socket-lost);background-image:repeating-linear-gradient(135deg, transparent 0 3px, var(--card) 3px 4px)}.socket-bar-unknown-start{border-start-start-radius:0;border-end-start-radius:0;-webkit-mask-image:linear-gradient(90deg,#0000,#000 14px);mask-image:linear-gradient(90deg,#0000,#000 14px)}.socket-bar-open:after{content:"";background:var(--card);border:2px solid var(--socket-open);border-radius:50%;width:8px;height:8px;animation:1.6s ease-in-out infinite alternate socket-pulse;position:absolute;top:50%;right:2px;transform:translateY(-50%)}.socket-bar:hover,.socket-bar:focus-visible,.socket-bar[data-state=selected]{filter:brightness(1.15);outline:2px solid var(--ring);outline-offset:2px}.socket-timeline-more{padding:10px 0 4px 216px;font-size:11px}.socket-timeline-empty{padding:36px 20px}.socket-tooltip{z-index:3;background:var(--popover);width:340px;color:var(--popover-foreground);border:1px solid var(--border);pointer-events:none;border-radius:7px;padding:12px 14px;font-size:11px;position:absolute;transform:translate(-50%,calc(-100% - 10px));box-shadow:0 8px 24px #0000001f}.socket-tooltip-below{transform:translate(-50%,10px)}.socket-tooltip dl{grid-template-columns:auto minmax(0,1fr);gap:4px 14px;margin:0;display:grid}.socket-tooltip dt{color:var(--muted-foreground)}.socket-tooltip dd{text-align:right;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:0}.socket-tooltip .socket-tooltip-metadata{border-bottom:1px solid var(--border);margin:0 0 10px;padding-bottom:10px;display:block}.socket-tooltip-metadata>div{gap:1px;display:grid}.socket-tooltip-metadata>div+div{margin-top:6px}.socket-tooltip .socket-tooltip-metadata dt{text-transform:uppercase;letter-spacing:.06em;font-size:10px}.socket-tooltip .socket-tooltip-metadata dd{text-align:left;font:12px/1.45 var(--console-mono,ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-weight:600;display:-webkit-box;overflow:hidden}.socket-tooltip-metadata p{color:var(--muted-foreground);margin:6px 0 0;font-size:10px}.socket-table{text-align:left;min-width:1080px}.socket-table th{text-align:left}.socket-table th:first-child{width:9%}.socket-table th:nth-child(2){width:13%}.socket-table th:nth-child(5){width:9%}.socket-table th:nth-child(6){width:17%}.socket-table th:nth-child(7){width:8%}.socket-table th:nth-child(3),.socket-table td:nth-child(3),.socket-table th:nth-child(7),.socket-table td:nth-child(7){border-left:0}.socket-table tbody td{height:48px}.socket-status{align-items:center;gap:8px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:12px;display:inline-flex}.socket-status-lost{color:var(--muted-foreground)}.socket-connection{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}.la-clickable-row:hover .socket-connection{color:var(--socket-closed);text-underline-offset:3px;text-decoration:underline}.socket-duration{align-items:center;gap:12px;display:flex}.socket-duration>span{min-width:62px}.socket-duration-bar{background:var(--muted);border-radius:2px;flex:1;height:4px;display:block;overflow:hidden}.socket-duration-bar b{background:var(--socket-closed);border-radius:2px;height:100%;display:block}.socket-duration-open b{background:var(--socket-open)}.socket-duration-lost b{background:var(--socket-lost)}.socket-metadata{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font:inherit;color:var(--muted-foreground);display:block;overflow:hidden}.socket-metadata-details{margin-top:18px;font-size:12px}.socket-metadata-details summary{color:var(--muted-foreground)}.socket-metadata-details pre{border:1px solid var(--border);background:var(--muted);font:12px/1.6 var(--console-mono,ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:6px;max-height:240px;margin:10px 0 0;padding:12px;overflow:auto}.la-sheet .la-request-details+details+[data-slot=button],.la-sheet .la-request-details+[data-slot=button]{margin-top:20px}@keyframes socket-pulse{to{background:var(--socket-open)}}@media (width<=1150px){.overview-metrics{grid-template-columns:1fr 1fr}.overview-metric:last-child{grid-column:1/-1;min-height:130px}.overview-heading{align-items:flex-start}.socket-metrics{grid-template-columns:1fr 1fr}.socket-metrics .overview-metric:last-child{grid-column:auto}}@media (width<=760px){.console-shell{grid-template-columns:1fr}.console-sidebar{border-right:0;border-bottom:1px solid var(--border);padding:16px 16px 0}.console-brand{padding:0 4px 16px}.console-brand strong{font-size:22px}.console-sidebar nav{flex-direction:row;gap:4px;padding-bottom:12px;overflow-x:auto}.console-sidebar nav button{flex-shrink:0;width:auto;min-height:44px;padding:8px 10px}.console-sidebar-foot{display:none}.console-topbar{height:52px;padding:0 20px}.console-workspace>main{padding:26px 20px 40px}.overview h1{font-size:25px}.overview-metrics{grid-template-columns:1fr}.overview-metric:last-child{grid-column:auto}.overview-controls{width:100%}.overview-updated{flex-basis:100%}.overview-filterbar,.socket-filterbar{flex-wrap:wrap;gap:10px}.socket-metrics{grid-template-columns:1fr}.socket-timeline-axis,.socket-timeline-row{grid-template-columns:120px minmax(0,1fr);gap:10px}.socket-timeline-grid{inset-inline-start:130px}.socket-timeline-more{padding-left:130px}.overview-search{width:100%}.overview select,.overview input,.overview-controls>button:not(.overview-range),.console-shell .theme-toggle,.overview-class-link,.overview-thresholds summary{min-height:44px}.overview-class-link{min-width:140px}.overview-thresholds>div{top:46px}.overview-table th,.overview-table td{padding-left:12px;padding-right:12px}}@media (prefers-reduced-motion:reduce){.console-shell *,.la-observer *,.la-sheet *,.socket-timeline *{transition:none!important;animation:none!important}}.la-state{color:var(--foreground);margin:28px 0}.la-state-heading,.la-state-actions,.la-state-tabs,.la-state-compare-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.la-state-heading h3,.la-state h4{margin:0;font-weight:600}.la-state-heading p,.la-state-footnote,.la-state-comparison>p,.la-state-empty{color:var(--muted-foreground);font-size:13px;line-height:1.6}.la-state-heading p{margin:6px 0 0}.la-state-tabs{border-bottom:1px solid var(--border);justify-content:flex-start;margin-bottom:16px;padding:12px 0}.la-state-version{color:var(--muted-foreground);font-variant-numeric:tabular-nums;margin-left:auto;font-size:12px}.la-state-attribution{color:var(--muted-foreground);overflow-wrap:anywhere;flex-wrap:wrap;gap:8px 20px;margin:14px 0;font-size:12px;line-height:1.7;display:flex}.la-state-attribution strong{color:var(--foreground)}.la-state-attribution button{font:inherit;cursor:pointer;color:var(--foreground);text-underline-offset:3px;background:0 0;border:0;padding:0;font-family:monospace;text-decoration:underline}.la-state-attribution p{width:100%;margin:0}.la-state input{max-width:300px;margin:0 0 14px}.la-state .la-observer-table-frame{overflow:auto}.la-state td{vertical-align:top;overflow-wrap:anywhere;max-width:600px}.la-state table{min-width:480px}.la-state td:first-child{min-width:110px}.la-state-type{color:var(--muted-foreground);font-family:monospace;font-size:12px}.la-state-schema{color:var(--muted-foreground);margin-top:6px;display:block}.la-state-history{grid-template-columns:220px minmax(0,1fr);gap:24px;display:grid}.la-state-history aside{border-right:1px solid var(--border);padding-right:18px}.la-state-history ol{max-height:460px;margin:12px 0;padding:0;list-style:none;overflow:auto}.la-state-history li>button{text-align:left;width:100%;color:var(--foreground);border-radius:var(--radius);cursor:pointer;background:0 0;border:0;padding:12px;display:block}.la-state-history li>button:hover{background:var(--muted)}.la-state-history li>button[aria-pressed=true]{background:var(--accent)}.la-state-history li strong{justify-content:space-between;gap:8px;font-size:12px;display:flex}.la-state-history li strong span,.la-state-history li small{color:var(--muted-foreground);font-size:11px;font-weight:400}.la-state-history li small{margin-top:6px;display:block}.la-state-notice{color:var(--warning);font-size:12px}.la-state-empty{padding:20px}.la-state-footnote{margin:16px 0 0;font-size:11px}.la-state-comparison{min-width:0}.la-state-comparison>button{margin-bottom:12px}.la-state-json{font:12px/1.8 ui-monospace,monospace}.la-state-json-child{padding-left:18px}.la-state-json-children{margin:0;padding:0;list-style:none}.la-state-json-label{color:var(--foreground)}.la-state-json-null,.la-state-json-punctuation,.la-state-json-collapsed{color:var(--muted-foreground)}.la-state-json-string{color:var(--success)}.la-state-json-number,.la-state-json-boolean{color:var(--warning)}.la-state-json-expand,.la-state-json-collapse{cursor:pointer;width:16px;color:var(--muted-foreground);display:inline-block}.la-state-json-expand:after{content:"+"}.la-state-json-collapse:after{content:"−"}.la-state-diff{border:1px solid var(--border);border-radius:var(--radius);padding:16px;font:12px/1.8 ui-monospace,monospace;overflow:auto}.la-state-diff ul{margin:0;padding-left:22px;list-style:none}.la-state-diff>ul{padding-left:0}.la-state-diff pre{white-space:pre-wrap;overflow-wrap:anywhere;margin:0;display:inline}.la-state-diff .jsondiffpatch-property-name{margin-right:8px;display:inline-block}.la-state-diff .jsondiffpatch-property-name:after{content:":"}.la-state-diff .jsondiffpatch-unchanged,.la-state-diff .jsondiffpatch-movedestination{display:none}.la-state-diff .jsondiffpatch-added>.jsondiffpatch-value{color:var(--success)}.la-state-diff .jsondiffpatch-added>.jsondiffpatch-value:before{content:"+ "}.la-state-diff .jsondiffpatch-deleted>.jsondiffpatch-value,.la-state-diff .jsondiffpatch-modified>.jsondiffpatch-left-value{color:var(--danger);text-decoration:line-through}.la-state-diff .jsondiffpatch-deleted>.jsondiffpatch-value:before,.la-state-diff .jsondiffpatch-modified>.jsondiffpatch-left-value:before{content:"− "}.la-state-diff .jsondiffpatch-modified>.jsondiffpatch-right-value{color:var(--success)}.la-state-diff .jsondiffpatch-modified>.jsondiffpatch-right-value:before{content:"+ "}.la-state button:focus-visible{outline:2px solid var(--ring);outline-offset:2px}@media (width<=700px){.la-state-heading{flex-direction:column;align-items:flex-start}.la-state-history{grid-template-columns:1fr}.la-state-history aside{border-right:0;border-bottom:1px solid var(--border);padding:0 0 14px}.la-state-history ol{max-height:180px}.la-state-compare-heading{flex-direction:column;align-items:flex-start}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@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-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "durable-actors-observer",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.5",
|
|
4
4
|
"description": "Embeddable React observer for Durable Actors",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -55,8 +55,10 @@
|
|
|
55
55
|
"clsx": "^2.1.1",
|
|
56
56
|
"cmdk": "^1.1.1",
|
|
57
57
|
"eventsource-parser": "^4.1.1",
|
|
58
|
+
"jsondiffpatch": "^0.7.6",
|
|
58
59
|
"lucide-react": "^1.47.0",
|
|
59
60
|
"react-day-picker": "^10.0.1",
|
|
61
|
+
"react-json-view-lite": "^2.5.0",
|
|
60
62
|
"tailwind-merge": "^3.7.0"
|
|
61
63
|
},
|
|
62
64
|
"scripts": {
|