@sheetxl/grid-react 0.7.21 → 0.7.23-beta.1

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.
Files changed (172) hide show
  1. package/README.md +502 -2
  2. package/browser/cjs/index.cjs +3 -12
  3. package/browser/esm/index.mjs +5797 -1867
  4. package/licenses/dependencies.txt +143 -41
  5. package/node/esm/index.mjs +4951 -1861
  6. package/package.json +7 -6
  7. package/types/index.d.ts +2 -1497
  8. package/types/src/cell/CellLayer.d.ts +70 -0
  9. package/types/src/cell/CellLayer.d.ts.map +1 -0
  10. package/types/src/cell/CellRenderer.d.ts +42 -0
  11. package/types/src/cell/CellRenderer.d.ts.map +1 -0
  12. package/types/src/cell/DefaultCellRenderer.d.ts +6 -0
  13. package/types/src/cell/DefaultCellRenderer.d.ts.map +1 -0
  14. package/types/src/cell/GridlineLayer.d.ts +38 -0
  15. package/types/src/cell/GridlineLayer.d.ts.map +1 -0
  16. package/types/src/cell/Types.d.ts +12 -0
  17. package/types/src/cell/Types.d.ts.map +1 -0
  18. package/types/src/cell/_CellModel.d.ts +82 -0
  19. package/types/src/cell/_CellModel.d.ts.map +1 -0
  20. package/types/src/cell/index.d.ts +6 -0
  21. package/types/src/cell/index.d.ts.map +1 -0
  22. package/types/src/editor/DefaultEditable.d.ts +121 -0
  23. package/types/src/editor/DefaultEditable.d.ts.map +1 -0
  24. package/types/src/editor/EditSession.d.ts +182 -0
  25. package/types/src/editor/EditSession.d.ts.map +1 -0
  26. package/types/src/editor/EditState.d.ts +61 -0
  27. package/types/src/editor/EditState.d.ts.map +1 -0
  28. package/types/src/editor/EditorDiv.d.ts +65 -0
  29. package/types/src/editor/EditorDiv.d.ts.map +1 -0
  30. package/types/src/editor/EditorInput.d.ts +88 -0
  31. package/types/src/editor/EditorInput.d.ts.map +1 -0
  32. package/types/src/editor/EditorLayer.d.ts +69 -0
  33. package/types/src/editor/EditorLayer.d.ts.map +1 -0
  34. package/types/src/editor/EditorPlacement.d.ts +38 -0
  35. package/types/src/editor/EditorPlacement.d.ts.map +1 -0
  36. package/types/src/editor/index.d.ts +10 -0
  37. package/types/src/editor/index.d.ts.map +1 -0
  38. package/types/src/editor/useEditorKeymap.d.ts +74 -0
  39. package/types/src/editor/useEditorKeymap.d.ts.map +1 -0
  40. package/types/src/grid/Grid.d.ts +16 -0
  41. package/types/src/grid/Grid.d.ts.map +1 -0
  42. package/types/src/grid/IGrid.d.ts +93 -0
  43. package/types/src/grid/IGrid.d.ts.map +1 -0
  44. package/types/src/grid/index.d.ts +3 -0
  45. package/types/src/grid/index.d.ts.map +1 -0
  46. package/types/src/header/HeaderDividerAnchor.d.ts +120 -0
  47. package/types/src/header/HeaderDividerAnchor.d.ts.map +1 -0
  48. package/types/src/header/index.d.ts +3 -0
  49. package/types/src/header/index.d.ts.map +1 -0
  50. package/types/src/header/useHeaderSelectionPointer.d.ts +122 -0
  51. package/types/src/header/useHeaderSelectionPointer.d.ts.map +1 -0
  52. package/types/src/index.d.ts +13 -0
  53. package/types/src/index.d.ts.map +1 -0
  54. package/types/src/layer/HoverTipLayer.d.ts +74 -0
  55. package/types/src/layer/HoverTipLayer.d.ts.map +1 -0
  56. package/types/src/layer/Layer.d.ts +92 -0
  57. package/types/src/layer/Layer.d.ts.map +1 -0
  58. package/types/src/layer/LayerTypes.d.ts +47 -0
  59. package/types/src/layer/LayerTypes.d.ts.map +1 -0
  60. package/types/src/layer/RangePrompt.d.ts +42 -0
  61. package/types/src/layer/RangePrompt.d.ts.map +1 -0
  62. package/types/src/layer/Stage.d.ts +147 -0
  63. package/types/src/layer/Stage.d.ts.map +1 -0
  64. package/types/src/layer/StickyAnchor.d.ts +83 -0
  65. package/types/src/layer/StickyAnchor.d.ts.map +1 -0
  66. package/types/src/layer/StickyFloat.d.ts +65 -0
  67. package/types/src/layer/StickyFloat.d.ts.map +1 -0
  68. package/types/src/layer/VirtualDiv.d.ts +59 -0
  69. package/types/src/layer/VirtualDiv.d.ts.map +1 -0
  70. package/types/src/layer/_Utils.d.ts +37 -0
  71. package/types/src/layer/_Utils.d.ts.map +1 -0
  72. package/types/src/layer/index.d.ts +11 -0
  73. package/types/src/layer/index.d.ts.map +1 -0
  74. package/types/src/layer/useGridAnchor.d.ts +157 -0
  75. package/types/src/layer/useGridAnchor.d.ts.map +1 -0
  76. package/types/src/layer/useHoverIntent.d.ts +49 -0
  77. package/types/src/layer/useHoverIntent.d.ts.map +1 -0
  78. package/types/src/layer/useLayerResponder.d.ts +29 -0
  79. package/types/src/layer/useLayerResponder.d.ts.map +1 -0
  80. package/types/src/layer/usePlacement.d.ts +18 -0
  81. package/types/src/layer/usePlacement.d.ts.map +1 -0
  82. package/types/src/layer/useRangeHover.d.ts +35 -0
  83. package/types/src/layer/useRangeHover.d.ts.map +1 -0
  84. package/types/src/list/CheckboxList.d.ts +63 -0
  85. package/types/src/list/CheckboxList.d.ts.map +1 -0
  86. package/types/src/list/List.d.ts +55 -0
  87. package/types/src/list/List.d.ts.map +1 -0
  88. package/types/src/list/index.d.ts +3 -0
  89. package/types/src/list/index.d.ts.map +1 -0
  90. package/types/src/metrics/Types.d.ts +23 -0
  91. package/types/src/metrics/Types.d.ts.map +1 -0
  92. package/types/src/metrics/index.d.ts +3 -0
  93. package/types/src/metrics/index.d.ts.map +1 -0
  94. package/types/src/metrics/useGridMetrics.d.ts +67 -0
  95. package/types/src/metrics/useGridMetrics.d.ts.map +1 -0
  96. package/types/src/range/DragHandle.d.ts +129 -0
  97. package/types/src/range/DragHandle.d.ts.map +1 -0
  98. package/types/src/range/Draggable.d.ts +86 -0
  99. package/types/src/range/Draggable.d.ts.map +1 -0
  100. package/types/src/range/FillHandle.d.ts +54 -0
  101. package/types/src/range/FillHandle.d.ts.map +1 -0
  102. package/types/src/range/RangeRect.d.ts +36 -0
  103. package/types/src/range/RangeRect.d.ts.map +1 -0
  104. package/types/src/range/RangeResizer.d.ts +68 -0
  105. package/types/src/range/RangeResizer.d.ts.map +1 -0
  106. package/types/src/range/RangeStyle.d.ts +8 -0
  107. package/types/src/range/RangeStyle.d.ts.map +1 -0
  108. package/types/src/range/index.d.ts +13 -0
  109. package/types/src/range/index.d.ts.map +1 -0
  110. package/types/src/selection/DefaultSelection.d.ts +59 -0
  111. package/types/src/selection/DefaultSelection.d.ts.map +1 -0
  112. package/types/src/selection/ICellAnchor.d.ts +21 -0
  113. package/types/src/selection/ICellAnchor.d.ts.map +1 -0
  114. package/types/src/selection/ISelection.d.ts +65 -0
  115. package/types/src/selection/ISelection.d.ts.map +1 -0
  116. package/types/src/selection/RangesPickerLayer.d.ts +128 -0
  117. package/types/src/selection/RangesPickerLayer.d.ts.map +1 -0
  118. package/types/src/selection/SelectionLayer.d.ts +179 -0
  119. package/types/src/selection/SelectionLayer.d.ts.map +1 -0
  120. package/types/src/selection/SelectionStyle.d.ts +28 -0
  121. package/types/src/selection/SelectionStyle.d.ts.map +1 -0
  122. package/types/src/selection/SelectionTouchGrips.d.ts +29 -0
  123. package/types/src/selection/SelectionTouchGrips.d.ts.map +1 -0
  124. package/types/src/selection/SelectionUtils.d.ts +2 -0
  125. package/types/src/selection/SelectionUtils.d.ts.map +1 -0
  126. package/types/src/selection/Types.d.ts +67 -0
  127. package/types/src/selection/Types.d.ts.map +1 -0
  128. package/types/src/selection/_SelectionNavigation.d.ts +6 -0
  129. package/types/src/selection/_SelectionNavigation.d.ts.map +1 -0
  130. package/types/src/selection/_SelectionUtils.d.ts +7 -0
  131. package/types/src/selection/_SelectionUtils.d.ts.map +1 -0
  132. package/types/src/selection/index.d.ts +12 -0
  133. package/types/src/selection/index.d.ts.map +1 -0
  134. package/types/src/selection/useDragCells.d.ts +218 -0
  135. package/types/src/selection/useDragCells.d.ts.map +1 -0
  136. package/types/src/selection/useSelectionPointer.d.ts +70 -0
  137. package/types/src/selection/useSelectionPointer.d.ts.map +1 -0
  138. package/types/src/surface/GridPane.d.ts +85 -0
  139. package/types/src/surface/GridPane.d.ts.map +1 -0
  140. package/types/src/surface/GridPaneProvider.d.ts +37 -0
  141. package/types/src/surface/GridPaneProvider.d.ts.map +1 -0
  142. package/types/src/surface/GridSurface.d.ts +11 -0
  143. package/types/src/surface/GridSurface.d.ts.map +1 -0
  144. package/types/src/surface/IGridPane.d.ts +288 -0
  145. package/types/src/surface/IGridPane.d.ts.map +1 -0
  146. package/types/src/surface/IGridSurface.d.ts +141 -0
  147. package/types/src/surface/IGridSurface.d.ts.map +1 -0
  148. package/types/src/surface/SurfaceStateProvider.d.ts +50 -0
  149. package/types/src/surface/SurfaceStateProvider.d.ts.map +1 -0
  150. package/types/src/surface/_GridUtils.d.ts +37 -0
  151. package/types/src/surface/_GridUtils.d.ts.map +1 -0
  152. package/types/src/surface/index.d.ts +7 -0
  153. package/types/src/surface/index.d.ts.map +1 -0
  154. package/types/src/surface/useGridPane.d.ts +31 -0
  155. package/types/src/surface/useGridPane.d.ts.map +1 -0
  156. package/types/src/surface/useSurfaceState.d.ts +22 -0
  157. package/types/src/surface/useSurfaceState.d.ts.map +1 -0
  158. package/types/src/svg/LineSVG.d.ts +13 -0
  159. package/types/src/svg/LineSVG.d.ts.map +1 -0
  160. package/types/src/svg/RectangleSVG.d.ts +114 -0
  161. package/types/src/svg/RectangleSVG.d.ts.map +1 -0
  162. package/types/src/svg/ShapeBounds.d.ts +15 -0
  163. package/types/src/svg/ShapeBounds.d.ts.map +1 -0
  164. package/types/src/svg/Types.d.ts +37 -0
  165. package/types/src/svg/Types.d.ts.map +1 -0
  166. package/types/src/svg/index.d.ts +9 -0
  167. package/types/src/svg/index.d.ts.map +1 -0
  168. package/types/src/theme/GridTheme.d.ts +56 -0
  169. package/types/src/theme/GridTheme.d.ts.map +1 -0
  170. package/types/src/theme/index.d.ts +2 -0
  171. package/types/src/theme/index.d.ts.map +1 -0
  172. package/node/assets/style.css +0 -1
@@ -1,12 +1,3 @@
1
- (function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode("._sheetxl-grid_h9wwa_7{position:relative;box-sizing:border-box;user-select:none}._sheetxl-grid_h9wwa_7 *{box-sizing:border-box!important}._sheetxl-grid_h9wwa_7 *:focus{outline:none}._sheetxl-grid_h9wwa_7 .cell-container{position:absolute;overflow:visible;white-space:pre}._sheetxl-grid_h9wwa_7 .cell-container>*{inset:0;position:absolute}._sheetxl-grid_h9wwa_7 .sheetxl-stage{contain:strict}._sheetxl-grid_h9wwa_7 .sheetxl-stage>*{contain:strict}")),document.head.appendChild(e)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})();
2
- "use strict";/**
3
- * @license @sheetxl/grid-react - Grid React - Advanced grid component for React - v0.7.21
4
- *
5
- * (C) 2025-present SheetXL Inc. & Michael T. Ford
6
- * License: The license can be found at https://www.sheetxl.com/license.
7
- */Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Q=require("react/jsx-runtime"),n=require("@sheetxl/utils-react"),l=require("react"),o=require("@sheetxl/utils"),Jn=require("react-dom"),Yt=({itemType:t,index:r,itemSize:i,instanceProps:c,scale:u=1})=>{let f,a,s;t==="column"?(f=c.columnMetadataMap,a=c.lastMeasuredColumnIndex,s=c.recalcColumnIndices):(f=c.rowMetadataMap,a=c.lastMeasuredRowIndex,s=c.recalcRowIndices);const p=s.length>0;if(r>a){let O=0;if(a>=0){const P=f[a];O=P.offset+P.size}for(let P=a+1;P<=r;P++){let M=p?s.includes(P)?i(P)*u:f[P]?.size||i(P)*u:i(P)*u;f[P]={offset:O,size:M},O+=M}t==="column"?c.lastMeasuredColumnIndex=r:c.lastMeasuredRowIndex=r}return f[r],f[r]},Bn=({itemType:t,itemSize:r,itemCount:i,instanceProps:c,offset:u,scale:f})=>{let a,s;t==="column"?(a=c.columnMetadataMap,s=c.lastMeasuredColumnIndex):(a=c.rowMetadataMap,s=c.lastMeasuredRowIndex);let p=0;return p=(s>0?a[s].offset:0)>=u?Qn({itemType:t,itemSize:r,instanceProps:c,high:s,low:0,offset:u,scale:f}):wo({itemType:t,itemSize:r,itemCount:i,instanceProps:c,index:Math.max(0,s),offset:u,scale:f}),p=Math.min(p,i),p},Qn=({itemType:t,itemSize:r,instanceProps:i,high:c,low:u,offset:f,scale:a})=>{for(;u<=c;){const s=u+Math.floor((c-u)/2),p=Yt({itemType:t,itemSize:r,index:s,instanceProps:i,scale:a}).offset;if(p===f)return s;p<f?u=s+1:p>f&&(c=s-1)}return u>0?u-1:0},wo=({itemType:t,itemSize:r,itemCount:i,instanceProps:c,index:u,offset:f,scale:a})=>{let s=1;for(;u<i&&Yt({itemType:t,itemSize:r,index:u,instanceProps:c,scale:a}).offset<f;)u+=s,s*=2;return Qn({itemType:t,itemSize:r,instanceProps:c,high:Math.min(u,i-1),low:Math.floor(u/2),offset:f,scale:a})},eo=t=>{const{rowCount:r,columnCount:i,defaultRowHeight:c,getRowHeight:u,defaultColumnWidth:f,getColumnWidth:a}=t||{},s=l.useRef({columnMetadataMap:{},rowMetadataMap:{},lastMeasuredColumnIndex:-1,lastMeasuredRowIndex:-1,recalcColumnIndices:[],recalcRowIndices:[]}),p=n.useCallbackRef(k=>Bn({itemType:"row",itemCount:r,itemSize:u??(()=>c??20),instanceProps:s.current,offset:k}),[r,u,c]),O=n.useCallbackRef(k=>k===-1?0:Yt({itemType:"row",index:k,itemSize:u??(()=>c??20),instanceProps:s.current}).offset,[u,c]),P=n.useCallbackRef(k=>Yt({itemType:"row",index:k,itemSize:u??(()=>c??20),instanceProps:s.current}).size,[u,c]),M=n.useCallbackRef(k=>Bn({itemType:"column",itemCount:i,itemSize:a??(()=>f??75),instanceProps:s.current,offset:k}),[i,a,f]),U=n.useCallbackRef(k=>k===-1?0:Yt({itemType:"column",index:k,itemSize:a??(()=>f??75),instanceProps:s.current}).offset,[a,f]),K=n.useCallbackRef(k=>Yt({itemType:"column",index:k,itemSize:a??(()=>f??75),instanceProps:s.current}).size,[a,f]),[ee,Z]=l.useReducer(k=>k+1,0),_=()=>({getRowOffset:O,getColOffset:U,getRowIndex:p,getColIndex:M}),[Me,re]=l.useState(()=>t?_():null);return l.useEffect(()=>{re(t?_():null)},[ee,r,i,f,c,P,K]),Me},On="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ~`!@#$%^&*()-_=+[{]};:'\",<.>/?|\\",Fn=t=>{if(!t)return null;if(t.eventType==="start")return{type:t.eventType};if(t.eventType==="submit")return{type:t.eventType};if(t.eventType==="cancel")return{type:t.eventType};if(t.eventType==="keyboard")return{type:t.eventType,key:t.event.key};if(t.eventType==="pointer")return{type:t.eventType};if(t.eventType==="coordsChange"){const r={type:t.eventType};return t.activeCoords&&(r.activeCoords=t.activeCoords),r}return{type:t.eventType??"unknown"}},xo=t=>!0,po=t=>!!t&&!(t.ctrlKey||t.metaKey||t.altKey||t.isComposing)&&(!(t.shiftKey||t.key!=="F2"&&t.key!==" "&&t.key!=="Backspace")||(!t.shiftKey||t.key!==" ")&&On.indexOf(t.key)!==-1),mo=t=>!!t&&t.type==="dblclick"&&{editMode:!0},Co=t=>{const{session:r,refLatestCoords:i,handleSubmitEdit:c,handleCancelEdit:u,cellBounds:f,isInBounds:a,getCellEditor:s,propsEditor:p,borderStrokeFill:O="rgb(33, 115, 70)",borderStrokeWidth:P=2,alignment:M=n.HorizontalAlignment.Left,style:U,...K}=t,ee=l.useRef(null),Z=l.useRef(null),[_,Me]=l.useState(!1),re=r.coords,k=l.useCallback(async se=>{if(ee.current?.getBoundingClientRect()){if(se.eventType==="keyboard"){const A=se.event,C=new KeyboardEvent(A.type,{bubbles:!0,cancelable:!0,view:window,key:A.key,code:A.code,location:A.location,repeat:A.repeat,isComposing:A.isComposing,charCode:A.charCode,keyCode:A.keyCode,which:A.which,ctrlKey:A.ctrlKey,shiftKey:A.shiftKey,altKey:A.altKey,metaKey:A.metaKey});C.isSynthetic=!0,C.key,Z.current?.dispatchEvent(C)}else se.eventType==="pointer"||console.warn("unsupported event type",se);await new Promise(A=>requestAnimationFrame(A))}},[]);l.useEffect(()=>{const se=Z.current;return Me(!0),Z.current.startEdit?.(r.startEvent),(async()=>{r.editorRefs.push(se),r.editorRefsDispatchEditorEvent.push(k);const we=[...r.events];for(let A=0;A<we.length;A++)await k(we[A]);r.onMount(se)})(),()=>{const we=r.editorRefs.indexOf(se);we!==-1&&r.editorRefs.splice(we,1),r.onUnmount(se)}},[]);const X=l.useCallback(()=>c(r),[]),ge=l.useCallback(()=>{u(r)},[]),F=i.current&&o.CoordUtils.isEqualCells(i.current,re),fe=a&&F&&_,Le=s({autoFocus:!!r.startEvent?.autoFocus,...p,onSubmitEdit:X,onCancelEdit:ge,ref:Z},re),be=f.x+n.ReactUtils.boundPixel(-P/2),ze=n.ReactUtils.boundPixel(f.width+P/2,!0);return Q.jsx("div",{tabIndex:0,ref:ee,style:{background:void 0,...U,opacity:fe?U?.opacity??1:0,pointerEvents:"auto",position:"absolute",boxSizing:"border-box",top:`${f.y+n.ReactUtils.boundPixel(-P/2)}px`,height:n.ReactUtils.boundPixel(f.height+P/2,!0),left:`${be}px`,width:ze},...K,children:Q.jsx("div",{className:"editor-container",style:{position:"absolute",boxSizing:"border-box",left:`${n.ReactUtils.boundPixel(1)}px`,top:`${n.ReactUtils.boundPixel(1)}px`,width:n.ReactUtils.boundPixel(f.width-2,!0),height:n.ReactUtils.boundPixel(f.height-2,!0),outline:`${P}px ${O} solid`,boxShadow:"rgba(60,64,67,.35) 2px 2px 6px 3px",maxHeight:"100%",overflow:"hidden",display:"flex"},children:Le})})},So=Object.freeze({once:!0}),Oe=(t,r,i)=>{if(!t)return r;let c=r;const u=i===o.Direction.Right||i===o.Direction.Down;for(;;){const f=t(c,!u);if(f===0)return c;u?c+=f:c-=f}},un=(t,r,i)=>{const c=[];let u=r;for(;u<=i;){const f=Math.max(0,t(u));f===0?(c.push(u),u++):u+=f}return c},bo=(t,r,i,c,u,f)=>{if(!r)return f;let{rowIndex:a,colIndex:s}=t;switch(c){case o.Direction.Down:{a=Oe(i,Math.min(a+1,f),c);let p=r({rowIndex:a,colIndex:s});for(;!p&&a<f;)a=Oe(i,Math.min(++a,f),c),p=r({rowIndex:a,colIndex:s});return a}case o.Direction.Up:{a=Oe(i,Math.max(a-1,f),c);let p=r({rowIndex:a,colIndex:s});for(;!p&&a>f;)a=Oe(i,Math.max(--a,f),c),p=r({rowIndex:a,colIndex:s});return a}case o.Direction.Right:{s=Oe(i,Math.min(s+1,f),c);let p=r({rowIndex:a,colIndex:s});for(;!p&&s<f;)s=Oe(i,Math.min(++s,f),c),p=r({rowIndex:a,colIndex:s});return s}case o.Direction.Left:{s=Oe(i,Math.max(s-1,f),c);let p=r({rowIndex:a,colIndex:s});for(;!p&&s>f;)s=Oe(i,Math.max(--s,f),c),p=r({rowIndex:a,colIndex:s});return s}default:return f}},vo=(t,r=()=>!0,i,c,u,f)=>{let{rowIndex:a,colIndex:s}=t;switch(c){case o.Direction.Down:{a=Oe(i,Math.min(a+1,f),c);let p=r?.({rowIndex:a,colIndex:s});for(;p&&a<f;)a=Oe(i,Math.min(++a,f),c),p=r?.({rowIndex:a,colIndex:s});return r?.({rowIndex:a,colIndex:s})?a:a-1}case o.Direction.Up:{a=Oe(i,Math.max(a-1,f),c);let p=r?.({rowIndex:a,colIndex:s});for(;p&&a>f;)a=Oe(i,Math.max(--a,f),c),p=r?.({rowIndex:a,colIndex:s});return r?.({rowIndex:a,colIndex:s})?a:a+1}case o.Direction.Right:{s=Oe(i,Math.min(s+1,f),c);let p=r?.({rowIndex:a,colIndex:s});for(;p&&s<f;)s=Oe(i,Math.min(++s,f),c),p=r?.({rowIndex:a,colIndex:s});return r?.({rowIndex:a,colIndex:s})?s:s-1}case o.Direction.Left:{s=Oe(i,Math.max(s-1,f),c);let p=r?.({rowIndex:a,colIndex:s});for(;p&&s>f;)s=Oe(i,Math.max(--s,f),c),p=r?.({rowIndex:a,colIndex:s});return r?.({rowIndex:a,colIndex:s})?s:s+1}default:return null}},yo=(t,r,i,c,u,f)=>{if(!r)return f;let a,{rowIndex:s,colIndex:p}=t;c===o.Direction.Down?a={rowIndex:s+1,colIndex:p}:c===o.Direction.Up?a={rowIndex:s-1,colIndex:p}:c===o.Direction.Right?a={rowIndex:s,colIndex:p+1}:c===o.Direction.Left&&(a={rowIndex:s,colIndex:p-1});const O=r(t),P=r(a);var M,U;return(U=P,!(M=O)&&!U||!M&&U||M&&!U?bo:vo)(t,r,i,c,!1,f)??f},Vn=(t,r)=>`${t}:${r}`,Wn=(t,r,i,c,u,f)=>{if(i-r>=u-c)return c;let a=c;return t==="nearest"&&(c-r>0?t="start":i-u>0&&(t="end")),t==="start"?a=r:t==="end"?a=i-(u-c):t==="center"&&(a=r+(i-r)/2-(u-c)/2),a<c?Math.max(0,a):a>c?Math.min(a,f-(u-c)):void 0},jn=(t,r,i,c)=>(console.log("todo: implement convertToVisibleRanges"),t),Dn=(t,r=o.Direction.Right,i,c,u,f=null)=>{if(f&&o.CoordUtils.isEqualSelectionCoords(f,t))return t;const a=t.ranges[t.rangeIndex];if(!o.CoordUtils.isRangesIntersect({rowStart:t.cell.rowIndex,colStart:t.cell.colIndex,rowEnd:t.cell.rowIndex,colEnd:t.cell.colIndex},a))return t;let s={...t.cell},p=t.rangeIndex;switch(r){case o.Direction.Right:s.colIndex=Oe(u,s.colIndex+1,r);break;case o.Direction.Left:s.colIndex=Oe(u,s.colIndex-1,r);break;case o.Direction.Down:s.rowIndex=Oe(c,s.rowIndex+1,r);break;case o.Direction.Up:s.rowIndex=Oe(c,s.rowIndex-1,r)}const O=U=>{if(U){p=t.rangeIndex>=t.ranges.length-1?0:t.rangeIndex+1;const K=t.ranges[p];s={colIndex:K.colStart,rowIndex:K.rowStart}}else{p=t.rangeIndex<=0?t.ranges.length-1:t.rangeIndex-1;const K=t.ranges[p];s={colIndex:K.colEnd,rowIndex:K.rowEnd}}};if(r===o.Direction.Right&&s.colIndex>a.colEnd&&s.rowIndex===a.rowEnd)O(!0);else if(r===o.Direction.Left&&s.colIndex<a.colStart&&s.rowIndex===a.rowStart)O(!1);else if(r===o.Direction.Down&&s.colIndex===a.colEnd&&s.rowIndex>a.rowEnd)O(!0);else if(r===o.Direction.Up&&s.colIndex===a.colStart&&s.rowIndex<a.rowStart)O(!1);else{let U=s.rowIndex,K=s.colIndex;switch(r){case o.Direction.Right:K>a.colEnd&&(U=Oe(c,U+1,r),K=a.colStart,U>a.rowEnd&&(U=a.rowStart));break;case o.Direction.Left:K<a.colStart&&(U=Oe(c,U-1,r),K=a.colEnd,U<a.rowStart&&(U=a.rowEnd));break;case o.Direction.Down:U>a.rowEnd&&(K=Oe(u,K+1,r),U=a.rowStart,K>a.colEnd&&(K=a.colStart));break;case o.Direction.Up:U<a.rowStart&&(K=Oe(u,K-1,r),U=a.rowEnd,K<a.colStart&&(K=a.colEnd))}s={rowIndex:U,colIndex:K}}let P=i(s);if(!o.CoordUtils.isRangeWithinRange(P,a)){const U=o.CoordUtils.intersectRanges(P,a);U&&(P=U)}let M={rowStart:Oe(c,P.rowStart,o.Direction.Down),colStart:Oe(u,P.colStart,o.Direction.Right),rowEnd:Oe(c,P.rowEnd,o.Direction.Up),colEnd:Oe(u,P.colEnd,o.Direction.Left)};if(M.rowStart!==s.rowIndex||M.colStart!==s.colIndex){switch(r){case o.Direction.Right:t.ranges[p].colStart===M.colStart&&t.ranges[p].colEnd===M.colEnd&&(s.rowIndex=M.rowEnd),s.colIndex=M.colEnd;break;case o.Direction.Left:t.ranges[p].colStart===M.colStart&&t.ranges[p].colEnd===M.colEnd&&(s.rowIndex=M.rowStart),s.rowIndex===M.rowStart?s.colIndex=M.colStart+1:s.colIndex=M.colStart;break;case o.Direction.Down:t.ranges[p].rowStart===M.rowStart&&t.ranges[p].rowEnd===M.rowEnd&&(s.colIndex=M.colEnd),s.rowIndex=M.rowEnd;break;case o.Direction.Up:t.ranges[p].rowStart===M.rowStart&&t.ranges[p].rowEnd===M.rowEnd&&(s.colIndex=M.colStart),s.colIndex===M.colStart?s.rowIndex=M.rowStart+1:s.rowIndex=M.rowStart}return Dn({cell:s,ranges:t.ranges,rangeIndex:p},r,i,c,u,f??t)}return{ranges:t.ranges,cell:s,rangeIndex:p}},Hn=(t,r)=>{let i,c=0,u=0;return r.colStart<t.colStart?(i=o.Direction.Left,c=t.colStart-r.colStart,u=r.colStart):r.colEnd>t.colEnd?(i=o.Direction.Right,c=r.colEnd-t.colEnd,u=r.colEnd):r.rowStart<t.rowStart?(i=o.Direction.Up,c=t.rowStart-r.rowStart,u=r.rowStart):r.rowEnd>t.rowEnd&&(i=o.Direction.Down,c=r.rowEnd-t.rowEnd,u=r.rowEnd),{direction:i,amount:c,index:u}},wn=(t,r=!1,i,c)=>{if(!i)return 0;const u=!r,f=u?1:-1;let a=i(u?t:t+1),s=i(u?t+1:t),p=t+(u?2:-1),O=0;for(;(s-a)*f<=0;){if(u&&p-1>c+1||!u&&p+1<c)return O;a=s,s=i(p),p+=f,O++}return O},Nn=(t,r,i,c,u)=>{const f={};let a=null,s=null;const p=i.length;for(let O=0;O<p&&i[O]<=u;O++){const P=i[O];if(P<c)continue;const M=a===P?s:r?t.getColOffset(P):t.getRowOffset(P),U=r?t.getColOffset(P+1):t.getRowOffset(P+1);a=P+1,s=U,f[P]=Object.freeze({offset:M,size:U-M,spanIndex:O})}return Object.freeze(f)},qn=(t,r,i)=>{const c=t.getColOffset(r.colStart)+(i?.left??0),u=t.getRowOffset(r.rowStart)+(i?.top??0);return{x:c,y:u,width:t.getColOffset(r.colEnd+1)+(i?.right??0)-(i?.left??0)-c,height:t.getRowOffset(r.rowEnd+1)+(i?.bottom??0)-(i?.top??0)-u}},Ro=(t,r,i)=>{if(!i)return!1;const c=i.x;if(t<c||t>c+i.width)return!1;const u=i.y;return!(r<u||r>u+i.height)},In=(t,r=!0)=>`M ${n.ReactUtils.boundPixel(t.left)} ${n.ReactUtils.boundPixel(t.top)} L ${n.ReactUtils.boundPixel(t.right,!0)} ${n.ReactUtils.boundPixel(t.top)} L ${n.ReactUtils.boundPixel(t.right,!0)} ${n.ReactUtils.boundPixel(t.bottom,!0)} L ${n.ReactUtils.boundPixel(t.left)} ${n.ReactUtils.boundPixel(t.bottom,!0)} L ${n.ReactUtils.boundPixel(t.left)} ${n.ReactUtils.boundPixel(t.top)} ${r?"Z":""}`,Pn=t=>{const{linePoints:r,bounds:i,propsPath:c,style:u,...f}=t;return Q.jsx("svg",{width:`${n.ReactUtils.boundPixel(i.width,!0)}`,height:`${n.ReactUtils.boundPixel(i.height,!0)}`,viewBox:`0 0 ${n.ReactUtils.boundPixel(i.width,!0)} ${n.ReactUtils.boundPixel(i.height,!0)}`,style:{position:"absolute",left:`${n.ReactUtils.boundPixel(i.x)}px`,top:`${n.ReactUtils.boundPixel(i.y)}px`,width:`${n.ReactUtils.boundPixel(i.width,!0)}px`,height:`${n.ReactUtils.boundPixel(i.height,!0)}px`,pointerEvents:"none",transitionTimingFunction:"linear",transitionDelay:"0",transitionProperty:"left, top, width, height",willChange:"left, top, width, height, stroke-dashoffset",...u},...f,children:Q.jsx("path",{d:`M ${n.ReactUtils.boundPixel(r[0])} ${n.ReactUtils.boundPixel(r[1])} L ${n.ReactUtils.boundPixel(r[2])} ${n.ReactUtils.boundPixel(r[3])}`,fill:"none",vectorEffect:"non-scaling-stroke",stroke:"black",...c})})},to=t=>{const{x:r=0,y:i=0,width:c=0,height:u=0,fill:f,stroke:a,strokeWidth:s=0,strokeDasharray:p,strokeDashoffset:O,clipPath:P,boundsPath:M,propsPath:U,style:K,...ee}=t,Z=i,_=r,Me=c,re=u;let k=null;if(f){let X=In({top:0,left:0,bottom:re,right:Me});M&&(X=X+" "+In({top:M.y-Z,left:M.x-_,bottom:M.height+M.y-Z,right:M.width+M.x-_})),k=[Q.jsx("path",{d:X,fill:f,stroke:"none",fillRule:"evenodd"},"fill")]}return Q.jsxs("svg",{width:`${n.ReactUtils.boundPixel(c,!0)}`,height:`${n.ReactUtils.boundPixel(u,!0)}`,viewBox:`0 0 ${n.ReactUtils.boundPixel(c,!0)} ${n.ReactUtils.boundPixel(u,!0)}`,preserveAspectRatio:"none",style:{position:"absolute",left:`${n.ReactUtils.boundPixel(r)}px`,top:`${n.ReactUtils.boundPixel(i)}px`,pointerEvents:"none",transitionDuration:"0ms",transitionTimingFunction:"linear",transitionDelay:"0",transitionProperty:"left, top, width, height",willChange:"left, top, width, height, stroke-dashoffset",boxShadow:"rgb(60 64 67 / 5%) 0px 1px 4px 2px, rgb(255 255 255 / 15%) 0px 0px 2px 1px",overflow:"visible",...K},...ee,children:[k,Q.jsx("path",{d:In({top:0,left:0,right:Me,bottom:re}),fill:"none",strokeDasharray:p,strokeDashoffset:O,stroke:a,vectorEffect:"non-scaling-stroke",strokeWidth:s,...U})]})},Yn=t=>{const{key:r,...i}=t;return Q.jsx(Ln,{...i},r)},Ln=l.memo(t=>{const{stroke:r,fill:i,x:c=0,y:u=0,width:f=0,height:a=0,style:s,isAnimatedStroke:p,propsAnimatedStroke:O,range:P,cell:M,...U}=t,K=p||!!O,ee={name:"walking-offset",dashGap:2,speed:50,dashLength:8,...O};let Z=ee.dashGap+ee.dashLength;const _=ee.speed*Z,Me=n.useId().replaceAll(":",""),re=`${ee.name}-${Me}`;let k;return l.useEffect(()=>{if(!K)return;const X=`@keyframes ${re} {
8
- to {
9
- stroke-dashoffset: 0px;
10
- }
11
- }`,ge=document.createElement("style");return ge.appendChild(document.createTextNode(X)),document.head.appendChild(ge),ge.sheet.insertRule(X,0),()=>{document.head.removeChild(ge)}},[K]),K&&(k={strokeDasharray:`${ee.dashLength}px ${ee.dashGap}px`,strokeDashoffset:`${Z}px`,animation:`${re} ${_}ms linear infinite`,willChange:"stroke-dashoffset"}),Q.jsx(to,{x:c,y:u,width:f,height:a,stroke:r,fill:i,shapeRendering:"crispEdges",style:{...k,...s},...U})});function no(t){var r,i,c="";if(typeof t=="string"||typeof t=="number")c+=t;else if(typeof t=="object")if(Array.isArray(t)){var u=t.length;for(r=0;r<u;r++)t[r]&&(i=no(t[r]))&&(c&&(c+=" "),c+=i)}else for(i in t)t[i]&&(c&&(c+=" "),c+=i);return c}function Wt(){for(var t,r,i=0,c="",u=arguments.length;i<u;i++)(t=arguments[i])&&(r=no(t))&&(c&&(c+=" "),c+=r);return c}Ln.displayName="Selection";const Un=l.memo(l.forwardRef((t,r)=>{const{x:i=0,y:c=0,borderWidth:u=1,size:f=6,borderStroke:a,corner:s,style:p,className:O,background:P,ref:M,...U}=t;if(i===0||c===0)return null;let K=!0,ee=!0,Z=!0,_=!0;switch(s){case"tl":K=!1,ee=!1;break;case"bl":K=!1,_=!1;break;case"br":Z=!1,_=!1;break;case"tr":ee=!1,Z=!1}return Q.jsx("div",{className:Wt("fill-handle",O),style:{position:"absolute",left:i-(f+(K?u:0))/2,top:c-(f+(ee?u:0))/2,width:f,height:f,borderLeft:K?`${u}px ${a}`:void 0,borderTop:ee?`${u}px ${a}`:void 0,borderRight:Z?`${u}px ${a}`:void 0,borderBottom:_?`${u}px ${a}`:void 0,background:P,cursor:"crosshair",pointerEvents:"all",transitionDuration:"0ms",transitionTimingFunction:"linear",transitionDelay:"0",transitionProperty:"left, top",willChange:"left, top",...p},tabIndex:-1,...U})}));function kn(t,r){if(typeof t=="function")return t(r);t&&(t.current=r)}Un.displayName="FillHandle";var oo=parseInt(l.version.split(".")[0],10)>=19?function(t){return r=>{const i=[];for(const c of t){const u=kn(c,r),f=typeof u=="function";i.push(f?u:()=>kn(c,null))}return()=>{for(const c of i)c()}}}:function(t){return r=>{for(const i of t)kn(i,r)}};const Eo=n.ReactUtils.detectIt().supportsTouchEvents,fn=l.memo(l.forwardRef((t,r)=>{const{range:i,view:c,anchor:u,borderStroke:f="var(--sxl-app-color-primary, rgb(33, 115, 70))",background:a="var(--sxl-app-color-background, white)",borderWidth:s=3,size:p=22,style:O,className:P,selectionTouchPointerHandler:M,onTouchSelectStart:U,onTouchSelectEnd:K,currentTouchAnchor:ee,scrollableElement:Z,scrollableRoot:_,...Me}=t;if(!Eo)return null;const re=n.useCallbackRef(U,[U]),k=n.useCallbackRef(K,[K]),{bounds:X,coordsPivot:ge,key:F}=l.useMemo(()=>{if(!i||!c)return null;let xe=null,q=null;switch(u){case"tl":xe={colIndex:i.colEnd,rowIndex:i.rowEnd},q={colIndex:i.colStart,rowIndex:i.rowStart};break;case"br":xe={colIndex:i.colStart,rowIndex:i.rowStart},q={colIndex:i.colEnd,rowIndex:i.rowEnd};break;case"t":case"l":xe={colIndex:i.colEnd,rowIndex:i.rowEnd};break;case"b":xe={colIndex:i.colStart,rowIndex:i.rowStart};break;case"r":xe={colIndex:i.colStart,rowIndex:i.rowEnd}}let T=c.getRangeCoordsBounds(q?{rowStart:q.rowIndex,colStart:q.colIndex,rowEnd:q.rowIndex,colEnd:q.colIndex}:i);const H=c.getBounds(),St=c.getViewportSize(),xt=H.x,ct=H.y,rt=St.width,ae=St.height;switch(u){case"tl":break;case"br":T.x=T.x+T.width,T.y=T.y+T.height;break;case"t":T.x=rt/2-xt;break;case"b":T.x=rt/2-xt,T.y=T.y+T.height;break;case"l":T.y=ae/2-ct;break;case"r":T.x=T.x+T.width,T.y=ae/2-ct}const Pt=c.toClipBounds(T,0);return!Pt||Pt.width<=0||Pt.height<=0||T.x<0||T.y<0||T.x>rt||T.y>ae?{bounds:null,coordsAnchor:null,coordsPivot:null,key:null}:{bounds:T,coordsAnchor:null,coordsPivot:xe,key:"touchSelect-"+c.getAnchor()+"-"+u}},[i,c,u]),fe=l.useRef(null),Le=l.useMemo(()=>{const xe=q=>u==="t"||u==="b"?{...q,colIndex:void 0}:u==="l"||u==="r"?{...q,rowIndex:void 0}:q;return{processTouch:!0,consumeTouch:!0,onPointerDown:(q,T)=>{const H=xe(c.getCellCoordsFromClient(q.clientX,q.clientY));return fe.current={coordsPivot:ge},re?.(u),M.onSelectionPointerDown(q,T,c,H,ge,!1,!0)},onPointerMoveOrWait:(q,T,H)=>{const St=xe(c.getCellCoordsFromClient(q.clientX,q.clientY));return M.onSelectionPointerMoveOrWait(q,T,H,c,St,fe.current?.coordsPivot,!0,!0)},onPointerUp:(q,T,H)=>(fe.current=null,k?.(u),M.onPointerUp(q,T,H))}},[M,i,c,u]),be=n.useSynchronizedPointerHandler(Le),[ze,{y:se,x:we}]=n.useAnimatedMeasure(),A=l.useRef(null),{getPortalContainer:C,isFullscreen:$e}=n.useFullscreenPortal(),[We,G]=l.useState(null);return l.useEffect(()=>{const xe=A.current?.getBoundingClientRect();if(!xe||!X)return void G(null);let q=0,T=0,H=Z;for(;H;)q+=H.scrollLeft,T+=H.scrollTop,H=_&&H===_.parentElement?null:H.parentElement;G(Jn.createPortal(Q.jsx("div",{className:Wt("touch-select-handle",P),ref:r,style:{position:"absolute",left:q+(xe?.x??0)-(p+s)/2,top:T+(xe?.y??0)-(p+s)/2,width:p,height:p,borderWidth:`${s}px`,border:f,borderRadius:"50%",background:a,boxShadow:`0 0 0 1.5px ${a}`,cursor:"grab",pointerEvents:"all",opacity:ee?0:1,transitionDuration:"160ms",transitionProperty:"opacity",...O},tabIndex:-1,onPointerDown:be,...Me}),_??C(),F))},[se,we,X?.x,X?.y,X?.width,X?.height,P,ee,a,p,s,f,Z,$e]),X?Q.jsxs(Q.Fragment,{children:[Q.jsx("div",{ref:oo([ze,A]),style:{position:"absolute",left:X.x,top:X.y,opacity:0}}),We]}):null}));fn.displayName="TouchSelectHandle";const It=-10,Io=Object.freeze({rowStart:0,colStart:0,rowEnd:0,colEnd:0}),ro=Object.freeze({colIndex:0,rowIndex:0}),Tn=Object.freeze([]),yt=t=>{if(t&&t.cell&&t.ranges&&t.rangeIndex>-1&&t.rangeIndex<=t.ranges.length)return t;const r={cell:null,ranges:t?.ranges??Tn};return r.rangeIndex=t?.rangeIndex??r.ranges.length-1,r.cell=t?.cell,!r.cell&&r.ranges.length>0&&(r.cell={rowIndex:r.ranges[r.rangeIndex].rowStart,colIndex:r.ranges[r.rangeIndex].colStart}),r.cell||(r.cell=ro),o.CoordUtils.isEqualSelectionCoords(r,t)?t:r},hn=(t,r,i)=>{const c=t.getVisibleRangeCoords(),u=t.getScrollOrientation();!u.horizontal&&(r.colIndex>c.colEnd||r.colIndex<c.colStart)&&(r={...r,colIndex:r.colIndex>c.colEnd?c.colEnd+1:c.colEnd-1},t=i.current.getViewFromLocation(o.AnchorLocation.Center)),!u.vertical&&(r.rowIndex>c.rowEnd||r.rowIndex<c.rowStart)&&(r={...r,rowIndex:r.rowIndex>c.rowEnd?c.rowEnd+1:c.rowEnd-1},t=i.current.getViewFromLocation(o.AnchorLocation.Center)),t.scrollCellCoordsIntoView(r)},ko=()=>!1;function gn(t,r){if(!t)throw new Error("Invariant failed")}const Xn={"sheetxl-grid":"_sheetxl-grid_h9wwa_7"},Mo=Object.freeze({top:0,left:0}),Do=Object.freeze({bottom:-4,right:-4}),Po=Object.freeze({horizontal:!0,vertical:!0}),Gn=[o.AnchorLocation.TopLeft,o.AnchorLocation.Top,o.AnchorLocation.Left,o.AnchorLocation.Center],zt=3e3,Mn={},zn=l.memo(l.forwardRef((t,r)=>{const{width:i,height:c,rowCount:u=1,columnCount:f=1,defaultRowHeight:a,defaultColumnWidth:s,getRowHeight:p,getColumnWidth:O,layout:P,onViewportScroll:M,onImmediateScroll:U,showGridLines:K=!0,gridLineColor:ee="rgb(224, 224, 224)",propsGridLineRows:Z,propsGridLineColumns:_,clipCells:Me=!0,cursor:re,freezeLeft:k=0,freezeTop:X=0,propsFreezeLeft:ge,propsFreezeTop:F,renderCell:fe,onViewportChange:Le,onFirstRender:be,renderOverlay:ze,propsOverlay:se,renderOverlays:we,propsOverlays:A,allowOverlaysOverflow:C=!1,propsStage:$e,wrapperStage:We=null,hiddenRowsAt:G,hiddenColumnsAt:xe,hiddenCellAt:q,getVisibleCells:T,zoom:H=1,enableMouseWheel:St=!0,onWheelScroll:xt,getCellCoordsAsRangeCoords:ct=o.CoordUtils.cellToRange,scrollPoint:rt=Mo,style:ae={},...Pt}=t;gn(fe),gn(!t?.children);const D=n.useCallbackRef(U,[U]),R=n.useCallbackRef(Le,[Le]),Ce=n.useCallbackRef(M,[M]),te=n.useCallbackRef(xt,[xt]),ue=n.useCallbackRef(be,[be]),Ae=l.useRef(null),et=l.useRef(null),mt=l.useRef(null),[tt,Tt]=l.useReducer(w=>w+1,0),[st,b]=l.useState({left:rt?.left??0,top:rt?.top??0,horizontalScrollDirection:null,verticalScrollDirection:null}),ne=l.useRef(null),Pe=l.useRef(st),{top:lt,left:Ye,verticalScrollDirection:jt,horizontalScrollDirection:$t}=st,bt=l.useRef(!1),Xt=eo({rowCount:u,columnCount:f,defaultRowHeight:a,defaultColumnWidth:s,getRowHeight:p,getColumnWidth:O}),At=l.useRef(null),ve=l.useMemo(()=>{const w=P||Xt;return At.current=null,{getColOffset:S=>w.getColOffset(S)*H,getColIndex:S=>w.getColIndex(S/H),getRowOffset:S=>w.getRowOffset(S)*H,getRowIndex:S=>w.getRowIndex(S/H)}},[Xt,P,H]),Ut=(w,S,E)=>{const v=(S?.left??0)+0,y=(S?.top??0)+0;return{getColOffset:L=>w.getColOffset(L)-v,getColIndex:L=>w.getColIndex(L+v),getRowOffset:L=>w.getRowOffset(L)-y,getRowIndex:L=>w.getRowIndex(L+y)}},ht=n.useCallbackRef((w,S=!1)=>wn(w,S,ve.getRowOffset,S?0:u),[u,ve?.getRowOffset]),kt=n.useCallbackRef(G??ht,[G]),en=n.useCallbackRef((w,S=!1)=>wn(w,S,ve.getColOffset,S?f:0),[f,ve?.getColOffset]),Ht=n.useCallbackRef(xe??en,[xe]),je=l.useMemo(()=>Math.min(i??800,ve.getColOffset(f)),[ve.getColOffset,f,i]),Ke=l.useMemo(()=>Math.min(c??600,ve.getRowOffset(u)),[ve.getRowOffset,u,c]),Ft=l.useCallback(w=>{o.CommonUtils.canUseDOM&&setTimeout(()=>{Ae.current?.focus({preventScroll:!0,...w})},0)},[]),ft=l.useCallback(w=>Ae.current?.contains(w)||et.current?.contains(w),[]);l.useEffect(()=>{bt.current&&(ne.current&&ne.current.left!==Pe.current?.left&&ne.current.top!==Pe.current?.top||(ne.current=null,Ce?.({left:Ye,top:lt})))},[Ye,lt]);const Ot=n.useCallbackRef(()=>({top:lt,left:Ye}),[lt,Ye]),Se=l.useMemo(()=>{const w=[];let S=0,E=0;typeof X=="number"?S=X:(S=X.index??0,E=(X.scrollOffset??0)*H);const v=E,y=ve.getRowOffset(S),L=y-v;if(S>0){const Be=Ut(ve,{top:E+ve.getRowOffset(0)}),Ue=ve.getRowIndex(v),Ne=ve.getRowIndex(y-1);let ye;w[1]={minIndex:Ue,maxIndex:Ne,minCoord:0,maxCoord:S-1,minBounds:0,maxBounds:L,visibleIndices:()=>ye||(ye=Object.freeze(un(kt,Ue,Ne)),ye),layout:Be,maxVirtualBounds:y,scrollOffset:E,freezeOffset:E}}const he=Math.max(0,Ke-L),oe=Ut(ve,{top:lt+L}),de=oe.getRowIndex(0),V=oe.getRowIndex(he);let me;return w[0]={minIndex:de,maxIndex:V,minCoord:S,maxCoord:u-1,minBounds:L,maxBounds:he,visibleIndices:()=>me||(me=Object.freeze(un(kt,de,V)),me),layout:oe,maxVirtualBounds:ve.getRowOffset(u),scrollOffset:lt,freezeOffset:(S>0?ve.getRowOffset(S):0)-E},w},[ve.getRowIndex,ve.getRowOffset,kt,Ke,u,X,lt,H]),He=l.useMemo(()=>{const w=[];let S=0,E=0;typeof k=="number"?S=k:(S=k.index??0,E=(k.scrollOffset??0)*H);const v=E,y=ve.getColOffset(S),L=y-v;if(S>0){const Be=Ut(ve,{left:E+ve.getColOffset(0)}),Ue=ve.getColIndex(v),Ne=ve.getColIndex(y-1);let ye;w[1]={minIndex:Ue,maxIndex:Ne,minCoord:0,maxCoord:S-1,minBounds:0,maxBounds:L,visibleIndices:()=>ye||(ye=Object.freeze(un(Ht,Ue,Ne)),ye),layout:Be,maxVirtualBounds:y,scrollOffset:E,freezeOffset:E}}const he=Math.max(0,je-L),oe=Ut(ve,{left:Ye+L}),de=oe.getColIndex(0),V=oe.getColIndex(he);let me;return w[0]={minIndex:de,maxIndex:V,minCoord:S,maxCoord:f-1,minBounds:L,maxBounds:he,visibleIndices:()=>me||(me=Object.freeze(un(Ht,de,V)),me),layout:oe,maxVirtualBounds:ve.getColOffset(f),scrollOffset:Ye,freezeOffset:(S>0?ve.getColOffset(S):0)-E},w},[ve.getColIndex,ve.getColOffset,Ht,je,f,k,Ye,H]),it=l.useRef({}),pt=l.useRef([]),pe=l.useMemo(()=>{let w={};const S=(v,y,L,he,oe)=>{const de={vertical:he?.vertical||!1,horizontal:he?.horizontal||!1};if(v>=He.length||y>=Se.length)return null;const V={rowStart:Se[y].minIndex,colStart:He[v].minIndex,rowEnd:Se[y].maxIndex,colEnd:He[v].maxIndex};if(V.rowStart>V.rowEnd||V.colStart>V.colEnd)return null;const me={getColIndex:J=>He[v].layout.getColIndex(J),getColOffset:J=>He[v].layout.getColOffset(J),getRowIndex:J=>Se[y].layout.getRowIndex(J),getRowOffset:J=>Se[y].layout.getRowOffset(J)},Be=Object.freeze({left:oe?.left??0,top:oe?.top??0,right:oe?.right??0,bottom:oe?.bottom??0}),Ue=Object.freeze({x:He[v].minBounds,y:Se[y].minBounds,width:He[v].maxBounds,height:Se[y].maxBounds}),Ne=(J,Ve)=>qn(me,J??V,Ve),ye={width:He[v].maxVirtualBounds,height:Se[y].maxVirtualBounds},ce={left:He[v].scrollOffset,top:Se[y].scrollOffset},nt={left:He[v].freezeOffset,top:Se[y].freezeOffset},Ge={width:je,height:Ke};let Te=null,_e=null;const gt=(nt.top+(he.vertical?ce.top:0))/H,Fe=(nt.left+(he.horizontal?ce.left:0))/H;return{getStage:()=>Ae.current??null,getVisibleRangeCoords:()=>V,toClipBounds:(J,Ve)=>{let at,Re=0;return Ve===void 0||typeof Ve=="number"?(at=Ne(V),Re=Ve):at=Ve,((Ze,De,Ee=0)=>{if(Ze.x>De.width||Ze.y>De.height)return null;const dt={left:Ze.x,top:Ze.y,bottom:Ze.height+Ze.y,right:Ze.width+Ze.x},ot={left:De.x+Ee,top:De.y+Ee,bottom:De.height-2*Ee+De.y,right:De.width-2*Ee+De.x},wt={left:Math.max(dt.left,ot.left),top:Math.max(dt.top,ot.top),bottom:Math.min(dt.bottom,ot.bottom),right:Math.min(dt.right,ot.right)},Et={x:wt.left,y:wt.top,width:wt.right-wt.left,height:wt.bottom-wt.top};return Et.height<0||Et.width<0?null:Et})(J??{x:0,y:0,width:Ue.width,height:Ue.height},at,Re)},toViewBounds:J=>Fe===0&&gt===0&&H===1?J:{x:(J.x-Fe)*H,y:(J.y-gt)*H,width:J.width*H,height:J.height*H},toAbsoluteBounds:J=>Fe===0&&gt===0&&H===1?J:{x:J.x/H+Fe,y:J.y/H+gt,width:J.width/H,height:J.height/H},getRelativePointFromClient:(J,Ve)=>{const at=Nt(J,Ve);return{x:at.x-Ue.x,y:at.y-Ue.y}},getLayout:()=>me,getCellCoordsAsRangeCoords:ct,getVisibleColumns:()=>He[v].visibleIndices(),getVisibleRows:()=>Se[y].visibleIndices(),getVisibleColumnOffsets:()=>(Te||(Te=Nn(He[v].layout,!0,He[v].visibleIndices(),V.colStart,V.colEnd)),Te),getVisibleRowOffsets:()=>(_e||(_e=Nn(Se[y].layout,!1,Se[y].visibleIndices(),V.rowStart,V.rowEnd)),_e),getTotalRangeCoords:()=>({colStart:He[v].minCoord,colEnd:He[v].maxCoord,rowStart:Se[y].minCoord,rowEnd:Se[y].maxCoord}),getRangeCoordsBounds:Ne,scrollCellCoordsIntoView:(J,Ve)=>Gt(J,Ve,L),getCellCoordsFromClient:(J,Ve,at=!1)=>{const Re=Nt(J,Ve);if(!Re)return null;const Ze=me.getColIndex(Re.x-Ue.x),De={rowIndex:me.getRowIndex(Re.y-Ue.y),colIndex:Ze};if(at)return De;const Ee=ct(De);return{rowIndex:Ee.rowStart,colIndex:Ee.colStart}},getZoom:()=>H,getAnchor:()=>L,getBounds:()=>Ue,getInsets:()=>Be,getTotalSize:()=>ye,getViewportSize:()=>Ge,getScrollTopLeft:()=>ce,getFreezeTopLeft:()=>nt,getScrollOrientation:()=>de,allViews:()=>w}};let E=w[o.AnchorLocation.Center]=S(0,0,o.AnchorLocation.Center,Po,Do);return E&&(w[o.AnchorLocation.Center]=E),E=S(0,1,o.AnchorLocation.Top,{horizontal:!0}),E&&(w[o.AnchorLocation.Top]=E),E=S(1,0,o.AnchorLocation.Left,{vertical:!0}),E&&(w[o.AnchorLocation.Left]=E),E=S(1,1,o.AnchorLocation.TopLeft,{}),E&&(w[o.AnchorLocation.TopLeft]=E),it.current=null,w=Object.freeze(w)},[Se,He,ct]),Kt=Object.keys(pe),Rt=He[0]?.maxVirtualBounds??0,Je=Se[0]?.maxVirtualBounds??0,Ct=l.useMemo(()=>({left:He[1]?He[1].layout.getColOffset(He[1].maxIndex+1):0,top:Se[1]?Se[1].layout.getRowOffset(Se[1].maxIndex+1):0}),[pe]);l.useEffect(()=>{if(pt.current.length>0){for(let w=0;w<pt.current.length;w++)pt.current[w]();pt.current=[]}},[pe]);const vt=n.useCallbackRef(()=>({containerWidth:je,containerHeight:Ke,totalWidth:Rt,totalHeight:Je}),[je,Ke,ve]);l.useEffect(()=>{!ne.current&&bt.current&&R({top:lt,left:Ye,width:je,height:Ke,totalWidth:Rt,totalHeight:Je})},[lt,Ye,Rt,Je]),l.useEffect(()=>{bt.current&&R({top:lt,left:Ye,width:je,height:Ke,totalWidth:Rt,totalHeight:Je})},[je,Ke]);const Nt=l.useCallback((w,S)=>{gn(typeof w=="number"&&typeof S=="number");const E=Ae.current?.getBoundingClientRect();return E?{x:w-E.x,y:S-E.y}:{x:w,y:S}},[]),xn=n.useCallbackRef(w=>pe[w]||null,[pe]),pn=n.useCallbackRef((w,S)=>{if(Object.keys(pe).length===1)return pe[o.AnchorLocation.Center];const E=Nt(w,S);if(!E)return null;const{x:v,y}=E;let L=null;const he=Gn,oe=he.length;for(let de=0;!L&&de<oe;de++){const V=pe[he[de]];V&&Ro(v,y,V.getBounds())&&(L=V)}return L||(L=pe[o.AnchorLocation.Center]),L},[pe,ct]),Qe=n.useCallbackRef(()=>pe[o.AnchorLocation.Center].getVisibleRangeCoords(),[pe[o.AnchorLocation.Center]]),Lt=l.useRef(null),mn=l.useCallback(()=>{Lt.current!==null&&o.CommonUtils.cancelTimeout(Lt.current),Lt.current=o.CommonUtils.requestTimeout(Cn,150)},[]),Cn=l.useCallback(()=>{Lt.current=null,b(w=>{const S={...w,verticalScrollDirection:null,horizontalScrollDirection:null};return Pe.current=S,S})},[]),Bt=n.useCallbackRef(w=>{const S=w?.left??w?.[0],E=w?.top??w?.[1];let v=Pe.current.left;S!==void 0&&S!==v&&(S>v?(v=Math.max(He?.[1]?.scrollOffset??0,S),v=Math.min(Rt-je,v)):v=Math.max(He?.[1]?.scrollOffset??0,S));let y=Pe.current.top;if(E!==void 0&&E!==y&&(E>y?(y=Math.max(Se?.[1]?.scrollOffset??0,E),y=Math.min(Je-Ke,y)):y=Math.max(Se?.[1]?.scrollOffset??0,E)),Pe.current.left===v&&Pe.current.top===y)return;let L=null,he=null;Pe.current.left>v?L=o.Direction.Left:Pe.current.left<v&&(L=o.Direction.Right),Pe.current.top>y?he=o.Direction.Up:Pe.current.top<y&&(he=o.Direction.Down),o.CommonUtils.throttle(()=>{b(oe=>{const de={...oe,left:v,top:y,horizontalScrollDirection:L,verticalScrollDirection:he};return Pe.current=de,de})},17)(),ne.current?.top===y&&ne.current?.left===v||(ne.current={left:v,top:y},D({left:v,top:y}),R({left:v,top:y,width:je,height:Ke,totalWidth:Rt,totalHeight:Je})),mn()},[Rt,Je,Se,He]);l.useEffect(()=>{ne.current||Bt({left:Ye,top:lt})},[je,Ke]),l.useEffect(()=>{let w,S,E=!1;Pe.current.left>Rt&&(w=0,E=!0),Pe.current.top>Je&&(S=0,E=!0),E&&Bt({left:w,top:S})},[Rt,Je]),l.useLayoutEffect(()=>{ne.current={left:rt?.left,top:rt?.top},Bt(ne.current)},[rt?.left,rt?.top]);const tn=n.useCallbackRef(w=>{let S=w?.left??w?.[0],E=w?.top??w?.[1];if(S===void 0&&E===void 0)return;const v=w?.behavior??"auto";S!==void 0&&(S=Pe.current.left+(S??0)),E!==void 0&&(E=Pe.current.top+(E??0)),!(Pe.current.left===S&&Pe.current.top===E)&&Bt({left:S,top:E,behavior:v})},[]),nn=l.useCallback(w=>{let S=null;if(Object.keys(pe).length>1){const E=Gn,v=E.length;for(let y=0;!S&&y<v;y++){const L=pe[E[y]];L&&o.CoordUtils.isCellWithinRange(w,L.getVisibleRangeCoords())&&(S=L)}}return S||(S=pe[o.AnchorLocation.Center]),S},[pe]),Gt=n.useCallbackRef((w,S={inline:"nearest",block:"nearest"},E=null)=>{const v={rowIndex:0,colIndex:0,...w};let y=null;if(E!==null){if(y=pe[E],y===null)return new Promise((Ge,Te)=>{Te("Invalid view")})}else y=nn(v);const L=ct(v),he=y.getLayout(),oe=he.getColOffset(L.colStart),de=he.getRowOffset(L.rowStart),V=he.getColOffset(L.colEnd+1),me=he.getRowOffset(L.rowEnd+1),Be=y.getBounds(),Ue=y.getTotalSize(),Ne=y.getScrollTopLeft(),ye=((Ge,Te,_e=!0)=>{_e=_e===!0?{block:"start",inline:"end"}:_e===!1?{block:"end",inline:"end"}:{block:"end",inline:"end",..._e};const gt=Wn(_e.inline,Ge.x,Ge.x+Ge.width,Te.left,Te.left+Te.width,Te.totalWidth),Fe=Wn(_e.block,Ge.y,Ge.y+Ge.height,Te.top,Te.top+Te.height,Te.totalHeight);if(gt!==void 0||Fe!==void 0)return{left:gt,top:Fe}})({x:oe+Ne.left,y:de+Ne.top,width:V-oe,height:me-de},{left:Ne.left,top:Ne.top,width:Be.width,height:Be.height,totalWidth:Ue.width,totalHeight:Ue.height},S);if(!ye)return Promise.resolve({...Ne});const ce={...ye};ce.left>Ye?ce.left+=20:ce.left<Ye&&(ce.left-=0),ce.top>lt?ce.top+=20:ce.top<lt&&(ce.top-=0);const nt=y.getScrollOrientation();return nt.horizontal&&w.colIndex!==void 0||delete ce.left,nt.vertical&&w.rowIndex!==void 0||delete ce.top,new Promise((Ge,Te)=>{try{Bt(ce),Ge(ce)}catch(_e){Te(_e)}})},[Rt,Je,pe,ct]),qt=n.useCallbackRef(w=>{const S=w.shiftKey;w.preventDefault();const{deltaX:E,deltaY:v,deltaMode:y}=w;if(mt.current||te?.(w)===!1)return;let he=S?v:E,oe=v;const de=S||Math.abs(he)>Math.abs(oe);y===1&&(oe*=0),mt.current=window.requestAnimationFrame(()=>{mt.current=null,tn(de?{left:he}:{top:oe})})},[te]),_t=l.useCallback((w=null)=>{At.current=null,it.current=null,Tt()},[]);l.useLayoutEffect(()=>{_t()},[fe]);const Vt=n.useImperativeElement(r,()=>({stage:Ae.current,focus:Ft,contains:ft,invalidate:_t,scrollTo:Bt,scrollBy:tn,scrollCellCoordsIntoView:Gt,getScrollPosition:Ot,getDimensions:vt,getViewport:Qe,handleWheel:qt,rowCount:u,columnCount:f,getLayout:()=>ve,getRelativePointFromClient:Nt,getViewFromClient:pn,getViewFromCellCoords:nn,getViewFromLocation:xn,onViewChangeOnce:w=>{pt.current.push(w)}}),[u,f,pe]);l.useEffect(()=>(St&&Vt.current?.addEventListener("wheel",qt,{passive:!1}),bt.current=!0,ne.current=null,()=>{Vt.current?.removeEventListener("wheel",qt)}),[St]);const Zt=l.useRef([]),Sn=(w,S)=>{!w||!ze||(Zt.current=[],S.push(((E,v)=>{const y=`view:${E.getAnchor()}:overlay:${S.length}`,L=ze({key:y,view:E,ref:oe=>Zt.current[v]=oe});if(!L)return null;const he=E.getBounds();return Q.jsx("div",{style:{position:"absolute",left:"0px",top:"0px",width:`${he.width}px`,height:`${he.height}px`,overflow:"hidden"},children:L},`overlay-${E.getAnchor()}-${v}`)})(w,0)))},bn=l.useMemo(()=>{const w={},S=Object.keys(pe),E=S.length;for(let v=0;v<E;v++){const y=S[v],L=[];Sn(pe[y],L),w[y]={overlays:L}}return w},[tt,ze,u,f,Se,He]),on=(w,S,E,v,y,L,he)=>{if(!w)return;const oe=w.getVisibleColumns(),de=w.getVisibleRows();if(oe.length===0||de.length===0)return;let V=null;if(T)V=T(w);else{V=[];const Re=de.length,Ze=oe.length;for(let De=0;De<Re;De++){const Ee=de[De];for(let dt=0;dt<Ze;dt++){const ot={rowIndex:Ee,colIndex:oe[dt]};if(q?.(ot))continue;const wt={coords:ot,range:ct(ot)};V.push(wt)}}}const me=w.getVisibleColumnOffsets(),Be=w.getVisibleRowOffsets(),Ue=w.getScrollTopLeft(),Ne=w.getFreezeTopLeft(),ye=Ue.left+Ne.left,ce=Ue.top+Ne.top,nt=Math.trunc(ye/zt),Ge=Math.trunc(ce/zt),Te={},_e=(Re,Ze,De,Ee,dt)=>{const ot=`view:${Re.getAnchor()}:cell:${Vn(Ze.rowIndex,Ze.colIndex)}`,wt=Ee.x,Et=Ee.y,e=Math.trunc((ye+wt)/zt)-nt,d=Math.trunc((ce+Et)/zt)-Ge;Te[d]||(Te[d]={});let g=Te[d][e];g||(g=Te[d][e]=[]);let h=L?.get(ot);if(!h){const x=(ye+wt)%zt,I=(ce+Et)%zt;h=fe({key:ot,coords:Ze,bounds:Ee,zoom:H,range:De,view:Re,value:dt,style:{left:n.ReactUtils.boundPixel(x),top:n.ReactUtils.boundPixel(I),width:n.ReactUtils.boundPixel(Ee.width,!0),height:n.ReactUtils.boundPixel(Ee.height,!0)}})}he?.set(ot,h),g.push(h)},gt=V.length;for(let Re=0;V&&Re<gt;Re++){const Ze=V[Re],De=Ze?.coords??Ze;if(!De)continue;const Ee=Ze?.range??{rowStart:De.rowIndex,colStart:De.colIndex,rowEnd:De.rowIndex,colEnd:De.colIndex},dt=w.getVisibleRangeCoords();if(!o.CoordUtils.isRangesIntersect(Ee,dt)&&!o.CoordUtils.isRangeWithinRange(Ee,dt))continue;const ot=Ee&&!o.CoordUtils.isSingleCell(Ee);if(!ot&&q?.(De))continue;const wt=De.rowIndex,Et=De.colIndex,e=Be[wt],d=me[Et];let g=null;e&&d&&(g={x:d.offset,y:e.offset,width:d.size,height:e.size});const h=Vn(Ee.rowStart,Ee.colStart);if(ot){if(y.has(h))continue;y.add(h),Ee.rowEnd-Ee.rowStart>0&&E.push(Ee),Ee.colEnd-Ee.colStart>0&&v.push(Ee)}if(ot&&(g=qn(w.getLayout(),Ee)),!g){console.warn("no bounds for cell",h);continue}const x=Ze?.value;_e(w,De,Ee,g,x)}const Fe=ye%zt,J=ce%zt,Ve=Object.keys(Te),at=Ve.length;for(let Re=0;Re<at;Re++){const Ze=Ve[Re],De=Te[Ze];if(!De)continue;const Ee=Object.keys(De),dt=Ee.length;for(let ot=0;ot<dt;ot++){const wt=Ee[ot],Et=De[wt];if(!Et)continue;const e=parseInt(Ze),d=parseInt(wt),g=e+Ge,h=d+nt,x=`view:${w.getAnchor()}:segment:${h}:${g}`;S.push(Q.jsx("div",{className:"cell-container",style:{transform:`translate(${n.ReactUtils.boundPixel(d*zt-Fe,!0)}px, ${n.ReactUtils.boundPixel(e*zt-J,!0)}px)`,willChange:"transform"},children:Et},x))}}},Mt=l.useMemo(()=>{const w=At.current,S=new Map,E={},v=Object.keys(pe),y=v.length;for(let L=0;L<y;L++){const he=v[L],oe=[],de=[],V=[];on(pe[he],V,oe,de,new Set,w,S),E[he]={cells:V,rangesH:oe,rangesV:de}}return At.current=S,E},[tt,u,f,Se,He,K,ae,Me,q,T,xe,G,ct]),rn=(w,S,E,v,y)=>{if(!w)return;const L=w.getLayout(),he=window.devicePixelRatio||1,oe=String(1/he);if(S){const de=`view:${w.getAnchor()}:hl:`,V=w.getVisibleRows();if((V?V.length:0)===0)return;const me=y.sort(o.CoordUtils.rowFirstRangeComparator),Be=w.getVisibleRangeCoords(),Ue=0,Ne=Math.min(w.getBounds().width,L.getColOffset(Be.colEnd+1));let ye=[];for(let ce=0;ce<V.length&&V[ce]<=Be.rowEnd;ce++){const nt=V[ce];if(nt<Be.rowStart)continue;let Ge=!1;for(;me.length>0&&me[0].rowStart<=nt;){const Fe=me.shift();Fe.rowEnd>nt&&(ye.push(Fe),Ge=!0)}Ge&&(ye=ye.sort(o.CoordUtils.columnFirstRangeComparator));const Te=L.getRowOffset(nt+1);let _e=Ue;const gt=ye.length;for(let Fe=0;Fe<gt+1;Fe++){let J=_e,Ve=Ne;const at=ye[Fe];Fe<gt&&(Ve=Math.min(Ne,L.getColOffset(at.colStart)),_e=Math.min(Ne,L.getColOffset(at.colEnd+1))),v.push(l.createElement("path",{d:`M ${n.ReactUtils.boundPixel(J)} ${n.ReactUtils.boundPixel(Te,!1,E)} L ${n.ReactUtils.boundPixel(Ve)} ${n.ReactUtils.boundPixel(Te,!1,E)}`,stroke:ee,strokeWidth:oe,vectorEffect:"non-scaling-stroke",...Z,key:de+nt+":"+Fe}))}for(let Fe=gt-1;Fe>=0;Fe--)ye[Fe].rowEnd<=V[ce+1]&&ye.splice(Fe,1)}}else{const de=`view:${w.getAnchor()}:vl:`,V=w.getVisibleColumns(),me=V?V.length:0;if(me===0)return;const Be=y.sort(o.CoordUtils.columnFirstRangeComparator),Ue=w.getVisibleRangeCoords(),Ne=0,ye=Math.min(w.getBounds().height,L.getRowOffset(Ue.rowEnd+1));let ce=[];for(let nt=0;nt<me&&V[nt]<=Ue.colEnd;nt++){const Ge=V[nt];if(Ge<Ue.colStart)continue;let Te=!1;for(;Be.length>0&&Be[0].colStart<=Ge;){const J=Be.shift();J.colEnd>Ge&&(ce.push(J),Te=!0)}Te&&(ce=ce.sort(o.CoordUtils.rowFirstRangeComparator));const _e=L.getColOffset(Ge+1);let gt=Ne;const Fe=ce.length;for(let J=0;J<Fe+1;J++){let Ve=gt,at=ye;const Re=ce[J];J<Fe&&(at=Math.min(ye,L.getRowOffset(Re.rowStart)),gt=Math.min(ye,L.getRowOffset(Re.rowEnd+1))),v.push(Q.jsx("path",{d:`M ${n.ReactUtils.boundPixel(_e,!1,E)} ${n.ReactUtils.boundPixel(Ve)} L ${n.ReactUtils.boundPixel(_e,!1,E)} ${n.ReactUtils.boundPixel(at)}`,stroke:ee,strokeWidth:oe,vectorEffect:"non-scaling-stroke",..._},de+Ge+":"+J))}for(let J=Fe-1;J>=0;J--)ce[J].colEnd<=V[nt+1]&&ce.splice(J,1)}}},Jt=w=>{if(!Mt)return;const S={},E=Kt.length;for(let v=0;v<E;v++){const y=Kt[v],L=pe[y],he=[];rn(L,w,0,he,w?Mt[y].rangesH:Mt[y].rangesV);const oe=L.getRangeCoordsBounds(),de=Math.ceil(oe.width),V=Math.ceil(oe.height);S[y]=Q.jsx("svg",{width:`${de}`,height:`${V}`,viewBox:`0 0 ${de} ${V}`,preserveAspectRatio:"none",shapeRendering:"crispEdges",style:{position:"absolute"},children:he})}return S},ln=l.useMemo(()=>K===!0||K?.horizontal===!0?Jt(!0):null,[tt,K,Se,X,k,ee,Z,u,f,je,Rt,pe,Mt]),cn=l.useMemo(()=>K===!0||K?.vertical===!0?Jt(!1):null,[tt,K,He,X,k,ee,_,u,f,Ke,Je,pe,Mt]),vn=l.useMemo(()=>Ct.left===0?null:Q.jsx(Pn,{linePoints:[0,0,0,Ke+1],bounds:{x:Ct.left,y:0,width:1,height:Ke+1},...ge}),[tt,Ct.left,Ke,ge]),yn=l.useMemo(()=>Ct.top===0?null:Q.jsx(Pn,{linePoints:[0,0,je+1,0],bounds:{x:0,y:Ct.top,width:je+1,height:1},...F}),[tt,Ct.top,je,F]),Qt=l.useMemo(()=>{const w=[],S=v=>{if(!v||!pe[v])return;const y=pe[v].getBounds();return Q.jsxs("div",{style:{position:"absolute",pointerEvents:"none",left:y.x,top:y.y,width:y.width,height:y.height,clip:`rect(0, ${y.width+1}px, ${y.height+1}px, 0)`},className:`view view-${v}`,children:[ln?.[v],cn?.[v],Mt?.[v].cells]},`view:${v}`)},E=Kt.length;for(let v=0;v<E;v++)w.push(S(Kt[v]));return Q.jsx(Q.Fragment,{children:w})},[pe,ln,cn,Mt]),Rn=l.useMemo(()=>{if(!r)return;const w=(oe,de,V,me)=>{if(!me||me.length===0)return;const Be=[],Ue=me.length;for(let Ne=0;Ne<Ue;Ne++){const ye=me[Ne];let ce=oe?.get(ye);ce!==Mn&&(ce=ye(V)??Mn),de.set(ye,ce),ce&&ce!==Mn&&Be.push(ce)}return Be},S=(oe,de,V)=>{if(!V)return;const me=V.getBounds(),Be=V.getInsets(),Ue=V.getAnchor();return Q.jsxs("div",{className:Wt("view",`view-${Ue}`,Xn.view),style:{position:"absolute",pointerEvents:"none",left:me.x-Be.left,top:me.y-Be.top,width:me.width-(Be.left+Be.right),height:me.height-(Be.top+Be.bottom),clipPath:C?"inset(-2px)":"inset(0px)"},children:[w(oe,de,V,we),bn?.[Ue].overlays]},`view:${Ue}`)},E=it.current,v={},y=[],L=Object.keys(pe),he=L.length;for(let oe=0;oe<he;oe++){const de=L[oe],V=E?.[de],me=v[de]=new Map;y.push(S(V,me,pe[de]))}return it.current=v,y},[tt,pe,C,we]),En=l.useMemo(()=>{const{style:w,...S}=$e??o.CommonUtils.EmptyObject;return Q.jsx("div",{style:{width:je,height:Ke,...w},className:"sheetxl-stage",tabIndex:0,ref:Ae,...S,...Pt,children:We?We(Qt):Qt})},[je,Ke,Qt,$e,We]),sn=l.useRef(!1);return l.useEffect(()=>{!sn.current&&Mt&&(sn.current=!0,ue?.(Vt.current))},[Mt]),Q.jsxs("div",{className:Wt("sheetxl-grid",Xn["sheetxl-grid"]),style:{overflow:"visible",cursor:re,maxWidth:je,maxHeight:Ke,width:je,height:Ke,...ae},ref:Vt,children:[En,Q.jsxs("div",{className:Wt("sheetxl-overlays"),ref:et,...A,children:[Rn,vn,yn]})]})}));zn.displayName="BaseGrid";var Uo=function(){},lo=typeof window<"u",To=lo?l.useLayoutEffect:l.useEffect,_n={x:0,y:0,width:0,height:0,top:0,left:0,bottom:0,right:0};const Oo=lo&&window.ResizeObserver!==void 0?function(){var t=l.useState(null),r=t[0],i=t[1],c=l.useState(_n),u=c[0],f=c[1],a=l.useMemo(function(){return new window.ResizeObserver(function(s){if(s[0]){var p=s[0].contentRect,O=p.x,P=p.y,M=p.width,U=p.height,K=p.top,ee=p.left,Z=p.bottom,_=p.right;f({x:O,y:P,width:M,height:U,top:K,left:ee,bottom:Z,right:_})}})},[]);return To(function(){if(r)return a.observe(r),function(){a.disconnect()}},[r]),[i,u]}:function(){return[Uo,_n]},An=l.memo(l.forwardRef((t,r)=>{const{width:i,height:c,style:u={},className:f,...a}=t,[s,{width:p,height:O}]=Oo(),P=i??p,M=c??O;return Q.jsx("div",{className:f,style:{...u},children:Q.jsx("div",{style:{position:"relative",top:"0px",left:"0px",width:"100%",height:"100%",maxWidth:"100%",maxHeight:"100%",boxSizing:"content-box"},ref:s,children:Q.jsx(zn,{ref:r,width:P,height:M,...a})})})}));An.displayName="Grid";const io=l.memo(l.forwardRef((t,r)=>{const{showVerticalScrollbar:i,showHorizontalScrollbar:c,renderScrollbarHorizontal:u,renderScrollbarVertical:f,createScrollCorner:a,viewport:s,onScrollViewport:p,style:O={},className:P,onScroll:M,...U}=t,[K,ee]=l.useState(null),Z=l.useRef(null),_=l.useRef(null);gn(!s);const Me=oo([_,r]),re=l.useCallback(k=>{_.current?.scrollTo(k),p?.(k)},[]);return Q.jsx(n.ScrollPane,{className:P,style:O,ref:Z,showVerticalScrollbar:i,showHorizontalScrollbar:c,renderScrollbarHorizontal:u,renderScrollbarVertical:f,createScrollCorner:a,viewport:K,onScrollViewport:re,children:Q.jsx(An,{style:{width:"100%",height:"100%"},...U,onViewportChange:k=>ee(k),ref:Me})})}));io.displayName="ScrollableGrid";const Zn=()=>!1,co=l.memo(t=>{const{index:r,value:i,zoom:c,zoomScale:u=100,headerText:f=we=>`${we}`,headerStyle:a,headerStyleSelect:s=a,headerStyleSelectAll:p=s,headerStyleHover:O=p,verticalPadding:P=0,horizontalPadding:M=0,isSelected:U=Zn,isSelectedAll:K=Zn,coords:ee,bounds:Z,range:_,orientation:Me,view:re,style:k,...X}=t,ge=u/100,F=l.useRef(null),[fe,Le]=l.useState(!1),be=U?.(r)||!1,ze=K?.(r)?p:be?s:a;let se=ze;if(fe){let we=O;typeof O=="function"&&(we=O(ze)),se=o.CommonUtils.mergeContentful(ze,we)}return Q.jsx("div",{ref:F,style:{background:se.fill,color:se.text?.fill,fontFamily:se.text?.fontFamily??a.text?.fontFamily,fontSize:96*(se.text?.fontSize??11)/72*ge,fontStyle:se.text?.fontStyle,fontWeight:se.text?.fontWeight,lineHeight:1.2,display:"flex",justifyContent:"center",alignItems:"end",pointerEvents:"auto",paddingBottom:`${ge}px`,...k,left:k.left-(Me===o.RangeOrientation.Column?1:0),top:k.top-(Me===o.RangeOrientation.Row?1:0),width:k.width+1,height:k.height+1,overflow:"hidden"},...X,onMouseMove:we=>{n.ReactUtils.detectIt().primaryInput!=="touch"&&we.buttons===0&&Le(!0)},onMouseOut:we=>{Le(!1)},children:f(r)})});co.displayName="HeaderRenderer";const so="ew-resize",ao="ns-resize",uo=l.memo(l.forwardRef((t,r)=>{const{orientation:i,view:c,index:u,className:f,style:a,disabled:s=!1,disabledResize:p=!1,isNextHidden:O,isHidden:P,isSelected:M,isSelectedAll:U,showTouchDivider:K,headerStyle:ee,headerStyleSelect:Z,headerStyleSelectAll:_,headerStyleHover:Me,bounds:re,onPointerDown:k,onAutoFit:X,...ge}=t,F=i===o.RangeOrientation.Column;let fe=ee;M&&Z&&(fe=Z),U&&_&&(fe=_);const Le=n.ReactUtils.detectIt().primaryInput==="touch";let be=F?14:8,ze=be/2,se=0;O&&(se=-2),P&&(se=2),P&&(be=be/2+se,ze=2*se);let we=fe.dividerStrokeFill??fe.strokeFill;return!(M||U)&&se===0&&(we=`linear-gradient(${F?180:90}deg, ${fe.fill}, ${we} 55%, ${we} 100%)`),Q.jsxs("div",{className:Wt("header-divider",{disabled:s},f,`index-${u}`),ref:r,onPointerDown:Le?void 0:k,onDoubleClick:Le?void 0:()=>X?.(),style:{top:(F?0:-be/2+(se-1))+"px",left:(F?-be/2+(se-1):0)+"px",width:F?be:"calc(100% + 1px)",height:F?"calc(100% + 1px)":be,position:"absolute",overflow:"visible",pointerEvents:"all",cursor:s||p||Le?void 0:F?so:ao,...a},...ge,children:[Q.jsx("div",{style:{position:"relative",top:`${F?0:ze}px`,left:`${F?ze:0}px`,width:F?1:"100%",height:F?"100%":1,background:we},onDoubleClick:()=>X?.()}),K&&Le?Q.jsx("div",{style:{position:"absolute",cursor:"grab",zIndex:1,borderRadius:"4px",right:F?"-6px":"2px",bottom:F?"2px":"-9px",height:"24px",width:F?"24px":"18px",maxHeight:F?"calc(100% - 4px)":void 0,maxWidth:F?void 0:"calc(100% - 4px)",background:fe.fill,border:`${_.edgeStrokeFill} solid 1px`,boxShadow:`0.5px 0.5px 0px 0px ${ee.text.fill}`,display:"flex",alignItems:"center",justifyContent:"center"},onPointerDown:k,children:Q.jsx("div",{style:{width:"6.4px",height:"12px",backgroundImage:`url("data:image/svg+xml,%3Csvg width='6.4' height='12' viewBox='0 0 9.6 16' version='1.1' fill='${encodeURIComponent(Z.text.fill)}' xmlns='http://www.w3.org/2000/svg' xmlns:svg='http://www.w3.org/2000/svg'%3E%3Cpath d='M 9.60008,14.40009 C 9.60008,15.28374 8.88368,16 8.00003,16 7.11639,16 6.40012,15.28374 6.40012,14.40009 c 0,-0.88365 0.71627,-1.60005 1.59991,-1.60005 0.88365,0 1.60005,0.7164 1.60005,1.60005 m 0,-6.40012 c 0,0.88364 -0.7164,1.60004 -1.60005,1.60004 -0.88364,0 -1.59991,-0.7164 -1.59991,-1.60004 0,-0.88365 0.71627,-1.60005 1.59991,-1.60005 0.88365,0 1.60005,0.7164 1.60005,1.60005 m 0,-6.40006 c 0,0.88365 -0.7164,1.60005 -1.60005,1.60005 -0.88364,0 -1.59991,-0.7164 -1.59991,-1.60005 C 6.40012,0.71626 7.11639,0 8.00003,0 8.88368,0 9.60008,0.71626 9.60008,1.59991 M 3.19996,14.40009 C 3.19996,15.28374 2.48369,16 1.60005,16 0.7164,16 0,15.28374 0,14.40009 c 0,-0.88365 0.7164,-1.60005 1.60005,-1.60005 0.88364,0 1.59991,0.7164 1.59991,1.60005 m 0,-6.40012 c 0,0.88364 -0.71627,1.60004 -1.59991,1.60004 C 0.7164,9.60001 0,8.88361 0,7.99997 0,7.11632 0.7164,6.39992 1.60005,6.39992 c 0.88364,0 1.59991,0.7164 1.59991,1.60005 m 0,-6.40006 c 0,0.88365 -0.71627,1.60005 -1.59991,1.60005 C 0.7164,3.19996 0,2.48356 0,1.59991 0,0.71626 0.7164,0 1.60005,0 2.48369,0 3.19996,0.71626 3.19996,1.59991' /%3E%3C/svg%3E%0A")`,backgroundRepeat:"no-repeat",backgroundPosition:"center",transform:F?void 0:"rotate(90deg)"}})}):null]})})),Lo=t=>Q.jsx(uo,{...t}),zo=l.memo(l.forwardRef((t,r)=>{const{orientation:i,view:c,index:u,disabled:f=!1,disabledResize:a=!1,resizeThreshold:s=1,renderDivider:p=Lo,onDividerMouseDown:O,onDividerResizeStart:P,onDividerResize:M,onDividerResizeEnd:U,onDividerMouseUp:K,onDividerAutoFit:ee,onPointerDown:Z,..._}=t,Me=n.useCallbackRef(Z,[Z]),re=n.useCallbackRef(ee,[ee]),k=i===o.RangeOrientation.Column;let X=k?c.getVisibleColumns():c.getVisibleRows(),ge=null;X.length>0&&(k?ge=c.getRangeCoordsBounds({rowStart:0,rowEnd:0,colStart:X[0],colEnd:X[X.length-1]}):c.getRangeCoordsBounds({rowStart:X[0],rowEnd:X[X.length-1],colStart:0,colEnd:0}),ge=c.toClipBounds(ge,It));const F=l.useRef(null),[fe,Le]=l.useState(null),be=(G,xe)=>k?G.clientX-xe.clientX:G.clientY-xe.clientY,ze=c.getLayout(),se=k?ze.getColOffset(u+1):ze.getRowOffset(u+1),we=n.useSynchronizedPointerHandler({processTouch:!0,onPointerDown:G=>{if(Me?.(G),!f&&!a){const xe=k?ze.getColOffset(u):ze.getRowOffset(u),q=se-xe;F.current={isResizing:!1,startSize:q,index:u,view:c,orientation:i,onDividerMouseDown:O,onDividerResizeStart:P,onDividerResize:M,onDividerResizeEnd:U,onDividerMouseUp:K},Le(F.current),O?.(u,q)}G.stopPropagation(),G.preventDefault()},onPointerUp:(G,xe,q)=>{if(!F.current)return;F.current.isResizing&&F.current.onDividerResizeEnd?.(F.current.index,Math.max(0,F.current.startSize+be(G,q)),F.current.startSize);const T=F.current;F.current=null,Le(F.current),T.onDividerMouseUp?.(T.index)},onPointerMoveOrWait:(G,xe,q)=>{if(!F.current)return;const T=be(G,q);F.current.isResizing?F.current.onDividerResize?.(F.current.index,Math.max(0,F.current.startSize+T),F.current.startSize):Math.abs(T)>Math.max(1,s)&&(F.current={...F.current,isResizing:!0},Le(F.current),F.current.onDividerResizeStart?.(F.current.index,Math.max(0,F.current.startSize+T))),G.stopPropagation(),G.preventDefault()}}),A=n.useCallbackRef(()=>{re?.(u)},[u]);if(!ge)return;const C=p({bounds:ge,orientation:i,view:c,index:u,disabled:f,disabledResize:a,onAutoFit:A,onPointerDown:we,ref:r,..._});if(!C)return;const{getPortalContainer:$e}=n.useFullscreenPortal();let We=null;return fe&&fe.isResizing&&fe.index===u&&(We=Jn.createPortal(Q.jsx("div",{style:{position:"absolute",cursor:k?so:ao,left:0,top:0,width:"100%",height:"100%"}}),$e(),"divider:"+u)),Q.jsxs(Q.Fragment,{children:[We,Q.jsx("div",{className:Wt("header-divider-anchor"),style:{position:"absolute",pointerEvents:"auto",top:`${k?ge.y:se}px`,left:`${k?se:ge.x}px`,width:(k?0:ge.width-1)+"px",height:(k?ge.height-1:0)+"px",display:"flex"},tabIndex:-1,children:C})]})}));class Ao{naturalDimensions(r,i={}){const c=document.createElement("div");let u=i?.lineHeight??"1";!i?.lineHeight&&i.paintableText?.fontSize&&(u=Math.ceil(1.2*i.paintableText.fontSize)+"px");const f=document.createElement("div");f.style.visibility="hidden",f.style.position="absolute",f.style.textRendering="geometricprecision",f.style.display="inline-grid",f.style.overflowWrap="break-word",f.style.maxWidth=i.maxWidth?i.maxWidth+"px":"100%",f.style.lineHeight=u,f.style.letterSpacing=(i.paintableText?.letterSpacing??0)+"px",f.style.fontSize=i.paintableText?.fontSize?i.paintableText.fontSize+"px":"unset",f.style.fontFamily=i.paintableText?.fontSize?i.paintableText.fontFamily:"unset",f.style.fontWeight=i.paintableText?.fontWeight?""+i.paintableText.fontWeight:"400",f.style.fontStyle=i.paintableText?.fontStyle?i.paintableText.fontStyle:"normal",f.style.whiteSpace=i.paintableText?.wrap==="wrap"?"break-spaces":"pre",c.appendChild(f);const a=r.split(`
12
- `);for(let p=0;p<a.length;p++){let O=document.createElement("span");f.appendChild(O),O.textContent=a[p]}a.length!==0&&a[a.length-1].length!==0||f.appendChild(document.createElement("br")),document.body.appendChild(f);let s=f.getBoundingClientRect();return f.remove(),{width:s.width,height:s.height,maxLineHeight:1.2*(i.paintableText?.fontSize||1056/72)}}}const ho=(t=void 0)=>Object.freeze({clean:t,dirty:void 0,editMode:!1}),$o=ho(),Ko=l.memo(l.forwardRef((t,r)=>{const{editState:i=$o,defaultTextStyle:c,onStartEdit:u,onChangeEdit:f,onSubmitEdit:a,onCancelEdit:s,onDoneEdit:p,containerBounds:O,setNaturalSize:P,onNavigate:M,textProperties:U,style:K,autoFocus:ee,...Z}=t,_=l.useRef(null),{width:Me=0}=O??{},[re,k]=l.useState(()=>i);l.useEffect(()=>{k(i)},[i]);const X=U?.align||"left",ge=U?.vAlign||"middle",F=U?.fill||"#040404",fe=U?.wrap||"wrap",Le=U?.fontFamily||"Calibri",be=U?.fontSize||11,ze=U?.fontWeight||400,se=U?.fontStyle||"normal",we=re.dirty??re.clean??"";let A=2;const C=96*be/72,$e=1.2*C;ge==="right"&&(A+=1);const We=l.useMemo(()=>new Ao().naturalDimensions(we,{maxWidth:fe==="wrap"?Me-A:void 0,lineHeight:`${$e}px`,paintableText:{fontStyle:se,wrap:fe,letterSpacing:-.25}}),[we,fe,A,C,Le,ze,se,P,Me]),G=l.useCallback(()=>We.maxLineHeight?We.maxLineHeight+"px":"1.2",[We]),[xe,q]=l.useState(G);l.useLayoutEffect(()=>{q(G())},[O,We]),l.useLayoutEffect(()=>{P?.({width:fe==="wrap"?void 0:We.width+A,height:We.height})},[We,P]);const T=n.useCallbackRef(f,[f]),H=n.useCallbackRef(R=>{if(re.dirty===R)return;const Ce={...re};Ce.dirty=R,_.current,k(Ce),T?.(Ce)},[re]),St=n.useCallbackRef(R=>{if(re.editMode===R)return;const Ce={...re};Ce.editMode=R,k(Ce),T?.(Ce)},[re]),xt=n.useCallbackRef(()=>{try{return a?.(re),p?.(),!0}catch{return!1}},[a,re]),ct=n.useCallbackRef(()=>{k(i),s?.(),p?.()},[s,i]),rt=n.useCallbackRef(R=>{if(!_.current)return;if(R.isDefaultPrevented(),!(R.isTrusted||R.nativeEvent.ctrlKey||R.nativeEvent.metaKey||R.nativeEvent.altKey||R.nativeEvent.isComposing)&&On.indexOf(R.nativeEvent.key)!==-1){const te={...re};return te.dirty=R.nativeEvent.key==="Backspace"?"":(te.dirty??"")+R.key,k(te),T?.(te),void R.preventDefault()}const Ce=R.nativeEvent.shiftKey;if(R.which===n.KeyCodes.Escape)return R.preventDefault(),void ct();if(R.which===n.KeyCodes.F2)return St(!0),void R.preventDefault();if(R.which===n.KeyCodes.Enter&&(R.preventDefault(),xt()&&M?.(Ce?o.Direction.Up:o.Direction.Down)),R.which===n.KeyCodes.Tab)return R.preventDefault(),void(xt()&&M?.(Ce?o.Direction.Left:o.Direction.Right));if(!re.editMode){let te=null;switch(R.which){case n.KeyCodes.Left:te=o.Direction.Left;break;case n.KeyCodes.Right:te=o.Direction.Right;break;case n.KeyCodes.Up:te=o.Direction.Up;break;case n.KeyCodes.Down:te=o.Direction.Down}if(te)return void xt()}},[re,M]),[ae,Pt]=l.useState(!ee);l.useEffect(()=>{Pt(!1)},[]);const D=n.useImperativeElement(r,()=>({startEdit(R){let Ce=R?.initialSelection;if(!Ce){const ue=_.current.value.length??0;Ce={start:ue,end:ue,direction:"forward"}}_.current?.setSelectionRange(Ce.start,Ce.end,Ce.direction);const te={...i,editMode:R?.editMode??!1};R?.text!==void 0&&(te.dirty=R.text),te.editMode===i.editMode&&te.dirty===i.dirty||(k(te),T?.(te))},submitEdit:()=>xt(),cancelEdit(){ct()},autoFocus(){_.current?.focus()},getLineHeight:()=>We?.maxLineHeight??$e,dispatchEvent:R=>_.current.dispatchEvent(R)}),[i,u]);return Q.jsx("div",{ref:D,...Z,style:{background:"transparent",display:"flex",flexGrow:1,alignSelf:"center",height:We.height,maxWidth:"100%",maxHeight:"100%",...K},children:Q.jsx("textarea",{spellCheck:"false",ref:_,value:we,autoFocus:!1,disabled:ae,name:"cell-editor",autoComplete:"off",autoCapitalize:"off",style:{flex:"1 1 100%",position:"relative",fontSize:`${C}px`,fontFamily:`${Le}`,fontWeight:`${ze}`,fontStyle:`${se}`,padding:"0px",marginRight:X==="right"?"3px":"0px",marginLeft:X==="left"?"2px":"0px",lineHeight:xe,height:We.height,textRendering:"geometricPrecision",letterSpacing:"-0.25px",boxSizing:"border-box",borderWidth:0,outline:"none",resize:"none",overflow:"hidden",verticalAlign:"baseline",textAlign:X,background:"transparent",color:F,marginBottom:"0px",userSelect:"text",maxHeight:"100%",whiteSpace:fe==="wrap"?"break-spaces":"pre",wordWrap:"break-word"},onChange:R=>{H(R.target.value)},onDoubleClick:R=>{R.isTrusted},onMouseDown:R=>{St(!0)},onKeyDown:rt})})})),Bo=l.memo(t=>{const{value:r,view:i,bounds:c,range:u,zoom:f,children:a,style:s,...p}=t,O=s?.fontSize||1056/72;return Q.jsx("div",{style:{padding:"2px 4px",fontFamily:"Calibri",letterSpacing:-.25,lineHeight:1.2,fontSize:O,...s},...p,children:r})});exports.BaseGrid=zn,exports.DefaultCellEditor=Ko,exports.DefaultCellRenderer=Bo,exports.DefaultHeaderDivider=uo,exports.FillHandle=Un,exports.Grid=An,exports.HeaderDivider=zo,exports.HeaderRenderer=co,exports.RESET_SCROLL_EVENTS_DEBOUNCE_INTERVAL=150,exports.SELECTION_CLIP_INSETS=It,exports.STANDARD_KEY_CHARS=On,exports.SVGLine=Pn,exports.SVGRect=to,exports.ScrollableGrid=io,exports.Selection=Ln,exports.TouchSelectHandle=fn,exports.defaultSelectionRenderer=Yn,exports.getDefaultStringEditState=ho,exports.safeSelectionCoords=yt,exports.useCellLayout=eo,exports.useHeaderSelection=({gridRef:t,gridMainRef:r,orientation:i=o.RangeOrientation.Row,headerCount:c,selectionPolicy:u="multiple",newSelectionMode:f="clear",alwaysScrollToActiveCoords:a=!0,onDragStart:s,onDragEnd:p,pointerDownInterceptor:O,pointerMoveInterceptor:P,onPointerUp:M,newSelection:U,modifySelection:K,appendSelection:ee,clearSelections:Z})=>{const _=c??((i===o.RangeOrientation.Row?t.current?.rowCount:t.current?.columnCount)||0),Me=l.useRef(null),re=l.useRef(null),k=l.useRef(!1),X=l.useRef(null),ge=l.useCallback(A=>i===o.RangeOrientation.Column?{rowIndex:0,colIndex:A.colIndex}:{rowIndex:A.rowIndex,colIndex:0},[i]),F=l.useCallback(A=>i===o.RangeOrientation.Column?{rowIndex:r.current?r.current.rowCount-1:0,colIndex:A.colIndex}:{rowIndex:A.rowIndex,colIndex:r.current?r.current.columnCount-1:0},[i]),fe=A=>{re.current=F(A),K(re.current,Me.current)},Le=l.useCallback((A,C)=>{if(!t.current)return;const $e=t.current.getViewFromClient(A,C)?.getCellCoordsFromClient(A,C);return $e?(i===o.RangeOrientation.Column?$e.rowIndex=r.current.getViewport().rowStart:$e.colIndex=r.current.getViewport().colStart,$e):void 0},[]),be=l.useCallback((A,C=!1)=>{let $e=A;return C||($e={...A},i===o.RangeOrientation.Row?delete $e.colIndex:delete $e.rowIndex),r.current?.scrollCellCoordsIntoView($e)},[i]),ze=n.useCallbackRef(p,[p]),se=n.useCallbackRef(s,[s]),we=l.useMemo(()=>({onPointerDown:A=>{if(!t||!t.current||A.nativeEvent.defaultPrevented)return;const C=Le(A.nativeEvent.clientX,A.nativeEvent.clientY);if(!C)return;A.nativeEvent.which,n.MouseButtonCodes.Right;const $e=A.nativeEvent.shiftKey,We=A.nativeEvent.ctrlKey||A.nativeEvent.metaKey;if(O?.(A,C)===!1)return;se?.(),k.current=!0;const G=r.current?.getViewFromClient(A.nativeEvent.clientX,A.nativeEvent.clientY),xe=((q,T)=>i===o.RangeOrientation.Column?{...q,rowIndex:T.rowStart}:{...q,colIndex:T.colStart})(C,G.getVisibleRangeCoords());if($e)fe(C);else{if(We)return((q,T=q,H)=>{Me.current=ge(q),re.current=F(T),ee(Me.current,re.current,H)})(C,C,xe),void(a&&be(xe,!0));((q,T=q,H)=>{Me.current=ge(q),re.current=F(T),U(Me.current,re.current,H)})(C,C,xe),fe(C),a&&be(xe,!0)}},onPointerMoveOrWait:o.CommonUtils.throttle(A=>{if(!k.current||!t?.current)return;const C=Le(A.clientX,A.clientY);if(C&&P?.(A,C)!==!1){if(o.CoordUtils.isEqualCells(X.current,C))return Z();fe(C),be(C)}},60),onPointerUp:A=>{k.current=!1,ze?.(),M?.(A)},processTouch:!0,consumeTouch:!0}),[u,a,_,f,Z,O,M]);return{onPointerDown:n.useCallbackRef(n.useSynchronizedPointerHandler(we),[]),getCellCoordsFromClient:Le}},exports.useKeyboardEditorOverlay=t=>{const{view:r,canEdit:i=xo,getCellEditor:c,onBeforeStartEdit:u,onStartEdit:f,onSubmitEdit:a,onCancelEdit:s,onDoneEdit:p,isEditorStartKeyEvent:O=po,isEditorStartPointerEvent:P=mo,propsContainer:M,borderStrokeFill:U,borderStrokeWidth:K=2,getRangeCoords:ee=null,activeCoords:Z,alignment:_=n.HorizontalAlignment.Left}=t,[Me,re]=l.useState(!1),[k,X]=l.useState(void 0),ge=n.useCallbackRef((D,R,Ce,te,ue,Ae)=>{if(!R)return null;const et=ue?.(R,D),mt=D.getRangeCoordsBounds(et),tt=D.toClipBounds(mt),Tt=mt,st=D.getZoom();if(!tt)return null;Ce&&(Ce*=st),te&&(te*=st);let b=Tt,ne=!1;if(Ce!==void 0){let Ye={...et},jt=0;for(;!ne&&b.width<=Ce&&jt<20;){jt++,jt>19&&console.warn("max width reached");const $t=D.getTotalRangeCoords(),bt=D.getLayout();Ae===n.HorizontalAlignment.Left?Ye.colEnd+1<$t.colEnd?Ye.colEnd=bt.getColIndex(b.x+Ce):ne=!0:Ae===n.HorizontalAlignment.Right?Ye.colStart-1>=0?Ye.colStart=bt.getColIndex(b.x-(Ce-b.width)):ne=!0:Ae===n.HorizontalAlignment.Center&&Ye.colEnd+1<$t.colEnd&&Ye.colStart-1>=0?(Ye.colStart=bt.getColIndex(b.x-(Ce-b.width)/2),Ye.colEnd=bt.getColIndex(b.x+b.width+(Ce-b.width)/2)):ne=!0,ne||(b=D.getRangeCoordsBounds(Ye))}}b.height=Tt.height,te!==void 0&&(b.height=Math.max(te+1,Tt.height));const{width:Pe,height:lt}=D.getViewportSize();return{x:b.x??0,y:b.y??0,height:Math.min(lt-b.y,b.height)+1,width:Math.min(Pe-b.x,b.width)+1}},[_]),F=n.useCallbackRef(i,[i]),fe=l.useCallback(()=>{r?.getStage()?.focus()},[r]),Le=l.useRef(null),be=n.useCallbackRef(D=>{u?.(D),T(),re(!0),Le.current=null},[u]),ze=n.useCallbackRef(D=>{f?.(D.coords)},[f]),se=n.useCallbackRef(D=>{D.isSubmitted||D.isCancelled||(C.current.isEditorClosed=!0,fe(),D.isCancelled=!0,s?.(D.coords),T())},[s]),we=n.useCallbackRef(D=>{if(D.isSubmitted||D.isCancelled)return!1;try{return Le.current=D.coords,D.isEditorClosing=!0,D.isSubmitted=!0,D.isEditorSubmitted||(D.isEditorSubmitted=!0,D.editorRefs[0]?.submitEdit?.()),D.coords,a?.(D.coords),D.isEditorClosed=!0,fe(),T(),!0}catch(R){throw D.isEditorClosing=!1,D.isSubmitted=!1,R}},[a]),A=n.useCallbackRef(D=>{re(!1),p?.(D.coords),T()},[p]),C=l.useRef(null),$e=l.useRef(null),We=l.useRef(null),G=l.useRef([]),[xe,q]=l.useReducer(D=>D+1,0),T=l.useCallback(D=>{D&&G.current.push(D),q()},[]),H=n.useCallbackRef(D=>{if(D.defaultPrevented||D.isSynthetic||!r)return;const R=r?.getCellCoordsFromClient(D.clientX,D.clientY);R&&T({eventType:"pointer",event:D,coords:R})},[r]),St=n.useCallbackRef(D=>{const R=D.nativeEvent;H(R)},[r]),xt=n.useCallbackRef(D=>{if(D.defaultPrevented||D.isSynthetic||!r?.getStage())return;const R=$e.current;O(D,R)&&(D.stopPropagation(),D.preventDefault()),D.key,T({eventType:"keyboard",event:D,coords:R})},[r]);l.useLayoutEffect(()=>{const D=(te,ue)=>{const Ae=ue?.cell??te;if(!Ae)return null;const et=Ae;if(!F(Ae))return null;be?.(Ae);const mt=o.CommonUtils.uuidV4();ue=Object.freeze({autoFocus:!0,...ue}),We.current=Ae;const tt={coords:et,startEvent:ue,uuid:mt,isMounted:!1,isStarted:!1,isSubmitted:!1,isEditorSubmitted:!1,isEditorClosing:!1,isEditorClosed:!1,isCancelled:!1,events:[],editorRefsDispatchEditorEvent:[],editorRefs:[],onMount:Tt=>{tt.isMounted||(tt.isMounted=!0,T())},onUnmount:Tt=>{if(tt.editorRefs.length===0){const st=()=>{tt.isMounted=!1,T()};if(document.activeElement!==document.body)st();else{const b=ne=>{ne.defaultPrevented||ne.target!==document.body||xt(ne)};window.addEventListener("keydown",b,!0),r.getStage()?.addEventListener("focusin",()=>{window.removeEventListener("keydown",b),st()},So),fe()}}}};return tt};if(G.current.length<=0&&!C.current)return;const R=G.current[0];Fn(R),(te=>{const ue=[],Ae=te?.length??0;for(let et=0;et<Ae;et++){const mt=te[et];ue.push(Fn(mt))}})(G.current),C.current,C.current;let Ce=C.current;if(C.current){if(C.current.isDone)C.current=null;else if(C.current.isSubmitted||C.current.isCancelled){if(C.current.isMounted)return;C.current.isDone||(A(C.current),C.current.isDone=!0)}}if(R){if(R.eventType==="start"){const te=R,ue=te.startEvent?.cell??$e.current;C.current&&o.CoordUtils.isEqualCells(C.current.coords,ue)||(C.current=D(ue,te.startEvent))}else if(R.eventType==="keyboard"){const te=R.event;if(C.current){let ue=!1;switch(te.which){case n.KeyCodes.Left:case n.KeyCodes.Right:case n.KeyCodes.Up:case n.KeyCodes.Down:case n.KeyCodes.Enter:case n.KeyCodes.Tab:ue=!0}if(!ue){C.current.events.push(R);for(let Ae=0;Ae<C.current.editorRefsDispatchEditorEvent.length;Ae++)C.current.editorRefsDispatchEditorEvent[Ae](R)}}else if(O(te,R.coords)){let ue;const Ae=D(ue?.cell??$e.current,ue);Ae&&Ae.events.push(R),C.current=Ae}}else if(R.eventType==="pointer"){const te=R.event;if(C.current){C.current.events.push(R);for(let ue=0;ue<C.current.editorRefsDispatchEditorEvent.length;ue++)C.current.editorRefsDispatchEditorEvent[ue](R)}else{const ue=R?.coords??$e.current,Ae=P(te,ue);if(Ae){let et;typeof et!="boolean"&&(et=Ae);const mt=D(ue,et);mt&&mt.events.push(R),C.current=mt}}}else if(R.eventType==="submit"){if(C.current&&!C.current.isSubmitted&&!C.current.isCancelled){if(!C.current.isMounted)return;we(C.current)}}else if(R.eventType==="cancel"){if(C.current&&!C.current.isSubmitted&&!C.current.isCancelled){if(!C.current.isMounted)return;se(C.current)}}else if(R.eventType==="coordsChange"){const te=R;if($e.current=te.activeCoords,C.current,C.current&&!C.current.isSubmitted&&!C.current.isCancelled){if(!C.current.isMounted)return;try{we(C.current)}catch{}}}}G.current.length>0&&(G.current.shift(),T()),G.current.length===0&&(!C.current||C.current.isEditorClosing||C.current.isEditorClosed?!C.current&&Ce&&fe():C.current.isMounted&&!C.current.isStarted&&(C.current.isStarted=!0,C.current.startEvent.autoFocus&&(typeof C.current.startEvent.autoFocus=="string"?C.current.editorRefs[0]?.autoFocus(C.current.startEvent.autoFocus):C.current.editorRefs[0]?.autoFocus()),ze?.(C.current),requestAnimationFrame(()=>{r&&C.current?.coords&&r.scrollCellCoordsIntoView(C.current.coords)})))},[xe]),l.useEffect(()=>{We.current=Z;const D=C.current?.coords;o.CoordUtils.isEqualCells(D,Z)||(C.current&&(C.current.isEditorClosing=!0),T({eventType:"coordsChange",activeCoords:Z}))},[Z]);const ct=l.useCallback(D=>{xt(D.nativeEvent)},[]),{width:rt=0,height:ae=0}=k??{width:0,height:0},Pt=n.useCallbackRef(c,[c]);return{renderOverlay:n.useCallbackRef(D=>{if(!C.current||C.current.isEditorClosed)return C.current,null;C.current.coords;let R=ge(D,C.current.coords,rt,ae,ee,_),Ce=!0;R&&R.width!==0&&R.height!==0||(R={x:0,y:0,width:rt,height:rt},Ce=!1);const te=D.getZoom(),ue={containerBounds:{x:0,y:0,width:R.width/te,height:R.height/te},setNaturalSize:X,zoom:te};return Q.jsx(Co,{session:C.current,refLatestCoords:We,handleSubmitEdit:we,handleCancelEdit:se,cellBounds:R,borderStrokeWidth:K,borderStrokeFill:U,isInBounds:Ce,getCellEditor:Pt,propsEditor:ue,alignment:_,...M},"editor:"+C.current.uuid)},[c,ee,xe,rt,ae,_,K,U]),startEdit:l.useCallback(D=>{T({eventType:"start",startEvent:D})},[]),submitEdit:l.useCallback(()=>{T({eventType:"submit"})},[]),cancelEdit:l.useCallback(()=>{T({eventType:"cancel"})},[]),onKeyboardEvent:ct,onPointerEvent:St,onKeyboardEventNative:xt,onPointerEventNative:H,isEditing:Me}},exports.useSelection=({gridRef:t,commands:r,layout:i,selection:c,onSelectionChange:u,onSelectionDragStart:f,onSelectionDragEnd:a,selectionPolicy:s="multiple",newSelectionMode:p="clear",allowDeselectSelection:O=!0,onFillPreview:P,onFillCancel:M,onFillDone:U,onFill:K,disableFillDrag:ee=!K,fillHandleBorderColor:Z="white",hiddenRowsAt:_,hiddenColumnsAt:Me,isContentfulCell:re,contentfulCellFinder:k=yo,getDataCoords:X,alwaysScrollToActiveCoords:ge=!1,selectionBounds:F,pointerDownInterceptor:fe,pointerMoveInterceptor:Le,mergedRanges:be,canSelectionSpanMergedCells:ze=ko,onMoveDragStart:se,onMoveDragUpdate:we,onMoveDragEnd:A,onMoveDragDone:C,renderSelection:$e=Yn,disableMoveDrag:We=!A,getCellCoordsAsRangeCoords:G=o.CoordUtils.cellToRange,moveDragHitSize:xe=6,moveDragOutlineSize:q=4,selectionBackgroundColor:T="rgba(16, 124, 65, 0.1)",selectionBorderColor:H="rgb(33, 115, 70)",selectionRemoveBorderColor:St="rgb(255, 0, 0)",selectionRemoveBackgroundColor:xt="rgba(250, 10, 10, 0.1)",disableTouchSelection:ct=!1,propsTouchSelectHandle:rt})=>{const ae=l.useCallback(()=>({top:F?.top??0,left:F?.left??0,bottom:t.current?.rowCount-1||0,right:t.current?.columnCount-1||0}),[]),Pt=n.useCallbackRef(K,[K]),D=n.useCallbackRef(P,[P]),R=n.useCallbackRef(M,[M]),Ce=n.useCallbackRef(U,[U]),te=n.useCallbackRef(re,[re]),ue=n.useCallbackRef($e,[$e]),Ae=n.useCallbackRef((e,d=!1)=>wn(e,d,i.getRowOffset,d?ae().bottom:ae().top),[i?.getRowOffset]),et=n.useCallbackRef(_??Ae,[_]),mt=n.useCallbackRef((e,d=!1)=>wn(e,d,i.getColOffset,d?ae().right:ae().left),[i?.getColOffset]),tt=n.useCallbackRef(Me??mt,[Me]),[Tt,st]=l.useState(()=>yt(c)),b=l.useMemo(()=>yt(Tt),[Tt]),ne=l.useRef(b),Pe=l.useRef(null);l.useMemo(()=>{Pe.current=c},[c]),l.useLayoutEffect(o.CommonUtils.throttle(()=>{st(e=>{const d=yt(c);return Pe.current=d,o.CoordUtils.isEqualSelectionCoords(d,e)?e:d})},0),[c]),l.useLayoutEffect(()=>{ne.current=b},[b]),l.useEffect(()=>{Pe.current||!u||o.CoordUtils.isEqualSelectionCoords(c,b)||u(b)},[b]);const lt=l.useCallback(e=>{st(d=>{Pe.current=null,d=yt(d);let g=typeof e=="function"?e(d.ranges):e??Tn;if(o.CoordUtils.isEqualRangesArrays(g,d.ranges))return d;let h=Math.max(g.length?0:-1,Math.min(d.rangeIndex,g.length-1)),x=d.cell;h===-1||o.CoordUtils.isCellWithinRange(x,g[h])||(x={rowIndex:g[h].rowStart,colIndex:g[h].colStart}),g.length===1&&o.CoordUtils.isSingleCell(g[0])&&o.CoordUtils.isCellWithinRange(x,g[0])&&(g=[],h=-1);const I={cell:x,ranges:g,rangeIndex:h};return o.CoordUtils.isEqualSelectionCoords(I,d)?d:I})},[]),Ye=n.useCallbackRef(e=>{st(d=>{Pe.current=null,d=yt(d);const g=e??ro,h=G(g);if(!o.CoordUtils.isSingleCell(h)&&d.ranges.length===0)return{ranges:[h],rangeIndex:0,cell:g};if(o.CoordUtils.isEqualCells(g,d.cell))return d;let x=d.ranges,I=d.rangeIndex;d.ranges.length===1&&(o.CoordUtils.isSingleCell(d.ranges[0])&&o.CoordUtils.isCellWithinRange(g,d.ranges[0])||!o.CoordUtils.isCellWithinRange(g,d.ranges[0]))&&(x=[],I=-1);const m={ranges:x,rangeIndex:I,cell:g};return o.CoordUtils.isEqualSelectionCoords(m,d)?d:m})},[G]),[jt,$t]=l.useState(null),[bt,Xt]=l.useState(null),At=l.useRef(null),[ve,Ut]=l.useState(null),ht=l.useRef(null),kt=l.useRef(null),[en,Ht]=l.useState(null),je=l.useRef(null),Ke=l.useRef(null),Ft=l.useRef(be);l.useEffect(()=>{Ft.current=be},[be]);const ft=n.useCallbackRef((e,d={inline:"nearest",block:"nearest"})=>{let{rowIndex:g,colIndex:h}=e;g===void 0&&b?.cell&&(g=b.cell.rowIndex),h===void 0&&b?.cell&&(h=b.cell.colIndex),g!==void 0&&h!==void 0&&t.current?.scrollCellCoordsIntoView({rowIndex:g,colIndex:h},d)},[b]),Ot=l.useCallback(e=>{const d=ae();return e.rowIndex<d.top||e.colIndex<d.left||e.colIndex>d.right||e.rowIndex>d.bottom},[]),Se=n.useCallbackRef((e,d)=>{if(!t?.current)return null;const g={rowStart:Math.min(e.rowIndex,d.rowIndex),colStart:Math.min(e.colIndex,d.colIndex),rowEnd:Math.max(e.rowIndex,d.rowIndex),colEnd:Math.max(e.colIndex,d.colIndex)};if(ze?.(g))return g;const x=G(e),I=G(d),m={rowStart:Math.min(x.rowStart,I.rowStart),colStart:Math.min(x.colStart,I.colStart),rowEnd:Math.max(x.rowEnd,I.rowEnd),colEnd:Math.max(x.colEnd,I.colEnd)};let N;return typeof Ft.current=="function"?N=Ft.current(m):be&&(N=be),N?o.CoordUtils.extendRangeToUnionRanges(m,N):m},[ze,G]),He=n.useCallbackRef((e,d,g)=>{const h=e.ranges.length>0?e.ranges[e.rangeIndex]:{rowStart:e.cell.rowIndex,colStart:e.cell.colIndex,rowEnd:e.cell.rowIndex,colEnd:e.cell.colIndex},x={rowStart:Math.min(d.rowIndex??h.rowStart,g.rowIndex??h.rowStart),colStart:Math.min(d.colIndex??h.colStart,g.colIndex??h.colStart),rowEnd:Math.max(d.rowIndex??h.rowEnd,g.rowIndex??h.rowEnd),colEnd:Math.max(d.colIndex??h.colEnd,g.colIndex??h.colEnd)},I={rowIndex:x.rowStart,colIndex:x.colStart},m={rowIndex:x.rowEnd,colIndex:x.colEnd};if(!(Ot(I)||Ot(m)))return Se(I,m)},[Se]),it=n.useCallbackRef((e,d,g)=>{if(s==="single"||!ne.current)return;const h=He(ne.current,e,d??ne.current.cell);if(!h)return;const x=ne.current.rangeIndex;lt(I=>I.length?I.map((m,N)=>x===N?h:m):[h]),g&&h&&Ye({colIndex:h.colStart,rowIndex:h.rowStart})},[]),pt=l.useCallback((e,d,g)=>{if(!ne.current)return;e={...ne.current?.cell,...e},d=d??e;const h=He(ne.current,e,d);if(!h)return;const x={rowIndex:h.rowStart,colIndex:h.colStart},I={...x,...g};p==="clear"?(je.current=I,Kt()):p==="modify"?it(x):pe(x),Ye(I)},[]),pe=l.useCallback((e,d=e,g)=>{s!=="multiple"||!e||Ot(e)||Ot(d)||st(h=>{Pe.current=null,h=yt(h);const x=Se(e,d);if(!x)return h;let I=h.ranges.length>0?[...h.ranges]:[Se(h.cell,h.cell)];I.push(x);const m={ranges:I,cell:{rowIndex:x.rowStart,colIndex:x.colStart,...g},rangeIndex:I.length-1};return o.CoordUtils.isEqualSelectionCoords(m,h)?h:m})},[]),Kt=()=>{lt(Tn)},Rt=n.ReactUtils.detectIt().primaryInput==="touch",Je=l.useRef(null),Ct=l.useRef(null),vt=l.useRef(null),Nt=l.useMemo(()=>({onPointerDown:e=>{if(!t||!t.current)return!1;const d=e.nativeEvent,g=t.current.getViewFromClient(d.clientX,d.clientY);if(d.pointerType==="touch"||d.type==="touchstart")return Ct.current={topLeft:g.getScrollTopLeft(),point:{x:d.clientX,y:d.clientY}},!0;const h=g.getCellCoordsFromClient(e.nativeEvent.clientX,e.nativeEvent.clientY);if(!h)return!1;Je.current={anchor:g.getAnchor(),coords:h},Ke.current=null;const x=e.nativeEvent.which===n.MouseButtonCodes.Right;if(x&&o.CoordUtils.indexOfCoords(h,b.ranges)!==-1)return!1;const I=e.nativeEvent.shiftKey,m=e.nativeEvent.ctrlKey||e.nativeEvent.metaKey,N=m,B=O,W=b.ranges.length>0,Y=m&&B;if(fe?.(e,h,b)===!1)return!1;f?.(ne.current,e);const Ie=!x&&s!=="single";if(I)return it(h),Ie;const Xe=o.CoordUtils.isEqualCells(h,b.cell);if(N){if(Xe&&(!Y||!W))return Ie;if(m&&o.CoordUtils.indexOfCoords(h,b.ranges)!==-1&&B){ht.current=h;const $=Se(h,h);return kt.current=$,Ut($),Ie}return pe(h),Ie}ge&&ft(h),Xe&&b.ranges.length===0||pt(h)},onPointerMoveOrWait:o.CommonUtils.throttle((e,d)=>{if(!t?.current||e.pointerType==="touch"||e.type==="touchmove"||!Je.current)return;const g=Je.current.anchor;let h=t.current.getViewFromLocation(g),x=h.getCellCoordsFromClient(e.clientX,e.clientY);if(!o.CoordUtils.isEqualCells(x,Je.current?.coords)&&(Je.current={anchor:g,coords:x},x&&Le?.(e,x,ne.current)!==!1)){if(ht.current){const I={rowStart:Math.min(x.rowIndex,ht.current.rowIndex),colStart:Math.min(x.colIndex,ht.current.colIndex),rowEnd:Math.max(x.rowIndex,ht.current.rowIndex),colEnd:Math.max(x.colIndex,ht.current.colIndex)},m={rowIndex:I.rowStart,colIndex:I.colStart},N={rowIndex:I.rowEnd,colIndex:I.colEnd};if(Ot(m)||Ot(N))return;const B=Se(m,N);kt.current=B,Ut(B)}else it(x);vt.current=d,hn(h,x,t)}},60),onPointerUp:e=>{if(Je.current=null,e.pointerType==="touch"||e.type==="touchend"){if(Ct.current){const g=t.current.getViewFromClient(Ct.current.point.x,Ct.current.point.y),h=g.getScrollTopLeft();if(h.left===Ct.current.topLeft.left&&h.top===Ct.current.topLeft.top){const x=g.getCellCoordsFromClient(Ct.current.point.x,Ct.current.point.y);pt(x)}}return Ct.current=null,void(Je.current=null)}try{a?.(ne.current,e)}catch(g){console.warn(g)}if(!ht.current)return;const d=kt.current;ht.current=null,kt.current=null,Ut(null),st(g=>{if(Pe.current=null,(g=yt(g)).ranges.length===0)return g;let h=[],x=-1,I=g.cell;for(let N=0;N<g.ranges.length;N++){const B=g.ranges[N];if(o.CoordUtils.isRangesIntersect(B,d)){const W=o.CommonUtils.subtractRect({top:B.rowStart,left:B.colStart,bottom:B.rowEnd+1,right:B.colEnd+1},{top:d.rowStart,left:d.colStart,bottom:d.rowEnd+1,right:d.colEnd+1});for(let Y=0;Y<W.length;Y++){const Ie={rowStart:W[Y].top,colStart:W[Y].left,rowEnd:W[Y].bottom-1,colEnd:W[Y].right-1};h.push(Ie),o.CoordUtils.isCellWithinRange(g.cell,Ie)&&(x=h.length-1)}}else h.push(B);h.length>0&&x===-1&&o.CoordUtils.isCellWithinRange(g.cell,B)&&(x=h.length-1,I={rowIndex:h[h.length-1].rowStart,colIndex:h[h.length-1].colStart})}const m={cell:I,rangeIndex:x,ranges:h};return o.CoordUtils.isEqualSelectionCoords(m,g)?g:m})},processTouch:!0,consumeTouch:!1}),[b,s,O,ge,p]),xn=n.useCallbackRef(n.useSynchronizedPointerHandler(Nt),[]),pn=l.useMemo(()=>({onSelectionPointerDown:(e,d,g,h,x=b.cell,I=ge,m=e.nativeEvent.shiftKey,N=!1)=>{if(!t||!t.current)return!1;e.stopPropagation(),e.preventDefault(),e.nativeEvent.stopImmediatePropagation();const B=g??t.current.getViewFromClient(e.nativeEvent.clientX,e.nativeEvent.clientY),W=h??B.getCellCoordsFromClient(e.nativeEvent.clientX,e.nativeEvent.clientY);if(!W)return!1;Je.current={anchor:B.getAnchor(),coords:W},Ke.current=null;const Y=e.nativeEvent.which===n.MouseButtonCodes.Right;if(Y&&o.CoordUtils.indexOfCoords(W,b.ranges)!==-1)return!1;const Ie=e.nativeEvent.ctrlKey||e.nativeEvent.metaKey,Xe=Ie,$=O,ie=b.ranges.length>0,z=Ie&&$;if(fe?.(e,W,b)===!1)return!1;f?.(ne.current,e);const le=!Y&&s!=="single";if(m)return it(W,x,N),le;const qe=o.CoordUtils.isEqualCells(W,x);if(Xe){if(qe&&(!z||!ie))return le;if(z&&o.CoordUtils.indexOfCoords(W,b.ranges)!==-1&&$){ht.current=W;const ut=Se(W,W);return kt.current=ut,Ut(ut),le}return pe(W),le}I&&ft(W),qe&&b.ranges.length===0||pt(W)},onSelectionPointerMoveOrWait:(e,d,g,h,x,I=b.cell,m=!0,N=!1)=>{if(!t?.current||(e.stopPropagation(),e.preventDefault(),e.nativeEvent.stopImmediatePropagation(),!Je.current))return;const B=Je.current.anchor;let W=h??t.current.getViewFromLocation(B),Y=x??W.getCellCoordsFromClient(e.clientX,e.clientY);if(!o.CoordUtils.isEqualCells(Y,Je.current?.coords)&&(Je.current={anchor:B,coords:Y},Y&&Le?.(e,Y,ne.current)!==!1)){if(ht.current){const Ie={rowStart:Math.min(Y.rowIndex,ht.current.rowIndex),colStart:Math.min(Y.colIndex,ht.current.colIndex),rowEnd:Math.max(Y.rowIndex,ht.current.rowIndex),colEnd:Math.max(Y.colIndex,ht.current.colIndex)},Xe={rowIndex:Ie.rowStart,colIndex:Ie.colStart},$={rowIndex:Ie.rowEnd,colIndex:Ie.colEnd};if(Ot(Xe)||Ot($))return;const ie=Se(Xe,$);kt.current=ie,Ut(ie)}else it(Y,I,N);m&&hn(W,Y,t)}},onPointerUp:e=>{Je.current=null,e.stopPropagation(),e.preventDefault(),e.nativeEvent.stopImmediatePropagation();try{a?.(ne.current,e)}catch(g){console.warn(g)}if(!ht.current)return;const d=kt.current;ht.current=null,kt.current=null,Ut(null),st(g=>{if(Pe.current=null,(g=yt(g)).ranges.length===0)return g;let h=[],x=-1,I=g.cell;for(let N=0;N<g.ranges.length;N++){const B=g.ranges[N];if(o.CoordUtils.isRangesIntersect(B,d)){const W=o.CommonUtils.subtractRect({top:B.rowStart,left:B.colStart,bottom:B.rowEnd+1,right:B.colEnd+1},{top:d.rowStart,left:d.colStart,bottom:d.rowEnd+1,right:d.colEnd+1});for(let Y=0;Y<W.length;Y++){const Ie={rowStart:W[Y].top,colStart:W[Y].left,rowEnd:W[Y].bottom-1,colEnd:W[Y].right-1};h.push(Ie),o.CoordUtils.isCellWithinRange(g.cell,Ie)&&(x=h.length-1)}}else h.push(B);h.length>0&&x===-1&&o.CoordUtils.isCellWithinRange(g.cell,B)&&(x=h.length-1,I={rowIndex:h[h.length-1].rowStart,colIndex:h[h.length-1].colStart})}const m={cell:I,rangeIndex:x,ranges:h};return o.CoordUtils.isEqualSelectionCoords(m,g)?g:m})}}),[b,s,O,ge,p]),Qe=n.useCallbackRef((e,d=!1,g=!1,h=0)=>{if(!t.current||!b.cell)return;let x=b.cell,I=b.cell;if(d&&b.ranges.length>0){const z=b.ranges[b.rangeIndex],le=b.cell;switch(e){case o.Direction.Up:I={rowIndex:le.rowIndex===z.rowStart?z.rowEnd:z.rowStart,colIndex:z.colEnd},x={rowIndex:le.rowIndex===z.rowStart?z.rowStart:z.rowEnd,colIndex:z.colStart};break;case o.Direction.Down:I={rowIndex:le.rowIndex===z.rowEnd?z.rowStart:z.rowEnd,colIndex:z.colEnd},x={rowIndex:le.rowIndex===z.rowEnd?z.rowEnd:z.rowStart,colIndex:z.colStart};break;case o.Direction.Left:I={rowIndex:z.rowEnd,colIndex:le.colIndex===z.colStart?z.colEnd:z.colStart},x={rowIndex:z.rowStart,colIndex:le.colIndex===z.colStart?z.colStart:z.colEnd};break;case o.Direction.Right:I={rowIndex:z.rowEnd,colIndex:le.colIndex===z.colEnd?z.colStart:z.colEnd},x={rowIndex:z.rowStart,colIndex:le.colIndex===z.colEnd?z.colEnd:z.colStart}}}const m=G(I);let{rowStart:N,colStart:B}=m;const W=ae();if(Ke.current)switch(e){case o.Direction.Up:case o.Direction.Down:Ke.current.colIndex>=m.colStart&&Ke.current.colIndex<=m.colEnd&&(B=Ke.current.colIndex);break;case o.Direction.Left:case o.Direction.Right:Ke.current.rowIndex>=m.rowStart&&Ke.current.rowIndex<=m.rowEnd&&(N=Ke.current.rowIndex)}if(!h){switch(e){case o.Direction.Up:N=Oe(et,Math.max(m.rowStart-1,W.top),e);break;case o.Direction.Down:N=Oe(et,Math.min(m.rowEnd+1,W.bottom),e);break;case o.Direction.Left:B=Oe(tt,Math.max(m.colStart-1,W.left),e);break;case o.Direction.Right:B=Oe(tt,Math.min(m.colEnd+1,W.right),e)}if(g)switch(e){case o.Direction.Up:N=k({...I,colIndex:b.cell.colIndex},te,et,e,!1,Math.max(W.top,et(W.top,!1)));break;case o.Direction.Down:N=k({...I,colIndex:b.cell.colIndex},te,et,e,!1,Math.min(W.bottom,W.bottom-et(W.bottom,!0)));break;case o.Direction.Left:B=k({...I,rowIndex:b.cell.rowIndex},te,tt,e,!1,Math.max(W.left,tt(W.left,!1)));break;case o.Direction.Right:B=k({...I,rowIndex:b.cell.rowIndex},te,tt,e,!1,Math.min(W.right,W.right-tt(W.right,!0)))}}let Y=null;if(h){let z=0;switch(e){case o.Direction.Up:z=i.getRowOffset(N+1),N=Math.max(W.top,i.getRowIndex(z-h)),Y={top:i.getRowOffset(N+1)-(z-t.current.getScrollPosition().top)};break;case o.Direction.Down:z=i.getRowOffset(N),N=Math.min(W.bottom,i.getRowIndex(z+h)),Y={top:i.getRowOffset(N)-(z-t.current.getScrollPosition().top)};break;case o.Direction.Left:z=i.getColOffset(B+1),B=Math.max(W.left,i.getColIndex(z-h)),Y={left:i.getColOffset(B+1)-(z-t.current.getScrollPosition().left)};break;case o.Direction.Right:z=i.getColOffset(B),B=Math.min(W.right,i.getColIndex(z+h)),Y={left:i.getColOffset(B)-(z-t.current.getScrollPosition().left)}}}const Ie={rowIndex:N,colIndex:B},Xe=G(Ie),$={rowIndex:Xe.rowStart,colIndex:Xe.colStart};d||(Ke.current=Ie);const ie=o.CoordUtils.isEqualCells(je.current,$)&&o.CoordUtils.isEqualCells(je.current,x);if(d&&!ie?it($,x):pt($),Y)t.current.scrollTo(Y);else{if(d&&je.current){const z=ae();if(e===o.Direction.Right&&je.current.colIndex===z.left||e===o.Direction.Left&&je.current.colIndex===z.right||e===o.Direction.Up&&je.current.rowIndex===z.bottom||e===o.Direction.Down&&je.current.rowIndex===z.top)return}e===o.Direction.Left||e===o.Direction.Right?ft({colIndex:Ie.colIndex}):e!==o.Direction.Up&&e!==o.Direction.Down||ft({rowIndex:Ie.rowIndex})}},[b,G]),Lt=n.useCallbackRef(e=>{if(!t.current)return;if(b.ranges.length===0)return void Qe(e);const d=G(b.cell);if(o.CoordUtils.isEqualRangesArrays([d],b.ranges))return void Qe(e);const g=Dn(b,e,G,et,tt);st(h=>{Pe.current=null,h=yt(h);const x={...h,cell:g.cell,rangeIndex:g.rangeIndex};return o.CoordUtils.isEqualSelectionCoords(x,h)?h:x}),g.cell&&ft(g.cell)},[b,G]),mn=l.useCallback(()=>{const e=ae();it({rowIndex:e.top},{rowIndex:e.bottom})},[]),Cn=l.useCallback(()=>{const e=ae();it({colIndex:e.left},{colIndex:e.right})},[]),Bt=n.useCallbackRef(()=>{b.cell&&t?.current&&ft(b.cell)},[b.cell]),tn=l.useCallback((e=!1)=>{const d={rowIndex:ae().top};e?it(d):pt(d),ft(d)},[]),nn=l.useCallback((e=!1)=>{const d={rowIndex:ae().bottom};e?it(d):pt(d),ft(d)},[]),Gt=l.useCallback((e=!1)=>{const d={colIndex:ae().left};e?it(d):pt(d),ft(d)},[]),qt=l.useCallback((e=!1)=>{const d=ae(),g={rowIndex:d.top,colIndex:d.left};e?it(g):pt(g),ft(g)},[]),_t=l.useCallback((e=!1)=>{const d=ae(),g={colIndex:X?.()?.colEnd??d.right};e?it(g):pt(g),ft(g)},[X]),Vt=l.useCallback((e=!1)=>{const d=ae(),g={rowIndex:X?.()?.rowEnd??d.bottom,colIndex:X?.()?.colEnd??d.right};e?it(g):pt(g),ft(g)},[X]),Zt=n.useCallbackRef(e=>{if(!t.current||b.ranges.length<=1)return;const d=e===o.Direction.Left||e===o.Direction.Up;let g=b.rangeIndex+(d?-1:1);g<0?g=b.ranges.length-1:g>b.ranges.length-1&&(g=0);const h=b.ranges[g],x=Dn({cell:{rowIndex:h.rowEnd,colIndex:h.colEnd},rangeIndex:0,ranges:[h]},o.Direction.Right,G,et,tt);st(I=>{Pe.current=null,I=yt(I);const m={...I,cell:x.cell,rangeIndex:g};return o.CoordUtils.isEqualSelectionCoords(m,I)?I:m}),x.cell&&ft(x.cell)},[b,G]),Sn=n.useCallbackRef(()=>{const e=jn(b);st(d=>{Pe.current=null,d=yt(d);const g={...d,visibleSelection:e};return o.CoordUtils.isEqualSelectionCoords(g,d)?d:g}),e.cell&&ft(e.cell)},[b,G]),bn=n.useCallbackRef(()=>{if(!t.current||b.ranges.length===0)return;const e=b.cell,d=b.ranges[b.rangeIndex],g=jn({cell:e,rangeIndex:0,ranges:[d]}),h=g.ranges[g.rangeIndex];let x;x=h.rowStart===e.rowIndex&&h.colStart===e.colIndex?{rowIndex:h.rowStart,colIndex:h.colEnd}:h.rowStart===e.rowIndex&&h.colEnd===e.colIndex?{rowIndex:h.rowEnd,colIndex:h.colStart}:h.rowEnd===e.rowIndex&&h.colStart===e.colIndex?{rowIndex:h.rowEnd,colIndex:h.colEnd}:{rowIndex:h.rowStart,colIndex:h.colStart},st(I=>{I=yt(I);const m={...I,cell:x};return o.CoordUtils.isEqualSelectionCoords(m,I)?I:m}),x&&ft(x)},[b,G]),on=l.useCallback((e=!1)=>{Qe(o.Direction.Down,e,!1,t.current.getDimensions().containerHeight)},[]),Mt=l.useCallback((e=!1)=>{Qe(o.Direction.Up,e,!1,t.current.getDimensions().containerHeight)},[]),rn=l.useCallback((e=!1)=>{Qe(o.Direction.Right,e,!1,t.current.getDimensions().containerWidth)},[]),Jt=l.useCallback((e=!1)=>{Qe(o.Direction.Left,e,!1,t.current.getDimensions().containerWidth)},[]),ln=l.useCallback(()=>{Lt(o.Direction.Left)},[]),cn=l.useCallback(()=>{Lt(o.Direction.Right)},[]),vn=l.useCallback(()=>{Lt(o.Direction.Up)},[]),yn=l.useCallback(()=>{Lt(o.Direction.Down)},[]),Qt=l.useCallback(()=>{Zt(o.Direction.Left)},[]),Rn=l.useCallback(()=>{Zt(o.Direction.Right)},[]),En=l.useCallback(()=>{bn()},[]),sn=l.useCallback(()=>{Qe(o.Direction.Left,!1,!1)},[]),w=l.useCallback(()=>{Qe(o.Direction.Left,!0,!1)},[]),S=l.useCallback(()=>{Qe(o.Direction.Left,!1,!0)},[]),E=l.useCallback(()=>{Qe(o.Direction.Left,!0,!0)},[]),v=l.useCallback(()=>{Qe(o.Direction.Right,!1,!1)},[]),y=l.useCallback(()=>{Qe(o.Direction.Right,!0,!1)},[]),L=l.useCallback(()=>{Qe(o.Direction.Right,!1,!0)},[]),he=l.useCallback(()=>{Qe(o.Direction.Right,!0,!0)},[]),oe=l.useCallback(()=>{Qe(o.Direction.Up,!1,!1)},[]),de=l.useCallback(()=>{Qe(o.Direction.Up,!0,!1)},[]),V=l.useCallback(()=>{Qe(o.Direction.Up,!1,!0)},[]),me=l.useCallback(()=>{Qe(o.Direction.Up,!0,!0)},[]),Be=l.useCallback(()=>{Qe(o.Direction.Down,!1,!1)},[]),Ue=l.useCallback(()=>{Qe(o.Direction.Down,!0,!1)},[]),Ne=l.useCallback(()=>{Qe(o.Direction.Down,!1,!0)},[]),ye=l.useCallback(()=>{Qe(o.Direction.Down,!0,!0)},[]),ce=l.useCallback(()=>{lt(e=>e.slice(0,-1))},[]),nt=l.useMemo(()=>{const e=ae();return((d,g,h,x,I)=>{const m=d.length;for(let N=0;N<m;N++){const B=d[N];if(B.rowStart===g&&B.colStart===h&&B.rowEnd===x&&B.colEnd===I)return!0}return!1})(b.ranges,e.top,e.left,e.bottom,e.right)},[F,b.ranges]),Ge=l.useCallback((e,d=!0)=>{je.current=e,Ye(e),d&&e&&t?.current&&ft(e)},[]),Te=n.useCallbackRef((e=!0)=>{const d=At.current;if(!ne.current?.cell)return;const g=ne.current?.ranges,h=ne.current?.cell;if(!h||!d||!d)return;let x=null;if(x=g.length>0?g[g.length-1]:G(h),x.colEnd>=x.colStart&&x.rowEnd>=x.rowStart){const I=Hn(x,d);let m=e?Pt:D;try{m?.(x,d,I.direction)}catch(N){console.warn(N)}finally{e&&Ce?.()}}},[G]),_e=l.useRef(null),gt=l.useMemo(()=>({onPointerDown:(e,d)=>{if(vt.current=d,!t||!t.current)return!1;const g=t.current.getViewFromClient(e.nativeEvent.clientX,e.nativeEvent.clientY),h=g?.getCellCoordsFromClient(e.nativeEvent.clientX,e.nativeEvent.clientY);h&&(e.stopPropagation(),$t("crosshair"),_e.current={anchor:g.getAnchor(),coords:h})},onPointerMoveOrWait:(e,d)=>{if(ee||!t?.current||!ne.current||!_e.current)return;const g=_e.current.anchor;let h=t.current.getViewFromLocation(g),x=h.getCellCoordsFromClient(e.clientX,e.clientY);if(!x)return;_e.current={anchor:g,coords:x};const I=ne.current.ranges;let m=Se(ne.current.cell,x);if(!m)return;const N=I.length>0,B=N?I[I.length-1]:G(ne.current.cell);if(!m)return;const W=m.rowStart<B.rowStart?o.Direction.Up:m.rowEnd>B.rowEnd?o.Direction.Down:m.colEnd>B.colEnd?o.Direction.Right:o.Direction.Left,Y=ae();W===o.Direction.Left&&(m={...B,colStart:Math.max(Y.left,m.colStart)}),W===o.Direction.Up&&(m={...B,rowStart:Math.max(Y.top,m.rowStart)}),W===o.Direction.Right&&(m={...B,colEnd:Math.min(Y.right,m.colEnd)}),W===o.Direction.Down&&(m={...B,rowEnd:Math.min(Y.bottom,m.rowEnd)});const Ie=Hn(B,m);if(!ze?.(B)){let Xe;typeof Ft.current=="function"?Xe=Ft.current(B):be&&(Xe=be),m=(($,ie,z,le,qe,ut)=>{const j={...ie};if(z.length===0)return j;if(qe===o.Direction.Left){const ke=$.colEnd+1-$.colStart;j.colStart=$.colStart-Math.ceil(ut/ke)*ke,j.colStart<le.left&&(j.colStart=j.colStart+Math.ceil((le.left-j.colStart)/ke)*ke)}else if(qe===o.Direction.Right){const ke=$.colEnd+1-$.colStart;j.colEnd=$.colEnd+Math.ceil(ut/ke)*ke,j.colEnd>le.right&&(j.colEnd=j.colEnd-Math.ceil((le.right-j.colEnd)/ke)*ke)}else if(qe===o.Direction.Up){const ke=$.rowEnd+1-$.rowStart;j.rowStart=$.rowStart-Math.ceil(ut/ke)*ke,j.rowStart<le.top&&(j.rowStart=j.rowStart+Math.ceil((le.top-j.rowStart)/ke)*ke)}else if(qe===o.Direction.Down){const ke=$.rowEnd+1-$.rowStart;j.rowEnd=$.rowEnd+Math.ceil(ut/ke)*ke,j.rowEnd>le.bottom&&(j.rowEnd=j.rowEnd-Math.ceil((le.bottom-j.rowEnd)/ke)*ke)}return j})(B,m,Xe,Y,Ie.direction,Ie.amount)}if(N&&o.CoordUtils.isRangeWithinRange(m,B)&&(m=null),!o.CoordUtils.isEqualRanges(m,At.current)){if(Xt(m),At.current=m,!m){try{R?.()}catch{}return void Ce?.()}Te(!1)}vt.current=d,hn(h,x,t)},onPointerUp:(e,d)=>{vt.current=d,Promise.resolve(Te(!0)).finally(()=>{Ce?.(),Xt(null),At.current=null,_e.current=null,$t(null),t.current?.focus()})}}),[G]),Fe=n.useSynchronizedPointerHandler(gt),J=l.useMemo(()=>({onPointerDown:Fe}),[Fe]),[Ve,at]=l.useState(null),Re=l.useRef(null),Ze=l.useMemo(()=>({onPointerDown:(e,d)=>{if(vt.current=d,!t||!t.current)return!1;const g=t.current.getViewFromClient(e.nativeEvent.clientX,e.nativeEvent.clientY),h=g?.getCellCoordsFromClient(e.nativeEvent.clientX,e.nativeEvent.clientY);if(!h)return;if(fe?.(e,h,b)===!1)return!1;e.stopPropagation(),$t("default");const x=g.getRelativePointFromClient(0,0),I=ne.current?.ranges[ne.current?.ranges.length-1]??o.CoordUtils.cellToRange(ne.current?.cell),m=g.toClipBounds(g.getRangeCoordsBounds(I)),N={x:0,y:0};m.x-x.x>e.nativeEvent.clientX?N.x=e.nativeEvent.clientX-(m.x-x.x):e.nativeEvent.clientX>=m.x-x.x+m.width&&(N.x=Math.max(0,e.nativeEvent.clientX-(m.x-x.x+m.width))+1),m.y-x.y>e.nativeEvent.clientY?N.y=e.nativeEvent.clientY-(m.y-x.y):e.nativeEvent.clientY>=m.y-x.y+m.height&&(N.y=Math.max(0,e.nativeEvent.clientY-(m.y-x.y+m.height))+1),se?.(I,e,d),Re.current={range:I,anchor:g.getAnchor(),cell:h,isMoving:!1,extrusion:N}},onPointerMoveOrWait:(e,d,g)=>{if(We||!t?.current||!ne.current||!Re.current)return;const h=e.clientX-g.clientX,x=e.clientY-g.clientY;if(Re.current.isMoving=Re.current.isMoving||Math.abs(h)>Math.max(1,2)||Math.abs(x)>Math.max(1,2)||performance.now()-g.timeStamp>500,!Re.current.isMoving)return;const I=Re.current.anchor,m=Re.current.extrusion;let N=t.current.getViewFromLocation(I),B=N.getCellCoordsFromClient(e.clientX-m.x,e.clientY-m.y,!0);if(!B)return;const W=Re.current.cell,Y=Re.current.range,Ie=ae(),Xe=Y.colEnd-Y.colStart+1,$=Math.min(Math.max(0,W.colIndex-Y.colStart),Xe-1),ie=Math.min(Ie.right-Xe+1,Math.max(Ie.left,B.colIndex-$)),z=Y.rowEnd-Y.rowStart+1,le=Math.min(Math.max(0,W.rowIndex-Y.rowStart),z-1),qe=Math.min(Ie.bottom-z+1,Math.max(Ie.top,B.rowIndex-le)),ut={colStart:ie,colEnd:ie+Xe-1,rowStart:qe,rowEnd:qe+z-1};o.CoordUtils.isEqualRanges(Ve,ut)&&!(j=>!j||!vt.current||vt.current.ctrlKey!==j.ctrlKey||vt.current.shiftKey!==j.shiftKey||vt.current.altKey!==j.altKey||vt.current.metaKey!==j.metaKey)(e)||(at(ut),we?.(ut,e,d)),vt.current=d,hn(N,B,t)},onPointerUp:(e,d)=>{vt.current=d;const g=()=>{at(null),Re.current=null,$t(null),t.current?.focus()};if(!Re.current)return void g();const h=Re.current.range,x=Ve;A?.(h,e,d),Promise.resolve(h&&x&&C?.(h,x,e,d)).finally(()=>{g()})}}),[Ve]),De=n.useSynchronizedPointerHandler(Ze),Ee=l.useMemo(()=>({onPointerDown:De}),[De]),dt=l.useRef(null),ot=l.useMemo(()=>{const e=o.CoordUtils.isEqualSelectionCoords(b,dt.current)?dt.current:b;return dt.current=e,e},[b]),wt=l.useCallback(e=>{let d=null,g="br";const h=[],x={stroke:Z,fill:T,strokeWidth:.5},I=($,ie,z)=>{const le=e.toClipBounds(e.getRangeCoordsBounds($),It);if(!le)return;le.x=le.width>0?le.x:le.x-x.strokeWidth/2,le.y=le.height>0?le.y:le.y-x.strokeWidth/2,le.width=Math.max(le.width,x.strokeWidth),le.height=Math.max(le.height,x.strokeWidth);const qe={key:`selection-fill-${ie}`,range:$,...le,...x};if(z){const ut=e.getCellCoordsAsRangeCoords(z);qe.cell=z,qe.boundsPath=e.toClipBounds(e.getRangeCoordsBounds(ut),It),qe.boundsPath&&(qe.boundsPath.width<=0||qe.boundsPath.height<=0)&&(delete qe.boundsPath,delete qe.cell)}return ue(qe)};let m=Pe.current||(b?yt(b):null);const N=m?.cell?e.getCellCoordsAsRangeCoords(m?.cell):Io;!m||m.ranges&&m.ranges.length!==0||(m={ranges:[N],rangeIndex:0,cell:m.cell});const B=m?m.ranges:null;B&&B.length;for(let $=0;m&&$<m.ranges.length;$++){const ie=m.ranges[$],z=I(ie,$,$===m.rangeIndex?m.cell:null);z&&h.push(z);const le=2,qe=.5,ut=e.toClipBounds(e.getRangeCoordsBounds(ie,{top:0,left:0,right:0,bottom:0}),It);if(ut){const j=(m.ranges.length,4);h.push(ue({range:ie,key:`selection-inside-edge-${$}`,x:ut.x-1,y:ut.y-1,width:Math.max(ut.width+1,0),height:Math.max(ut.height+1,0),style:{overflow:"hidden"},stroke:Z,strokeWidth:j}))}if(m.ranges.length===1){const j=e.toClipBounds(e.getRangeCoordsBounds(ie),It);if(j){We||h.push(ue({range:ie,key:`move-selection-hit-box-${$}`,x:j.width>1?j.x:j.x-(xe/2+1),y:j.height>1?j.y:j.y-(xe/2+1),width:Math.max(j.width+2,1),height:Math.max(j.height+2,1),stroke:"transparent",style:{boxShadow:"none"},propsPath:{cursor:Ve?void 0:"move",pointerEvents:"stroke"},strokeWidth:xe,...Ee}));const ke=le;h.push(ue({range:ie,key:`selection-single-${$}`,x:j.x-ke/2,y:j.y-ke/2,width:Math.max(j.width+ke/2,1),height:Math.max(j.height+ke/2,1),stroke:H,strokeWidth:ke}))}}else{const j=e.toClipBounds(e.getRangeCoordsBounds(ie,{top:-1,left:-1,right:-2,bottom:-2}),It);j&&h.push(ue({range:ie,key:`selection-multi-${$}`,x:j.width>1?j.x:j.x-qe/2,y:j.height>1?j.y:j.y-qe/2,width:Math.max(j.width,qe)+1,height:Math.max(j.height,qe)+1,stroke:H,style:{overflow:"hidden"},strokeWidth:2}))}if(m.ranges.length>1&&$===m.rangeIndex){const j=e.getCellCoordsAsRangeCoords(m.cell),ke=e.toClipBounds(e.getRangeCoordsBounds(j,{top:1,left:1,right:-1,bottom:-1}),It);ke&&h.push(ue({range:ie,key:`selection-anchor-${$}`,x:ke.x,y:ke.y,width:Math.max(ke.width,qe),height:Math.max(ke.height,qe),stroke:H,style:{overflow:"hidden"},strokeWidth:2}))}if($===m.ranges.length-1){d=null,g=null;const j=ie.rowStart===ae().top&&ie.rowEnd===ae().bottom,ke=ie.colStart===ae().left&&ie.colEnd===ae().right,$n=e.getRangeCoordsBounds(ie);let Dt=null;if(j||ke){if(Dt=e.toClipBounds($n,It),Object.keys(e.allViews()).length>1){const an=e.getVisibleRangeCoords(),Kn=e.allViews()[o.AnchorLocation.TopLeft],fo=e.allViews()[o.AnchorLocation.Top],go=e.allViews()[o.AnchorLocation.Left],dn=e.getAnchor();(ke&&(dn===o.AnchorLocation.Top&&Kn||dn===o.AnchorLocation.Center&&go||!o.CoordUtils.isCellWithinRange({colIndex:ie.colStart,rowIndex:ie.rowEnd},an)&&!o.CoordUtils.isCellWithinRange({colIndex:ie.colStart,rowIndex:ie.rowEnd+1},an))||j&&(dn===o.AnchorLocation.Left&&Kn||dn===o.AnchorLocation.Center&&fo||!o.CoordUtils.isCellWithinRange({colIndex:ie.colEnd,rowIndex:ie.rowStart},an)&&!o.CoordUtils.isCellWithinRange({colIndex:ie.colEnd+1,rowIndex:ie.rowStart},an)))&&(Dt=null)}}else Dt=e.toClipBounds($n,It);if(!Dt||Dt.width===0||Dt.height===0)continue;d={x:Dt.x+Dt.width+1,y:Dt.y+Dt.height+1},Dt.width===0||Dt.height===0||ie.rowStart===ae().top&&ie.colStart===ae().left&&ie.rowEnd===ae().bottom&&ie.colEnd===ae().right||(j?(d.y=le,g="tr"):ke&&(d.x=le,g="bl"))}}let W=null;if(ve){const $=e.toClipBounds(e.getRangeCoordsBounds(ve,{top:0,left:0,right:0,bottom:0}),It);$&&(W=ue({...x,range:ve,key:"remove-selection",x:$.x,y:$.y,width:$.width,height:$.height,strokeWidth:2,stroke:St,fill:xt}))}let Y=null;if(bt){const $=e.toClipBounds(e.getRangeCoordsBounds(bt,{top:0,left:0,right:0,bottom:0}),It);$&&(Y=ue({range:bt,key:"selection-fill-outline",x:$.x-2/2,y:$.y-2/2,width:$.width+2/2,height:$.height+2/2,strokeWidth:2,stroke:H,strokeDasharray:"3 2"}))}let Ie=null;!ee&&d&&!Ve&&(Ie=l.createElement(Un,{...d,corner:g,size:7.5,borderStroke:`${Z} solid`,style:{borderRadius:1},background:H,...J,key:"fillHandle"}));const Xe=[...h];if(W&&Xe.push(W),Y&&Xe.push(Y),Ie&&Xe.push(Ie),!ct&&Rt&&m?.ranges.length===1&&m.ranges[m.ranges.length-1]){const $=m.ranges[m.ranges.length-1],ie=$.rowStart===ae().top&&$.rowEnd===ae().bottom,z=$.colStart===ae().left&&$.colEnd===ae().right,le={view:e,range:$,borderStroke:`${H} solid 3px`,background:Z,selectionTouchPointerHandler:pn,...rt,onTouchSelectStart:qe=>Ht(qe),onTouchSelectEnd:()=>Ht(null),currentTouchAnchor:en};Xe.push(Q.jsx(fn,{anchor:z?"b":ie?"r":"br",scrollableElement:t.current,...le},"touch-select-handle-after")),Xe.push(Q.jsx(fn,{anchor:z?"t":ie?"l":"tl",scrollableElement:t.current,...le},"touch-select-handle-before"))}if(Ve){const $=e.toClipBounds(e.getRangeCoordsBounds(Ve,{top:1,left:1,right:1,bottom:1}),It);$&&Xe.push(ue({range:Ve,key:"selection-move-outline",x:$.x-q/2,y:$.y-q/2,width:Math.max($.width+q/2,1),height:Math.max($.height+q/2,1),stroke:H,style:{boxShadow:"none",transitionDuration:"70ms",transitionTimingFunction:"ease-in",transitionProperty:"left, top, width, height",willChange:"left, top, width, height"},strokeWidth:q}))}return Q.jsx("div",{children:Xe},"selection")},[ot,ve,ee,bt,We,Ve,ae,Z,H,T,St,xt,ct,rt,en]),Et=l.useMemo(()=>{const e=()=>t.current;return[new n.SimpleCommand("moveToPageDown",e,{label:"Page Down",description:"Shift viewport down one page.",shortcut:[{key:"PageDown"}]},()=>on(!1)),new n.SimpleCommand("selectToPageDown",e,{label:"Select To Page Down",description:"Shift viewport and select down one page.",shortcut:[{key:"PageDown",modifiers:[n.KeyModifiers.Shift]}]},()=>on(!0)),new n.SimpleCommand("moveToPageRight",e,{label:"Page Right",description:"Shift viewport right one page.",shortcut:[{key:"PageDown",modifiers:[n.KeyModifiers.Alt]}]},()=>rn(!1)),new n.SimpleCommand("selectToPageRight",e,{label:"Page Right",description:"Shift viewport right one page.",shortcut:[{key:"PageDown",modifiers:[n.KeyModifiers.Alt,n.KeyModifiers.Shift]}]},()=>rn(!0)),new n.SimpleCommand("moveToPageUp",e,{label:"Page Up",description:"Shift viewport up one page.",shortcut:[{key:"PageUp"}]},()=>Mt(!1)),new n.SimpleCommand("selectToPageUp",e,{label:"Page Up",description:"Shift viewport up one page.",shortcut:[{key:"PageUp",modifiers:[n.KeyModifiers.Shift]}]},()=>Mt(!0)),new n.SimpleCommand("moveToPageLeft",e,{label:"Page Left",description:"Shift viewport left one page.",shortcut:[{key:"PageUp",modifiers:[n.KeyModifiers.Alt]}]},()=>Jt(!1)),new n.SimpleCommand("selectToPageLeft",e,{label:"Page Left",description:"Shift viewport left one page.",shortcut:[{key:"PageUp",modifiers:[n.KeyModifiers.Alt,n.KeyModifiers.Shift]}]},()=>Jt(!0)),new n.SimpleCommand("selectColumn",e,{label:"Select Column",description:"Select the columns for the selected cells.",shortcut:{key:"Space",modifiers:[n.KeyModifiers.Ctrl]}},mn),new n.SimpleCommand("selectRow",e,{label:"Select Row",description:"Select the rows for the selected cells.",shortcut:{key:"Space",modifiers:[n.KeyModifiers.Shift]}},Cn),new n.SimpleCommand("selectToColumnStart",e,{label:"Select To Column Start",description:"Select the columns to the beginning of the sheet."},()=>tn(!0)),new n.SimpleCommand("selectToColumnEnd",e,{label:"Select To Column End",description:"Select the columns to the end of the sheet."},()=>nn(!0)),new n.SimpleCommand("moveToRowStart",e,{label:"Move to Row Home",description:"Move to the beginning of the row.",shortcut:[{key:"Home"}]},()=>Gt(!1)),new n.SimpleCommand("selectToRowStart",e,{label:"Select to Row Home",description:"Select to the beginning of the row.",shortcut:[{key:"Home",modifiers:[n.KeyModifiers.Shift]}]},()=>Gt(!0)),new n.SimpleCommand("moveToSheetStart",e,{label:"Move to Sheet Home",description:"Move to the beginning of the sheet.",shortcut:[{key:"Home",modifiers:[n.KeyModifiers.Ctrl]}]},()=>qt(!1)),new n.SimpleCommand("selectToSheetStart",e,{label:"Select to Sheet Home",description:"Select to the beginning of the sheet.",shortcut:[{key:"Home",modifiers:[n.KeyModifiers.Ctrl,n.KeyModifiers.Shift]}]},()=>qt(!0)),new n.SimpleCommand("moveToRowEnd",e,{label:"Move to Row End",description:"Move to the end of the row.",shortcut:[{key:"End"}]},()=>_t(!1)),new n.SimpleCommand("selectToRowEnd",e,{label:"Select to Row End",description:"Select to the end of the row.",shortcut:[{key:"End",modifiers:[n.KeyModifiers.Shift]}]},()=>_t(!0)),new n.SimpleCommand("moveToSheetEnd",e,{label:"Move to Sheet End",description:"Move to the end of the sheet.",shortcut:[{key:"End",modifiers:[n.KeyModifiers.Ctrl]}]},()=>Vt(!1)),new n.SimpleCommand("selectToSheetEnd",e,{label:"Select to Sheet End",description:"Select to the end of the sheet.",shortcut:[{key:"End",modifiers:[n.KeyModifiers.Ctrl,n.KeyModifiers.Shift]}]},()=>Vt(!0)),new n.SimpleCommand("scrollToActiveCoords",e,{label:"Scroll to Active Cell",description:"Scroll to the Active Cell.",shortcut:{key:"Backspace",modifiers:[n.KeyModifiers.Ctrl]}},Bt),new n.SimpleCommand("scrollToActiveCoordsClearSelection",e,{label:"Scroll to Active Cell",description:"Scroll to the Active Cell and clear selection.",shortcut:{key:"Backspace",modifiers:[n.KeyModifiers.Shift]}},()=>{Kt(),Ge(b.cell,!0)}),new n.SimpleCommand("traverseSelectionRight",e,{label:"Traverse Right",description:"Traverse the selection moving rightward.",shortcut:{key:"Tab"}},cn),new n.SimpleCommand("traverseSelectionLeft",e,{label:"Traverse Left",description:"Traverse the selection moving leftward.",shortcut:{key:"Tab",modifiers:[n.KeyModifiers.Shift]}},ln),new n.SimpleCommand("traverseSelectionDown",e,{label:"Traverse Down",description:"Traverse the selection moving downward.",shortcut:[{key:"Enter"},{key:"NumpadEnter"}]},yn),new n.SimpleCommand("traverseSelectionUp",e,{label:"Traverse Up",description:"Traverse the selection moving upward.",shortcut:[{key:"Enter",modifiers:[n.KeyModifiers.Shift]},{key:"NumpadEnter",modifiers:[n.KeyModifiers.Shift]}]},vn),new n.SimpleCommand("moveLeft",e,{label:"Move Left",description:"Move active cell to the left.",shortcut:[{key:"ArrowLeft"}]},sn),new n.SimpleCommand("selectLeft",e,{label:"Select Left",description:"Extend selection left.",shortcut:[{key:"ArrowLeft",modifiers:[n.KeyModifiers.Shift]}]},w),new n.SimpleCommand("moveContentfulLeft",e,{label:"Move Left Contentful",description:"Move left to the next cell with content.",shortcut:[{key:"ArrowLeft",modifiers:[n.KeyModifiers.Ctrl]}]},S),new n.SimpleCommand("selectContentfulLeft",e,{label:"Select Left Contentful",description:"Extend selection left to the next cell with content.",shortcut:[{key:"ArrowLeft",modifiers:[n.KeyModifiers.Ctrl,n.KeyModifiers.Shift]}]},E),new n.SimpleCommand("moveRight",e,{label:"Move Right",description:"Move active cell to the right.",shortcut:[{key:"ArrowRight"}]},v),new n.SimpleCommand("selectRight",e,{label:"Select Right",description:"Extend selection right.",shortcut:[{key:"ArrowRight",modifiers:[n.KeyModifiers.Shift]}]},y),new n.SimpleCommand("moveContentfulRight",e,{label:"Move Right Contentful",description:"Move right to the next cell with content.",shortcut:[{key:"ArrowRight",modifiers:[n.KeyModifiers.Ctrl]}]},L),new n.SimpleCommand("selectContentfulRight",e,{label:"Select Right Contentful",description:"Extend selection right to the next cell with content.",shortcut:[{key:"ArrowRight",modifiers:[n.KeyModifiers.Ctrl,n.KeyModifiers.Shift]}]},he),new n.SimpleCommand("moveUp",e,{label:"Move Up",description:"Move active cell to the up.",shortcut:[{key:"ArrowUp"}]},oe),new n.SimpleCommand("selectUp",e,{label:"Select Up",description:"Extend selection up.",shortcut:[{key:"ArrowUp",modifiers:[n.KeyModifiers.Shift]}]},de),new n.SimpleCommand("moveContentfulUp",e,{label:"Move Up Contentful",description:"Move up to the next cell with content.",shortcut:[{key:"ArrowUp",modifiers:[n.KeyModifiers.Ctrl]}]},V),new n.SimpleCommand("selectContentfulUp",e,{label:"Select Up Contentful",description:"Extend selection up to the next cell with content.",shortcut:[{key:"ArrowUp",modifiers:[n.KeyModifiers.Ctrl,n.KeyModifiers.Shift]}]},me),new n.SimpleCommand("moveDown",e,{label:"Move Down",description:"Move active cell to the down.",shortcut:[{key:"ArrowDown"}]},Be),new n.SimpleCommand("selectDown",e,{label:"Select Down",description:"Extend selection down.",shortcut:[{key:"ArrowDown",modifiers:[n.KeyModifiers.Shift]}]},Ue),new n.SimpleCommand("moveContentfulDown",e,{label:"Move Down Contentful",description:"Move down to the next cell with content.",shortcut:[{key:"ArrowDown",modifiers:[n.KeyModifiers.Ctrl]}]},Ne),new n.SimpleCommand("selectContentfulDown",e,{label:"Select Down Contentful",description:"Extend selection down to the next cell with content.",shortcut:[{key:"ArrowDown",modifiers:[n.KeyModifiers.Ctrl,n.KeyModifiers.Shift]}]},ye),new n.SimpleCommand("selectVisible",e,{label:"Select Visible",description:"Select visible cells only.",shortcut:{key:";",modifiers:[n.KeyModifiers.Alt]}},Sn),new n.SimpleCommand("traverseSelectionPreviousRange",e,{label:"Traverse Previous Range",description:"Traverse the selection to the previous range.",shortcut:{key:"ArrowLeft",modifiers:[n.KeyModifiers.Ctrl,n.KeyModifiers.Alt]}},Qt),new n.SimpleCommand("traverseSelectionNextRange",e,{label:"Traverse Next Range",description:"Traverse the selection to the next range.",shortcut:{key:"ArrowRight",modifiers:[n.KeyModifiers.Ctrl,n.KeyModifiers.Alt]}},Rn),new n.SimpleCommand("traverseSelectionCorners",e,{label:"Traverse Corners",description:"Traverse the selection through the corners of the selected range.",shortcut:{key:".",modifiers:[n.KeyModifiers.Ctrl]}},En)]},[]);return l.useMemo(()=>{r?.addCommands(Et,!0)},[r]),{selection:ot,setSelectionCell:Ge,setSelectionRanges:lt,renderOverlay:wt,cursor:jt,onPointerDown:xn,clearLastSelection:ce,newSelection:pt,modifySelection:it,appendSelection:pe,clearSelections:Kt,isEntire:nt,navigate:Qe,navigateSelection:Lt}};
1
+ (function(){try{if(typeof document<`u`){var e=document.createElement(`style`);e.appendChild(document.createTextNode(`._grid-stage_rzp9d_1{width:100%;height:100%;position:absolute;top:0;left:0}._grid-stage_rzp9d_1>*{pointer-events:none;position:absolute;inset:0}._grid-stage_rzp9d_1>*>*{pointer-events:auto}._sheetxl-grid_5yo0n_7{box-sizing:border-box;user-select:none;contain:strict;width:100%;height:100%;position:relative}._sheetxl-grid_5yo0n_7 *{box-sizing:border-box!important}._sheetxl-grid_5yo0n_7 :focus{outline:none}._sheetxl-grid_5yo0n_7>*{contain:size layout style}._virtual-div_16eab_1{position:absolute}._tiles_ikr1b_7{will-change:transform}._tiles_ikr1b_7 .tile{white-space:pre;position:absolute}._tiles_ikr1b_7 .tile>*{contain:strict;position:absolute}._gridlines_ikr1b_26,._gridlines_ikr1b_26 *{pointer-events:none;position:absolute;overflow:visible}.cell{letter-spacing:-.25px;padding:2px 4px;font-family:Calibri;line-height:1.2}/*$vite$:1*/`)),document.head.appendChild(e)}}catch(e){console.error(`vite-plugin-css-injected-by-js`,e)}})();
2
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(o,s,c)=>(c=o==null?{}:e(i(o)),((e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c,l=r(i),u=0,d=l.length;u<d;u++)c=l[u],a.call(e,c)||c===o||t(e,c,{get:(e=>i[e]).bind(null,c),enumerable:!(s=n(i,c))||s.enumerable});return e})(!s&&o&&o.__esModule?c:t(c,`default`,{value:o,enumerable:!0}),o));let s=require("react");s=o(s,1);let c=require("react/jsx-runtime"),l=require("@sheetxl/utils-react"),u=require("@sheetxl/utils"),d=require("react-dom");d=o(d,1);var f=(e,t)=>{if(typeof t==`number`){let n=t;return{getOffset:e=>e<=0?0:e*n,getIndex:t=>t<=0?0:Math.min(e,Math.floor(t/n))}}let n=t,r=[],i=-1,a=e=>e<=0?0:((e=>{if(e<=i)return;let t=i>=0?r[i]+n(i):0;for(let a=i+1;a<=e;a++)r[a]=t,t+=n(a);i=e})(e),r[e]),o=(e,t,n)=>{for(;e<=t;){let r=e+(t-e>>1);a(r)<=n?e=r+1:t=r-1}return e>0?e-1:0};return{getOffset:a,getIndex:t=>{if(t<=0||e<=0)return 0;if((i>0?r[i]:0)>t)return o(0,i,t);let s=i>0?i:0,c=1;for(;s<e&&a(s)<=t;)s+=c,c*=2;if(s>=e){let r=e-1;if(t>=a(r)+n(r))return e}return o(Math.floor(s/2),Math.min(s,e-1),t)}}},p=e=>{let t=e!=null,n=e?.rowCount??0,r=e?.columnCount??0,i=e?.getRowHeight,a=e?.getColumnWidth;return(0,s.useMemo)(()=>{if(!t)return null;let e=f(n,i??20),o=f(r,a??75);return{getColOffset:o.getOffset,getColIndex:o.getIndex,getRowOffset:e.getOffset,getRowIndex:e.getIndex}},[t,n,r,i,a])},m=(0,s.createContext)(null),h=()=>(0,s.useContext)(m),g=e=>{let{linePoints:t,bounds:n,propsPath:r,style:i,...a}=e;return n?(0,c.jsx)(`svg`,{width:`${n.width}`,height:`${n.height}`,viewBox:`0 0 ${n.width} ${n.height}`,style:{position:`absolute`,left:`${n.x}px`,top:`${n.y}px`,width:`${n.width}px`,height:`${n.height}px`,overflow:`visible`,pointerEvents:`none`,transitionTimingFunction:`linear`,transitionProperty:`left, top, width, height`,willChange:`left, top, width, height, stroke-dashoffset`,...i},...a,children:(0,c.jsx)(`path`,{d:`M ${t[0]} ${t[1]} L ${t[2]} ${t[3]}`,fill:`none`,vectorEffect:`non-scaling-stroke`,stroke:`black`,...r})}):null},_=(0,s.memo)(e=>{let{bounds:t,fill:n,stroke:r,alignWidth:i=1,disableAlign:a=!1,disableEdgeAware:o=!1,inset:u=0,hole:d,animatedStroke:f,animatedTransition:p,strokeDasharray:m,strokeDashoffset:g,propsFillPath:_,propsStrokePath:b,className:S,style:C,propsRoot:w}=e,T=h(),E=t??T;if((0,s.useEffect)(()=>{f&&x()},[f]),!E)return null;let D=l.ReactUtils.getDevicePixelRatio(),O=a?i:i/D,k,A,j,M,N,P,F;if(a)k=E.x,A=E.y,j=E.x+E.width,M=E.y+E.height;else{let e=e=>o?l.ReactUtils.snapLineCenter(e,O,D):l.ReactUtils.edgeCenter(e,`leading`,i,D),t=e=>o?l.ReactUtils.snapLineCenter(e,O,D):l.ReactUtils.edgeCenter(e,`trailing`,i,D),n=u/D;k=e(E.x+n),A=e(E.y+n),j=t(E.x+E.width-n),M=t(E.y+E.height-n)}if(d)if(a)N=d;else{let e=l.ReactUtils.snapDeviceEdge(d.x,D),t=l.ReactUtils.snapDeviceEdge(d.y,D);N={x:e,y:t,width:l.ReactUtils.snapDeviceEdge(d.x+d.width,D)-e,height:l.ReactUtils.snapDeviceEdge(d.y+d.height,D)-t}}if(f){let e={dashGap:2,speed:50,dashLength:8,gapColor:`var(--sxl-color-base-100, #fff)`,...typeof f==`object`?f:void 0},t=e.dashGap+e.dashLength;P={strokeDasharray:`${e.dashLength}px ${e.dashGap}px`,strokeDashoffset:`${t}px`,animation:`${y} ${e.speed*t}ms linear infinite`,willChange:`stroke-dashoffset`},F=e.gapColor}let I=p?`d 60ms ease-in-out`:`none`,L=null;if(n){let e=v({top:A,left:k,bottom:M,right:j});N&&(e+=` `+v({top:N.y,left:N.x,bottom:N.y+N.height,right:N.x+N.width})),L=(0,c.jsx)(`path`,{style:{d:`path("${e}")`,transition:I,fill:n,..._?.style},stroke:`none`,fillRule:`evenodd`},`fill`)}let R=null;if(r&&i){let e=v({top:A,left:k,right:j,bottom:M});R=(0,c.jsxs)(c.Fragment,{children:[F&&(0,c.jsx)(`path`,{fill:`none`,vectorEffect:`non-scaling-stroke`,strokeWidth:O,style:{d:`path("${e}")`,transition:I,stroke:F}},`stroke-under`),(0,c.jsx)(`path`,{fill:`none`,strokeDasharray:m,strokeDashoffset:g,vectorEffect:`non-scaling-stroke`,strokeWidth:O,...b,style:{d:`path("${e}")`,transition:I,stroke:r,...P,...b?.style}},`stroke`)]})}return(0,c.jsxs)(`svg`,{className:S,width:`100%`,height:`100%`,style:{position:`absolute`,left:0,top:0,pointerEvents:`none`,overflow:`visible`,willChange:f||p?`d, stroke-dashoffset`:void 0,...C},...w,children:[L,R]})});_.displayName=`RectangleSVG`;var v=(e,t=!0)=>`M ${e.left} ${e.top} L ${e.right} ${e.top} L ${e.right} ${e.bottom} L ${e.left} ${e.bottom} L ${e.left} ${e.top} ${t?`Z`:``}`,y=`sxl-marching-ants`,b=!1,x=()=>{if(b||typeof document>`u`)return;b=!0;let e=document.createElement(`style`);e.appendChild(document.createTextNode(`@keyframes ${y} { to { stroke-dashoffset: 0; } }`)),document.head.appendChild(e)};function S(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`)if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=S(e[t]))&&(r&&(r+=` `),r+=n)}else for(n in e)e[n]&&(r&&(r+=` `),r+=n);return r}function C(){for(var e,t,n=0,r=``,i=arguments.length;n<i;n++)(e=arguments[n])&&(t=S(e))&&(r&&(r+=` `),r+=t);return r}var w=(e,t,n)=>Math.min(n,Math.max(t,e)),T=(e,t,n)=>{let r=[],i=t;for(;i<=n;){let t=e?Math.max(0,e(i)):0;t===0?(r.push(i),i++):i+=t}return r},E=(e,t,n,r,i,a)=>{if(n-t>=i-r)return r;let o=r;return e===`nearest`&&(r-t>0?e=`start`:n-i>0&&(e=`end`)),e===`start`?o=t:e===`end`?o=n-(i-r):e===`center`&&(o=t+(n-t)/2-(i-r)/2),o<r?Math.max(0,o):o>r?Math.min(o,a-(i-r)):void 0},D=(e,t=!1,n,r)=>{if(!n)return 0;let i=!t,a=i?1:-1,o=n(i?e:e+1),s=n(i?e+1:e),c=e+(i?2:-1),l=0;for(;(s-o)*a<=0;){if(i&&c-1>r+1||!i&&c+1<r)return l;o=s,s=n(c),c+=a,l++}return l},O=(e,t,n)=>{if(!n)return!1;let r=n.x;if(e<r||e>r+n.width)return!1;let i=n.y;return!(t<i||t>i+n.height)},k=`_grid-stage_rzp9d_1`,A={pointerdown:`onPointerDown`,pointermove:`onPointerMove`,pointerup:`onPointerUp`,mousedown:`onMouseDown`,mousemove:`onMouseMove`,mouseup:`onMouseUp`,mouseover:`onMouseOver`,mouseout:`onMouseOut`,dblclick:`onDoubleClick`,contextmenu:`onContextMenu`},j=Object.values(A),M=[...Object.keys(A),`keydown`,`keypress`,`keyup`],N=new Set(M),P=e=>{let t=e?.getElement();return t&&typeof t.isStage==`function`&&t.isStage()?t:null},F=(0,s.memo)((0,s.forwardRef)((e,t)=>{let{className:n,onFocus:r,onBlur:i,children:a,...o}=e,u=W(),d=(0,s.useRef)(u);d.current=u;let f=(0,s.useRef)(new Set),p=(0,s.useRef)(0),m=(0,s.useCallback)(e=>{let t={responder:e,seq:p.current++};return f.current.add(t),()=>{f.current.delete(t)}},[]),h=(0,s.useRef)(new Set),g=(0,s.useRef)(0),_=(0,s.useCallback)(e=>(h.current.add(e),e.hasHandlers&&g.current++,()=>{h.current.delete(e),e.hasHandlers&&g.current--}),[]),v=(0,s.useRef)(null),y=(0,s.useRef)(0),b=(0,s.useCallback)((e,t)=>{let n=v.current;if(n&&n.x===e&&n.y===t)return n.stack;let r=document.elementsFromPoint(e,t);return v.current={x:e,y:t,stack:r},y.current||typeof requestAnimationFrame!=`function`||(y.current=requestAnimationFrame(()=>{y.current=0,v.current=null})),r},[]);(0,s.useEffect)(()=>()=>{y.current&&typeof cancelAnimationFrame==`function`&&cancelAnimationFrame(y.current)},[]);let x=(0,s.useCallback)((e,t,n)=>{if(!t&&!n)return()=>{};let r=(e,r)=>{t?.(e),n?.(e,r)};return m({getHandler:t=>t===e?r:void 0})},[m]),S=(0,s.useCallback)(e=>{if(!e||e===H.current)return-1/0;let t=new Map;if(f.current.forEach(e=>{let n=e.responder.getElement?.();n&&t.set(n,e.responder.zIndex??0)}),t.size===0)return-1/0;let n=e;for(;n;){let e=t.get(n);if(e!==void 0)return e;if(n===H.current)break;n=n.parentElement}return-1/0},[]),w=(0,s.useCallback)((e,t,n)=>{if(A[e]===void 0||g.current===0)return I;let r=t.nativeEvent;if(typeof r?.clientX!=`number`||typeof r?.clientY!=`number`)return I;let i=new Map;if(h.current.forEach(e=>{if(!e.hasHandlers||!e.getHandler)return;let t=e.getElement();t&&i.set(t,e)}),i.size===0)return I;let a=e=>{let t=e;for(;t;){if(i.has(t))return t;if(t===H.current)break;t=t.parentElement}return null},o=a(t.target),s=e===`pointermove`||e===`mousemove`,c=s?b(r.clientX,r.clientY):document.elementsFromPoint(r.clientX,r.clientY),l=[],u=new Set;for(let e=0;e<c.length;e++){let t=a(c[e]);if(!t||u.has(t)||(u.add(t),t===o))continue;let r=i.get(t),s=r.zIndex??0;s>=n||l.push({slot:s,box:!0,ord:e,getHandler:r.getHandler})}return o&&!u.has(o)&&s?I:l},[b]),T=(0,s.useCallback)((e,t,n)=>{let r=H.current;if(r&&t.target instanceof Node&&!r.contains(t.target))return;let i=N.has(e)?S(t.target):1/0,a=[...w(e,t,i)];if(f.current.forEach(e=>{let t=e.responder.zIndex??0;t>=i||a.push({slot:t,box:!1,ord:-e.seq,getHandler:t=>e.responder.getHandler(t)})}),a.length===0)return;a.sort((e,t)=>t.slot-e.slot||!e.box-+!t.box||e.ord-t.ord);let o=a.length;for(let r=0;r<o&&!t.isPropagationStopped();r++)a[r].getHandler(e)?.(t,n)},[w,S]);(0,s.useEffect)(()=>{let e=H.current;if(!e)return;let t=t=>{let n=t.type,r=S(t.target),i=[];if(f.current.forEach(e=>{(e.responder.zIndex??0)>r&&i.push(e)}),i.length===0)return;i.sort((e,t)=>(t.responder.zIndex??0)-(e.responder.zIndex??0)||t.seq-e.seq);let a=L(t,e);for(let e=0;e<i.length&&!a.isPropagationStopped();e++)i[e].responder.getHandler(n)?.(a,d.current)};for(let n=0;n<M.length;n++)e.addEventListener(M[n],t,!0);return()=>{for(let n=0;n<M.length;n++)e.removeEventListener(M[n],t,!0)}},[S]);let E=(0,l.useCallbackRef)(e=>{T(`pointerdown`,e,d.current)},[]),D=(0,l.useCallbackRef)(e=>{T(`pointermove`,e,d.current)},[]),O=(0,l.useCallbackRef)(e=>{T(`pointerup`,e,d.current)},[]),j=(0,l.useCallbackRef)(e=>{T(`pointerleave`,e,d.current)},[]),P=(0,l.useCallbackRef)(e=>{T(`mousedown`,e,d.current)},[]),F=(0,l.useCallbackRef)(e=>{T(`mouseenter`,e,d.current)},[]),R=(0,l.useCallbackRef)(e=>{T(`mouseleave`,e,d.current)},[]),ee=(0,l.useCallbackRef)(e=>{T(`mousemove`,e,d.current)},[]),te=(0,l.useCallbackRef)(e=>{T(`mouseout`,e,d.current)},[]),ne=(0,l.useCallbackRef)(e=>{T(`mouseover`,e,d.current)},[]),z=(0,l.useCallbackRef)(e=>{T(`mouseup`,e,d.current)},[]),re=(0,l.useCallbackRef)(e=>{T(`dblclick`,e,d.current)},[]),ie=(0,l.useCallbackRef)(e=>{T(`keydown`,e,d.current)},[]),B=(0,l.useCallbackRef)(e=>{T(`keypress`,e,d.current)},[]),ae=(0,l.useCallbackRef)(e=>{T(`keyup`,e,d.current)},[]),oe=(0,l.useCallbackRef)(e=>{r?.(e),T(`focus`,e,d.current)},[r]),V=(0,l.useCallbackRef)(e=>{i?.(e),T(`blur`,e,d.current)},[i]),se=(0,l.useCallbackRef)(e=>{T(`contextmenu`,e,d.current)},[]),H=(0,l.useImperativeElement)(t,()=>({isStage:()=>!0,addReactEventListener:x,registerResponder:m,registerLayer:_}),[]);return(0,s.useEffect)(()=>_({getElement:()=>H.current}),[_]),(0,c.jsx)(`div`,{className:C(n,`stage`,k),ref:H,tabIndex:0,...o,onPointerDown:E,onPointerMove:D,onPointerUp:O,onPointerLeave:j,onMouseDown:P,onMouseEnter:F,onMouseLeave:R,onMouseMove:ee,onMouseOut:te,onMouseOver:ne,onMouseUp:z,onDoubleClick:re,onKeyDown:ie,onKeyUp:ae,onKeyPress:B,onFocus:oe,onBlur:V,onContextMenu:se,children:a})}));F.displayName=`Stage`;var I=Object.freeze([]),L=(e,t)=>{let n=!1;return new Proxy(e,{get(r,i){switch(i){case`nativeEvent`:return e;case`currentTarget`:return t;case`stopPropagation`:return()=>{n=!0,e.stopPropagation()};case`isPropagationStopped`:return()=>n;case`preventDefault`:return()=>e.preventDefault();case`isDefaultPrevented`:return()=>e.defaultPrevented;case`persist`:return()=>{};default:{let e=r[i];return typeof e==`function`?e.bind(r):e}}}})},R=e=>`${e.rowStart},${e.colStart},${e.rowEnd},${e.colEnd}`,ee=(0,s.createContext)(0),te=(0,s.createContext)(!1),ne=(e,t)=>{let{rowDims:n,columnDims:r,computeRowDims:i,computeColumnDims:a,viewport:o,zoom:s,containerWidth:c,containerHeight:l,getRangeFromCell:u,invalidate:d,totalRange:f,getSurfacePointFromPointer:p,scrollTo:m,scrollCellCoordsIntoView:h,getAllPanes:g}=t,_=e.anchor,v=n[e.rowIndex],y=r[e.columnIndex];if(v.minIndex>v.maxIndex||y.minIndex>y.maxIndex)return null;let b=e.scrollOrientation,x=Object.freeze({x:y.minBounds,y:v.minBounds,width:y.maxBounds,height:v.maxBounds}),S=Object.freeze({colStart:y.minCoord,rowStart:v.minCoord,colEnd:y.maxCoord,rowEnd:v.maxCoord}),C={width:y.maxVirtualBounds,height:v.maxVirtualBounds},w={left:y.freezeOffset,top:v.freezeOffset},T={width:c,height:l},E=null,D=null,k=()=>{let t=o.getSnapshot();if(D&&E===t)return D;let n=a(t.left)[e.columnIndex],r=i(t.top)[e.rowIndex],c=n.metrics,l=r.metrics,u=Object.freeze({rowStart:r.minIndex,colStart:n.minIndex,rowEnd:r.maxIndex,colEnd:n.maxIndex}),d=Object.freeze({getColIndex:e=>c.getColIndex(e),getColOffset:e=>c.getColOffset(e),getRowIndex:e=>l.getRowIndex(e),getRowOffset:e=>l.getRowOffset(e)}),f={left:n.scrollOffset,top:r.scrollOffset};return D={cellRange:u,metrics:d,scrollTopLeft:f,topLeft:{top:(w.top+(b.vertical?f.top:0))/s,left:(w.left+(b.horizontal?f.left:0))/s},colDims:n,rowDims:r},E=t,D},A=(e,t)=>{let n=k();return((e,t,n)=>{let r=e.getColOffset(t.colStart)+(n?.left??0),i=e.getRowOffset(t.rowStart)+(n?.top??0);return{x:r,y:i,width:e.getColOffset(t.colEnd+1)+(n?.right??0)-(n?.left??0)-r,height:e.getRowOffset(t.rowEnd+1)+(n?.bottom??0)-(n?.top??0)-i}})(n.metrics,e??n.cellRange,t)},j=e=>{if(e<0)return null;let t=k().colDims.metrics,n=t.getColOffset(e);return{index:e,offset:n,size:t.getColOffset(e+1)-n}},M=e=>{if(e<0)return null;let t=k().rowDims.metrics,n=t.getRowOffset(e);return{index:e,offset:n,size:t.getRowOffset(e+1)-n}},N=(e,t)=>{let n=Array(e.length);for(let r=0;r<e.length;r++)n[r]=t(e[r]);return n};return{addReactEventListener:(t,n,r)=>{let i=e.refStage;return i?i.addReactEventListener(t,n,r):()=>{}},getElement:()=>e.refStage,invalidate:d,focus(t){let n=e.refStage;n&&n.focus(t)},setPointerCapture:t=>{let n=e.refStage;n&&n.setPointerCapture(t)},releasePointerCapture(t){let n=e.refStage;n&&n.releasePointerCapture(t)},getVisibleRange:()=>k().cellRange,toClipBounds:(e,t)=>{let n,r=0;return t===void 0||typeof t==`number`?(n=A(k().cellRange),r=t):n=t,((e,t,n=0)=>{let r=e.x,i=e.y;if(r>t.width||i>t.height)return null;let a={left:r,top:i,bottom:e.height+i,right:e.width+r},o={left:t.x+n,top:t.y+n,bottom:t.height-2*n+t.y,right:t.width-2*n+t.x},s={left:Math.max(a.left,o.left),top:Math.max(a.top,o.top),bottom:Math.min(a.bottom,o.bottom),right:Math.min(a.right,o.right)},c={x:s.left,y:s.top,width:s.right-s.left,height:s.bottom-s.top};return c.height<0||c.width<0?null:c})(e??{x:0,y:0,width:x.width,height:x.height},n,r)},toPaneBounds:e=>{let t=k().topLeft;return t.left===0&&t.top===0&&s===1?e:{x:(e.x-t.left)*s,y:(e.y-t.top)*s,width:e.width*s,height:e.height*s}},toAbsoluteBounds:e=>{let t=k().topLeft;return t.left===0&&t.top===0&&s===1?e:{x:e.x/s+t.left,y:e.y/s+t.top,width:e.width/s,height:e.height/s}},getPanePointFromPointer:(e,t)=>{let n=p(e,t);return n?{x:n.x-x.x,y:n.y-x.y}:null},getMetrics:()=>k().metrics,getRangeFromCell:u,getVisibleColumns:(e,t)=>N(k().colDims.visibleIndices(e,t),j),getVisibleRows:(e,t)=>N(k().rowDims.visibleIndices(e,t),M),getColumnSize:j,getRowSize:M,getTotalRange:()=>f,getBoundsFromRange:A,getCellFromPointer:(e,t,n=!1)=>{let r=p(e,t);if(!r)return null;let i=k().metrics,a=i.getColIndex(r.x-x.x),o={rowIndex:i.getRowIndex(r.y-x.y),colIndex:a};if(n)return o;let s=u(o);return{rowIndex:s.rowStart,colIndex:s.colStart}},getPaneFromPointer:(e,t)=>{let n=p(e,t);if(!n)return null;let r=g();for(let e=0;e<z.length;e++){let t=r[z[e]];if(t&&O(n.x,n.y,t.getPaneBounds()))return t}return null},getZoom:()=>s,getAnchor:()=>_,getPaneRange:()=>S,getPaneBounds:()=>x,getInsets:()=>e.insets,getTotalSize:()=>C,getSurfaceSize:()=>T,getScrollTopLeft:()=>k().scrollTopLeft,getScrollTarget:()=>{let e=k().scrollTopLeft,t=o.getSnapshot(),n=o.getTarget();return{left:e.left+(b.horizontal?n.left-t.left:0),top:e.top+(b.vertical?n.top-t.top:0)}},getFreezeTopLeft:()=>w,getScrollOrientation:()=>b,scrollCellCoordsIntoView:(e,t)=>h(e,t,_),scrollTo:e=>m(e),getAllPanes:g}},z=[u.AnchorLocation.TopLeft,u.AnchorLocation.Top,u.AnchorLocation.Left,u.AnchorLocation.Center],re=(e,t,n)=>{let r=(t?.left??0)+(n?.x??0),i=(t?.top??0)+(n?.y??0);return{getColOffset:t=>e.getColOffset(t)-r,getColIndex:t=>e.getColIndex(t+r),getRowOffset:t=>e.getRowOffset(t)-i,getRowIndex:t=>e.getRowIndex(t+i)}},ie=Object.freeze([{minIndex:0,maxIndex:0,minCoord:0,maxCoord:0,visibleIndices:()=>u.CommonUtils.EmptyArray,minBounds:0,maxBounds:0,metrics:{getColOffset:()=>0,getColIndex:()=>0,getRowOffset:()=>0,getRowIndex:()=>0},maxVirtualBounds:0,scrollOffset:0,freezeOffset:0}]),B=(0,s.createContext)(null),ae=({pane:e,viewport:t,children:n})=>{let r=(0,s.useMemo)(()=>({pane:e}),[e,(0,l.useOptionalBoundSyncExternalStore)(t,e=>e.getSnapshot())]);return(0,c.jsx)(B.Provider,{value:r,children:n})},oe=()=>{let e=new Map,t=new Map;return{has:t=>e.has(t),get:t=>e.get(t),set(n,r){if(e.has(n)&&Object.is(e.get(n),r))return;e.set(n,r);let i=t.get(n);if(i)for(let e of[...i])e()},subscribe(e,n){let r=t.get(e);return r||t.set(e,r=new Set),r.add(n),()=>{r.delete(n),r.size===0&&t.delete(e)}}}},V=(0,s.createContext)(null),se=({store:e,children:t})=>{let n=(0,s.useContext)(V),r=(0,s.useRef)(null),i=e??n;return i||=(r.current||=oe(),r.current),(0,c.jsx)(V.Provider,{value:i,children:t})},H={"sheetxl-grid":`_sheetxl-grid_5yo0n_7`},U=(0,s.memo)((0,s.forwardRef)((e,t)=>{let{rowCount:n=1,columnCount:r=1,viewport:i,metrics:a,getRangeFromCell:o=u.CoordUtils.cellToRange,hiddenRowsAt:d,hiddenColumnsAt:f,freezeLeft:p=0,freezeTop:m=0,propsFreezeLeft:h,propsFreezeTop:_,onFirstRender:v,children:y,wrapPane:b,onFocus:x,onBlur:S,className:w,style:k,...A}=e,j=(0,l.useCallbackRef)(x,[x]),M=(0,l.useCallbackRef)(S,[S]),N=(0,l.useCallbackRef)(v,[v]),[P,I]=(0,s.useState)(u.AnchorLocation.Center),[L,R]=(0,s.useReducer)(e=>e+1,0),te=(0,s.useMemo)(()=>new l.Viewport({}),[]),z=i??te,[B,oe]=(0,s.useState)(()=>{let e=z.getClient();return{zoom:z.getZoom(),w:e.width,h:e.height,ready:z.isReady()}});(0,s.useEffect)(()=>{let e=()=>oe(e=>{let t=z.getClient(),n={zoom:z.getZoom(),w:t.width,h:t.height,ready:z.isReady()};return e.zoom===n.zoom&&e.w===n.w&&e.h===n.h&&e.ready===n.ready?e:n});return e(),z.subscribe(e)},[z]);let V=B.zoom,U=(0,s.useMemo)(()=>{let e=a??ce;return{getColOffset:t=>e.getColOffset(t)*V,getColIndex:t=>e.getColIndex(t/V),getRowOffset:t=>e.getRowOffset(t)*V,getRowIndex:t=>e.getRowIndex(t/V)}},[a,V]),W=(0,l.useCallbackRef)((e,t=!1)=>D(e,t,U.getRowOffset,t?0:n),[n,U?.getRowOffset]),G=(0,l.useCallbackRef)(d??W,[d]),ve=(0,l.useCallbackRef)((e,t=!1)=>D(e,t,U.getColOffset,t?r:0),[r,U?.getColOffset]),K=(0,l.useCallbackRef)(f??ve,[f]),q=(0,s.useCallback)(()=>{R()},[]),ye=(0,s.useMemo)(()=>Math.min(B.w,U.getColOffset(r)),[L,U.getColOffset,r,B.w]),be=(0,s.useMemo)(()=>Math.min(B.h,U.getRowOffset(n)),[L,U.getRowOffset,n,B.h]),xe=(0,s.useMemo)(()=>{let e=NaN,t=null;return r=>(r===e&&t||(e=r,t=(e=>{if(be===0)return ie;let t=[],r=0,i=0;typeof m==`number`?r=m:(r=m.index??0,i=(m.offset??0)*V);let a=i,o=U.getRowOffset(r),s=o-a;if(r>0){let e=re(U,{top:i+U.getRowOffset(0)}),n=U.getRowIndex(a),c=U.getRowIndex(o-1),l;t[1]={minIndex:n,maxIndex:c,minCoord:0,maxCoord:r-1,minBounds:0,maxBounds:s,visibleIndices:(e,t)=>e!==void 0&&t!==void 0?T(G,e,t):l||(l=Object.freeze(T(G,n,c)),l),metrics:e,maxVirtualBounds:o,scrollOffset:i,freezeOffset:i}}let c=Math.max(0,be-s),l=re(U,{top:e+s}),u=l.getRowIndex(0),d=l.getRowIndex(c-1),f;return t[0]={minIndex:u,maxIndex:d,minCoord:r,maxCoord:n-1,minBounds:s,maxBounds:c,visibleIndices:(e,t)=>e!==void 0&&t!==void 0?T(G,e,t):f||(f=Object.freeze(T(G,u,d)),f),metrics:l,maxVirtualBounds:U.getRowOffset(n),scrollOffset:e,freezeOffset:(r>0?U.getRowOffset(r):0)-i},t})(r)),t)},[L,U.getRowIndex,U.getRowOffset,G,be,n,m,V]),J=(0,s.useMemo)(()=>xe(0),[xe]),Se=(0,s.useMemo)(()=>{let e=NaN,t=null;return n=>(n===e&&t||(e=n,t=(e=>{if(ye===0)return ie;let t=[],n=0,i=0;typeof p==`number`?n=p:(n=p.index??0,i=(p.offset??0)*V);let a=i,o=U.getColOffset(n),s=o-a;if(n>0){let e=re(U,{left:i+U.getColOffset(0)}),r=U.getColIndex(a),c=U.getColIndex(o-1),l;t[1]={minIndex:r,maxIndex:c,minCoord:0,maxCoord:n-1,minBounds:0,maxBounds:s,visibleIndices:(e,t)=>e!==void 0&&t!==void 0?T(K,e,t):l||(l=Object.freeze(T(K,r,c)),l),metrics:e,maxVirtualBounds:o,scrollOffset:i,freezeOffset:i}}let c=Math.max(0,ye-s),l=re(U,{left:e+s}),u=l.getColIndex(0),d=l.getColIndex(c-1),f;return t[0]={minIndex:u,maxIndex:d,minCoord:n,maxCoord:r-1,minBounds:s,maxBounds:c,visibleIndices:(e,t)=>e!==void 0&&t!==void 0?T(K,e,t):f||(f=Object.freeze(T(K,u,d)),f),metrics:l,maxVirtualBounds:U.getColOffset(r),scrollOffset:e,freezeOffset:(n>0?U.getColOffset(n):0)-i},t})(n)),t)},[L,U.getColIndex,U.getColOffset,K,ye,r,p,V]),Y=(0,s.useMemo)(()=>Se(0),[Se]),Ce=(0,s.useRef)([]),[we,Te]=(0,s.useReducer)(e=>e+1,0),Ee=J.length,De=Y.length,Oe=(0,s.useMemo)(()=>{let e=[],t=(t,n,r,i,a)=>{if(t>=De||n>=Ee)return null;let o={anchor:r,columnIndex:t,rowIndex:n,elemStage:null,refStage:null,scrollOrientation:{vertical:i?.vertical||!1,horizontal:i?.horizontal||!1},insets:Object.freeze({left:a?.left??0,top:a?.top??0,right:a?.right??0,bottom:a?.bottom??0})};o.elemStage=(0,c.jsx)(F,{ref:e=>{e?(o.refStage=e,Te()):o.refStage=null},className:`stage stage-${r}`,onFocus:e=>{I(r),j(e)},onBlur:e=>{M(e)}}),e.push(o)};return t(0,0,u.AnchorLocation.Center,pe,fe),t(0,1,u.AnchorLocation.Top,me),t(1,0,u.AnchorLocation.Left,he),t(1,1,u.AnchorLocation.TopLeft,ge),e},[Ee,De]),X=(0,s.useMemo)(()=>{let e={},t={colStart:0,rowStart:0,colEnd:r-1,rowEnd:n-1},i=n=>ne(n,{rowDims:J,columnDims:Y,computeRowDims:xe,computeColumnDims:Se,viewport:z,zoom:V,containerWidth:ye,containerHeight:be,getRangeFromCell:o,invalidate:q,totalRange:t,getSurfacePointFromPointer:(e,t)=>Ne(e,t),scrollTo:e=>ze(e),scrollCellCoordsIntoView:(e,t,n)=>Re(e,t,n),getAllPanes:()=>e}),a=Oe.length;for(let t=0;t<a;t++){let n=Oe[t];e[n.anchor]=i(n)}return e=Object.freeze(e),e},[Oe,J,Y,xe,Se,z,o,we]),ke=Y[0]?.maxVirtualBounds??0,Ae=J[0]?.maxVirtualBounds??0,je=B.ready,Z=(0,s.useMemo)(()=>{let e=Y[1],t=J[1];return{left:e?e.metrics.getColOffset(e.maxIndex+1):0,top:t?t.metrics.getRowOffset(t.maxIndex+1):0}},[J,Y]),Me=(0,l.useCallbackRef)(e=>{u.DOMUtils.canUseDOM&&setTimeout(()=>{(X[P]?.getElement()??X[u.AnchorLocation.Center]?.getElement())?.focus({preventScroll:!0,...e})},0)},[P,X]);(0,s.useEffect)(()=>{let e=Ce.current,t=e.length;if(t>0){for(let n=0;n<t;n++)e[n]();Ce.current=[]}},[X]);let Ne=(0,s.useCallback)((e,t)=>{(function(e){if(!e)throw Error(`Invariant failed`)})(typeof e==`number`&&typeof t==`number`);let n=Be.current?.getBoundingClientRect();return n?{x:e-n.x,y:t-n.y}:{x:e,y:t}},[]),Pe=(0,l.useCallbackRef)((e,t)=>{if(Object.keys(X).length===1)return X[u.AnchorLocation.Center];let n=Ne(e,t);if(!n)return X[u.AnchorLocation.Center];let{x:r,y:i}=n,a=null,o=_e,s=o.length;for(let e=0;!a&&e<s;e++){let t=X[o[e]];t&&O(r,i,t.getPaneBounds())&&(a=t)}return a||=X[u.AnchorLocation.Center],a},[X,o]);(0,s.useEffect)(()=>{let e=Y?.[1]?.scrollOffset??0,t=J?.[1]?.scrollOffset??0;z.setContent(ke,Ae,e,t)},[z,ke,Ae,Y,J]);let Fe=(0,l.useCallbackRef)(e=>{let t=e?.left??e?.[0],n=e?.top??e?.[1];if(t===void 0&&n===void 0)return;let r=e?.behavior??`auto`,i=z.getTarget();t!==void 0&&(t=i.left+(t??0)),n!==void 0&&(n=i.top+(n??0)),i.left===t&&i.top===n||ze({left:t,top:n,behavior:r})},[]),Ie=(0,l.useCallbackRef)(e=>e===void 0?X[P]??X[u.AnchorLocation.Center]??null:X[e]??null,[X,P]),Le=(0,l.useCallbackRef)(e=>{let t=X[P];if(!t)return X[u.AnchorLocation.Center];let n=t.getScrollOrientation(),r={...t.getVisibleRange()};return n.vertical&&(r.rowStart=J[0].minCoord,r.rowEnd=J[0].maxCoord),n.horizontal&&(r.colStart=Y[0].minCoord,r.colEnd=Y[0].maxCoord),n&&u.CoordUtils.isCellWithinRange(e,r)?t:X[u.AnchorLocation.Center]},[X,P]),Re=(0,l.useCallbackRef)((e,t={inline:`nearest`,block:`nearest`},n=null)=>{let r={rowIndex:0,colIndex:0,...e},i=null;if(n!==null){if(i=X[n],!i)return new Promise((e,t)=>{t(`Invalid view`)})}else i=Le(r);let a=o(r),s=i.getMetrics(),c=s.getColOffset(a.colStart),l=s.getRowOffset(a.rowStart),u=s.getColOffset(a.colEnd+1),d=s.getRowOffset(a.rowEnd+1),f=i.getPaneBounds(),p=i.getTotalSize(),m=i.getScrollTopLeft(),h=((e,t,n=!0)=>{n=!0===n?{block:`start`,inline:`end`}:!1===n?{block:`end`,inline:`end`}:{block:`end`,inline:`end`,...n};let r=E(n.inline??`end`,e.x,e.x+e.width,t.left,t.left+t.width,t.totalWidth),i=E(n.block??`end`,e.y,e.y+e.height,t.top,t.top+t.height,t.totalHeight);if(r!==void 0||i!==void 0)return{left:r??t.left,top:i??t.top}})({x:c+m.left,y:l+m.top,width:u-c,height:d-l},{left:m.left,top:m.top,width:f.width,height:f.height,totalWidth:p.width,totalHeight:p.height},t);if(!h)return Promise.resolve({...m});let g={...h},{left:_,top:v}=z.getScroll();g.left!==void 0&&(g.left>_?g.left+=ue:g.left<_&&(g.left-=le)),g.top!==void 0&&(g.top>v?g.top+=ue:g.top<v&&(g.top-=le));let y=i.getScrollOrientation();y.horizontal&&e.colIndex!==void 0||delete g.left,y.vertical&&e.rowIndex!==void 0||delete g.top;let b=g.left===void 0?0:Math.abs(g.left-_),x=g.top===void 0?0:Math.abs(g.top-v),S=(typeof t==`object`?t?.behavior:void 0)??(Math.max(b,x)<de||!z.isSettled()?`instant`:`smooth`);return new Promise((e,t)=>{try{ze({...g,behavior:S}),e(g)}catch(e){t(e)}})},[ke,Ae,X,o]),ze=(0,l.useCallbackRef)(e=>{let t=e?.left??e?.[0],n=e?.top??e?.[1],r=z.getTarget(),i=t??r.left,a=n??r.top,o=e?.behavior===`smooth`;z.setTarget(i,a,o)},[]),Be=(0,l.useImperativeElement)(t,()=>({focus:Me,invalidate:q,scrollTo:ze,scrollBy:Fe,scrollCellCoordsIntoView:Re,getPaneFromClient:Pe,getPaneFromCell:Le,getPane:Ie,onPaneChangeOnce:e=>{Ce.current.push(e)}}),[X]);(0,s.useEffect)(()=>z.observe(Be.current),[z]);let Ve=(e,t)=>{let n=(e=>{if(!e)return null;if(!Array.isArray(e))return e;let t=e=>(0,s.isValidElement)(e)&&e.props?.zIndex!=null?e.props.zIndex:0;return[...e].sort((e,n)=>t(e)-t(n)).map((e,t)=>(0,s.isValidElement)(e)?(0,s.createElement)(ee.Provider,{key:e.key??`layer-${t}`,value:t},e):e)})(t);return n?(0,c.jsx)(ae,{pane:e,viewport:z,children:b?b(e,n):n}):null},He=(0,s.useMemo)(()=>{let e={},t=Object.keys(X),n=t.length;for(let r=0;r<n;r++){let n=t[r];e[n]=Ve(X[n],y)}return e},[L,y,X,b,n,r]),Ue=(0,s.useMemo)(()=>Z.left===0?null:(0,c.jsx)(g,{linePoints:[0,0,0,be+1],bounds:{x:Z.left,y:0,width:1,height:be+1},...h}),[L,Z.left,be,h]),We=(0,s.useMemo)(()=>Z.top===0?null:(0,c.jsx)(g,{linePoints:[0,0,ye+1,0],bounds:{x:0,y:Z.top,width:ye+1,height:1},..._}),[L,Z.top,ye,_]),Ge=(0,s.useRef)(!1),Ke=(0,s.useMemo)(()=>{if(!je)return null;let e=(e,t)=>{let n=e.anchor,r=t.getPaneBounds(),i=Z.left>0,a=Z.top>0,o=a&&(n===u.AnchorLocation.Center||n===u.AnchorLocation.Left),l=a&&(n===u.AnchorLocation.Top||n===u.AnchorLocation.TopLeft),d=i&&(n===u.AnchorLocation.Center||n===u.AnchorLocation.Top),f=i&&(n===u.AnchorLocation.Left||n===u.AnchorLocation.TopLeft),p=1e6,m=o?-1:-1e6,h=d?-1:-1e6,g=f?r.width+2:p,_=l?r.height+2:p,v=o||l||d||f,y={position:`absolute`,left:r.x,top:r.y,width:r.width,height:r.height,clip:v?`rect(${m}px, ${g}px, ${_}px, ${h}px)`:void 0};return(0,c.jsx)(ae,{pane:t,viewport:z,children:e.elemStage?(0,s.cloneElement)(e.elemStage,{style:y},He?.[n]):null},`pane:${n}`)},t=Oe.length,n=Array(t);for(let r=0;r<t;r++){let t=Oe[r],i=t.anchor,a=X[i];n[r]=a?e(t,a):null}return(0,c.jsxs)(c.Fragment,{children:[n,Ue,We]})},[X,Oe,He,ye,be,je,Z]);return(0,s.useEffect)(()=>{!Ge.current&&Ke&&je&&(Ge.current=!0,N?.(Be.current))},[Ke,je]),(0,c.jsx)(`div`,{ref:Be,className:C(w,`grid-surface`,H[`sheetxl-grid`]),style:{overflow:`hidden`,...k},...A,children:(0,c.jsx)(se,{children:Ke})})}));U.displayName=`GridSurface`;var ce=Object.freeze({getColOffset:e=>75*e,getColIndex:e=>Math.floor(e/75),getRowOffset:e=>20*e,getRowIndex:e=>Math.floor(e/20)}),le=0,ue=20,de=150,fe=Object.freeze({bottom:-4,right:-4}),pe=Object.freeze({horizontal:!0,vertical:!0}),me=Object.freeze({horizontal:!0,vertical:!1}),he=Object.freeze({horizontal:!1,vertical:!0}),ge=Object.freeze({horizontal:!1,vertical:!1}),_e=[u.AnchorLocation.TopLeft,u.AnchorLocation.Top,u.AnchorLocation.Left,u.AnchorLocation.Center];function W(){let e=(0,s.useContext)(B);if(!e)throw Error(`useGridPane must be used within a GridPaneProvider`);return e.pane}function G(){return(0,s.useContext)(B)?.pane??null}function ve(e,t){let n=(0,s.useContext)(V),r=(0,s.useRef)(null);r.current||=oe();let i=n??r.current,a=`k:${e}`,o=(0,s.useRef)(null);o.current===null&&(o.current={v:typeof t==`function`?t():t});let c=(0,s.useCallback)(()=>i.has(a)?i.get(a):o.current.v,[i,a]);return[(0,s.useSyncExternalStore)((0,s.useCallback)(e=>i.subscribe(a,e),[i,a]),c,c),(0,s.useCallback)(e=>{let t=i.has(a)?i.get(a):o.current.v;i.set(a,typeof e==`function`?e(t):e)},[i,a])]}var K=(0,s.memo)(e=>{let{onPointerDown:t,onPointerMove:n,onPointerUp:r,onPointerLeave:i,onMouseDown:a,onMouseEnter:o,onMouseLeave:l,onMouseMove:u,onMouseOut:d,onMouseOver:f,onMouseUp:p,onDoubleClick:m,onKeyDown:h,onKeyPress:g,onKeyUp:_,onFocus:v,onBlur:y,onContextMenu:b,zIndex:x,className:S,children:C}=e,w=(0,s.useContext)(te);(0,s.useEffect)(()=>{w&&!ye&&(ye=!0,console.error(`<Layer> nested inside another <Layer>. Layers exist only as direct children of the grid (law 4: the stack is flat) — a composite renders exactly one Layer at its root. For a full-view container inside a layer, use <VirtualDiv fill>. This error fires once.`))},[w]);let T=P(G()),E=(0,s.useContext)(ee),D=(0,s.useRef)({});D.current={pointerdown:q(t),pointermove:q(n),pointerup:q(r),pointerleave:q(i),mousedown:q(a),mouseenter:q(o),mouseleave:q(l),mousemove:q(u),mouseout:q(d),mouseover:q(f),mouseup:q(p),dblclick:q(m),keydown:q(h),keypress:q(g),keyup:q(_),focus:q(v),blur:q(y),contextmenu:q(b)};let O=(0,s.useRef)(null);return(0,s.useEffect)(()=>{if(T)return T.registerResponder({zIndex:E,getElement:()=>O.current,getHandler:e=>D.current[e]})},[T,E]),(0,c.jsx)(`div`,{ref:O,className:S,onPointerDown:t,onPointerMove:n,onPointerUp:r,onMouseDown:a,onMouseMove:u,onMouseUp:p,onMouseOver:f,onMouseOut:d,onDoubleClick:m,onKeyDown:h,onKeyPress:g,onKeyUp:_,onContextMenu:b,children:C==null?null:(0,c.jsx)(te.Provider,{value:!0,children:C})})});K.displayName=`Layer`;var q=e=>e?t=>e(t):void 0,ye=!1,be=!1,xe=`_virtual-div_16eab_1`,J=(0,s.memo)((0,s.forwardRef)((e,t)=>{let{range:n,bounds:r,fill:i=!1,clipInsets:a,disableAlign:o=!1,coverGridlines:u=!1,alignWidth:d,keepMounted:f=!1,className:p,style:h,children:g,..._}=e;(0,s.useContext)(te)||Se||(Se=!0,console.warn(`VirtualDiv rendered outside a <Layer>. The grid's children are Layers; place VirtualDivs inside one (law 4: the stack is flat). This warning fires once.`));let v=(0,s.useRef)(null),y=(0,s.useCallback)(e=>{v.current=e,typeof t==`function`?t(e):t&&(t.current=e)},[t]);(({getElement:e,handlerProps:t})=>{let n=P(G()),r=(0,s.useContext)(ee),i=!1;if(t){for(let e=0;e<j.length;e++)if(typeof t[j[e]]==`function`){i=!0;break}}let a=(0,s.useRef)({getElement:e,handlerProps:t});a.current={getElement:e,handlerProps:t},(0,s.useEffect)(()=>{if(n)return n.registerLayer({zIndex:r,getElement:()=>a.current.getElement(),hasHandlers:i,getHandler:i?e=>{let t=A[e];if(t===void 0)return;let n=a.current.handlerProps?.[t];return typeof n==`function`?e=>n(e):void 0}:void 0})},[n,i,r])})({getElement:()=>v.current,handlerProps:_});let b=(({range:e,bounds:t,fill:n,clipInsets:r})=>{let i=W();if(!i)return null;let a=null,o=!1;if(e)a=i.getBoundsFromRange(e),o=i.toClipBounds(a,r)===null;else if(t)o=i.toClipBounds(t,r)===null,a=t;else{if(!n)return be||(be=!0,console.warn(`VirtualDiv: provide exactly one of 'range' | 'bounds' | 'fill'. (The implicit "no placement = pane-sized" fallback was removed — use 'fill'.) This warning fires once.`)),null;{let e=i.getPaneBounds();a={x:0,y:0,width:e.width,height:e.height}}}return a?{pane:i,raw:a,culled:o}:null})({range:n,bounds:r,fill:i,clipInsets:a});if(!b)return null;let{raw:x,culled:S}=b;if(S&&!f)return null;let w=l.ReactUtils.getDevicePixelRatio(),T=d!=null,E=T?d/w:0,D,O,k,M;if(o)D=x.x,O=x.y,k=x.width,M=x.height;else if(T){let e=l.ReactUtils.edgeCenter(x.x,`leading`,d,w),t=l.ReactUtils.edgeCenter(x.y,`leading`,d,w);D=e-E/2,O=t-E/2,k=l.ReactUtils.edgeCenter(x.x+x.width,`trailing`,d,w)-e+E,M=l.ReactUtils.edgeCenter(x.y+x.height,`trailing`,d,w)-t+E}else{let e=u?1/w:0;D=l.ReactUtils.snapDeviceEdge(x.x,w),O=l.ReactUtils.snapDeviceEdge(x.y,w),k=l.ReactUtils.snapDeviceEdge(x.x+x.width,w)+e-D,M=l.ReactUtils.snapDeviceEdge(x.y+x.height,w)+e-O}let{transform:N,...F}=h??{},I={x:x.x-D,y:x.y-O,width:x.width,height:x.height};return(0,c.jsx)(`div`,{className:C(p,xe),style:{width:`${k}px`,height:`${M}px`,...T?{boxSizing:`border-box`,borderWidth:`${E}px`,borderStyle:`solid`}:void 0,...F,transform:`translate(${D}px, ${O}px)${N?` ${N}`:``}`},..._,ref:y,children:g==null?null:(0,c.jsx)(m.Provider,{value:I,children:g})})}));J.displayName=`VirtualDiv`;var Se=!1,Y=(e,t,n,r)=>({x:e,y:t,width:n,height:r,top:t,left:e,right:e+n,bottom:t+r}),Ce=Y(0,0,0,0),we=e=>{let t=e.getElement()?.getBoundingClientRect?.();return{x:t?.left??0,y:t?.top??0}},Te=e=>{let t=e.getElement()?.getBoundingClientRect?.();return t?Y(t.left,t.top,t.width,t.height):Ce},Ee={side:`t`,align:`center`},De=[u.AnchorLocation.TopLeft,u.AnchorLocation.Top,u.AnchorLocation.Left,u.AnchorLocation.Center],Oe=new Set([u.AnchorLocation.Top,u.AnchorLocation.TopLeft]),X=new Set([u.AnchorLocation.Left,u.AnchorLocation.TopLeft]),ke=(e,t,n,r,i)=>{let a=null,o=null,s=1/0,c=!1;for(let l=0;l<De.length;l++){let u=e[De[l]];if(!u)continue;let d=u.getVisibleRange(),f=t===`row`?d.rowStart:d.colStart,p=t===`row`?d.rowEnd:d.colEnd;if(n>p||r<f)continue;c=!0,!a&&i>=f&&i<=p&&(a=u);let m=i<f?f-i:i>p?i-p:0;m<s&&(s=m,o=u)}return{pane:a??o,visible:c}},Ae=(e,t)=>{let n=Oe.has(e.getAnchor()),r=X.has(t.getAnchor());return n&&r?u.AnchorLocation.TopLeft:n?u.AnchorLocation.Top:r?u.AnchorLocation.Left:u.AnchorLocation.Center},je=(e,t)=>{let n=Te(e),r=e.getBoundsFromRange(t);return Y(n.left+r.x,n.top+r.y,r.width,r.height)},Z=(e,t)=>{let n=(t.left+t.right)/2,r=(t.top+t.bottom)/2;return r<e.top?`t`:r>e.bottom?`b`:n<e.left?`l`:n>e.right?`r`:null},Me=(e,t,n=`data`,r=0,i=Ee,a=`hide`)=>{if(!e)return{rect:Ce,clipped:!0,boundaryRect:Ce,clampedTo:null,anchorPoint:{x:0,y:0},owner:null,slid:null,outOfView:!0};let o=((e,t)=>{if(t&&typeof t==`object`){let e=t;return Y(e.x,e.y,e.width,e.height)}if(t===`pane`){let t=we(e),n=e.getPaneBounds();return Y(t.x,t.y,n.width,n.height)}let n=e.getAllPanes(),r=1/0,i=1/0,a=-1/0,o=-1/0;for(let e of Object.keys(n)){let t=n[e]?.getElement()?.getBoundingClientRect?.();t&&(r=Math.min(r,t.left),i=Math.min(i,t.top),a=Math.max(a,t.right),o=Math.max(o,t.bottom))}if(r===1/0){let t=we(e),n=e.getPaneBounds();return Y(t.x,t.y,n.width,n.height)}return Y(r,i,a-r,o-i)})(e,n),s=e=>{if(r<=0)return!1;let t=(n=e,i=o,{w:Math.min(n.right,i.right)-Math.max(n.left,i.left),h:Math.min(n.bottom,i.bottom)-Math.max(n.top,i.top)});var n,i;return t.w<=r||t.h<=r};if(`point`in t){let n=Y(t.point.x,t.point.y,0,0),r=Z(o,n),i=e.getPaneFromPointer(t.point.x,t.point.y);return{rect:n,clipped:r!==null,boundaryRect:o,clampedTo:r,anchorPoint:{...t.point},owner:i?.getAnchor()??null,slid:null,outOfView:!1}}if(`edge`in t){let n=we(e),r=e.getPaneBounds(),i=n.x+r.width/2,a=n.y+r.height/2;t.edge===`t`?a=n.y:t.edge===`b`?a=n.y+r.height:t.edge===`l`?i=n.x:t.edge===`r`&&(i=n.x+r.width);let s=e.getPaneFromPointer(i,a)??e;return{rect:Y(i,a,0,0),clipped:!1,boundaryRect:o,clampedTo:null,anchorPoint:{x:i,y:a},owner:s.getAnchor(),slid:null,outOfView:!1}}if(`bounds`in t){let n=we(e),r=t.bounds,a=e.toClipBounds(r,0),l=Y(n.x+r.x,n.y+r.y,r.width,r.height),u=a===null||s(l),d=((e,t)=>{let{side:n,align:r=`center`}=t;if(n===`t`||n===`b`){let t=n===`t`?e.top:e.bottom;return{x:r===`start`?e.left:r===`end`?e.right:(e.left+e.right)/2,y:t}}return{x:n===`l`?e.left:e.right,y:r===`start`?e.top:r===`end`?e.bottom:(e.top+e.bottom)/2}})(l,i);return{rect:l,clipped:u,boundaryRect:o,clampedTo:Z(o,(c=d,Y(c.x,c.y,0,0))),anchorPoint:d,owner:e.getAnchor(),slid:null,outOfView:u}}var c;let l=(e=>{if(`range`in e)return e.range;if(`cell`in e){let{rowIndex:t,colIndex:n}=e.cell;return{rowStart:t,colStart:n,rowEnd:t,colEnd:n}}return null})(t),d=e.getAllPanes(),f=((e,t)=>{let{side:n,align:r=`center`}=t,i=Math.round((e.rowStart+e.rowEnd)/2),a=Math.round((e.colStart+e.colEnd)/2);if(n===`t`||n===`b`)return{rowIndex:n===`t`?e.rowStart:e.rowEnd,colIndex:r===`start`?e.colStart:r===`end`?e.colEnd:a};let o=n===`l`?e.colStart:e.colEnd;return{rowIndex:r===`start`?e.rowStart:r===`end`?e.rowEnd:i,colIndex:o}})(l,i),p=ke(d,`row`,l.rowStart,l.rowEnd,f.rowIndex),m=ke(d,`col`,l.colStart,l.colEnd,f.colIndex),h=p.visible&&m.visible,g=p.pane??d[u.AnchorLocation.Center]??e,_=m.pane??d[u.AnchorLocation.Center]??e,v=je(g,l),y=je(_,l),{side:b,align:x=`center`}=i,S,C;b===`t`||b===`b`?(C=b===`t`?v.top:v.bottom,S=x===`start`?y.left:x===`end`?y.right:(y.left+y.right)/2):(S=b===`l`?y.left:y.right,C=x===`start`?v.top:x===`end`?v.bottom:(v.top+v.bottom)/2);let w=Te(_),T=Te(g),E=e=>Math.max(w.left,Math.min(w.right,e)),D=e=>Math.max(T.top,Math.min(T.bottom,e)),O=E(S),k=D(C),A={x:O,y:k},j=E(y.left),M=D(v.top),N=Y(j,M,E(y.right)-j,D(v.bottom)-M),P=O-S,F=k-C,I=Math.abs(F)>=Math.abs(P)?F<0?`b`:F>0?`t`:P<0?`r`:P>0?`l`:null:P<0?`r`:P>0?`l`:F<0?`b`:F>0?`t`:null,L=P||F?{dx:P,dy:F,distance:Math.hypot(P,F),direction:I??`t`}:null;return h||a!==`hide`?{rect:N,clipped:!1,boundaryRect:o,clampedTo:I,anchorPoint:A,owner:Ae(g,_),slid:L,outOfView:!h}:{rect:N,clipped:!0,boundaryRect:o,clampedTo:I,anchorPoint:A,owner:null,slid:null,outOfView:!0}},Ne=(0,s.createContext)(null),Pe=e=>{let{anchor:t,placement:n=Ee,boundary:r=`data`,whenOff:i=`hide`,minVisible:a=0,children:o}=e,{reference:l,getBoundaryRect:d,anchorPoint:f,owner:p,clipped:m,slid:h,outOfView:g,pane:_}=((e,t)=>{let n=G(),r=t?.pane??n,i=t?.boundary??`data`,a=t?.minVisible??0,o=t?.placement??Ee,c=t?.whenOff??`hide`,l=(0,s.useRef)({pane:r,anchor:e,boundary:i,minVisible:a,placement:o,whenOff:c});l.current={pane:r,anchor:e,boundary:i,minVisible:a,placement:o,whenOff:c};let u=(0,s.useMemo)(()=>({reference:{getBoundingClientRect:()=>{let e=l.current;return Me(e.pane,e.anchor,e.boundary,e.minVisible,e.placement,e.whenOff).rect}},getBoundaryRect:()=>{let e=l.current;return Me(e.pane,e.anchor,e.boundary,e.minVisible,e.placement,e.whenOff).boundaryRect}}),[]),d=Me(r,e,i,a,o,c);return{reference:u.reference,getBoundaryRect:u.getBoundaryRect,clipped:d.clipped,clampedTo:d.clampedTo,anchorPoint:d.anchorPoint,owner:d.owner,slid:d.slid,outOfView:d.outOfView,pane:r}})(t,{boundary:r,whenOff:i,minVisible:a,placement:n}),v=_!=null&&(p==null?_.getAnchor()===u.AnchorLocation.Center:_.getAnchor()===p),y=null;v&&_&&(`range`in t?y=_.getBoundsFromRange(t.range):`cell`in t?y=_.getBoundsFromRange({rowStart:t.cell.rowIndex,colStart:t.cell.colIndex,rowEnd:t.cell.rowIndex,colEnd:t.cell.colIndex}):`bounds`in t&&(y=t.bounds));let b=(0,s.useRef)(t);b.current=t;let x=(0,s.useRef)(_);x.current=_;let S=(0,s.useCallback)(e=>{let t=Fe(b.current),n=x.current;return n&&t?n.scrollCellCoordsIntoView(t,e):Promise.resolve(void 0)},[]),C=(0,s.useMemo)(()=>({reference:l,getBoundaryRect:d,anchorPoint:f,bounds:y,owner:p,isOwner:v,clipped:m,slid:h,outOfView:g,placement:n,pane:_,scrollIntoView:S}),[l,d,f.x,f.y,y?.x,y?.y,y?.width,y?.height,p,v,m,h,g,n.side,n.align,_,S]),w=v&&!m&&_!=null,T=typeof o!=`function`,E=(0,s.useRef)(null),D=(0,s.useRef)(null),O=null;if(w&&!T)O=o(C);else if(w){let e=_.getElement()?.getBoundingClientRect();O=(0,c.jsx)(`div`,{ref:E,className:`sticky-layer`,style:{position:`absolute`,left:0,top:0,transform:`translate3d(${f.x-(e?.left??0)}px, ${f.y-(e?.top??0)}px, 0) ${Ie(n)}`,willChange:`transform`},children:(0,c.jsx)(`div`,{ref:D,children:o})})}return(0,s.useLayoutEffect)(()=>{let e=E.current,t=D.current;if(!(e&&t&&w&&_))return;let n=e.getBoundingClientRect(),r=_.getElement()?.getBoundingClientRect();if(!r)return;let i=0,a=0;n.left<r.left?i=r.left-n.left:n.right>r.right&&(i=Math.min(0,r.right-n.right)),n.top<r.top?a=r.top-n.top:n.bottom>r.bottom&&(a=Math.min(0,r.bottom-n.bottom)),t.style.transform=i||a?`translate(${i}px, ${a}px)`:``}),(0,c.jsx)(Ne.Provider,{value:C,children:O})},Fe=e=>`range`in e?{rowIndex:e.range.rowStart,colIndex:e.range.colStart}:`cell`in e?{rowIndex:e.cell.rowIndex,colIndex:e.cell.colIndex}:null,Ie=e=>{let{side:t,align:n=`center`}=e,r=`-50%`,i=`-50%`;t===`t`?i=`-100%`:t===`b`?i=`0%`:t===`l`?r=`-100%`:t===`r`&&(r=`0%`);let a=n===`start`?`0%`:n===`end`?`-100%`:`-50%`;return t===`t`||t===`b`?r=a:i=a,`translate(${r}, ${i})`};Pe.displayName=`StickyAnchor`;var Le=Math.min,Re=Math.max,ze=Math.round,Be=Math.floor,Ve=e=>({x:e,y:e}),He={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function Ue(e,t){return typeof e==`function`?e(t):e}function We(e){return e.split(`-`)[0]}function Ge(e){return e.split(`-`)[1]}function Ke(e){return e===`x`?`y`:`x`}function qe(e){return e===`y`?`height`:`width`}function Je(e){let t=e[0];return t===`t`||t===`b`?`y`:`x`}function Ye(e){return Ke(Je(e))}function Xe(e){return e.includes(`start`)?e.replace(`start`,`end`):e.replace(`end`,`start`)}var Ze=[`left`,`right`],Qe=[`right`,`left`],$e=[`top`,`bottom`],et=[`bottom`,`top`];function tt(e,t,n,r){let i=Ge(e),a=function(e,t,n){switch(e){case`top`:case`bottom`:return n?t?Qe:Ze:t?Ze:Qe;case`left`:case`right`:return t?$e:et;default:return[]}}(We(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(Xe)))),a}function nt(e){let t=We(e);return He[t]+e.slice(t.length)}function rt(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function it(e,t,n){let{reference:r,floating:i}=e,a=Je(t),o=Ye(t),s=qe(o),c=We(t),l=a===`y`,u=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[s]/2-i[s]/2,p;switch(c){case`top`:p={x:u,y:r.y-i.height};break;case`bottom`:p={x:u,y:r.y+r.height};break;case`right`:p={x:r.x+r.width,y:d};break;case`left`:p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}let m=Ge(t);return m&&(p[o]+=f*(m===`end`?1:-1)*(n&&l?-1:1)),p}async function at(e,t){var n;t===void 0&&(t={});let{x:r,y:i,platform:a,rects:o,elements:s,strategy:c}=e,{boundary:l=`clippingAncestors`,rootBoundary:u=`viewport`,elementContext:d=`floating`,altBoundary:f=!1,padding:p=0}=Ue(t,e),m=function(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:function(e){return{top:e.top??0,right:e.right??0,bottom:e.bottom??0,left:e.left??0}}(e)}(p),h=s[f?d===`floating`?`reference`:`floating`:d],g=rt(await a.getClippingRect({element:(n=await(a.isElement==null?void 0:a.isElement(h)))==null||n?h:h.contextElement||await(a.getDocumentElement==null?void 0:a.getDocumentElement(s.floating)),boundary:l,rootBoundary:u,strategy:c})),_=d===`floating`?{x:r,y:i,width:o.floating.width,height:o.floating.height}:o.reference,v=await(a.getOffsetParent==null?void 0:a.getOffsetParent(s.floating)),y=await(a.isElement==null?void 0:a.isElement(v))&&await(a.getScale==null?void 0:a.getScale(v))||{x:1,y:1},b=rt(a.convertOffsetParentRelativeRectToViewportRelativeRect?await a.convertOffsetParentRelativeRectToViewportRelativeRect({elements:s,rect:_,offsetParent:v,strategy:c}):_);return{top:(g.top-b.top+m.top)/y.y,bottom:(b.bottom-g.bottom+m.bottom)/y.y,left:(g.left-b.left+m.left)/y.x,right:(b.right-g.right+m.right)/y.x}}var ot=new Set([`left`,`top`]);function st(){return typeof window<`u`}function ct(e){return ut(e)?(e.nodeName||``).toLowerCase():`#document`}function Q(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function lt(e){return((ut(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function ut(e){return!!st()&&(e instanceof Node||e instanceof Q(e).Node)}function dt(e){return!!st()&&(e instanceof Element||e instanceof Q(e).Element)}function ft(e){return!!st()&&(e instanceof HTMLElement||e instanceof Q(e).HTMLElement)}function pt(e){return!(!st()||typeof ShadowRoot>`u`)&&(e instanceof ShadowRoot||e instanceof Q(e).ShadowRoot)}function mt(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=wt(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&i!==`inline`&&i!==`contents`}function ht(e){return/^(table|td|th)$/.test(ct(e))}function gt(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}var _t,vt=/transform|translate|scale|rotate|perspective|filter/,yt=/paint|layout|strict|content/,bt=e=>!!e&&e!==`none`;function xt(e){let t=dt(e)?wt(e):e;return bt(t.transform)||bt(t.translate)||bt(t.scale)||bt(t.rotate)||bt(t.perspective)||!St()&&(bt(t.backdropFilter)||bt(t.filter))||vt.test(t.willChange||``)||yt.test(t.contain||``)}function St(){return _t??=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`),_t}function Ct(e){return/^(html|body|#document)$/.test(ct(e))}function wt(e){return Q(e).getComputedStyle(e)}function Tt(e){return dt(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Et(e){if(ct(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||pt(e)&&e.host||lt(e);return pt(t)?t.host:t}function Dt(e){let t=Et(e);return Ct(t)?(e.ownerDocument||e).body:ft(t)&&mt(t)?t:Dt(t)}function Ot(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=Dt(e),i=r===e.ownerDocument?.body,a=Q(r);if(i){let e=kt(a);return t.concat(a,a.visualViewport||[],mt(r)?r:[],e&&n?Ot(e):[])}return t.concat(r,Ot(r,[],n))}function kt(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function At(e){let t=wt(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=ft(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=ze(n)!==a||ze(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function jt(e){return dt(e)?e:e.contextElement}function Mt(e){let t=jt(e);if(!ft(t))return Ve(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=At(t),o=(a?ze(n.width):n.width)/r,s=(a?ze(n.height):n.height)/i;return o&&Number.isFinite(o)||(o=1),s&&Number.isFinite(s)||(s=1),{x:o,y:s}}var Nt=Ve(0);function Pt(e){let t=Q(e);return St()&&t.visualViewport?{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}:Nt}function Ft(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=jt(e),o=Ve(1);t&&(r?dt(r)&&(o=Mt(r)):o=Mt(e));let s=function(e,t,n){return t===void 0&&(t=!1),!!n&&t&&n===Q(e)}(a,n,r)?Pt(a):Ve(0),c=(i.left+s.x)/o.x,l=(i.top+s.y)/o.y,u=i.width/o.x,d=i.height/o.y;if(a&&r){let e=Q(a),t=dt(r)?Q(r):r,n=e,i=kt(n);for(;i&&t!==n;){let e=Mt(i),t=i.getBoundingClientRect(),r=wt(i),a=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,o=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,l*=e.y,u*=e.x,d*=e.y,c+=a,l+=o,n=Q(i),i=kt(n)}}return rt({width:u,height:d,x:c,y:l})}function It(e,t){let n=Tt(e).scrollLeft;return t?t.left+n:Ft(lt(e)).left+n}function Lt(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-It(e,n),y:n.top+t.scrollTop}}function Rt(e,t,n){let r;if(t===`viewport`||t===`layoutViewport`)r=function(e,t,n){n===void 0&&(n=`viewport`);let r=n===`layoutViewport`,i=Q(e),a=lt(e),o=i.visualViewport,s=a.clientWidth,c=a.clientHeight,l=0,u=0;if(o){let e=!St()||t===`fixed`;r?e||(l=-o.offsetLeft,u=-o.offsetTop):(s=o.width,c=o.height,e&&(l=o.offsetLeft,u=o.offsetTop))}if(It(a)<=0){let e=a.ownerDocument,t=e.body,n=getComputedStyle(t),r=e.compatMode===`CSS1Compat`&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,i=Math.abs(a.clientWidth-t.clientWidth-r),o=getComputedStyle(a).scrollbarGutter===`stable both-edges`?i/2:i;o<=25&&(s-=o)}return{width:s,height:c,x:l,y:u}}(e,n,t);else if(t===`document`)r=function(e){let t=Tt(e),n=e.ownerDocument.body,r=Re(e.scrollWidth,e.clientWidth,n.scrollWidth,n.clientWidth),i=Re(e.scrollHeight,e.clientHeight,n.scrollHeight,n.clientHeight),a=-t.scrollLeft+It(e),o=-t.scrollTop;return wt(n).direction===`rtl`&&(a+=Re(e.clientWidth,n.clientWidth)-r),{width:r,height:i,x:a,y:o}}(lt(e));else if(dt(t))r=function(e,t){let n=Ft(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=Mt(e);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}(t,n);else{let n=Pt(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return rt(r)}function zt(e,t){let n=t.get(e);if(n)return n;let r=Ot(e,[],!1).filter(e=>dt(e)&&ct(e)!==`body`),i=null,a=wt(e).position===`fixed`,o=a?Et(e):e;for(;dt(o)&&!Ct(o);){let e=wt(o),t=xt(o),n=i?i.position:a?`fixed`:``;t||n!==`fixed`&&(n!==`absolute`||e.position!==`static`)?i=e:r=r.filter(e=>e!==o),o=Et(o)}return t.set(e,r),r}function Bt(e,t,n){let r=ft(t),i=lt(t),a=n===`fixed`,o=Ft(e,!0,a,t),s={scrollLeft:0,scrollTop:0},c=Ve(0);if((r||!a)&&((ct(t)!==`body`||mt(i))&&(s=Tt(t)),r)){let e=Ft(t,!0,a,t);c.x=e.x+t.clientLeft,c.y=e.y+t.clientTop}!r&&i&&(c.x=It(i));let l=!i||r||a?Ve(0):Lt(i,s);return{x:o.left+s.scrollLeft-c.x-l.x,y:o.top+s.scrollTop-c.y-l.y,width:o.width,height:o.height}}function Vt(e){return wt(e).position===`static`}function Ht(e,t){if(!ft(e)||wt(e).position===`fixed`)return null;if(t)return t(e);let n=e.offsetParent;return lt(e)===n&&(n=n.ownerDocument.body),n}function Ut(e,t){let n=Q(e);if(gt(e))return n;if(!ft(e)){let t=Et(e);for(;t&&!Ct(t);){if(dt(t)&&!Vt(t))return t;t=Et(t)}return n}let r=Ht(e,t);for(;r&&ht(r)&&Vt(r);)r=Ht(r,t);return r&&Ct(r)&&Vt(r)&&!xt(r)?n:r||function(e){let t=Et(e);for(;ft(t)&&!Ct(t);){if(xt(t))return t;if(gt(t))return null;t=Et(t)}return null}(e)||n}var Wt={convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,o=lt(r),s=!!t&&gt(t.floating);if(r===o||s&&a)return n;let c={scrollLeft:0,scrollTop:0},l=Ve(1),u=Ve(0),d=ft(r);if((d||!a)&&((ct(r)!==`body`||mt(o))&&(c=Tt(r)),d)){let e=Ft(r);l=Mt(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}let f=!o||d||a?Ve(0):Lt(o,c);return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-c.scrollLeft*l.x+u.x+f.x,y:n.y*l.y-c.scrollTop*l.y+u.y+f.y}},getDocumentElement:lt,getClippingRect:function(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?gt(t)?[]:zt(t,this._c):[].concat(n),r],o=Rt(t,a[0],i),s=o.top,c=o.right,l=o.bottom,u=o.left;for(let e=1;e<a.length;e++){let n=Rt(t,a[e],i);s=Re(n.top,s),c=Le(n.right,c),l=Le(n.bottom,l),u=Re(n.left,u)}return{width:c-u,height:l-s,x:u,y:s}},getOffsetParent:Ut,getElementRects:async function(e){let t=this.getOffsetParent||Ut,n=this.getDimensions,r=await n(e.floating);return{reference:Bt(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}},getClientRects:function(e){return e.getClientRects?Array.from(e.getClientRects()):[]},getDimensions:function(e){let{width:t,height:n}=At(e);return{width:t,height:n}},getScale:Mt,isElement:dt,isRTL:function(e){return wt(e).direction===`rtl`}};function Gt(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function Kt(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:o=typeof ResizeObserver==`function`,layoutShift:s=typeof IntersectionObserver==`function`,animationFrame:c=!1}=r,l=jt(e),u=i||a?[...l?Ot(l):[],...t?Ot(t):[]]:[];u.forEach(e=>{i&&e.addEventListener(`scroll`,n),a&&e.addEventListener(`resize`,n)});let d=l&&s?function(e,t,n){let r,i=null,a=lt(e);function o(){var e;clearTimeout(r),(e=i)==null||e.disconnect(),i=null}function s(n,c){n===void 0&&(n=!1),c===void 0&&(c=1),o();let l=e.getBoundingClientRect(),{left:u,top:d,width:f,height:p}=l;if(n||t(),!f||!p)return;let m={rootMargin:-Be(d)+`px `+-Be(a.clientWidth-(u+f))+`px `+-Be(a.clientHeight-(d+p))+`px `+-Be(u)+`px`,threshold:Re(0,Le(1,c))||1},h=!0;function g(t){let n=t[0].intersectionRatio;if(!Gt(l,e.getBoundingClientRect()))return s();if(n!==c){if(!h)return s();n?s(!1,n):r=setTimeout(()=>{s(!1,1e-7)},1e3)}h=!1}try{i=new IntersectionObserver(g,{...m,root:a.ownerDocument})}catch{i=new IntersectionObserver(g,m)}i.observe(e)}let c=Q(e),l=()=>s(n);return c.addEventListener(`resize`,l),s(!0),()=>{c.removeEventListener(`resize`,l),o()}}(l,n,a):null,f,p=-1,m=null;o&&(m=new ResizeObserver(e=>{let[r]=e;r&&r.target===l&&m&&t&&(m.unobserve(t),cancelAnimationFrame(p),p=requestAnimationFrame(()=>{var e;(e=m)==null||e.observe(t)})),n()}),l&&!c&&m.observe(l),t&&m.observe(t));let h=c?Ft(e):null;return c&&function t(){let r=Ft(e);h&&!Gt(h,r)&&n(),h=r,f=requestAnimationFrame(t)}(),n(),()=>{var e;u.forEach(e=>{i&&e.removeEventListener(`scroll`,n),a&&e.removeEventListener(`resize`,n)}),d?.(),(e=m)==null||e.disconnect(),m=null,c&&cancelAnimationFrame(f)}}var qt=function(e){return e===void 0&&(e=0),{name:`offset`,options:e,async fn(t){var n;let{x:r,y:i,placement:a,middlewareData:o}=t,s=await async function(e,t){let{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=We(n),s=Ge(n),c=Je(n)===`y`,l=ot.has(o)?-1:1,u=a&&c?-1:1,d=Ue(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:m}=typeof d==`number`?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&typeof m==`number`&&(p=s===`end`?-1*m:m),c?{x:p*u,y:f*l}:{x:f*l,y:p*u}}(t,e);return a===o.offset?.placement&&(n=o.arrow)!=null&&n.alignmentOffset?{}:{x:r+s.x,y:i+s.y,data:{...s,placement:a}}}}},Jt=function(e){return e===void 0&&(e={}),{name:`shift`,options:e,async fn(t){let{x:n,y:r,placement:i,platform:a}=t,{mainAxis:o=!0,crossAxis:s=!1,limiter:c={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...l}=Ue(e,t),u={x:n,y:r},d=await a.detectOverflow(t,l),f=Je(i),p=Ke(f),m=u[p],h=u[f],g=(e,t)=>{return n=t+d[e===`y`?`top`:`left`],r=t,i=t-d[e===`y`?`bottom`:`right`],Re(n,Le(r,i));var n,r,i};o&&(m=g(p,m)),s&&(h=g(f,h));let _=c.fn({...t,[p]:m,[f]:h});return{..._,data:{x:_.x-n,y:_.y-r,enabled:{[p]:o,[f]:s}}}}}},Yt=function(e){return e===void 0&&(e={}),{name:`flip`,options:e,async fn(t){var n;let{placement:r,middlewareData:i,rects:a,initialPlacement:o,platform:s,elements:c}=t,{mainAxis:l=!0,crossAxis:u=!0,fallbackPlacements:d,fallbackStrategy:f=`bestFit`,fallbackAxisSideDirection:p=`none`,flipAlignment:m=!0,...h}=Ue(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};let g=We(r),_=Je(o),v=We(o)===o,y=await(s.isRTL==null?void 0:s.isRTL(c.floating)),b=d||(v||!m?[nt(o)]:function(e){let t=nt(e);return[Xe(e),t,Xe(t)]}(o)),x=p!==`none`;!d&&x&&b.push(...tt(o,m,p,y));let S=[o,...b],C=await s.detectOverflow(t,h),w=[],T=i.flip?.overflows||[];if(l&&w.push(C[g]),u){let e=function(e,t,n){n===void 0&&(n=!1);let r=Ge(e),i=Ye(e),a=qe(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=nt(o)),[o,nt(o)]}(r,a,y);w.push(C[e[0]],C[e[1]])}if(T=[...T,{placement:r,overflows:w}],!w.every(e=>e<=0)){let e=(i.flip?.index||0)+1,t=S[e];if(t&&(u!==`alignment`||_===Je(t)||T.every(e=>Je(e.placement)!==_||e.overflows[0]>0)))return{data:{index:e,overflows:T},reset:{placement:t}};let n=T.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0]?.placement;if(!n)switch(f){case`bestFit`:{let e=T.filter(e=>{if(x){let t=Je(e.placement);return t===_||t===`y`}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0]?.[0];e&&(n=e);break}case`initialPlacement`:n=o}if(r!==n)return{reset:{placement:n}}}return{}}}},Xt=(e,t,n)=>{let r=new Map,i=n??{},a={...Wt,...i.platform,_c:r};return(async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:at},c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=it(l,r,c),f=r,p=0,m={};for(let n=0;n<a.length;n++){let h=a[n];if(!h)continue;let{name:g,fn:_}=h,{x:v,y,data:b,reset:x}=await _({x:u,y:d,initialPlacement:r,placement:f,strategy:i,middlewareData:m,rects:l,platform:s,elements:{reference:e,floating:t}});u=v??u,d=y??d,m[g]={...m[g],...b},x&&p<50&&(p++,typeof x==`object`&&(x.placement&&(f=x.placement),x.rects&&(l=!0===x.rects?await o.getElementRects({reference:e,floating:t,strategy:i}):x.rects),{x:u,y:d}=it(l,f,c)),n=-1)}return{x:u,y:d,placement:f,strategy:i,middlewareData:m}})(e,t,{...i,platform:a})},Zt=typeof document<`u`?s.useLayoutEffect:function(){};function Qt(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e==`function`&&e.toString()===t.toString())return!0;let n,r,i;if(e&&t&&typeof e==`object`){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!Qt(e[r],t[r]))return!1;return!0}if(i=Object.keys(e),n=i.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,i[r]))return!1;for(r=n;r--!==0;){let n=i[r];if((n!==`_owner`||!e.$$typeof)&&!Qt(e[n],t[n]))return!1}return!0}return e!=e&&t!=t}function $t(e){return typeof window>`u`?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function en(e,t){let n=$t(e);return Math.round(t*n)/n}function tn(e){let t=s.useRef(e);return Zt(()=>{t.current=e}),t}var nn=(e,t)=>{let n=qt(e);return{name:n.name,fn:n.fn,options:[e,t]}},rn=(e,t)=>{let n=Jt(e);return{name:n.name,fn:n.fn,options:[e,t]}},an=(e,t)=>{let n=Yt(e);return{name:n.name,fn:n.fn,options:[e,t]}},on=e=>{let t=(0,l.useFloatSurface)(),n=(0,l.useTokenThemeContext)(),r=e?.getElement(),i={},a=r?.closest(`[${l.THEME_MODE_ATTR}]`)?.getAttribute(l.THEME_MODE_ATTR),o=r?.closest(`[${l.THEME_SURFACE_ATTR}]`)?.getAttribute(l.THEME_SURFACE_ATTR);a&&(i[l.THEME_MODE_ATTR]=a),o&&(i[l.THEME_SURFACE_ATTR]=o);let s=[...t?.themeScope?.classes??[],n?.scopeClass].filter(Boolean);return{className:s.length?s.join(` `):void 0,attrs:i}},sn=e=>{let{side:t,align:n=`center`}=e;return(t===`t`?`top`:t===`b`?`bottom`:t===`l`?`left`:`right`)+(n===`start`?`-start`:n===`end`?`-end`:``)},cn=e=>{let{state:t,offset:n,alignOffset:r,open:i,container:a,className:o,style:u,zIndex:f,children:p}=e,{getPortalContainer:m}=(0,l.useFullscreenPortal)(),{className:h,attrs:g}=on(t.pane),{refs:_,floatingStyles:v}=function(e){e===void 0&&(e={});let{placement:t=`bottom`,strategy:n=`absolute`,middleware:r=[],platform:i,elements:{reference:a,floating:o}={},transform:c=!0,whileElementsMounted:l,open:u}=e,[f,p]=s.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[m,h]=s.useState(r);Qt(m,r)||h(r);let[g,_]=s.useState(null),[v,y]=s.useState(null),b=s.useCallback(e=>{e!==w.current&&(w.current=e,_(e))},[]),x=s.useCallback(e=>{e!==T.current&&(T.current=e,y(e))},[]),S=a||g,C=o||v,w=s.useRef(null),T=s.useRef(null),E=s.useRef(f),D=l!=null,O=tn(l),k=tn(i),A=tn(u),j=s.useCallback(()=>{if(!w.current||!T.current)return;let e={placement:t,strategy:n,middleware:m};k.current&&(e.platform=k.current),Xt(w.current,T.current,e).then(e=>{let t={...e,isPositioned:!1!==A.current};M.current&&!Qt(E.current,t)&&(E.current=t,d.flushSync(()=>{p(t)}))})},[m,t,n,k,A]);Zt(()=>{!1===u&&E.current.isPositioned&&(E.current.isPositioned=!1,p(e=>({...e,isPositioned:!1})))},[u]);let M=s.useRef(!1);Zt(()=>(M.current=!0,()=>{M.current=!1}),[]),Zt(()=>{if(S&&(w.current=S),C&&(T.current=C),S&&C){if(O.current)return O.current(S,C,j);j()}},[S,C,j,O,D]);let N=s.useMemo(()=>({reference:w,floating:T,setReference:b,setFloating:x}),[b,x]),P=s.useMemo(()=>({reference:S,floating:C}),[S,C]),F=s.useMemo(()=>{let e={position:n,left:0,top:0};if(!P.floating)return e;let t=en(P.floating,f.x),r=en(P.floating,f.y);return c?{...e,transform:`translate(`+t+`px, `+r+`px)`,...$t(P.floating)>=1.5&&{willChange:`transform`}}:{position:n,left:t,top:r}},[n,c,P.floating,f.x,f.y]);return s.useMemo(()=>({...f,update:j,refs:N,elements:P,floatingStyles:F}),[f,j,N,P,F])}({placement:sn(t.placement),strategy:`fixed`,elements:{reference:t.reference},whileElementsMounted:(e,t,n)=>Kt(e,t,n,{animationFrame:!0}),middleware:[nn({mainAxis:n,alignmentAxis:r}),an(),rn({padding:4})]});if(!i)return null;let y=typeof p==`function`?p(t):p;return(0,d.createPortal)((0,c.jsx)(`div`,{ref:_.setFloating,className:[o,h].filter(Boolean).join(` `)||void 0,...g,style:{...v,zIndex:f,...u},children:y}),a??m())},ln=e=>{let{anchor:t,placement:n,whenOff:r,boundary:i,minVisible:a,offset:o=4,alignOffset:s=0,open:l=!0,container:u,className:d,style:f,zIndex:p=1250,children:m}=e;return(0,c.jsx)(Pe,{anchor:t,placement:n,whenOff:r,boundary:i,minVisible:a,children:e=>(0,c.jsx)(cn,{state:e,offset:o,alignOffset:s,open:l,container:u,className:d,style:f,zIndex:p,children:m})})};ln.displayName=`StickyFloat`;var un={pointerEvents:`auto`},dn=(e={})=>{let{openDelay:t=300,closeDelay:n=150}=e,[r,i]=(0,s.useState)(!1),a=(0,s.useRef)(!1),o=(0,s.useRef)(null),c=(0,s.useRef)(!1),l=(0,s.useRef)(null),u=(0,s.useRef)(null),d=e=>{a.current=e,i(e)},f=()=>{l.current&&=(clearTimeout(l.current),null)},p=()=>{u.current&&=(clearTimeout(u.current),null)},m=(0,s.useCallback)(()=>{f(),p(),u.current=setTimeout(()=>{u.current=null,c.current||o.current!==null||d(!1)},n)},[n]),h=(0,s.useCallback)(e=>{if(e!==o.current)if(o.current=e,e!==null){if(p(),a.current)return;f(),l.current=setTimeout(()=>{l.current=null,o.current!==null&&d(!0)},t)}else m()},[t,m]),g=(0,s.useCallback)(()=>{f(),p(),o.current=null,c.current=!1,d(!1)},[]),_=(0,s.useMemo)(()=>({onPointerEnter:()=>{c.current=!0,p()},onPointerLeave:()=>{c.current=!1,m()},style:un}),[m]);return(0,s.useEffect)(()=>()=>{f(),p()},[]),{open:r,setTarget:h,tipProps:_,close:g}},fn=e=>{let{probe:t,placement:n,offset:r=6,alignOffset:i=0,openDelay:a=300,closeDelay:o=150,whenOff:u=`hide`,boundary:d,zIndex:f,dismiss:p,children:m,className:h,style:g}=e,_=W(),{open:v,setTarget:y,tipProps:b,close:x}=dn({openDelay:a,closeDelay:o}),[S,w]=(0,s.useState)(null),T=(0,s.useRef)(null),E=(0,l.useCallbackRef)(e=>{let n=_.getCellFromPointer(e.clientX,e.clientY);if(n){let e=t(n,_);if(e&&e.range){let t=e.key??R(e.range);t!==T.current&&(T.current=t,w({key:t,range:e.range,data:e.data})),y(t);return}}T.current=null,y(null)},[_,t,y]),D=(0,l.useCallbackRef)(()=>{T.current=null,y(null)},[y]);return(0,s.useEffect)(()=>{p&&(T.current=null,x(),w(null))},[p,x]),(0,c.jsx)(K,{className:C(h,`hover-tip`),onPointerMove:E,onPointerLeave:D,children:S&&(0,c.jsx)(ln,{anchor:{range:S.range},placement:n,offset:r,alignOffset:i,boundary:d,zIndex:f,open:v,whenOff:u,style:g,children:e=>m({range:S.range,data:S.data,tipProps:b,state:e})})})};fn.displayName=`HoverTipLayer`;var pn={t:`↑`,b:`↓`,l:`←`,r:`→`},mn=e=>{let t=``,n=e;do t=String.fromCharCode(65+n%26)+t,n=Math.floor(n/26)-1;while(n>=0);return t},hn=e=>{let t=`${mn(e.colStart)}${e.rowStart+1}`,n=`${mn(e.colEnd)}${e.rowEnd+1}`;return t===n?t:`${t}:${n}`},gn={border:`none`,background:`transparent`,color:`inherit`,cursor:`pointer`,font:`14px/1 system-ui`,padding:0,width:18,height:18,borderRadius:4,opacity:.6},_n={position:`relative`,background:`var(--sxl-color-base-100, white)`,color:`var(--sxl-color-base-content, #222)`,border:`1px solid var(--sxl-color-base-300, #ccc)`,borderRadius:8,padding:`10px 12px`,boxShadow:`0 6px 24px var(--sxl-color-shadow, rgba(0,0,0,0.2))`,pointerEvents:`auto`,maxWidth:320},vn={display:`inline-flex`,alignItems:`center`,gap:8,background:`var(--sxl-color-base-content, rgb(55,55,65))`,color:`var(--sxl-color-base-100, white)`,borderRadius:16,padding:`4px 6px 4px 12px`,boxShadow:`0 2px 10px var(--sxl-color-shadow, rgba(0,0,0,0.3))`,pointerEvents:`auto`},yn=({direction:e,label:t,onGoto:n,onCancel:r})=>(0,c.jsxs)(`div`,{style:vn,children:[(0,c.jsxs)(`button`,{onClick:n,style:{border:`none`,background:`transparent`,color:`inherit`,cursor:`pointer`,font:`12px system-ui`},children:[pn[e],` `,t]}),r&&(0,c.jsx)(`button`,{"aria-label":`Cancel`,onClick:r,style:{...gn,opacity:.8},children:`×`})]}),bn=e=>{let{range:t,placement:n={side:`t`,align:`start`},offset:r=8,alignOffset:i=0,address:a,onGoto:o,onCancel:s,zIndex:l,className:u,style:d,children:f}=e;return(0,c.jsx)(ln,{anchor:{range:t},placement:n,offset:r,alignOffset:i,whenOff:`clamp`,zIndex:l,open:!0,children:e=>{if(e.outOfView)return(0,c.jsx)(yn,{direction:e.slid?.direction??n.side,label:a??hn(t),onGoto:()=>o?o(e):e.scrollIntoView(),onCancel:s});let r=typeof f==`function`?f(e):f;return(0,c.jsxs)(`div`,{className:u,style:{..._n,...d},children:[s&&(0,c.jsx)(`button`,{"aria-label":`Cancel`,onClick:s,style:{...gn,position:`absolute`,top:4,right:4},children:`×`}),r]})}})};bn.displayName=`RangePrompt`;var xn={stroke:`var(--sxl-color-primary, rgb(33, 115, 70))`,alignWidth:2,fill:`color-mix(in srgb, var(--sxl-color-primary, rgb(33, 115, 70)) 10%, transparent)`},Sn=(0,s.memo)(e=>{let{range:t,hole:n,clipInsets:r,alignWidth:i=1,animatedTransition:a,className:o,...s}=e,u=l.ReactUtils.getDevicePixelRatio(),d=i/u,f=r??-d/2,p=G(),m=p?p.getBoundsFromRange(t):null,h=d+4;if(p&&m&&!p.toClipBounds(m,f))return null;let g=p?p.getPaneBounds():null,v=g?{x:-h,y:-h,width:g.width+2*h,height:g.height+2*h}:m,y=v?l.ReactUtils.snapDeviceEdge(v.x,u):0,b=v?l.ReactUtils.snapDeviceEdge(v.y,u):0,x;if(m&&v){let e=d+2,t=Math.max(m.x,v.x-e),n=Math.max(m.y,v.y-e);x={x:t-y,y:n-b,width:Math.min(m.x+m.width,v.x+v.width+e)-t,height:Math.min(m.y+m.height,v.y+v.height+e)-n}}let S=n&&p?p.getBoundsFromRange(n):null,w=S?{x:S.x-y,y:S.y-b,width:S.width,height:S.height}:void 0;return(0,c.jsx)(J,{className:C(o),bounds:v??void 0,clipInsets:f,style:{pointerEvents:`none`},children:(0,c.jsx)(_,{bounds:x,alignWidth:i,hole:w,animatedTransition:a,...s})})});Sn.displayName=`RangeRect`;var Cn=()=>typeof window<`u`?window:null,wn=(e,t,n={x:!0,y:!0})=>{let r=e.getElement()?.getBoundingClientRect();if(!r)return!1;let i=!1===n.x?0:t.x<=r.left+24?-1:+(t.x>=r.right-24),a=!1===n.y?0:t.y<=r.top+24?-1:+(t.y>=r.bottom-24);if(!i&&!a)return!1;let o=e.getVisibleRange(),s=e.getTotalRange(),c=e.getCellFromPointer(t.x,t.y),l={};return i>0&&o.colEnd<s.colEnd?l.colIndex=Math.min(s.colEnd,Math.max(o.colEnd+1,c?.colIndex??0)):i<0&&o.colStart>s.colStart&&(l.colIndex=Math.max(s.colStart,Math.min(o.colStart-1,c?.colIndex??2**53-1))),a>0&&o.rowEnd<s.rowEnd?l.rowIndex=Math.min(s.rowEnd,Math.max(o.rowEnd+1,c?.rowIndex??0)):a<0&&o.rowStart>s.rowStart&&(l.rowIndex=Math.max(s.rowStart,Math.min(o.rowStart-1,c?.rowIndex??2**53-1))),(l.colIndex!==void 0||l.rowIndex!==void 0)&&((e.getAllPanes()[u.AnchorLocation.Center]??e).scrollCellCoordsIntoView(l),!0)},Tn=(e,t,n,r)=>{let i=r??((t,n)=>e.getCellFromPointer(t,n)),a=null,o=null,s=null,c=null,l=null,d=()=>{l&&=(document.removeEventListener(`touchstart`,l,{capture:!0}),document.removeEventListener(`touchmove`,l,{capture:!0}),null)},f=()=>{c&&clearTimeout(c),c=null},p=(t,n,r)=>{if(!a)return!1;let s=i(t,n);return s&&!u.CoordUtils.isEqualCells(s,o)&&(o=s,a.drag(s,r)),(a.edgeScroll??(t=>wn(e,t)))({x:t,y:n})};return{hasSession:()=>a!==null,captureEvents:()=>a?.captureEvents,begin:e=>{let r=i(e.clientX,e.clientY);if(!r)return null;let c=t(r,e);return c?(a=c,o=r,s=null,e.pointerType===`touch`&&!1!==c.capture&&(()=>{if(l)return;let e=e=>{e.stopImmediatePropagation(),e.preventDefault()};l=e,document.addEventListener(`touchstart`,e,{capture:!0,passive:!1}),document.addEventListener(`touchmove`,e,{capture:!0,passive:!1})})(),n?.(c.dragMode??null),c):null},move:(e,t,n)=>{a&&(s={x:e,y:t},p(e,t,n)?(f(),c=setTimeout(function e(){c=a&&s&&p(s.x,s.y)?setTimeout(e,60):null},60)):f())},reset:()=>{let e=a;return a=null,o=null,s=null,f(),d(),e&&n?.(null),e},dispose:()=>{f(),d()}}},En=(e,t,n)=>{let r=Tn(e,t,n),i=!1,a=null,o=null,s=null,c=null,l=null,u=()=>{s&&a&&a.removeEventListener?.(`pointercancel`,s),s=null,c&&Cn()?.removeEventListener(`keydown`,c,!0),c=null},d=()=>{l&&=(Cn()?.removeEventListener(`pointerup`,l),Cn()?.removeEventListener(`pointercancel`,l),null)},f=()=>{a&&o!==null&&a.hasPointerCapture?.(o)&&a.releasePointerCapture(o),a=null,o=null},p=(e,t)=>{let n=i,a=r.reset();i=!1,u(),d(),f(),a&&(e?a.cancel?.(t):t&&(!1!==a.captureEvents&&n&&t.stopPropagation(),a.end?.(t)))};return{onPointerDown:e=>{let t=r.begin(e);if(t)if(!1!==t.capture){let t=e.currentTarget;t.setPointerCapture?.(e.pointerId),a=t,o=e.pointerId,i=!0,s=e=>p(!0,e),t.addEventListener?.(`pointercancel`,s),c=e=>{e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),p(!0))},Cn()?.addEventListener(`keydown`,c,!0)}else i=!1,l=e=>p(e.type===`pointercancel`,e),Cn()?.addEventListener(`pointerup`,l),Cn()?.addEventListener(`pointercancel`,l)},onPointerMove:e=>{r.hasSession()&&i&&(!1!==r.captureEvents()&&e.stopPropagation(),r.move(e.clientX,e.clientY,e))},onPointerUp:e=>p(!1,e),onPointerCancel:e=>p(!0,e),dispose:()=>{u(),d(),f(),r.dispose()}}};function Dn(e,t,n,r){let i=Tn(e,t,n,r),a=null,o=null,s=null,c=()=>{a?.(),a=null},l=()=>{o&&s!==null&&o.hasPointerCapture?.(s)&&o.releasePointerCapture(s),o=null,s=null};return{start:(e,t)=>{c(),l();let n=i.begin(e);if(!n)return;if(!1!==n.capture){let n=t??e.currentTarget;n&&(n.setPointerCapture?.(e.pointerId),o=n,s=e.pointerId)}let r=e=>i.move(e.clientX,e.clientY,e),u=(e,t)=>{c();let n=i.reset();l(),n&&(e?n.cancel?.(t):n.end?.(t))},d=e=>u(!1,e),f=e=>u(!0,e),p=e=>{e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),u(!0))};window.addEventListener(`pointermove`,r),window.addEventListener(`pointerup`,d),window.addEventListener(`pointercancel`,f),window.addEventListener(`keydown`,p,!0),a=()=>{window.removeEventListener(`pointermove`,r),window.removeEventListener(`pointerup`,d),window.removeEventListener(`pointercancel`,f),window.removeEventListener(`keydown`,p,!0)}},dispose:()=>{c(),l(),i.dispose()}}}var On=e=>{let t=W(),[n,r]=(0,s.useState)(null),i=(0,s.useRef)(e);i.current=e;let a=(0,s.useMemo)(()=>En(t,(e,t)=>i.current(e,t),r),[t]);return(0,s.useEffect)(()=>()=>a.dispose(),[a]),{onPointerDown:a.onPointerDown,onPointerMove:a.onPointerMove,onPointerUp:a.onPointerUp,onPointerCancel:a.onPointerCancel,dragMode:n}},kn=e=>{let t=W(),[n,r]=(0,s.useState)(null),i=(0,s.useRef)(e);i.current=e;let a=(0,s.useMemo)(()=>Dn(t,(e,t)=>i.current(e,t),r),[t]);return(0,s.useEffect)(()=>()=>a.dispose(),[a]),{start:a.start,dragMode:n}},An=e=>{let{range:t,anchor:n,size:r=8,cursor:i,dragCursor:a,background:o=`var(--sxl-color-primary, rgb(33, 115, 70))`,onDragStart:u,onDragMove:d,onDragEnd:f,onDragCancel:p,onHoverChange:m,hoverStyle:h,animatedTransition:g,renderHandle:_,children:v,className:y,style:b,preserveFocus:x,clampToView:S}=e,C=W(),[w,T]=(0,s.useState)(!1),{start:E,dragMode:D}=kn((e,t)=>{if(t.button!==0)return null;t.stopPropagation(),x&&t.preventDefault();let n=e,r=e;return u?.(n,t),{dragMode:`handle`,drag:(e,i)=>{r=e,d?.(n,e,i??t)},end:e=>{f?.(n,r,e)},cancel:()=>{p?.()}}}),O=D!==null&&a?a:i??Pn[n],k=C.getBoundsFromRange(t);if(!k)return null;let A=l.ReactUtils.getDevicePixelRatio(),j=Nn(k.x,k.x+k.width,jn[n],A),M=Nn(k.y,k.y+k.height,Mn[n],A);if(S){if(!C.toClipBounds(C.getBoundsFromRange(t)))return null;let e=C.getPaneBounds(),n=r/2+1;!0!==S&&S!==`x`||(j=Math.max(n,Math.min(e.width-n,j))),!0!==S&&S!==`y`||(M=Math.max(n,Math.min(e.height-n,M)))}let N={position:`absolute`,cursor:O,pointerEvents:`all`,left:0,top:0,transform:`translate(${j}px, ${M}px) translate(-50%, -50%)`,...g?{transition:`transform 60ms ease-in-out`,willChange:`transform`}:void 0},P={onPointerDown:e=>E(e),onPointerEnter:()=>{T(!0),m?.(!0)},onPointerLeave:()=>{T(!1),m?.(!1)}};return _?(0,c.jsx)(c.Fragment,{children:_({anchor:n,size:r,cursor:O,background:o,hovered:w,handleProps:{...P,style:N}})}):(0,c.jsx)(`div`,{className:y,...P,style:{...N,width:r,height:r,background:v==null?o:void 0,border:v==null?`1px solid var(--sxl-color-base-100, white)`:void 0,borderRadius:1,boxSizing:`border-box`,...b,...w?h:void 0},children:v})};An.displayName=`DragHandle`;var jn={tl:`leading`,l:`leading`,bl:`leading`,t:`center`,b:`center`,tr:`trailing`,r:`trailing`,br:`trailing`},Mn={tl:`leading`,t:`leading`,tr:`leading`,l:`center`,r:`center`,bl:`trailing`,b:`trailing`,br:`trailing`},Nn=(e,t,n,r)=>n===`center`?l.ReactUtils.snapDeviceEdge((e+t)/2,r):l.ReactUtils.edgeCenter(n===`leading`?e:t,n,2,r),Pn={tl:`nwse-resize`,br:`nwse-resize`,tr:`nesw-resize`,bl:`nesw-resize`,t:`ns-resize`,b:`ns-resize`,l:`ew-resize`,r:`ew-resize`},Fn=e=>{let{range:t,children:n,grip:r=`entire`,hitSize:i=10,onHoverChange:a,onDragStateChange:o,onDragStart:d,onDragMove:f,onDragEnd:p,renderMove:m,preserveFocus:h}=e,g=W(),v=t?`range-move:${t.rowStart}:${t.colStart}:${t.rowEnd}:${t.colEnd}`:`range-move`,y=(0,s.useRef)(null),[b,x]=ve(v,null),{start:S,dragMode:C}=kn((e,n)=>{if(n.button!==0||!t)return null;n.stopPropagation(),h&&n.preventDefault();let r=e,i=t,a=i;return o?.(!0),d?.(i,n),{dragMode:`move`,drag:(e,t)=>{a=(e=>In(i,e.rowIndex-r.rowIndex,e.colIndex-r.colIndex,g.getTotalRange()))(e),m&&x(a),f?.(a,t??n)},end:e=>{o?.(!1),m&&x(null),u.CoordUtils.isEqualRanges(a,i)||p?.(a,e)},cancel:()=>{o?.(!1),m&&x(null)}}}),w=C===null?`move`:`grabbing`;if(!t)return null;let T={onPointerDown:e=>S(e,y.current)},E=a?{onPointerEnter:()=>a(!0),onPointerLeave:()=>a(!1)}:void 0,D=i/l.ReactUtils.getDevicePixelRatio(),O=g?.getBoundsFromRange(t),k=O?{x:O.x-D,y:O.y-D,width:O.width+2*D,height:O.height+2*D}:void 0;return(0,c.jsxs)(c.Fragment,{children:[r===`entire`?(0,c.jsx)(J,{ref:y,...k?{bounds:k}:{range:t},style:{cursor:w},...T,...E}):(0,c.jsx)(J,{ref:y,range:t,clipInsets:-D/2,style:{pointerEvents:`none`,cursor:w},...T,children:(0,c.jsx)(_,{stroke:`transparent`,alignWidth:i,propsStrokePath:{cursor:`move`,pointerEvents:`stroke`,...E}})}),n,b&&m?.(b)]})};Fn.displayName=`Draggable`;var In=(e,t,n,r)=>{let i=e.rowEnd-e.rowStart,a=e.colEnd-e.colStart,o=w(e.rowStart+t,r.rowStart,r.rowEnd-i),s=w(e.colStart+n,r.colStart,r.colEnd-a);return{rowStart:o,colStart:s,rowEnd:o+i,colEnd:s+a}},Ln=[`tl`,`tr`,`br`,`bl`],Rn=[`tl`,`t`,`tr`,`r`,`br`,`b`,`bl`,`l`],zn=e=>{let{range:t,anchors:n=Rn,onDragStart:r,onDragMove:i,onDragEnd:a,onDragCancel:o,onHandleHoverChange:l,size:u=8,renderHandle:d,preserveFocus:f,...p}=e,m={...xn,...p},h=m.stroke??`rgb(33, 115, 70)`,g=W(),[_,v]=(0,s.useState)(null),y=(0,s.useRef)(null);if(!t)return null;let b=_??t;return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(Sn,{range:b,...m}),n.map(e=>(0,c.jsx)(An,{range:b,anchor:e,size:u,animatedTransition:m.animatedTransition,dragCursor:`grabbing`,renderHandle:d,preserveFocus:f,onHoverChange:l,style:{background:h,border:`1.5px solid var(--sxl-color-base-100, white)`,borderRadius:0},hoverStyle:{border:`1.5px solid ${h}`},onDragStart:(e,n)=>{y.current=t,r?.(t,n)},onDragMove:(n,r,a)=>{let o=Bn(y.current??t,e,r,g.getTotalRange());v(o),i?.(o,a)},onDragEnd:(n,r,i)=>{let o=Bn(y.current??t,e,r,g.getTotalRange());y.current=null,v(null),a?.(o,i)},onDragCancel:()=>{y.current=null,v(null),o?.()}},e))]})};zn.displayName=`RangeResizer`;var Bn=(e,t,n,r)=>{let{rowStart:i,colStart:a,rowEnd:o,colEnd:s}=e;return t.includes(`t`)&&(i=w(n.rowIndex,r.rowStart,r.rowEnd)),t.includes(`b`)&&(o=w(n.rowIndex,r.rowStart,r.rowEnd)),t.includes(`l`)&&(a=w(n.colIndex,r.colStart,r.colEnd)),t.includes(`r`)&&(s=w(n.colIndex,r.colStart,r.colEnd)),{rowStart:Math.min(i,o),colStart:Math.min(a,s),rowEnd:Math.max(i,o),colEnd:Math.max(a,s)}},Vn=e=>{let{range:t,snapDestination:n,onDragStart:r,onDragMove:i,onDragEnd:a,onDragDone:o,renderHandle:l,...d}=e,f={...xn,fill:void 0,...d},p=f.stroke,m={...f,strokeDasharray:`3 2`},h=W(),g=(0,s.useRef)(null),[_,v]=ve(`range-fill`,null);if(!t)return null;let y=h.getTotalRange(),b=t.rowStart===y.rowStart&&t.rowEnd===y.rowEnd,x=t.colStart===y.colStart&&t.colEnd===y.colEnd;if(b&&x)return null;let S=Object.keys(h.getAllPanes()).length<=1,C=h.getBoundsFromRange(t),w=h.getPaneBounds(),T=S&&C.y>=0&&C.y+C.height<=w.height,E=S&&C.x>=0&&C.x+C.width<=w.width,D=b&&!T?`tr`:x&&!E?`bl`:`br`,O=D===`tr`?`y`:D===`bl`&&`x`;return O&&!((e,t,n,r)=>{let i=e.getAllPanes();if(Object.keys(i).length<=1)return!0;let a=e.getAnchor(),o=!!i[u.AnchorLocation.TopLeft],s=!!i[u.AnchorLocation.Top],c=!!i[u.AnchorLocation.Left],l=e.getVisibleRange();if(r){if(a===u.AnchorLocation.Top&&o||a===u.AnchorLocation.Center&&c||!u.CoordUtils.isCellWithinRange({colIndex:t.colStart,rowIndex:t.rowEnd},l)&&!u.CoordUtils.isCellWithinRange({colIndex:t.colStart,rowIndex:t.rowEnd+1},l))return!1}else if(n&&(a===u.AnchorLocation.Left&&o||a===u.AnchorLocation.Center&&s||!u.CoordUtils.isCellWithinRange({colIndex:t.colEnd,rowIndex:t.rowStart},l)&&!u.CoordUtils.isCellWithinRange({colIndex:t.colEnd+1,rowIndex:t.rowStart},l)))return!1;return!0})(h,t,b,x)?null:(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(An,{range:t,anchor:D,clampToView:O,cursor:`crosshair`,background:p,renderHandle:l,onDragStart:(e,n)=>{g.current=null,v(null),r?.(t,n)},onDragMove:(e,r,a)=>{let o=((e,t,n)=>{let r=t.rowIndex-e.rowEnd,i=e.rowStart-t.rowIndex,a=t.colIndex-e.colEnd,o=e.colStart-t.colIndex,s=Math.max(r,i,0),c=Math.max(a,o,0);return s===0&&c===0?null:s>=c?r>0?{...e,rowEnd:Math.min(n.rowEnd,t.rowIndex)}:{...e,rowStart:Math.max(n.rowStart,t.rowIndex)}:a>0?{...e,colEnd:Math.min(n.colEnd,t.colIndex)}:{...e,colStart:Math.max(n.colStart,t.colIndex)}})(t,r,h.getTotalRange());o&&n&&(o=n(t,o)),g.current=o,v(o),o&&i?.(o,a)},onDragEnd:(e,t,n)=>{let r=g.current;g.current=null,v(null),r&&a?.(r,n),o?.(n)},onDragCancel:()=>{g.current=null,v(null),o?.()}}),_&&(0,c.jsx)(Sn,{range:_,...m})]})};Vn.displayName=`FillHandle`;var Hn=(0,s.memo)(e=>{let{value:t,pane:n,bounds:r,cell:i,range:a,children:o,className:s,...l}=e;return(0,c.jsx)(`div`,{className:C(s,`cell`),...l,children:t})}),Un=Object.freeze({cells:[],rangesH:[],rangesV:[]}),Wn=!1,Gn=new WeakMap,Kn=(e,t={})=>{let n=e.getVisibleRange(),r=e.getScrollTopLeft(),i=t.bufferRange,a=!!i,o=i?i.rowStart:0,s=i?i.colStart:0,c=i?i.rowEnd:0,l=i?i.colEnd:0,d=Gn.get(e);if(d&&d.rowStart===n.rowStart&&d.colStart===n.colStart&&d.rowEnd===n.rowEnd&&d.colEnd===n.colEnd&&d.scrollLeft===r.left&&d.scrollTop===r.top&&d.hasBuffer===a&&d.bRowStart===o&&d.bColStart===s&&d.bRowEnd===c&&d.bColEnd===l&&d.options.cacheToken===t.cacheToken&&d.options.getVisibleCells===t.getVisibleCells&&d.options.hiddenCellAt===t.hiddenCellAt)return d.model;let f=((e,t={})=>{let{getVisibleCells:n,hiddenCellAt:r,bufferRange:i}=t,a=e.getTotalRange(),o=i?{rowStart:Math.max(i.rowStart,a.rowStart),rowEnd:Math.min(i.rowEnd,a.rowEnd),colStart:Math.max(i.colStart,a.colStart),colEnd:Math.min(i.colEnd,a.colEnd)}:null,s=o?e.getVisibleColumns(o.colStart,o.colEnd):e.getVisibleColumns(),c=o?e.getVisibleRows(o.rowStart,o.rowEnd):e.getVisibleRows();if(s.length===0||c.length===0)return Un;let l=t=>e.getRangeFromCell(t),d;if(n)d=n(e,i);else{d=[];let e=c.length,t=s.length;for(let n=0;n<e;n++){let e=c[n].index;for(let n=0;n<t;n++){let t={rowIndex:e,colIndex:s[n].index},i=l(t);u.CoordUtils.isSingleCell(i)&&r?.(t)||d.push({cell:t,range:i})}}}let f=d?d.length:0;if(f===0)return Un;let p=e.getVisibleRange(),m=i??p,h=[],g=[],_=[],v=new Set;for(let t=0;t<f;t++){let n=d[t],i=n?.cell??n;if(!i)continue;let a=n?.range??{rowStart:i.rowIndex,colStart:i.colIndex,rowEnd:i.rowIndex,colEnd:i.colIndex};if(!u.CoordUtils.isRangesIntersect(a,m)&&!u.CoordUtils.isRangeWithinRange(a,m))continue;let o=a&&!u.CoordUtils.isSingleCell(a);if(!o&&r?.(i))continue;let s=null;if(o){let t=l(i);u.CoordUtils.isSingleCell(t)||i.rowIndex===t.rowStart&&i.colIndex===t.colStart||(i={rowIndex:t.rowStart,colIndex:t.colStart});let n=Xn(a.rowStart,a.colStart);if(v.has(n))continue;v.add(n),a.rowEnd-a.rowStart>0&&g.push(a),a.colEnd-a.colStart>0&&_.push(a),s=e.getBoundsFromRange(a)}else{let t=e.getRowSize(i.rowIndex),n=e.getColumnSize(i.colIndex);t&&n&&(s={x:n.offset,y:t.offset,width:n.size,height:t.size})}s||=e.getBoundsFromRange(a),s?h.push({cell:i,range:a,bounds:s,value:n?.value}):Wn||(Wn=!0,console.warn(`grid-react: no bounds for cell`,Xn(a.rowStart,a.colStart)))}return{cells:h,rangesH:g,rangesV:_}})(e,t);return Gn.set(e,{rowStart:n.rowStart,colStart:n.colStart,rowEnd:n.rowEnd,colEnd:n.colEnd,scrollLeft:r.left,scrollTop:r.top,hasBuffer:a,bRowStart:o,bColStart:s,bRowEnd:c,bColEnd:l,options:t,model:f}),f},qn=Object.freeze({rangesH:[],rangesV:[]}),Jn=new WeakMap,Yn=(e,t={})=>{let n=e.getVisibleRange(),r=Jn.get(e);if(r&&r.rowStart===n.rowStart&&r.colStart===n.colStart&&r.rowEnd===n.rowEnd&&r.colEnd===n.colEnd&&r.cacheToken===t.cacheToken&&r.getVisibleCells===t.getVisibleCells)return r.ranges;let i=((e,t={})=>{let{getVisibleCells:n}=t,r=e.getVisibleRange(),i=[],a=[],o=new Set,s=e=>{if(u.CoordUtils.isSingleCell(e)||!u.CoordUtils.isRangesIntersect(e,r)&&!u.CoordUtils.isRangeWithinRange(e,r))return;let t=Xn(e.rowStart,e.colStart);o.has(t)||(o.add(t),e.rowEnd-e.rowStart>0&&i.push(e),e.colEnd-e.colStart>0&&a.push(e))};if(n){let t=n(e),r=t?t.length:0;for(let e=0;e<r;e++){let n=t[e]?.range;n&&s(n)}}else{let t=e.getVisibleColumns(),n=e.getVisibleRows(),r=n.length,i=t.length;for(let a=0;a<r;a++){let r=n[a].index;for(let n=0;n<i;n++)s(e.getRangeFromCell({rowIndex:r,colIndex:t[n].index}))}}return i.length===0&&a.length===0?qn:{rangesH:i,rangesV:a}})(e,t);return Jn.set(e,{rowStart:n.rowStart,colStart:n.colStart,rowEnd:n.rowEnd,colEnd:n.colEnd,getVisibleCells:t.getVisibleCells,cacheToken:t.cacheToken,ranges:i}),i},Xn=(e,t)=>`${e}:${t}`,Zn={tiles:`_tiles_ikr1b_7`,gridlines:`_gridlines_ikr1b_26`},Qn=(0,s.memo)(e=>{let{renderCell:t,cacheToken:n,getVisibleCells:r,hiddenCellAt:i,suppressCell:a,className:o,style:l}=e,u=W(),d=u.getAnchor(),f=(0,s.useId)(),p=(0,s.useMemo)(()=>`sxl-cl-${f.replace(/[^a-zA-Z0-9_-]/g,``)}`,[f]),m=(0,s.useRef)({token:void 0,renderCell:void 0,getVisibleCells:void 0,hiddenCellAt:void 0,pane:null,rebaseLeft:0,rebaseTop:0,map:new Map}),h=u.getScrollTopLeft(),g=u.getFreezeTopLeft(),_=h.left+g.left,v=h.top+g.top,y=Math.floor(_/er)*er,b=Math.floor(v/er)*er,x=u.getVisibleRange(),S=0,w=-1,T=0,E=-1;x&&(S=Math.max(0,Math.floor(x.rowStart/$)-tr),w=Math.floor(x.rowEnd/$)+tr,T=Math.max(0,Math.floor(x.colStart/$)-tr),E=Math.floor(x.colEnd/$)+tr);let D=(0,s.useMemo)(()=>{if(!x||w<S)return null;let e=m.current;e.token===n&&e.pane===u&&e.renderCell===t&&e.getVisibleCells===r&&e.hiddenCellAt===i&&e.rebaseLeft===y&&e.rebaseTop===b||(e.map=new Map,e.token=n,e.pane=u,e.renderCell=t,e.getVisibleCells=r,e.hiddenCellAt=i,e.rebaseLeft=y,e.rebaseTop=b);let a=e.map,o=u.getTotalRange(),s={rowStart:Math.max(o.rowStart,S*$),colStart:Math.max(o.colStart,T*$),rowEnd:Math.min(o.rowEnd,(w+1)*$-1),colEnd:Math.min(o.colEnd,(E+1)*$-1)},{cells:l}=Kn(u,{getVisibleCells:r,hiddenCellAt:i,bufferRange:s,cacheToken:n}),f=new Map;for(let e=0;e<l.length;e++){let t=l[e],n=`${Math.floor(t.cell.rowIndex/$)}:${Math.floor(t.cell.colIndex/$)}`,r=f.get(n);r||(r=[],f.set(n,r)),r.push(t)}let p=[],h=(e,n)=>{if(e*$>o.rowEnd||n*$>o.colEnd)return;let r=e>=S&&e<=w&&n>=T&&n<=E,i=`${e}:${n}`,s=a.get(i);if(s===void 0){let l=f.get(i);if(!l&&!rr)return;let p=u.getBoundsFromRange({rowStart:e*$,colStart:n*$,rowEnd:Math.min(o.rowEnd,e*$+$-1),colEnd:Math.min(o.colEnd,n*$+$-1)}),m=_+p.x-y,h=v+p.y-b,g=[];if(rr&&g.push((0,c.jsx)(`div`,{style:{position:`absolute`,left:0,top:0,width:p.width,height:p.height,background:(e+n)%2==0?`rgba(0,128,255,0.05)`:`rgba(255,140,0,0.05)`,pointerEvents:`none`}},`__bg`)),l)for(let e=0;e<l.length;e++){let{cell:n,range:r,bounds:i,value:a}=l[e];i&&g.push(t({key:`pane:${d}:cell:${Xn(n.rowIndex,n.colIndex)}`,cell:n,bounds:i,range:r,pane:u,value:a,"data-rc":Xn(n.rowIndex,n.colIndex),style:{left:i.x-p.x,top:i.y-p.y,width:i.width,height:i.height}}))}if(s=(0,c.jsx)(`div`,{className:`tile`,style:{transform:`translate(${m}px, ${h}px)`},children:g},`pane:${d}:tile:${e}:${n}`),r&&(a.set(i,s),a.size>nr)){let e=a.keys().next().value;e!==void 0&&a.delete(e)}}s&&p.push(s)};if(rr){for(let e=S;e<=w&&!(e*$>o.rowEnd);e++)for(let t=T;t<=E&&!(t*$>o.colEnd);t++)h(e,t);for(let e of f.keys()){let t=e.indexOf(`:`),n=Number(e.slice(0,t)),r=Number(e.slice(t+1));(n<S||n>w||r<T||r>E)&&h(n,r)}}else for(let e of f.keys()){let t=e.indexOf(`:`);h(Number(e.slice(0,t)),Number(e.slice(t+1)))}return p},[`${S}:${w}:${T}:${E}`,n,t,r,i,u,d,y,b]);return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(J,{fill:!0,className:C(Zn.tiles,p,o),style:{pointerEvents:`none`,...l,transform:`translate3d(${y-_}px, ${b-v}px, 0)`,willChange:`transform`},children:D}),a?(0,c.jsx)(`style`,{children:`.${p} [data-rc="${Xn(a.rowIndex,a.colIndex)}"]{visibility:hidden !important;}`}):null]})});Qn.displayName=`CellTileDiv`;var $n=(0,s.memo)(e=>{let{renderCell:t,cacheToken:n,getVisibleCells:r,hiddenCellAt:i,suppressCell:a,className:o,style:s,...l}=e;return(0,c.jsx)(K,{className:C(o,`tiles`),...l,children:(0,c.jsx)(Qn,{renderCell:t,cacheToken:n,getVisibleCells:r,hiddenCellAt:i,suppressCell:a,style:s})})});$n.displayName=`CellLayer`;var $=8,er=1<<19,tr=1,nr=512,rr=!1,ir=(e,t,n)=>{let r=l.ReactUtils.getDevicePixelRatio(),i=cr/r,a=e.getVisibleRange(),o=t=>e.getColumnSize(t).offset,s=t=>{let n=e.getColumnSize(t);return n.offset+n.size},c=t=>e.getRowSize(t).offset,d=t=>{let n=e.getRowSize(t);return n.offset+n.size},f=[],p=[],m=!1,h=``;if(t){let t=e.getVisibleRows(),c=t?t.length:0;if(c===0)return h;let g=[...n].sort(u.CoordUtils.rowFirstRangeComparator),_=l.ReactUtils.snapDeviceEdge(0,r),v=Math.min(e.getPaneBounds().width,s(a.colEnd)),y=l.ReactUtils.snapDeviceEdge(v,r);for(let e=0;e<c&&t[e].index<=a.rowEnd;e++){let n=t[e],c=n.index;if(c<a.rowStart)continue;let b=n.offset+n.size;for(let e=f.length-1;e>=0;e--)d(f[e].rowEnd)<=b&&(f.splice(e,1),m=!1);let x=!1;for(;g.length>0&&g[0].rowStart<=c;){let e=g.shift();d(e.rowEnd)>b&&(f.push(e),x=!0,m=!1)}if(x&&f.sort(u.CoordUtils.columnFirstRangeComparator),!m){p.length=0;for(let e=0;e<f.length;e++){let t=f[e];p.push(l.ReactUtils.snapDeviceEdge(Math.min(v,o(t.colStart)),r),l.ReactUtils.snapDeviceEdge(Math.min(v,s(t.colEnd)),r))}m=!0}let S=l.ReactUtils.snapLineCenter(b,i,r),C=_,w=p.length;for(let e=0;e<w;e+=2){let t=p[e];t>C&&(h+=`M ${C} ${S} L ${t} ${S} `),C=p[e+1]}y>C&&(h+=`M ${C} ${S} L ${y} ${S} `)}}else{let t=e.getVisibleColumns(),o=t?t.length:0;if(o===0)return h;let g=[...n].sort(u.CoordUtils.columnFirstRangeComparator),_=l.ReactUtils.snapDeviceEdge(0,r),v=Math.min(e.getPaneBounds().height,d(a.rowEnd)),y=l.ReactUtils.snapDeviceEdge(v,r);for(let e=0;e<o&&t[e].index<=a.colEnd;e++){let n=t[e],o=n.index;if(o<a.colStart)continue;let b=n.offset+n.size;for(let e=f.length-1;e>=0;e--)s(f[e].colEnd)<=b&&(f.splice(e,1),m=!1);let x=!1;for(;g.length>0&&g[0].colStart<=o;){let e=g.shift();s(e.colEnd)>b&&(f.push(e),x=!0,m=!1)}if(x&&f.sort(u.CoordUtils.rowFirstRangeComparator),!m){p.length=0;for(let e=0;e<f.length;e++){let t=f[e];p.push(l.ReactUtils.snapDeviceEdge(Math.min(v,c(t.rowStart)),r),l.ReactUtils.snapDeviceEdge(Math.min(v,d(t.rowEnd)),r))}m=!0}let S=l.ReactUtils.snapLineCenter(b,i,r),C=_,w=p.length;for(let e=0;e<w;e+=2){let t=p[e];t>C&&(h+=`M ${S} ${C} L ${S} ${t} `),C=p[e+1]}y>C&&(h+=`M ${S} ${C} L ${S} ${y} `)}}return h},ar=e=>{let t=``;for(let n=0;n<e.length;n++){let r=e[n];t+=`${r.rowStart},${r.colStart},${r.rowEnd},${r.colEnd};`}return t},or=(e,t,n,r,i)=>{if(!n)return null;let a=e.getPaneBounds(),o=Math.ceil(a.width),s=Math.ceil(a.height),u=String(cr/l.ReactUtils.getDevicePixelRatio());return(0,c.jsx)(`svg`,{className:C(t?`horizontal`:`vertical`),width:`${o}`,height:`${s}`,viewBox:`0 0 ${o} ${s}`,preserveAspectRatio:`none`,children:(0,c.jsx)(`path`,{d:n,fill:`none`,stroke:r,strokeWidth:u,vectorEffect:`non-scaling-stroke`,...i})})},sr=(0,s.memo)(e=>{let{showGridLines:t=!0,gridLineColor:n=`var(--sxl-color-base-300, rgb(224, 224, 224))`,propsRows:r,propsColumns:i,getVisibleCells:a,hiddenCellAt:o,cacheToken:u,bufferRange:d,className:f,style:p,...m}=e,h=W(),g=t,_=!0===t||!0===g?.horizontal,v=!0===t||!0===g?.vertical,{rangesH:y,rangesV:b}=Yn(h,{getVisibleCells:a,cacheToken:u}),x=l.ReactUtils.getDevicePixelRatio(),{top:S,left:w}=h.getScrollTopLeft(),T=h.getPaneBounds(),E=h.getVisibleRange(),D=h.getColumnSize(E.colEnd),O=h.getRowSize(E.rowEnd),k=Math.min(T.width,D?D.offset+D.size:T.width),A=Math.min(T.height,O?O.offset+O.size:T.height),j=y.length===0?`${S}|${k}|${x}`:`${S}|${w}|${k}|${x}|${ar(y)}`,M=b.length===0?`${w}|${A}|${x}`:`${w}|${S}|${A}|${x}|${ar(b)}`,N=(0,s.useMemo)(()=>_?ir(h,!0,y):null,[h,_,j]),P=(0,s.useMemo)(()=>v?ir(h,!1,b):null,[h,v,M]);return _||v?(0,c.jsx)(K,{...m,className:C(f,`gridlines`),children:(0,c.jsxs)(J,{fill:!0,className:Zn.gridlines,style:{pointerEvents:`none`,...p},children:[_&&N?or(h,!0,N,n,r):null,v&&P?or(h,!1,P,n,i):null]})}):null});sr.displayName=`GridlineLayer`;var cr=1,lr=class{constructor(e={}){this.listeners=new Set,this._coords=e.initial??{cell:{rowIndex:0,colIndex:0},ranges:u.CoordUtils.EmptyRanges,rangeIndex:-1},this._getBounds=e.getBounds??(()=>fr)}getSelection(){return this._coords}setSelection(e){u.CoordUtils.isEqualSelectionCoords(this._coords,e)||(this._coords=e,this.listeners.forEach(e=>e()))}navigate(e,t=!1,n=!1,r=1){let i=this._getBounds(),{cell:a}=this._coords,o=e===u.Direction.Down?1:e===u.Direction.Up?-1:0,s=e===u.Direction.Right?1:e===u.Direction.Left?-1:0,c=e=>e===0?0:n?e>0?1/0:-1/0:e*Math.max(1,r),l=this._activeRange(),d=t?a.rowIndex===l.rowStart?l.rowEnd:l.rowStart:a.rowIndex,f=t?a.colIndex===l.colStart?l.colEnd:l.colStart:a.colIndex,p=w(d+c(o),i.rowStart,i.rowEnd),m=w(f+c(s),i.colStart,i.colEnd);if(!t)return void this.setSelection({cell:{rowIndex:p,colIndex:m},ranges:u.CoordUtils.EmptyRanges,rangeIndex:-1});let h={rowStart:Math.min(a.rowIndex,p),colStart:Math.min(a.colIndex,m),rowEnd:Math.max(a.rowIndex,p),colEnd:Math.max(a.colIndex,m)};this.setSelection({cell:a,ranges:[h],rangeIndex:0})}traverse(e=u.RangeAxis.Row,t=!1,n){let r=e===u.RangeAxis.Row?t?u.Direction.Left:u.Direction.Right:t?u.Direction.Up:u.Direction.Down,i=this._coords;if(!(i.ranges&&i.ranges.length>0)||u.CoordUtils.isEqualRangesArrays([u.CoordUtils.cellToRange(i.cell)],i.ranges)){if(n&&!u.CoordUtils.isSingleCell(n)){let e=u.SelectionTraversalUtils.findNextCellWithinSelection({ranges:[n],cell:i.cell,rangeIndex:0},r,e=>u.CoordUtils.cellToRange(e));this.setSelection({cell:e.cell,ranges:u.CommonUtils.EmptyArray,rangeIndex:-1});return}this.navigate(r);return}let a=u.SelectionTraversalUtils.findNextCellWithinSelection(i,r,e=>u.CoordUtils.cellToRange(e));this.setSelection(a)}_activeIndex(){let{ranges:e,rangeIndex:t}=this._coords;return e&&e.length!==0?t!==void 0&&t>=0&&t<e.length?t:e.length-1:-1}_activeRange(){let e=this._activeIndex();return e>=0?this._coords.ranges[e]:u.CoordUtils.cellToRange(this._coords.cell)}modify(e,t=this._coords.cell){let n=this._activeRange(),r=ur({rowStart:Math.min(e.rowIndex??n.rowStart,t.rowIndex??n.rowStart),colStart:Math.min(e.colIndex??n.colStart,t.colIndex??n.colStart),rowEnd:Math.max(e.rowIndex??n.rowEnd,t.rowIndex??n.rowEnd),colEnd:Math.max(e.colIndex??n.colEnd,t.colIndex??n.colEnd)},this._getBounds()),i=this._coords,a=this._activeIndex(),o=a>=0?i.ranges.map((e,t)=>t===a?r:e):[r],s=dr(i.cell,r);this.setSelection({cell:s,ranges:o,rangeIndex:a>=0?a:0})}append(e,t=e){let n=ur({rowStart:Math.min(e.rowIndex,t.rowIndex),colStart:Math.min(e.colIndex,t.colIndex),rowEnd:Math.max(e.rowIndex,t.rowIndex),colEnd:Math.max(e.colIndex,t.colIndex)},this._getBounds()),r=this._coords,i=r.ranges&&r.ranges.length>0?[...r.ranges]:[u.CoordUtils.cellToRange(r.cell)];i.push(n),this.setSelection({ranges:i,rangeIndex:i.length-1,cell:{rowIndex:n.rowStart,colIndex:n.colStart}})}deselect(e){let t=this._coords;if(!t.ranges||t.ranges.length===0)return;let n=[],r=-1,i=t.cell;for(let a of t.ranges){if(!u.CoordUtils.isRangesIntersect(a,e)){n.push(a),r===-1&&u.CoordUtils.isCellWithinRange(t.cell,a)&&(r=n.length-1);continue}let o=n.length,s=u.CommonUtils.subtractRect({top:a.rowStart,left:a.colStart,bottom:a.rowEnd+1,right:a.colEnd+1},{top:e.rowStart,left:e.colStart,bottom:e.rowEnd+1,right:e.colEnd+1});for(let e of s){let i={rowStart:e.top,colStart:e.left,rowEnd:e.bottom-1,colEnd:e.right-1};n.push(i),r===-1&&u.CoordUtils.isCellWithinRange(t.cell,i)&&(r=n.length-1)}if(r===-1&&n.length>o&&u.CoordUtils.isCellWithinRange(t.cell,a)){r=n.length-1;let e=n[n.length-1];i={rowIndex:e.rowStart,colIndex:e.colStart}}}if(r===-1&&n.length>0&&t.ranges.some(e=>u.CoordUtils.isCellWithinRange(t.cell,e))){r=n.length-1;let e=n[r];i={rowIndex:e.rowStart,colIndex:e.colStart}}this.setSelection({cell:i,rangeIndex:r,ranges:n})}getCoords(){return this._coords.cell}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}},ur=(e,t)=>({rowStart:w(e.rowStart,t.rowStart,t.rowEnd),colStart:w(e.colStart,t.colStart,t.colEnd),rowEnd:w(e.rowEnd,t.rowStart,t.rowEnd),colEnd:w(e.colEnd,t.colStart,t.colEnd)}),dr=(e,t)=>({rowIndex:w(e.rowIndex,t.rowStart,t.rowEnd),colIndex:w(e.colIndex,t.colStart,t.colEnd)}),fr={rowStart:0,colStart:0,rowEnd:2**53-1,colEnd:2**53-1},pr=`var(--sxl-color-primary, rgb(33, 115, 70))`,mr=`var(--sxl-color-base-100, rgb(255, 255, 255))`,hr=`var(--sxl-color-warning, rgb(255, 0, 0))`,gr=e=>`color-mix(in srgb, var(--sxl-color-primary, rgb(33, 115, 70)) ${e}%, transparent)`,_r={fill:{fill:gr(10)},border:{stroke:pr,alignWidth:2,style:{filter:`drop-shadow(1px 1px 0.3px var(--sxl-color-shadow, rgba(0, 0, 0, 0.24)))`}},inner:{stroke:mr,alignWidth:2,inset:1}},vr={fill:{fill:gr(6)},border:{stroke:pr,alignWidth:1},inner:{stroke:mr,alignWidth:1,inset:1}},yr={stroke:pr,alignWidth:1,inset:2},br={fill:{fill:`color-mix(in srgb, ${hr} 10%, transparent)`},border:{stroke:hr,alignWidth:2}},xr=(e,t)=>{let n=W(),r=t?.allowDeselect??!0,i=t?.allowMulti??!0,a=(0,s.useRef)(null),[o,c]=(0,s.useState)(null),l=(0,s.useRef)(t?.onSelectionEnd);l.current=t?.onSelectionEnd;let d=On((t,o)=>{if(o.pointerType===`touch`){let t=n.getScrollTopLeft(),r={x:o.clientX,y:o.clientY};return{capture:!1,drag:()=>{},end:i=>{let a=n.getScrollTopLeft();if(a.left===t.left&&a.top===t.top){let t=n.getCellFromPointer(r.x,r.y);t&&e.setSelection({cell:t,ranges:u.CoordUtils.EmptyRanges,rangeIndex:-1})}l.current?.(i)}}}if(o.button===2){let n=e.getSelection();return u.CoordUtils.isEqualCells(n.cell,t)||n.ranges&&n.ranges.some(e=>u.CoordUtils.isCellWithinRange(t,e))||e.setSelection({cell:t,ranges:u.CoordUtils.EmptyRanges,rangeIndex:-1}),null}if(o.button!==0)return null;o.stopPropagation();let s=e=>l.current?.(e),d=e.getSelection(),f=()=>e.setSelection(d);if(o.shiftKey)return e.modify(t),{dragMode:`extend`,drag:t=>e.modify(t),end:s,cancel:f};if((o.ctrlKey||o.metaKey)&&i){let i=e.getSelection().ranges,o=!!i&&i.some(e=>u.CoordUtils.isCellWithinRange(t,e));return r&&o?(a.current=u.CoordUtils.cellToRange(t),c(a.current),{dragMode:`remove`,drag:e=>{a.current=((e,t)=>{let r=n.getTotalRange();return{rowStart:Math.max(r.rowStart,Math.min(e.rowIndex,t.rowIndex)),colStart:Math.max(r.colStart,Math.min(e.colIndex,t.colIndex)),rowEnd:Math.min(r.rowEnd,Math.max(e.rowIndex,t.rowIndex)),colEnd:Math.min(r.colEnd,Math.max(e.colIndex,t.colIndex))}})(t,e),c(a.current)},end:t=>{let n=a.current;a.current=null,c(null),n&&e.deselect(n),s(t)},cancel:()=>{a.current=null,c(null)}}):(e.append(t),{dragMode:`extend`,drag:t=>e.modify(t),end:s,cancel:f})}return e.setSelection({cell:t,ranges:u.CoordUtils.EmptyRanges,rangeIndex:-1}),{dragMode:`extend`,drag:t=>e.modify(t),end:s,cancel:f}});return{onPointerDown:d.onPointerDown,onPointerMove:d.onPointerMove,onPointerUp:d.onPointerUp,removePreview:o,dragMode:d.dragMode}},Sr=e=>{let{selection:t,color:n=`var(--sxl-color-primary, rgb(33, 115, 70))`,size:r=22}=e,i=G(),a=Tr((0,l.useBoundSyncExternalStore)(t,e=>e.getSelection())),o=i?i.getAllPanes()[u.AnchorLocation.Center]??i:void 0,d=((e,t,n)=>{let r=!!t&&e.rowStart===t.rowStart&&e.rowEnd===t.rowEnd,i=!!t&&e.colStart===t.colStart&&e.colEnd===t.colEnd;if(r&&i)return[];if(r){let t=n?Math.floor((n.rowStart+n.rowEnd)/2):e.rowStart;return[{key:`l`,placement:{side:`l`,align:`center`},cell:{rowIndex:t,colIndex:e.colStart},pivot:{colIndex:e.colEnd},axis:`col`,pin:`v`},{key:`r`,placement:{side:`r`,align:`center`},cell:{rowIndex:t,colIndex:e.colEnd},pivot:{colIndex:e.colStart},axis:`col`,pin:`v`}]}if(i){let t=n?Math.floor((n.colStart+n.colEnd)/2):e.colStart;return[{key:`t`,placement:{side:`t`,align:`center`},cell:{rowIndex:e.rowStart,colIndex:t},pivot:{rowIndex:e.rowEnd},axis:`row`,pin:`h`},{key:`b`,placement:{side:`b`,align:`center`},cell:{rowIndex:e.rowEnd,colIndex:t},pivot:{rowIndex:e.rowStart},axis:`row`,pin:`h`}]}return[{key:`tl`,placement:{side:`t`,align:`start`},cell:{rowIndex:e.rowStart,colIndex:e.colStart},pivot:{rowIndex:e.rowEnd,colIndex:e.colEnd},axis:`both`},{key:`br`,placement:{side:`b`,align:`end`},cell:{rowIndex:e.rowEnd,colIndex:e.colEnd},pivot:{rowIndex:e.rowStart,colIndex:e.colStart},axis:`both`}]})(a,i?.getTotalRange(),o?.getVisibleRange()),[f,p]=(0,s.useState)(!1),m=(0,s.useRef)(null);(0,s.useEffect)(()=>()=>m.current?.dispose(),[]);let h=(e,n,r,i)=>{m.current?.dispose();let a=r===`col`?{x:!0,y:!1}:r===`row`?{x:!1,y:!0}:{x:!0,y:!0},o=t.getSelection(),s=Dn(e,()=>(p(!0),{dragMode:`grip`,drag:e=>{let i=r===`col`?{colIndex:e.colIndex}:r===`row`?{rowIndex:e.rowIndex}:e;t.modify(i,n)},edgeScroll:t=>wn(e,t,a),end:()=>p(!1),cancel:()=>{t.setSelection(o),p(!1)}}),void 0,(t,n)=>(e.getPaneFromPointer(t,n)??e).getCellFromPointer(t,n));m.current=s,s.start(i,i.currentTarget)};return(0,c.jsx)(c.Fragment,{children:d.map(e=>(0,c.jsx)(Cr,{spec:e,size:r,color:n,dragging:f,onBeginDrag:h},e.key))})};Sr.displayName=`SelectionTouchGrips`;var Cr=e=>{let{spec:t,size:n,color:r,dragging:i,onBeginDrag:a}=e;return(0,c.jsx)(Pe,{anchor:{cell:t.cell},placement:t.placement,whenOff:`hide`,children:e=>e.slid?null:(0,c.jsx)(wr,{state:e,size:n,color:r,dragging:i,pin:t.pin,onBeginDrag:n=>{e.pane&&a(e.pane,t.pivot,t.axis,n)}})})},wr=e=>{let{state:t,size:n,color:r,dragging:i,pin:a,onBeginDrag:o}=e,{getPortalContainer:s}=(0,l.useFullscreenPortal)(),{className:u,attrs:f}=on(t.pane),{x:p,y:m}=t.anchorPoint;if(a){let e=t.pane?.getElement()?.getBoundingClientRect();e&&(a===`v`?m=e.top+e.height/2:p=e.left+e.width/2)}return(0,d.createPortal)((0,c.jsx)(`div`,{className:[`touch-select-grip`,u].filter(Boolean).join(` `),...f,style:{position:`fixed`,left:p,top:m,width:n,height:n,transform:`translate(-50%, -50%)`,background:`var(--sxl-color-base-100, white)`,border:`3px solid ${r}`,borderRadius:`50%`,boxShadow:`0 0 0 1.5px var(--sxl-color-base-100, white)`,cursor:`grab`,touchAction:`none`,zIndex:1250,opacity:+!i,pointerEvents:i?`none`:`all`,transition:`opacity 160ms`},onPointerDown:e=>{e.button!==0&&e.pointerType!==`touch`||t.pane&&(e.preventDefault(),e.stopPropagation(),o(e))}}),s())},Tr=e=>{let{ranges:t,rangeIndex:n,cell:r}=e;if(t&&t.length>0){let e=n??-1;return t[e>=0?e:t.length-1]}return u.CoordUtils.cellToRange(r)},Er=[u.Direction.Left,u.Direction.Right,u.Direction.Up,u.Direction.Down],Dr={[u.Direction.Left]:`ArrowLeft`,[u.Direction.Right]:`ArrowRight`,[u.Direction.Up]:`ArrowUp`,[u.Direction.Down]:`ArrowDown`},Or={[u.Direction.Left]:`Left`,[u.Direction.Right]:`Right`,[u.Direction.Up]:`Up`,[u.Direction.Down]:`Down`},kr=(e,t)=>t===void 0?e:t===null?null:{...e,...t},Ar=(e,t)=>t?{fill:kr(e.fill,t.fill),border:kr(e.border,t.border),inner:kr(e.inner,t.inner)}:e,jr={side:`b`,align:`end`},Mr=s.default.forwardRef((e,t)=>{let{selection:n,getContentBounds:r,getRegionBounds:i,scrollIntoView:a,singleStyle:o,multiStyle:d,multiAnchorStyle:f,singleAnchorStyle:p,removePreviewStyle:m,singleLayer:h,multiLayer:g,enabledMove:_,onMove:v,onMoveStart:y,onMoveUpdate:b,onMoveEnd:x,enableFill:S,snapFillDestination:C,onFill:w,onFillStart:T,onFillPreview:E,onFillEnd:D,onSelectionEnd:O,renderTip:k,tipPlacement:A,disableKeyboard:j,anchorHole:M=!0,...N}=e,P=(0,l.useBoundSyncExternalStore)(n,e=>e.getSelection()),F=xr(n,{onSelectionEnd:O}),[I,L]=s.default.useState(null),R=W(),ee=s.default.useRef(n);ee.current=n;let te=s.default.useRef(R);te.current=R;let ne=s.default.useRef(r);ne.current=r;let z=s.default.useRef(i);z.current=i;let re=s.default.useRef(a);re.current=a;let ie=s.default.useMemo(()=>function(e){let{getSelection:t,getPane:n,getContentBounds:r,getScrollIntoView:i=()=>{},getRegionBounds:a=()=>null}=e,o=()=>t(),s=()=>n(),c=()=>s().getTotalRange(),d=r??c,f=e=>a(e),p=e=>{let t=i();t?t(e):s().scrollCellCoordsIntoView(e)},m=()=>p(o().getSelection().cell),h=()=>{let e=o().getSelection();return e.ranges&&e.ranges.length>0&&e.rangeIndex!==void 0&&e.rangeIndex>=0?e.ranges[e.rangeIndex]:u.CoordUtils.cellToRange(e.cell)},g=(e,t,n=!1)=>{if(o().navigate(e,t,n),i())return;let r=o().getSelection(),a=e===u.Direction.Left||e===u.Direction.Right;if(t){let t=c(),n=h(),i=r.cell.colIndex===n.colStart?n.colEnd:n.colStart,o=r.cell.rowIndex===n.rowStart?n.rowEnd:n.rowStart;if(e===u.Direction.Right&&i===t.colEnd||e===u.Direction.Left&&i===t.colStart||e===u.Direction.Up&&o===t.rowStart||e===u.Direction.Down&&o===t.rowEnd)return;p(a?{colIndex:i}:{rowIndex:o});return}p(a?{colIndex:r.cell.colIndex}:{rowIndex:r.cell.rowIndex})},_=(e,t)=>{let n=s(),r=n.getMetrics(),i=c(),a=n.getSurfaceSize(),l=n.getScrollTopLeft(),d=n.getScrollTarget?.()??l,f=h(),p=o().getSelection().cell,m=t?p.rowIndex===f.rowStart?f.rowEnd:f.rowStart:p.rowIndex,g=t?p.colIndex===f.colStart?f.colEnd:f.colStart:p.colIndex,_=m,v=g,y=null;switch(e){case u.Direction.Up:{let e=r.getRowOffset(m+1);_=Math.max(i.rowStart,r.getRowIndex(e-a.height)),y={top:r.getRowOffset(_+1)-(e-d.top)};break}case u.Direction.Down:{let e=r.getRowOffset(m);_=Math.min(i.rowEnd,r.getRowIndex(e+a.height)),y={top:r.getRowOffset(_)-(e-d.top)};break}case u.Direction.Left:{let e=r.getColOffset(g+1);v=Math.max(i.colStart,r.getColIndex(e-a.width)),y={left:r.getColOffset(v+1)-(e-d.left)};break}case u.Direction.Right:{let e=r.getColOffset(g);v=Math.min(i.colEnd,r.getColIndex(e+a.width)),y={left:r.getColOffset(v)-(e-d.left)};break}}let b={rowIndex:_,colIndex:v};t?o().modify(b):o().setSelection({cell:b,ranges:u.CommonUtils.EmptyArray,rangeIndex:-1}),y&&n.scrollTo({...y,behavior:`instant`})},v=(e,t)=>{if(t)o().modify(e);else{let t=o().getSelection().cell;o().setSelection({cell:{rowIndex:e.rowIndex??t.rowIndex,colIndex:e.colIndex??t.colIndex},ranges:u.CommonUtils.EmptyArray,rangeIndex:-1})}m()},y=(e,t)=>{let n=o().getSelection(),r=n.ranges&&n.ranges.length>0?void 0:f(n.cell)??void 0;o().traverse(e,t,r),m()},b=e=>{let t=o().getSelection();if(!t.ranges||t.ranges.length<=1)return;let n=(t.rangeIndex??t.ranges.length-1)+(e?-1:1);n<0?n=t.ranges.length-1:n>=t.ranges.length&&(n=0);let r=t.ranges[n];o().setSelection({...t,rangeIndex:n,cell:{rowIndex:r.rowStart,colIndex:r.colStart}}),m()},x=new Map,S=(e,t,n)=>{x.set(e,{shortcut:t,run:n})},C=l.KeyModifiers.Shift,w=l.KeyModifiers.Ctrl,T=l.KeyModifiers.Alt;for(let e of Er){let t=Or[e],n=Dr[e];S(`move${t}`,{key:n},()=>g(e,!1)),S(`select${t}`,{key:n,modifiers:[C]},()=>g(e,!0)),S(`moveContentful${t}`,{key:n,modifiers:[w]},()=>g(e,!1,!0)),S(`selectContentful${t}`,{key:n,modifiers:[w,C]},()=>g(e,!0,!0))}S(`moveToPageDown`,{key:`PageDown`},()=>_(u.Direction.Down,!1)),S(`selectToPageDown`,{key:`PageDown`,modifiers:[C]},()=>_(u.Direction.Down,!0)),S(`moveToPageUp`,{key:`PageUp`},()=>_(u.Direction.Up,!1)),S(`selectToPageUp`,{key:`PageUp`,modifiers:[C]},()=>_(u.Direction.Up,!0)),S(`moveToPageRight`,{key:`PageDown`,modifiers:[T]},()=>_(u.Direction.Right,!1)),S(`selectToPageRight`,{key:`PageDown`,modifiers:[T,C]},()=>_(u.Direction.Right,!0)),S(`moveToPageLeft`,{key:`PageUp`,modifiers:[T]},()=>_(u.Direction.Left,!1)),S(`selectToPageLeft`,{key:`PageUp`,modifiers:[T,C]},()=>_(u.Direction.Left,!0)),S(`traverseSelectionRight`,{key:`Tab`},()=>y(u.RangeAxis.Row,!1)),S(`traverseSelectionLeft`,{key:`Tab`,modifiers:[C]},()=>y(u.RangeAxis.Row,!0)),S(`traverseSelectionDown`,[{key:`Enter`},{key:`NumpadEnter`}],()=>y(u.RangeAxis.Column,!1)),S(`traverseSelectionUp`,[{key:`Enter`,modifiers:[C]},{key:`NumpadEnter`,modifiers:[C]}],()=>y(u.RangeAxis.Column,!0)),S(`traverseSelectionNextRange`,{key:`ArrowRight`,modifiers:[w,T]},()=>b(!1)),S(`traverseSelectionPreviousRange`,{key:`ArrowLeft`,modifiers:[w,T]},()=>b(!0)),S(`moveToRowStart`,{key:`Home`},()=>v({colIndex:c().colStart},!1)),S(`moveToGridStart`,{key:`Home`,modifiers:[w]},()=>v({rowIndex:c().rowStart,colIndex:c().colStart},!1)),S(`selectToRowStart`,{key:`Home`,modifiers:[C]},()=>v({colIndex:c().colStart},!0)),S(`selectToColumnStart`,void 0,()=>v({rowIndex:c().rowStart},!0)),S(`selectToGridStart`,{key:`Home`,modifiers:[w,C]},()=>v({rowIndex:c().rowStart,colIndex:c().colStart},!0)),S(`moveToRowEnd`,{key:`End`},()=>v({colIndex:d().colEnd},!1)),S(`moveToGridEnd`,{key:`End`,modifiers:[w]},()=>v({rowIndex:d().rowEnd,colIndex:d().colEnd},!1)),S(`selectToColumnEnd`,void 0,()=>v({rowIndex:c().rowEnd},!0)),S(`selectToRowEnd`,{key:`End`,modifiers:[C]},()=>v({colIndex:d().colEnd},!0)),S(`selectToGridEnd`,{key:`End`,modifiers:[w,C]},()=>v({rowIndex:d().rowEnd,colIndex:d().colEnd},!0)),S(`selectColumn`,{key:`Space`,modifiers:[w]},()=>{let e=f(o().getSelection().cell)??c();o().modify({rowIndex:e.rowStart},{rowIndex:e.rowEnd}),m()}),S(`selectRow`,{key:`Space`,modifiers:[C]},()=>{let e=f(o().getSelection().cell)??c();o().modify({colIndex:e.colStart},{colIndex:e.colEnd}),m()}),S(`scrollToActiveCoords`,{key:`Backspace`,modifiers:[w]},()=>m()),S(`scrollToActiveCoordsClearSelection`,{key:`Backspace`,modifiers:[C]},()=>{let e=o().getSelection().cell;o().setSelection({cell:e,ranges:u.CommonUtils.EmptyArray,rangeIndex:-1}),m()});let E=(e,t)=>{let n=t.modifiers??[];return(n.includes(w)||n.includes(l.KeyModifiers.Meta))===(e.ctrlKey||e.metaKey)&&n.includes(C)===e.shiftKey&&n.includes(T)===e.altKey&&(e.key===t.key||e.code===t.key)};return{invoke(e){let t=x.get(e);return!!t&&(t.run(),!0)},supports:e=>x.has(e),getBindings:()=>x,handleKey(e){for(let t of x.values())if(t.shortcut&&(Array.isArray(t.shortcut)?t.shortcut:[t.shortcut]).some(t=>E(e,t)))return t.run(),!0;return!1}}}({getSelection:()=>ee.current,getPane:()=>te.current,getContentBounds:()=>ne.current?.()??te.current.getTotalRange(),getScrollIntoView:()=>re.current,getRegionBounds:e=>z.current?.(e)??null}),[]);s.default.useImperativeHandle(t,()=>ie,[ie]);let B=!!P.ranges&&P.ranges.length>0,ae=B?[...P.ranges]:[u.CoordUtils.cellToRange(P.cell)],oe=ae.length>1,V=P.rangeIndex??-1,se=B?V>=0?V:ae.length-1:0,H=R.getRangeFromCell(P.cell),U=u.CoordUtils.unionRanges(ae[se]??u.CoordUtils.cellToRange(P.cell),H),ce=ae.filter((e,t)=>t!==se),le=oe?Ar(vr,d):Ar(_r,o),ue={...yr,...f},de=Ar(br,m),fe=e=>{let t=n.getSelection(),r=t.ranges,i=!!r&&r.length>0,a=i?t.rangeIndex!==void 0&&t.rangeIndex>=0&&t.rangeIndex<r.length?t.rangeIndex:r.length-1:0,o=i?r.map((t,n)=>n===a?e:t):[e],s=u.CoordUtils.isCellWithinRange(t.cell,e)?t.cell:{rowIndex:e.rowStart,colIndex:e.colStart};n.setSelection({cell:s,ranges:o,rangeIndex:a})},pe=I??(F.dragMode===`extend`?{kind:`select`,range:U}:null),me=pe&&k?k(pe):null,he=s.default.Children.map(oe?g:h,e=>{if(!s.default.isValidElement(e))return e;let t=e.props;return s.default.cloneElement(e,{range:U,onDragEnd:(e,n)=>{t.onDragEnd?.(e,n),fe(e)}})});return(0,c.jsxs)(K,{...N,onPointerDown:F.onPointerDown,onPointerMove:F.onPointerMove,onPointerUp:F.onPointerUp,onKeyDown:j?void 0:e=>{ie.handleKey(e)&&(e.preventDefault(),e.stopPropagation())},children:[oe?(0,c.jsxs)(c.Fragment,{children:[ce.map((e,t)=>(0,c.jsx)(s.default.Fragment,{children:Nr(le,e)},`other-${t}`)),Nr(le,U,M?H:void 0),(0,c.jsx)(Sn,{range:H,...ue})]}):(0,c.jsxs)(c.Fragment,{children:[Nr(le,U,M?H:void 0),p&&(0,c.jsx)(Sn,{range:H,...p})]}),!oe&&_&&(0,c.jsx)(Fn,{range:U,grip:`edges`,renderMove:e=>le.border&&(0,c.jsx)(Sn,{range:e,...le.border,animatedTransition:!0,style:{opacity:.6}}),onDragStart:(e,t)=>{y?.(e,t),L({kind:`move`,from:e,to:e})},onDragMove:(e,t)=>{b?.(U,e,t),L({kind:`move`,from:U,to:e})},onDragStateChange:e=>{e||(x?.(),L(null))},onDragEnd:(e,t)=>{v?.(U,e,t),n.modify({rowIndex:e.rowEnd,colIndex:e.colEnd},{rowIndex:e.rowStart,colIndex:e.colStart})}}),!oe&&S&&(0,c.jsx)(Vn,{range:U,snapDestination:C,...le.border,onDragStart:(e,t)=>{T?.(e,t),L({kind:`fill`,template:e,destination:e})},onDragMove:(e,t)=>{E?.(U,e,t),L({kind:`fill`,template:U,destination:e})},onDragEnd:(e,t)=>{w?.(U,e,t),fe(e)},onDragDone:()=>{D?.(),L(null)}}),F.removePreview&&Nr(de,F.removePreview),he,me!=null&&pe&&(0,c.jsx)(ln,{anchor:{range:(ge=pe,ge.kind===`move`?ge.to:ge.kind===`fill`?ge.destination:ge.range)},placement:A??jr,offset:8,whenOff:`clamp`,open:!0,style:{pointerEvents:`none`},children:me})]});var ge});Mr.displayName=`SelectionLayer`;var Nr=(e,t,n,r=!1)=>(0,c.jsxs)(c.Fragment,{children:[e.fill&&(0,c.jsx)(Sn,{className:`fill`,animatedTransition:r,range:t,hole:n,...e.fill}),e.inner&&(0,c.jsx)(Sn,{className:`inner`,animatedTransition:r,range:t,...e.inner}),e.border&&(0,c.jsx)(Sn,{className:`border`,animatedTransition:r,range:t,...e.border})]}),Pr=[`#1a73e8`,`#d93025`,`#1e8e3e`,`#9334e6`,`#e37400`,`#12a4af`,`#d01884`],Fr=Array.from({length:l.SERIES_COUNT},(e,t)=>`var(--sxl-color-series-${t+1}, ${Pr[t]})`),Ir=`var(--sxl-color-primary, rgb(0, 120, 215))`,Lr=(e,t,n)=>({rowStart:Math.max(n.rowStart,Math.min(e.rowIndex,t.rowIndex)),colStart:Math.max(n.colStart,Math.min(e.colIndex,t.colIndex)),rowEnd:Math.min(n.rowEnd,Math.max(e.rowIndex,t.rowIndex)),colEnd:Math.min(n.colEnd,Math.max(e.colIndex,t.colIndex))}),Rr=e=>({stroke:Fr.length?Fr[e%Fr.length]:Ir}),zr=e=>{let{selection:t,getRangeStyle:n=Rr,anchors:r=Ln,enabledMove:i,disableDraw:a,allowMulti:o=!0,size:d,animated:f,renderHandle:p,preserveFocus:m=!0,onDragActiveChange:h,rangeStyle:g=u.CommonUtils.EmptyObject,className:_,...v}=e,y=W(),b=(0,l.useBoundSyncExternalStore)(t,e=>e.getSelection()),x=b.ranges??u.CoordUtils.EmptyRanges,S=Math.min(Math.max(0,b.rangeIndex??x.length-1),Math.max(0,x.length-1)),[w,T]=(0,s.useState)(null),[E,D]=(0,s.useState)(null),[O,k]=(0,s.useState)(!1),A=E!==null||O,j=(0,s.useRef)(h);j.current=h,(0,s.useEffect)(()=>{j.current?.(A,E)},[A,E]),(0,s.useEffect)(()=>()=>{j.current?.(!1,null)},[]);let M=E??w,N=(e,t)=>T(n=>t?e:n===e?null:n),P=(e,n)=>{let r=t.getSelection(),i=r.ranges??u.CoordUtils.EmptyRanges,a=e<i.length?i.map((t,r)=>r===e?{...t,...n}:t):[...i,n];t.setSelection({...r,cell:{rowIndex:n.rowStart,colIndex:n.colStart},ranges:a,rangeIndex:e})},F=e=>{let n=t.getSelection();(n.rangeIndex??-1)!==e&&t.setSelection({...n,rangeIndex:e})},I=On((e,t)=>{if(t.button!==0)return null;let n=(b.rangeIndex??-1)>=0?b.rangeIndex:-1;if(t.shiftKey&&n>=0&&x[n]){let t={rowIndex:x[n].rowStart,colIndex:x[n].colStart};return k(!0),P(n,Lr(t,e,y.getTotalRange())),{drag:e=>P(n,Lr(t,e,y.getTotalRange())),end:()=>k(!1),captureEvents:!1}}let r=(!t.ctrlKey&&!t.metaKey||!o)&&n>=0?n:x.length;return k(!0),P(r,u.CoordUtils.cellToRange(e)),{drag:t=>P(r,Lr(e,t,y.getTotalRange())),end:()=>k(!1),captureEvents:!1}}),L=x.map((e,t)=>n(t,t===S)),R=[];for(let e=0;e<L.length;e++)L[e]&&R.push(e);return(0,c.jsxs)(K,{...v,children:[(!a||O)&&(0,c.jsx)(J,{fill:!0,className:C(_,`ranges-picker-draw`),onPointerDown:e=>{e.stopPropagation(),m&&e.preventDefault(),I.onPointerDown(e)},onPointerMove:I.onPointerMove,onPointerUp:e=>{e.stopPropagation(),I.onPointerUp(e)}}),i&&R.map(e=>(0,c.jsx)(Fn,{range:x[e],grip:`edges`,preserveFocus:m,onHoverChange:t=>N(e,t),onDragStateChange:t=>{t&&F(e),D(t?e:null)},onDragMove:t=>P(e,t),onDragEnd:t=>P(e,t)},`move-${e}`)),R.map(e=>{let t=e===S,n=e===M,i=((e,t,n)=>{let r=e.stroke??g.stroke??Ir;return{...g,...e,stroke:r,fill:e.fill??g.fill??`color-mix(in srgb, ${r} 12%, transparent)`,alignWidth:n?3:e.alignWidth??g.alignWidth??2,...f&&t?{animatedStroke:!0}:void 0}})(L[e],t,n);return(0,c.jsx)(zn,{range:x[e],anchors:r,size:d,...i,renderHandle:p,preserveFocus:m,onHandleHoverChange:t=>N(e,t),onDragMove:t=>P(e,t),onDragStart:()=>{F(e),D(e)},onDragEnd:t=>{D(null),P(e,t)}},`resize-${e}`)})]})};zr.displayName=`RangesPickerLayer`;var Br=0,Vr=class{constructor(e,t={}){this.listeners=new Set,this.commitListeners=new Set,this.cancelListeners=new Set,this.editors=new Set,this.activeEditor=null,this.activeEditorId=null,this.auxState=null,this.commitFn=e.commit,this.state={mode:t.mode??`enter`,coords:e.coords,clean:e.clean,dirty:t.dirty,initialSelection:t.initialSelection??null,autoFocus:t.autoFocus??!0,token:++Br}}getState(){return this.state}getCoords(){return this.state.coords}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}registerEditor(e){return this.editors.add(e),()=>{this.editors.delete(e),this.activeEditor===e&&(this.activeEditor=null)}}setActiveEditor(e){this.activeEditor=e}getActiveEditor(){return this.activeEditor}setActiveEditorId(e){this.activeEditorId=e}getActiveEditorId(){return this.activeEditorId}getEditors(){return[...this.editors]}getAuxState(){return this.auxState}setAuxState(e){this.auxState!==e&&(this.auxState=e,this.notify())}setDirty(e){this.state.dirty!==e&&this.emit({...this.state,dirty:e})}setMode(e){this.state.mode!==e&&this.emit({...this.state,mode:e})}commit(e){let t=this.state,n=!1,r={coords:t.coords,dirty:t.dirty,args:e,veto:()=>{n=!0}};for(let e of this.commitListeners){try{e(r)}catch(e){console.error(`EditSession beforeCommit listener threw:`,e),n=!0}if(n)break}if(n)return!1;if(t.dirty===void 0)return!0;try{if(!1===this.commitFn(t.dirty,e))return!1}catch(e){return console.error(`EditSession commit rejected with an error:`,e),!1}return!0}cancel(){this.cancelListeners.forEach(e=>{try{e()}catch(e){console.error(`EditSession cancel listener threw:`,e)}})}addCommitListener(e){return this.commitListeners.add(e),()=>{this.commitListeners.delete(e)}}addCancelListener(e){return this.cancelListeners.add(e),()=>{this.cancelListeners.delete(e)}}emit(e){this.state=e,this.notify()}notify(){this.listeners.forEach(e=>e())}},Hr=e=>e.ctrlKey||e.metaKey||e.altKey||e.isComposing?null:e.key===`Process`||e.keyCode===229?{mode:`enter`,dirty:``}:e.key.length===1?e.key===` `&&e.shiftKey?null:{mode:`enter`,dirty:e.key}:e.shiftKey?null:e.key===`F2`?{mode:`edit`}:e.key===`Backspace`?{mode:`enter`,dirty:``}:null,Ur=(e,t)=>{let n=(0,s.useRef)(null);return(0,s.useLayoutEffect)(()=>{let t=n.current;t!==null&&(n.current=null,e.current?.setSelectionRange(t,t))},[t]),(0,l.useCallbackRef)(e=>{n.current=e},[])},Wr=e=>{let{mode:t,value:n,onDirtyChange:r,onModeChange:i,onCommit:a,onCancel:o,onNavigate:s,onTraverse:c,setCaret:d}=e;return(0,l.useCallbackRef)(e=>{let f=e.nativeEvent;if(f.isComposing)return void e.stopPropagation();if(e.which===l.KeyCodes.Escape)return e.preventDefault(),e.stopPropagation(),void o();if(!(e.which!==l.KeyCodes.F2||f.altKey||f.metaKey||f.ctrlKey||f.shiftKey))return e.preventDefault(),e.stopPropagation(),void i(t===`edit`?`enter`:`edit`);if(e.which===l.KeyCodes.Enter&&(f.altKey||f.metaKey)){e.preventDefault(),e.stopPropagation();let t=e.currentTarget,i=t.selectionStart+1;d&&d(i),r(n.substring(0,t.selectionStart)+`
3
+ `+n.substring(t.selectionEnd)),d||requestAnimationFrame(()=>t.setSelectionRange(i,i));return}let p=e.which===l.KeyCodes.Left||e.which===l.KeyCodes.Right||e.which===l.KeyCodes.Up||e.which===l.KeyCodes.Down;if(p&&t===`edit`)return void e.stopPropagation();if(e.which===l.KeyCodes.Enter||e.which===l.KeyCodes.Tab||p&&t===`enter`){e.preventDefault();let t=e.which===l.KeyCodes.Enter&&f.ctrlKey;if(!a(t?{broadcast:!0}:void 0)||t)return void e.stopPropagation();let n=e.which===l.KeyCodes.Enter||e.which===l.KeyCodes.Tab;n&&c?(e.stopPropagation(),c(e.which===l.KeyCodes.Tab?u.RangeAxis.Row:u.RangeAxis.Column,e.shiftKey)):!n&&s&&(e.stopPropagation(),s((e=>{switch(e.which){case l.KeyCodes.Enter:return e.shiftKey?u.Direction.Up:u.Direction.Down;case l.KeyCodes.Tab:return e.shiftKey?u.Direction.Left:u.Direction.Right;case l.KeyCodes.Up:return u.Direction.Up;case l.KeyCodes.Left:return u.Direction.Left;case l.KeyCodes.Right:return u.Direction.Right;default:return u.Direction.Down}})(e)));return}let m=f.ctrlKey||f.metaKey,h=e.key.length===1?e.key.toLowerCase():``;(!m||h!==`c`&&h!==`x`&&h!==`v`&&h!==`a`&&h!==`z`&&h!==`y`)&&(e.which!==l.KeyCodes.Insert||!m&&!f.shiftKey)&&e.which!==l.KeyCodes.Delete&&e.which!==l.KeyCodes.BackSpace&&(t!==`edit`||e.which!==l.KeyCodes.Home&&e.which!==l.KeyCodes.End&&e.which!==l.KeyCodes.PageUp&&e.which!==l.KeyCodes.PageDown)||e.stopPropagation()},[t,n,a,o,i,r,s,c,d])},Gr=(e,t,n,r=`left`,i=0)=>{if(!t)return null;let a=e.getRangeFromCell(t),o=e.getBoundsFromRange(a);if(!o)return null;let s=e.toClipBounds(e.getBoundsFromRange(a))!==null,c=e.getZoom(),l=n?.width?n.width*c:void 0,u=n?.height?n.height*c:void 0,d={...o};if(l!==void 0){let t=e.getPaneRange(),n=e.getMetrics(),i={...a},o=!1,s=0;for(;!o&&d.width<=l&&s<20;)s++,r===`left`?i.colEnd+1<t.colEnd?i.colEnd=n.getColIndex(d.x+l):o=!0:r===`right`?i.colStart-1>=0?i.colStart=n.getColIndex(d.x-(l-d.width)):o=!0:i.colEnd+1<t.colEnd&&i.colStart-1>=0?(i.colStart=n.getColIndex(d.x-(l-d.width)/2),i.colEnd=n.getColIndex(d.x+d.width+(l-d.width)/2)):o=!0,o||(d=e.getBoundsFromRange(i))}d.height=o.height,u!==void 0&&(d.height=Math.max(u+1,o.height));let f=e.getSurfaceSize(),p=Math.max(o.width,f.width-d.x-i);return{bounds:{x:d.x??0,y:d.y??0,width:Math.min(p,d.width),height:Math.min(f.height-d.y,d.height)},inView:s}},Kr=96/72*11,qr=`Calibri, sans-serif`,Jr=e=>{let{open:t,mode:n,clean:r,dirty:i,token:a,autoFocus:o,initialSelection:l,zoom:u,readOnly:d,onDirtyChange:f,onModeChange:p,onCommit:m,onCancel:h,onNaturalSize:g}=e,_=i??r??``,v=(0,s.useRef)(null),y=(0,s.useRef)(null),b=(0,s.useRef)(0);(0,s.useLayoutEffect)(()=>{if(!t||!o)return;let e=v.current;if(!e||(e.focus(),b.current===a))return;b.current=a;let n=e.value.length,r=l??{start:n,end:n,direction:`forward`};e.setSelectionRange(r.start,r.end,r.direction)},[a,t,o]),(0,s.useLayoutEffect)(()=>{let e=y.current;e&&g&&g({width:e.offsetWidth+4,height:e.offsetHeight})},[_,g]);let x=Wr({mode:n,value:_,onDirtyChange:f,onModeChange:p,onCommit:m,onCancel:h,setCaret:Ur(v,_)});return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(`textarea`,{ref:v,value:_,spellCheck:!1,autoComplete:`off`,autoCapitalize:`off`,name:`cell-editor`,readOnly:d,style:{flex:`1 1 100%`,boxSizing:`border-box`,padding:`0px 2px`,margin:0,border:`none`,outline:`none`,resize:`none`,overflow:`hidden`,background:`transparent`,fontFamily:qr,fontSize:Kr*u+`px`,lineHeight:1.2,whiteSpace:`pre`,userSelect:`text`},onChange:e=>f(e.target.value),onPointerDown:e=>{e.stopPropagation(),n!==`edit`&&p(`edit`)},onKeyDown:x}),(0,c.jsx)(`div`,{ref:y,"aria-hidden":!0,style:{position:`absolute`,top:0,left:0,visibility:`hidden`,pointerEvents:`none`,whiteSpace:`pre`,fontFamily:qr,fontSize:`${Kr}px`,lineHeight:1.2},children:_.length===0?` `:_})]})};function Yr(e){let{editable:t,renderEditor:n,idleClean:r=null,mapClean:i,editorId:a,readOnly:o,className:s,style:u}=e,d=(0,l.useBoundSyncExternalStore)(t,e=>e.getSession()),f=(0,l.useOptionalBoundSyncExternalStore)(d,e=>e.getState()),p=f?.clean??r,m=i?i(p):p,h=(0,l.useCallbackRef)(e=>t.commit(e),[t]),g=(0,l.useCallbackRef)(()=>t.cancel(),[t]),_=(0,l.useCallbackRef)(()=>{o||(t.getSession()||t.startEdit(t.getAnchor().getCoords(),{mode:`edit`,autoFocus:!1}),t.getSession()?.setActiveEditorId(a??null))},[t,a,o]),v={open:!!f,mode:f?.mode??`enter`,coords:f?.coords??t.getAnchor().getCoords(),clean:m,dirty:f?.dirty,token:f?.token??0,autoFocus:!1,readOnly:o,initialSelection:f?.initialSelection,zoom:1,onDirtyChange:e=>d?.setDirty(e),onModeChange:e=>d?.setMode(e),onCommit:h,onCancel:g};return(0,c.jsx)(`div`,{className:s,style:u,onFocus:_,children:n?n(v):(0,c.jsx)(Jr,{...v})})}Jr.displayName=`DefaultEditorInput`,Yr.displayName=`EditorDiv`;var Xr=`ew-resize`,Zr=`ns-resize`,Qr=(0,s.memo)((0,s.forwardRef)((e,t)=>{let{axis:n,index:r,className:i,style:a,disabled:o=!1,disabledResize:s=!1,isNextHidden:d,isHidden:f,isSelected:p,isSelectedAll:m,showTouchDivider:h,bounds:g,onPointerDown:_,onAutoFit:v,...y}=e,b=W(),x=n===u.RangeAxis.Column,S=1/l.ReactUtils.getDevicePixelRatio(),w=p||m,T=w?`color-mix(in srgb, var(--sxl-color-primary, rgb(33, 115, 70)) 35%, var(--sxl-color-base-300, rgb(171, 171, 171)))`:`var(--sxl-color-base-300, rgb(171, 171, 171))`,E=`var(--sxl-color-base-100, #f5f5f5)`,D=l.ReactUtils.detectIt().primaryInput===`touch`,O=x?14:8,k=b.getZoom();k<1&&(O=Math.max(2,O*k*.8));let A=O/2,j=0;d&&(j=-2),f&&(j=2),f&&(O=O/2+j,A=2*j);let M=T;return w||j!==0||(M=`linear-gradient(${x?180:90}deg, ${E}, ${T} 55%, ${T} 100%)`),(0,c.jsxs)(`div`,{className:C(`header-divider`,{disabled:o},i,`index-${r}`),ref:t,onPointerDown:D?void 0:_,onDoubleClick:D?void 0:()=>v?.(),style:{top:`${x?0:-O/2+j}px`,left:`${x?-O/2+j:0}px`,width:x?O:`calc(100%)`,height:x?`calc(100%)`:O,position:`absolute`,overflow:`visible`,pointerEvents:`auto`,cursor:o||s||D?void 0:x?Xr:Zr,...a},...y,children:[(0,c.jsx)(`div`,{style:{position:`relative`,top:`${x?0:A}px`,left:`${x?A:0}px`,width:x?S:`100%`,height:x?`100%`:S,background:M},onDoubleClick:()=>v?.()}),h&&D?(0,c.jsx)(`div`,{style:{position:`absolute`,cursor:`grab`,zIndex:1,borderRadius:`4px`,right:x?`-6px`:`2px`,bottom:x?`2px`:`-9px`,height:`24px`,width:x?`24px`:`18px`,maxHeight:x?`calc(100% - 4px)`:void 0,maxWidth:x?void 0:`calc(100% - 4px)`,background:E,border:`1px solid var(--sxl-color-base-300, rgb(171, 171, 171))`,boxShadow:`0.5px 0.5px 0px 0px var(--sxl-color-base-content, rgba(0,0,0,0.87))`,display:`flex`,alignItems:`center`,justifyContent:`center`},onPointerDown:_,children:(0,c.jsx)(`div`,{style:{width:`6.4px`,height:`12px`,backgroundImage:`url("data:image/svg+xml,%3Csvg width='6.4' height='12' viewBox='0 0 9.6 16' version='1.1' fill='rgb(128%2C128%2C128)' xmlns='http://www.w3.org/2000/svg' xmlns:svg='http://www.w3.org/2000/svg'%3E%3Cpath d='M 9.60008,14.40009 C 9.60008,15.28374 8.88368,16 8.00003,16 7.11639,16 6.40012,15.28374 6.40012,14.40009 c 0,-0.88365 0.71627,-1.60005 1.59991,-1.60005 0.88365,0 1.60005,0.7164 1.60005,1.60005 m 0,-6.40012 c 0,0.88364 -0.7164,1.60004 -1.60005,1.60004 -0.88364,0 -1.59991,-0.7164 -1.59991,-1.60004 0,-0.88365 0.71627,-1.60005 1.59991,-1.60005 0.88365,0 1.60005,0.7164 1.60005,1.60005 m 0,-6.40006 c 0,0.88365 -0.7164,1.60005 -1.60005,1.60005 -0.88364,0 -1.59991,-0.7164 -1.59991,-1.60005 C 6.40012,0.71626 7.11639,0 8.00003,0 8.88368,0 9.60008,0.71626 9.60008,1.59991 M 3.19996,14.40009 C 3.19996,15.28374 2.48369,16 1.60005,16 0.7164,16 0,15.28374 0,14.40009 c 0,-0.88365 0.7164,-1.60005 1.60005,-1.60005 0.88364,0 1.59991,0.7164 1.59991,1.60005 m 0,-6.40012 c 0,0.88364 -0.71627,1.60004 -1.59991,1.60004 C 0.7164,9.60001 0,8.88361 0,7.99997 0,7.11632 0.7164,6.39992 1.60005,6.39992 c 0.88364,0 1.59991,0.7164 1.59991,1.60005 m 0,-6.40006 c 0,0.88365 -0.71627,1.60005 -1.59991,1.60005 C 0.7164,3.19996 0,2.48356 0,1.59991 0,0.71626 0.7164,0 1.60005,0 2.48369,0 3.19996,0.71626 3.19996,1.59991' /%3E%3C/svg%3E%0A")`,backgroundRepeat:`no-repeat`,backgroundPosition:`center`,transform:x?void 0:`rotate(90deg)`}})}):null]})})),$r=e=>(0,c.jsx)(Qr,{...e}),ei=(0,s.memo)((0,s.forwardRef)((e,t)=>{let{axis:n,index:r,disabled:i=!1,disabledResize:a=!1,resizeThreshold:o=1,renderDivider:f=$r,onDividerMouseDown:p,onDividerResizeStart:m,onDividerResize:h,onDividerResizeEnd:g,onDividerMouseUp:_,onDividerAutoFit:v,onPointerDown:y,...b}=e,x=W(),S=(0,l.useCallbackRef)(y,[y]),w=(0,l.useCallbackRef)(v,[v]),T=n===u.RangeAxis.Column,E=T?x.getVisibleColumns():x.getVisibleRows(),D=null;E.length>0&&(D=T?x.getBoundsFromRange({rowStart:0,rowEnd:0,colStart:E[0].index,colEnd:E[E.length-1].index}):x.getBoundsFromRange({rowStart:E[0].index,rowEnd:E[E.length-1].index,colStart:0,colEnd:0}),D=x.toClipBounds(D,-10));let O=(0,s.useRef)(null),[k,A]=(0,s.useState)(null),j=(e,t)=>T?e.clientX-t.clientX:e.clientY-t.clientY,M=x.getMetrics(),N=T?M.getColOffset(r+1):M.getRowOffset(r+1),P=l.ReactUtils.getDevicePixelRatio(),F=1/P,I=l.ReactUtils.snapLineCenter(N,F,P)-F/2,L=(0,l.useSynchronizedPointerHandler)({processTouch:!0,onPointerDown:e=>{if(S?.(e),!i&&!a){let e=T?M.getColOffset(r):M.getRowOffset(r),t=N-e;O.current={isResizing:!1,startSize:t,index:r,pane:x,axis:n,onDividerMouseDown:p,onDividerResizeStart:m,onDividerResize:h,onDividerResizeEnd:g,onDividerMouseUp:_},A(O.current),p?.(r,t)}e.stopPropagation(),e.preventDefault()},onPointerUp:(e,t,n)=>{if(!O.current)return;O.current.isResizing&&O.current.onDividerResizeEnd?.(O.current.index,Math.max(0,O.current.startSize+j(e,n)),O.current.startSize);let r=O.current;O.current=null,A(O.current),r.onDividerMouseUp?.(r.index)},onPointerMoveOrWait:(e,t,n)=>{if(!O.current)return;let r=j(e,n);O.current.isResizing?O.current.onDividerResize?.(O.current.index,Math.max(0,O.current.startSize+r),O.current.startSize):Math.abs(r)>=Math.max(0,o)&&(O.current={...O.current,isResizing:!0},A(O.current),O.current.onDividerResizeStart?.(O.current.index,Math.max(0,O.current.startSize+r))),e.stopPropagation(),e.preventDefault()}}),R=(0,l.useCallbackRef)(()=>{w?.(r)},[r]),{getPortalContainer:ee}=(0,l.useFullscreenPortal)();if(!D)return;let te=f({bounds:D,axis:n,index:r,disabled:i,disabledResize:a,onAutoFit:R,onPointerDown:L,ref:t,...b},x);if(!te)return;let ne=null;return k&&k.isResizing&&k.index===r&&(ne=(0,d.createPortal)((0,c.jsx)(`div`,{style:{position:`absolute`,cursor:T?Xr:Zr,left:0,top:0,width:`100%`,height:`100%`}}),ee(),`divider:`+r)),(0,c.jsxs)(c.Fragment,{children:[ne,(0,c.jsx)(`div`,{className:C(`header-divider-anchor`),style:{position:`absolute`,pointerEvents:`auto`,top:`${T?D.y:I}px`,left:`${T?I:D.x}px`,width:(T?0:D.width-1)+`px`,height:(T?D.height-1:0)+`px`,display:`flex`},tabIndex:-1,children:te})]})}));ei.displayName=`HeaderDividerAnchor`;var ti=(e,t,n)=>t===u.RangeAxis.Column?{rowIndex:n.rowStart,colIndex:e.colIndex}:{rowIndex:e.rowIndex,colIndex:n.colStart},ni=(e,t,n,r)=>n===u.RangeAxis.Column?{rowStart:r.rowStart,rowEnd:r.rowEnd,colStart:Math.min(e.colIndex,t.colIndex),colEnd:Math.max(e.colIndex,t.colIndex)}:{colStart:r.colStart,colEnd:r.colEnd,rowStart:Math.min(e.rowIndex,t.rowIndex),rowEnd:Math.max(e.rowIndex,t.rowIndex)},ri=(e,t,n)=>{let r=null,i=null,a=0,o=()=>t.getAllPanes()[u.AnchorLocation.Center]??t,s=(t,n,r)=>{if(!e)return;let i=e.getSelection(),a=!!i.ranges&&i.ranges.length>0;if(r===`clear`)return void e.setSelection({cell:n,ranges:[t],rangeIndex:0});if(r===`append`){let r=a?[...i.ranges]:[u.CoordUtils.cellToRange(i.cell)];r.push(t),e.setSelection({cell:n,ranges:r,rangeIndex:r.length-1});return}let o=i.rangeIndex??-1,s=a?o>=0?o:i.ranges.length-1:0,c=a?i.ranges.map((e,n)=>n===s?t:e):[t];e.setSelection({cell:n,ranges:c,rangeIndex:a?s:0})},c=(t,n,r)=>{if(!e)return;let i=e.getSelection(),a=i.ranges&&i.ranges.length>0?i.ranges:[],o=t<a.length?a.map((e,r)=>r===t?n:e):[...a,n];e.setSelection({cell:r,ranges:o,rangeIndex:t})},l=e=>{let{scrollIntoView:t}=n();t?t(e):o().scrollCellCoordsIntoView(e)},d=e=>{let{axis:t,entireRange:r}=n(),i=o().getElement()?.getBoundingClientRect();if(!i)return!1;let a=o().getVisibleRange(),s=null;return t===u.RangeAxis.Column?e.x>=i.right-24&&a.colEnd<r.colEnd?s={colIndex:a.colEnd+1}:e.x<=i.left+24&&a.colStart>r.colStart&&(s={colIndex:a.colStart-1}):e.y>=i.bottom-24&&a.rowEnd<r.rowEnd?s={rowIndex:a.rowEnd+1}:e.y<=i.top+24&&a.rowStart>r.rowStart&&(s={rowIndex:a.rowStart-1}),!!s&&(l(s),!0)},f=e=>{let{axis:t,entireRange:l,replaceActive:u=!1}=n(),d=ni(r??e,e,t,l),f=i??ti(e,t,o().getVisibleRange());u?c(a,d,f):s(d,f,`replace`)};return En(t,(t,p)=>{if(!e)return null;let m=p.button===0,h=p.button===2;if(!m&&!h)return null;let{axis:g,entireRange:_,allowMulti:v=!0,replaceActive:y=!1,preserveFocus:b=!1,onPointerDownInterceptor:x,onDragStart:S,onDragEnd:C,onPointerUp:w}=n();if(!1===x?.(p,t))return null;y&&p.stopPropagation(),b&&m&&p.preventDefault(),S?.();let T=ti(t,g,o().getVisibleRange()),E=p.shiftKey,D=(p.ctrlKey||p.metaKey)&&v;if(y){let n=e.getSelection(),o=n.ranges??[],s=n.rangeIndex??-1;E&&r?(a=s>=0?s:Math.max(0,o.length-1),c(a,ni(r,t,g,_),i??T)):(r=t,i=T,a=D||s<0?o.length:s,c(a,ni(t,t,g,_),T))}else E&&r?s(ni(r,t,g,_),i??T,`replace`):D?(r=t,i=T,s(ni(t,t,g,_),T,`append`)):(r=t,i=T,s(ni(t,t,g,_),T,`clear`));return(e=>{l(n().axis===u.RangeAxis.Column?{colIndex:e.colIndex}:{rowIndex:e.rowIndex})})(t),{drag:f,edgeScroll:d,end:e=>{C?.(e),w?.(e)},capture:m,captureEvents:y}})},ii=e=>e==null?[]:Array.isArray(e)?e:[e],ai=(0,s.memo)((0,s.forwardRef)((e,t)=>{let{rowCount:n=1,columnCount:r=1,getRowHeight:i,getColumnWidth:a,metrics:o,renderCells:u,renderBorders:d,showGridLines:f=!0,gridLineColor:m,propsGridLineRows:h,propsGridLineColumns:g,getVisibleCells:_,hiddenCellAt:v,renderBelow:y,children:b,...x}=e,S=p({rowCount:n,columnCount:r,getRowHeight:i,getColumnWidth:a}),C=o??S,[w,T]=(0,s.useReducer)(e=>e+1,0),E=(0,s.useMemo)(()=>({}),[w]),D=(0,s.useCallback)(e=>{T()},[]),O=(0,l.useImperativeElement)(t,()=>({invalidate:D}),[D]),k=(0,s.useMemo)(()=>{let e=[];return!1!==f&&e.push((0,c.jsx)(sr,{showGridLines:f,gridLineColor:m,propsRows:h,propsColumns:g,getVisibleCells:_,hiddenCellAt:v},`__gridlines`)),e.push(...ii(y)),e.push(...ii(d)),u&&e.push((0,c.jsx)($n,{renderCell:u,getVisibleCells:_,hiddenCellAt:v,cacheToken:E},`__cells`)),e.push(...ii(b)),e},[f,m,h,g,_,v,y,d,u,E,b]);return(0,c.jsx)(U,{ref:O,...x,rowCount:n,columnCount:r,metrics:C,children:k})}));ai.displayName=`Grid`;var oi=function(){},si=typeof window<`u`,ci=si?s.useLayoutEffect:s.useEffect,li={x:0,y:0,width:0,height:0,top:0,left:0,bottom:0,right:0},ui=si&&window.ResizeObserver!==void 0?function(){var e=(0,s.useState)(null),t=e[0],n=e[1],r=(0,s.useState)(li),i=r[0],a=r[1],o=(0,s.useMemo)(function(){return new window.ResizeObserver(function(e){if(e[0]){var t=e[0].contentRect,n=t.x,r=t.y,i=t.width,o=t.height,s=t.top,c=t.left,l=t.bottom,u=t.right;a({x:n,y:r,width:i,height:o,top:s,left:c,bottom:l,right:u})}})},[]);return ci(function(){if(t)return o.observe(t),function(){o.disconnect()}},[t]),[n,i]}:function(){return[oi,li]},di={fill:{fill:`color-mix(in srgb, var(--sxl-color-primary, rgb(0, 120, 215)) 14%, transparent)`},border:null,inner:null},fi={stroke:`var(--sxl-color-primary, rgb(0, 120, 215))`,alignWidth:1,inset:1},pi=(0,s.forwardRef)(function(e,t){let{itemCount:n,renderItem:r,itemHeight:i=24,selection:a,onKeyDown:o,cacheToken:u,className:d,style:f,children:m,...h}=e,g=(0,l.useImperativeElement)(t,()=>({isList:()=>!0}),[]),_=(0,s.useMemo)(()=>new l.Viewport,[]),v=(0,s.useMemo)(()=>new lr({getBounds:()=>({rowStart:0,colStart:0,rowEnd:Math.max(0,n-1),colEnd:0})}),[n]),y=a??v,[b,{width:x}]=ui(),S=p({rowCount:n,columnCount:1,getRowHeight:i,getColumnWidth:x}),w=(0,s.useCallback)(e=>{let{key:t,style:n,range:i,cell:a}=e,o=i?.rowStart??a.rowIndex;return(0,c.jsx)(`div`,{style:{...n,position:`absolute`,display:`flex`,alignItems:`center`,boxSizing:`border-box`,padding:`0 8px`,overflow:`hidden`,whiteSpace:`nowrap`,userSelect:`none`,pointerEvents:`none`,background:`transparent`},children:r(o)},t)},[r]);return(0,c.jsx)(`div`,{ref:g,className:C(`list`,d),style:{position:`relative`,overflow:`hidden`,...f},...h,children:(0,c.jsx)(l.ScrollPane,{viewport:_,showVerticalScrollbar:!0,showHorizontalScrollbar:!1,style:{width:`100%`,height:`100%`},children:(0,c.jsx)(`div`,{ref:b,style:{width:`100%`,height:`100%`},children:(0,c.jsxs)(U,{viewport:_,style:{width:`100%`,height:`100%`},rowCount:n,columnCount:1,metrics:S,children:[(0,c.jsx)(Mr,{selection:y,anchorHole:!1,singleStyle:di,singleAnchorStyle:fi,multiAnchorStyle:fi},`__selection`),(0,c.jsx)($n,{renderCell:w,cacheToken:u},`__cells`),o?(0,c.jsx)(K,{onKeyDown:o},`__keys`):null]})})})})}),mi=(e,t)=>(0,c.jsx)(`input`,{type:`checkbox`,checked:e,ref:e=>{e&&(e.indeterminate=!!t)},readOnly:!0,tabIndex:-1,style:{margin:0}}),hi=(0,s.forwardRef)(function(e,t){let{itemCount:n,isChecked:r,onCheckedChange:i,renderValue:a,renderCheckbox:o=mi,renderDivider:u,selectAllLabel:d,itemHeight:f,selection:p,cacheToken:m,className:h,style:g,children:_,...v}=e,y=(0,l.useImperativeElement)(t,()=>({isCheckboxList:()=>!0}),[]),b=(0,s.useMemo)(()=>new lr({getBounds:()=>({rowStart:0,colStart:0,rowEnd:Math.max(0,n-1),colEnd:0})}),[n]),x=p??b,S=(0,s.useCallback)(e=>(0,c.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:8,flex:1,minWidth:0,pointerEvents:`auto`,cursor:`pointer`},onMouseDown:t=>{t.preventDefault(),i([e],!r(e))},children:[(0,c.jsx)(`div`,{style:{display:`inline-flex`,pointerEvents:`none`},children:o(r(e))}),(0,c.jsx)(`div`,{style:{overflow:`hidden`,textOverflow:`ellipsis`},children:a(e)})]}),[r,i,a,o]),w=(0,s.useCallback)(e=>{if(e.key!==` `&&e.key!==`Enter`)return;e.preventDefault(),e.stopPropagation();let t=!r(x.getSelection().cell.rowIndex);i((e=>{let t=e.getSelection();return t.ranges&&t.ranges.length?t.ranges.flatMap(e=>Array.from({length:e.rowEnd-e.rowStart+1},(t,n)=>e.rowStart+n)):[t.cell.rowIndex]})(x),t)},[x,r,i]),{allChecked:T,someChecked:E}=(0,s.useMemo)(()=>{if(d==null||n===0)return{allChecked:!1,someChecked:!1};let e=!0,t=!1;for(let i=0;i<n;i++)r(i)?t=!0:e=!1;return{allChecked:e,someChecked:t&&!e}},[d,n,r,m]);return(0,c.jsxs)(`div`,{ref:y,className:C(`checkbox-list`,h),style:{display:`flex`,flexDirection:`column`,minHeight:0,...g},...v,children:[d!=null&&(0,c.jsxs)(c.Fragment,{children:[(0,c.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:8,padding:`6px 8px`,userSelect:`none`,cursor:`pointer`},onMouseDown:e=>{e.preventDefault(),i(Array.from({length:n},(e,t)=>t),!T)},children:[(0,c.jsx)(`div`,{style:{display:`inline-flex`,pointerEvents:`none`},children:o(T,E)}),d]}),u?.()]}),(0,c.jsx)(pi,{itemCount:n,itemHeight:f,selection:x,renderItem:S,onKeyDown:w,cacheToken:m,style:{flex:`1 1 100%`,minHeight:0}})]})}),gi={light:{},dark:{"color-base-100":`#1e1e1e`,"color-base-300":`#3a3a3a`}},_i={light:{"color-base-100":`#f2f2f2`,"color-base-hover":`#ececec`,"color-base-300":`rgb(171, 171, 171)`},dark:{"color-base-100":`#262626`,"color-base-hover":`#2e2e2e`,"color-base-300":`#4a4a4a`}};exports.AUTO_SCROLL_INTERVAL_MS=60,exports.CellLayer=$n,exports.CellTileDiv=Qn,exports.CheckboxList=hi,exports.DEFAULT_ANCHOR_STYLE=yr,exports.DEFAULT_HANDLE_STYLE=xn,exports.DEFAULT_MULTI_STYLE=vr,exports.DEFAULT_REMOVE_PREVIEW_STYLE=br,exports.DEFAULT_SINGLE_STYLE=_r,exports.DefaultCellRenderer=Hn,exports.DefaultEditable=class{constructor(e,t,n){this.current=null,this.listeners=new Set,this.anchor=e,this.createEdit=t,this.revertAnchor=n?.revertAnchor,this.unsubscribeAnchor=e.subscribe(()=>this.onAnchorChange())}onAnchorChange(){if(!this.current)return;let e=this.current.getState().coords;u.CoordUtils.isEqualCells(this.anchor.getCoords(),e)||this.commit()||(this.revertAnchor?.(e),u.CoordUtils.isEqualCells(this.anchor.getCoords(),e)||this.cancel())}getAnchor(){return this.anchor}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}getSession(){return this.current}startEdit(e,t={}){let n=this.createEdit(e);return!!n&&(this.current=new Vr({coords:e,...n},t),this.notify(),!0)}commit(e){if(!this.current)return!1;let t=this.current.commit(e);return t&&(this.current=null,this.notify()),t}cancel(){this.current&&(this.current.cancel(),this.current=null,this.notify())}dispose(){this.unsubscribeAnchor(),this.cancel(),this.listeners.clear()}notify(){this.listeners.forEach(e=>e())}},exports.DefaultEditorInput=Jr,exports.DefaultHeaderDivider=Qr,exports.DefaultSelection=lr,exports.DragHandle=An,exports.Draggable=Fn,exports.EDGE_AUTO_SCROLL_MARGIN_PX=24,exports.EditSession=Vr,exports.EditorDiv=Yr,exports.EditorLayer=function(e){let{editable:t,renderEditor:n,alignment:r=`left`,background:i=`var(--sxl-color-base-100, rgb(255, 255, 255))`,borderColor:a=`var(--sxl-color-primary, rgb(33, 115, 70))`,borderWidth:o=2,zIndex:u,className:d,style:f,...p}=e,m=G(),h=(0,l.useBoundSyncExternalStore)(t,e=>e.getSession()),g=(0,l.useOptionalBoundSyncExternalStore)(h,e=>e.getState()),[_,v]=(0,s.useState)(null),y=(0,l.useCallbackRef)(e=>{v(t=>t&&t.width===e.width&&t.height===e.height?t:e)},[]),b=(0,l.useCallbackRef)(e=>{if(t.getSession())return;let n=t.getAnchor().getCoords();if(!n)return;let r=Hr(e.nativeEvent);r&&(e.nativeEvent.key!==`Process`&&e.nativeEvent.keyCode!==229&&e.preventDefault(),e.stopPropagation(),t.startEdit(n,r))},[t]),x=(0,l.useCallbackRef)(e=>{if(t.getSession())return;let n=m?.getCellFromPointer(e.clientX,e.clientY)??t.getAnchor().getCoords();n&&t.startEdit(n,{mode:`edit`})},[m,t]),S=(0,l.useCallbackRef)(e=>{let n=t.commit(e);return n&&m?.focus(),n},[t,m]),w=(0,l.useCallbackRef)(()=>{t.cancel(),m?.focus()},[t,m]);(0,s.useEffect)(()=>{g&&m&&m.scrollCellCoordsIntoView(g.coords)},[g?.token]);let T=g?g.coords:t.getAnchor().getCoords(),E=null,D=!1,O=!1;if(m&&T){let e=m.getRangeFromCell(T);if(O=m.toClipBounds(m.getBoundsFromRange({rowStart:e.rowStart,colStart:e.colStart,rowEnd:e.rowStart,colEnd:e.colStart}))!==null,g){let e=Gr(m,T,_,r,o);E=e?.bounds??null,D=e?.inView??!1}else E=m.getBoundsFromRange(e)}let k=null;if(m&&T){let e=m.getBoundsFromRange(m.getRangeFromCell(T)),t=m.getZoom()||1;e&&(k={width:e.width/t,height:e.height/t})}let A=!!g&&!!E&&D,j={open:!!g,mode:g?.mode??`enter`,coords:g?.coords??null,clean:g?.clean??null,dirty:g?.dirty,token:g?.token??0,autoFocus:(g?.autoFocus??!0)&&A&&O,initialSelection:g?.initialSelection,zoom:m?.getZoom()??1,cellSize:k,onDirtyChange:e=>h?.setDirty(e),onModeChange:e=>h?.setMode(e),onCommit:S,onCancel:w,onNaturalSize:y},M=typeof i==`function`?(T?i(T):void 0)??`transparent`:i;return(0,c.jsx)(K,{onKeyDown:b,onDoubleClick:x,children:E?(0,c.jsx)(J,{...p,className:C(d,`editor`),bounds:E,alignWidth:o,keepMounted:!0,style:{...f,display:`flex`,overflow:`hidden`,background:M,borderColor:a,boxShadow:A?`rgba(60,64,67,.35) 2px 2px 6px 3px`:`none`,opacity:+!!A,pointerEvents:A?`auto`:`none`},children:n?n(j):(0,c.jsx)(Jr,{...j})}):null})},exports.FillHandle=Vn,exports.GRID_SURFACE=gi,exports.Grid=ai,exports.GridSurface=U,exports.GridlineLayer=sr,exports.HEADER_SURFACE=_i,exports.HeaderDividerAnchor=ei,exports.HoverTipLayer=fn,exports.Layer=K,exports.LineSVG=g,exports.List=pi,exports.PICKER_COLORS=Fr,exports.RESIZE_ANCHORS_4=Ln,exports.RESIZE_ANCHORS_8=Rn,exports.RangePrompt=bn,exports.RangeRect=Sn,exports.RangeResizer=zn,exports.RangesPickerLayer=zr,exports.RectangleSVG=_,exports.SELECTION_CLIP_INSETS=-10,exports.SelectionLayer=Mr,exports.SelectionTouchGrips=Sr,exports.ShapeBoundsContext=m,exports.StickyAnchor=Pe,exports.StickyFloat=ln,exports.SurfaceStateContext=V,exports.SurfaceStateProvider=se,exports.VirtualDiv=J,exports.buildGridThemeCSS=({app:e,grid:t=gi,header:n=_i,layer:r=`sxl-defaults`,scope:i}={})=>{let a=e??l.defaultTheme,o=Object.fromEntries(Object.keys(n).map(e=>[e,{"color-base-100":a[e]?.[`color-base-200`],...n[e]}]));return(0,l.buildThemeCSS)({...e?{app:e}:{},surfaces:{grid:t,header:o},layer:r,scope:i})},exports.createAxis=f,exports.createDragCells=En,exports.createHeaderSelectionPointer=ri,exports.createSurfaceStateStore=oe,exports.createWindowDragCells=Dn,exports.defaultRangeStyle=Rr,exports.edgeScrollPane=wn,exports.expandEditorBounds=Gr,exports.gridThemeVars=(e,...t)=>(0,l.themeVars)(e,gi[e],...t),exports.headerAnchorCell=ti,exports.headerEntireEnd=(e,t,n)=>t===u.RangeAxis.Column?{rowIndex:n.rowEnd,colIndex:e.colIndex}:{rowIndex:e.rowIndex,colIndex:n.colEnd},exports.headerEntireStart=(e,t,n)=>t===u.RangeAxis.Column?{rowIndex:n.rowStart,colIndex:e.colIndex}:{rowIndex:e.rowIndex,colIndex:n.colStart},exports.headerRange=ni,exports.headerThemeVars=(e,...t)=>(0,l.themeVars)(e,_i[e],...t),exports.startEventFromKey=Hr,exports.useDragCells=On,exports.useEditorKeymap=Wr,exports.useGridFloatTheme=on,exports.useGridMetrics=p,exports.useGridPane=W,exports.useGridPaneOptional=G,exports.useHeaderSelectionPointer=(e,t)=>{let n=W(),r=(0,s.useRef)(t);r.current=t;let i=(0,s.useMemo)(()=>ri(e,n,()=>r.current),[e,n]);return(0,s.useEffect)(()=>()=>i.dispose(),[i]),{onPointerDown:i.onPointerDown,onPointerMove:i.onPointerMove,onPointerUp:i.onPointerUp}},exports.useHoverIntent=dn,exports.useLayer=()=>({zIndex:(0,s.useContext)(ee),pane:G()}),exports.usePendingCaret=Ur,exports.useRangeHover=(e,t={})=>{let{open:n,setTarget:r,tipProps:i}=dn(t),a=G(),o=P(a),c=(0,s.useContext)(ee),l=(0,s.useRef)({}),d=R(e);return l.current={pointermove:(t,n)=>{let i=t,o=(n??a)?.getCellFromPointer(i.clientX,i.clientY);r(o&&u.CoordUtils.isCellWithinRange(o,e)?d:null)},pointerleave:()=>r(null)},(0,s.useEffect)(()=>{if(o)return o.registerResponder({zIndex:c,getHandler:e=>l.current[e]})},[o,c]),{open:n,tipProps:i}},exports.useSelectionPointer=xr,exports.useShapeBounds=h,exports.useSticky=()=>{let e=(0,s.useContext)(Ne);if(!e)throw Error(`useSticky must be used within a <StickyAnchor>`);return e},exports.useStickyOptional=()=>(0,s.useContext)(Ne),exports.useSurfaceState=ve,exports.useWindowDragCells=kn;