@marimo-team/frontend 0.23.14-dev24 → 0.23.14-dev25

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.
@@ -1,4 +1,4 @@
1
- import{s as It}from"./chunk-LvLJmgfZ.js";import{t as Tt}from"./react-Bj1aDYRI.js";import{t as Ct}from"./dist-DXfXSpct.js";var D=It(Tt());const jt=Ct("div")({name:"NumberOverlayEditorStyle",class:"gdg-n15fjm3e",propsAsIs:!1});function it(t,r){var e={};for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&r.indexOf(a)<0&&(e[a]=t[a]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,a=Object.getOwnPropertySymbols(t);n<a.length;n++)r.indexOf(a[n])<0&&Object.prototype.propertyIsEnumerable.call(t,a[n])&&(e[a[n]]=t[a[n]]);return e}var tt;(function(t){t.event="event",t.props="prop"})(tt||(tt={}));function q(){}function Rt(t){var r,e=void 0;return function(){for(var a=[],n=arguments.length;n--;)a[n]=arguments[n];return r&&a.length===r.length&&a.every(function(u,l){return u===r[l]})||(r=a,e=t.apply(void 0,a)),e}}function Y(t){return!!(t||"").match(/\d/)}function X(t){return t==null}function Ft(t){return typeof t=="number"&&isNaN(t)}function lt(t){return X(t)||Ft(t)||typeof t=="number"&&!isFinite(t)}function ct(t){return t.replace(/[-[\]/{}()*+?.\\^$|]/g,"\\$&")}function Bt(t){switch(t){case"lakh":return/(\d+?)(?=(\d\d)+(\d)(?!\d))(\.\d+)?/g;case"wan":return/(\d)(?=(\d{4})+(?!\d))/g;default:return/(\d)(?=(\d{3})+(?!\d))/g}}function Mt(t,r,e){var a=Bt(e),n=t.search(/[1-9]/);return n=n===-1?t.length:n,t.substring(0,n)+t.substring(n,t.length).replace(a,"$1"+r)}function kt(t){var r=(0,D.useRef)(t);return r.current=t,(0,D.useRef)(function(){for(var e=[],a=arguments.length;a--;)e[a]=arguments[a];return r.current.apply(r,e)}).current}function nt(t,r){r===void 0&&(r=!0);var e=t[0]==="-",a=e&&r;t=t.replace("-","");var n=t.split(".");return{beforeDecimal:n[0],afterDecimal:n[1]||"",hasNegation:e,addNegation:a}}function Lt(t){if(!t)return t;var r=t[0]==="-";r&&(t=t.substring(1,t.length));var e=t.split("."),a=e[0].replace(/^0+/,"")||"0",n=e[1]||"";return(r?"-":"")+a+(n?"."+n:"")}function st(t,r,e){for(var a="",n=e?"0":"",u=0;u<=r-1;u++)a+=t[u]||n;return a}function ft(t,r){return Array(r+1).join(t)}function vt(t){var r=t+"",e=r[0]==="-"?"-":"";e&&(r=r.substring(1));var a=r.split(/[eE]/g),n=a[0],u=a[1];if(u=Number(u),!u)return e+n;n=n.replace(".","");var l=1+u,m=n.length;return l<0?n="0."+ft("0",Math.abs(l))+n:l>=m?n+=ft("0",l-m):n=(n.substring(0,l)||"0")+"."+n.substring(l),e+n}function dt(t,r,e){if(["","-"].indexOf(t)!==-1)return t;var a=(t.indexOf(".")!==-1||e)&&r,n=nt(t),u=n.beforeDecimal,l=n.afterDecimal,m=n.hasNegation,b=parseFloat("0."+(l||"0")),p=(l.length<=r?"0."+l:b.toFixed(r)).split("."),h=u;u&&Number(p[0])&&(h=u.split("").reverse().reduce(function(c,A,v){return c.length>v?(Number(c[0])+Number(A)).toString()+c.substring(1,c.length):A+c},p[0]));var f=st(p[1]||"",r,e),S=m?"-":"",y=a?".":"";return""+S+h+y+f}function Q(t,r){if(t.value=t.value,t!==null){if(t.createTextRange){var e=t.createTextRange();return e.move("character",r),e.select(),!0}return t.selectionStart||t.selectionStart===0?(t.focus(),t.setSelectionRange(r,r),!0):(t.focus(),!1)}}var gt=Rt(function(t,r){for(var e=0,a=0,n=t.length,u=r.length;t[e]===r[e]&&e<n;)e++;for(;t[n-1-a]===r[u-1-a]&&u-a>e&&n-a>e;)a++;return{from:{start:e,end:n-a},to:{start:e,end:u-a}}}),Wt=function(t,r){var e=Math.min(t.selectionStart,r);return{from:{start:e,end:t.selectionEnd},to:{start:e,end:r}}};function Pt(t,r,e){return Math.min(Math.max(t,r),e)}function ut(t){return Math.max(t.selectionStart,t.selectionEnd)}function Kt(){return typeof navigator<"u"&&!(navigator.platform&&/iPhone|iPod/.test(navigator.platform))}function Gt(t){return{from:{start:0,end:0},to:{start:0,end:t.length},lastValue:""}}function Ut(t){var r=t.currentValue,e=t.formattedValue,a=t.currentValueIndex,n=t.formattedValueIndex;return r[a]===e[n]}function _t(t,r,e,a,n,u,l){l===void 0&&(l=Ut);var m=n.findIndex(function(B){return B}),b=t.slice(0,m);!r&&!e.startsWith(b)&&(r=b,e=b+e,a+=b.length);for(var p=e.length,h=t.length,f={},S=Array(p),y=0;y<p;y++){S[y]=-1;for(var c=0,A=h;c<A;c++)if(l({currentValue:e,lastValue:r,formattedValue:t,currentValueIndex:y,formattedValueIndex:c})&&f[c]!==!0){S[y]=c,f[c]=!0;break}}for(var v=a;v<p&&(S[v]===-1||!u(e[v]));)v++;var E=v===p||S[v]===-1?h:S[v];for(v=a-1;v>0&&S[v]===-1;)v--;var j=v===-1||S[v]===-1?0:S[v]+1;return j>E?E:a-j<E-a?j:E}function mt(t,r,e,a){var n=t.length;if(r=Pt(r,0,n),a==="left"){for(;r>=0&&!e[r];)r--;r===-1&&(r=e.indexOf(!0))}else{for(;r<=n&&!e[r];)r++;r>n&&(r=e.lastIndexOf(!0))}return r===-1&&(r=n),r}function $t(t){for(var r=Array.from({length:t.length+1}).map(function(){return!0}),e=0,a=r.length;e<a;e++)r[e]=!!(Y(t[e])||Y(t[e-1]));return r}function pt(t,r,e,a,n,u){u===void 0&&(u=q);var l=kt(function(c,A){var v,E;return lt(c)?(E="",v=""):typeof c=="number"||A?(E=typeof c=="number"?vt(c):c,v=a(E)):(E=n(c,void 0),v=a(E)),{formattedValue:v,numAsString:E}}),m=(0,D.useState)(function(){return l(X(t)?r:t,e)}),b=m[0],p=m[1],h=function(c,A){c.formattedValue!==b.formattedValue&&p({formattedValue:c.formattedValue,numAsString:c.value}),u(c,A)},f=t,S=e;X(t)&&(f=b.numAsString,S=!0);var y=l(f,S);return(0,D.useMemo)(function(){p(y)},[y.formattedValue]),[b,h]}function qt(t){return t.replace(/[^0-9]/g,"")}function Zt(t){return t}function zt(t){var r=t.type;r===void 0&&(r="text");var e=t.displayType;e===void 0&&(e="input");var a=t.customInput,n=t.renderText,u=t.getInputRef,l=t.format;l===void 0&&(l=Zt);var m=t.removeFormatting;m===void 0&&(m=qt);var b=t.defaultValue,p=t.valueIsNumericString,h=t.onValueChange,f=t.isAllowed,S=t.onChange;S===void 0&&(S=q);var y=t.onKeyDown;y===void 0&&(y=q);var c=t.onMouseUp;c===void 0&&(c=q);var A=t.onFocus;A===void 0&&(A=q);var v=t.onBlur;v===void 0&&(v=q);var E=t.value,j=t.getCaretBoundary;j===void 0&&(j=$t);var B=t.isValidInputCharacter;B===void 0&&(B=Y);var Z=t.isCharacterSame,P=it(t,["type","displayType","customInput","renderText","getInputRef","format","removeFormatting","defaultValue","valueIsNumericString","onValueChange","isAllowed","onChange","onKeyDown","onMouseUp","onFocus","onBlur","value","getCaretBoundary","isValidInputCharacter","isCharacterSame"]),z=pt(E,b,!!p,l,m,h),G=z[0],x=G.formattedValue,k=G.numAsString,H=z[1],K=(0,D.useRef)(),s=(0,D.useRef)({formattedValue:x,numAsString:k}),g=function(o,i){s.current={formattedValue:o.formattedValue,numAsString:o.value},H(o,i)},C=(0,D.useState)(!1),I=C[0],W=C[1],w=(0,D.useRef)(null),T=(0,D.useRef)({setCaretTimeout:null,focusTimeout:null});(0,D.useEffect)(function(){return W(!0),function(){clearTimeout(T.current.setCaretTimeout),clearTimeout(T.current.focusTimeout)}},[]);var J=l,R=function(o,i){var d=parseFloat(i);return{formattedValue:o,value:i,floatValue:isNaN(d)?void 0:d}},L=function(o,i,d){o.selectionStart===0&&o.selectionEnd===o.value.length||(Q(o,i),T.current.setCaretTimeout=setTimeout(function(){o.value===d&&o.selectionStart!==i&&Q(o,i)},0))},M=function(o,i,d){return mt(o,i,j(o),d)},et=function(o,i,d){var O=j(i),F=_t(i,x,o,d,O,B,Z);return F=mt(i,F,O),F},bt=function(o){var i=o.formattedValue;i===void 0&&(i="");var d=o.input,O=o.source,F=o.event,N=o.numAsString,V;if(d){var U=o.inputValue||d.value,_=ut(d);d.value=i,V=et(U,i,_),V!==void 0&&L(d,V,i)}i!==x&&g(R(i,N),{event:F,source:O})};(0,D.useEffect)(function(){var o=s.current,i=o.formattedValue,d=o.numAsString;(x!==i||k!==d)&&g(R(x,k),{event:void 0,source:tt.props})},[x,k]);var yt=w.current?ut(w.current):void 0;(typeof window<"u"?D.useLayoutEffect:D.useEffect)(function(){var o=w.current;if(x!==s.current.formattedValue&&o){var i=et(s.current.formattedValue,x,yt);o.value=x,L(o,i,x)}},[x]);var Vt=function(o,i,d){var O=i.target,F=K.current?Wt(K.current,O.selectionEnd):gt(x,o),N=Object.assign(Object.assign({},F),{lastValue:x}),V=m(o,N),U=J(V);if(V=m(U,void 0),f&&!f(R(U,V))){var _=i.target,$=et(o,x,ut(_));return _.value=x,L(_,$,x),!1}return bt({formattedValue:U,numAsString:V,inputValue:o,event:i,source:d,input:i.target}),!0},at=function(o,i){i===void 0&&(i=0),K.current={selectionStart:o.selectionStart,selectionEnd:o.selectionEnd+i}},xt=function(o){var i=o.target.value;Vt(i,o,tt.event)&&S(o),K.current=void 0},wt=function(o){var i=o.target,d=o.key,O=i.selectionStart,F=i.selectionEnd,N=i.value;N===void 0&&(N="");var V;d==="ArrowLeft"||d==="Backspace"?V=Math.max(O-1,0):d==="ArrowRight"?V=Math.min(O+1,N.length):d==="Delete"&&(V=O);var U=0;d==="Delete"&&O===F&&(U=1);var _=d==="ArrowLeft"||d==="ArrowRight";if(V===void 0||O!==F&&!_){y(o),at(i,U);return}var $=V;_?($=M(N,V,d==="ArrowLeft"?"left":"right"),$!==V&&o.preventDefault()):d==="Delete"&&!B(N[V])?$=M(N,V,"right"):d==="Backspace"&&!B(N[V])&&($=M(N,V,"left")),$!==V&&L(i,$,N),y(o),at(i,U)},Nt=function(o){var i=o.target,d=function(){var O=i.selectionStart,F=i.selectionEnd,N=i.value;if(N===void 0&&(N=""),O===F){var V=M(N,O);V!==O&&L(i,V,N)}};d(),requestAnimationFrame(function(){d()}),c(o),at(i)},Dt=function(o){o.persist&&o.persist();var i=o.target,d=o.currentTarget;w.current=i,T.current.focusTimeout=setTimeout(function(){var O=i.selectionStart,F=i.selectionEnd,N=i.value;N===void 0&&(N="");var V=M(N,O);V!==O&&!(O===0&&F===N.length)&&L(i,V,N),A(Object.assign(Object.assign({},o),{currentTarget:d}))},0)},Et=function(o){w.current=null,clearTimeout(T.current.focusTimeout),clearTimeout(T.current.setCaretTimeout),v(o)},Ot=I&&Kt()?"numeric":void 0,ot=Object.assign({inputMode:Ot},P,{type:r,value:x,onChange:xt,onKeyDown:wt,onMouseUp:Nt,onFocus:Dt,onBlur:Et});if(e==="text")return n?D.createElement(D.Fragment,null,n(x,P)||null):D.createElement("span",Object.assign({},P,{ref:u}),x);if(a){var At=a;return D.createElement(At,Object.assign({},ot,{ref:u}))}return D.createElement("input",Object.assign({},ot,{ref:u}))}function ht(t,r){var e=r.decimalScale,a=r.fixedDecimalScale,n=r.prefix;n===void 0&&(n="");var u=r.suffix;u===void 0&&(u="");var l=r.allowNegative,m=r.thousandsGroupStyle;if(m===void 0&&(m="thousand"),t===""||t==="-")return t;var b=rt(r),p=b.thousandSeparator,h=b.decimalSeparator,f=e!==0&&t.indexOf(".")!==-1||e&&a,S=nt(t,l),y=S.beforeDecimal,c=S.afterDecimal,A=S.addNegation;return e!==void 0&&(c=st(c,e,!!a)),p&&(y=Mt(y,p,m)),n&&(y=n+y),u&&(c+=u),A&&(y="-"+y),t=y+(f&&h||"")+c,t}function rt(t){var r=t.decimalSeparator;r===void 0&&(r=".");var e=t.thousandSeparator,a=t.allowedDecimalSeparators;return e===!0&&(e=","),a||(a=[r,"."]),{decimalSeparator:r,thousandSeparator:e,allowedDecimalSeparators:a}}function Ht(t,r){t===void 0&&(t="");var e=RegExp("(-)"),a=RegExp("(-)(.)*(-)"),n=e.test(t),u=a.test(t);return t=t.replace(/-/g,""),n&&!u&&r&&(t="-"+t),t}function Jt(t,r){return RegExp("(^-)|[0-9]|"+ct(t),r?"g":void 0)}function Qt(t,r,e){return t===""?!0:!(r!=null&&r.match(/\d/))&&!(e!=null&&e.match(/\d/))&&typeof t=="string"&&!isNaN(Number(t))}function Xt(t,r,e){var a;r===void 0&&(r=Gt(t));var n=e.allowNegative,u=e.prefix;u===void 0&&(u="");var l=e.suffix;l===void 0&&(l="");var m=e.decimalScale,b=r.from,p=r.to,h=p.start,f=p.end,S=rt(e),y=S.allowedDecimalSeparators,c=S.decimalSeparator,A=t[f]===c;if(Y(t)&&(t===u||t===l)&&r.lastValue==="")return t;if(f-h===1&&y.indexOf(t[h])!==-1){var v=m===0?"":c;t=t.substring(0,h)+v+t.substring(h+1,t.length)}var E=function(w,T,J){var R=!1,L=!1;u.startsWith("-")?R=!1:w.startsWith("--")?(R=!1,L=!0):l.startsWith("-")&&w.length===l.length?R=!1:w[0]==="-"&&(R=!0);var M=R?1:0;return L&&(M=2),M&&(w=w.substring(M),T-=M,J-=M),{value:w,start:T,end:J,hasNegation:R}},j=E(t,h,f),B=j.hasNegation;a=j,t=a.value,h=a.start,f=a.end;var Z=E(r.lastValue,b.start,b.end),P=Z.start,z=Z.end,G=Z.value,x=t.substring(h,f);t.length&&G.length&&(P>G.length-l.length||z<u.length)&&!(x&&l.startsWith(x))&&(t=G);var k=0;t.startsWith(u)?k+=u.length:h<u.length&&(k=h),t=t.substring(k),f-=k;var H=t.length,K=t.length-l.length;t.endsWith(l)?H=K:(f>K||f>t.length-l.length)&&(H=f),t=t.substring(0,H),t=Ht(B?"-"+t:t,n),t=(t.match(Jt(c,!0))||[]).join("");var s=t.indexOf(c);t=t.replace(new RegExp(ct(c),"g"),function(w,T){return T===s?".":""});var g=nt(t,n),C=g.beforeDecimal,I=g.afterDecimal,W=g.addNegation;return p.end-p.start<b.end-b.start&&C===""&&A&&!parseFloat(I)&&(t=W?"-":""),t}function Yt(t,r){var e=r.prefix;e===void 0&&(e="");var a=r.suffix;a===void 0&&(a="");var n=Array.from({length:t.length+1}).map(function(){return!0}),u=t[0]==="-";n.fill(!1,0,e.length+(u?1:0));var l=t.length;return n.fill(!1,l-a.length+1,l+1),n}function tr(t){var r=rt(t),e=r.thousandSeparator,a=r.decimalSeparator,n=t.prefix;n===void 0&&(n="");var u=t.allowNegative;if(u===void 0&&(u=!0),e===a)throw Error(`
1
+ import{s as It}from"./chunk-LvLJmgfZ.js";import{t as Tt}from"./react-Bj1aDYRI.js";import{t as Ct}from"./dist-CzcvL_Z9.js";var D=It(Tt());const jt=Ct("div")({name:"NumberOverlayEditorStyle",class:"gdg-n15fjm3e",propsAsIs:!1});function it(t,r){var e={};for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&r.indexOf(a)<0&&(e[a]=t[a]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,a=Object.getOwnPropertySymbols(t);n<a.length;n++)r.indexOf(a[n])<0&&Object.prototype.propertyIsEnumerable.call(t,a[n])&&(e[a[n]]=t[a[n]]);return e}var tt;(function(t){t.event="event",t.props="prop"})(tt||(tt={}));function q(){}function Rt(t){var r,e=void 0;return function(){for(var a=[],n=arguments.length;n--;)a[n]=arguments[n];return r&&a.length===r.length&&a.every(function(u,l){return u===r[l]})||(r=a,e=t.apply(void 0,a)),e}}function Y(t){return!!(t||"").match(/\d/)}function X(t){return t==null}function Ft(t){return typeof t=="number"&&isNaN(t)}function lt(t){return X(t)||Ft(t)||typeof t=="number"&&!isFinite(t)}function ct(t){return t.replace(/[-[\]/{}()*+?.\\^$|]/g,"\\$&")}function Bt(t){switch(t){case"lakh":return/(\d+?)(?=(\d\d)+(\d)(?!\d))(\.\d+)?/g;case"wan":return/(\d)(?=(\d{4})+(?!\d))/g;default:return/(\d)(?=(\d{3})+(?!\d))/g}}function Mt(t,r,e){var a=Bt(e),n=t.search(/[1-9]/);return n=n===-1?t.length:n,t.substring(0,n)+t.substring(n,t.length).replace(a,"$1"+r)}function kt(t){var r=(0,D.useRef)(t);return r.current=t,(0,D.useRef)(function(){for(var e=[],a=arguments.length;a--;)e[a]=arguments[a];return r.current.apply(r,e)}).current}function nt(t,r){r===void 0&&(r=!0);var e=t[0]==="-",a=e&&r;t=t.replace("-","");var n=t.split(".");return{beforeDecimal:n[0],afterDecimal:n[1]||"",hasNegation:e,addNegation:a}}function Lt(t){if(!t)return t;var r=t[0]==="-";r&&(t=t.substring(1,t.length));var e=t.split("."),a=e[0].replace(/^0+/,"")||"0",n=e[1]||"";return(r?"-":"")+a+(n?"."+n:"")}function st(t,r,e){for(var a="",n=e?"0":"",u=0;u<=r-1;u++)a+=t[u]||n;return a}function ft(t,r){return Array(r+1).join(t)}function vt(t){var r=t+"",e=r[0]==="-"?"-":"";e&&(r=r.substring(1));var a=r.split(/[eE]/g),n=a[0],u=a[1];if(u=Number(u),!u)return e+n;n=n.replace(".","");var l=1+u,m=n.length;return l<0?n="0."+ft("0",Math.abs(l))+n:l>=m?n+=ft("0",l-m):n=(n.substring(0,l)||"0")+"."+n.substring(l),e+n}function dt(t,r,e){if(["","-"].indexOf(t)!==-1)return t;var a=(t.indexOf(".")!==-1||e)&&r,n=nt(t),u=n.beforeDecimal,l=n.afterDecimal,m=n.hasNegation,b=parseFloat("0."+(l||"0")),p=(l.length<=r?"0."+l:b.toFixed(r)).split("."),h=u;u&&Number(p[0])&&(h=u.split("").reverse().reduce(function(c,A,v){return c.length>v?(Number(c[0])+Number(A)).toString()+c.substring(1,c.length):A+c},p[0]));var f=st(p[1]||"",r,e),S=m?"-":"",y=a?".":"";return""+S+h+y+f}function Q(t,r){if(t.value=t.value,t!==null){if(t.createTextRange){var e=t.createTextRange();return e.move("character",r),e.select(),!0}return t.selectionStart||t.selectionStart===0?(t.focus(),t.setSelectionRange(r,r),!0):(t.focus(),!1)}}var gt=Rt(function(t,r){for(var e=0,a=0,n=t.length,u=r.length;t[e]===r[e]&&e<n;)e++;for(;t[n-1-a]===r[u-1-a]&&u-a>e&&n-a>e;)a++;return{from:{start:e,end:n-a},to:{start:e,end:u-a}}}),Wt=function(t,r){var e=Math.min(t.selectionStart,r);return{from:{start:e,end:t.selectionEnd},to:{start:e,end:r}}};function Pt(t,r,e){return Math.min(Math.max(t,r),e)}function ut(t){return Math.max(t.selectionStart,t.selectionEnd)}function Kt(){return typeof navigator<"u"&&!(navigator.platform&&/iPhone|iPod/.test(navigator.platform))}function Gt(t){return{from:{start:0,end:0},to:{start:0,end:t.length},lastValue:""}}function Ut(t){var r=t.currentValue,e=t.formattedValue,a=t.currentValueIndex,n=t.formattedValueIndex;return r[a]===e[n]}function _t(t,r,e,a,n,u,l){l===void 0&&(l=Ut);var m=n.findIndex(function(B){return B}),b=t.slice(0,m);!r&&!e.startsWith(b)&&(r=b,e=b+e,a+=b.length);for(var p=e.length,h=t.length,f={},S=Array(p),y=0;y<p;y++){S[y]=-1;for(var c=0,A=h;c<A;c++)if(l({currentValue:e,lastValue:r,formattedValue:t,currentValueIndex:y,formattedValueIndex:c})&&f[c]!==!0){S[y]=c,f[c]=!0;break}}for(var v=a;v<p&&(S[v]===-1||!u(e[v]));)v++;var E=v===p||S[v]===-1?h:S[v];for(v=a-1;v>0&&S[v]===-1;)v--;var j=v===-1||S[v]===-1?0:S[v]+1;return j>E?E:a-j<E-a?j:E}function mt(t,r,e,a){var n=t.length;if(r=Pt(r,0,n),a==="left"){for(;r>=0&&!e[r];)r--;r===-1&&(r=e.indexOf(!0))}else{for(;r<=n&&!e[r];)r++;r>n&&(r=e.lastIndexOf(!0))}return r===-1&&(r=n),r}function $t(t){for(var r=Array.from({length:t.length+1}).map(function(){return!0}),e=0,a=r.length;e<a;e++)r[e]=!!(Y(t[e])||Y(t[e-1]));return r}function pt(t,r,e,a,n,u){u===void 0&&(u=q);var l=kt(function(c,A){var v,E;return lt(c)?(E="",v=""):typeof c=="number"||A?(E=typeof c=="number"?vt(c):c,v=a(E)):(E=n(c,void 0),v=a(E)),{formattedValue:v,numAsString:E}}),m=(0,D.useState)(function(){return l(X(t)?r:t,e)}),b=m[0],p=m[1],h=function(c,A){c.formattedValue!==b.formattedValue&&p({formattedValue:c.formattedValue,numAsString:c.value}),u(c,A)},f=t,S=e;X(t)&&(f=b.numAsString,S=!0);var y=l(f,S);return(0,D.useMemo)(function(){p(y)},[y.formattedValue]),[b,h]}function qt(t){return t.replace(/[^0-9]/g,"")}function Zt(t){return t}function zt(t){var r=t.type;r===void 0&&(r="text");var e=t.displayType;e===void 0&&(e="input");var a=t.customInput,n=t.renderText,u=t.getInputRef,l=t.format;l===void 0&&(l=Zt);var m=t.removeFormatting;m===void 0&&(m=qt);var b=t.defaultValue,p=t.valueIsNumericString,h=t.onValueChange,f=t.isAllowed,S=t.onChange;S===void 0&&(S=q);var y=t.onKeyDown;y===void 0&&(y=q);var c=t.onMouseUp;c===void 0&&(c=q);var A=t.onFocus;A===void 0&&(A=q);var v=t.onBlur;v===void 0&&(v=q);var E=t.value,j=t.getCaretBoundary;j===void 0&&(j=$t);var B=t.isValidInputCharacter;B===void 0&&(B=Y);var Z=t.isCharacterSame,P=it(t,["type","displayType","customInput","renderText","getInputRef","format","removeFormatting","defaultValue","valueIsNumericString","onValueChange","isAllowed","onChange","onKeyDown","onMouseUp","onFocus","onBlur","value","getCaretBoundary","isValidInputCharacter","isCharacterSame"]),z=pt(E,b,!!p,l,m,h),G=z[0],x=G.formattedValue,k=G.numAsString,H=z[1],K=(0,D.useRef)(),s=(0,D.useRef)({formattedValue:x,numAsString:k}),g=function(o,i){s.current={formattedValue:o.formattedValue,numAsString:o.value},H(o,i)},C=(0,D.useState)(!1),I=C[0],W=C[1],w=(0,D.useRef)(null),T=(0,D.useRef)({setCaretTimeout:null,focusTimeout:null});(0,D.useEffect)(function(){return W(!0),function(){clearTimeout(T.current.setCaretTimeout),clearTimeout(T.current.focusTimeout)}},[]);var J=l,R=function(o,i){var d=parseFloat(i);return{formattedValue:o,value:i,floatValue:isNaN(d)?void 0:d}},L=function(o,i,d){o.selectionStart===0&&o.selectionEnd===o.value.length||(Q(o,i),T.current.setCaretTimeout=setTimeout(function(){o.value===d&&o.selectionStart!==i&&Q(o,i)},0))},M=function(o,i,d){return mt(o,i,j(o),d)},et=function(o,i,d){var O=j(i),F=_t(i,x,o,d,O,B,Z);return F=mt(i,F,O),F},bt=function(o){var i=o.formattedValue;i===void 0&&(i="");var d=o.input,O=o.source,F=o.event,N=o.numAsString,V;if(d){var U=o.inputValue||d.value,_=ut(d);d.value=i,V=et(U,i,_),V!==void 0&&L(d,V,i)}i!==x&&g(R(i,N),{event:F,source:O})};(0,D.useEffect)(function(){var o=s.current,i=o.formattedValue,d=o.numAsString;(x!==i||k!==d)&&g(R(x,k),{event:void 0,source:tt.props})},[x,k]);var yt=w.current?ut(w.current):void 0;(typeof window<"u"?D.useLayoutEffect:D.useEffect)(function(){var o=w.current;if(x!==s.current.formattedValue&&o){var i=et(s.current.formattedValue,x,yt);o.value=x,L(o,i,x)}},[x]);var Vt=function(o,i,d){var O=i.target,F=K.current?Wt(K.current,O.selectionEnd):gt(x,o),N=Object.assign(Object.assign({},F),{lastValue:x}),V=m(o,N),U=J(V);if(V=m(U,void 0),f&&!f(R(U,V))){var _=i.target,$=et(o,x,ut(_));return _.value=x,L(_,$,x),!1}return bt({formattedValue:U,numAsString:V,inputValue:o,event:i,source:d,input:i.target}),!0},at=function(o,i){i===void 0&&(i=0),K.current={selectionStart:o.selectionStart,selectionEnd:o.selectionEnd+i}},xt=function(o){var i=o.target.value;Vt(i,o,tt.event)&&S(o),K.current=void 0},wt=function(o){var i=o.target,d=o.key,O=i.selectionStart,F=i.selectionEnd,N=i.value;N===void 0&&(N="");var V;d==="ArrowLeft"||d==="Backspace"?V=Math.max(O-1,0):d==="ArrowRight"?V=Math.min(O+1,N.length):d==="Delete"&&(V=O);var U=0;d==="Delete"&&O===F&&(U=1);var _=d==="ArrowLeft"||d==="ArrowRight";if(V===void 0||O!==F&&!_){y(o),at(i,U);return}var $=V;_?($=M(N,V,d==="ArrowLeft"?"left":"right"),$!==V&&o.preventDefault()):d==="Delete"&&!B(N[V])?$=M(N,V,"right"):d==="Backspace"&&!B(N[V])&&($=M(N,V,"left")),$!==V&&L(i,$,N),y(o),at(i,U)},Nt=function(o){var i=o.target,d=function(){var O=i.selectionStart,F=i.selectionEnd,N=i.value;if(N===void 0&&(N=""),O===F){var V=M(N,O);V!==O&&L(i,V,N)}};d(),requestAnimationFrame(function(){d()}),c(o),at(i)},Dt=function(o){o.persist&&o.persist();var i=o.target,d=o.currentTarget;w.current=i,T.current.focusTimeout=setTimeout(function(){var O=i.selectionStart,F=i.selectionEnd,N=i.value;N===void 0&&(N="");var V=M(N,O);V!==O&&!(O===0&&F===N.length)&&L(i,V,N),A(Object.assign(Object.assign({},o),{currentTarget:d}))},0)},Et=function(o){w.current=null,clearTimeout(T.current.focusTimeout),clearTimeout(T.current.setCaretTimeout),v(o)},Ot=I&&Kt()?"numeric":void 0,ot=Object.assign({inputMode:Ot},P,{type:r,value:x,onChange:xt,onKeyDown:wt,onMouseUp:Nt,onFocus:Dt,onBlur:Et});if(e==="text")return n?D.createElement(D.Fragment,null,n(x,P)||null):D.createElement("span",Object.assign({},P,{ref:u}),x);if(a){var At=a;return D.createElement(At,Object.assign({},ot,{ref:u}))}return D.createElement("input",Object.assign({},ot,{ref:u}))}function ht(t,r){var e=r.decimalScale,a=r.fixedDecimalScale,n=r.prefix;n===void 0&&(n="");var u=r.suffix;u===void 0&&(u="");var l=r.allowNegative,m=r.thousandsGroupStyle;if(m===void 0&&(m="thousand"),t===""||t==="-")return t;var b=rt(r),p=b.thousandSeparator,h=b.decimalSeparator,f=e!==0&&t.indexOf(".")!==-1||e&&a,S=nt(t,l),y=S.beforeDecimal,c=S.afterDecimal,A=S.addNegation;return e!==void 0&&(c=st(c,e,!!a)),p&&(y=Mt(y,p,m)),n&&(y=n+y),u&&(c+=u),A&&(y="-"+y),t=y+(f&&h||"")+c,t}function rt(t){var r=t.decimalSeparator;r===void 0&&(r=".");var e=t.thousandSeparator,a=t.allowedDecimalSeparators;return e===!0&&(e=","),a||(a=[r,"."]),{decimalSeparator:r,thousandSeparator:e,allowedDecimalSeparators:a}}function Ht(t,r){t===void 0&&(t="");var e=RegExp("(-)"),a=RegExp("(-)(.)*(-)"),n=e.test(t),u=a.test(t);return t=t.replace(/-/g,""),n&&!u&&r&&(t="-"+t),t}function Jt(t,r){return RegExp("(^-)|[0-9]|"+ct(t),r?"g":void 0)}function Qt(t,r,e){return t===""?!0:!(r!=null&&r.match(/\d/))&&!(e!=null&&e.match(/\d/))&&typeof t=="string"&&!isNaN(Number(t))}function Xt(t,r,e){var a;r===void 0&&(r=Gt(t));var n=e.allowNegative,u=e.prefix;u===void 0&&(u="");var l=e.suffix;l===void 0&&(l="");var m=e.decimalScale,b=r.from,p=r.to,h=p.start,f=p.end,S=rt(e),y=S.allowedDecimalSeparators,c=S.decimalSeparator,A=t[f]===c;if(Y(t)&&(t===u||t===l)&&r.lastValue==="")return t;if(f-h===1&&y.indexOf(t[h])!==-1){var v=m===0?"":c;t=t.substring(0,h)+v+t.substring(h+1,t.length)}var E=function(w,T,J){var R=!1,L=!1;u.startsWith("-")?R=!1:w.startsWith("--")?(R=!1,L=!0):l.startsWith("-")&&w.length===l.length?R=!1:w[0]==="-"&&(R=!0);var M=R?1:0;return L&&(M=2),M&&(w=w.substring(M),T-=M,J-=M),{value:w,start:T,end:J,hasNegation:R}},j=E(t,h,f),B=j.hasNegation;a=j,t=a.value,h=a.start,f=a.end;var Z=E(r.lastValue,b.start,b.end),P=Z.start,z=Z.end,G=Z.value,x=t.substring(h,f);t.length&&G.length&&(P>G.length-l.length||z<u.length)&&!(x&&l.startsWith(x))&&(t=G);var k=0;t.startsWith(u)?k+=u.length:h<u.length&&(k=h),t=t.substring(k),f-=k;var H=t.length,K=t.length-l.length;t.endsWith(l)?H=K:(f>K||f>t.length-l.length)&&(H=f),t=t.substring(0,H),t=Ht(B?"-"+t:t,n),t=(t.match(Jt(c,!0))||[]).join("");var s=t.indexOf(c);t=t.replace(new RegExp(ct(c),"g"),function(w,T){return T===s?".":""});var g=nt(t,n),C=g.beforeDecimal,I=g.afterDecimal,W=g.addNegation;return p.end-p.start<b.end-b.start&&C===""&&A&&!parseFloat(I)&&(t=W?"-":""),t}function Yt(t,r){var e=r.prefix;e===void 0&&(e="");var a=r.suffix;a===void 0&&(a="");var n=Array.from({length:t.length+1}).map(function(){return!0}),u=t[0]==="-";n.fill(!1,0,e.length+(u?1:0));var l=t.length;return n.fill(!1,l-a.length+1,l+1),n}function tr(t){var r=rt(t),e=r.thousandSeparator,a=r.decimalSeparator,n=t.prefix;n===void 0&&(n="");var u=t.allowNegative;if(u===void 0&&(u=!0),e===a)throw Error(`
2
2
  Decimal separator can't be same as thousand separator.
3
3
  thousandSeparator: `+e+` (thousandSeparator = {true} is same as thousandSeparator = ",")
4
4
  decimalSeparator: `+a+` (default value for decimalSeparator is .)
package/dist/index.html CHANGED
@@ -66,7 +66,7 @@
66
66
  <marimo-server-token data-token="{{ server_token }}" hidden></marimo-server-token>
67
67
  <!-- /TODO -->
68
68
  <title>{{ title }}</title>
69
- <script type="module" crossorigin src="./assets/index-D3lxLHpx.js"></script>
69
+ <script type="module" crossorigin src="./assets/index-Co7t4LPQ.js"></script>
70
70
  <link rel="modulepreload" crossorigin href="./assets/preload-helper-BW0IMuFq.js">
71
71
  <link rel="modulepreload" crossorigin href="./assets/chunk-LvLJmgfZ.js">
72
72
  <link rel="modulepreload" crossorigin href="./assets/react-Bj1aDYRI.js">
@@ -252,8 +252,6 @@
252
252
  </head>
253
253
  <body>
254
254
  <div id="root"></div>
255
- <!-- This is a portal for the data editor to render in -->
256
- <div id="portal" data-testid="glide-portal" style="position: fixed; left: 0; top: 0; z-index: 9999"></div>
257
255
  <script data-marimo="true">
258
256
  Object.defineProperty(window, "__MARIMO_MOUNT_CONFIG__", {
259
257
  value: Object.freeze('{{ mount_config }}'),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@marimo-team/frontend",
3
- "version": "0.23.14-dev24",
3
+ "version": "0.23.14-dev25",
4
4
  "main": "dist/main.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "type": "module",
@@ -45,7 +45,7 @@
45
45
  "@dnd-kit/utilities": "^3.2.2",
46
46
  "@emotion/cache": "^11.14.0",
47
47
  "@emotion/react": "^11.14.0",
48
- "@glideapps/glide-data-grid": "6.0.4-alpha9",
48
+ "@glideapps/glide-data-grid": "6.0.4-alpha24",
49
49
  "@hookform/resolvers": "^5.2.2",
50
50
  "@img-comparison-slider/react": "^8.0.2",
51
51
  "@internationalized/date": "^3.10.1",
@@ -0,0 +1,187 @@
1
+ /* Copyright 2026 Marimo. All rights reserved. */
2
+
3
+ import React from "react";
4
+ import { act, render, screen, waitFor } from "@testing-library/react";
5
+ import { beforeEach, describe, expect, it, vi } from "vitest";
6
+ import { TooltipProvider } from "@/components/ui/tooltip";
7
+ import { GlideDataEditor } from "../glide-data-editor";
8
+
9
+ const capturedPortalRef = vi.hoisted(() => ({
10
+ ref: undefined as React.RefObject<HTMLElement> | undefined,
11
+ }));
12
+
13
+ vi.mock("@glideapps/glide-data-grid", async () => {
14
+ const React = await import("react");
15
+ return {
16
+ default: React.forwardRef(function MockDataEditor(
17
+ props: { portalElementRef?: React.RefObject<HTMLElement> },
18
+ _ref: React.Ref<HTMLDivElement>,
19
+ ) {
20
+ capturedPortalRef.ref = props.portalElementRef;
21
+ return <div data-testid="mock-data-editor" />;
22
+ }),
23
+ CompactSelection: {
24
+ empty: () => ({}),
25
+ },
26
+ GridCellKind: {
27
+ Text: "text",
28
+ Number: "number",
29
+ Boolean: "boolean",
30
+ },
31
+ GridColumnIcon: {
32
+ ProtectedColumnOverlay: "protected",
33
+ },
34
+ };
35
+ });
36
+
37
+ vi.mock("@/theme/useTheme", () => ({
38
+ useTheme: () => ({ theme: "light" }),
39
+ }));
40
+
41
+ const editorProps = {
42
+ data: [{ name: "alice" }],
43
+ setData: vi.fn(),
44
+ columnFields: new Map([["name", "string"]]) as Map<string, "string">,
45
+ setColumnFields: vi.fn(),
46
+ editableColumns: "all" as const,
47
+ edits: [],
48
+ onAddEdits: vi.fn(),
49
+ onAddRows: vi.fn(),
50
+ onDeleteRows: vi.fn(),
51
+ onRenameColumn: vi.fn(),
52
+ onDeleteColumn: vi.fn(),
53
+ onAddColumn: vi.fn(),
54
+ };
55
+
56
+ describe("GlideDataEditor portal", () => {
57
+ let fullscreenElement: Element | null;
58
+
59
+ beforeEach(() => {
60
+ fullscreenElement = null;
61
+ Object.defineProperty(document, "fullscreenElement", {
62
+ get: () => fullscreenElement,
63
+ configurable: true,
64
+ });
65
+ document.body
66
+ .querySelectorAll("[data-testid='glide-data-editor-portal']")
67
+ .forEach((node) => {
68
+ node.remove();
69
+ });
70
+ });
71
+
72
+ it("renders a body-level portal and passes it to DataEditor", async () => {
73
+ const { container } = render(
74
+ <TooltipProvider>
75
+ <GlideDataEditor {...editorProps} />
76
+ </TooltipProvider>,
77
+ );
78
+
79
+ const portal = screen.getByTestId("glide-data-editor-portal");
80
+ expect(portal.parentElement).toBe(document.body);
81
+ expect(container.contains(portal)).toBe(false);
82
+ expect(capturedPortalRef.ref).toBeDefined();
83
+ await waitFor(() => {
84
+ expect(capturedPortalRef.ref?.current).toBe(portal);
85
+ });
86
+ });
87
+
88
+ it("mounts into the fullscreen element when fullscreen is already active", () => {
89
+ const fullscreenContainer = document.createElement("div");
90
+ document.body.appendChild(fullscreenContainer);
91
+ fullscreenElement = fullscreenContainer;
92
+
93
+ render(
94
+ <TooltipProvider>
95
+ <GlideDataEditor {...editorProps} />
96
+ </TooltipProvider>,
97
+ );
98
+
99
+ const portal = fullscreenContainer.querySelector(
100
+ "[data-testid='glide-data-editor-portal']",
101
+ );
102
+ expect(portal).not.toBeNull();
103
+ expect(portal?.parentElement).toBe(fullscreenContainer);
104
+
105
+ fullscreenContainer.remove();
106
+ });
107
+
108
+ it("moves the portal into the fullscreen element while fullscreen is active", async () => {
109
+ render(
110
+ <TooltipProvider>
111
+ <GlideDataEditor {...editorProps} />
112
+ </TooltipProvider>,
113
+ );
114
+
115
+ expect(
116
+ document.body.querySelector("[data-testid='glide-data-editor-portal']"),
117
+ ).not.toBeNull();
118
+
119
+ const fullscreenContainer = document.createElement("div");
120
+ document.body.appendChild(fullscreenContainer);
121
+
122
+ act(() => {
123
+ fullscreenElement = fullscreenContainer;
124
+ document.dispatchEvent(new Event("fullscreenchange"));
125
+ });
126
+
127
+ await waitFor(() => {
128
+ const portal = fullscreenContainer.querySelector(
129
+ "[data-testid='glide-data-editor-portal']",
130
+ );
131
+ expect(portal?.parentElement).toBe(fullscreenContainer);
132
+ });
133
+
134
+ act(() => {
135
+ fullscreenElement = null;
136
+ document.dispatchEvent(new Event("fullscreenchange"));
137
+ });
138
+
139
+ await waitFor(() => {
140
+ const portal = document.body.querySelector(
141
+ "[data-testid='glide-data-editor-portal']",
142
+ );
143
+ expect(portal?.parentElement).toBe(document.body);
144
+ });
145
+
146
+ fullscreenContainer.remove();
147
+ });
148
+
149
+ it("unmounts cleanly while fullscreen is active", async () => {
150
+ const fullscreenContainer = document.createElement("div");
151
+ document.body.appendChild(fullscreenContainer);
152
+
153
+ const { unmount } = render(
154
+ <TooltipProvider>
155
+ <GlideDataEditor {...editorProps} />
156
+ </TooltipProvider>,
157
+ );
158
+
159
+ act(() => {
160
+ fullscreenElement = fullscreenContainer;
161
+ document.dispatchEvent(new Event("fullscreenchange"));
162
+ });
163
+
164
+ await waitFor(() => {
165
+ expect(
166
+ fullscreenContainer.querySelector(
167
+ "[data-testid='glide-data-editor-portal']",
168
+ ),
169
+ ).not.toBeNull();
170
+ });
171
+
172
+ expect(() => {
173
+ act(() => unmount());
174
+ }).not.toThrow();
175
+
176
+ expect(
177
+ fullscreenContainer.querySelector(
178
+ "[data-testid='glide-data-editor-portal']",
179
+ ),
180
+ ).toBeNull();
181
+ expect(
182
+ document.body.querySelector("[data-testid='glide-data-editor-portal']"),
183
+ ).toBeNull();
184
+
185
+ fullscreenContainer.remove();
186
+ });
187
+ });
@@ -56,6 +56,7 @@ import {
56
56
  removeColumn,
57
57
  renameColumn,
58
58
  } from "./data-utils";
59
+ import { GlideDataEditorPortal } from "./glide-portal";
59
60
 
60
61
  interface GlideDataEditorProps<T> {
61
62
  data: T[];
@@ -88,6 +89,7 @@ export const GlideDataEditor = <T,>({
88
89
  }: GlideDataEditorProps<T>) => {
89
90
  const { theme } = useTheme();
90
91
  const dataEditorRef = useRef<DataEditorRef>(null);
92
+ const portalElementRef = useRef<HTMLDivElement>(null);
91
93
 
92
94
  const [menu, setMenu] = useState<{ col: number; bounds: Rectangle }>();
93
95
  const [showSearch, setShowSearch] = useState<boolean>(false);
@@ -613,9 +615,13 @@ export const GlideDataEditor = <T,>({
613
615
 
614
616
  return (
615
617
  <div className="relative w-full min-w-0">
618
+ <GlideDataEditorPortal portalRef={portalElementRef} />
616
619
  <ErrorBoundary>
617
620
  <DataEditor
618
621
  ref={dataEditorRef}
622
+ // Glide types portalElementRef as RefObject<HTMLElement> (non-null); React 19 refs include null.
623
+ // @ts-expect-error glide-data-grid stale RefObject typing
624
+ portalElementRef={portalElementRef}
619
625
  getCellContent={getCellContent}
620
626
  columns={columns}
621
627
  gridSelection={selection}
@@ -0,0 +1,73 @@
1
+ /* Copyright 2026 Marimo. All rights reserved. */
2
+
3
+ import React, { useEffect, useState } from "react";
4
+ import { createPortal } from "react-dom";
5
+
6
+ /**
7
+ * Dismiss any open Glide Data Grid overlay by firing Escape on it.
8
+ */
9
+ export function dismissGlideOverlay() {
10
+ const overlay = document.querySelector(
11
+ "[data-testid='glide-data-editor-portal'] .gdg-clip-region",
12
+ );
13
+ if (overlay) {
14
+ overlay.dispatchEvent(
15
+ new KeyboardEvent("keydown", { key: "Escape", bubbles: true }),
16
+ );
17
+ }
18
+ }
19
+
20
+ function getGlidePortalContainer(): Element {
21
+ return document.fullscreenElement ?? document.body;
22
+ }
23
+
24
+ function useGlidePortalContainer(): Element {
25
+ const [container, setContainer] = useState<Element>(getGlidePortalContainer);
26
+
27
+ useEffect(() => {
28
+ const handleFullscreenChange = () => {
29
+ if (document.fullscreenElement) {
30
+ setContainer(document.fullscreenElement);
31
+ } else {
32
+ dismissGlideOverlay();
33
+ setContainer(document.body);
34
+ }
35
+ };
36
+
37
+ document.addEventListener("fullscreenchange", handleFullscreenChange);
38
+ // Sync on mount in case fullscreen became active before this editor mounted.
39
+ handleFullscreenChange();
40
+
41
+ return () => {
42
+ document.removeEventListener("fullscreenchange", handleFullscreenChange);
43
+ };
44
+ }, []);
45
+
46
+ return container;
47
+ }
48
+
49
+ /**
50
+ * Per-instance Glide Data Grid overlay portal on document.body.
51
+ * Moves into the active fullscreen element via createPortal so edit overlays stay visible
52
+ */
53
+ export function GlideDataEditorPortal({
54
+ portalRef,
55
+ }: {
56
+ portalRef: React.RefObject<HTMLDivElement | null>;
57
+ }) {
58
+ const container = useGlidePortalContainer();
59
+
60
+ return createPortal(
61
+ <div
62
+ ref={portalRef}
63
+ data-testid="glide-data-editor-portal"
64
+ style={{
65
+ position: "fixed",
66
+ left: 0,
67
+ top: 0,
68
+ zIndex: 9999,
69
+ }}
70
+ />,
71
+ container,
72
+ );
73
+ }
@@ -1 +0,0 @@
1
- var se=Object.defineProperty;var le=(e,t,r)=>t in e?se(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var y=(e,t,r)=>le(e,typeof t!="symbol"?t+"":t,r);var h;import{s as A,t as l}from"./chunk-LvLJmgfZ.js";import{t as ue}from"./react-Bj1aDYRI.js";function D(e="This should not happen"){throw Error(e)}function de(e,t="Assertion failed"){if(!e)return D(t)}function L(e,t){return D(t??"Hell froze over")}function ce(e,t){try{return e()}catch{return t}}var M=Object.prototype.hasOwnProperty;function B(e,t){let r,n;if(e===t)return!0;if(e&&t&&(r=e.constructor)===t.constructor){if(r===Date)return e.getTime()===t.getTime();if(r===RegExp)return e.toString()===t.toString();if(r===Array){if((n=e.length)===t.length)for(;n--&&B(e[n],t[n]););return n===-1}if(!r||typeof e=="object"){for(r in n=0,e)if(M.call(e,r)&&++n&&!M.call(t,r)||!(r in t)||!B(e[r],t[r]))return!1;return Object.keys(t).length===n}}return e!==e&&t!==t}var pe=l(((e,t)=>{var r=Object.prototype.hasOwnProperty;function n(o,i){return o!=null&&r.call(o,i)}t.exports=n})),x=l(((e,t)=>{t.exports=Array.isArray})),N=l(((e,t)=>{t.exports=typeof global=="object"&&global&&global.Object===Object&&global})),F=l(((e,t)=>{var r=N(),n=typeof self=="object"&&self&&self.Object===Object&&self;t.exports=r||n||Function("return this")()})),_=l(((e,t)=>{t.exports=F().Symbol})),fe=l(((e,t)=>{var r=_(),n=Object.prototype,o=n.hasOwnProperty,i=n.toString,a=r?r.toStringTag:void 0;function s(d){var u=o.call(d,a),c=d[a];try{d[a]=void 0;var p=!0}catch{}var b=i.call(d);return p&&(u?d[a]=c:delete d[a]),b}t.exports=s})),he=l(((e,t)=>{var r=Object.prototype.toString;function n(o){return r.call(o)}t.exports=n})),w=l(((e,t)=>{var r=_(),n=fe(),o=he(),i="[object Null]",a="[object Undefined]",s=r?r.toStringTag:void 0;function d(u){return u==null?u===void 0?a:i:s&&s in Object(u)?n(u):o(u)}t.exports=d})),k=l(((e,t)=>{function r(n){return typeof n=="object"&&!!n}t.exports=r})),S=l(((e,t)=>{var r=w(),n=k(),o="[object Symbol]";function i(a){return typeof a=="symbol"||n(a)&&r(a)==o}t.exports=i})),U=l(((e,t)=>{var r=x(),n=S(),o=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,i=/^\w*$/;function a(s,d){if(r(s))return!1;var u=typeof s;return u=="number"||u=="symbol"||u=="boolean"||s==null||n(s)?!0:i.test(s)||!o.test(s)||d!=null&&s in Object(d)}t.exports=a})),z=l(((e,t)=>{function r(n){var o=typeof n;return n!=null&&(o=="object"||o=="function")}t.exports=r})),V=l(((e,t)=>{var r=w(),n=z(),o="[object AsyncFunction]",i="[object Function]",a="[object GeneratorFunction]",s="[object Proxy]";function d(u){if(!n(u))return!1;var c=r(u);return c==i||c==a||c==o||c==s}t.exports=d})),ge=l(((e,t)=>{t.exports=F()["__core-js_shared__"]})),ve=l(((e,t)=>{var r=ge(),n=(function(){var i=/[^.]+$/.exec(r&&r.keys&&r.keys.IE_PROTO||"");return i?"Symbol(src)_1."+i:""})();function o(i){return!!n&&n in i}t.exports=o})),G=l(((e,t)=>{var r=Function.prototype.toString;function n(o){if(o!=null){try{return r.call(o)}catch{}try{return o+""}catch{}}return""}t.exports=n})),be=l(((e,t)=>{var r=V(),n=ve(),o=z(),i=G(),a=/[\\^$.*+?()[\]{}|]/g,s=/^\[object .+?Constructor\]$/,d=Function.prototype,u=Object.prototype,c=d.toString,p=u.hasOwnProperty,b=RegExp("^"+c.call(p).replace(a,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function g(v){return!o(v)||n(v)?!1:(r(v)?b:s).test(i(v))}t.exports=g})),me=l(((e,t)=>{function r(n,o){return n==null?void 0:n[o]}t.exports=r})),R=l(((e,t)=>{var r=be(),n=me();function o(i,a){var s=n(i,a);return r(s)?s:void 0}t.exports=o})),H=l(((e,t)=>{t.exports=R()(Object,"create")})),ye=l(((e,t)=>{var r=H();function n(){this.__data__=r?r(null):{},this.size=0}t.exports=n})),xe=l(((e,t)=>{function r(n){var o=this.has(n)&&delete this.__data__[n];return this.size-=o?1:0,o}t.exports=r})),Fe=l(((e,t)=>{var r=H(),n="__lodash_hash_undefined__",o=Object.prototype.hasOwnProperty;function i(a){var s=this.__data__;if(r){var d=s[a];return d===n?void 0:d}return o.call(s,a)?s[a]:void 0}t.exports=i})),_e=l(((e,t)=>{var r=H(),n=Object.prototype.hasOwnProperty;function o(i){var a=this.__data__;return r?a[i]!==void 0:n.call(a,i)}t.exports=o})),we=l(((e,t)=>{var r=H(),n="__lodash_hash_undefined__";function o(i,a){var s=this.__data__;return this.size+=this.has(i)?0:1,s[i]=r&&a===void 0?n:a,this}t.exports=o})),ke=l(((e,t)=>{var r=ye(),n=xe(),o=Fe(),i=_e(),a=we();function s(d){var u=-1,c=d==null?0:d.length;for(this.clear();++u<c;){var p=d[u];this.set(p[0],p[1])}}s.prototype.clear=r,s.prototype.delete=n,s.prototype.get=o,s.prototype.has=i,s.prototype.set=a,t.exports=s})),Se=l(((e,t)=>{function r(){this.__data__=[],this.size=0}t.exports=r})),J=l(((e,t)=>{function r(n,o){return n===o||n!==n&&o!==o}t.exports=r})),O=l(((e,t)=>{var r=J();function n(o,i){for(var a=o.length;a--;)if(r(o[a][0],i))return a;return-1}t.exports=n})),He=l(((e,t)=>{var r=O(),n=Array.prototype.splice;function o(i){var a=this.__data__,s=r(a,i);return s<0?!1:(s==a.length-1?a.pop():n.call(a,s,1),--this.size,!0)}t.exports=o})),Oe=l(((e,t)=>{var r=O();function n(o){var i=this.__data__,a=r(i,o);return a<0?void 0:i[a][1]}t.exports=n})),Ce=l(((e,t)=>{var r=O();function n(o){return r(this.__data__,o)>-1}t.exports=n})),je=l(((e,t)=>{var r=O();function n(o,i){var a=this.__data__,s=r(a,o);return s<0?(++this.size,a.push([o,i])):a[s][1]=i,this}t.exports=n})),q=l(((e,t)=>{var r=Se(),n=He(),o=Oe(),i=Ce(),a=je();function s(d){var u=-1,c=d==null?0:d.length;for(this.clear();++u<c;){var p=d[u];this.set(p[0],p[1])}}s.prototype.clear=r,s.prototype.delete=n,s.prototype.get=o,s.prototype.has=i,s.prototype.set=a,t.exports=s})),W=l(((e,t)=>{t.exports=R()(F(),"Map")})),Ee=l(((e,t)=>{var r=ke(),n=q(),o=W();function i(){this.size=0,this.__data__={hash:new r,map:new(o||n),string:new r}}t.exports=i})),$e=l(((e,t)=>{function r(n){var o=typeof n;return o=="string"||o=="number"||o=="symbol"||o=="boolean"?n!=="__proto__":n===null}t.exports=r})),C=l(((e,t)=>{var r=$e();function n(o,i){var a=o.__data__;return r(i)?a[typeof i=="string"?"string":"hash"]:a.map}t.exports=n})),Be=l(((e,t)=>{var r=C();function n(o){var i=r(this,o).delete(o);return this.size-=i?1:0,i}t.exports=n})),ze=l(((e,t)=>{var r=C();function n(o){return r(this,o).get(o)}t.exports=n})),Re=l(((e,t)=>{var r=C();function n(o){return r(this,o).has(o)}t.exports=n})),Ie=l(((e,t)=>{var r=C();function n(o,i){var a=r(this,o),s=a.size;return a.set(o,i),this.size+=a.size==s?0:1,this}t.exports=n})),K=l(((e,t)=>{var r=Ee(),n=Be(),o=ze(),i=Re(),a=Ie();function s(d){var u=-1,c=d==null?0:d.length;for(this.clear();++u<c;){var p=d[u];this.set(p[0],p[1])}}s.prototype.clear=r,s.prototype.delete=n,s.prototype.get=o,s.prototype.has=i,s.prototype.set=a,t.exports=s})),Pe=l(((e,t)=>{var r=K(),n="Expected a function";function o(i,a){if(typeof i!="function"||a!=null&&typeof a!="function")throw TypeError(n);var s=function(){var d=arguments,u=a?a.apply(this,d):d[0],c=s.cache;if(c.has(u))return c.get(u);var p=i.apply(this,d);return s.cache=c.set(u,p)||c,p};return s.cache=new(o.Cache||r),s}o.Cache=r,t.exports=o})),Te=l(((e,t)=>{var r=Pe(),n=500;function o(i){var a=r(i,function(d){return s.size===n&&s.clear(),d}),s=a.cache;return a}t.exports=o})),Ae=l(((e,t)=>{var r=Te(),n=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,o=/\\(\\)?/g;t.exports=r(function(i){var a=[];return i.charCodeAt(0)===46&&a.push(""),i.replace(n,function(s,d,u,c){a.push(u?c.replace(o,"$1"):d||s)}),a})})),De=l(((e,t)=>{function r(n,o){for(var i=-1,a=n==null?0:n.length,s=Array(a);++i<a;)s[i]=o(n[i],i,n);return s}t.exports=r})),Le=l(((e,t)=>{var r=_(),n=De(),o=x(),i=S(),a=1/0,s=r?r.prototype:void 0,d=s?s.toString:void 0;function u(c){if(typeof c=="string")return c;if(o(c))return n(c,u)+"";if(i(c))return d?d.call(c):"";var p=c+"";return p=="0"&&1/c==-a?"-0":p}t.exports=u})),Me=l(((e,t)=>{var r=Le();function n(o){return o==null?"":r(o)}t.exports=n})),Q=l(((e,t)=>{var r=x(),n=U(),o=Ae(),i=Me();function a(s,d){return r(s)?s:n(s,d)?[s]:o(i(s))}t.exports=a})),Ne=l(((e,t)=>{var r=w(),n=k(),o="[object Arguments]";function i(a){return n(a)&&r(a)==o}t.exports=i})),X=l(((e,t)=>{var r=Ne(),n=k(),o=Object.prototype,i=o.hasOwnProperty,a=o.propertyIsEnumerable;t.exports=r((function(){return arguments})())?r:function(s){return n(s)&&i.call(s,"callee")&&!a.call(s,"callee")}})),Y=l(((e,t)=>{var r=9007199254740991,n=/^(?:0|[1-9]\d*)$/;function o(i,a){var s=typeof i;return a??(a=r),!!a&&(s=="number"||s!="symbol"&&n.test(i))&&i>-1&&i%1==0&&i<a}t.exports=o})),Z=l(((e,t)=>{var r=9007199254740991;function n(o){return typeof o=="number"&&o>-1&&o%1==0&&o<=r}t.exports=n})),ee=l(((e,t)=>{var r=S(),n=1/0;function o(i){if(typeof i=="string"||r(i))return i;var a=i+"";return a=="0"&&1/i==-n?"-0":a}t.exports=o})),te=l(((e,t)=>{var r=Q(),n=X(),o=x(),i=Y(),a=Z(),s=ee();function d(u,c,p){c=r(c,u);for(var b=-1,g=c.length,v=!1;++b<g;){var $=s(c[b]);if(!(v=u!=null&&p(u,$)))break;u=u[$]}return v||++b!=g?v:(g=u==null?0:u.length,!!g&&a(g)&&i($,g)&&(o(u)||n(u)))}t.exports=d})),Ue=A(l(((e,t)=>{var r=pe(),n=te();function o(i,a){return i!=null&&n(i,a,r)}t.exports=o}))(),1);const Ve=null,Ge=void 0;var f;(function(e){e.Uri="uri",e.Text="text",e.Image="image",e.RowID="row-id",e.Number="number",e.Bubble="bubble",e.Boolean="boolean",e.Loading="loading",e.Markdown="markdown",e.Drilldown="drilldown",e.Protected="protected",e.Custom="custom"})(f||(f={}));var re;(function(e){e.HeaderRowID="headerRowID",e.HeaderCode="headerCode",e.HeaderNumber="headerNumber",e.HeaderString="headerString",e.HeaderBoolean="headerBoolean",e.HeaderAudioUri="headerAudioUri",e.HeaderVideoUri="headerVideoUri",e.HeaderEmoji="headerEmoji",e.HeaderImage="headerImage",e.HeaderUri="headerUri",e.HeaderPhone="headerPhone",e.HeaderMarkdown="headerMarkdown",e.HeaderDate="headerDate",e.HeaderTime="headerTime",e.HeaderEmail="headerEmail",e.HeaderReference="headerReference",e.HeaderIfThenElse="headerIfThenElse",e.HeaderSingleValue="headerSingleValue",e.HeaderLookup="headerLookup",e.HeaderTextTemplate="headerTextTemplate",e.HeaderMath="headerMath",e.HeaderRollup="headerRollup",e.HeaderJoinStrings="headerJoinStrings",e.HeaderSplitString="headerSplitString",e.HeaderGeoDistance="headerGeoDistance",e.HeaderArray="headerArray",e.RowOwnerOverlay="rowOwnerOverlay",e.ProtectedColumnOverlay="protectedColumnOverlay"})(re||(re={}));var ne;(function(e){e.Triangle="triangle",e.Dots="dots"})(ne||(ne={}));function Je(e){return"width"in e&&typeof e.width=="number"}async function qe(e){return typeof e=="object"?e:await e()}function oe(e){return!(e.kind===f.Loading||e.kind===f.Bubble||e.kind===f.RowID||e.kind===f.Protected||e.kind===f.Drilldown)}function We(e){return e.kind===j.Marker||e.kind===j.NewRow}function Ke(e){if(!oe(e)||e.kind===f.Image)return!1;if(e.kind===f.Text||e.kind===f.Number||e.kind===f.Markdown||e.kind===f.Uri||e.kind===f.Custom||e.kind===f.Boolean)return e.readonly!==!0;L(e,"A cell was passed with an invalid kind")}function Qe(e){return(0,Ue.default)(e,"editor")}function Xe(e){return!(e.readonly??!1)}var j;(function(e){e.NewRow="new-row",e.Marker="marker"})(j||(j={}));function Ye(e){if(e.length===0)return[];let t=[...e],r=[];t.sort(function(n,o){return n[0]-o[0]}),r.push([...t[0]]);for(let n of t.slice(1)){let o=r[r.length-1];o[1]<n[0]?r.push([...n]):o[1]<n[1]&&(o[1]=n[1])}return r}var Ze,et=(h=class{constructor(t){y(this,"items");this.items=t}offset(t){return t===0?this:new h(this.items.map(r=>[r[0]+t,r[1]+t]))}add(t){let r=typeof t=="number"?[t,t+1]:t;return new h(Ye([...this.items,r]))}remove(t){let r=[...this.items],n=typeof t=="number"?t:t[0],o=typeof t=="number"?t+1:t[1];for(let[i,a]of r.entries()){let[s,d]=a;if(s<=o&&n<=d){let u=[];s<n&&u.push([s,n]),o<d&&u.push([o,d]),r.splice(i,1,...u)}}return new h(r)}first(){if(this.items.length!==0)return this.items[0][0]}last(){if(this.items.length!==0)return this.items.slice(-1)[0][1]-1}hasIndex(t){for(let r=0;r<this.items.length;r++){let[n,o]=this.items[r];if(t>=n&&t<o)return!0}return!1}hasAll(t){for(let r=t[0];r<t[1];r++)if(!this.hasIndex(r))return!1;return!0}some(t){for(let r of this)if(t(r))return!0;return!1}equals(t){if(t===this)return!0;if(t.items.length!==this.items.length)return!1;for(let r=0;r<this.items.length;r++){let n=t.items[r],o=this.items[r];if(n[0]!==o[0]||n[1]!==o[1])return!1}return!0}toArray(){let t=[];for(let[r,n]of this.items)for(let o=r;o<n;o++)t.push(o);return t}get length(){let t=0;for(let[r,n]of this.items)t+=n-r;return t}*[Symbol.iterator](){for(let[t,r]of this.items)for(let n=t;n<r;n++)yield n}},y(h,"empty",()=>Ze??(Ze=new h([]))),y(h,"fromSingleSelection",t=>h.empty().add(t)),h),I={},m=null;function tt(){let e=document.createElement("div");return e.style.opacity="0",e.style.pointerEvents="none",e.style.position="fixed",document.body.append(e),e}function P(e){let t=e.toLowerCase().trim();if(I[t]!==void 0)return I[t];m||(m=tt()),m.style.color="#000",m.style.color=t;let r=getComputedStyle(m).color;m.style.color="#fff",m.style.color=t;let n=getComputedStyle(m).color;if(n!==r)return[0,0,0,1];let o=n.replace(/[^\d.,]/g,"").split(",").map(Number.parseFloat);return o.length<4&&o.push(1),o=o.map(i=>Number.isNaN(i)?0:i),I[t]=o,o}function rt(e,t){let[r,n,o]=P(e);return`rgba(${r}, ${n}, ${o}, ${t})`}var ie=new Map;function nt(e,t){let r=`${e}-${t}`,n=ie.get(r);if(n!==void 0)return n;let o=T(e,t);return ie.set(r,o),o}function T(e,t){if(t===void 0)return e;let[r,n,o,i]=P(e);if(i===1)return e;let[a,s,d,u]=P(t),c=i+u*(1-i);return`rgba(${(i*r+u*a*(1-i))/c}, ${(i*n+u*s*(1-i))/c}, ${(i*o+u*d*(1-i))/c}, ${c})`}var E=A(ue(),1);function ot(e){return{"--gdg-accent-color":e.accentColor,"--gdg-accent-fg":e.accentFg,"--gdg-accent-light":e.accentLight,"--gdg-text-dark":e.textDark,"--gdg-text-medium":e.textMedium,"--gdg-text-light":e.textLight,"--gdg-text-bubble":e.textBubble,"--gdg-bg-icon-header":e.bgIconHeader,"--gdg-fg-icon-header":e.fgIconHeader,"--gdg-text-header":e.textHeader,"--gdg-text-group-header":e.textGroupHeader??e.textHeader,"--gdg-text-header-selected":e.textHeaderSelected,"--gdg-bg-cell":e.bgCell,"--gdg-bg-cell-medium":e.bgCellMedium,"--gdg-bg-header":e.bgHeader,"--gdg-bg-header-has-focus":e.bgHeaderHasFocus,"--gdg-bg-header-hovered":e.bgHeaderHovered,"--gdg-bg-bubble":e.bgBubble,"--gdg-bg-bubble-selected":e.bgBubbleSelected,"--gdg-bg-search-result":e.bgSearchResult,"--gdg-border-color":e.borderColor,"--gdg-horizontal-border-color":e.horizontalBorderColor??e.borderColor,"--gdg-drilldown-border":e.drilldownBorder,"--gdg-link-color":e.linkColor,"--gdg-cell-horizontal-padding":`${e.cellHorizontalPadding}px`,"--gdg-cell-vertical-padding":`${e.cellVerticalPadding}px`,"--gdg-header-font-style":e.headerFontStyle,"--gdg-base-font-style":e.baseFontStyle,"--gdg-marker-font-style":e.markerFontStyle,"--gdg-font-family":e.fontFamily,"--gdg-editor-font-size":e.editorFontSize,...e.resizeIndicatorColor===void 0?{}:{"--gdg-resize-indicator-color":e.resizeIndicatorColor},...e.headerBottomBorderColor===void 0?{}:{"--gdg-header-bottom-border-color":e.headerBottomBorderColor},...e.roundingRadius===void 0?{}:{"--gdg-rounding-radius":`${e.roundingRadius}px`}}}var ae={accentColor:"#4F5DFF",accentFg:"#FFFFFF",accentLight:"rgba(62, 116, 253, 0.1)",textDark:"#313139",textMedium:"#737383",textLight:"#B2B2C0",textBubble:"#313139",bgIconHeader:"#737383",fgIconHeader:"#FFFFFF",textHeader:"#313139",textGroupHeader:"#313139BB",textHeaderSelected:"#FFFFFF",bgCell:"#FFFFFF",bgCellMedium:"#FAFAFB",bgHeader:"#F7F7F8",bgHeaderHasFocus:"#E9E9EB",bgHeaderHovered:"#EFEFF1",bgBubble:"#EDEDF3",bgBubbleSelected:"#FFFFFF",bgSearchResult:"#fff9e3",borderColor:"rgba(115, 116, 131, 0.16)",drilldownBorder:"rgba(0, 0, 0, 0)",linkColor:"#353fb5",cellHorizontalPadding:8,cellVerticalPadding:3,headerIconSize:18,headerFontStyle:"600 13px",baseFontStyle:"13px",markerFontStyle:"9px",fontFamily:"Inter, Roboto, -apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Ubuntu, noto, arial, sans-serif",editorFontSize:"13px",lineHeight:1.4};function it(){return ae}const at=E.createContext(ae);function st(e,...t){let r={...e};for(let n of t)if(n!==void 0)for(let o in n)n.hasOwnProperty(o)&&(o==="bgCell"?r[o]=T(n[o],r[o]):r[o]=n[o]);return(r.headerFontFull===void 0||e.fontFamily!==r.fontFamily||e.headerFontStyle!==r.headerFontStyle)&&(r.headerFontFull=`${r.headerFontStyle} ${r.fontFamily}`),(r.baseFontFull===void 0||e.fontFamily!==r.fontFamily||e.baseFontStyle!==r.baseFontStyle)&&(r.baseFontFull=`${r.baseFontStyle} ${r.fontFamily}`),(r.markerFontFull===void 0||e.fontFamily!==r.fontFamily||e.markerFontStyle!==r.markerFontStyle)&&(r.markerFontFull=`${r.markerFontStyle} ${r.fontFamily}`),r}var lt=class extends E.PureComponent{constructor(){super(...arguments);y(this,"wrapperRef",E.createRef());y(this,"clickOutside",t=>{if(!(this.props.isOutsideClick&&!this.props.isOutsideClick(t))&&this.wrapperRef.current!==null&&!this.wrapperRef.current.contains(t.target)){let r=t.target;for(;r!==null;){if(r.classList.contains("click-outside-ignore"))return;r=r.parentElement}this.props.onClickOutside()}})}componentDidMount(){let t=this.props.customEventTarget??document;t.addEventListener("touchend",this.clickOutside,!0),t.addEventListener("mousedown",this.clickOutside,!0),t.addEventListener("contextmenu",this.clickOutside,!0)}componentWillUnmount(){let t=this.props.customEventTarget??document;t.removeEventListener("touchend",this.clickOutside,!0),t.removeEventListener("mousedown",this.clickOutside,!0),t.removeEventListener("contextmenu",this.clickOutside,!0)}render(){let{onClickOutside:t,isOutsideClick:r,customEventTarget:n,...o}=this.props;return E.createElement("div",{...o,ref:this.wrapperRef},this.props.children)}};export{W as A,w as B,te as C,X as D,Y as E,V as F,de as G,F as H,z as I,ce as J,L as K,U as L,J as M,R as N,Q as O,G as P,S as R,qe as S,Z as T,N as U,_ as V,x as W,oe as _,st as a,Ke as b,rt as c,et as d,f,Xe as g,j as h,ot as i,q as j,K as k,Ve as l,ne as m,at as n,T as o,re as p,B as q,it as r,nt as s,lt as t,Ge as u,We as v,ee as w,Je as x,Qe as y,k as z};
@@ -1 +0,0 @@
1
- import{s as z}from"./chunk-LvLJmgfZ.js";import{t as J}from"./react-Bj1aDYRI.js";import{t as Q}from"./react-dom-CSu739Rf.js";import{_ as P,i as U,n as Z,t as ee,v as te,y as re}from"./click-outside-container-CagwJLiG.js";import{t as ie}from"./dist-DXfXSpct.js";var ae=Q(),r=z(J(),1),ne=()=>t=>t.targetX,oe=()=>t=>t.targetY,le=()=>t=>t.targetWidth,de=()=>t=>t.targetHeight,se=()=>t=>t.targetY+10,ue=()=>t=>Math.max(0,(t.targetHeight-28)/2);const ce=ie("div")({name:"DataGridOverlayEditorStyle",class:"gdg-d19meir1",propsAsIs:!1,vars:{"d19meir1-0":[oe(),"px"],"d19meir1-1":[ne(),"px"],"d19meir1-2":[le(),"px"],"d19meir1-3":[de(),"px"],"d19meir1-4":[se(),"px"],"d19meir1-5":[ue(),"px"]}});function ge(){let[t,n]=r.useState();return[t??void 0,n]}function me(){let[t,n]=ge(),[a,f]=r.useState(0),[v,b]=r.useState(!0);return r.useLayoutEffect(()=>{if(t===void 0||!("IntersectionObserver"in window))return;let o=new IntersectionObserver(l=>{l.length!==0&&b(l[0].isIntersecting)},{threshold:1});return o.observe(t),()=>o.disconnect()},[t]),r.useEffect(()=>{if(v||t===void 0)return;let o,l=()=>{let{right:k}=t.getBoundingClientRect();f(x=>Math.min(x+window.innerWidth-k-10,0)),o=requestAnimationFrame(l)};return o=requestAnimationFrame(l),()=>{o!==void 0&&cancelAnimationFrame(o)}},[t,v]),{ref:n,style:r.useMemo(()=>({transform:`translateX(${a}px)`}),[a])}}var ve=t=>{let{target:n,content:a,onFinishEditing:f,forceEditMode:v,initialValue:b,imageEditorOverride:o,markdownDivCreateNode:l,highlight:k,className:x,theme:C,id:V,cell:w,bloom:c,validateCell:d,getCellRenderer:M,provideEditor:p,isOutsideClick:W,customEventTarget:X}=t,[s,Y]=r.useState(v?a:void 0),O=r.useRef(s??a);O.current=s??a;let[h,N]=r.useState(()=>d===void 0?!0:!(P(a)&&(d==null?void 0:d(w,a,O.current))===!1)),g=r.useCallback((e,i)=>{f(h?e:void 0,i)},[h,f]),q=r.useCallback(e=>{if(d!==void 0&&e!==void 0&&P(e)){let i=d(w,e,O.current);i===!1?N(!1):(typeof i=="object"&&(e=i),N(!0))}Y(e)},[w,d]),y=r.useRef(!1),m=r.useRef(void 0),B=r.useCallback(()=>{g(s,[0,0]),y.current=!0},[s,g]),G=r.useCallback((e,i)=>{g(e,i??m.current??[0,0]),y.current=!0},[g]),_=r.useCallback(async e=>{let i=!1;e.key==="Escape"?(e.stopPropagation(),e.preventDefault(),m.current=[0,0]):e.key==="Enter"&&!e.shiftKey?(e.stopPropagation(),e.preventDefault(),m.current=[0,1],i=!0):e.key==="Tab"&&(e.stopPropagation(),e.preventDefault(),m.current=[e.shiftKey?-1:1,0],i=!0),window.setTimeout(()=>{!y.current&&m.current!==void 0&&(g(i?s:void 0,m.current),y.current=!0)},0)},[g,s]),D=s??a,[u,j]=r.useMemo(()=>{var i,K;if(te(a))return[];let e=p==null?void 0:p(a);return e===void 0?[(K=(i=M(a))==null?void 0:i.provideEditor)==null?void 0:K.call(i,a),!1]:[e,!1]},[a,M,p]),{ref:L,style:$}=me(),R=!0,F,I=!0,E;if(u!==void 0){R=u.disablePadding!==!0,I=u.disableStyling!==!0;let e=re(u);e&&(E=u.styleOverride);let i=e?u.editor:u;F=r.createElement(i,{isHighlighted:k,onChange:q,value:D,initialValue:b,onFinishedEditing:G,validatedSelection:P(D)?D.selectionRange:void 0,forceEditMode:v,target:n,imageEditorOverride:o,markdownDivCreateNode:l,isValid:h,theme:C})}E={...E,...$};let A=document.getElementById("portal");if(A===null)return console.error('Cannot open Data Grid overlay editor, because portal not found. Please add `<div id="portal" />` as the last child of your `<body>`.'),null;let S=I?"gdg-style":"gdg-unstyle";h||(S+=" gdg-invalid"),R&&(S+=" gdg-pad");let H=(c==null?void 0:c[0])??1,T=(c==null?void 0:c[1])??1;return(0,ae.createPortal)(r.createElement(Z.Provider,{value:C},r.createElement(ee,{style:U(C),className:x,onClickOutside:B,isOutsideClick:W,customEventTarget:X},r.createElement(ce,{ref:L,id:V,className:S,style:E,as:j===!0?"label":void 0,targetX:n.x-H,targetY:n.y-T,targetWidth:n.width+H*2,targetHeight:n.height+T*2},r.createElement("div",{className:"gdg-clip-region",onKeyDown:_},F)))),A)};export{ve as default};
@@ -1 +0,0 @@
1
- import{s as b}from"./chunk-LvLJmgfZ.js";import{t as v}from"./react-Bj1aDYRI.js";import{t as m}from"./emotion-is-prop-valid.esm-CK2zY6a8.js";var O=function(){let r=Array.prototype.slice.call(arguments).filter(Boolean),e={},a=[];r.forEach(s=>{(s?s.split(" "):[]).forEach(l=>{if(l.startsWith("atm_")){let[,o]=l.split("_");e[o]=l}else a.push(l)})});let t=[];for(let s in e)Object.prototype.hasOwnProperty.call(e,s)&&t.push(e[s]);return t.push(...a),t.join(" ")},f=b(v(),1),x=r=>r.toUpperCase()===r,R=r=>e=>r.indexOf(e)===-1,_=(r,e)=>{let a={};return Object.keys(r).filter(R(e)).forEach(t=>{a[t]=r[t]}),a};function g(r,e,a){let t=_(e,a);if(!r){let s=typeof m=="function"?{default:m}:m;Object.keys(t).forEach(l=>{s.default(l)||delete t[l]})}return t}function k(r){return e=>{let a=(s,l)=>{let{as:o=r,class:y=""}=s,n=g(e.propsAsIs===void 0?!(typeof o=="string"&&o.indexOf("-")===-1&&!x(o[0])):e.propsAsIs,s,["as","class"]);n.ref=l,n.className=e.atomic?O(e.class,n.className||y):O(n.className||y,e.class);let{vars:c}=e;if(c){let p={};for(let i in c){let E=c[i],u=E[0],j=E[1]||"",N=typeof u=="function"?u(s):u;e.name,p[`--${i}`]=`${N}${j}`}let d=n.style||{},h=Object.keys(d);h.length>0&&h.forEach(i=>{p[i]=d[i]}),n.style=p}return r.__linaria&&r!==o?(n.as=o,f.createElement(r,n)):f.createElement(o,n)},t=f.forwardRef?f.forwardRef(a):s=>a(_(s,["innerRef"]),s.innerRef);return t.displayName=e.name,t.__linaria={className:e.class||"",extends:r},t}}var w=k;export{w as t};