@simple-table/react 3.8.4 → 3.8.6

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/dist/cjs/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),n=require("simple-table-core"),r=require("react-dom/server"),s=require("react-dom");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var i=o(t);function c(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var s=0;for(r=Object.getOwnPropertySymbols(e);s<r.length;s++)t.indexOf(r[s])<0&&Object.prototype.propertyIsEnumerable.call(e,r[s])&&(n[r[s]]=e[r[s]])}return n}function u({node:n}){const r=t.useRef(null);return t.useLayoutEffect(()=>{const e=r.current;if(e)return e.appendChild(n),()=>{n.parentNode===e&&e.removeChild(n)}},[n]),e.jsx("span",{ref:r,style:{display:"contents"}})}function a(t){if(null!=t)return"string"==typeof t?t:t instanceof Node?e.jsx(u,{node:t}):void 0}function d(e){return{sortIcon:a(null==e?void 0:e.sortIcon),filterIcon:a(null==e?void 0:e.filterIcon),collapseIcon:a(null==e?void 0:e.collapseIcon),labelContent:a(null==e?void 0:e.labelContent)}}function l(t){if(null!=t){if("string"==typeof t){if(""===t)return;return e.jsx("span",{style:{display:"contents"},dangerouslySetInnerHTML:{__html:t}})}return t instanceof Node?e.jsx(u,{node:t}):void 0}}function f(t,n){return r=>{const s=document.createElement("div");return t.register(e.jsx(n,Object.assign({},r)),s),s}}function h(t,n){return r=>{const s=document.createElement("div"),o=Object.assign(Object.assign({},r),{components:(i=r.components,{expandIcon:a(i.expandIcon),checkbox:a(i.checkbox),dragIcon:a(i.dragIcon),labelContent:a(i.labelContent),pinIcon:a(i.pinIcon)})});var i;return t.register(e.jsx(n,Object.assign({},o)),s),s}}function p(t,n){return r=>{const s=document.createElement("div"),o=Object.assign(Object.assign({},r),{searchSection:r.searchSection?a(r.searchSection):null,listSection:a(r.listSection),resetSection:r.resetSection?a(r.resetSection):null});return t.register(e.jsx(n,Object.assign({},o)),s),s}}function m(t){const n=document.createElement("div");return n.innerHTML=r.renderToStaticMarkup(e.jsx(e.Fragment,{children:t})),function(e){const t=Array.from(e.childNodes).filter(e=>e.nodeType!==Node.TEXT_NODE||null!=e.textContent&&""!==e.textContent.trim());return 1===t.length&&t[0]instanceof HTMLElement?(e.removeChild(t[0]),t[0]):e}(n)}function g(t){return r.renderToStaticMarkup(e.jsx(e.Fragment,{children:t}))}function b(e){return"function"==typeof e}function j(t,n){const{cellRenderer:r,headerRenderer:s,children:o,nestedTable:i}=t,u=c(t,["cellRenderer","headerRenderer","children","nestedTable"]),a=Object.assign({},u);if(r&&(a.cellRenderer=function(t,n){return r=>{const s=document.createElement("div");return s.style.display="contents",t.register(e.jsx(n,Object.assign({},r)),s),s}}(n,r)),s&&(a.headerRenderer=function(t,n){return r=>{const s=document.createElement("div"),o=Object.assign(Object.assign({},r),{components:d(r.components)});return t.register(e.jsx(n,Object.assign({},o)),s),s}}(n,s)),o&&(a.children=o.map(e=>j(e,n))),i){const e=Object.assign(Object.assign({},i),{rows:[]});a.nestedTable=S(e,n)}return a}function S(t,n){const{defaultHeaders:r,rows:s,footerRenderer:o,emptyStateRenderer:i,errorStateRenderer:u,loadingStateRenderer:a,tableEmptyStateRenderer:S,headerDropdown:y,columnEditorConfig:v,icons:O,rowButtons:R,onColumnOrderChange:E,onColumnWidthChange:x,onHeaderEdit:C,onColumnSelect:w}=t,I=c(t,["defaultHeaders","rows","footerRenderer","emptyStateRenderer","errorStateRenderer","loadingStateRenderer","tableEmptyStateRenderer","headerDropdown","columnEditorConfig","icons","rowButtons","onColumnOrderChange","onColumnWidthChange","onHeaderEdit","onColumnSelect"]),T=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},I),{rows:s,defaultHeaders:r.map(e=>j(e,n))}),E?{onColumnOrderChange:e=>E(e)}:{}),x?{onColumnWidthChange:e=>x(e)}:{}),C?{onHeaderEdit:(e,t)=>C(e,t)}:{}),w?{onColumnSelect:e=>w(e)}:{});if(void 0!==o&&(T.footerRenderer=function(t,n){return r=>{const s=document.createElement("div"),o=Object.assign(Object.assign({},r),{nextIcon:l((i={nextIcon:r.nextIcon,prevIcon:r.prevIcon}).nextIcon),prevIcon:l(i.prevIcon)});var i;return t.register(e.jsx(n,Object.assign({},o)),s),s}}(n,o)),void 0!==i)if(b(i))T.emptyStateRenderer=f(n,i);else{const e=i;T.emptyStateRenderer=()=>m(e)}if(void 0!==u)if(b(u))T.errorStateRenderer=f(n,u);else{const e=u;T.errorStateRenderer=()=>m(e)}if(void 0!==a)if(b(a))T.loadingStateRenderer=f(n,a);else{const e=a;T.loadingStateRenderer=()=>m(e)}return void 0!==S&&(T.tableEmptyStateRenderer=null===S?null:m(S)),void 0!==y&&(T.headerDropdown=function(t,n){return r=>{const s=document.createElement("div"),o=Object.assign(Object.assign({},r),{components:d(r.components)});return t.register(e.jsx(n,Object.assign({},o)),s),s}}(n,y)),void 0!==v&&(T.columnEditorConfig=function(e,t){const{rowRenderer:n,customRenderer:r}=e,s=c(e,["rowRenderer","customRenderer"]);return Object.assign(Object.assign(Object.assign({},s),n?{rowRenderer:h(t,n)}:{}),r?{customRenderer:p(t,r)}:{})}(v,n)),void 0!==O&&(T.icons=function(e){const t={};for(const[n,r]of Object.entries(e))null!=r&&(t[n]="string"==typeof r||r instanceof HTMLElement||r instanceof SVGElement?r:g(r));return t}(O)),void 0!==R&&(T.rowButtons=R.map(t=>function(t,n){return r=>{const s=document.createElement("div");return s.style.display="contents",t.register(e.jsx(n,Object.assign({},r)),s),s}}(n,t))),T}"function"==typeof SuppressedError&&SuppressedError;class y{constructor(){this.entries=new Map,this.listeners=new Set,this.nextId=0,this.cachedSnapshot=[],this.snapshotDirty=!0,this.emitScheduled=!1,this.pruneScheduled=!1,this.subscribe=e=>(this.listeners.add(e),()=>{this.listeners.delete(e)}),this.getSnapshot=()=>(this.snapshotDirty&&(this.cachedSnapshot=Array.from(this.entries.values()),this.snapshotDirty=!1),this.cachedSnapshot)}register(e,t){const n="st-portal-"+this.nextId++;return this.entries.set(n,{id:n,container:t,node:e}),this.scheduleEmit(),{id:n,unregister:()=>this.unregister(n)}}unregister(e){this.entries.delete(e)&&this.scheduleEmit()}attach(e){const t=new MutationObserver(()=>this.schedulePrune());return t.observe(e,{childList:!0,subtree:!0}),()=>t.disconnect()}clear(){0!==this.entries.size&&(this.entries.clear(),this.emit())}emit(){this.snapshotDirty=!0;for(const e of this.listeners)e()}scheduleEmit(){this.emitScheduled||(this.emitScheduled=!0,queueMicrotask(()=>{this.emitScheduled=!1,this.emit()}))}schedulePrune(){this.pruneScheduled||(this.pruneScheduled=!0,queueMicrotask(()=>{this.pruneScheduled=!1;let e=!1;for(const[t,n]of this.entries)n.container.isConnected||(this.entries.delete(t),e=!0);e&&this.emit()}))}}class v extends i.default.Component{constructor(){super(...arguments),this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(e){console.error("[simple-table] A custom renderer threw while rendering:",e)}render(){return this.state.hasError?null:this.props.children}}const O=i.default.forwardRef(function(r,o){const i=t.useRef(null),u=t.useRef(null);null===u.current&&(u.current=new y);const a=u.current,d=t.useRef(null),l=t.useRef(void 0),f=t.useRef(null),h=r;t.useLayoutEffect(()=>{const e=i.current;if(!e)return;const t=new n.SimpleTableVanilla(e,S(h,a));t.mount(),d.current=t,f.current=h,l.current=h.defaultHeaders;const r=a.attach(e);if(o){const e=t.getAPI();"function"==typeof o?o(e):o.current=e}return()=>{r(),t.destroy(),d.current=null,l.current=void 0,f.current=null,a.clear(),o&&"function"!=typeof o&&(o.current=null)}},[]),t.useLayoutEffect(()=>{const e=d.current;if(!e)return;if(null!==f.current&&!function(e,t){const n=new Set([...Object.keys(e),...Object.keys(t)]);for(const r of n)if(e[r]!==t[r])return!0;return!1}(f.current,h))return;f.current=h;const t=S(h,a);if(l.current!==h.defaultHeaders)return l.current=h.defaultHeaders,void e.update(t);const n=c(t,["defaultHeaders"]);e.update(n)},[h]);const p=function(n){return t.useSyncExternalStore(n.subscribe,n.getSnapshot,n.getSnapshot).map(t=>s.createPortal(e.jsx(v,{children:t.node}),t.container,t.id))}(a),m=t.useRef(!1);return t.useLayoutEffect(()=>{var e;if(m.current)return;const t=d.current;t&&Array.isArray(p)&&p.length>0&&(m.current=!0,null===(e=t.refitAutoSizeColumns)||void 0===e||e.call(t))},[p]),e.jsxs(e.Fragment,{children:[e.jsx("div",{ref:i}),p]})});O.displayName="SimpleTable",Object.defineProperty(exports,"asRows",{enumerable:!0,get:function(){return n.asRows}}),exports.SimpleTable=O;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),n=require("simple-table-core"),r=require("react-dom/server"),o=require("react-dom");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var i=s(t);function c(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}function u({node:n}){const r=t.useRef(null);return t.useLayoutEffect(()=>{const e=r.current;if(e)return e.appendChild(n),()=>{n.parentNode===e&&e.removeChild(n)}},[n]),e.jsx("span",{ref:r,style:{display:"contents"}})}function a(t){if(null!=t)return"string"==typeof t?t:t instanceof Node?e.jsx(u,{node:t}):void 0}function l(e){return{sortIcon:a(null==e?void 0:e.sortIcon),filterIcon:a(null==e?void 0:e.filterIcon),collapseIcon:a(null==e?void 0:e.collapseIcon),labelContent:a(null==e?void 0:e.labelContent)}}function d(t){if(null!=t){if("string"==typeof t){if(""===t)return;return e.jsx("span",{style:{display:"contents"},dangerouslySetInnerHTML:{__html:t}})}return t instanceof Node?e.jsx(u,{node:t}):void 0}}function f(t,n){return r=>{const o=document.createElement("div");return t.register(e.jsx(n,Object.assign({},r)),o),o}}function h(t,n){return r=>{const o=document.createElement("div"),s=Object.assign(Object.assign({},r),{components:(i=r.components,{expandIcon:a(i.expandIcon),checkbox:a(i.checkbox),dragIcon:a(i.dragIcon),labelContent:a(i.labelContent),pinIcon:a(i.pinIcon)})});var i;return t.register(e.jsx(n,Object.assign({},s)),o),o}}function p(t,n){return r=>{const o=document.createElement("div"),s=Object.assign(Object.assign({},r),{searchSection:r.searchSection?a(r.searchSection):null,listSection:a(r.listSection),resetSection:r.resetSection?a(r.resetSection):null});return t.register(e.jsx(n,Object.assign({},s)),o),o}}function m(t){const n=document.createElement("div");return n.innerHTML=r.renderToStaticMarkup(e.jsx(e.Fragment,{children:t})),function(e){const t=Array.from(e.childNodes).filter(e=>e.nodeType!==Node.TEXT_NODE||null!=e.textContent&&""!==e.textContent.trim());return 1===t.length&&t[0]instanceof HTMLElement?(e.removeChild(t[0]),t[0]):e}(n)}function g(t){return r.renderToStaticMarkup(e.jsx(e.Fragment,{children:t}))}function b(e){return"function"==typeof e}function j(t,n){const{cellRenderer:r,headerRenderer:o,children:s,nestedTable:i}=t,u=c(t,["cellRenderer","headerRenderer","children","nestedTable"]),a=Object.assign({},u);if(r&&(a.cellRenderer=function(t,n){return r=>{const o=document.createElement("div");return o.style.display="contents",t.register(e.jsx(n,Object.assign({},r)),o),o}}(n,r)),o&&(a.headerRenderer=function(t,n){return r=>{const o=document.createElement("div"),s=Object.assign(Object.assign({},r),{components:l(r.components)});return t.register(e.jsx(n,Object.assign({},s)),o),o}}(n,o)),s&&(a.children=s.map(e=>j(e,n))),i){const e=Object.assign(Object.assign({},i),{rows:[]});a.nestedTable=y(e,n)}return a}function y(t,n){const{defaultHeaders:r,rows:o,footerRenderer:s,emptyStateRenderer:i,errorStateRenderer:u,loadingStateRenderer:a,tableEmptyStateRenderer:y,headerDropdown:S,columnEditorConfig:O,icons:v,rowButtons:R,onColumnOrderChange:E,onColumnWidthChange:x,onHeaderEdit:C,onColumnSelect:w}=t,I=c(t,["defaultHeaders","rows","footerRenderer","emptyStateRenderer","errorStateRenderer","loadingStateRenderer","tableEmptyStateRenderer","headerDropdown","columnEditorConfig","icons","rowButtons","onColumnOrderChange","onColumnWidthChange","onHeaderEdit","onColumnSelect"]),H=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},I),{rows:o,defaultHeaders:r.map(e=>j(e,n)),onRendererHostDiscard:n.disposeHost}),E?{onColumnOrderChange:e=>E(e)}:{}),x?{onColumnWidthChange:e=>x(e)}:{}),C?{onHeaderEdit:(e,t)=>C(e,t)}:{}),w?{onColumnSelect:e=>w(e)}:{});if(void 0!==s&&(H.footerRenderer=function(t,n){return r=>{const o=document.createElement("div"),s=Object.assign(Object.assign({},r),{nextIcon:d((i={nextIcon:r.nextIcon,prevIcon:r.prevIcon}).nextIcon),prevIcon:d(i.prevIcon)});var i;return t.register(e.jsx(n,Object.assign({},s)),o),o}}(n,s)),void 0!==i)if(b(i))H.emptyStateRenderer=f(n,i);else{const e=i;H.emptyStateRenderer=()=>m(e)}if(void 0!==u)if(b(u))H.errorStateRenderer=f(n,u);else{const e=u;H.errorStateRenderer=()=>m(e)}if(void 0!==a)if(b(a))H.loadingStateRenderer=f(n,a);else{const e=a;H.loadingStateRenderer=()=>m(e)}return void 0!==y&&(H.tableEmptyStateRenderer=null===y?null:m(y)),void 0!==S&&(H.headerDropdown=function(t,n){return r=>{const o=document.createElement("div"),s=Object.assign(Object.assign({},r),{components:l(r.components)});return t.register(e.jsx(n,Object.assign({},s)),o),o}}(n,S)),void 0!==O&&(H.columnEditorConfig=function(e,t){const{rowRenderer:n,customRenderer:r}=e,o=c(e,["rowRenderer","customRenderer"]);return Object.assign(Object.assign(Object.assign({},o),n?{rowRenderer:h(t,n)}:{}),r?{customRenderer:p(t,r)}:{})}(O,n)),void 0!==v&&(H.icons=function(e){const t={};for(const[n,r]of Object.entries(e))null!=r&&(t[n]="string"==typeof r||r instanceof HTMLElement||r instanceof SVGElement?r:g(r));return t}(v)),void 0!==R&&(H.rowButtons=R.map(t=>function(t,n){return r=>{const o=document.createElement("div");return o.style.display="contents",t.register(e.jsx(n,Object.assign({},r)),o),o}}(n,t))),H}"function"==typeof SuppressedError&&SuppressedError;const S="data-st-portal-id";class O{constructor(){this.entries=new Map,this.listeners=new Set,this.nextId=0,this.cachedSnapshot=[],this.snapshotDirty=!0,this.emitScheduled=!1,this.disposeHost=e=>{if("function"!=typeof e.getAttribute)return;const t=[],n=e.getAttribute(S);null!==n&&t.push(n),e.querySelectorAll(`[${S}]`).forEach(e=>{const n=e.getAttribute(S);null!==n&&t.push(n)});for(const e of t)this.unregister(e)},this.subscribe=e=>(this.listeners.add(e),()=>{this.listeners.delete(e)}),this.getSnapshot=()=>(this.snapshotDirty&&(this.cachedSnapshot=Array.from(this.entries.values()),this.snapshotDirty=!1),this.cachedSnapshot)}register(e,t){const n="st-portal-"+this.nextId++;return t.setAttribute(S,n),this.entries.set(n,{id:n,container:t,node:e}),this.scheduleEmit(),{id:n,unregister:()=>this.unregister(n)}}unregister(e){this.entries.delete(e)&&this.scheduleEmit()}clear(){0!==this.entries.size&&(this.entries.clear(),this.emit())}emit(){this.snapshotDirty=!0;for(const e of this.listeners)e()}scheduleEmit(){this.emitScheduled||(this.emitScheduled=!0,queueMicrotask(()=>{this.emitScheduled=!1,this.emit()}))}}class v extends i.default.Component{constructor(){super(...arguments),this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(e){console.error("[simple-table] A custom renderer threw while rendering:",e)}render(){return this.state.hasError?null:this.props.children}}const R=i.default.forwardRef(function(r,s){const i=t.useRef(null),u=t.useRef(null);null===u.current&&(u.current=new O);const a=u.current,l=t.useRef(null),d=t.useRef(void 0),f=t.useRef(null),h=r;t.useLayoutEffect(()=>{const e=i.current;if(!e)return;const t=new n.SimpleTableVanilla(e,y(h,a));if(t.mount(),l.current=t,f.current=h,d.current=h.defaultHeaders,s){const e=t.getAPI();"function"==typeof s?s(e):s.current=e}return()=>{t.destroy(),l.current=null,d.current=void 0,f.current=null,a.clear(),s&&"function"!=typeof s&&(s.current=null)}},[]),t.useLayoutEffect(()=>{const e=l.current;if(!e)return;if(null!==f.current&&!function(e,t){const n=new Set([...Object.keys(e),...Object.keys(t)]);for(const r of n)if(e[r]!==t[r])return!0;return!1}(f.current,h))return;f.current=h;const t=y(h,a);if(d.current!==h.defaultHeaders)return d.current=h.defaultHeaders,void e.update(t);const n=c(t,["defaultHeaders"]);e.update(n)},[h]);const p=function(n){return t.useSyncExternalStore(n.subscribe,n.getSnapshot,n.getSnapshot).map(t=>o.createPortal(e.jsx(v,{children:t.node}),t.container,t.id))}(a),m=t.useRef(!1);return t.useLayoutEffect(()=>{var e;if(m.current)return;const t=l.current;t&&Array.isArray(p)&&p.length>0&&(m.current=!0,null===(e=t.refitAutoSizeColumns)||void 0===e||e.call(t))},[p]),e.jsxs(e.Fragment,{children:[e.jsx("div",{ref:i}),p]})});R.displayName="SimpleTable",Object.defineProperty(exports,"asRows",{enumerable:!0,get:function(){return n.asRows}}),exports.SimpleTable=R;
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.es.js CHANGED
@@ -1,2 +1,2 @@
1
- import{jsx as e,Fragment as t,jsxs as n}from"react/jsx-runtime";import r,{useRef as o,useLayoutEffect as s,useSyncExternalStore as i}from"react";import{SimpleTableVanilla as c}from"simple-table-core";export{asRows}from"simple-table-core";import{renderToStaticMarkup as u}from"react-dom/server";import{createPortal as d}from"react-dom";function l(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}function a({node:t}){const n=o(null);return s(()=>{const e=n.current;if(e)return e.appendChild(t),()=>{t.parentNode===e&&e.removeChild(t)}},[t]),e("span",{ref:n,style:{display:"contents"}})}function h(t){if(null!=t)return"string"==typeof t?t:t instanceof Node?e(a,{node:t}):void 0}function f(e){return{sortIcon:h(null==e?void 0:e.sortIcon),filterIcon:h(null==e?void 0:e.filterIcon),collapseIcon:h(null==e?void 0:e.collapseIcon),labelContent:h(null==e?void 0:e.labelContent)}}function m(t){if(null!=t){if("string"==typeof t){if(""===t)return;return e("span",{style:{display:"contents"},dangerouslySetInnerHTML:{__html:t}})}return t instanceof Node?e(a,{node:t}):void 0}}function p(t,n){return r=>{const o=document.createElement("div");return t.register(e(n,Object.assign({},r)),o),o}}function g(t,n){return r=>{const o=document.createElement("div"),s=Object.assign(Object.assign({},r),{components:(i=r.components,{expandIcon:h(i.expandIcon),checkbox:h(i.checkbox),dragIcon:h(i.dragIcon),labelContent:h(i.labelContent),pinIcon:h(i.pinIcon)})});var i;return t.register(e(n,Object.assign({},s)),o),o}}function b(t,n){return r=>{const o=document.createElement("div"),s=Object.assign(Object.assign({},r),{searchSection:r.searchSection?h(r.searchSection):null,listSection:h(r.listSection),resetSection:r.resetSection?h(r.resetSection):null});return t.register(e(n,Object.assign({},s)),o),o}}function S(n){const r=document.createElement("div");return r.innerHTML=u(e(t,{children:n})),function(e){const t=Array.from(e.childNodes).filter(e=>e.nodeType!==Node.TEXT_NODE||null!=e.textContent&&""!==e.textContent.trim());return 1===t.length&&t[0]instanceof HTMLElement?(e.removeChild(t[0]),t[0]):e}(r)}function O(n){return u(e(t,{children:n}))}function v(e){return"function"==typeof e}function y(t,n){const{cellRenderer:r,headerRenderer:o,children:s,nestedTable:i}=t,c=l(t,["cellRenderer","headerRenderer","children","nestedTable"]),u=Object.assign({},c);if(r&&(u.cellRenderer=function(t,n){return r=>{const o=document.createElement("div");return o.style.display="contents",t.register(e(n,Object.assign({},r)),o),o}}(n,r)),o&&(u.headerRenderer=function(t,n){return r=>{const o=document.createElement("div"),s=Object.assign(Object.assign({},r),{components:f(r.components)});return t.register(e(n,Object.assign({},s)),o),o}}(n,o)),s&&(u.children=s.map(e=>y(e,n))),i){const e=Object.assign(Object.assign({},i),{rows:[]});u.nestedTable=j(e,n)}return u}function j(t,n){const{defaultHeaders:r,rows:o,footerRenderer:s,emptyStateRenderer:i,errorStateRenderer:c,loadingStateRenderer:u,tableEmptyStateRenderer:d,headerDropdown:a,columnEditorConfig:h,icons:j,rowButtons:E,onColumnOrderChange:R,onColumnWidthChange:C,onHeaderEdit:w,onColumnSelect:I}=t,x=l(t,["defaultHeaders","rows","footerRenderer","emptyStateRenderer","errorStateRenderer","loadingStateRenderer","tableEmptyStateRenderer","headerDropdown","columnEditorConfig","icons","rowButtons","onColumnOrderChange","onColumnWidthChange","onHeaderEdit","onColumnSelect"]),H=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},x),{rows:o,defaultHeaders:r.map(e=>y(e,n))}),R?{onColumnOrderChange:e=>R(e)}:{}),C?{onColumnWidthChange:e=>C(e)}:{}),w?{onHeaderEdit:(e,t)=>w(e,t)}:{}),I?{onColumnSelect:e=>I(e)}:{});if(void 0!==s&&(H.footerRenderer=function(t,n){return r=>{const o=document.createElement("div"),s=Object.assign(Object.assign({},r),{nextIcon:m((i={nextIcon:r.nextIcon,prevIcon:r.prevIcon}).nextIcon),prevIcon:m(i.prevIcon)});var i;return t.register(e(n,Object.assign({},s)),o),o}}(n,s)),void 0!==i)if(v(i))H.emptyStateRenderer=p(n,i);else{const e=i;H.emptyStateRenderer=()=>S(e)}if(void 0!==c)if(v(c))H.errorStateRenderer=p(n,c);else{const e=c;H.errorStateRenderer=()=>S(e)}if(void 0!==u)if(v(u))H.loadingStateRenderer=p(n,u);else{const e=u;H.loadingStateRenderer=()=>S(e)}return void 0!==d&&(H.tableEmptyStateRenderer=null===d?null:S(d)),void 0!==a&&(H.headerDropdown=function(t,n){return r=>{const o=document.createElement("div"),s=Object.assign(Object.assign({},r),{components:f(r.components)});return t.register(e(n,Object.assign({},s)),o),o}}(n,a)),void 0!==h&&(H.columnEditorConfig=function(e,t){const{rowRenderer:n,customRenderer:r}=e,o=l(e,["rowRenderer","customRenderer"]);return Object.assign(Object.assign(Object.assign({},o),n?{rowRenderer:g(t,n)}:{}),r?{customRenderer:b(t,r)}:{})}(h,n)),void 0!==j&&(H.icons=function(e){const t={};for(const[n,r]of Object.entries(e))null!=r&&(t[n]="string"==typeof r||r instanceof HTMLElement||r instanceof SVGElement?r:O(r));return t}(j)),void 0!==E&&(H.rowButtons=E.map(t=>function(t,n){return r=>{const o=document.createElement("div");return o.style.display="contents",t.register(e(n,Object.assign({},r)),o),o}}(n,t))),H}"function"==typeof SuppressedError&&SuppressedError;class E{constructor(){this.entries=new Map,this.listeners=new Set,this.nextId=0,this.cachedSnapshot=[],this.snapshotDirty=!0,this.emitScheduled=!1,this.pruneScheduled=!1,this.subscribe=e=>(this.listeners.add(e),()=>{this.listeners.delete(e)}),this.getSnapshot=()=>(this.snapshotDirty&&(this.cachedSnapshot=Array.from(this.entries.values()),this.snapshotDirty=!1),this.cachedSnapshot)}register(e,t){const n="st-portal-"+this.nextId++;return this.entries.set(n,{id:n,container:t,node:e}),this.scheduleEmit(),{id:n,unregister:()=>this.unregister(n)}}unregister(e){this.entries.delete(e)&&this.scheduleEmit()}attach(e){const t=new MutationObserver(()=>this.schedulePrune());return t.observe(e,{childList:!0,subtree:!0}),()=>t.disconnect()}clear(){0!==this.entries.size&&(this.entries.clear(),this.emit())}emit(){this.snapshotDirty=!0;for(const e of this.listeners)e()}scheduleEmit(){this.emitScheduled||(this.emitScheduled=!0,queueMicrotask(()=>{this.emitScheduled=!1,this.emit()}))}schedulePrune(){this.pruneScheduled||(this.pruneScheduled=!0,queueMicrotask(()=>{this.pruneScheduled=!1;let e=!1;for(const[t,n]of this.entries)n.container.isConnected||(this.entries.delete(t),e=!0);e&&this.emit()}))}}class R extends r.Component{constructor(){super(...arguments),this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(e){console.error("[simple-table] A custom renderer threw while rendering:",e)}render(){return this.state.hasError?null:this.props.children}}const C=r.forwardRef(function(r,u){const a=o(null),h=o(null);null===h.current&&(h.current=new E);const f=h.current,m=o(null),p=o(void 0),g=o(null),b=r;s(()=>{const e=a.current;if(!e)return;const t=new c(e,j(b,f));t.mount(),m.current=t,g.current=b,p.current=b.defaultHeaders;const n=f.attach(e);if(u){const e=t.getAPI();"function"==typeof u?u(e):u.current=e}return()=>{n(),t.destroy(),m.current=null,p.current=void 0,g.current=null,f.clear(),u&&"function"!=typeof u&&(u.current=null)}},[]),s(()=>{const e=m.current;if(!e)return;if(null!==g.current&&!function(e,t){const n=new Set([...Object.keys(e),...Object.keys(t)]);for(const r of n)if(e[r]!==t[r])return!0;return!1}(g.current,b))return;g.current=b;const t=j(b,f);if(p.current!==b.defaultHeaders)return p.current=b.defaultHeaders,void e.update(t);const n=l(t,["defaultHeaders"]);e.update(n)},[b]);const S=function(t){return i(t.subscribe,t.getSnapshot,t.getSnapshot).map(t=>d(e(R,{children:t.node}),t.container,t.id))}(f),O=o(!1);return s(()=>{var e;if(O.current)return;const t=m.current;t&&Array.isArray(S)&&S.length>0&&(O.current=!0,null===(e=t.refitAutoSizeColumns)||void 0===e||e.call(t))},[S]),n(t,{children:[e("div",{ref:a}),S]})});C.displayName="SimpleTable";export{C as SimpleTable};
1
+ import{jsx as e,Fragment as t,jsxs as n}from"react/jsx-runtime";import r,{useRef as o,useLayoutEffect as s,useSyncExternalStore as i}from"react";import{SimpleTableVanilla as c}from"simple-table-core";export{asRows}from"simple-table-core";import{renderToStaticMarkup as u}from"react-dom/server";import{createPortal as l}from"react-dom";function d(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}function a({node:t}){const n=o(null);return s(()=>{const e=n.current;if(e)return e.appendChild(t),()=>{t.parentNode===e&&e.removeChild(t)}},[t]),e("span",{ref:n,style:{display:"contents"}})}function f(t){if(null!=t)return"string"==typeof t?t:t instanceof Node?e(a,{node:t}):void 0}function h(e){return{sortIcon:f(null==e?void 0:e.sortIcon),filterIcon:f(null==e?void 0:e.filterIcon),collapseIcon:f(null==e?void 0:e.collapseIcon),labelContent:f(null==e?void 0:e.labelContent)}}function p(t){if(null!=t){if("string"==typeof t){if(""===t)return;return e("span",{style:{display:"contents"},dangerouslySetInnerHTML:{__html:t}})}return t instanceof Node?e(a,{node:t}):void 0}}function m(t,n){return r=>{const o=document.createElement("div");return t.register(e(n,Object.assign({},r)),o),o}}function g(t,n){return r=>{const o=document.createElement("div"),s=Object.assign(Object.assign({},r),{components:(i=r.components,{expandIcon:f(i.expandIcon),checkbox:f(i.checkbox),dragIcon:f(i.dragIcon),labelContent:f(i.labelContent),pinIcon:f(i.pinIcon)})});var i;return t.register(e(n,Object.assign({},s)),o),o}}function b(t,n){return r=>{const o=document.createElement("div"),s=Object.assign(Object.assign({},r),{searchSection:r.searchSection?f(r.searchSection):null,listSection:f(r.listSection),resetSection:r.resetSection?f(r.resetSection):null});return t.register(e(n,Object.assign({},s)),o),o}}function S(n){const r=document.createElement("div");return r.innerHTML=u(e(t,{children:n})),function(e){const t=Array.from(e.childNodes).filter(e=>e.nodeType!==Node.TEXT_NODE||null!=e.textContent&&""!==e.textContent.trim());return 1===t.length&&t[0]instanceof HTMLElement?(e.removeChild(t[0]),t[0]):e}(r)}function y(n){return u(e(t,{children:n}))}function O(e){return"function"==typeof e}function v(t,n){const{cellRenderer:r,headerRenderer:o,children:s,nestedTable:i}=t,c=d(t,["cellRenderer","headerRenderer","children","nestedTable"]),u=Object.assign({},c);if(r&&(u.cellRenderer=function(t,n){return r=>{const o=document.createElement("div");return o.style.display="contents",t.register(e(n,Object.assign({},r)),o),o}}(n,r)),o&&(u.headerRenderer=function(t,n){return r=>{const o=document.createElement("div"),s=Object.assign(Object.assign({},r),{components:h(r.components)});return t.register(e(n,Object.assign({},s)),o),o}}(n,o)),s&&(u.children=s.map(e=>v(e,n))),i){const e=Object.assign(Object.assign({},i),{rows:[]});u.nestedTable=j(e,n)}return u}function j(t,n){const{defaultHeaders:r,rows:o,footerRenderer:s,emptyStateRenderer:i,errorStateRenderer:c,loadingStateRenderer:u,tableEmptyStateRenderer:l,headerDropdown:a,columnEditorConfig:f,icons:j,rowButtons:E,onColumnOrderChange:R,onColumnWidthChange:C,onHeaderEdit:w,onColumnSelect:I}=t,x=d(t,["defaultHeaders","rows","footerRenderer","emptyStateRenderer","errorStateRenderer","loadingStateRenderer","tableEmptyStateRenderer","headerDropdown","columnEditorConfig","icons","rowButtons","onColumnOrderChange","onColumnWidthChange","onHeaderEdit","onColumnSelect"]),H=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},x),{rows:o,defaultHeaders:r.map(e=>v(e,n)),onRendererHostDiscard:n.disposeHost}),R?{onColumnOrderChange:e=>R(e)}:{}),C?{onColumnWidthChange:e=>C(e)}:{}),w?{onHeaderEdit:(e,t)=>w(e,t)}:{}),I?{onColumnSelect:e=>I(e)}:{});if(void 0!==s&&(H.footerRenderer=function(t,n){return r=>{const o=document.createElement("div"),s=Object.assign(Object.assign({},r),{nextIcon:p((i={nextIcon:r.nextIcon,prevIcon:r.prevIcon}).nextIcon),prevIcon:p(i.prevIcon)});var i;return t.register(e(n,Object.assign({},s)),o),o}}(n,s)),void 0!==i)if(O(i))H.emptyStateRenderer=m(n,i);else{const e=i;H.emptyStateRenderer=()=>S(e)}if(void 0!==c)if(O(c))H.errorStateRenderer=m(n,c);else{const e=c;H.errorStateRenderer=()=>S(e)}if(void 0!==u)if(O(u))H.loadingStateRenderer=m(n,u);else{const e=u;H.loadingStateRenderer=()=>S(e)}return void 0!==l&&(H.tableEmptyStateRenderer=null===l?null:S(l)),void 0!==a&&(H.headerDropdown=function(t,n){return r=>{const o=document.createElement("div"),s=Object.assign(Object.assign({},r),{components:h(r.components)});return t.register(e(n,Object.assign({},s)),o),o}}(n,a)),void 0!==f&&(H.columnEditorConfig=function(e,t){const{rowRenderer:n,customRenderer:r}=e,o=d(e,["rowRenderer","customRenderer"]);return Object.assign(Object.assign(Object.assign({},o),n?{rowRenderer:g(t,n)}:{}),r?{customRenderer:b(t,r)}:{})}(f,n)),void 0!==j&&(H.icons=function(e){const t={};for(const[n,r]of Object.entries(e))null!=r&&(t[n]="string"==typeof r||r instanceof HTMLElement||r instanceof SVGElement?r:y(r));return t}(j)),void 0!==E&&(H.rowButtons=E.map(t=>function(t,n){return r=>{const o=document.createElement("div");return o.style.display="contents",t.register(e(n,Object.assign({},r)),o),o}}(n,t))),H}"function"==typeof SuppressedError&&SuppressedError;const E="data-st-portal-id";class R{constructor(){this.entries=new Map,this.listeners=new Set,this.nextId=0,this.cachedSnapshot=[],this.snapshotDirty=!0,this.emitScheduled=!1,this.disposeHost=e=>{if("function"!=typeof e.getAttribute)return;const t=[],n=e.getAttribute(E);null!==n&&t.push(n),e.querySelectorAll(`[${E}]`).forEach(e=>{const n=e.getAttribute(E);null!==n&&t.push(n)});for(const e of t)this.unregister(e)},this.subscribe=e=>(this.listeners.add(e),()=>{this.listeners.delete(e)}),this.getSnapshot=()=>(this.snapshotDirty&&(this.cachedSnapshot=Array.from(this.entries.values()),this.snapshotDirty=!1),this.cachedSnapshot)}register(e,t){const n="st-portal-"+this.nextId++;return t.setAttribute(E,n),this.entries.set(n,{id:n,container:t,node:e}),this.scheduleEmit(),{id:n,unregister:()=>this.unregister(n)}}unregister(e){this.entries.delete(e)&&this.scheduleEmit()}clear(){0!==this.entries.size&&(this.entries.clear(),this.emit())}emit(){this.snapshotDirty=!0;for(const e of this.listeners)e()}scheduleEmit(){this.emitScheduled||(this.emitScheduled=!0,queueMicrotask(()=>{this.emitScheduled=!1,this.emit()}))}}class C extends r.Component{constructor(){super(...arguments),this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(e){console.error("[simple-table] A custom renderer threw while rendering:",e)}render(){return this.state.hasError?null:this.props.children}}const w=r.forwardRef(function(r,u){const a=o(null),f=o(null);null===f.current&&(f.current=new R);const h=f.current,p=o(null),m=o(void 0),g=o(null),b=r;s(()=>{const e=a.current;if(!e)return;const t=new c(e,j(b,h));if(t.mount(),p.current=t,g.current=b,m.current=b.defaultHeaders,u){const e=t.getAPI();"function"==typeof u?u(e):u.current=e}return()=>{t.destroy(),p.current=null,m.current=void 0,g.current=null,h.clear(),u&&"function"!=typeof u&&(u.current=null)}},[]),s(()=>{const e=p.current;if(!e)return;if(null!==g.current&&!function(e,t){const n=new Set([...Object.keys(e),...Object.keys(t)]);for(const r of n)if(e[r]!==t[r])return!0;return!1}(g.current,b))return;g.current=b;const t=j(b,h);if(m.current!==b.defaultHeaders)return m.current=b.defaultHeaders,void e.update(t);const n=d(t,["defaultHeaders"]);e.update(n)},[b]);const S=function(t){return i(t.subscribe,t.getSnapshot,t.getSnapshot).map(t=>l(e(C,{children:t.node}),t.container,t.id))}(h),y=o(!1);return s(()=>{var e;if(y.current)return;const t=p.current;t&&Array.isArray(S)&&S.length>0&&(y.current=!0,null===(e=t.refitAutoSizeColumns)||void 0===e||e.call(t))},[S]),n(t,{children:[e("div",{ref:a}),S]})});w.displayName="SimpleTable";export{w as SimpleTable};
2
2
  //# sourceMappingURL=index.es.js.map
package/dist/styles.css CHANGED
@@ -1 +1 @@
1
- .st-sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.simple-table-root{--st-after-width:11.01px;--st-resize-handle-width:2px;--st-resize-handle-container-width:10px;--st-border-width:1px;--st-footer-height:49px;--st-transition-duration:0.2s;--st-transition-ease:ease;--st-opacity-disabled:0.5;--st-white:#fff;--st-black:#000;--st-slate-50:#f8fafc;--st-slate-100:#f1f5f9;--st-slate-200:#e2e8f0;--st-slate-300:#cbd5e1;--st-slate-400:#94a3b8;--st-slate-500:#64748b;--st-slate-600:#475569;--st-slate-800:#1e293b;--st-slate-900:#0f172a;--st-gray-100:#f3f4f6;--st-gray-200:#e5e7eb;--st-gray-300:#d1d5db;--st-gray-400:#9ca3af;--st-gray-500:#6b7280;--st-gray-600:#4b5563;--st-gray-700:#374151;--st-gray-800:#1f2937;--st-gray-900:#111827;--st-neutral-50:#fafafa;--st-neutral-100:#f5f5f5;--st-neutral-200:#e5e5e5;--st-neutral-300:#d4d4d4;--st-neutral-400:#a3a3a3;--st-neutral-500:#737373;--st-neutral-600:#525252;--st-neutral-800:#262626;--st-neutral-900:#171717;--st-stone-100:#f5f5f4;--st-stone-200:#e7e5e4;--st-stone-300:#d6d3d1;--st-stone-400:#a8a29e;--st-stone-500:#78716c;--st-stone-700:#44403c;--st-red-300:#fca5a5;--st-red-400:#f87171;--st-orange-400:#fb923c;--st-amber-50:#fffbeb;--st-amber-100:#fef3c7;--st-amber-200:#fde68a;--st-emerald-400:#34d399;--st-emerald-500:#10b981;--st-emerald-600:#059669;--st-teal-400:#2dd4bf;--st-teal-500:#14b8a6;--st-teal-600:#0d9488;--st-sky-100:#e0f2fe;--st-sky-200:#bae6fd;--st-sky-300:#7dd3fc;--st-sky-400:#38bdf8;--st-blue-50:#eff6ff;--st-blue-100:#dbeafe;--st-blue-200:#bfdbfe;--st-blue-300:#93c5fd;--st-blue-400:#60a5fa;--st-blue-500:#3b82f6;--st-blue-600:#2563eb;--st-blue-800:#1e40af;--st-blue-900:#1e3a8a;--st-blue-950:#172554;--st-violet-50:#f5f3ff;--st-violet-100:#ede9fe;--st-violet-200:#ddd6fe;--st-violet-400:#a78bfa;--st-violet-500:#8b5cf6;--st-violet-600:#7c3aed;--st-violet-800:#5b21b6}.simple-table-root *{scrollbar-thumb-border-radius:var(--st-scrollbar-thumb-border-radius);-webkit-box-sizing:border-box;box-sizing:border-box;font-family:inherit;scrollbar-color:var(--st-scrollbar-thumb-color) var(--st-scrollbar-bg-color);scrollbar-width:var(--st-scrollbar-width)}input{color:#000}.simple-table-root ::-webkit-scrollbar{height:8px;width:8px}.simple-table-root ::-webkit-scrollbar-track{background:var(--st-scrollbar-bg-color)}.simple-table-root ::-webkit-scrollbar-thumb{background:var(--st-scrollbar-thumb-color);border-radius:4px}.simple-table-root{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--st-cell-color)}.st-wrapper{border:var(--st-border-width) solid var(--st-border-color);border-radius:var(--st-border-radius);overflow:hidden;position:relative}.simple-table-root.st-external-scroll{overflow:visible}.simple-table-root.st-external-scroll .st-header-container{position:sticky;top:0;top:calc(var(--st-external-scroll-padding-top, 0px)*-1);z-index:4}.simple-table-root.st-external-scroll .st-sticky-top{position:sticky;top:0;top:calc(var(--st-calculated-header-height, 0px) - var(--st-external-scroll-padding-top, 0px))}.st-wrapper-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:100%}.st-content-wrapper,.st-wrapper-container{display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;width:100%}.st-content-wrapper{-webkit-box-flex:1;-ms-flex:1;flex:1;min-height:0}.st-content{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.st-content,.st-header-container{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%}.st-header-container,.st-header-container.st-header-scroll-padding:after{-ms-flex-negative:0;background-color:var(--st-header-background-color);flex-shrink:0}.st-header-container.st-header-scroll-padding:after{-webkit-box-sizing:border-box;box-sizing:border-box;content:"";display:block;width:default-width;width:var(--st-after-width,default-width)}.st-header-container.st-header-scroll-padding:after,.st-header-main,.st-header-pinned-left,.st-header-pinned-right{border-bottom:var(--st-border-width) solid var(--st-border-color)}.st-header-grid{min-width:100%;position:relative}.st-body-main,.st-body-pinned-left,.st-body-pinned-right,.st-header-main,.st-header-pinned-left,.st-header-pinned-right,.st-horizontal-scrollbar-left,.st-horizontal-scrollbar-middle,.st-horizontal-scrollbar-right{overflow:auto;-ms-touch-action:auto;touch-action:auto}.st-body-main,.st-body-pinned-left,.st-body-pinned-right,.st-header-main,.st-header-pinned-left,.st-header-pinned-right{scrollbar-width:none}.st-body-pinned-left,.st-body-pinned-right,.st-header-pinned-left,.st-header-pinned-right{-ms-flex-negative:0;flex-shrink:0}.st-body-pinned-left,.st-header-pinned-left{border-right:var(--st-border-width) solid var(--st-border-color)}.st-body-pinned-right,.st-header-pinned-right{border-left:var(--st-border-width) solid var(--st-border-color)}.st-header-main{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.st-header-main,.st-header-pinned-left,.st-header-pinned-right{overflow-x:auto;overflow-y:hidden}.st-header-main::-webkit-scrollbar{display:none}.st-body-container{-webkit-box-flex:1;-ms-flex-positive:1;-webkit-overflow-scrolling:touch;background-color:var(--st-even-row-background-color);flex-grow:1;height:-webkit-max-content;height:-moz-max-content;height:max-content;overflow:auto;-ms-touch-action:auto;touch-action:auto;width:100%}.st-body-container,.st-sticky-top{display:-webkit-box;display:-ms-flexbox;display:flex}.st-sticky-top{left:0;position:absolute;top:0;z-index:10}.st-sticky-section-left,.st-sticky-section-main,.st-sticky-section-right{overflow:hidden}.st-sticky-section-left{border-right:var(--st-border-width) solid var(--st-border-color)}.st-sticky-section-right{border-left:var(--st-border-width) solid var(--st-border-color)}.st-empty-state-wrapper{-ms-flex-align:center;-ms-flex-pack:center;-webkit-box-flex:1;-ms-flex:1;flex:1;min-height:200px;width:100%}.st-empty-state,.st-empty-state-wrapper{-webkit-box-align:center;-webkit-box-pack:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:center}.st-empty-state{-ms-flex-align:center;-ms-flex-pack:center;color:var(--st-header-text-color);font-size:.9em;opacity:.6;padding:48px 24px}.st-body-main,.st-body-pinned-left,.st-body-pinned-right{display:grid;height:-webkit-max-content;height:-moz-max-content;height:max-content;min-height:100%}.st-body-main::-webkit-scrollbar{display:none}.st-row{-webkit-backface-visibility:hidden;backface-visibility:hidden;background-color:var(--st-even-row-background-color);display:grid;min-width:100%;position:absolute;-webkit-transition:background .2s ease;transition:background .2s ease}.st-row.st-sticky-parent{z-index:5}.st-sticky-top .st-row.even{background-color:var(--st-even-row-background-color)}.st-sticky-top .st-row.odd{background-color:var(--st-odd-row-background-color)}.st-sticky-top .st-row.selected{background-color:var(--st-selected-row-background-color)}.st-row.hovered .st-cell-editing,.st-row.hovered .st-cell:not(.st-cell-selected):not(.st-cell-selected-first):not(.st-cell-column-selected):not(.st-cell-column-selected-first),.st-sticky-top .st-row.hovered:not(.st-cell-editing):not(.st-cell-column-selected):not(.st-cell-column-selected-last):not(.st-cell-column-selected-first){background-color:var(--st-hover-row-background-color)}.st-row.hovered .st-cell.st-sub-cell:not(.st-cell-selected):not(.st-cell-selected-first):not(.st-cell-column-selected):not(.st-cell-column-selected-first){background-color:var(--st-sub-cell-hover-background-color)}.st-row.even{background-color:var(--st-even-row-background-color)}.st-row.odd{background-color:var(--st-odd-row-background-color)}.st-row.selected{background-color:var(--st-selected-row-background-color)}.st-row.selected.hovered .st-cell-editing,.st-row.selected.hovered .st-cell:not(.st-cell-selected):not(.st-cell-selected-first):not(.st-cell-column-selected):not(.st-cell-column-selected-first){background-color:var(--st-hover-row-background-color)}.st-nested-grid-row{padding-left:8px;padding-right:8px}.st-cell-content{display:-webkit-box;display:-ms-flexbox;display:flex}.st-row.odd .st-cell-content{color:var(--st-cell-odd-row-color)}.st-row.even .st-cell-content{color:var(--st-cell-color)}.st-cell.st-cell-even-row:not(.st-cell-selected):not(.st-cell-selected-first):not(.st-cell-column-selected):not(.st-cell-column-selected-first){background-color:var(--st-even-row-background-color)}.st-cell.st-cell-odd-row:not(.st-cell-selected):not(.st-cell-selected-first):not(.st-cell-column-selected):not(.st-cell-column-selected-first){background-color:var(--st-odd-row-background-color)}.st-cell.st-cell-even-row .st-cell-content{color:var(--st-cell-color)}.st-cell.st-cell-odd-row .st-cell-content{color:var(--st-cell-odd-row-color)}.st-cell.st-cell-selected-row{background-color:var(--st-selected-row-background-color)}.st-cell.st-row-hovered:not(.st-cell-selected):not(.st-cell-selected-first):not(.st-cell-column-selected):not(.st-cell-column-selected-first){background-color:var(--st-hover-row-background-color)}.st-header-cell{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:var(--st-header-background-color);display:-webkit-box;display:-ms-flexbox;display:flex;font-weight:var(--st-font-weight-bold);gap:var(--st-spacing-small);top:0}.st-header-cell.parent{border-bottom:var(--st-border-width) solid var(--st-border-color)}.st-header-cell.st-sub-header{background-color:var(--st-sub-header-background-color)}.st-cell.st-sub-cell{background-color:var(--st-sub-cell-background-color)}.st-header-cell.clickable,.st-header-cell.st-header-editable{cursor:pointer}.st-header-cell.draggable{cursor:-webkit-grab;cursor:grab}.st-header-cell.st-header-selected{background-color:var(--st-header-selected-background-color)}.st-header-cell.st-header-selected .st-header-label-text{color:var(--st-header-selected-label-color)}.st-header-cell.st-header-selected .st-header-icon,.st-header-cell.st-header-selected .st-icon-container *{fill:var(--st-header-selected-icon-color)}.st-header-cell.st-header-selected .st-icon-container{color:var(--st-header-selected-icon-color)}.st-header-cell.st-header-selected .st-header-resize-handle{background-color:var(--st-resize-handle-selected-color)}.st-header-cell.st-header-has-highlighted-cell{background-color:var(--st-header-highlight-indicator-color)}.st-cell,.st-header-cell{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:initial;color:var(--st-cell-color);display:-webkit-box;display:-ms-flexbox;display:flex;gap:var(--st-spacing-small);overflow:hidden;position:relative}.st-cell.left-aligned,.st-header-cell.left-aligned{padding-left:var(--st-cell-padding);text-align:left}.st-cell.center-aligned,.st-cell.center-aligned>.st-cell-content,.st-header-cell.center-aligned,.st-header-cell.center-aligned>.st-header-label-text{text-align:center}.st-cell.clickable{cursor:pointer}.st-cell,.st-cell-editing,.st-header-cell{height:100%;width:100%}.st-cell-editing{position:relative}.st-header-label{-webkit-box-flex:1;-ms-flex-positive:1;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;flex-grow:1;height:100%;min-width:0;overflow:hidden}.st-cell-content,.st-header-label-text{-webkit-box-flex:1;-ms-flex:1;flex:1;text-align:left;text-overflow:ellipsis;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;width:100%}.st-header-label-text{color:var(--st-header-label-color);font-weight:600;overflow:hidden;padding-left:var(--st-cell-padding);padding-right:var(--st-cell-padding);text-overflow:ellipsis;white-space:nowrap}.st-cell-content.left-aligned,.st-header-label-text.left-aligned{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;text-align:left}.st-cell-content.center-aligned,.st-header-label-text.center-aligned{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;text-align:center}.st-cell-content.right-aligned,.st-header-label-text.right-aligned{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;text-align:right}.st-not-resizeable .st-cell-content{padding-left:var(--st-cell-padding);padding-right:var(--st-cell-padding)}.st-resizeable .st-body-pinned-right .st-cell-content,.st-resizeable .st-sticky-section-right .st-cell-content{padding-left:calc(var(--st-cell-padding) + var(--st-spacing-small) + var(--st-resize-handle-container-width));padding-right:var(--st-cell-padding)}.st-resizeable .st-body-main .st-cell-content,.st-resizeable .st-body-pinned-left .st-cell-content,.st-resizeable .st-sticky-section-left .st-cell-content,.st-resizeable .st-sticky-section-main .st-cell-content{padding-left:var(--st-cell-padding);padding-right:calc(var(--st-cell-padding) + var(--st-spacing-small) + var(--st-resize-handle-container-width))}.st-resizeable .st-selection-cell .st-cell-content{padding-left:var(--st-cell-padding);padding-right:var(--st-cell-padding)}.st-selection-cell.st-selection-has-highlighted-cell{background-color:var(--st-selection-highlight-indicator-color)}.st-cell{border:var(--st-border-width) solid #0000;z-index:1}.st-cell:focus,.st-cell:focus-visible{outline:none}.st-cell.even-column:not(.st-cell-selected){background-color:var(--st-even-column-background-color)}.st-cell.odd-column:not(.st-cell-selected){background-color:var(--st-odd-column-background-color)}.st-cell-depth-1{padding-left:calc(var(--st-cell-padding)*4)}.st-cell-depth-2{padding-left:calc(var(--st-cell-padding)*8)}.st-cell-depth-3{padding-left:calc(var(--st-cell-padding)*12)}.st-cell-depth-4{padding-left:calc(var(--st-cell-padding)*16)}.st-cell-depth-5{padding-left:calc(var(--st-cell-padding)*20)}.st-cell-depth-6{padding-left:calc(var(--st-cell-padding)*24)}.st-cell-depth-7{padding-left:calc(var(--st-cell-padding)*28)}.st-cell-depth-1 .st-cell-content{color:rgb(from var(--st-cell-color) r g b/80%)!important}.st-cell-depth-2 .st-cell-content,.st-cell-depth-3 .st-cell-content,.st-cell-depth-4 .st-cell-content,.st-cell-depth-5 .st-cell-content,.st-cell-depth-6 .st-cell-content,.st-cell-depth-7 .st-cell-content{color:rgb(from var(--st-cell-color) r g b/70%)!important}.st-icon-container{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;-ms-flex-item-align:stretch;align-items:center;align-self:stretch;border-radius:4px;display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:center;margin-left:4px;-webkit-transition:outline .2s ease;transition:outline .2s ease}.st-icon-container:focus-visible{outline:1px solid var(--st-focus-ring-color);outline-offset:2px}.st-collapse-icon-container{cursor:pointer}.st-expand-icon{fill:var(--st-header-label-color);cursor:pointer}.st-header-resize-handle-container{-ms-flex-negative:0;-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;cursor:col-resize;display:-webkit-box;display:-ms-flexbox;display:flex;flex-shrink:0;height:100%;justify-content:center;width:var(--st-resize-handle-container-width)}.st-header-resize-handle{background-color:var(--st-resize-handle-color);height:calc(100% - 20px);width:var(--st-resize-handle-width)}.st-header-cell.st-no-resize{padding-right:var(--st-resize-handle-container-width)}.st-row-separator{background-color:var(--st-border-color);cursor:pointer;height:1px;min-width:100%;position:absolute;width:100%}.st-row-separator.st-last-group-row{background-color:var(--st-last-group-row-separator-border-color)}.st-dragging:not(.st-sub-header){background-color:var(--st-dragging-background-color)}.st-dragging.st-sub-header{background-color:var(--st-dragging-sub-header-background-color)}.st-loading-skeleton{-webkit-animation:st-skeleton-pulse 1.5s ease-in-out infinite;animation:st-skeleton-pulse 1.5s ease-in-out infinite;background-color:var(--st-loading-skeleton-bg-color);border-radius:4px;height:16px;width:80%}@-webkit-keyframes st-skeleton-pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes st-skeleton-pulse{0%,to{opacity:1}50%{opacity:.5}}.st-cell-selected{background-color:var(--st-selected-cell-background-color)}.st-cell-selected .st-cell-content{color:var(--st-selected-cell-color)!important}.st-cell-selected-first{background-color:var(--st-selected-first-cell-background-color);border:var(--st-border-width) solid var(--st-selected-border-color)}.st-cell-selected-first .st-cell-content{color:var(--st-selected-first-cell-color)!important}.st-cell-selected.st-sub-cell{background-color:var(--st-selected-sub-cell-background-color)}.st-cell-selected.st-sub-cell .st-cell-content{color:var(--st-selected-sub-cell-color)!important}.st-cell-selected-first.st-sub-cell{background-color:var(--st-selected-sub-cell-background-color)}.st-cell-selected-first.st-sub-cell .st-cell-content{color:var(--st-selected-sub-cell-color)!important}.st-cell-column-selected{background-color:var(--st-selected-cell-background-color)}.st-cell-column-selected .st-cell-content{color:var(--st-selected-cell-color)!important}.st-cell-column-selected-first{background-color:var(--st-selected-first-cell-background-color)}.st-cell-column-selected-first .st-cell-content{color:var(--st-selected-first-cell-color)!important}.st-cell-column-selected.st-sub-cell{background-color:var(--st-selected-sub-cell-background-color)}.st-cell-column-selected.st-sub-cell .st-cell-content{color:var(--st-selected-sub-cell-color)!important}.st-cell-column-selected-first.st-sub-cell{background-color:var(--st-selected-sub-cell-background-color)}.st-cell-column-selected-first.st-sub-cell .st-cell-content{color:var(--st-selected-sub-cell-color)!important}.st-selected-top-border{border-top:var(--st-border-width) solid var(--st-selected-border-color)}.st-selected-bottom-border{border-bottom:var(--st-border-width) solid var(--st-selected-border-color)}.st-selected-left-border{border-left:var(--st-border-width) solid var(--st-selected-border-color)}.st-selected-right-border{border-right:var(--st-border-width) solid var(--st-selected-border-color)}.st-horizontal-scrollbar-container{-ms-flex-negative:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:var(--st-scrollbar-bg-color);border-top:var(--st-border-width) solid var(--st-border-color);display:-webkit-box;display:-ms-flexbox;display:flex;flex-shrink:0;height:13px;width:100%}.st-horizontal-scrollbar-left,.st-horizontal-scrollbar-right{-ms-flex-negative:0;flex-shrink:0}.st-horizontal-scrollbar-left{border-right:var(--st-border-width) solid var(--st-border-color)}.st-horizontal-scrollbar-right{border-left:var(--st-border-width) solid var(--st-border-color)}.st-horizontal-scrollbar-left,.st-horizontal-scrollbar-middle,.st-horizontal-scrollbar-right{height:8px;overflow-x:auto;overflow-y:hidden;scrollbar-color:auto}.st-horizontal-scrollbar-middle{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.st-horizontal-scrollbar-left>div,.st-horizontal-scrollbar-middle>div,.st-horizontal-scrollbar-right>div{height:.3px}.st-horizontal-scrollbar-left::-webkit-scrollbar,.st-horizontal-scrollbar-middle::-webkit-scrollbar,.st-horizontal-scrollbar-right::-webkit-scrollbar{height:8px}.st-footer{-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-box-align:center;-ms-flex-align:center;-ms-flex-negative:0;align-items:center;background-color:var(--st-footer-background-color);border-top:var(--st-border-width) solid var(--st-border-color);display:-webkit-box;display:-ms-flexbox;display:flex;flex-shrink:0;gap:var(--st-spacing-medium);justify-content:space-between;min-height:49px;min-height:var(--st-footer-height,49px);padding:var(--st-spacing-medium)}.simple-table-root.st-footer-position-top .st-footer{border-bottom:var(--st-border-width) solid var(--st-border-color);border-top:none}.st-footer-info{-webkit-box-align:center;-ms-flex-align:center;-ms-flex-negative:0;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;flex-shrink:0}.st-footer-results-text{color:var(--st-cell-color);font-size:.9em;white-space:nowrap}.st-footer-pagination{-ms-flex-negative:0;flex-shrink:0}.st-footer-pagination,.st-next-prev-btn{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.st-next-prev-btn{-webkit-box-pack:center;-ms-flex-pack:center;fill:var(--st-next-prev-btn-color);background-color:initial;border:none;border-radius:var(--st-border-radius);cursor:pointer;justify-content:center;padding:var(--st-spacing-small);-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease)}.disabled>.st-next-prev-icon{fill:var(--st-next-prev-btn-disabled-color);cursor:not-allowed}.st-next-prev-btn:not(.disabled):hover{background-color:var(--st-page-btn-hover-background-color)}.st-next-prev-btn:focus-visible{outline:1px solid var(--st-focus-ring-color);outline-offset:0}.st-page-btn{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;background-color:initial;border:none;border-radius:var(--st-border-radius);color:var(--st-page-btn-color);cursor:pointer;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;justify-content:center;margin-right:var(--st-spacing-small);padding:var(--st-spacing-small);-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease)}.st-page-btn:hover{background-color:var(--st-button-hover-background-color)}.st-page-btn:focus-visible{outline:1px solid var(--st-focus-ring-color);outline-offset:-2px}.st-page-btn.active{background-color:var(--st-button-active-background-color);color:#fff}.st-footer-pagination .st-page-btn.st-page-btn--compact-hidden{display:none}.st-page-ellipsis{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;color:var(--st-cell-color);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-weight:700;justify-content:center;margin:0 var(--st-spacing-small);padding:var(--st-spacing-small)}.editable-cell-input{border:var(--st-border-width) solid var(--st-border-color);-webkit-box-shadow:var(--st-edit-cell-shadow-color);box-shadow:var(--st-edit-cell-shadow-color);font-size:.875rem;height:100%;left:0;outline:none;padding:var(--st-cell-padding);position:absolute;top:0;width:100%;z-index:1}.editable-cell-input:focus{border:var(--st-border-width) solid var(--st-editable-cell-focus-border-color)}.st-column-editor{-ms-flex-negative:0;-ms-flex-item-align:stretch;align-self:stretch;background:var(--st-column-editor-background-color);border-left:var(--st-border-width) solid var(--st-border-color);color:var(--st-column-editor-text-color);display:-webkit-box;display:-ms-flexbox;display:flex;flex-shrink:0;height:auto;min-height:0;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.st-column-editor-text{-webkit-box-flex:1;-ms-flex-positive:1;cursor:pointer;flex-grow:1;padding:var(--st-spacing-medium) var(--st-spacing-small);-webkit-writing-mode:vertical-rl;-ms-writing-mode:tb-rl;writing-mode:vertical-rl;z-index:2}.st-column-editor.open,.st-column-editor.open .st-column-editor-text{background-color:var(--st-column-editor-background-color)}.st-column-editor-popout{background-color:var(--st-column-editor-popout-background-color);height:100%;overflow:hidden;position:absolute;right:calc(100% + 1px);top:0;-webkit-transition:width var(--st-transition-duration) var(--st-transition-ease);transition:width var(--st-transition-duration) var(--st-transition-ease);width:0;z-index:10}.st-column-editor-popout-content{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-overflow-scrolling:touch;border-left:var(--st-border-width) solid var(--st-border-color);display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;height:100%;-ms-touch-action:auto;touch-action:auto}.st-column-editor-search-wrapper{background-color:var(--st-column-editor-popout-background-color);padding:var(--st-spacing-medium);position:sticky;top:0;z-index:1}.st-column-editor-list{padding-bottom:var(--st-spacing-medium);padding-left:var(--st-spacing-medium);padding-right:var(--st-spacing-medium)}.st-column-editor-list,.st-column-editor-lists{-webkit-box-orient:vertical;-webkit-box-direction:normal;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.st-column-editor-lists{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;overflow:auto}.st-column-editor-section-label{color:var(--st-column-editor-text-color);font-size:.7rem;font-weight:600;letter-spacing:.04em;opacity:.75;padding:var(--st-spacing-small) var(--st-spacing-medium) 0;text-transform:uppercase}.st-column-editor-list-section{padding-bottom:var(--st-spacing-small);padding-top:0}.st-column-editor-footer{background-color:var(--st-column-editor-popout-background-color);border-top:var(--st-border-width) solid var(--st-border-color);bottom:0;position:sticky;z-index:1}.st-column-editor-footer,.st-column-editor-reset-btn{padding:var(--st-spacing-small) var(--st-spacing-medium)}.st-column-editor-reset-btn{background:#0000;border:var(--st-border-width) solid var(--st-border-color);border-radius:var(--st-border-radius);color:var(--st-column-editor-text-color);cursor:pointer;font-size:.8rem;font-weight:500;-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease);width:100%}.st-column-editor-reset-btn:hover{background-color:var(--st-hover-background-color)}.st-column-pin-btn{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;background:#0000;border:none;border-radius:4px;color:inherit;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:center;margin:0;padding:2px}.st-column-pin-btn:hover{background:color-mix(in srgb,var(--st-column-editor-text-color) 12%,#0000)}.st-column-pin-pinned-mark{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:center}.st-column-pin-pinned-active{background:color-mix(in srgb,var(--st-column-editor-text-color) 12%,#0000);border-radius:4px}.st-column-pin-pinned-essential{cursor:default}.st-column-pin-side-group{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;gap:1px}.st-column-pin-side{font-size:.65rem;font-weight:700;height:1.25rem;letter-spacing:-.02em;line-height:1;min-width:1.25rem;padding:0 3px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.st-column-pin-side-option{color:color-mix(in srgb,var(--st-column-editor-text-color) 52%,#0000);-webkit-transition:color var(--st-transition-duration) var(--st-transition-ease),background var(--st-transition-duration) var(--st-transition-ease);transition:color var(--st-transition-duration) var(--st-transition-ease),background var(--st-transition-duration) var(--st-transition-ease)}.st-column-pin-svg,.st-header-checkbox-item:hover .st-column-pin-side-option{color:var(--st-column-editor-text-color)}.st-column-pin-svg{display:block}.st-checkbox-disabled{cursor:not-allowed;opacity:.45}.st-header-checkbox-item{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;gap:var(--st-spacing-small);padding-bottom:var(--st-spacing-small);padding-top:var(--st-spacing-small)}.st-column-label-container{-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.st-drag-icon-container{-webkit-box-align:center;-ms-flex-align:center;align-items:center;cursor:-webkit-grab;cursor:grab;display:-webkit-box;display:-ms-flexbox;display:flex;opacity:.5;-webkit-transition:opacity var(--st-transition-duration) var(--st-transition-ease);transition:opacity var(--st-transition-duration) var(--st-transition-ease)}.st-drag-icon-container:hover{opacity:1}.st-drag-icon-container:active{cursor:-webkit-grabbing;cursor:grabbing}.st-drag-icon{fill:currentColor}.st-column-editor-drag-separator{background-color:var(--st-drag-separator-color);border-radius:1px;height:2px;margin:2px 0;-webkit-transition:opacity .2s ease;transition:opacity .2s ease;width:100%}.st-header-icon-container{-webkit-box-pack:center;-ms-flex-pack:center;display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:center;width:24px}.st-header-icon{fill:var(--st-header-icon-color);-webkit-transition:fill var(--st-transition-duration) var(--st-transition-ease);transition:fill var(--st-transition-duration) var(--st-transition-ease)}.st-collapsible-header-icon{-webkit-box-align:center;-ms-flex-align:center;align-items:center;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex}.st-collapsible-header-icon.st-expand-icon-container.expanded{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.st-collapsible-header-icon.st-expand-icon-container.collapsed{-webkit-transform:rotate(0deg);transform:rotate(0deg)}.st-column-editor-expand-icon{-webkit-box-align:center;-ms-flex-align:center;align-items:center;cursor:pointer}.st-column-editor-expand-icon,.st-nested-headers{display:-webkit-box;display:-ms-flexbox;display:flex}.st-nested-headers{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.st-column-editor-popout.open{min-width:240px;width:auto}.st-column-editor-popout.left{-webkit-transform:translateX(-100%);transform:translateX(-100%)}.st-column-editor-popout.open.left{-webkit-transform:translateX(0);transform:translateX(0)}.st-checkbox-label{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;gap:var(--st-spacing-small);justify-content:center;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.st-checkbox-input{height:0;opacity:0;pointer-events:none;position:absolute;width:0}.st-checkbox-input:focus-visible+.st-checkbox-custom{outline:1px solid var(--st-focus-ring-color);outline-offset:-1px}.st-checkbox-custom{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;background-color:#fff;border:var(--st-border-width) solid var(--st-checkbox-border-color);border-radius:var(--st-border-radius);display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:center;min-height:16px;min-width:16px;-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease),border-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease),border-color var(--st-transition-duration) var(--st-transition-ease)}.st-checkbox-custom.st-checked{background-color:var(--st-checkbox-checked-background-color);border-color:var(--st-checkbox-checked-border-color)}.st-checkbox-checkmark{fill:#fff}@-webkit-keyframes slide-in-left{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slide-in-left{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes slide-in-right{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}to{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slide-in-right{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}to{-webkit-transform:translateX(0);transform:translateX(0)}}.st-group-header{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:var(--st-header-background-color);border-bottom:var(--st-border-width) solid var(--st-border-color);color:var(--st-cell-color);cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;font-weight:var(--st-font-weight-bold);height:40px;-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.st-group-header:hover{background-color:var(--st-button-hover-background-color)}.st-group-header-content{gap:var(--st-spacing-medium)}.st-group-header-content,.st-group-toggle-icon{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.st-group-toggle-icon{-webkit-box-pack:center;-ms-flex-pack:center;font-size:.8em;height:16px;justify-content:center;width:16px}.st-group-name{font-weight:var(--st-font-weight-bold)}.st-group-count{color:var(--st-cell-odd-row-color);font-size:.9em}.st-group-header.expanded .st-group-toggle-icon{-webkit-transform:rotate(0deg);transform:rotate(0deg)}.st-group-header.collapsed .st-group-toggle-icon,.st-group-header.expanded .st-group-toggle-icon{-webkit-transition:-webkit-transform var(--st-transition-duration) var(--st-transition-ease);transition:-webkit-transform var(--st-transition-duration) var(--st-transition-ease);transition:transform var(--st-transition-duration) var(--st-transition-ease);transition:transform var(--st-transition-duration) var(--st-transition-ease),-webkit-transform var(--st-transition-duration) var(--st-transition-ease)}.st-group-header.collapsed .st-group-toggle-icon{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.st-expand-icon-container{-webkit-transition:-webkit-transform var(--st-transition-duration) var(--st-transition-ease);transition:-webkit-transform var(--st-transition-duration) var(--st-transition-ease);transition:transform var(--st-transition-duration) var(--st-transition-ease);transition:transform var(--st-transition-duration) var(--st-transition-ease),-webkit-transform var(--st-transition-duration) var(--st-transition-ease)}.st-expand-icon-container.expanded{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.st-expand-icon-container.collapsed{-webkit-transform:rotate(0deg);transform:rotate(0deg)}.st-expand-icon-container.placeholder{opacity:0;pointer-events:none}.st-accordion-animating .st-cell,.st-accordion-animating .st-header-cell{overflow:hidden;-webkit-transition:width var(--st-accordion-duration,var(--st-transition-duration)) var(--st-accordion-easing,var(--st-transition-ease)),height var(--st-accordion-duration,var(--st-transition-duration)) var(--st-accordion-easing,var(--st-transition-ease));transition:width var(--st-accordion-duration,var(--st-transition-duration)) var(--st-accordion-easing,var(--st-transition-ease)),height var(--st-accordion-duration,var(--st-transition-duration)) var(--st-accordion-easing,var(--st-transition-ease))}@-webkit-keyframes cell-flash{0%{background-color:var(--st-cell-flash-color)}to{background-color:initial}}@keyframes cell-flash{0%{background-color:var(--st-cell-flash-color)}to{background-color:initial}}.st-cell-updating{-webkit-animation:cell-flash .6s ease-in-out;animation:cell-flash .6s ease-in-out}@-webkit-keyframes copy-flash{0%{background-color:var(--st-copy-flash-color)}to{background-color:var(--st-selected-cell-background-color)}}@keyframes copy-flash{0%{background-color:var(--st-copy-flash-color)}to{background-color:var(--st-selected-cell-background-color)}}@-webkit-keyframes copy-flash-first{0%{background-color:var(--st-copy-flash-color)}to{background-color:var(--st-selected-first-cell-background-color)}}@keyframes copy-flash-first{0%{background-color:var(--st-copy-flash-color)}to{background-color:var(--st-selected-first-cell-background-color)}}.st-cell-copy-flash{-webkit-animation:copy-flash .8s ease-in-out;animation:copy-flash .8s ease-in-out}.st-cell-copy-flash-first{-webkit-animation:copy-flash-first .8s ease-in-out;animation:copy-flash-first .8s ease-in-out}@-webkit-keyframes warning-flash{0%{background-color:var(--st-warning-flash-color)}to{background-color:initial}}@keyframes warning-flash{0%{background-color:var(--st-warning-flash-color)}to{background-color:initial}}@-webkit-keyframes warning-flash-first{0%{background-color:var(--st-warning-flash-color)}to{background-color:var(--st-selected-first-cell-background-color)}}@keyframes warning-flash-first{0%{background-color:var(--st-warning-flash-color)}to{background-color:var(--st-selected-first-cell-background-color)}}.st-cell-warning-flash{-webkit-animation:warning-flash .6s ease-in-out;animation:warning-flash .6s ease-in-out}.st-cell-warning-flash-first{-webkit-animation:warning-flash-first .6s ease-in-out;animation:warning-flash-first .6s ease-in-out}.st-dropdown-content{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-overflow-scrolling:touch;background-color:var(--st-odd-row-background-color);border:1px solid var(--st-border-color);border-radius:var(--st-border-radius);-webkit-box-shadow:var(--st-edit-cell-shadow);box-shadow:var(--st-edit-cell-shadow);cursor:default;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;max-height:300px;min-width:120px;position:fixed;-ms-touch-action:auto;touch-action:auto;-webkit-transform:translateZ(0);transform:translateZ(0);will-change:transform;z-index:100}.st-dropdown-content.st-dropdown-content--allow-descendant-overflow{max-height:none;overflow:visible}.st-filter-container .st-dropdown-content{z-index:101}.st-dropdown-bottom-left,.st-dropdown-bottom-right,.st-dropdown-top-left,.st-dropdown-top-right{margin:0}.st-dropdown-item{color:var(--st-cell-color);cursor:pointer;font-size:.9em;padding:var(--st-spacing-small) var(--st-spacing-medium);-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease);white-space:nowrap}.st-dropdown-item:hover{background-color:var(--st-button-hover-background-color)}.st-dropdown-item.selected{background-color:var(--st-selected-cell-background-color);color:var(--st-selected-cell-color)}.st-dropdown-divider{background-color:var(--st-border-color);height:1px;margin:4px 0}.st-datepicker{background-color:var(--st-odd-row-background-color);font-family:inherit}.st-datepicker-header{-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:var(--st-header-background-color);border-bottom:1px solid var(--st-border-color);display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:space-between;padding:var(--st-spacing-medium)}.st-datepicker-header-label{-webkit-box-flex:1;color:var(--st-header-label-color);cursor:pointer;-ms-flex:1;flex:1;font-weight:600;text-align:center}.st-datepicker-nav-btn{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;background:#0000;border:none;border-radius:var(--st-border-radius);color:var(--st-cell-color);cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:1.2em;justify-content:center;padding:0 8px}.st-datepicker-nav-btn>*{fill:var(--st-cell-color)!important}.st-datepicker-nav-btn:hover{background-color:var(--st-button-hover-background-color)}.st-datepicker-grid{display:grid;padding:var(--st-spacing-medium)}.st-datepicker-days-grid{gap:4px;grid-template-columns:repeat(7,1fr)}.st-datepicker-months-grid,.st-datepicker-years-grid{gap:8px;grid-template-columns:repeat(3,1fr)}.st-datepicker-weekday{color:var(--st-datepicker-weekday-color);font-size:.8em;font-weight:600;padding:6px 0;text-align:center}.st-datepicker-day{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;border-radius:50%;color:var(--st-cell-color);cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:.9em;height:24px;justify-content:center;-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease);width:24px}.st-datepicker-day.empty{cursor:default}.st-datepicker-day:not(.empty):hover{background-color:var(--st-button-hover-background-color)}.st-datepicker-day.today{color:var(--st-button-active-background-color);font-weight:600}.st-datepicker-day.selected{background-color:var(--st-selected-cell-background-color);color:var(--st-selected-cell-color)}.st-datepicker-day.other-month{color:var(--st-datepicker-other-month-color)}.st-datepicker-month,.st-datepicker-year{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;border-radius:var(--st-border-radius);cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:center;padding:12px 8px;-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease)}.st-datepicker-month:hover,.st-datepicker-year:hover{background-color:var(--st-button-hover-background-color)}.st-datepicker-month.selected,.st-datepicker-year.selected{background-color:var(--st-selected-cell-background-color);color:var(--st-selected-cell-color)}.st-datepicker-footer{-webkit-box-pack:end;-ms-flex-pack:end;border-top:1px solid var(--st-border-color);display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:flex-end;padding:var(--st-spacing-medium)}.st-datepicker-today-btn{background-color:initial;border:1px solid var(--st-border-color);border-radius:var(--st-border-radius);color:var(--st-cell-color);cursor:pointer;padding:6px 12px;-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease)}.st-datepicker-today-btn:hover{background-color:var(--st-button-hover-background-color)}.st-filter-container{min-width:150px;padding:var(--st-spacing-medium)}.st-filter-container,.st-filter-section{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-box-flex:1;-ms-flex-positive:1;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;flex-grow:1}.st-filter-section{margin-bottom:var(--st-spacing-medium)}.st-filter-input{background-color:var(--st-odd-row-background-color);border:var(--st-border-width) solid var(--st-border-color);border-radius:var(--st-border-radius);color:var(--st-cell-color);font-family:inherit;font-size:.9em;outline:none;padding:var(--st-spacing-small);-webkit-transition:border-color var(--st-transition-duration) var(--st-transition-ease);transition:border-color var(--st-transition-duration) var(--st-transition-ease);width:100%}.st-filter-input:focus{border-color:var(--st-editable-cell-focus-border-color)}.st-filter-input-range-from{margin-bottom:var(--st-spacing-medium)}.st-filter-select{background-color:var(--st-odd-row-background-color);border:var(--st-border-width) solid var(--st-border-color);border-radius:var(--st-border-radius);color:var(--st-cell-color);cursor:pointer;font-family:inherit;font-size:.9em;outline:none;padding:var(--st-spacing-medium) var(--st-spacing-medium);-webkit-transition:border-color var(--st-transition-duration) var(--st-transition-ease);transition:border-color var(--st-transition-duration) var(--st-transition-ease);width:100%}.st-filter-select:focus{border-color:var(--st-editable-cell-focus-border-color)}.st-filter-actions{border-top:var(--st-border-width) solid var(--st-border-color);display:-webkit-box;display:-ms-flexbox;display:flex;gap:var(--st-spacing-medium);padding-top:var(--st-spacing-medium)}.st-filter-button{-webkit-box-flex:1;-moz-appearance:none;appearance:none;-webkit-appearance:none;border:none;border-radius:var(--st-border-radius);cursor:pointer;-ms-flex:1;flex:1;font-family:inherit;font-size:.9em;font-weight:500;padding:var(--st-spacing-small);-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease)}.st-filter-button:focus{outline:none}.st-filter-button:focus-visible{outline:2px solid var(--st-focus-ring-color);outline-offset:2px}.st-filter-button-apply{background-color:var(--st-button-active-background-color);color:#fff}.st-filter-button-apply:hover:not(.st-filter-button-disabled){opacity:.9}.st-filter-button-disabled{background-color:var(--st-filter-button-disabled-background-color);color:var(--st-filter-button-disabled-text-color);cursor:not-allowed}.st-filter-button-clear{background-color:initial;border:var(--st-border-width) solid var(--st-border-color);color:var(--st-cell-color)}.st-filter-button-clear:hover{background-color:var(--st-button-hover-background-color)}.st-custom-select{position:relative;width:100%}.st-custom-select-trigger{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:justify;-ms-flex-pack:justify;align-items:center;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-color:var(--st-odd-row-background-color);border:var(--st-border-width) solid var(--st-border-color);border-radius:var(--st-border-radius);color:var(--st-cell-color);cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;font-family:inherit;font-size:.9em;gap:var(--st-spacing-medium);justify-content:space-between;outline:none;padding:var(--st-spacing-small);text-align:left;-webkit-transition:border-color var(--st-transition-duration) var(--st-transition-ease);transition:border-color var(--st-transition-duration) var(--st-transition-ease);width:100%}.st-custom-select-open .st-custom-select-trigger,.st-custom-select-trigger:focus,.st-custom-select-trigger:hover:not(:disabled){border-color:var(--st-editable-cell-focus-border-color)}.st-custom-select-value{-webkit-box-flex:1;color:var(--st-cell-color);-ms-flex:1;flex:1;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.st-custom-select-arrow{-ms-flex-negative:0;color:var(--st-header-label-color);flex-shrink:0;-webkit-transition:-webkit-transform var(--st-transition-duration) var(--st-transition-ease);transition:-webkit-transform var(--st-transition-duration) var(--st-transition-ease);transition:transform var(--st-transition-duration) var(--st-transition-ease);transition:transform var(--st-transition-duration) var(--st-transition-ease),-webkit-transform var(--st-transition-duration) var(--st-transition-ease)}.st-custom-select-open .st-custom-select-arrow{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.st-custom-select-options{-webkit-box-orient:vertical;-webkit-box-direction:normal;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;max-height:200px;min-width:120px;overflow:auto;overflow-x:hidden}.st-custom-select-option{-ms-flex-negative:0;color:var(--st-cell-color);cursor:pointer;flex-shrink:0;font-size:.9em;overflow:hidden;padding:var(--st-spacing-small);text-overflow:ellipsis;-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease);white-space:nowrap}.st-custom-select-option-focused,.st-custom-select-option:hover{background-color:var(--st-button-hover-background-color)}.st-custom-select-option-selected{background-color:var(--st-selected-cell-background-color);color:var(--st-selected-cell-color)}.st-custom-select-option-selected.st-custom-select-option-focused{background-color:var(--st-selected-cell-background-color);opacity:.9}.st-custom-select-disabled{opacity:var(--st-opacity-disabled);pointer-events:none}.st-custom-select-disabled .st-custom-select-trigger{background-color:var(--st-header-background-color);color:var(--st-header-label-color);cursor:not-allowed}.st-enum-filter-options{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-box-flex:1;-ms-flex-positive:1;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;flex-grow:1;gap:var(--st-spacing-small);max-height:200px;overflow:auto}.st-enum-filter-options .st-checkbox-label{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;width:100%}.st-enum-search,.st-enum-select-all{border-bottom:var(--st-border-width) solid var(--st-border-color);padding-bottom:var(--st-spacing-small)}.st-enum-select-all-label{color:var(--st-header-label-color);font-weight:600}.st-enum-option-label{color:var(--st-cell-color);font-size:.9em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.st-enum-filter-options .st-enum-option-label{-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.st-enum-no-results{color:var(--st-slate-400);font-size:.9em;font-style:italic;padding:var(--st-spacing-medium);text-align:center}.st-row-number{font-size:.8em;font-weight:500;opacity:.6;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.st-selection-cell-content{-webkit-box-pack:justify;-ms-flex-pack:justify;gap:8px;justify-content:space-between;width:100%}.st-row-buttons,.st-selection-cell-content,.st-selection-control{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.st-row-buttons,.st-selection-control{-ms-flex-negative:0;flex-shrink:0}.st-row-buttons{-webkit-box-pack:end;-ms-flex-pack:end;gap:4px;justify-content:flex-end}.st-row-button{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;justify-content:center}.st-column-borders .st-cell:not(.st-last-column),.st-column-borders .st-header-cell:not(.st-last-column),.st-column-borders .st-row.hovered .st-cell:not(.st-last-column):not(.st-cell-selected):not(.st-cell-selected-first):not(.st-cell-column-selected):not(.st-cell-column-selected-first),.st-column-borders .st-row.selected.hovered .st-cell:not(.st-last-column):not(.st-cell-selected):not(.st-cell-selected-first):not(.st-cell-column-selected):not(.st-cell-column-selected-first){-webkit-box-shadow:var(--st-border-width) 0 0 0 var(--st-border-color);box-shadow:var(--st-border-width) 0 0 0 var(--st-border-color)}.st-tooltip{word-wrap:break-word;-webkit-animation:st-tooltip-fade-in .2s ease-out;animation:st-tooltip-fade-in .2s ease-out;background-color:var(--st-tooltip-background-color);border-radius:var(--st-tooltip-border-radius);-webkit-box-shadow:var(--st-tooltip-shadow);box-shadow:var(--st-tooltip-shadow);color:var(--st-tooltip-text-color);font-size:.8em;line-height:1.4;max-width:300px;padding:var(--st-tooltip-padding);pointer-events:none}@-webkit-keyframes st-tooltip-fade-in{0%{opacity:0;-webkit-transform:translateY(-4px);transform:translateY(-4px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes st-tooltip-fade-in{0%{opacity:0;-webkit-transform:translateY(-4px);transform:translateY(-4px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}.st-row.st-state-row{display:grid;position:absolute;width:100%}.st-row.st-state-row-spacer{background-color:initial;display:block;position:absolute;width:100%}.st-state-row-cell{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:var(--st-body-background-color);display:-webkit-box;display:-ms-flexbox;display:flex;grid-column:1/-1}.st-bar-chart,.st-line-area-chart{image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges}.st-bar-chart rect{shape-rendering:crispEdges}.theme-light{--st-border-radius:4px;--st-cell-padding:8px;--st-spacing-small:4px;--st-spacing-medium:8px;--st-scrollbar-bg-color:var(--st-slate-50);--st-scrollbar-thumb-color:var(--st-slate-300);--st-scrollbar-width:thin;--st-border-color:var(--st-slate-300);--st-footer-background-color:var(--st-slate-50);--st-last-group-row-separator-border-color:var(--st-slate-400);--st-odd-row-background-color:var(--st-white);--st-even-row-background-color:var(--st-slate-50);--st-hover-row-background-color:var(--st-slate-100);--st-selected-row-background-color:var(--st-blue-50);--st-odd-column-background-color:var(--st-slate-50);--st-even-column-background-color:var(--st-white);--st-header-background-color:var(--st-slate-100);--st-sub-header-background-color:var(--st-slate-200);--st-header-label-color:var(--st-slate-900);--st-header-icon-color:var(--st-slate-500);--st-cell-color:var(--st-slate-900);--st-cell-odd-row-color:var(--st-slate-800);--st-edit-cell-shadow:0 1px 2px 0 #0000000d;--st-sub-cell-background-color:var(--st-slate-100);--st-sub-cell-hover-background-color:var(--st-slate-200);--st-selected-cell-background-color:var(--st-blue-100);--st-selected-first-cell-background-color:var(--st-blue-50);--st-selected-cell-color:var(--st-slate-900);--st-selected-first-cell-color:var(--st-slate-900);--st-selected-sub-cell-background-color:var(--st-blue-200);--st-selected-sub-cell-color:var(--st-slate-900);--st-dragging-background-color:var(--st-slate-200);--st-dragging-sub-header-background-color:var(--st-slate-300);--st-resize-handle-color:var(--st-slate-400);--st-resize-handle-selected-color:var(--st-white);--st-selected-border-color:var(--st-blue-500);--st-editable-cell-focus-border-color:var(--st-blue-500);--st-focus-ring-color:var(--st-blue-800);--st-button-hover-background-color:var(--st-slate-100);--st-button-active-background-color:var(--st-blue-600);--st-next-prev-btn-color:var(--st-slate-600);--st-next-prev-btn-disabled-color:var(--st-slate-400);--st-page-btn-color:var(--st-slate-600);--st-page-btn-hover-background-color:var(--st-slate-100);--st-checkbox-checked-background-color:var(--st-blue-600);--st-checkbox-checked-border-color:var(--st-blue-600);--st-checkbox-border-color:var(--st-slate-300);--st-column-editor-background-color:var(--st-white);--st-column-editor-popout-background-color:var(--st-white);--st-column-editor-text-color:var(--st-slate-500);--st-datepicker-weekday-color:var(--st-slate-500);--st-datepicker-other-month-color:var(--st-slate-400);--st-filter-button-disabled-background-color:var(--st-slate-300);--st-filter-button-disabled-text-color:var(--st-slate-500);--st-cell-flash-color:var(--st-slate-200);--st-copy-flash-color:var(--st-blue-500);--st-warning-flash-color:var(--st-red-300);--st-tooltip-background-color:var(--st-slate-900);--st-tooltip-text-color:var(--st-white);--st-tooltip-border-radius:6px;--st-tooltip-padding:8px 12px;--st-tooltip-font-size:13px;--st-tooltip-shadow:0 2px 8px #00000026;--st-header-selected-background-color:var(--st-blue-600);--st-header-selected-label-color:var(--st-white);--st-header-selected-icon-color:var(--st-white);--st-header-highlight-indicator-color:var(--st-blue-100);--st-selection-highlight-indicator-color:var(--st-slate-300);--st-loading-skeleton-bg-color:var(--st-slate-200);--st-chart-color:var(--st-blue-300);--st-chart-fill-color:var(--st-blue-300);--st-drag-separator-color:var(--st-blue-500)}.theme-dark{--st-border-radius:4px;--st-cell-padding:8px;--st-spacing-small:4px;--st-spacing-medium:8px;--st-scrollbar-bg-color:var(--st-gray-900);--st-scrollbar-thumb-color:var(--st-gray-600);--st-scrollbar-width:thin;--st-scrollbar-thumb-border-radius:4px;--st-border-color:var(--st-gray-700);--st-footer-background-color:var(--st-gray-900);--st-last-group-row-separator-border-color:var(--st-gray-500);--st-odd-row-background-color:var(--st-gray-800);--st-even-row-background-color:var(--st-gray-900);--st-hover-row-background-color:var(--st-gray-600);--st-selected-row-background-color:var(--st-blue-950);--st-odd-column-background-color:var(--st-gray-800);--st-even-column-background-color:var(--st-gray-900);--st-header-background-color:var(--st-gray-800);--st-sub-header-background-color:var(--st-gray-700);--st-sub-cell-background-color:var(--st-gray-800);--st-sub-cell-hover-background-color:var(--st-gray-700);--st-header-label-color:var(--st-gray-100);--st-header-icon-color:var(--st-gray-400);--st-cell-color:var(--st-gray-100);--st-cell-odd-row-color:var(--st-gray-200);--st-edit-cell-shadow:0 1px 3px 0 #ffffff1a;--st-selected-cell-background-color:var(--st-blue-900);--st-selected-first-cell-background-color:var(--st-blue-800);--st-selected-cell-color:var(--st-white);--st-selected-first-cell-color:var(--st-white);--st-selected-sub-cell-background-color:var(--st-blue-800);--st-selected-sub-cell-color:var(--st-white);--st-dragging-background-color:var(--st-gray-500);--st-dragging-sub-header-background-color:var(--st-gray-600);--st-resize-handle-color:var(--st-gray-500);--st-resize-handle-selected-color:var(--st-white);--st-selected-border-color:var(--st-blue-400);--st-editable-cell-focus-border-color:var(--st-blue-400);--st-focus-ring-color:var(--st-blue-400);--st-button-hover-background-color:var(--st-gray-600);--st-button-active-background-color:var(--st-blue-500);--st-next-prev-btn-color:var(--st-gray-300);--st-next-prev-btn-disabled-color:var(--st-gray-600);--st-page-btn-color:var(--st-gray-300);--st-page-btn-hover-background-color:var(--st-gray-600);--st-checkbox-checked-background-color:var(--st-blue-500);--st-checkbox-checked-border-color:var(--st-blue-500);--st-checkbox-border-color:var(--st-gray-600);--st-column-editor-background-color:var(--st-gray-800);--st-column-editor-popout-background-color:var(--st-gray-800);--st-column-editor-text-color:var(--st-gray-400);--st-datepicker-weekday-color:var(--st-gray-400);--st-datepicker-other-month-color:var(--st-gray-600);--st-filter-button-disabled-background-color:var(--st-gray-700);--st-filter-button-disabled-text-color:var(--st-gray-500);--st-cell-flash-color:var(--st-gray-500);--st-copy-flash-color:var(--st-blue-500);--st-warning-flash-color:var(--st-red-400);--st-tooltip-background-color:var(--st-gray-100);--st-tooltip-text-color:var(--st-gray-900);--st-tooltip-border-radius:6px;--st-tooltip-padding:8px 12px;--st-tooltip-font-size:13px;--st-tooltip-shadow:0 2px 8px #0000004d;--st-header-selected-background-color:var(--st-blue-500);--st-header-selected-label-color:var(--st-white);--st-header-selected-icon-color:var(--st-white);--st-header-highlight-indicator-color:var(--st-blue-900);--st-selection-highlight-indicator-color:var(--st-gray-600);--st-loading-skeleton-bg-color:var(--st-gray-700);--st-chart-color:var(--st-blue-400);--st-chart-fill-color:var(--st-blue-400);--st-drag-separator-color:var(--st-blue-400)}.theme-neutral{--st-border-radius:4px;--st-cell-padding:8px;--st-spacing-small:4px;--st-spacing-medium:8px;--st-scrollbar-bg-color:var(--st-neutral-100);--st-scrollbar-thumb-color:var(--st-neutral-400);--st-scrollbar-width:thin;--st-scrollbar-thumb-border-radius:4px;--st-border-color:var(--st-neutral-300);--st-footer-background-color:var(--st-neutral-50);--st-last-group-row-separator-border-color:var(--st-neutral-400);--st-odd-row-background-color:var(--st-neutral-50);--st-even-row-background-color:var(--st-neutral-100);--st-hover-row-background-color:var(--st-neutral-200);--st-selected-row-background-color:var(--st-neutral-200);--st-odd-column-background-color:var(--st-neutral-50);--st-even-column-background-color:var(--st-neutral-100);--st-header-background-color:var(--st-neutral-200);--st-sub-header-background-color:var(--st-neutral-300);--st-sub-cell-background-color:var(--st-neutral-200);--st-sub-cell-hover-background-color:var(--st-neutral-300);--st-header-label-color:var(--st-neutral-900);--st-header-icon-color:var(--st-neutral-500);--st-cell-color:var(--st-neutral-900);--st-cell-odd-row-color:var(--st-neutral-800);--st-edit-cell-shadow:0 1px 2px 0 #0000000d;--st-selected-cell-background-color:var(--st-neutral-400);--st-selected-first-cell-background-color:var(--st-neutral-300);--st-selected-cell-color:var(--st-neutral-900);--st-selected-first-cell-color:var(--st-neutral-900);--st-selected-sub-cell-background-color:var(--st-neutral-400);--st-selected-sub-cell-color:var(--st-neutral-900);--st-dragging-background-color:var(--st-neutral-300);--st-dragging-sub-header-background-color:var(--st-neutral-400);--st-resize-handle-color:var(--st-neutral-400);--st-resize-handle-selected-color:var(--st-white);--st-selected-border-color:var(--st-neutral-600);--st-editable-cell-focus-border-color:var(--st-neutral-500);--st-focus-ring-color:var(--st-neutral-600);--st-button-hover-background-color:var(--st-neutral-200);--st-button-active-background-color:var(--st-neutral-600);--st-next-prev-btn-color:var(--st-neutral-600);--st-next-prev-btn-disabled-color:var(--st-neutral-400);--st-page-btn-color:var(--st-neutral-600);--st-page-btn-hover-background-color:var(--st-neutral-200);--st-checkbox-checked-background-color:var(--st-neutral-600);--st-checkbox-checked-border-color:var(--st-neutral-600);--st-checkbox-border-color:var(--st-neutral-300);--st-column-editor-background-color:var(--st-neutral-50);--st-column-editor-popout-background-color:var(--st-neutral-50);--st-column-editor-text-color:var(--st-neutral-500);--st-datepicker-weekday-color:var(--st-neutral-500);--st-datepicker-other-month-color:var(--st-neutral-400);--st-filter-button-disabled-background-color:var(--st-neutral-300);--st-filter-button-disabled-text-color:var(--st-neutral-500);--st-cell-flash-color:var(--st-neutral-400);--st-copy-flash-color:var(--st-neutral-600);--st-warning-flash-color:var(--st-red-400);--st-tooltip-background-color:var(--st-neutral-800);--st-tooltip-text-color:var(--st-white);--st-tooltip-border-radius:6px;--st-tooltip-padding:8px 12px;--st-tooltip-font-size:13px;--st-tooltip-shadow:0 2px 8px #00000026;--st-header-selected-background-color:var(--st-neutral-600);--st-header-selected-label-color:var(--st-white);--st-header-selected-icon-color:var(--st-white);--st-header-highlight-indicator-color:var(--st-neutral-400);--st-selection-highlight-indicator-color:var(--st-neutral-400);--st-loading-skeleton-bg-color:var(--st-neutral-200);--st-chart-color:var(--st-neutral-500);--st-chart-fill-color:var(--st-neutral-500);--st-drag-separator-color:var(--st-neutral-600)}.theme-sky{--st-border-radius:4px;--st-cell-padding:8px;--st-spacing-small:4px;--st-spacing-medium:8px;--st-scrollbar-bg-color:var(--st-blue-50);--st-scrollbar-thumb-color:var(--st-blue-300);--st-scrollbar-width:thin;--st-scrollbar-thumb-border-radius:4px;--st-border-color:var(--st-blue-300);--st-footer-background-color:var(--st-blue-50);--st-last-group-row-separator-border-color:var(--st-blue-400);--st-odd-row-background-color:var(--st-blue-50);--st-even-row-background-color:var(--st-blue-100);--st-hover-row-background-color:var(--st-blue-200);--st-selected-row-background-color:var(--st-sky-100);--st-odd-column-background-color:var(--st-blue-50);--st-even-column-background-color:var(--st-blue-100);--st-header-background-color:var(--st-blue-200);--st-sub-header-background-color:var(--st-blue-300);--st-sub-cell-background-color:var(--st-sky-100);--st-sub-cell-hover-background-color:var(--st-sky-200);--st-header-label-color:var(--st-blue-900);--st-header-icon-color:var(--st-blue-600);--st-cell-color:var(--st-blue-900);--st-cell-odd-row-color:var(--st-blue-800);--st-edit-cell-shadow:0 1px 2px 0 #0000000d;--st-selected-cell-background-color:var(--st-blue-400);--st-selected-first-cell-background-color:var(--st-blue-300);--st-selected-cell-color:var(--st-blue-900);--st-selected-first-cell-color:var(--st-blue-900);--st-selected-sub-cell-background-color:var(--st-sky-300);--st-selected-sub-cell-color:var(--st-blue-900);--st-dragging-background-color:var(--st-sky-300);--st-dragging-sub-header-background-color:var(--st-sky-400);--st-resize-handle-color:var(--st-blue-400);--st-resize-handle-selected-color:var(--st-white);--st-selected-border-color:var(--st-blue-600);--st-editable-cell-focus-border-color:var(--st-blue-500);--st-focus-ring-color:var(--st-blue-600);--st-button-hover-background-color:var(--st-blue-200);--st-button-active-background-color:var(--st-blue-600);--st-next-prev-btn-color:var(--st-blue-600);--st-next-prev-btn-disabled-color:var(--st-blue-400);--st-page-btn-color:var(--st-blue-600);--st-page-btn-hover-background-color:var(--st-blue-200);--st-checkbox-checked-background-color:var(--st-blue-600);--st-checkbox-checked-border-color:var(--st-blue-600);--st-checkbox-border-color:var(--st-blue-300);--st-column-editor-background-color:var(--st-blue-50);--st-column-editor-popout-background-color:var(--st-blue-50);--st-column-editor-text-color:var(--st-blue-600);--st-datepicker-weekday-color:var(--st-blue-600);--st-datepicker-other-month-color:var(--st-blue-400);--st-filter-button-disabled-background-color:var(--st-blue-300);--st-filter-button-disabled-text-color:var(--st-blue-500);--st-cell-flash-color:var(--st-sky-200);--st-copy-flash-color:var(--st-blue-600);--st-warning-flash-color:var(--st-orange-400);--st-tooltip-background-color:var(--st-blue-900);--st-tooltip-text-color:var(--st-white);--st-tooltip-border-radius:6px;--st-tooltip-padding:8px 12px;--st-tooltip-font-size:13px;--st-tooltip-shadow:0 2px 8px #00000026;--st-header-selected-background-color:var(--st-blue-600);--st-header-selected-label-color:var(--st-white);--st-header-selected-icon-color:var(--st-white);--st-header-highlight-indicator-color:var(--st-blue-400);--st-selection-highlight-indicator-color:var(--st-blue-400);--st-loading-skeleton-bg-color:var(--st-blue-200);--st-chart-color:var(--st-blue-900);--st-chart-fill-color:var(--st-blue-900);--st-drag-separator-color:var(--st-blue-600)}.theme-violet{--st-border-radius:8px;--st-cell-padding:12px;--st-spacing-small:6px;--st-spacing-medium:10px;--st-scrollbar-bg-color:var(--st-stone-100);--st-scrollbar-thumb-color:var(--st-violet-500);--st-scrollbar-width:thin;--st-scrollbar-thumb-border-radius:4px;--st-border-color:var(--st-stone-200);--st-footer-background-color:var(--st-stone-100);--st-last-group-row-separator-border-color:var(--st-stone-300);--st-odd-row-background-color:var(--st-amber-50);--st-even-row-background-color:var(--st-amber-100);--st-hover-row-background-color:var(--st-amber-200);--st-selected-row-background-color:var(--st-violet-100);--st-odd-column-background-color:var(--st-violet-50);--st-even-column-background-color:var(--st-amber-50);--st-header-background-color:var(--st-violet-600);--st-sub-header-background-color:var(--st-violet-500);--st-sub-cell-background-color:var(--st-violet-100);--st-sub-cell-hover-background-color:var(--st-violet-200);--st-header-label-color:var(--st-white);--st-header-icon-color:var(--st-violet-200);--st-cell-color:var(--st-stone-700);--st-cell-odd-row-color:var(--st-stone-700);--st-edit-cell-shadow:0 4px 6px -1px #7c3aed1a,0 2px 4px -1px #7c3aed0f;--st-selected-cell-background-color:var(--st-violet-50);--st-selected-first-cell-background-color:var(--st-violet-100);--st-selected-cell-color:var(--st-violet-800);--st-selected-first-cell-color:var(--st-violet-800);--st-selected-sub-cell-background-color:var(--st-violet-200);--st-selected-sub-cell-color:var(--st-violet-800);--st-dragging-background-color:var(--st-violet-200);--st-dragging-sub-header-background-color:var(--st-violet-300);--st-resize-handle-color:var(--st-violet-400);--st-resize-handle-selected-color:var(--st-white);--st-selected-border-color:var(--st-violet-500);--st-editable-cell-focus-border-color:var(--st-violet-500);--st-focus-ring-color:var(--st-violet-600);--st-button-hover-background-color:var(--st-violet-50);--st-button-active-background-color:var(--st-violet-600);--st-next-prev-btn-color:var(--st-violet-600);--st-next-prev-btn-disabled-color:var(--st-violet-400);--st-page-btn-color:var(--st-violet-600);--st-page-btn-hover-background-color:var(--st-violet-50);--st-checkbox-checked-background-color:var(--st-violet-500);--st-checkbox-checked-border-color:var(--st-violet-600);--st-checkbox-border-color:var(--st-stone-200);--st-column-editor-background-color:var(--st-white);--st-column-editor-popout-background-color:var(--st-white);--st-column-editor-text-color:var(--st-violet-600);--st-datepicker-weekday-color:var(--st-violet-600);--st-datepicker-other-month-color:var(--st-violet-400);--st-filter-button-disabled-background-color:var(--st-stone-200);--st-filter-button-disabled-text-color:var(--st-stone-500);--st-cell-flash-color:var(--st-violet-200);--st-copy-flash-color:var(--st-violet-600);--st-warning-flash-color:var(--st-red-400);--st-tooltip-background-color:var(--st-violet-800);--st-tooltip-text-color:var(--st-white);--st-tooltip-border-radius:6px;--st-tooltip-padding:8px 12px;--st-tooltip-font-size:13px;--st-tooltip-shadow:0 2px 8px #00000026;--st-header-selected-background-color:var(--st-violet-600);--st-header-selected-label-color:var(--st-white);--st-header-selected-icon-color:var(--st-white);--st-header-highlight-indicator-color:var(--st-violet-800);--st-selection-highlight-indicator-color:var(--st-stone-400);--st-loading-skeleton-bg-color:var(--st-stone-200);--st-chart-color:var(--st-violet-400);--st-chart-fill-color:var(--st-violet-400);--st-drag-separator-color:var(--st-violet-500)}.theme-frost{--st-border-radius:0px;--st-cell-padding:8px;--st-spacing-small:4px;--st-spacing-medium:8px;--st-scrollbar-bg-color:#f8faff;--st-scrollbar-thumb-color:#c5d1dd;--st-scrollbar-width:thin;--st-scrollbar-thumb-border-radius:4px;--st-border-color:#e1e7ea;--st-footer-background-color:#f8faff;--st-last-group-row-separator-border-color:#c5d1dd;--st-odd-row-background-color:#fff;--st-even-row-background-color:#f4f8fc;--st-hover-row-background-color:#e5effe;--st-selected-row-background-color:#d4e4fd;--st-odd-column-background-color:#fff;--st-even-column-background-color:#fff;--st-header-background-color:#f8faff;--st-sub-header-background-color:#e5effe;--st-sub-cell-background-color:#f8faff;--st-sub-cell-hover-background-color:#d4e4fd;--st-header-label-color:#0b1215;--st-header-icon-color:#5a6c7d;--st-cell-color:#0b1215;--st-cell-odd-row-color:#0b1215;--st-edit-cell-shadow:0 1px 2px 0 #0b12150d;--st-selected-cell-background-color:#c9dcfb;--st-selected-first-cell-background-color:#d4e4fd;--st-selected-cell-color:#0b1215;--st-selected-first-cell-color:#0b1215;--st-selected-sub-cell-background-color:#c9dcfb;--st-selected-sub-cell-color:#0b1215;--st-dragging-background-color:#d0dce8;--st-dragging-sub-header-background-color:#0d9488;--st-resize-handle-color:#c5d1dd;--st-resize-handle-selected-color:#5a6c7d;--st-selected-border-color:#5a9cf8;--st-editable-cell-focus-border-color:#5a9cf8;--st-focus-ring-color:#5a9cf8;--st-button-hover-background-color:#e5effe;--st-button-active-background-color:#5a9cf8;--st-next-prev-btn-color:#5a6c7d;--st-next-prev-btn-disabled-color:#c5d1dd;--st-page-btn-color:#5a6c7d;--st-page-btn-hover-background-color:#e5effe;--st-checkbox-checked-background-color:#5a9cf8;--st-checkbox-checked-border-color:#4a8ce8;--st-checkbox-border-color:#e1e7ea;--st-column-editor-background-color:#fff;--st-column-editor-popout-background-color:#fff;--st-column-editor-text-color:#5a6c7d;--st-datepicker-weekday-color:#5a6c7d;--st-datepicker-other-month-color:#c5d1dd;--st-filter-button-disabled-background-color:#e1e7ea;--st-filter-button-disabled-text-color:#5a6c7d;--st-cell-flash-color:#d0dce8;--st-copy-flash-color:#5a9cf8;--st-warning-flash-color:#f87171;--st-tooltip-background-color:#0b1215;--st-tooltip-text-color:#fff;--st-tooltip-border-radius:6px;--st-tooltip-padding:8px 12px;--st-tooltip-font-size:13px;--st-tooltip-shadow:0 2px 8px #00000026;--st-header-selected-background-color:#5a9cf8;--st-header-selected-label-color:#fff;--st-header-selected-icon-color:#fff;--st-header-highlight-indicator-color:#c9dcfb;--st-selection-highlight-indicator-color:#e1e7ea;--st-loading-skeleton-bg-color:#e1e7ea;--st-chart-color:var(--st-blue-300);--st-chart-fill-color:var(--st-blue-300);--st-drag-separator-color:#0d9488}.theme-modern-light{--st-border-radius:4px;--st-cell-padding:12px;--st-spacing-small:4px;--st-spacing-medium:8px;--st-scrollbar-bg-color:#fafafa;--st-scrollbar-thumb-color:#d1d5db;--st-scrollbar-width:thin;--st-border-color:#e5e7eb;--st-footer-background-color:var(--st-white);--st-last-group-row-separator-border-color:#e5e7eb;--st-odd-row-background-color:var(--st-white);--st-even-row-background-color:#fafafa;--st-hover-row-background-color:#f3f4f6;--st-selected-row-background-color:#eff6ff;--st-odd-column-background-color:var(--st-white);--st-even-column-background-color:var(--st-white);--st-header-background-color:var(--st-white);--st-sub-header-background-color:#fafafa;--st-header-label-color:#111827;--st-header-icon-color:#6b7280;--st-cell-color:#111827;--st-cell-odd-row-color:#374151;--st-edit-cell-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;--st-sub-cell-background-color:#f9fafb;--st-sub-cell-hover-background-color:#f3f4f6;--st-selected-cell-background-color:#dbeafe;--st-selected-first-cell-background-color:#eff6ff;--st-selected-cell-color:#111827;--st-selected-first-cell-color:#111827;--st-selected-sub-cell-background-color:#bfdbfe;--st-selected-sub-cell-color:#111827;--st-dragging-background-color:#f3f4f6;--st-dragging-sub-header-background-color:#e5e7eb;--st-resize-handle-color:#e5e7eb;--st-resize-handle-selected-color:#3b82f6;--st-selected-border-color:#3b82f6;--st-editable-cell-focus-border-color:#3b82f6;--st-focus-ring-color:#3b82f6;--st-button-hover-background-color:#f3f4f6;--st-button-active-background-color:#3b82f6;--st-next-prev-btn-color:#6b7280;--st-next-prev-btn-disabled-color:#d1d5db;--st-page-btn-color:#6b7280;--st-page-btn-hover-background-color:#f3f4f6;--st-checkbox-checked-background-color:#3b82f6;--st-checkbox-checked-border-color:#3b82f6;--st-checkbox-border-color:#d1d5db;--st-column-editor-background-color:var(--st-white);--st-column-editor-popout-background-color:var(--st-white);--st-column-editor-text-color:#6b7280;--st-datepicker-weekday-color:#6b7280;--st-datepicker-other-month-color:#d1d5db;--st-filter-button-disabled-background-color:#f3f4f6;--st-filter-button-disabled-text-color:#9ca3af;--st-cell-flash-color:#dbeafe;--st-copy-flash-color:#3b82f6;--st-warning-flash-color:#fca5a5;--st-tooltip-background-color:#1f2937;--st-tooltip-text-color:var(--st-white);--st-tooltip-border-radius:6px;--st-tooltip-padding:6px 10px;--st-tooltip-font-size:12px;--st-tooltip-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;--st-header-selected-background-color:#3b82f6;--st-header-selected-label-color:var(--st-white);--st-header-selected-icon-color:var(--st-white);--st-header-highlight-indicator-color:#dbeafe;--st-selection-highlight-indicator-color:#f3f4f6;--st-loading-skeleton-bg-color:#f3f4f6;--st-chart-color:#3b82f6;--st-chart-fill-color:#dbeafe;--st-drag-separator-color:#3b82f6;--st-body-background-color:var(--st-white)}.theme-modern-light .st-wrapper{border:1px solid var(--st-border-color)}.theme-modern-light .st-header-main,.theme-modern-light .st-header-pinned-left,.theme-modern-light .st-header-pinned-right{border-bottom:1px solid var(--st-border-color)}.theme-modern-light .st-body-pinned-left,.theme-modern-light .st-header-pinned-left{border-right:1px solid var(--st-border-color)}.theme-modern-light .st-body-pinned-right,.theme-modern-light .st-header-pinned-right{border-left:1px solid var(--st-border-color)}.theme-modern-light .st-row-separator{background-color:var(--st-border-color)}.theme-modern-light .st-header-cell{color:#6b7280;font-size:14px;font-weight:500}.theme-modern-light .st-cell-content{color:#111827;font-size:14px}.theme-modern-light .st-row.hovered{-webkit-transition:background-color .15s ease;transition:background-color .15s ease}.theme-modern-light .st-footer{background-color:var(--st-white);border-top:1px solid var(--st-border-color);gap:12px;padding:12px 16px}.theme-modern-light .st-footer-results-text{color:#6b7280;font-size:14px}.theme-modern-light .st-footer-pagination{-ms-flex-wrap:nowrap;flex-wrap:nowrap;gap:2px;overflow:hidden}.theme-modern-light .st-page-ellipsis{color:#9ca3af;font-weight:400;padding:0 4px}.theme-modern-light .st-page-btn{-ms-flex-negative:0;border-radius:4px;color:#374151;flex-shrink:0;font-size:13px;font-weight:500;margin-right:0;min-width:36px;padding:6px 8px;-webkit-transition:all .15s ease;transition:all .15s ease}.theme-modern-light .st-page-btn:hover{background-color:#f3f4f6}.theme-modern-light .st-page-btn.active{background-color:#3b82f6;color:#fff;font-weight:600}.theme-modern-light .st-next-prev-btn{-ms-flex-negative:0;border-radius:4px;flex-shrink:0;margin-left:4px;padding:6px 8px;-webkit-transition:all .15s ease;transition:all .15s ease}.theme-modern-light .st-next-prev-btn:not(.disabled):hover{background-color:#f3f4f6}.theme-modern-light .st-horizontal-scrollbar-container{background-color:#fafafa;border-top:1px solid var(--st-border-color)}.theme-modern-light .st-group-header{border-bottom:1px solid var(--st-border-color);font-weight:500}.theme-modern-light .st-checkbox-custom{border:1.5px solid #d1d5db;border-radius:4px}.theme-modern-light .st-checkbox-custom.st-checked{background-color:#3b82f6;border-color:#3b82f6}.theme-custom{--st-border-radius:4px;--st-cell-padding:12px;--st-spacing-small:4px;--st-spacing-medium:8px;--st-scrollbar-bg-color:#fafafa;--st-scrollbar-thumb-color:#d1d5db;--st-scrollbar-width:thin;--st-border-color:#e5e7eb;--st-footer-background-color:var(--st-white);--st-last-group-row-separator-border-color:#e5e7eb;--st-odd-row-background-color:var(--st-white);--st-even-row-background-color:#fafafa;--st-hover-row-background-color:#f3f4f6;--st-selected-row-background-color:#eff6ff;--st-odd-column-background-color:var(--st-white);--st-even-column-background-color:var(--st-white);--st-header-background-color:var(--st-white);--st-sub-header-background-color:#fafafa;--st-header-label-color:#111827;--st-header-icon-color:#6b7280;--st-cell-color:#111827;--st-cell-odd-row-color:#374151;--st-edit-cell-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;--st-sub-cell-background-color:#f9fafb;--st-sub-cell-hover-background-color:#f3f4f6;--st-selected-cell-background-color:#dbeafe;--st-selected-first-cell-background-color:#eff6ff;--st-selected-cell-color:#111827;--st-selected-first-cell-color:#111827;--st-selected-sub-cell-background-color:#bfdbfe;--st-selected-sub-cell-color:#111827;--st-dragging-background-color:#f3f4f6;--st-dragging-sub-header-background-color:#e5e7eb;--st-resize-handle-color:#e5e7eb;--st-resize-handle-selected-color:#3b82f6;--st-selected-border-color:#3b82f6;--st-editable-cell-focus-border-color:#3b82f6;--st-focus-ring-color:#3b82f6;--st-button-hover-background-color:#f3f4f6;--st-button-active-background-color:#3b82f6;--st-next-prev-btn-color:#6b7280;--st-next-prev-btn-disabled-color:#d1d5db;--st-page-btn-color:#6b7280;--st-page-btn-hover-background-color:#f3f4f6;--st-checkbox-checked-background-color:#3b82f6;--st-checkbox-checked-border-color:#3b82f6;--st-checkbox-border-color:#d1d5db;--st-column-editor-background-color:var(--st-white);--st-column-editor-popout-background-color:var(--st-white);--st-column-editor-text-color:#6b7280;--st-datepicker-weekday-color:#6b7280;--st-datepicker-other-month-color:#d1d5db;--st-filter-button-disabled-background-color:#f3f4f6;--st-filter-button-disabled-text-color:#9ca3af;--st-cell-flash-color:#dbeafe;--st-copy-flash-color:#3b82f6;--st-warning-flash-color:#fca5a5;--st-tooltip-background-color:#1f2937;--st-tooltip-text-color:var(--st-white);--st-tooltip-border-radius:6px;--st-tooltip-padding:6px 10px;--st-tooltip-font-size:12px;--st-tooltip-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;--st-header-selected-background-color:#3b82f6;--st-header-selected-label-color:var(--st-white);--st-header-selected-icon-color:var(--st-white);--st-header-highlight-indicator-color:#dbeafe;--st-selection-highlight-indicator-color:#f3f4f6;--st-loading-skeleton-bg-color:#f3f4f6;--st-chart-color:#3b82f6;--st-chart-fill-color:#dbeafe;--st-drag-separator-color:#3b82f6;--st-body-background-color:var(--st-white)}.theme-custom .st-wrapper{border:var(--st-border-width) solid var(--st-border-color)}.theme-custom .st-header-main,.theme-custom .st-header-pinned-left,.theme-custom .st-header-pinned-right{border-bottom:var(--st-border-width) solid var(--st-border-color)}.theme-custom .st-body-pinned-left,.theme-custom .st-header-pinned-left{border-right:var(--st-border-width) solid var(--st-border-color)}.theme-custom .st-body-pinned-right,.theme-custom .st-header-pinned-right{border-left:var(--st-border-width) solid var(--st-border-color)}.theme-custom .st-row-separator{background-color:var(--st-hover-row-background-color)}.theme-custom .st-header-cell{color:var(--st-header-icon-color);font-size:14px;font-weight:500}.theme-custom .st-cell-content{color:var(--st-cell-color);font-size:14px}.theme-custom .st-row.hovered{-webkit-transition:background-color .15s ease;transition:background-color .15s ease}.theme-custom .st-footer{background-color:var(--st-footer-background-color);border-top:var(--st-border-width) solid var(--st-border-color);gap:12px;padding:12px 16px}.theme-custom .st-footer-results-text{color:var(--st-cell-color);font-size:14px}.theme-custom .st-footer-pagination{-ms-flex-wrap:nowrap;flex-wrap:nowrap;gap:2px;overflow:hidden}.theme-custom .st-page-ellipsis{color:var(--st-page-btn-color);font-weight:400;padding:0 4px}.theme-custom .st-page-btn{-ms-flex-negative:0;border-radius:4px;color:var(--st-page-btn-color);flex-shrink:0;font-size:13px;font-weight:500;margin-right:0;min-width:36px;padding:6px 8px;-webkit-transition:all .15s ease;transition:all .15s ease}.theme-custom .st-page-btn:hover{background-color:var(--st-page-btn-hover-background-color)}.theme-custom .st-page-btn.active{background-color:var(--st-button-active-background-color);color:var(--st-header-selected-label-color);font-weight:600}.theme-custom .st-next-prev-btn{-ms-flex-negative:0;border-radius:4px;flex-shrink:0;margin-left:4px;padding:6px 8px;-webkit-transition:all .15s ease;transition:all .15s ease}.theme-custom .st-next-prev-btn:not(.disabled):hover{background-color:var(--st-page-btn-hover-background-color)}.theme-custom .st-horizontal-scrollbar-container{background-color:var(--st-scrollbar-bg-color);border-top:var(--st-border-width) solid var(--st-border-color)}.theme-custom .st-group-header{border-bottom:var(--st-border-width) solid var(--st-border-color);font-weight:500}.theme-custom .st-checkbox-custom{border:1.5px solid var(--st-checkbox-border-color);border-radius:4px}.theme-custom .st-checkbox-custom.st-checked{background-color:var(--st-checkbox-checked-background-color);border-color:var(--st-checkbox-checked-border-color)}.theme-modern-dark{--st-border-radius:4px;--st-cell-padding:12px;--st-spacing-small:4px;--st-spacing-medium:8px;--st-scrollbar-bg-color:#111827;--st-scrollbar-thumb-color:#4b5563;--st-scrollbar-width:thin;--st-border-color:#374151;--st-footer-background-color:#1f2937;--st-last-group-row-separator-border-color:#4b5563;--st-odd-row-background-color:#1f2937;--st-even-row-background-color:#232f3f;--st-hover-row-background-color:#374151;--st-selected-row-background-color:#1e3a5f;--st-odd-column-background-color:#1f2937;--st-even-column-background-color:#1f2937;--st-header-background-color:#1f2937;--st-sub-header-background-color:#111827;--st-header-label-color:#f3f4f6;--st-header-icon-color:#9ca3af;--st-cell-color:#f3f4f6;--st-cell-odd-row-color:#d1d5db;--st-edit-cell-shadow:0 4px 6px -1px #0000004d,0 2px 4px -1px #0003;--st-sub-cell-background-color:#111827;--st-sub-cell-hover-background-color:#1f2937;--st-selected-cell-background-color:#1e40af;--st-selected-first-cell-background-color:#1e3a8a;--st-selected-cell-color:#f3f4f6;--st-selected-first-cell-color:#f3f4f6;--st-selected-sub-cell-background-color:#1e3a8a;--st-selected-sub-cell-color:#f3f4f6;--st-dragging-background-color:#374151;--st-dragging-sub-header-background-color:#4b5563;--st-resize-handle-color:#4b5563;--st-resize-handle-selected-color:#60a5fa;--st-selected-border-color:#60a5fa;--st-editable-cell-focus-border-color:#60a5fa;--st-focus-ring-color:#60a5fa;--st-button-hover-background-color:#374151;--st-button-active-background-color:#3b82f6;--st-next-prev-btn-color:#9ca3af;--st-next-prev-btn-disabled-color:#4b5563;--st-page-btn-color:#d1d5db;--st-page-btn-hover-background-color:#374151;--st-checkbox-checked-background-color:#3b82f6;--st-checkbox-checked-border-color:#3b82f6;--st-checkbox-border-color:#4b5563;--st-column-editor-background-color:#1f2937;--st-column-editor-popout-background-color:#1f2937;--st-column-editor-text-color:#9ca3af;--st-datepicker-weekday-color:#9ca3af;--st-datepicker-other-month-color:#4b5563;--st-filter-button-disabled-background-color:#374151;--st-filter-button-disabled-text-color:#6b7280;--st-cell-flash-color:#1e40af;--st-copy-flash-color:#60a5fa;--st-warning-flash-color:#ef4444;--st-tooltip-background-color:#f3f4f6;--st-tooltip-text-color:#111827;--st-tooltip-border-radius:6px;--st-tooltip-padding:6px 10px;--st-tooltip-font-size:12px;--st-tooltip-shadow:0 10px 15px -3px #0000004d,0 4px 6px -2px #0003;--st-header-selected-background-color:#3b82f6;--st-header-selected-label-color:var(--st-white);--st-header-selected-icon-color:var(--st-white);--st-header-highlight-indicator-color:#1e40af;--st-selection-highlight-indicator-color:#374151;--st-loading-skeleton-bg-color:#374151;--st-chart-color:#60a5fa;--st-chart-fill-color:#3b82f6;--st-drag-separator-color:#60a5fa;--st-body-background-color:#1f2937}.theme-modern-dark .st-wrapper{border:1px solid #374151}.theme-modern-dark .st-header-main,.theme-modern-dark .st-header-pinned-left,.theme-modern-dark .st-header-pinned-right{border-bottom:1px solid #374151}.theme-modern-dark .st-body-pinned-left,.theme-modern-dark .st-header-pinned-left{border-right:1px solid #374151}.theme-modern-dark .st-body-pinned-right,.theme-modern-dark .st-header-pinned-right{border-left:1px solid #374151}.theme-modern-dark .st-row-separator{background-color:#374151}.theme-modern-dark .st-header-cell{color:#d1d5db;font-size:14px;font-weight:500}.theme-modern-dark .st-cell-content{color:#f3f4f6;font-size:14px}.theme-modern-dark .st-row.hovered{-webkit-transition:background-color .15s ease;transition:background-color .15s ease}.theme-modern-dark .st-footer{background-color:#1f2937;border-top:1px solid #374151;gap:12px;padding:12px 16px}.theme-modern-dark .st-footer-results-text{color:#d1d5db;font-size:14px}.theme-modern-dark .st-footer-pagination{-ms-flex-wrap:nowrap;flex-wrap:nowrap;gap:2px;overflow:hidden}.theme-modern-dark .st-page-ellipsis{color:#9ca3af;font-weight:400;padding:0 4px}.theme-modern-dark .st-page-btn{-ms-flex-negative:0;border-radius:4px;color:#d1d5db;flex-shrink:0;font-size:13px;font-weight:500;margin-right:0;min-width:36px;padding:6px 8px;-webkit-transition:all .15s ease;transition:all .15s ease}.theme-modern-dark .st-page-btn:hover{background-color:#374151}.theme-modern-dark .st-page-btn.active{background-color:#3b82f6;color:#fff;font-weight:600}.theme-modern-dark .st-next-prev-btn{-ms-flex-negative:0;border-radius:4px;flex-shrink:0;margin-left:4px;padding:6px 8px;-webkit-transition:all .15s ease;transition:all .15s ease}.theme-modern-dark .st-next-prev-btn:not(.disabled):hover{background-color:#374151}.theme-modern-dark .st-next-prev-btn.disabled>*{fill:#4b5563}.theme-modern-dark .st-horizontal-scrollbar-container{background-color:#111827;border-top:1px solid #374151}.theme-modern-dark .st-group-header{border-bottom:1px solid #374151;font-weight:500}.theme-modern-dark .st-checkbox-custom{background-color:#1f2937;border:1.5px solid #4b5563;border-radius:4px}.theme-modern-dark .st-checkbox-custom.st-checked{background-color:#3b82f6;border-color:#3b82f6}.theme-modern-dark .st-empty-state{color:#9ca3af}
1
+ .st-sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.simple-table-root{--st-after-width:11.01px;--st-resize-handle-width:2px;--st-resize-handle-container-width:10px;--st-border-width:1px;--st-footer-height:49px;--st-transition-duration:0.2s;--st-transition-ease:ease;--st-opacity-disabled:0.5;--st-white:#fff;--st-black:#000;--st-slate-50:#f8fafc;--st-slate-100:#f1f5f9;--st-slate-200:#e2e8f0;--st-slate-300:#cbd5e1;--st-slate-400:#94a3b8;--st-slate-500:#64748b;--st-slate-600:#475569;--st-slate-800:#1e293b;--st-slate-900:#0f172a;--st-gray-100:#f3f4f6;--st-gray-200:#e5e7eb;--st-gray-300:#d1d5db;--st-gray-400:#9ca3af;--st-gray-500:#6b7280;--st-gray-600:#4b5563;--st-gray-700:#374151;--st-gray-800:#1f2937;--st-gray-900:#111827;--st-neutral-50:#fafafa;--st-neutral-100:#f5f5f5;--st-neutral-200:#e5e5e5;--st-neutral-300:#d4d4d4;--st-neutral-400:#a3a3a3;--st-neutral-500:#737373;--st-neutral-600:#525252;--st-neutral-800:#262626;--st-neutral-900:#171717;--st-stone-100:#f5f5f4;--st-stone-200:#e7e5e4;--st-stone-300:#d6d3d1;--st-stone-400:#a8a29e;--st-stone-500:#78716c;--st-stone-700:#44403c;--st-red-300:#fca5a5;--st-red-400:#f87171;--st-orange-400:#fb923c;--st-amber-50:#fffbeb;--st-amber-100:#fef3c7;--st-amber-200:#fde68a;--st-emerald-400:#34d399;--st-emerald-500:#10b981;--st-emerald-600:#059669;--st-teal-400:#2dd4bf;--st-teal-500:#14b8a6;--st-teal-600:#0d9488;--st-sky-100:#e0f2fe;--st-sky-200:#bae6fd;--st-sky-300:#7dd3fc;--st-sky-400:#38bdf8;--st-blue-50:#eff6ff;--st-blue-100:#dbeafe;--st-blue-200:#bfdbfe;--st-blue-300:#93c5fd;--st-blue-400:#60a5fa;--st-blue-500:#3b82f6;--st-blue-600:#2563eb;--st-blue-800:#1e40af;--st-blue-900:#1e3a8a;--st-blue-950:#172554;--st-violet-50:#f5f3ff;--st-violet-100:#ede9fe;--st-violet-200:#ddd6fe;--st-violet-400:#a78bfa;--st-violet-500:#8b5cf6;--st-violet-600:#7c3aed;--st-violet-800:#5b21b6}.simple-table-root *{scrollbar-thumb-border-radius:var(--st-scrollbar-thumb-border-radius);-webkit-box-sizing:border-box;box-sizing:border-box;font-family:inherit;scrollbar-color:var(--st-scrollbar-thumb-color) var(--st-scrollbar-bg-color);scrollbar-width:var(--st-scrollbar-width)}input{color:#000}.simple-table-root ::-webkit-scrollbar{height:8px;width:8px}.simple-table-root ::-webkit-scrollbar-track{background:var(--st-scrollbar-bg-color)}.simple-table-root ::-webkit-scrollbar-thumb{background:var(--st-scrollbar-thumb-color);border-radius:4px}.simple-table-root{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--st-cell-color)}.st-wrapper{border:var(--st-border-width) solid var(--st-border-color);border-radius:var(--st-border-radius);overflow:hidden;position:relative}.simple-table-root.st-external-scroll{overflow:visible}.simple-table-root.st-external-scroll .st-header-container{position:sticky;top:0;top:calc(var(--st-external-scroll-padding-top, 0px)*-1);z-index:4}.simple-table-root.st-external-scroll .st-sticky-top{position:sticky;top:0;top:calc(var(--st-calculated-header-height, 0px) - var(--st-external-scroll-padding-top, 0px))}.simple-table-root.st-external-scroll .st-column-editor-text{-ms-flex-item-align:start;-webkit-box-flex:0;-ms-flex-positive:0;align-self:flex-start;flex-grow:0;position:sticky;top:0;top:calc(var(--st-external-scroll-padding-top, 0px)*-1)}.st-wrapper-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:100%}.st-content-wrapper,.st-wrapper-container{display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;width:100%}.st-content-wrapper{-webkit-box-flex:1;-ms-flex:1;flex:1;min-height:0}.st-content{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.st-content,.st-header-container{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%}.st-header-container,.st-header-container.st-header-scroll-padding:after{-ms-flex-negative:0;background-color:var(--st-header-background-color);flex-shrink:0}.st-header-container.st-header-scroll-padding:after{-webkit-box-sizing:border-box;box-sizing:border-box;content:"";display:block;width:default-width;width:var(--st-after-width,default-width)}.st-header-container.st-header-scroll-padding:after,.st-header-main,.st-header-pinned-left,.st-header-pinned-right{border-bottom:var(--st-border-width) solid var(--st-border-color)}.st-header-grid{min-width:100%;position:relative}.st-body-main,.st-body-pinned-left,.st-body-pinned-right,.st-header-main,.st-header-pinned-left,.st-header-pinned-right,.st-horizontal-scrollbar-left,.st-horizontal-scrollbar-middle,.st-horizontal-scrollbar-right{overflow:auto;-ms-touch-action:auto;touch-action:auto}.st-body-main,.st-body-pinned-left,.st-body-pinned-right,.st-header-main,.st-header-pinned-left,.st-header-pinned-right{scrollbar-width:none}.st-body-pinned-left,.st-body-pinned-right,.st-header-pinned-left,.st-header-pinned-right{-ms-flex-negative:0;flex-shrink:0}.st-body-pinned-left,.st-header-pinned-left{border-right:var(--st-border-width) solid var(--st-border-color)}.st-body-pinned-right,.st-header-pinned-right{border-left:var(--st-border-width) solid var(--st-border-color)}.st-header-main{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.st-header-main,.st-header-pinned-left,.st-header-pinned-right{overflow-x:auto;overflow-y:hidden}.st-header-main::-webkit-scrollbar{display:none}.st-body-container{-webkit-box-flex:1;-ms-flex-positive:1;-webkit-overflow-scrolling:touch;background-color:var(--st-even-row-background-color);flex-grow:1;height:-webkit-max-content;height:-moz-max-content;height:max-content;overflow:auto;-ms-touch-action:auto;touch-action:auto;width:100%}.st-body-container,.st-sticky-top{display:-webkit-box;display:-ms-flexbox;display:flex}.st-sticky-top{left:0;position:absolute;top:0;z-index:10}.st-sticky-section-left,.st-sticky-section-main,.st-sticky-section-right{overflow:hidden}.st-sticky-section-left{border-right:var(--st-border-width) solid var(--st-border-color)}.st-sticky-section-right{border-left:var(--st-border-width) solid var(--st-border-color)}.st-empty-state-wrapper{-ms-flex-align:center;-ms-flex-pack:center;-webkit-box-flex:1;-ms-flex:1;flex:1;min-height:200px;width:100%}.st-empty-state,.st-empty-state-wrapper{-webkit-box-align:center;-webkit-box-pack:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:center}.st-empty-state{-ms-flex-align:center;-ms-flex-pack:center;color:var(--st-header-text-color);font-size:.9em;opacity:.6;padding:48px 24px}.st-body-main,.st-body-pinned-left,.st-body-pinned-right{display:grid;height:-webkit-max-content;height:-moz-max-content;height:max-content;min-height:100%}.st-body-main::-webkit-scrollbar{display:none}.st-row{-webkit-backface-visibility:hidden;backface-visibility:hidden;background-color:var(--st-even-row-background-color);display:grid;min-width:100%;position:absolute;-webkit-transition:background .2s ease;transition:background .2s ease}.st-row.st-sticky-parent{z-index:5}.st-sticky-top .st-row.even{background-color:var(--st-even-row-background-color)}.st-sticky-top .st-row.odd{background-color:var(--st-odd-row-background-color)}.st-sticky-top .st-row.selected{background-color:var(--st-selected-row-background-color)}.st-row.hovered .st-cell-editing,.st-row.hovered .st-cell:not(.st-cell-selected):not(.st-cell-selected-first):not(.st-cell-column-selected):not(.st-cell-column-selected-first),.st-sticky-top .st-row.hovered:not(.st-cell-editing):not(.st-cell-column-selected):not(.st-cell-column-selected-last):not(.st-cell-column-selected-first){background-color:var(--st-hover-row-background-color)}.st-row.hovered .st-cell.st-sub-cell:not(.st-cell-selected):not(.st-cell-selected-first):not(.st-cell-column-selected):not(.st-cell-column-selected-first){background-color:var(--st-sub-cell-hover-background-color)}.st-row.even{background-color:var(--st-even-row-background-color)}.st-row.odd{background-color:var(--st-odd-row-background-color)}.st-row.selected{background-color:var(--st-selected-row-background-color)}.st-row.selected.hovered .st-cell-editing,.st-row.selected.hovered .st-cell:not(.st-cell-selected):not(.st-cell-selected-first):not(.st-cell-column-selected):not(.st-cell-column-selected-first){background-color:var(--st-hover-row-background-color)}.st-nested-grid-row{padding-left:8px;padding-right:8px}.st-cell-content{display:-webkit-box;display:-ms-flexbox;display:flex}.st-row.odd .st-cell-content{color:var(--st-cell-odd-row-color)}.st-row.even .st-cell-content{color:var(--st-cell-color)}.st-cell.st-cell-even-row:not(.st-cell-selected):not(.st-cell-selected-first):not(.st-cell-column-selected):not(.st-cell-column-selected-first){background-color:var(--st-even-row-background-color)}.st-cell.st-cell-odd-row:not(.st-cell-selected):not(.st-cell-selected-first):not(.st-cell-column-selected):not(.st-cell-column-selected-first){background-color:var(--st-odd-row-background-color)}.st-cell.st-cell-even-row .st-cell-content{color:var(--st-cell-color)}.st-cell.st-cell-odd-row .st-cell-content{color:var(--st-cell-odd-row-color)}.st-cell.st-cell-selected-row{background-color:var(--st-selected-row-background-color)}.st-cell.st-row-hovered:not(.st-cell-selected):not(.st-cell-selected-first):not(.st-cell-column-selected):not(.st-cell-column-selected-first){background-color:var(--st-hover-row-background-color)}.st-header-cell{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:var(--st-header-background-color);display:-webkit-box;display:-ms-flexbox;display:flex;font-weight:var(--st-font-weight-bold);gap:var(--st-spacing-small);top:0}.st-header-cell.parent{border-bottom:var(--st-border-width) solid var(--st-border-color)}.st-header-cell.st-sub-header{background-color:var(--st-sub-header-background-color)}.st-cell.st-sub-cell{background-color:var(--st-sub-cell-background-color)}.st-header-cell.clickable,.st-header-cell.st-header-editable{cursor:pointer}.st-header-cell.draggable{cursor:-webkit-grab;cursor:grab}.st-header-cell.st-header-selected{background-color:var(--st-header-selected-background-color)}.st-header-cell.st-header-selected .st-header-label-text{color:var(--st-header-selected-label-color)}.st-header-cell.st-header-selected .st-header-icon,.st-header-cell.st-header-selected .st-icon-container *{fill:var(--st-header-selected-icon-color)}.st-header-cell.st-header-selected .st-icon-container{color:var(--st-header-selected-icon-color)}.st-header-cell.st-header-selected .st-header-resize-handle{background-color:var(--st-resize-handle-selected-color)}.st-header-cell.st-header-has-highlighted-cell{background-color:var(--st-header-highlight-indicator-color)}.st-cell,.st-header-cell{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:initial;color:var(--st-cell-color);display:-webkit-box;display:-ms-flexbox;display:flex;gap:var(--st-spacing-small);overflow:hidden;position:relative}.st-cell.left-aligned,.st-header-cell.left-aligned{padding-left:var(--st-cell-padding);text-align:left}.st-cell.center-aligned,.st-cell.center-aligned>.st-cell-content,.st-header-cell.center-aligned,.st-header-cell.center-aligned>.st-header-label-text{text-align:center}.st-cell.clickable{cursor:pointer}.st-cell,.st-cell-editing,.st-header-cell{height:100%;width:100%}.st-cell-editing{position:relative}.st-header-label{-webkit-box-flex:1;-ms-flex-positive:1;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;flex-grow:1;height:100%;min-width:0;overflow:hidden}.st-cell-content,.st-header-label-text{-webkit-box-flex:1;-ms-flex:1;flex:1;text-align:left;text-overflow:ellipsis;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;width:100%}.st-header-label-text{color:var(--st-header-label-color);font-weight:600;overflow:hidden;padding-left:var(--st-cell-padding);padding-right:var(--st-cell-padding);text-overflow:ellipsis;white-space:nowrap}.st-cell-content.left-aligned,.st-header-label-text.left-aligned{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;text-align:left}.st-cell-content.center-aligned,.st-header-label-text.center-aligned{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;text-align:center}.st-cell-content.right-aligned,.st-header-label-text.right-aligned{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;text-align:right}.st-not-resizeable .st-cell-content{padding-left:var(--st-cell-padding);padding-right:var(--st-cell-padding)}.st-resizeable .st-body-pinned-right .st-cell-content,.st-resizeable .st-sticky-section-right .st-cell-content{padding-left:calc(var(--st-cell-padding) + var(--st-spacing-small) + var(--st-resize-handle-container-width));padding-right:var(--st-cell-padding)}.st-resizeable .st-body-main .st-cell-content,.st-resizeable .st-body-pinned-left .st-cell-content,.st-resizeable .st-sticky-section-left .st-cell-content,.st-resizeable .st-sticky-section-main .st-cell-content{padding-left:var(--st-cell-padding);padding-right:calc(var(--st-cell-padding) + var(--st-spacing-small) + var(--st-resize-handle-container-width))}.st-resizeable .st-selection-cell .st-cell-content{padding-left:var(--st-cell-padding);padding-right:var(--st-cell-padding)}.st-selection-cell.st-selection-has-highlighted-cell{background-color:var(--st-selection-highlight-indicator-color)}.st-cell{border:var(--st-border-width) solid #0000;z-index:1}.st-cell:focus,.st-cell:focus-visible{outline:none}.st-cell.even-column:not(.st-cell-selected){background-color:var(--st-even-column-background-color)}.st-cell.odd-column:not(.st-cell-selected){background-color:var(--st-odd-column-background-color)}.st-cell-depth-1{padding-left:calc(var(--st-cell-padding)*4)}.st-cell-depth-2{padding-left:calc(var(--st-cell-padding)*8)}.st-cell-depth-3{padding-left:calc(var(--st-cell-padding)*12)}.st-cell-depth-4{padding-left:calc(var(--st-cell-padding)*16)}.st-cell-depth-5{padding-left:calc(var(--st-cell-padding)*20)}.st-cell-depth-6{padding-left:calc(var(--st-cell-padding)*24)}.st-cell-depth-7{padding-left:calc(var(--st-cell-padding)*28)}.st-cell-depth-1 .st-cell-content{color:rgb(from var(--st-cell-color) r g b/80%)!important}.st-cell-depth-2 .st-cell-content,.st-cell-depth-3 .st-cell-content,.st-cell-depth-4 .st-cell-content,.st-cell-depth-5 .st-cell-content,.st-cell-depth-6 .st-cell-content,.st-cell-depth-7 .st-cell-content{color:rgb(from var(--st-cell-color) r g b/70%)!important}.st-icon-container{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;-ms-flex-item-align:stretch;align-items:center;align-self:stretch;border-radius:4px;display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:center;margin-left:4px;-webkit-transition:outline .2s ease;transition:outline .2s ease}.st-icon-container:focus-visible{outline:1px solid var(--st-focus-ring-color);outline-offset:2px}.st-collapse-icon-container{cursor:pointer}.st-expand-icon{fill:var(--st-header-label-color);cursor:pointer}.st-header-resize-handle-container{-ms-flex-negative:0;-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;cursor:col-resize;display:-webkit-box;display:-ms-flexbox;display:flex;flex-shrink:0;height:100%;justify-content:center;width:var(--st-resize-handle-container-width)}.st-header-resize-handle{background-color:var(--st-resize-handle-color);height:calc(100% - 20px);width:var(--st-resize-handle-width)}.st-header-cell.st-no-resize{padding-right:var(--st-resize-handle-container-width)}.st-row-separator{background-color:var(--st-border-color);cursor:pointer;height:1px;min-width:100%;position:absolute;width:100%}.st-row-separator.st-last-group-row{background-color:var(--st-last-group-row-separator-border-color)}.st-dragging:not(.st-sub-header){background-color:var(--st-dragging-background-color)}.st-dragging.st-sub-header{background-color:var(--st-dragging-sub-header-background-color)}.st-loading-skeleton{-webkit-animation:st-skeleton-pulse 1.5s ease-in-out infinite;animation:st-skeleton-pulse 1.5s ease-in-out infinite;background-color:var(--st-loading-skeleton-bg-color);border-radius:4px;height:16px;width:80%}@-webkit-keyframes st-skeleton-pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes st-skeleton-pulse{0%,to{opacity:1}50%{opacity:.5}}.st-cell-selected{background-color:var(--st-selected-cell-background-color)}.st-cell-selected .st-cell-content{color:var(--st-selected-cell-color)!important}.st-cell-selected-first{background-color:var(--st-selected-first-cell-background-color);border:var(--st-border-width) solid var(--st-selected-border-color)}.st-cell-selected-first .st-cell-content{color:var(--st-selected-first-cell-color)!important}.st-cell-selected.st-sub-cell{background-color:var(--st-selected-sub-cell-background-color)}.st-cell-selected.st-sub-cell .st-cell-content{color:var(--st-selected-sub-cell-color)!important}.st-cell-selected-first.st-sub-cell{background-color:var(--st-selected-sub-cell-background-color)}.st-cell-selected-first.st-sub-cell .st-cell-content{color:var(--st-selected-sub-cell-color)!important}.st-cell-column-selected{background-color:var(--st-selected-cell-background-color)}.st-cell-column-selected .st-cell-content{color:var(--st-selected-cell-color)!important}.st-cell-column-selected-first{background-color:var(--st-selected-first-cell-background-color)}.st-cell-column-selected-first .st-cell-content{color:var(--st-selected-first-cell-color)!important}.st-cell-column-selected.st-sub-cell{background-color:var(--st-selected-sub-cell-background-color)}.st-cell-column-selected.st-sub-cell .st-cell-content{color:var(--st-selected-sub-cell-color)!important}.st-cell-column-selected-first.st-sub-cell{background-color:var(--st-selected-sub-cell-background-color)}.st-cell-column-selected-first.st-sub-cell .st-cell-content{color:var(--st-selected-sub-cell-color)!important}.st-selected-top-border{border-top:var(--st-border-width) solid var(--st-selected-border-color)}.st-selected-bottom-border{border-bottom:var(--st-border-width) solid var(--st-selected-border-color)}.st-selected-left-border{border-left:var(--st-border-width) solid var(--st-selected-border-color)}.st-selected-right-border{border-right:var(--st-border-width) solid var(--st-selected-border-color)}.st-horizontal-scrollbar-container{-ms-flex-negative:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:var(--st-scrollbar-bg-color);border-top:var(--st-border-width) solid var(--st-border-color);display:-webkit-box;display:-ms-flexbox;display:flex;flex-shrink:0;height:13px;width:100%}.st-horizontal-scrollbar-left,.st-horizontal-scrollbar-right{-ms-flex-negative:0;flex-shrink:0}.st-horizontal-scrollbar-left{border-right:var(--st-border-width) solid var(--st-border-color)}.st-horizontal-scrollbar-right{border-left:var(--st-border-width) solid var(--st-border-color)}.st-horizontal-scrollbar-left,.st-horizontal-scrollbar-middle,.st-horizontal-scrollbar-right{height:8px;overflow-x:auto;overflow-y:hidden;scrollbar-color:auto}.st-horizontal-scrollbar-middle{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.st-horizontal-scrollbar-left>div,.st-horizontal-scrollbar-middle>div,.st-horizontal-scrollbar-right>div{height:.3px}.st-horizontal-scrollbar-left::-webkit-scrollbar,.st-horizontal-scrollbar-middle::-webkit-scrollbar,.st-horizontal-scrollbar-right::-webkit-scrollbar{height:8px}.st-footer{-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-box-align:center;-ms-flex-align:center;-ms-flex-negative:0;align-items:center;background-color:var(--st-footer-background-color);border-top:var(--st-border-width) solid var(--st-border-color);display:-webkit-box;display:-ms-flexbox;display:flex;flex-shrink:0;gap:var(--st-spacing-medium);justify-content:space-between;min-height:49px;min-height:var(--st-footer-height,49px);padding:var(--st-spacing-medium)}.simple-table-root.st-footer-position-top .st-footer{border-bottom:var(--st-border-width) solid var(--st-border-color);border-top:none}.st-footer-info{-webkit-box-align:center;-ms-flex-align:center;-ms-flex-negative:0;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;flex-shrink:0}.st-footer-results-text{color:var(--st-cell-color);font-size:.9em;white-space:nowrap}.st-footer-pagination{-ms-flex-negative:0;flex-shrink:0}.st-footer-pagination,.st-next-prev-btn{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.st-next-prev-btn{-webkit-box-pack:center;-ms-flex-pack:center;fill:var(--st-next-prev-btn-color);background-color:initial;border:none;border-radius:var(--st-border-radius);cursor:pointer;justify-content:center;padding:var(--st-spacing-small);-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease)}.disabled>.st-next-prev-icon{fill:var(--st-next-prev-btn-disabled-color);cursor:not-allowed}.st-next-prev-btn:not(.disabled):hover{background-color:var(--st-page-btn-hover-background-color)}.st-next-prev-btn:focus-visible{outline:1px solid var(--st-focus-ring-color);outline-offset:0}.st-page-btn{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;background-color:initial;border:none;border-radius:var(--st-border-radius);color:var(--st-page-btn-color);cursor:pointer;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;justify-content:center;margin-right:var(--st-spacing-small);padding:var(--st-spacing-small);-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease)}.st-page-btn:hover{background-color:var(--st-button-hover-background-color)}.st-page-btn:focus-visible{outline:1px solid var(--st-focus-ring-color);outline-offset:-2px}.st-page-btn.active{background-color:var(--st-button-active-background-color);color:#fff}.st-footer-pagination .st-page-btn.st-page-btn--compact-hidden{display:none}.st-page-ellipsis{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;color:var(--st-cell-color);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-weight:700;justify-content:center;margin:0 var(--st-spacing-small);padding:var(--st-spacing-small)}.editable-cell-input{border:var(--st-border-width) solid var(--st-border-color);-webkit-box-shadow:var(--st-edit-cell-shadow-color);box-shadow:var(--st-edit-cell-shadow-color);font-size:.875rem;height:100%;left:0;outline:none;padding:var(--st-cell-padding);position:absolute;top:0;width:100%;z-index:1}.editable-cell-input:focus{border:var(--st-border-width) solid var(--st-editable-cell-focus-border-color)}.st-column-editor{-ms-flex-negative:0;-ms-flex-item-align:stretch;align-self:stretch;background:var(--st-column-editor-background-color);border-left:var(--st-border-width) solid var(--st-border-color);color:var(--st-column-editor-text-color);display:-webkit-box;display:-ms-flexbox;display:flex;flex-shrink:0;height:auto;min-height:0;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.st-column-editor-text{-webkit-box-flex:1;-ms-flex-positive:1;cursor:pointer;flex-grow:1;padding:var(--st-spacing-medium) var(--st-spacing-small);-webkit-writing-mode:vertical-rl;-ms-writing-mode:tb-rl;writing-mode:vertical-rl;z-index:2}.st-column-editor.open,.st-column-editor.open .st-column-editor-text{background-color:var(--st-column-editor-background-color)}.st-column-editor-popout{background-color:var(--st-column-editor-popout-background-color);height:100%;overflow:hidden;position:absolute;right:calc(100% + 1px);top:0;-webkit-transition:width var(--st-transition-duration) var(--st-transition-ease);transition:width var(--st-transition-duration) var(--st-transition-ease);width:0;z-index:10}.st-column-editor-popout-content{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-overflow-scrolling:touch;border-left:var(--st-border-width) solid var(--st-border-color);display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;height:100%;-ms-touch-action:auto;touch-action:auto}.st-column-editor-search-wrapper{background-color:var(--st-column-editor-popout-background-color);padding:var(--st-spacing-medium);position:sticky;top:0;z-index:1}.st-column-editor-list{padding-bottom:var(--st-spacing-medium);padding-left:var(--st-spacing-medium);padding-right:var(--st-spacing-medium)}.st-column-editor-list,.st-column-editor-lists{-webkit-box-orient:vertical;-webkit-box-direction:normal;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.st-column-editor-lists{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;overflow:auto}.st-column-editor-section-label{color:var(--st-column-editor-text-color);font-size:.7rem;font-weight:600;letter-spacing:.04em;opacity:.75;padding:var(--st-spacing-small) var(--st-spacing-medium) 0;text-transform:uppercase}.st-column-editor-list-section{padding-bottom:var(--st-spacing-small);padding-top:0}.st-column-editor-footer{background-color:var(--st-column-editor-popout-background-color);border-top:var(--st-border-width) solid var(--st-border-color);bottom:0;position:sticky;z-index:1}.st-column-editor-footer,.st-column-editor-reset-btn{padding:var(--st-spacing-small) var(--st-spacing-medium)}.st-column-editor-reset-btn{background:#0000;border:var(--st-border-width) solid var(--st-border-color);border-radius:var(--st-border-radius);color:var(--st-column-editor-text-color);cursor:pointer;font-size:.8rem;font-weight:500;-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease);width:100%}.st-column-editor-reset-btn:hover{background-color:var(--st-hover-background-color)}.st-column-pin-btn{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;background:#0000;border:none;border-radius:4px;color:inherit;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:center;margin:0;padding:2px}.st-column-pin-btn:hover{background:color-mix(in srgb,var(--st-column-editor-text-color) 12%,#0000)}.st-column-pin-pinned-mark{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:center}.st-column-pin-pinned-active{background:color-mix(in srgb,var(--st-column-editor-text-color) 12%,#0000);border-radius:4px}.st-column-pin-pinned-essential{cursor:default}.st-column-pin-side-group{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;gap:1px}.st-column-pin-side{font-size:.65rem;font-weight:700;height:1.25rem;letter-spacing:-.02em;line-height:1;min-width:1.25rem;padding:0 3px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.st-column-pin-side-option{color:color-mix(in srgb,var(--st-column-editor-text-color) 52%,#0000);-webkit-transition:color var(--st-transition-duration) var(--st-transition-ease),background var(--st-transition-duration) var(--st-transition-ease);transition:color var(--st-transition-duration) var(--st-transition-ease),background var(--st-transition-duration) var(--st-transition-ease)}.st-column-pin-svg,.st-header-checkbox-item:hover .st-column-pin-side-option{color:var(--st-column-editor-text-color)}.st-column-pin-svg{display:block}.st-checkbox-disabled{cursor:not-allowed;opacity:.45}.st-header-checkbox-item{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;gap:var(--st-spacing-small);padding-bottom:var(--st-spacing-small);padding-top:var(--st-spacing-small)}.st-column-label-container{-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.st-drag-icon-container{-webkit-box-align:center;-ms-flex-align:center;align-items:center;cursor:-webkit-grab;cursor:grab;display:-webkit-box;display:-ms-flexbox;display:flex;opacity:.5;-webkit-transition:opacity var(--st-transition-duration) var(--st-transition-ease);transition:opacity var(--st-transition-duration) var(--st-transition-ease)}.st-drag-icon-container:hover{opacity:1}.st-drag-icon-container:active{cursor:-webkit-grabbing;cursor:grabbing}.st-drag-icon{fill:currentColor}.st-column-editor-drag-separator{background-color:var(--st-drag-separator-color);border-radius:1px;height:2px;margin:2px 0;-webkit-transition:opacity .2s ease;transition:opacity .2s ease;width:100%}.st-header-icon-container{-webkit-box-pack:center;-ms-flex-pack:center;display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:center;width:24px}.st-header-icon{fill:var(--st-header-icon-color);-webkit-transition:fill var(--st-transition-duration) var(--st-transition-ease);transition:fill var(--st-transition-duration) var(--st-transition-ease)}.st-collapsible-header-icon{-webkit-box-align:center;-ms-flex-align:center;align-items:center;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex}.st-collapsible-header-icon.st-expand-icon-container.expanded{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.st-collapsible-header-icon.st-expand-icon-container.collapsed{-webkit-transform:rotate(0deg);transform:rotate(0deg)}.st-column-editor-expand-icon{-webkit-box-align:center;-ms-flex-align:center;align-items:center;cursor:pointer}.st-column-editor-expand-icon,.st-nested-headers{display:-webkit-box;display:-ms-flexbox;display:flex}.st-nested-headers{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.st-column-editor-popout.open{min-width:240px;width:auto}.st-column-editor-popout.left{-webkit-transform:translateX(-100%);transform:translateX(-100%)}.st-column-editor-popout.open.left{-webkit-transform:translateX(0);transform:translateX(0)}.st-checkbox-label{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;gap:var(--st-spacing-small);justify-content:center;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.st-checkbox-input{height:0;opacity:0;pointer-events:none;position:absolute;width:0}.st-checkbox-input:focus-visible+.st-checkbox-custom{outline:1px solid var(--st-focus-ring-color);outline-offset:-1px}.st-checkbox-custom{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;background-color:#fff;border:var(--st-border-width) solid var(--st-checkbox-border-color);border-radius:var(--st-border-radius);display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:center;min-height:16px;min-width:16px;-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease),border-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease),border-color var(--st-transition-duration) var(--st-transition-ease)}.st-checkbox-custom.st-checked{background-color:var(--st-checkbox-checked-background-color);border-color:var(--st-checkbox-checked-border-color)}.st-checkbox-checkmark{fill:#fff}@-webkit-keyframes slide-in-left{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slide-in-left{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes slide-in-right{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}to{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slide-in-right{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}to{-webkit-transform:translateX(0);transform:translateX(0)}}.st-group-header{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:var(--st-header-background-color);border-bottom:var(--st-border-width) solid var(--st-border-color);color:var(--st-cell-color);cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;font-weight:var(--st-font-weight-bold);height:40px;-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.st-group-header:hover{background-color:var(--st-button-hover-background-color)}.st-group-header-content{gap:var(--st-spacing-medium)}.st-group-header-content,.st-group-toggle-icon{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.st-group-toggle-icon{-webkit-box-pack:center;-ms-flex-pack:center;font-size:.8em;height:16px;justify-content:center;width:16px}.st-group-name{font-weight:var(--st-font-weight-bold)}.st-group-count{color:var(--st-cell-odd-row-color);font-size:.9em}.st-group-header.expanded .st-group-toggle-icon{-webkit-transform:rotate(0deg);transform:rotate(0deg)}.st-group-header.collapsed .st-group-toggle-icon,.st-group-header.expanded .st-group-toggle-icon{-webkit-transition:-webkit-transform var(--st-transition-duration) var(--st-transition-ease);transition:-webkit-transform var(--st-transition-duration) var(--st-transition-ease);transition:transform var(--st-transition-duration) var(--st-transition-ease);transition:transform var(--st-transition-duration) var(--st-transition-ease),-webkit-transform var(--st-transition-duration) var(--st-transition-ease)}.st-group-header.collapsed .st-group-toggle-icon{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.st-expand-icon-container{-webkit-transition:-webkit-transform var(--st-transition-duration) var(--st-transition-ease);transition:-webkit-transform var(--st-transition-duration) var(--st-transition-ease);transition:transform var(--st-transition-duration) var(--st-transition-ease);transition:transform var(--st-transition-duration) var(--st-transition-ease),-webkit-transform var(--st-transition-duration) var(--st-transition-ease)}.st-expand-icon-container.expanded{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.st-expand-icon-container.collapsed{-webkit-transform:rotate(0deg);transform:rotate(0deg)}.st-expand-icon-container.placeholder{opacity:0;pointer-events:none}.st-accordion-animating .st-cell,.st-accordion-animating .st-header-cell{overflow:hidden;-webkit-transition:width var(--st-accordion-duration,var(--st-transition-duration)) var(--st-accordion-easing,var(--st-transition-ease)),height var(--st-accordion-duration,var(--st-transition-duration)) var(--st-accordion-easing,var(--st-transition-ease));transition:width var(--st-accordion-duration,var(--st-transition-duration)) var(--st-accordion-easing,var(--st-transition-ease)),height var(--st-accordion-duration,var(--st-transition-duration)) var(--st-accordion-easing,var(--st-transition-ease))}@-webkit-keyframes cell-flash{0%{background-color:var(--st-cell-flash-color)}to{background-color:initial}}@keyframes cell-flash{0%{background-color:var(--st-cell-flash-color)}to{background-color:initial}}.st-cell-updating{-webkit-animation:cell-flash .6s ease-in-out;animation:cell-flash .6s ease-in-out}@-webkit-keyframes copy-flash{0%{background-color:var(--st-copy-flash-color)}to{background-color:var(--st-selected-cell-background-color)}}@keyframes copy-flash{0%{background-color:var(--st-copy-flash-color)}to{background-color:var(--st-selected-cell-background-color)}}@-webkit-keyframes copy-flash-first{0%{background-color:var(--st-copy-flash-color)}to{background-color:var(--st-selected-first-cell-background-color)}}@keyframes copy-flash-first{0%{background-color:var(--st-copy-flash-color)}to{background-color:var(--st-selected-first-cell-background-color)}}.st-cell-copy-flash{-webkit-animation:copy-flash .8s ease-in-out;animation:copy-flash .8s ease-in-out}.st-cell-copy-flash-first{-webkit-animation:copy-flash-first .8s ease-in-out;animation:copy-flash-first .8s ease-in-out}@-webkit-keyframes warning-flash{0%{background-color:var(--st-warning-flash-color)}to{background-color:initial}}@keyframes warning-flash{0%{background-color:var(--st-warning-flash-color)}to{background-color:initial}}@-webkit-keyframes warning-flash-first{0%{background-color:var(--st-warning-flash-color)}to{background-color:var(--st-selected-first-cell-background-color)}}@keyframes warning-flash-first{0%{background-color:var(--st-warning-flash-color)}to{background-color:var(--st-selected-first-cell-background-color)}}.st-cell-warning-flash{-webkit-animation:warning-flash .6s ease-in-out;animation:warning-flash .6s ease-in-out}.st-cell-warning-flash-first{-webkit-animation:warning-flash-first .6s ease-in-out;animation:warning-flash-first .6s ease-in-out}.st-dropdown-content{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-overflow-scrolling:touch;background-color:var(--st-odd-row-background-color);border:1px solid var(--st-border-color);border-radius:var(--st-border-radius);-webkit-box-shadow:var(--st-edit-cell-shadow);box-shadow:var(--st-edit-cell-shadow);cursor:default;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;max-height:300px;min-width:120px;position:fixed;-ms-touch-action:auto;touch-action:auto;-webkit-transform:translateZ(0);transform:translateZ(0);will-change:transform;z-index:100}.st-dropdown-content.st-dropdown-content--allow-descendant-overflow{max-height:none;overflow:visible}.st-filter-container .st-dropdown-content{z-index:101}.st-dropdown-bottom-left,.st-dropdown-bottom-right,.st-dropdown-top-left,.st-dropdown-top-right{margin:0}.st-dropdown-item{color:var(--st-cell-color);cursor:pointer;font-size:.9em;padding:var(--st-spacing-small) var(--st-spacing-medium);-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease);white-space:nowrap}.st-dropdown-item:hover{background-color:var(--st-button-hover-background-color)}.st-dropdown-item.selected{background-color:var(--st-selected-cell-background-color);color:var(--st-selected-cell-color)}.st-dropdown-divider{background-color:var(--st-border-color);height:1px;margin:4px 0}.st-datepicker{background-color:var(--st-odd-row-background-color);font-family:inherit}.st-datepicker-header{-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:var(--st-header-background-color);border-bottom:1px solid var(--st-border-color);display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:space-between;padding:var(--st-spacing-medium)}.st-datepicker-header-label{-webkit-box-flex:1;color:var(--st-header-label-color);cursor:pointer;-ms-flex:1;flex:1;font-weight:600;text-align:center}.st-datepicker-nav-btn{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;background:#0000;border:none;border-radius:var(--st-border-radius);color:var(--st-cell-color);cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:1.2em;justify-content:center;padding:0 8px}.st-datepicker-nav-btn>*{fill:var(--st-cell-color)!important}.st-datepicker-nav-btn:hover{background-color:var(--st-button-hover-background-color)}.st-datepicker-grid{display:grid;padding:var(--st-spacing-medium)}.st-datepicker-days-grid{gap:4px;grid-template-columns:repeat(7,1fr)}.st-datepicker-months-grid,.st-datepicker-years-grid{gap:8px;grid-template-columns:repeat(3,1fr)}.st-datepicker-weekday{color:var(--st-datepicker-weekday-color);font-size:.8em;font-weight:600;padding:6px 0;text-align:center}.st-datepicker-day{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;border-radius:50%;color:var(--st-cell-color);cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:.9em;height:24px;justify-content:center;-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease);width:24px}.st-datepicker-day.empty{cursor:default}.st-datepicker-day:not(.empty):hover{background-color:var(--st-button-hover-background-color)}.st-datepicker-day.today{color:var(--st-button-active-background-color);font-weight:600}.st-datepicker-day.selected{background-color:var(--st-selected-cell-background-color);color:var(--st-selected-cell-color)}.st-datepicker-day.other-month{color:var(--st-datepicker-other-month-color)}.st-datepicker-month,.st-datepicker-year{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;border-radius:var(--st-border-radius);cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:center;padding:12px 8px;-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease)}.st-datepicker-month:hover,.st-datepicker-year:hover{background-color:var(--st-button-hover-background-color)}.st-datepicker-month.selected,.st-datepicker-year.selected{background-color:var(--st-selected-cell-background-color);color:var(--st-selected-cell-color)}.st-datepicker-footer{-webkit-box-pack:end;-ms-flex-pack:end;border-top:1px solid var(--st-border-color);display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:flex-end;padding:var(--st-spacing-medium)}.st-datepicker-today-btn{background-color:initial;border:1px solid var(--st-border-color);border-radius:var(--st-border-radius);color:var(--st-cell-color);cursor:pointer;padding:6px 12px;-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease)}.st-datepicker-today-btn:hover{background-color:var(--st-button-hover-background-color)}.st-filter-container{min-width:150px;padding:var(--st-spacing-medium)}.st-filter-container,.st-filter-section{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-box-flex:1;-ms-flex-positive:1;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;flex-grow:1}.st-filter-section{margin-bottom:var(--st-spacing-medium)}.st-filter-input{background-color:var(--st-odd-row-background-color);border:var(--st-border-width) solid var(--st-border-color);border-radius:var(--st-border-radius);color:var(--st-cell-color);font-family:inherit;font-size:.9em;outline:none;padding:var(--st-spacing-small);-webkit-transition:border-color var(--st-transition-duration) var(--st-transition-ease);transition:border-color var(--st-transition-duration) var(--st-transition-ease);width:100%}.st-filter-input:focus{border-color:var(--st-editable-cell-focus-border-color)}.st-filter-input-range-from{margin-bottom:var(--st-spacing-medium)}.st-filter-select{background-color:var(--st-odd-row-background-color);border:var(--st-border-width) solid var(--st-border-color);border-radius:var(--st-border-radius);color:var(--st-cell-color);cursor:pointer;font-family:inherit;font-size:.9em;outline:none;padding:var(--st-spacing-medium) var(--st-spacing-medium);-webkit-transition:border-color var(--st-transition-duration) var(--st-transition-ease);transition:border-color var(--st-transition-duration) var(--st-transition-ease);width:100%}.st-filter-select:focus{border-color:var(--st-editable-cell-focus-border-color)}.st-filter-actions{border-top:var(--st-border-width) solid var(--st-border-color);display:-webkit-box;display:-ms-flexbox;display:flex;gap:var(--st-spacing-medium);padding-top:var(--st-spacing-medium)}.st-filter-button{-webkit-box-flex:1;-moz-appearance:none;appearance:none;-webkit-appearance:none;border:none;border-radius:var(--st-border-radius);cursor:pointer;-ms-flex:1;flex:1;font-family:inherit;font-size:.9em;font-weight:500;padding:var(--st-spacing-small);-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease)}.st-filter-button:focus{outline:none}.st-filter-button:focus-visible{outline:2px solid var(--st-focus-ring-color);outline-offset:2px}.st-filter-button-apply{background-color:var(--st-button-active-background-color);color:#fff}.st-filter-button-apply:hover:not(.st-filter-button-disabled){opacity:.9}.st-filter-button-disabled{background-color:var(--st-filter-button-disabled-background-color);color:var(--st-filter-button-disabled-text-color);cursor:not-allowed}.st-filter-button-clear{background-color:initial;border:var(--st-border-width) solid var(--st-border-color);color:var(--st-cell-color)}.st-filter-button-clear:hover{background-color:var(--st-button-hover-background-color)}.st-custom-select{position:relative;width:100%}.st-custom-select-trigger{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:justify;-ms-flex-pack:justify;align-items:center;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-color:var(--st-odd-row-background-color);border:var(--st-border-width) solid var(--st-border-color);border-radius:var(--st-border-radius);color:var(--st-cell-color);cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;font-family:inherit;font-size:.9em;gap:var(--st-spacing-medium);justify-content:space-between;outline:none;padding:var(--st-spacing-small);text-align:left;-webkit-transition:border-color var(--st-transition-duration) var(--st-transition-ease);transition:border-color var(--st-transition-duration) var(--st-transition-ease);width:100%}.st-custom-select-open .st-custom-select-trigger,.st-custom-select-trigger:focus,.st-custom-select-trigger:hover:not(:disabled){border-color:var(--st-editable-cell-focus-border-color)}.st-custom-select-value{-webkit-box-flex:1;color:var(--st-cell-color);-ms-flex:1;flex:1;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.st-custom-select-arrow{-ms-flex-negative:0;color:var(--st-header-label-color);flex-shrink:0;-webkit-transition:-webkit-transform var(--st-transition-duration) var(--st-transition-ease);transition:-webkit-transform var(--st-transition-duration) var(--st-transition-ease);transition:transform var(--st-transition-duration) var(--st-transition-ease);transition:transform var(--st-transition-duration) var(--st-transition-ease),-webkit-transform var(--st-transition-duration) var(--st-transition-ease)}.st-custom-select-open .st-custom-select-arrow{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.st-custom-select-options{-webkit-box-orient:vertical;-webkit-box-direction:normal;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;max-height:200px;min-width:120px;overflow:auto;overflow-x:hidden}.st-custom-select-option{-ms-flex-negative:0;color:var(--st-cell-color);cursor:pointer;flex-shrink:0;font-size:.9em;overflow:hidden;padding:var(--st-spacing-small);text-overflow:ellipsis;-webkit-transition:background-color var(--st-transition-duration) var(--st-transition-ease);transition:background-color var(--st-transition-duration) var(--st-transition-ease);white-space:nowrap}.st-custom-select-option-focused,.st-custom-select-option:hover{background-color:var(--st-button-hover-background-color)}.st-custom-select-option-selected{background-color:var(--st-selected-cell-background-color);color:var(--st-selected-cell-color)}.st-custom-select-option-selected.st-custom-select-option-focused{background-color:var(--st-selected-cell-background-color);opacity:.9}.st-custom-select-disabled{opacity:var(--st-opacity-disabled);pointer-events:none}.st-custom-select-disabled .st-custom-select-trigger{background-color:var(--st-header-background-color);color:var(--st-header-label-color);cursor:not-allowed}.st-enum-filter-options{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-box-flex:1;-ms-flex-positive:1;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;flex-grow:1;gap:var(--st-spacing-small);max-height:200px;overflow:auto}.st-enum-filter-options .st-checkbox-label{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;width:100%}.st-enum-search,.st-enum-select-all{border-bottom:var(--st-border-width) solid var(--st-border-color);padding-bottom:var(--st-spacing-small)}.st-enum-select-all-label{color:var(--st-header-label-color);font-weight:600}.st-enum-option-label{color:var(--st-cell-color);font-size:.9em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.st-enum-filter-options .st-enum-option-label{-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.st-enum-no-results{color:var(--st-slate-400);font-size:.9em;font-style:italic;padding:var(--st-spacing-medium);text-align:center}.st-row-number{font-size:.8em;font-weight:500;opacity:.6;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.st-selection-cell-content{-webkit-box-pack:justify;-ms-flex-pack:justify;gap:8px;justify-content:space-between;width:100%}.st-row-buttons,.st-selection-cell-content,.st-selection-control{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.st-row-buttons,.st-selection-control{-ms-flex-negative:0;flex-shrink:0}.st-row-buttons{-webkit-box-pack:end;-ms-flex-pack:end;gap:4px;justify-content:flex-end}.st-row-button{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;justify-content:center}.st-column-borders .st-cell:not(.st-last-column),.st-column-borders .st-header-cell:not(.st-last-column),.st-column-borders .st-row.hovered .st-cell:not(.st-last-column):not(.st-cell-selected):not(.st-cell-selected-first):not(.st-cell-column-selected):not(.st-cell-column-selected-first),.st-column-borders .st-row.selected.hovered .st-cell:not(.st-last-column):not(.st-cell-selected):not(.st-cell-selected-first):not(.st-cell-column-selected):not(.st-cell-column-selected-first){-webkit-box-shadow:var(--st-border-width) 0 0 0 var(--st-border-color);box-shadow:var(--st-border-width) 0 0 0 var(--st-border-color)}.st-tooltip{word-wrap:break-word;-webkit-animation:st-tooltip-fade-in .2s ease-out;animation:st-tooltip-fade-in .2s ease-out;background-color:var(--st-tooltip-background-color);border-radius:var(--st-tooltip-border-radius);-webkit-box-shadow:var(--st-tooltip-shadow);box-shadow:var(--st-tooltip-shadow);color:var(--st-tooltip-text-color);font-size:.8em;line-height:1.4;max-width:300px;padding:var(--st-tooltip-padding);pointer-events:none}@-webkit-keyframes st-tooltip-fade-in{0%{opacity:0;-webkit-transform:translateY(-4px);transform:translateY(-4px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes st-tooltip-fade-in{0%{opacity:0;-webkit-transform:translateY(-4px);transform:translateY(-4px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}.st-row.st-state-row{display:grid;position:absolute;width:100%}.st-row.st-state-row-spacer{background-color:initial;display:block;position:absolute;width:100%}.st-state-row-cell{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:var(--st-body-background-color);display:-webkit-box;display:-ms-flexbox;display:flex;grid-column:1/-1}.st-bar-chart,.st-line-area-chart{image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges}.st-bar-chart rect{shape-rendering:crispEdges}.theme-light{--st-border-radius:4px;--st-cell-padding:8px;--st-spacing-small:4px;--st-spacing-medium:8px;--st-scrollbar-bg-color:var(--st-slate-50);--st-scrollbar-thumb-color:var(--st-slate-300);--st-scrollbar-width:thin;--st-border-color:var(--st-slate-300);--st-footer-background-color:var(--st-slate-50);--st-last-group-row-separator-border-color:var(--st-slate-400);--st-odd-row-background-color:var(--st-white);--st-even-row-background-color:var(--st-slate-50);--st-hover-row-background-color:var(--st-slate-100);--st-selected-row-background-color:var(--st-blue-50);--st-odd-column-background-color:var(--st-slate-50);--st-even-column-background-color:var(--st-white);--st-header-background-color:var(--st-slate-100);--st-sub-header-background-color:var(--st-slate-200);--st-header-label-color:var(--st-slate-900);--st-header-icon-color:var(--st-slate-500);--st-cell-color:var(--st-slate-900);--st-cell-odd-row-color:var(--st-slate-800);--st-edit-cell-shadow:0 1px 2px 0 #0000000d;--st-sub-cell-background-color:var(--st-slate-100);--st-sub-cell-hover-background-color:var(--st-slate-200);--st-selected-cell-background-color:var(--st-blue-100);--st-selected-first-cell-background-color:var(--st-blue-50);--st-selected-cell-color:var(--st-slate-900);--st-selected-first-cell-color:var(--st-slate-900);--st-selected-sub-cell-background-color:var(--st-blue-200);--st-selected-sub-cell-color:var(--st-slate-900);--st-dragging-background-color:var(--st-slate-200);--st-dragging-sub-header-background-color:var(--st-slate-300);--st-resize-handle-color:var(--st-slate-400);--st-resize-handle-selected-color:var(--st-white);--st-selected-border-color:var(--st-blue-500);--st-editable-cell-focus-border-color:var(--st-blue-500);--st-focus-ring-color:var(--st-blue-800);--st-button-hover-background-color:var(--st-slate-100);--st-button-active-background-color:var(--st-blue-600);--st-next-prev-btn-color:var(--st-slate-600);--st-next-prev-btn-disabled-color:var(--st-slate-400);--st-page-btn-color:var(--st-slate-600);--st-page-btn-hover-background-color:var(--st-slate-100);--st-checkbox-checked-background-color:var(--st-blue-600);--st-checkbox-checked-border-color:var(--st-blue-600);--st-checkbox-border-color:var(--st-slate-300);--st-column-editor-background-color:var(--st-white);--st-column-editor-popout-background-color:var(--st-white);--st-column-editor-text-color:var(--st-slate-500);--st-datepicker-weekday-color:var(--st-slate-500);--st-datepicker-other-month-color:var(--st-slate-400);--st-filter-button-disabled-background-color:var(--st-slate-300);--st-filter-button-disabled-text-color:var(--st-slate-500);--st-cell-flash-color:var(--st-slate-200);--st-copy-flash-color:var(--st-blue-500);--st-warning-flash-color:var(--st-red-300);--st-tooltip-background-color:var(--st-slate-900);--st-tooltip-text-color:var(--st-white);--st-tooltip-border-radius:6px;--st-tooltip-padding:8px 12px;--st-tooltip-font-size:13px;--st-tooltip-shadow:0 2px 8px #00000026;--st-header-selected-background-color:var(--st-blue-600);--st-header-selected-label-color:var(--st-white);--st-header-selected-icon-color:var(--st-white);--st-header-highlight-indicator-color:var(--st-blue-100);--st-selection-highlight-indicator-color:var(--st-slate-300);--st-loading-skeleton-bg-color:var(--st-slate-200);--st-chart-color:var(--st-blue-300);--st-chart-fill-color:var(--st-blue-300);--st-drag-separator-color:var(--st-blue-500)}.theme-dark{--st-border-radius:4px;--st-cell-padding:8px;--st-spacing-small:4px;--st-spacing-medium:8px;--st-scrollbar-bg-color:var(--st-gray-900);--st-scrollbar-thumb-color:var(--st-gray-600);--st-scrollbar-width:thin;--st-scrollbar-thumb-border-radius:4px;--st-border-color:var(--st-gray-700);--st-footer-background-color:var(--st-gray-900);--st-last-group-row-separator-border-color:var(--st-gray-500);--st-odd-row-background-color:var(--st-gray-800);--st-even-row-background-color:var(--st-gray-900);--st-hover-row-background-color:var(--st-gray-600);--st-selected-row-background-color:var(--st-blue-950);--st-odd-column-background-color:var(--st-gray-800);--st-even-column-background-color:var(--st-gray-900);--st-header-background-color:var(--st-gray-800);--st-sub-header-background-color:var(--st-gray-700);--st-sub-cell-background-color:var(--st-gray-800);--st-sub-cell-hover-background-color:var(--st-gray-700);--st-header-label-color:var(--st-gray-100);--st-header-icon-color:var(--st-gray-400);--st-cell-color:var(--st-gray-100);--st-cell-odd-row-color:var(--st-gray-200);--st-edit-cell-shadow:0 1px 3px 0 #ffffff1a;--st-selected-cell-background-color:var(--st-blue-900);--st-selected-first-cell-background-color:var(--st-blue-800);--st-selected-cell-color:var(--st-white);--st-selected-first-cell-color:var(--st-white);--st-selected-sub-cell-background-color:var(--st-blue-800);--st-selected-sub-cell-color:var(--st-white);--st-dragging-background-color:var(--st-gray-500);--st-dragging-sub-header-background-color:var(--st-gray-600);--st-resize-handle-color:var(--st-gray-500);--st-resize-handle-selected-color:var(--st-white);--st-selected-border-color:var(--st-blue-400);--st-editable-cell-focus-border-color:var(--st-blue-400);--st-focus-ring-color:var(--st-blue-400);--st-button-hover-background-color:var(--st-gray-600);--st-button-active-background-color:var(--st-blue-500);--st-next-prev-btn-color:var(--st-gray-300);--st-next-prev-btn-disabled-color:var(--st-gray-600);--st-page-btn-color:var(--st-gray-300);--st-page-btn-hover-background-color:var(--st-gray-600);--st-checkbox-checked-background-color:var(--st-blue-500);--st-checkbox-checked-border-color:var(--st-blue-500);--st-checkbox-border-color:var(--st-gray-600);--st-column-editor-background-color:var(--st-gray-800);--st-column-editor-popout-background-color:var(--st-gray-800);--st-column-editor-text-color:var(--st-gray-400);--st-datepicker-weekday-color:var(--st-gray-400);--st-datepicker-other-month-color:var(--st-gray-600);--st-filter-button-disabled-background-color:var(--st-gray-700);--st-filter-button-disabled-text-color:var(--st-gray-500);--st-cell-flash-color:var(--st-gray-500);--st-copy-flash-color:var(--st-blue-500);--st-warning-flash-color:var(--st-red-400);--st-tooltip-background-color:var(--st-gray-100);--st-tooltip-text-color:var(--st-gray-900);--st-tooltip-border-radius:6px;--st-tooltip-padding:8px 12px;--st-tooltip-font-size:13px;--st-tooltip-shadow:0 2px 8px #0000004d;--st-header-selected-background-color:var(--st-blue-500);--st-header-selected-label-color:var(--st-white);--st-header-selected-icon-color:var(--st-white);--st-header-highlight-indicator-color:var(--st-blue-900);--st-selection-highlight-indicator-color:var(--st-gray-600);--st-loading-skeleton-bg-color:var(--st-gray-700);--st-chart-color:var(--st-blue-400);--st-chart-fill-color:var(--st-blue-400);--st-drag-separator-color:var(--st-blue-400)}.theme-neutral{--st-border-radius:4px;--st-cell-padding:8px;--st-spacing-small:4px;--st-spacing-medium:8px;--st-scrollbar-bg-color:var(--st-neutral-100);--st-scrollbar-thumb-color:var(--st-neutral-400);--st-scrollbar-width:thin;--st-scrollbar-thumb-border-radius:4px;--st-border-color:var(--st-neutral-300);--st-footer-background-color:var(--st-neutral-50);--st-last-group-row-separator-border-color:var(--st-neutral-400);--st-odd-row-background-color:var(--st-neutral-50);--st-even-row-background-color:var(--st-neutral-100);--st-hover-row-background-color:var(--st-neutral-200);--st-selected-row-background-color:var(--st-neutral-200);--st-odd-column-background-color:var(--st-neutral-50);--st-even-column-background-color:var(--st-neutral-100);--st-header-background-color:var(--st-neutral-200);--st-sub-header-background-color:var(--st-neutral-300);--st-sub-cell-background-color:var(--st-neutral-200);--st-sub-cell-hover-background-color:var(--st-neutral-300);--st-header-label-color:var(--st-neutral-900);--st-header-icon-color:var(--st-neutral-500);--st-cell-color:var(--st-neutral-900);--st-cell-odd-row-color:var(--st-neutral-800);--st-edit-cell-shadow:0 1px 2px 0 #0000000d;--st-selected-cell-background-color:var(--st-neutral-400);--st-selected-first-cell-background-color:var(--st-neutral-300);--st-selected-cell-color:var(--st-neutral-900);--st-selected-first-cell-color:var(--st-neutral-900);--st-selected-sub-cell-background-color:var(--st-neutral-400);--st-selected-sub-cell-color:var(--st-neutral-900);--st-dragging-background-color:var(--st-neutral-300);--st-dragging-sub-header-background-color:var(--st-neutral-400);--st-resize-handle-color:var(--st-neutral-400);--st-resize-handle-selected-color:var(--st-white);--st-selected-border-color:var(--st-neutral-600);--st-editable-cell-focus-border-color:var(--st-neutral-500);--st-focus-ring-color:var(--st-neutral-600);--st-button-hover-background-color:var(--st-neutral-200);--st-button-active-background-color:var(--st-neutral-600);--st-next-prev-btn-color:var(--st-neutral-600);--st-next-prev-btn-disabled-color:var(--st-neutral-400);--st-page-btn-color:var(--st-neutral-600);--st-page-btn-hover-background-color:var(--st-neutral-200);--st-checkbox-checked-background-color:var(--st-neutral-600);--st-checkbox-checked-border-color:var(--st-neutral-600);--st-checkbox-border-color:var(--st-neutral-300);--st-column-editor-background-color:var(--st-neutral-50);--st-column-editor-popout-background-color:var(--st-neutral-50);--st-column-editor-text-color:var(--st-neutral-500);--st-datepicker-weekday-color:var(--st-neutral-500);--st-datepicker-other-month-color:var(--st-neutral-400);--st-filter-button-disabled-background-color:var(--st-neutral-300);--st-filter-button-disabled-text-color:var(--st-neutral-500);--st-cell-flash-color:var(--st-neutral-400);--st-copy-flash-color:var(--st-neutral-600);--st-warning-flash-color:var(--st-red-400);--st-tooltip-background-color:var(--st-neutral-800);--st-tooltip-text-color:var(--st-white);--st-tooltip-border-radius:6px;--st-tooltip-padding:8px 12px;--st-tooltip-font-size:13px;--st-tooltip-shadow:0 2px 8px #00000026;--st-header-selected-background-color:var(--st-neutral-600);--st-header-selected-label-color:var(--st-white);--st-header-selected-icon-color:var(--st-white);--st-header-highlight-indicator-color:var(--st-neutral-400);--st-selection-highlight-indicator-color:var(--st-neutral-400);--st-loading-skeleton-bg-color:var(--st-neutral-200);--st-chart-color:var(--st-neutral-500);--st-chart-fill-color:var(--st-neutral-500);--st-drag-separator-color:var(--st-neutral-600)}.theme-sky{--st-border-radius:4px;--st-cell-padding:8px;--st-spacing-small:4px;--st-spacing-medium:8px;--st-scrollbar-bg-color:var(--st-blue-50);--st-scrollbar-thumb-color:var(--st-blue-300);--st-scrollbar-width:thin;--st-scrollbar-thumb-border-radius:4px;--st-border-color:var(--st-blue-300);--st-footer-background-color:var(--st-blue-50);--st-last-group-row-separator-border-color:var(--st-blue-400);--st-odd-row-background-color:var(--st-blue-50);--st-even-row-background-color:var(--st-blue-100);--st-hover-row-background-color:var(--st-blue-200);--st-selected-row-background-color:var(--st-sky-100);--st-odd-column-background-color:var(--st-blue-50);--st-even-column-background-color:var(--st-blue-100);--st-header-background-color:var(--st-blue-200);--st-sub-header-background-color:var(--st-blue-300);--st-sub-cell-background-color:var(--st-sky-100);--st-sub-cell-hover-background-color:var(--st-sky-200);--st-header-label-color:var(--st-blue-900);--st-header-icon-color:var(--st-blue-600);--st-cell-color:var(--st-blue-900);--st-cell-odd-row-color:var(--st-blue-800);--st-edit-cell-shadow:0 1px 2px 0 #0000000d;--st-selected-cell-background-color:var(--st-blue-400);--st-selected-first-cell-background-color:var(--st-blue-300);--st-selected-cell-color:var(--st-blue-900);--st-selected-first-cell-color:var(--st-blue-900);--st-selected-sub-cell-background-color:var(--st-sky-300);--st-selected-sub-cell-color:var(--st-blue-900);--st-dragging-background-color:var(--st-sky-300);--st-dragging-sub-header-background-color:var(--st-sky-400);--st-resize-handle-color:var(--st-blue-400);--st-resize-handle-selected-color:var(--st-white);--st-selected-border-color:var(--st-blue-600);--st-editable-cell-focus-border-color:var(--st-blue-500);--st-focus-ring-color:var(--st-blue-600);--st-button-hover-background-color:var(--st-blue-200);--st-button-active-background-color:var(--st-blue-600);--st-next-prev-btn-color:var(--st-blue-600);--st-next-prev-btn-disabled-color:var(--st-blue-400);--st-page-btn-color:var(--st-blue-600);--st-page-btn-hover-background-color:var(--st-blue-200);--st-checkbox-checked-background-color:var(--st-blue-600);--st-checkbox-checked-border-color:var(--st-blue-600);--st-checkbox-border-color:var(--st-blue-300);--st-column-editor-background-color:var(--st-blue-50);--st-column-editor-popout-background-color:var(--st-blue-50);--st-column-editor-text-color:var(--st-blue-600);--st-datepicker-weekday-color:var(--st-blue-600);--st-datepicker-other-month-color:var(--st-blue-400);--st-filter-button-disabled-background-color:var(--st-blue-300);--st-filter-button-disabled-text-color:var(--st-blue-500);--st-cell-flash-color:var(--st-sky-200);--st-copy-flash-color:var(--st-blue-600);--st-warning-flash-color:var(--st-orange-400);--st-tooltip-background-color:var(--st-blue-900);--st-tooltip-text-color:var(--st-white);--st-tooltip-border-radius:6px;--st-tooltip-padding:8px 12px;--st-tooltip-font-size:13px;--st-tooltip-shadow:0 2px 8px #00000026;--st-header-selected-background-color:var(--st-blue-600);--st-header-selected-label-color:var(--st-white);--st-header-selected-icon-color:var(--st-white);--st-header-highlight-indicator-color:var(--st-blue-400);--st-selection-highlight-indicator-color:var(--st-blue-400);--st-loading-skeleton-bg-color:var(--st-blue-200);--st-chart-color:var(--st-blue-900);--st-chart-fill-color:var(--st-blue-900);--st-drag-separator-color:var(--st-blue-600)}.theme-violet{--st-border-radius:8px;--st-cell-padding:12px;--st-spacing-small:6px;--st-spacing-medium:10px;--st-scrollbar-bg-color:var(--st-stone-100);--st-scrollbar-thumb-color:var(--st-violet-500);--st-scrollbar-width:thin;--st-scrollbar-thumb-border-radius:4px;--st-border-color:var(--st-stone-200);--st-footer-background-color:var(--st-stone-100);--st-last-group-row-separator-border-color:var(--st-stone-300);--st-odd-row-background-color:var(--st-amber-50);--st-even-row-background-color:var(--st-amber-100);--st-hover-row-background-color:var(--st-amber-200);--st-selected-row-background-color:var(--st-violet-100);--st-odd-column-background-color:var(--st-violet-50);--st-even-column-background-color:var(--st-amber-50);--st-header-background-color:var(--st-violet-600);--st-sub-header-background-color:var(--st-violet-500);--st-sub-cell-background-color:var(--st-violet-100);--st-sub-cell-hover-background-color:var(--st-violet-200);--st-header-label-color:var(--st-white);--st-header-icon-color:var(--st-violet-200);--st-cell-color:var(--st-stone-700);--st-cell-odd-row-color:var(--st-stone-700);--st-edit-cell-shadow:0 4px 6px -1px #7c3aed1a,0 2px 4px -1px #7c3aed0f;--st-selected-cell-background-color:var(--st-violet-50);--st-selected-first-cell-background-color:var(--st-violet-100);--st-selected-cell-color:var(--st-violet-800);--st-selected-first-cell-color:var(--st-violet-800);--st-selected-sub-cell-background-color:var(--st-violet-200);--st-selected-sub-cell-color:var(--st-violet-800);--st-dragging-background-color:var(--st-violet-200);--st-dragging-sub-header-background-color:var(--st-violet-300);--st-resize-handle-color:var(--st-violet-400);--st-resize-handle-selected-color:var(--st-white);--st-selected-border-color:var(--st-violet-500);--st-editable-cell-focus-border-color:var(--st-violet-500);--st-focus-ring-color:var(--st-violet-600);--st-button-hover-background-color:var(--st-violet-50);--st-button-active-background-color:var(--st-violet-600);--st-next-prev-btn-color:var(--st-violet-600);--st-next-prev-btn-disabled-color:var(--st-violet-400);--st-page-btn-color:var(--st-violet-600);--st-page-btn-hover-background-color:var(--st-violet-50);--st-checkbox-checked-background-color:var(--st-violet-500);--st-checkbox-checked-border-color:var(--st-violet-600);--st-checkbox-border-color:var(--st-stone-200);--st-column-editor-background-color:var(--st-white);--st-column-editor-popout-background-color:var(--st-white);--st-column-editor-text-color:var(--st-violet-600);--st-datepicker-weekday-color:var(--st-violet-600);--st-datepicker-other-month-color:var(--st-violet-400);--st-filter-button-disabled-background-color:var(--st-stone-200);--st-filter-button-disabled-text-color:var(--st-stone-500);--st-cell-flash-color:var(--st-violet-200);--st-copy-flash-color:var(--st-violet-600);--st-warning-flash-color:var(--st-red-400);--st-tooltip-background-color:var(--st-violet-800);--st-tooltip-text-color:var(--st-white);--st-tooltip-border-radius:6px;--st-tooltip-padding:8px 12px;--st-tooltip-font-size:13px;--st-tooltip-shadow:0 2px 8px #00000026;--st-header-selected-background-color:var(--st-violet-600);--st-header-selected-label-color:var(--st-white);--st-header-selected-icon-color:var(--st-white);--st-header-highlight-indicator-color:var(--st-violet-800);--st-selection-highlight-indicator-color:var(--st-stone-400);--st-loading-skeleton-bg-color:var(--st-stone-200);--st-chart-color:var(--st-violet-400);--st-chart-fill-color:var(--st-violet-400);--st-drag-separator-color:var(--st-violet-500)}.theme-frost{--st-border-radius:0px;--st-cell-padding:8px;--st-spacing-small:4px;--st-spacing-medium:8px;--st-scrollbar-bg-color:#f8faff;--st-scrollbar-thumb-color:#c5d1dd;--st-scrollbar-width:thin;--st-scrollbar-thumb-border-radius:4px;--st-border-color:#e1e7ea;--st-footer-background-color:#f8faff;--st-last-group-row-separator-border-color:#c5d1dd;--st-odd-row-background-color:#fff;--st-even-row-background-color:#f4f8fc;--st-hover-row-background-color:#e5effe;--st-selected-row-background-color:#d4e4fd;--st-odd-column-background-color:#fff;--st-even-column-background-color:#fff;--st-header-background-color:#f8faff;--st-sub-header-background-color:#e5effe;--st-sub-cell-background-color:#f8faff;--st-sub-cell-hover-background-color:#d4e4fd;--st-header-label-color:#0b1215;--st-header-icon-color:#5a6c7d;--st-cell-color:#0b1215;--st-cell-odd-row-color:#0b1215;--st-edit-cell-shadow:0 1px 2px 0 #0b12150d;--st-selected-cell-background-color:#c9dcfb;--st-selected-first-cell-background-color:#d4e4fd;--st-selected-cell-color:#0b1215;--st-selected-first-cell-color:#0b1215;--st-selected-sub-cell-background-color:#c9dcfb;--st-selected-sub-cell-color:#0b1215;--st-dragging-background-color:#d0dce8;--st-dragging-sub-header-background-color:#0d9488;--st-resize-handle-color:#c5d1dd;--st-resize-handle-selected-color:#5a6c7d;--st-selected-border-color:#5a9cf8;--st-editable-cell-focus-border-color:#5a9cf8;--st-focus-ring-color:#5a9cf8;--st-button-hover-background-color:#e5effe;--st-button-active-background-color:#5a9cf8;--st-next-prev-btn-color:#5a6c7d;--st-next-prev-btn-disabled-color:#c5d1dd;--st-page-btn-color:#5a6c7d;--st-page-btn-hover-background-color:#e5effe;--st-checkbox-checked-background-color:#5a9cf8;--st-checkbox-checked-border-color:#4a8ce8;--st-checkbox-border-color:#e1e7ea;--st-column-editor-background-color:#fff;--st-column-editor-popout-background-color:#fff;--st-column-editor-text-color:#5a6c7d;--st-datepicker-weekday-color:#5a6c7d;--st-datepicker-other-month-color:#c5d1dd;--st-filter-button-disabled-background-color:#e1e7ea;--st-filter-button-disabled-text-color:#5a6c7d;--st-cell-flash-color:#d0dce8;--st-copy-flash-color:#5a9cf8;--st-warning-flash-color:#f87171;--st-tooltip-background-color:#0b1215;--st-tooltip-text-color:#fff;--st-tooltip-border-radius:6px;--st-tooltip-padding:8px 12px;--st-tooltip-font-size:13px;--st-tooltip-shadow:0 2px 8px #00000026;--st-header-selected-background-color:#5a9cf8;--st-header-selected-label-color:#fff;--st-header-selected-icon-color:#fff;--st-header-highlight-indicator-color:#c9dcfb;--st-selection-highlight-indicator-color:#e1e7ea;--st-loading-skeleton-bg-color:#e1e7ea;--st-chart-color:var(--st-blue-300);--st-chart-fill-color:var(--st-blue-300);--st-drag-separator-color:#0d9488}.theme-modern-light{--st-border-radius:4px;--st-cell-padding:12px;--st-spacing-small:4px;--st-spacing-medium:8px;--st-scrollbar-bg-color:#fafafa;--st-scrollbar-thumb-color:#d1d5db;--st-scrollbar-width:thin;--st-border-color:#e5e7eb;--st-footer-background-color:var(--st-white);--st-last-group-row-separator-border-color:#e5e7eb;--st-odd-row-background-color:var(--st-white);--st-even-row-background-color:#fafafa;--st-hover-row-background-color:#f3f4f6;--st-selected-row-background-color:#eff6ff;--st-odd-column-background-color:var(--st-white);--st-even-column-background-color:var(--st-white);--st-header-background-color:var(--st-white);--st-sub-header-background-color:#fafafa;--st-header-label-color:#111827;--st-header-icon-color:#6b7280;--st-cell-color:#111827;--st-cell-odd-row-color:#374151;--st-edit-cell-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;--st-sub-cell-background-color:#f9fafb;--st-sub-cell-hover-background-color:#f3f4f6;--st-selected-cell-background-color:#dbeafe;--st-selected-first-cell-background-color:#eff6ff;--st-selected-cell-color:#111827;--st-selected-first-cell-color:#111827;--st-selected-sub-cell-background-color:#bfdbfe;--st-selected-sub-cell-color:#111827;--st-dragging-background-color:#f3f4f6;--st-dragging-sub-header-background-color:#e5e7eb;--st-resize-handle-color:#e5e7eb;--st-resize-handle-selected-color:#3b82f6;--st-selected-border-color:#3b82f6;--st-editable-cell-focus-border-color:#3b82f6;--st-focus-ring-color:#3b82f6;--st-button-hover-background-color:#f3f4f6;--st-button-active-background-color:#3b82f6;--st-next-prev-btn-color:#6b7280;--st-next-prev-btn-disabled-color:#d1d5db;--st-page-btn-color:#6b7280;--st-page-btn-hover-background-color:#f3f4f6;--st-checkbox-checked-background-color:#3b82f6;--st-checkbox-checked-border-color:#3b82f6;--st-checkbox-border-color:#d1d5db;--st-column-editor-background-color:var(--st-white);--st-column-editor-popout-background-color:var(--st-white);--st-column-editor-text-color:#6b7280;--st-datepicker-weekday-color:#6b7280;--st-datepicker-other-month-color:#d1d5db;--st-filter-button-disabled-background-color:#f3f4f6;--st-filter-button-disabled-text-color:#9ca3af;--st-cell-flash-color:#dbeafe;--st-copy-flash-color:#3b82f6;--st-warning-flash-color:#fca5a5;--st-tooltip-background-color:#1f2937;--st-tooltip-text-color:var(--st-white);--st-tooltip-border-radius:6px;--st-tooltip-padding:6px 10px;--st-tooltip-font-size:12px;--st-tooltip-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;--st-header-selected-background-color:#3b82f6;--st-header-selected-label-color:var(--st-white);--st-header-selected-icon-color:var(--st-white);--st-header-highlight-indicator-color:#dbeafe;--st-selection-highlight-indicator-color:#f3f4f6;--st-loading-skeleton-bg-color:#f3f4f6;--st-chart-color:#3b82f6;--st-chart-fill-color:#dbeafe;--st-drag-separator-color:#3b82f6;--st-body-background-color:var(--st-white)}.theme-modern-light .st-wrapper{border:1px solid var(--st-border-color)}.theme-modern-light .st-header-main,.theme-modern-light .st-header-pinned-left,.theme-modern-light .st-header-pinned-right{border-bottom:1px solid var(--st-border-color)}.theme-modern-light .st-body-pinned-left,.theme-modern-light .st-header-pinned-left{border-right:1px solid var(--st-border-color)}.theme-modern-light .st-body-pinned-right,.theme-modern-light .st-header-pinned-right{border-left:1px solid var(--st-border-color)}.theme-modern-light .st-row-separator{background-color:var(--st-border-color)}.theme-modern-light .st-header-cell{color:#6b7280;font-size:14px;font-weight:500}.theme-modern-light .st-cell-content{color:#111827;font-size:14px}.theme-modern-light .st-row.hovered{-webkit-transition:background-color .15s ease;transition:background-color .15s ease}.theme-modern-light .st-footer{background-color:var(--st-white);border-top:1px solid var(--st-border-color);gap:12px;padding:12px 16px}.theme-modern-light .st-footer-results-text{color:#6b7280;font-size:14px}.theme-modern-light .st-footer-pagination{-ms-flex-wrap:nowrap;flex-wrap:nowrap;gap:2px;overflow:hidden}.theme-modern-light .st-page-ellipsis{color:#9ca3af;font-weight:400;padding:0 4px}.theme-modern-light .st-page-btn{-ms-flex-negative:0;border-radius:4px;color:#374151;flex-shrink:0;font-size:13px;font-weight:500;margin-right:0;min-width:36px;padding:6px 8px;-webkit-transition:all .15s ease;transition:all .15s ease}.theme-modern-light .st-page-btn:hover{background-color:#f3f4f6}.theme-modern-light .st-page-btn.active{background-color:#3b82f6;color:#fff;font-weight:600}.theme-modern-light .st-next-prev-btn{-ms-flex-negative:0;border-radius:4px;flex-shrink:0;margin-left:4px;padding:6px 8px;-webkit-transition:all .15s ease;transition:all .15s ease}.theme-modern-light .st-next-prev-btn:not(.disabled):hover{background-color:#f3f4f6}.theme-modern-light .st-horizontal-scrollbar-container{background-color:#fafafa;border-top:1px solid var(--st-border-color)}.theme-modern-light .st-group-header{border-bottom:1px solid var(--st-border-color);font-weight:500}.theme-modern-light .st-checkbox-custom{border:1.5px solid #d1d5db;border-radius:4px}.theme-modern-light .st-checkbox-custom.st-checked{background-color:#3b82f6;border-color:#3b82f6}.theme-custom{--st-border-radius:4px;--st-cell-padding:12px;--st-spacing-small:4px;--st-spacing-medium:8px;--st-scrollbar-bg-color:#fafafa;--st-scrollbar-thumb-color:#d1d5db;--st-scrollbar-width:thin;--st-border-color:#e5e7eb;--st-footer-background-color:var(--st-white);--st-last-group-row-separator-border-color:#e5e7eb;--st-odd-row-background-color:var(--st-white);--st-even-row-background-color:#fafafa;--st-hover-row-background-color:#f3f4f6;--st-selected-row-background-color:#eff6ff;--st-odd-column-background-color:var(--st-white);--st-even-column-background-color:var(--st-white);--st-header-background-color:var(--st-white);--st-sub-header-background-color:#fafafa;--st-header-label-color:#111827;--st-header-icon-color:#6b7280;--st-cell-color:#111827;--st-cell-odd-row-color:#374151;--st-edit-cell-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;--st-sub-cell-background-color:#f9fafb;--st-sub-cell-hover-background-color:#f3f4f6;--st-selected-cell-background-color:#dbeafe;--st-selected-first-cell-background-color:#eff6ff;--st-selected-cell-color:#111827;--st-selected-first-cell-color:#111827;--st-selected-sub-cell-background-color:#bfdbfe;--st-selected-sub-cell-color:#111827;--st-dragging-background-color:#f3f4f6;--st-dragging-sub-header-background-color:#e5e7eb;--st-resize-handle-color:#e5e7eb;--st-resize-handle-selected-color:#3b82f6;--st-selected-border-color:#3b82f6;--st-editable-cell-focus-border-color:#3b82f6;--st-focus-ring-color:#3b82f6;--st-button-hover-background-color:#f3f4f6;--st-button-active-background-color:#3b82f6;--st-next-prev-btn-color:#6b7280;--st-next-prev-btn-disabled-color:#d1d5db;--st-page-btn-color:#6b7280;--st-page-btn-hover-background-color:#f3f4f6;--st-checkbox-checked-background-color:#3b82f6;--st-checkbox-checked-border-color:#3b82f6;--st-checkbox-border-color:#d1d5db;--st-column-editor-background-color:var(--st-white);--st-column-editor-popout-background-color:var(--st-white);--st-column-editor-text-color:#6b7280;--st-datepicker-weekday-color:#6b7280;--st-datepicker-other-month-color:#d1d5db;--st-filter-button-disabled-background-color:#f3f4f6;--st-filter-button-disabled-text-color:#9ca3af;--st-cell-flash-color:#dbeafe;--st-copy-flash-color:#3b82f6;--st-warning-flash-color:#fca5a5;--st-tooltip-background-color:#1f2937;--st-tooltip-text-color:var(--st-white);--st-tooltip-border-radius:6px;--st-tooltip-padding:6px 10px;--st-tooltip-font-size:12px;--st-tooltip-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;--st-header-selected-background-color:#3b82f6;--st-header-selected-label-color:var(--st-white);--st-header-selected-icon-color:var(--st-white);--st-header-highlight-indicator-color:#dbeafe;--st-selection-highlight-indicator-color:#f3f4f6;--st-loading-skeleton-bg-color:#f3f4f6;--st-chart-color:#3b82f6;--st-chart-fill-color:#dbeafe;--st-drag-separator-color:#3b82f6;--st-body-background-color:var(--st-white)}.theme-custom .st-wrapper{border:var(--st-border-width) solid var(--st-border-color)}.theme-custom .st-header-main,.theme-custom .st-header-pinned-left,.theme-custom .st-header-pinned-right{border-bottom:var(--st-border-width) solid var(--st-border-color)}.theme-custom .st-body-pinned-left,.theme-custom .st-header-pinned-left{border-right:var(--st-border-width) solid var(--st-border-color)}.theme-custom .st-body-pinned-right,.theme-custom .st-header-pinned-right{border-left:var(--st-border-width) solid var(--st-border-color)}.theme-custom .st-row-separator{background-color:var(--st-hover-row-background-color)}.theme-custom .st-header-cell{color:var(--st-header-icon-color);font-size:14px;font-weight:500}.theme-custom .st-cell-content{color:var(--st-cell-color);font-size:14px}.theme-custom .st-row.hovered{-webkit-transition:background-color .15s ease;transition:background-color .15s ease}.theme-custom .st-footer{background-color:var(--st-footer-background-color);border-top:var(--st-border-width) solid var(--st-border-color);gap:12px;padding:12px 16px}.theme-custom .st-footer-results-text{color:var(--st-cell-color);font-size:14px}.theme-custom .st-footer-pagination{-ms-flex-wrap:nowrap;flex-wrap:nowrap;gap:2px;overflow:hidden}.theme-custom .st-page-ellipsis{color:var(--st-page-btn-color);font-weight:400;padding:0 4px}.theme-custom .st-page-btn{-ms-flex-negative:0;border-radius:4px;color:var(--st-page-btn-color);flex-shrink:0;font-size:13px;font-weight:500;margin-right:0;min-width:36px;padding:6px 8px;-webkit-transition:all .15s ease;transition:all .15s ease}.theme-custom .st-page-btn:hover{background-color:var(--st-page-btn-hover-background-color)}.theme-custom .st-page-btn.active{background-color:var(--st-button-active-background-color);color:var(--st-header-selected-label-color);font-weight:600}.theme-custom .st-next-prev-btn{-ms-flex-negative:0;border-radius:4px;flex-shrink:0;margin-left:4px;padding:6px 8px;-webkit-transition:all .15s ease;transition:all .15s ease}.theme-custom .st-next-prev-btn:not(.disabled):hover{background-color:var(--st-page-btn-hover-background-color)}.theme-custom .st-horizontal-scrollbar-container{background-color:var(--st-scrollbar-bg-color);border-top:var(--st-border-width) solid var(--st-border-color)}.theme-custom .st-group-header{border-bottom:var(--st-border-width) solid var(--st-border-color);font-weight:500}.theme-custom .st-checkbox-custom{border:1.5px solid var(--st-checkbox-border-color);border-radius:4px}.theme-custom .st-checkbox-custom.st-checked{background-color:var(--st-checkbox-checked-background-color);border-color:var(--st-checkbox-checked-border-color)}.theme-modern-dark{--st-border-radius:4px;--st-cell-padding:12px;--st-spacing-small:4px;--st-spacing-medium:8px;--st-scrollbar-bg-color:#111827;--st-scrollbar-thumb-color:#4b5563;--st-scrollbar-width:thin;--st-border-color:#374151;--st-footer-background-color:#1f2937;--st-last-group-row-separator-border-color:#4b5563;--st-odd-row-background-color:#1f2937;--st-even-row-background-color:#232f3f;--st-hover-row-background-color:#374151;--st-selected-row-background-color:#1e3a5f;--st-odd-column-background-color:#1f2937;--st-even-column-background-color:#1f2937;--st-header-background-color:#1f2937;--st-sub-header-background-color:#111827;--st-header-label-color:#f3f4f6;--st-header-icon-color:#9ca3af;--st-cell-color:#f3f4f6;--st-cell-odd-row-color:#d1d5db;--st-edit-cell-shadow:0 4px 6px -1px #0000004d,0 2px 4px -1px #0003;--st-sub-cell-background-color:#111827;--st-sub-cell-hover-background-color:#1f2937;--st-selected-cell-background-color:#1e40af;--st-selected-first-cell-background-color:#1e3a8a;--st-selected-cell-color:#f3f4f6;--st-selected-first-cell-color:#f3f4f6;--st-selected-sub-cell-background-color:#1e3a8a;--st-selected-sub-cell-color:#f3f4f6;--st-dragging-background-color:#374151;--st-dragging-sub-header-background-color:#4b5563;--st-resize-handle-color:#4b5563;--st-resize-handle-selected-color:#60a5fa;--st-selected-border-color:#60a5fa;--st-editable-cell-focus-border-color:#60a5fa;--st-focus-ring-color:#60a5fa;--st-button-hover-background-color:#374151;--st-button-active-background-color:#3b82f6;--st-next-prev-btn-color:#9ca3af;--st-next-prev-btn-disabled-color:#4b5563;--st-page-btn-color:#d1d5db;--st-page-btn-hover-background-color:#374151;--st-checkbox-checked-background-color:#3b82f6;--st-checkbox-checked-border-color:#3b82f6;--st-checkbox-border-color:#4b5563;--st-column-editor-background-color:#1f2937;--st-column-editor-popout-background-color:#1f2937;--st-column-editor-text-color:#9ca3af;--st-datepicker-weekday-color:#9ca3af;--st-datepicker-other-month-color:#4b5563;--st-filter-button-disabled-background-color:#374151;--st-filter-button-disabled-text-color:#6b7280;--st-cell-flash-color:#1e40af;--st-copy-flash-color:#60a5fa;--st-warning-flash-color:#ef4444;--st-tooltip-background-color:#f3f4f6;--st-tooltip-text-color:#111827;--st-tooltip-border-radius:6px;--st-tooltip-padding:6px 10px;--st-tooltip-font-size:12px;--st-tooltip-shadow:0 10px 15px -3px #0000004d,0 4px 6px -2px #0003;--st-header-selected-background-color:#3b82f6;--st-header-selected-label-color:var(--st-white);--st-header-selected-icon-color:var(--st-white);--st-header-highlight-indicator-color:#1e40af;--st-selection-highlight-indicator-color:#374151;--st-loading-skeleton-bg-color:#374151;--st-chart-color:#60a5fa;--st-chart-fill-color:#3b82f6;--st-drag-separator-color:#60a5fa;--st-body-background-color:#1f2937}.theme-modern-dark .st-wrapper{border:1px solid #374151}.theme-modern-dark .st-header-main,.theme-modern-dark .st-header-pinned-left,.theme-modern-dark .st-header-pinned-right{border-bottom:1px solid #374151}.theme-modern-dark .st-body-pinned-left,.theme-modern-dark .st-header-pinned-left{border-right:1px solid #374151}.theme-modern-dark .st-body-pinned-right,.theme-modern-dark .st-header-pinned-right{border-left:1px solid #374151}.theme-modern-dark .st-row-separator{background-color:#374151}.theme-modern-dark .st-header-cell{color:#d1d5db;font-size:14px;font-weight:500}.theme-modern-dark .st-cell-content{color:#f3f4f6;font-size:14px}.theme-modern-dark .st-row.hovered{-webkit-transition:background-color .15s ease;transition:background-color .15s ease}.theme-modern-dark .st-footer{background-color:#1f2937;border-top:1px solid #374151;gap:12px;padding:12px 16px}.theme-modern-dark .st-footer-results-text{color:#d1d5db;font-size:14px}.theme-modern-dark .st-footer-pagination{-ms-flex-wrap:nowrap;flex-wrap:nowrap;gap:2px;overflow:hidden}.theme-modern-dark .st-page-ellipsis{color:#9ca3af;font-weight:400;padding:0 4px}.theme-modern-dark .st-page-btn{-ms-flex-negative:0;border-radius:4px;color:#d1d5db;flex-shrink:0;font-size:13px;font-weight:500;margin-right:0;min-width:36px;padding:6px 8px;-webkit-transition:all .15s ease;transition:all .15s ease}.theme-modern-dark .st-page-btn:hover{background-color:#374151}.theme-modern-dark .st-page-btn.active{background-color:#3b82f6;color:#fff;font-weight:600}.theme-modern-dark .st-next-prev-btn{-ms-flex-negative:0;border-radius:4px;flex-shrink:0;margin-left:4px;padding:6px 8px;-webkit-transition:all .15s ease;transition:all .15s ease}.theme-modern-dark .st-next-prev-btn:not(.disabled):hover{background-color:#374151}.theme-modern-dark .st-next-prev-btn.disabled>*{fill:#4b5563}.theme-modern-dark .st-horizontal-scrollbar-container{background-color:#111827;border-top:1px solid #374151}.theme-modern-dark .st-group-header{border-bottom:1px solid #374151;font-weight:500}.theme-modern-dark .st-checkbox-custom{background-color:#1f2937;border:1.5px solid #4b5563;border-radius:4px}.theme-modern-dark .st-checkbox-custom.st-checked{background-color:#3b82f6;border-color:#3b82f6}.theme-modern-dark .st-empty-state{color:#9ca3af}
@@ -4,6 +4,7 @@ export declare const PAGE_SIZE = 20;
4
4
  export declare const CSS_VAR_BORDER_WIDTH = "--st-border-width";
5
5
  export declare const DEFAULT_BORDER_WIDTH = 1;
6
6
  export declare const VIRTUALIZATION_THRESHOLD = 20;
7
+ export declare const UNVIRTUALIZED_ROW_WARNING_THRESHOLD = 500;
7
8
  export declare const OVERSCAN_PIXELS = 800;
8
9
  export declare const calculateBufferRowCount: (rowHeight: number) => number;
9
10
  export declare const COLUMN_EDIT_WIDTH = 29.5;
@@ -60,6 +60,10 @@ export declare class SimpleTableVanilla {
60
60
  private scrollEndTimeoutId;
61
61
  private lastScrollTop;
62
62
  private isUpdating;
63
+ /** Set once the dev-only "too many unvirtualized rows" warning has fired, so it never repeats. */
64
+ private hasWarnedUnvirtualizedRows;
65
+ /** Pending deferred check for the unvirtualized-rows warning (lets external-scroll seeding settle first). */
66
+ private unvirtualizedRowsCheckTimeoutId;
63
67
  /** Currently resolved external scroll parent (HTMLElement or window). Null when external scroll mode is inactive. */
64
68
  private resolvedScrollParent;
65
69
  /** Bound scroll handler attached to the external scroll parent. */
@@ -164,6 +168,13 @@ export declare class SimpleTableVanilla {
164
168
  */
165
169
  private didColumnVisibilityChange;
166
170
  private captureAnimationSnapshot;
171
+ /**
172
+ * Push the visible vertical viewport into the animation coordinator when
173
+ * external/page scroll is active (or clear it otherwise). Keeps the FLIP
174
+ * distance-scaling viewport-relative so cells don't slide the full
175
+ * conceptual distance when the table grows to its natural height.
176
+ */
177
+ private updateAnimationVerticalScroll;
167
178
  /**
168
179
  * Open the accordion animation window for the next render: capture a FLIP
169
180
  * snapshot, mark the active axis so cell renderers initialize incoming
@@ -177,6 +188,14 @@ export declare class SimpleTableVanilla {
177
188
  * No-op when animations are disabled (which already includes the
178
189
  * prefers-reduced-motion check via {@link AnimationCoordinator.isEnabled}).
179
190
  */
191
+ /**
192
+ * Walk the CURRENT (pre-change) header tree and collect every accessor that
193
+ * is renderable as a header cell given the current collapsed/hidden state —
194
+ * group headers plus the leaf columns visible under them (honoring
195
+ * `showWhen` and the collapsed set). Used by {@link beginAccordionAnimation}
196
+ * to seed the animation coordinator's re-entry guard.
197
+ */
198
+ private collectAccordionRenderableAccessors;
180
199
  private beginAccordionAnimation;
181
200
  private initializeManagers;
182
201
  mount(): void;
@@ -267,6 +286,17 @@ export declare class SimpleTableVanilla {
267
286
  */
268
287
  refitAutoSizeColumns(): void;
269
288
  private render;
289
+ /**
290
+ * Dev-only safeguard. Schedules a one-shot, deferred check that warns when the
291
+ * table is about to render a very large number of rows with no virtualization
292
+ * active (no `height` / `maxHeight` and no bounded `scrollParent`). The check
293
+ * is deferred so external-scroll viewport seeding (which can momentarily leave
294
+ * `contentHeight` undefined on the first paint) has time to settle and we
295
+ * don't cry wolf for a correctly-configured table. Compiled out of production
296
+ * via the NODE_ENV guard. Never throws.
297
+ */
298
+ private maybeScheduleUnvirtualizedRowsWarning;
299
+ private evaluateUnvirtualizedRowsWarning;
270
300
  update(config: Partial<SimpleTableConfig>): void;
271
301
  /** @deprecated Use {@link update} — same behavior. */
272
302
  updateConfig(config: Partial<SimpleTableConfig>): void;
@@ -29,6 +29,15 @@ export interface TableAPIContext {
29
29
  cellRegistry?: Map<string, {
30
30
  updateContent: (value: any) => void;
31
31
  }>;
32
+ /**
33
+ * Whether a cell (by its `getCellId` key) is currently mid-FLIP-animation.
34
+ * Live `updateData` content writes are skipped for animating cells so a
35
+ * data tick doesn't re-render / mutate a cell that is sliding to a new
36
+ * position (which causes visible jank). The underlying row data is still
37
+ * updated; only the in-place DOM refresh is deferred to the next tick or
38
+ * re-render once the animation settles.
39
+ */
40
+ isCellAnimating?: (cellId: string) => boolean;
32
41
  columnEditorOpen: boolean;
33
42
  expandedDepthsManager: any;
34
43
  selectionManager: SelectionManager | null;
@@ -12,6 +12,7 @@ import { SelectionManager } from "../../managers/SelectionManager";
12
12
  import { RowSelectionManager } from "../../managers/RowSelectionManager";
13
13
  import type { AnimationCoordinator, CellPosition } from "../../managers/AnimationCoordinator";
14
14
  import type { AccordionAxis } from "../../utils/accordionAnimation";
15
+ import type { NestedTableFactory } from "../../utils/nestedGridRowRenderer";
15
16
  import { FlattenRowsResult } from "../../utils/rowFlattening";
16
17
  import { ProcessRowsResult } from "../../utils/rowProcessing";
17
18
  import { MergedColumnEditorConfig, ResolvedIcons } from "../initialization/TableInitializer";
@@ -52,6 +53,8 @@ export interface RenderContext {
52
53
  internalIsLoading: boolean;
53
54
  isResizing: boolean;
54
55
  localRows: Row[];
56
+ /** Injected factory for nested grid tables (breaks the SimpleTableVanilla import cycle). */
57
+ createNestedTable?: NestedTableFactory;
55
58
  mainBodyRef: {
56
59
  current: HTMLDivElement | null;
57
60
  };
@@ -122,6 +125,7 @@ export declare class RenderOrchestrator {
122
125
  getLastProcessedResult(): ProcessRowsResult | null;
123
126
  /** See {@link TableRenderer.getCurrentBodyLayouts}. */
124
127
  getCurrentBodyLayouts(): Map<HTMLElement, Map<string, CellPosition>>;
128
+ setOnRendererHostDiscard(cb: ((host: HTMLElement) => void) | undefined): void;
125
129
  invalidateCache(type?: "body" | "header" | "context" | "all"): void;
126
130
  computeEffectiveHeaders(headers: HeaderObject[], config: SimpleTableConfig, customTheme: CustomTheme, containerWidth?: number): HeaderObject[];
127
131
  /**
@@ -44,6 +44,13 @@ export interface BodySectionParams {
44
44
  export declare class SectionRenderer {
45
45
  private headerSections;
46
46
  private bodySections;
47
+ /**
48
+ * Callback fired before a body cell host element is permanently removed in
49
+ * the {@link invalidateCache} "all" path (which wipes every rendered cell).
50
+ * Threaded down from the table config so framework adapters can tear down
51
+ * renderer subtrees (React portals, etc.) before the nodes are discarded.
52
+ */
53
+ private onRendererHostDiscard?;
47
54
  private bodyCellsCache;
48
55
  private headerCellsCache;
49
56
  private contextCache;
@@ -64,6 +71,7 @@ export declare class SectionRenderer {
64
71
  private getCachedBodyCells;
65
72
  private getCachedHeaderCells;
66
73
  private getCachedContext;
74
+ setOnRendererHostDiscard(cb: ((host: HTMLElement) => void) | undefined): void;
67
75
  invalidateCache(type?: "body" | "header" | "context" | "all"): void;
68
76
  /**
69
77
  * Get the next colIndex after rendering a section
@@ -9,6 +9,7 @@ import { SelectionManager } from "../../managers/SelectionManager";
9
9
  import { RowSelectionManager } from "../../managers/RowSelectionManager";
10
10
  import type { AnimationCoordinator, CellPosition } from "../../managers/AnimationCoordinator";
11
11
  import type { AccordionAxis } from "../../utils/accordionAnimation";
12
+ import type { NestedTableFactory } from "../../utils/nestedGridRowRenderer";
12
13
  export interface TableRendererDeps {
13
14
  /** Accordion animation axis for the in-flight collapse/expand. See {@link RenderContext.accordionAxis}. */
14
15
  accordionAxis?: AccordionAxis;
@@ -81,6 +82,8 @@ export interface TableRendererDeps {
81
82
  setIsResizing: (value: boolean) => void;
82
83
  setRowStateMap: (map: Map<string | number, any>) => void;
83
84
  sortManager: SortManager | null;
85
+ /** Injected factory for nested grid tables (breaks the SimpleTableVanilla import cycle). */
86
+ createNestedTable?: NestedTableFactory;
84
87
  }
85
88
  export declare class TableRenderer {
86
89
  private sectionRenderer;
@@ -96,6 +99,7 @@ export declare class TableRenderer {
96
99
  private pendingRenderCallback;
97
100
  constructor();
98
101
  private scheduleRender;
102
+ setOnRendererHostDiscard(cb: ((host: HTMLElement) => void) | undefined): void;
99
103
  invalidateCache(type?: "body" | "header" | "context" | "all"): void;
100
104
  /** See {@link SectionRenderer.getCurrentBodyLayouts}. */
101
105
  getCurrentBodyLayouts(): Map<HTMLElement, Map<string, CellPosition>>;
@@ -41,6 +41,21 @@ export declare class AnimationCoordinator {
41
41
  * rather than appearing in place. Cleared at the end of {@link play}.
42
42
  */
43
43
  private incomingOrigins;
44
+ /**
45
+ * Accessors that were already renderable (visible leaf/group columns) in the
46
+ * pre-change layout for an in-flight accordion-horizontal toggle. Set once
47
+ * per collapse/expand render and consumed by the renderers' grow-from-zero
48
+ * gate so a column that merely re-enters the virtualization band (because the
49
+ * collapsed group shrank the content width and clamped scrollLeft) is NOT
50
+ * mistaken for a freshly-expanded column and animated from width 0.
51
+ *
52
+ * Header cells have no full pre-change conceptual layout the way body cells do
53
+ * (see SectionRenderer.getCurrentBodyLayouts), so `hasSnapshotEntry` alone
54
+ * can't tell "newly visible" apart from "scrolled back into view". This set
55
+ * supplies the missing pre-change visibility signal. Cleared at the end of
56
+ * {@link play}.
57
+ */
58
+ private accordionPreVisibleAccessors;
44
59
  private inFlight;
45
60
  /** Outgoing cells the renderer handed off; keyed per container so play() finds them. */
46
61
  private retainedCells;
@@ -57,7 +72,46 @@ export declare class AnimationCoordinator {
57
72
  * stable within a single sort.
58
73
  */
59
74
  private scrollerMetricsCache;
75
+ /**
76
+ * Vertical scroller metrics override for external/page-scroll mode. When the
77
+ * table has no internal vertical overflow (it grows to its natural height and
78
+ * a parent element / the window scrolls), the body container's own
79
+ * clientHeight/scrollHeight no longer describe the visible viewport, so
80
+ * {@link scaleFlipDistance} can't bound the FLIP journey and sort cells slide
81
+ * the full conceptual distance. The vanilla table pushes the real visible
82
+ * viewport here (from the same `getExternalScrollMetrics` the virtualizer
83
+ * uses) so the y-axis FLIP scaling matches the on-screen viewport. `null`
84
+ * when external scroll is inactive — internal scroller metrics are used as-is.
85
+ */
86
+ private externalVerticalScroll;
87
+ /**
88
+ * The currently-scheduled (not-yet-started) FLIP frame. play() defers the
89
+ * transition start by two animation frames so the inverted "First" frame
90
+ * gets painted before the transition fires. Spam-clicking sort triggers a
91
+ * full re-render + play() inside that two-frame window: without coalescing,
92
+ * the stale chain's startTransition zeroes the transforms the newer cycle
93
+ * just inverted (a frame early), so the final transition animates
94
+ * identity→identity and nothing visibly moves — and many captured nodes are
95
+ * detached by the intervening render before they ever transition. Tracking
96
+ * the pending frame lets a new play() cancel the prior cycle and reset the
97
+ * transforms it left behind, so only the latest sort animates.
98
+ */
99
+ private scheduledFlip;
100
+ /**
101
+ * Invoked immediately BEFORE a retained/ghost element is permanently removed
102
+ * from the DOM (FLIP/shrink/cancel/destroy teardown). Lets framework adapters
103
+ * tear down renderer subtrees (React portals, etc.) mounted into the element
104
+ * before it's discarded. NOT called on reuse/reparent paths
105
+ * ({@link claimRetainedForReuse} success), so a reclaimed ghost keeps its
106
+ * content.
107
+ */
108
+ private onHostDiscard?;
60
109
  constructor(opts?: AnimationCoordinatorOptions);
110
+ /**
111
+ * Register the callback fired before a ghost/retained element is permanently
112
+ * removed (see {@link onHostDiscard}). Additive: passing `undefined` disables it.
113
+ */
114
+ setOnHostDiscard(cb: ((host: HTMLElement) => void) | undefined): void;
61
115
  setEnabled(enabled: boolean): void;
62
116
  setDuration(duration: number): void;
63
117
  setEasing(easing: string): void;
@@ -76,6 +130,21 @@ export declare class AnimationCoordinator {
76
130
  * the corresponding cells.
77
131
  */
78
132
  setIncomingOrigins(origins: Map<string, CellPosition> | null): void;
133
+ /**
134
+ * Register the set of accessors that were renderable in the pre-change layout
135
+ * of an accordion-horizontal toggle. Must be set after `captureSnapshot` and
136
+ * before the render that creates cells. Consumed and cleared by the next
137
+ * {@link play}. Pass `null` (e.g. for vertical/row accordions) to disable the
138
+ * re-entry guard so behavior is unchanged.
139
+ */
140
+ setAccordionPreVisibleAccessors(accessors: Set<string> | null): void;
141
+ /**
142
+ * True when `accessor` was already a renderable column before the current
143
+ * accordion-horizontal toggle. Renderers use this to skip the grow-from-zero
144
+ * animation for columns that only re-entered the virtualization band rather
145
+ * than genuinely becoming visible from an expand.
146
+ */
147
+ wasRenderableBeforeAccordion(accessor: string): boolean;
79
148
  /**
80
149
  * Read scroller layout metrics for `container`, caching the result for the
81
150
  * remainder of the current render cycle. Subsequent calls in the same
@@ -84,6 +153,18 @@ export declare class AnimationCoordinator {
84
153
  * mutation in the loop.
85
154
  */
86
155
  private getScrollerMetrics;
156
+ /**
157
+ * Supply (or clear) the vertical scroller metrics override used by
158
+ * {@link scaleFlipDistance} in external/page-scroll mode. Must be set before
159
+ * `captureSnapshot`/`retainCell`/`play` so the whole FLIP cycle scales
160
+ * against the real visible viewport. Pass `null` to fall back to the body
161
+ * container's own metrics (internal scroll).
162
+ */
163
+ setExternalVerticalScroll(metrics: {
164
+ clientHeight: number;
165
+ scrollHeight: number;
166
+ scrollTop: number;
167
+ } | null): void;
87
168
  private clearScrollerMetricsCache;
88
169
  /**
89
170
  * Capture pre-change positions for cells we may want to animate.
@@ -72,6 +72,16 @@ export interface SimpleTableConfig {
72
72
  onPageChange?: (page: number) => void | Promise<void>;
73
73
  onRowGroupExpand?: (props: OnRowGroupExpandProps) => void | Promise<void>;
74
74
  onRowSelectionChange?: (props: RowSelectionChangeProps) => void;
75
+ /**
76
+ * Called by the renderer immediately BEFORE it permanently discards a host
77
+ * element that may contain async-framework renderer output (e.g. React
78
+ * portals): innerHTML clears on cell rebuild/edit, plain cell removal, and
79
+ * the animation coordinator's ghost/FLIP/shrink teardown paths. Framework
80
+ * adapters use this to tear down the renderer subtree mounted into `host`
81
+ * (or any descendant) so it isn't orphaned. Reuse/reparent paths never fire
82
+ * it, so a reused node keeps its renderer content.
83
+ */
84
+ onRendererHostDiscard?: (host: HTMLElement) => void;
75
85
  onSortChange?: (sort: SortColumn | null) => void;
76
86
  quickFilter?: QuickFilterConfig;
77
87
  rowButtons?: RowButton[];
@@ -0,0 +1,9 @@
1
+ import type Row from "../../types/Row";
2
+ import type TableRow from "../../types/TableRow";
3
+ import { CellRenderContext } from "./types";
4
+ export interface CellLiveRef {
5
+ row: Row;
6
+ tableRow: TableRow;
7
+ context: CellRenderContext;
8
+ }
9
+ export declare const cellLiveRefMap: WeakMap<HTMLElement, CellLiveRef>;
@@ -1,3 +1,3 @@
1
1
  export declare const addTrackedEventListener: (element: HTMLElement, event: string, handler: EventListener, options?: AddEventListenerOptions) => void;
2
2
  export declare const getRenderedCells: (container: HTMLElement) => Map<string, HTMLElement>;
3
- export declare const cleanupBodyCellRendering: (container?: HTMLElement) => void;
3
+ export declare const cleanupBodyCellRendering: (container?: HTMLElement, onHostDiscard?: ((host: HTMLElement) => void) | undefined) => void;
@@ -1,12 +1,7 @@
1
- import type Row from "../../types/Row";
2
- import type TableRow from "../../types/TableRow";
3
1
  import { AbsoluteBodyCell, CellRegistryEntry, CellRenderContext } from "./types";
4
- export interface CellLiveRef {
5
- row: Row;
6
- tableRow: TableRow;
7
- context: CellRenderContext;
8
- }
9
- export declare const cellLiveRefMap: WeakMap<HTMLElement, CellLiveRef>;
2
+ import { CellLiveRef, cellLiveRefMap } from "./cellLiveRef";
3
+ export { cellLiveRefMap };
4
+ export type { CellLiveRef };
10
5
  export declare const untrackCellByRow: (rowId: string, cellElement: HTMLElement) => void;
11
6
  export declare const unregisterCellFromRegistry: (cellElement: HTMLElement, cellRegistry?: Map<string, CellRegistryEntry>) => void;
12
7
  export declare const createBodyCellElement: (cell: AbsoluteBodyCell, context: CellRenderContext) => HTMLElement;
@@ -10,6 +10,7 @@ import type { CustomTheme } from "../../types/CustomTheme";
10
10
  import type { HeightOffsets } from "../infiniteScrollUtils";
11
11
  import type { AccordionAxis } from "../accordionAnimation";
12
12
  import type { VanillaEmptyStateRenderer, VanillaErrorStateRenderer, VanillaLoadingStateRenderer } from "../../types/RowStateRendererProps";
13
+ import type { NestedTableFactory } from "../nestedGridRowRenderer";
13
14
  type SetStateAction<T> = T | ((prevState: T) => T);
14
15
  type Dispatch<A> = (value: A) => void;
15
16
  export interface AbsoluteBodyCell {
@@ -103,6 +104,14 @@ export interface CellRenderContext {
103
104
  handleRowSelect?: (rowId: string, checked: boolean) => void;
104
105
  handleMouseDown: (cell: CellData) => void;
105
106
  handleMouseOver: (cell: CellData, clientX: number, clientY: number) => void;
107
+ /**
108
+ * Called immediately BEFORE the renderer permanently discards a host element
109
+ * (e.g. `innerHTML = ""` on cell rebuild/edit, or a plain `element.remove()`).
110
+ * Framework adapters use this to tear down any renderer subtree (React
111
+ * portal, etc.) mounted into `host` or one of its descendants. Reuse paths
112
+ * never call it, so a reused node keeps its content.
113
+ */
114
+ onRendererHostDiscard?: (host: HTMLElement) => void;
106
115
  cellRegistry?: Map<string, CellRegistryEntry>;
107
116
  setCollapsedRows: Dispatch<SetStateAction<Map<string, number>>>;
108
117
  setExpandedRows: Dispatch<SetStateAction<Map<string, number>>>;
@@ -115,6 +124,12 @@ export interface CellRenderContext {
115
124
  loadingStateRenderer?: VanillaLoadingStateRenderer;
116
125
  errorStateRenderer?: VanillaErrorStateRenderer;
117
126
  emptyStateRenderer?: VanillaEmptyStateRenderer;
127
+ /**
128
+ * Factory used to instantiate nested grid tables. Injected by the host table
129
+ * so {@link nestedGridRowRenderer} never has to import the concrete
130
+ * `SimpleTableVanilla` class (which would create a render-module import cycle).
131
+ */
132
+ createNestedTable?: NestedTableFactory;
118
133
  getBorderClass: (cell: CellData) => string;
119
134
  isSelected: (cell: CellData) => boolean;
120
135
  isInitialFocusedCell: (cell: CellData) => boolean;
@@ -6,6 +6,20 @@ import type TableRow from "../types/TableRow";
6
6
  import type { CustomTheme } from "../types/CustomTheme";
7
7
  import type { SimpleTableConfig } from "../types/SimpleTableConfig";
8
8
  import { type HeightOffsets } from "./infiniteScrollUtils";
9
+ /**
10
+ * Minimal surface of a table instance this renderer drives. Declared
11
+ * structurally so this module never has to statically import the concrete
12
+ * `SimpleTableVanilla` class — that import would close a cycle
13
+ * (SimpleTableVanilla → RenderOrchestrator → TableRenderer → SectionRenderer →
14
+ * nestedGridRowRenderer → SimpleTableVanilla). The class is injected at render
15
+ * time via {@link NestedTableFactory} instead.
16
+ */
17
+ export interface NestedTableInstance {
18
+ mount: () => void;
19
+ destroy: () => void;
20
+ }
21
+ /** Factory injected by the host table to instantiate a nested table. */
22
+ export type NestedTableFactory = (container: HTMLElement, config: SimpleTableConfig) => NestedTableInstance;
9
23
  export interface NestedGridRowRenderContext {
10
24
  rowHeight: number;
11
25
  heightOffsets: HeightOffsets | undefined;
@@ -17,6 +31,8 @@ export interface NestedGridRowRenderContext {
17
31
  errorStateRenderer?: SimpleTableConfig["errorStateRenderer"];
18
32
  emptyStateRenderer?: SimpleTableConfig["emptyStateRenderer"];
19
33
  icons?: SimpleTableConfig["icons"];
34
+ /** Injected constructor for nested tables (breaks the import cycle). */
35
+ createNestedTable?: NestedTableFactory;
20
36
  }
21
37
  /**
22
38
  * Creates a nested grid row element: a div with class "st-row st-nested-grid-row"
@@ -18,10 +18,13 @@ interface PortalEntry {
18
18
  * so the consumer's components are children of the host tree and inherit context,
19
19
  * Suspense, error boundaries, etc.
20
20
  *
21
- * Cleanup is driven by the DOM: core recycles cells by clearing/replacing their
22
- * content (`innerHTML = ""`), which detaches the registered container. A
23
- * `MutationObserver` (see {@link attach}) prunes entries whose container is no
24
- * longer connected, which unmounts the corresponding React subtree.
21
+ * Cleanup is authoritative, not inferred: core invokes `onRendererHostDiscard(host)`
22
+ * wired to {@link disposeHost} immediately before it permanently discards a
23
+ * host element (cell rebuild/edit `innerHTML = ""`, plain cell removal, and the
24
+ * animation coordinator's ghost/FLIP/shrink teardown). `disposeHost` unregisters
25
+ * the portal(s) tagged with {@link PORTAL_ID_ATTR} inside that host, so React
26
+ * unmounts exactly those subtrees. Reuse/reparent paths never signal, so a reused
27
+ * node keeps its portal entry (and its content) with zero churn.
25
28
  */
26
29
  export declare class PortalBridge {
27
30
  private entries;
@@ -30,11 +33,12 @@ export declare class PortalBridge {
30
33
  private cachedSnapshot;
31
34
  private snapshotDirty;
32
35
  private emitScheduled;
33
- private pruneScheduled;
34
36
  /**
35
37
  * Register a React node to be rendered into `container`. The container is
36
38
  * returned to core synchronously (matching the vanilla renderer contract); the
37
- * React subtree commits on the host's next render.
39
+ * React subtree commits on the host's next render. The container is tagged with
40
+ * {@link PORTAL_ID_ATTR} so {@link disposeHost} can find it when core discards
41
+ * the host that owns it.
38
42
  */
39
43
  register(node: ReactNode, container: HTMLElement): {
40
44
  id: string;
@@ -42,17 +46,19 @@ export declare class PortalBridge {
42
46
  };
43
47
  private unregister;
44
48
  /**
45
- * Observe a root element and prune entries whose container has been detached by
46
- * core (cell recycling). Returns a disconnect function.
49
+ * Tear down the portal(s) owned by a host element core is permanently
50
+ * discarding. Collects `host` itself plus every descendant tagged with
51
+ * {@link PORTAL_ID_ATTR} and unregisters each, so React unmounts exactly those
52
+ * subtrees. Called via the core `onRendererHostDiscard` callback BEFORE the
53
+ * host's content is cleared/removed, so the tagged nodes are still queryable.
47
54
  */
48
- attach(root: HTMLElement): () => void;
55
+ disposeHost: (host: HTMLElement) => void;
49
56
  /** Remove all entries (used on table teardown). */
50
57
  clear(): void;
51
58
  subscribe: (listener: () => void) => (() => void);
52
59
  getSnapshot: () => PortalEntry[];
53
60
  private emit;
54
61
  private scheduleEmit;
55
- private schedulePrune;
56
62
  }
57
63
  /**
58
64
  * Renders one `createPortal` per registered entry. Call once from `<SimpleTable>`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@simple-table/react",
3
- "version": "3.8.4",
3
+ "version": "3.8.6",
4
4
  "main": "dist/cjs/index.js",
5
5
  "module": "dist/index.es.js",
6
6
  "types": "dist/types/react/src/index.d.ts",
@@ -29,7 +29,7 @@
29
29
  "react-dom": ">=18.0.0"
30
30
  },
31
31
  "dependencies": {
32
- "simple-table-core": "3.8.4"
32
+ "simple-table-core": "3.8.6"
33
33
  },
34
34
  "devDependencies": {
35
35
  "@rollup/plugin-alias": "^4.0.4",