@dxos/plugin-sheet 0.7.4 → 0.7.5-labs.5f04cf6

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 (320) hide show
  1. package/dist/lib/browser/SheetContainer-CM4CO3DC.mjs +370 -0
  2. package/dist/lib/browser/SheetContainer-CM4CO3DC.mjs.map +7 -0
  3. package/dist/lib/browser/chunk-FOO6NGBM.mjs +229 -0
  4. package/dist/lib/browser/chunk-FOO6NGBM.mjs.map +7 -0
  5. package/dist/lib/browser/chunk-H23JW3DX.mjs +800 -0
  6. package/dist/lib/browser/chunk-H23JW3DX.mjs.map +7 -0
  7. package/dist/lib/browser/{chunk-RABELMEQ.mjs → chunk-K6EUYKWT.mjs} +3 -3
  8. package/dist/lib/browser/chunk-K6EUYKWT.mjs.map +7 -0
  9. package/dist/lib/browser/chunk-PW25VUP6.mjs +15 -0
  10. package/dist/lib/browser/chunk-PW25VUP6.mjs.map +7 -0
  11. package/dist/lib/browser/chunk-T3IVPMRX.mjs +900 -0
  12. package/dist/lib/browser/chunk-T3IVPMRX.mjs.map +7 -0
  13. package/dist/lib/browser/compute-graph-registry-XH6B2SWG.mjs +27 -0
  14. package/dist/lib/browser/compute-graph-registry-XH6B2SWG.mjs.map +7 -0
  15. package/dist/lib/browser/index.mjs +86 -324
  16. package/dist/lib/browser/index.mjs.map +4 -4
  17. package/dist/lib/browser/intent-resolver-Q7DTHAM5.mjs +47 -0
  18. package/dist/lib/browser/intent-resolver-Q7DTHAM5.mjs.map +7 -0
  19. package/dist/lib/browser/markdown-IKG5FNCA.mjs +26 -0
  20. package/dist/lib/browser/markdown-IKG5FNCA.mjs.map +7 -0
  21. package/dist/lib/browser/meta.json +1 -1
  22. package/dist/lib/browser/react-context-JG43577H.mjs +28 -0
  23. package/dist/lib/browser/react-context-JG43577H.mjs.map +7 -0
  24. package/dist/lib/browser/react-surface-URRC3AFC.mjs +43 -0
  25. package/dist/lib/browser/react-surface-URRC3AFC.mjs.map +7 -0
  26. package/dist/lib/browser/thread-YX6KBQNQ.mjs +17 -0
  27. package/dist/lib/browser/thread-YX6KBQNQ.mjs.map +7 -0
  28. package/dist/lib/browser/types/index.mjs +62 -0
  29. package/dist/lib/node/SheetContainer-TJ3JQLWM.cjs +364 -0
  30. package/dist/lib/node/SheetContainer-TJ3JQLWM.cjs.map +7 -0
  31. package/dist/lib/node/chunk-E3RXOEL6.cjs +935 -0
  32. package/dist/lib/node/chunk-E3RXOEL6.cjs.map +7 -0
  33. package/dist/lib/node/{types.cjs → chunk-FU5K66DS.cjs} +12 -16
  34. package/dist/lib/node/chunk-FU5K66DS.cjs.map +7 -0
  35. package/dist/lib/node/{chunk-2ZVZI2KJ.cjs → chunk-NLDXUFDG.cjs} +7 -7
  36. package/dist/lib/node/chunk-NLDXUFDG.cjs.map +7 -0
  37. package/dist/lib/node/chunk-P4KSGZSS.cjs +251 -0
  38. package/dist/lib/node/chunk-P4KSGZSS.cjs.map +7 -0
  39. package/dist/lib/node/chunk-ZPWW4LPY.cjs +807 -0
  40. package/dist/lib/node/chunk-ZPWW4LPY.cjs.map +7 -0
  41. package/dist/lib/node/compute-graph-registry-ORGTIE5M.cjs +53 -0
  42. package/dist/lib/node/compute-graph-registry-ORGTIE5M.cjs.map +7 -0
  43. package/dist/lib/node/index.cjs +87 -318
  44. package/dist/lib/node/index.cjs.map +4 -4
  45. package/dist/lib/node/intent-resolver-ZUDJJUFG.cjs +60 -0
  46. package/dist/lib/node/intent-resolver-ZUDJJUFG.cjs.map +7 -0
  47. package/dist/lib/node/markdown-EUUL3Q36.cjs +40 -0
  48. package/dist/lib/node/markdown-EUUL3Q36.cjs.map +7 -0
  49. package/dist/lib/node/meta.json +1 -1
  50. package/dist/lib/node/react-context-OOH5QFE2.cjs +50 -0
  51. package/dist/lib/node/react-context-OOH5QFE2.cjs.map +7 -0
  52. package/dist/lib/node/react-surface-IQN5JKSS.cjs +64 -0
  53. package/dist/lib/node/react-surface-IQN5JKSS.cjs.map +7 -0
  54. package/dist/lib/node/{meta.cjs → thread-VBPS23P2.cjs} +12 -10
  55. package/dist/lib/node/thread-VBPS23P2.cjs.map +7 -0
  56. package/dist/lib/node/types/index.cjs +84 -0
  57. package/dist/lib/node/types/index.cjs.map +7 -0
  58. package/dist/lib/node-esm/SheetContainer-QEEFORIC.mjs +371 -0
  59. package/dist/lib/node-esm/SheetContainer-QEEFORIC.mjs.map +7 -0
  60. package/dist/lib/node-esm/{chunk-BM2Q3FFC.mjs → chunk-FMOVRTS4.mjs} +3 -3
  61. package/dist/lib/node-esm/chunk-FMOVRTS4.mjs.map +7 -0
  62. package/dist/lib/node-esm/chunk-KCXK5UM6.mjs +16 -0
  63. package/dist/lib/node-esm/chunk-KCXK5UM6.mjs.map +7 -0
  64. package/dist/lib/node-esm/chunk-NSVUOAI6.mjs +901 -0
  65. package/dist/lib/node-esm/chunk-NSVUOAI6.mjs.map +7 -0
  66. package/dist/lib/node-esm/chunk-OXD6RBFF.mjs +801 -0
  67. package/dist/lib/node-esm/chunk-OXD6RBFF.mjs.map +7 -0
  68. package/dist/lib/node-esm/chunk-PTOI45NK.mjs +231 -0
  69. package/dist/lib/node-esm/chunk-PTOI45NK.mjs.map +7 -0
  70. package/dist/lib/node-esm/compute-graph-registry-JH2FRHLD.mjs +28 -0
  71. package/dist/lib/node-esm/compute-graph-registry-JH2FRHLD.mjs.map +7 -0
  72. package/dist/lib/node-esm/index.mjs +86 -324
  73. package/dist/lib/node-esm/index.mjs.map +4 -4
  74. package/dist/lib/node-esm/intent-resolver-IF64RN7B.mjs +48 -0
  75. package/dist/lib/node-esm/intent-resolver-IF64RN7B.mjs.map +7 -0
  76. package/dist/lib/node-esm/markdown-D2ZMN7LR.mjs +27 -0
  77. package/dist/lib/node-esm/markdown-D2ZMN7LR.mjs.map +7 -0
  78. package/dist/lib/node-esm/meta.json +1 -1
  79. package/dist/lib/node-esm/react-context-CJVSLO74.mjs +29 -0
  80. package/dist/lib/node-esm/react-context-CJVSLO74.mjs.map +7 -0
  81. package/dist/lib/node-esm/react-surface-XJIX5G3I.mjs +44 -0
  82. package/dist/lib/node-esm/react-surface-XJIX5G3I.mjs.map +7 -0
  83. package/dist/lib/node-esm/thread-HSJD3SR6.mjs +18 -0
  84. package/dist/lib/node-esm/thread-HSJD3SR6.mjs.map +7 -0
  85. package/dist/lib/node-esm/types/index.mjs +63 -0
  86. package/dist/types/src/SheetPlugin.d.ts +1 -3
  87. package/dist/types/src/SheetPlugin.d.ts.map +1 -1
  88. package/dist/types/src/capabilities/capabilities.d.ts +5 -0
  89. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -0
  90. package/dist/types/src/capabilities/compute-graph-registry.d.ts +4 -0
  91. package/dist/types/src/capabilities/compute-graph-registry.d.ts.map +1 -0
  92. package/dist/types/src/capabilities/index.d.ts +17 -0
  93. package/dist/types/src/capabilities/index.d.ts.map +1 -0
  94. package/dist/types/src/capabilities/intent-resolver.d.ts +4 -0
  95. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -0
  96. package/dist/types/src/capabilities/markdown.d.ts +6 -0
  97. package/dist/types/src/capabilities/markdown.d.ts.map +1 -0
  98. package/dist/types/src/capabilities/react-context.d.ts +8 -0
  99. package/dist/types/src/capabilities/react-context.d.ts.map +1 -0
  100. package/dist/types/src/capabilities/react-surface.d.ts +4 -0
  101. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  102. package/dist/types/src/capabilities/thread.d.ts +6 -0
  103. package/dist/types/src/capabilities/thread.d.ts.map +1 -0
  104. package/dist/types/src/components/ComputeGraph/ComputeGraphContextProvider.d.ts +1 -1
  105. package/dist/types/src/components/ComputeGraph/ComputeGraphContextProvider.d.ts.map +1 -1
  106. package/dist/types/src/components/ComputeGraph/compute-graph.stories.d.ts.map +1 -0
  107. package/dist/types/src/components/FunctionEditor/FunctionEditor.d.ts.map +1 -1
  108. package/dist/types/src/components/GridSheet/GridSheet.d.ts.map +1 -1
  109. package/dist/types/src/components/GridSheet/GridSheet.stories.d.ts.map +1 -1
  110. package/dist/types/src/components/GridSheet/SheetCellEditor.stories.d.ts.map +1 -1
  111. package/dist/types/src/components/GridSheet/util.d.ts.map +1 -1
  112. package/dist/types/src/components/RangeList/RangeList.d.ts.map +1 -1
  113. package/dist/types/src/components/SheetContainer/SheetContainer.d.ts.map +1 -1
  114. package/dist/types/src/components/SheetContainer/SheetContainer.stories.d.ts.map +1 -1
  115. package/dist/types/src/components/SheetContext/SheetContext.d.ts +1 -2
  116. package/dist/types/src/components/SheetContext/SheetContext.d.ts.map +1 -1
  117. package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts +7 -0
  118. package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts.map +1 -0
  119. package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts +6 -0
  120. package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts.map +1 -0
  121. package/dist/types/src/components/SheetToolbar/align.d.ts +28 -0
  122. package/dist/types/src/components/SheetToolbar/align.d.ts.map +1 -0
  123. package/dist/types/src/components/SheetToolbar/comment.d.ts +23 -0
  124. package/dist/types/src/components/SheetToolbar/comment.d.ts.map +1 -0
  125. package/dist/types/src/components/SheetToolbar/index.d.ts +2 -0
  126. package/dist/types/src/components/SheetToolbar/index.d.ts.map +1 -0
  127. package/dist/types/src/components/SheetToolbar/style.d.ts +26 -0
  128. package/dist/types/src/components/SheetToolbar/style.d.ts.map +1 -0
  129. package/dist/types/src/components/SheetToolbar/useToolbarAction.d.ts +8 -0
  130. package/dist/types/src/components/SheetToolbar/useToolbarAction.d.ts.map +1 -0
  131. package/dist/types/src/components/SheetToolbar/useToolbarState.d.ts +6 -0
  132. package/dist/types/src/components/SheetToolbar/useToolbarState.d.ts.map +1 -0
  133. package/dist/types/src/components/index.d.ts +0 -1
  134. package/dist/types/src/components/index.d.ts.map +1 -1
  135. package/dist/types/src/extensions/compute.d.ts +1 -1
  136. package/dist/types/src/extensions/compute.d.ts.map +1 -1
  137. package/dist/types/src/extensions/editor/extension.d.ts +1 -1
  138. package/dist/types/src/extensions/editor/extension.d.ts.map +1 -1
  139. package/dist/types/src/index.d.ts +2 -3
  140. package/dist/types/src/index.d.ts.map +1 -1
  141. package/dist/types/src/integrations/thread-ranges.d.ts +1 -1
  142. package/dist/types/src/integrations/thread-ranges.d.ts.map +1 -1
  143. package/dist/types/src/meta.d.ts +1 -2
  144. package/dist/types/src/meta.d.ts.map +1 -1
  145. package/dist/types/src/model/sheet-model.d.ts +6 -8
  146. package/dist/types/src/model/sheet-model.d.ts.map +1 -1
  147. package/dist/types/src/model/testing.d.ts +1 -1
  148. package/dist/types/src/model/testing.d.ts.map +1 -1
  149. package/dist/types/src/model/useSheetModel.d.ts +1 -1
  150. package/dist/types/src/model/useSheetModel.d.ts.map +1 -1
  151. package/dist/types/src/testing/testing.d.ts +1 -1
  152. package/dist/types/src/testing/testing.d.ts.map +1 -1
  153. package/dist/types/src/{defs → types}/index.d.ts +1 -0
  154. package/dist/types/src/types/index.d.ts.map +1 -0
  155. package/dist/types/src/types/schema.d.ts +105 -0
  156. package/dist/types/src/types/schema.d.ts.map +1 -0
  157. package/dist/types/src/{defs → types}/sheet-range-types.d.ts +1 -1
  158. package/dist/types/src/types/sheet-range-types.d.ts.map +1 -0
  159. package/dist/types/src/types/types.d.ts +71 -0
  160. package/dist/types/src/types/types.d.ts.map +1 -0
  161. package/dist/types/src/{defs → types}/util.d.ts +5 -1
  162. package/dist/types/src/types/util.d.ts.map +1 -0
  163. package/dist/types/tsconfig.tsbuildinfo +1 -0
  164. package/package.json +47 -61
  165. package/src/SheetPlugin.tsx +70 -176
  166. package/src/capabilities/capabilities.ts +14 -0
  167. package/src/capabilities/compute-graph-registry.ts +25 -0
  168. package/src/capabilities/index.ts +14 -0
  169. package/src/capabilities/intent-resolver.ts +29 -0
  170. package/src/capabilities/markdown.ts +22 -0
  171. package/src/capabilities/react-context.tsx +20 -0
  172. package/src/capabilities/react-surface.tsx +30 -0
  173. package/src/capabilities/thread.ts +14 -0
  174. package/src/components/ComputeGraph/ComputeGraphContextProvider.tsx +1 -2
  175. package/src/{compute-graph → components/ComputeGraph}/compute-graph.stories.tsx +6 -7
  176. package/src/components/FunctionEditor/FunctionEditor.tsx +2 -1
  177. package/src/components/GridSheet/GridSheet.stories.tsx +2 -0
  178. package/src/components/GridSheet/GridSheet.tsx +15 -18
  179. package/src/components/GridSheet/SheetCellEditor.stories.tsx +6 -7
  180. package/src/components/GridSheet/util.ts +3 -2
  181. package/src/components/RangeList/RangeList.tsx +2 -1
  182. package/src/components/SheetContainer/SheetContainer.stories.tsx +25 -23
  183. package/src/components/SheetContainer/SheetContainer.tsx +3 -8
  184. package/src/components/SheetContext/SheetContext.tsx +1 -2
  185. package/src/components/{Toolbar/Toolbar.stories.tsx → SheetToolbar/SheetToolbar.stories.tsx} +4 -8
  186. package/src/components/SheetToolbar/SheetToolbar.tsx +48 -0
  187. package/src/components/SheetToolbar/align.ts +68 -0
  188. package/src/components/SheetToolbar/comment.ts +56 -0
  189. package/src/components/{Toolbar → SheetToolbar}/index.ts +1 -1
  190. package/src/components/SheetToolbar/style.ts +72 -0
  191. package/src/components/SheetToolbar/useToolbarAction.ts +87 -0
  192. package/src/components/SheetToolbar/useToolbarState.ts +17 -0
  193. package/src/components/index.ts +0 -1
  194. package/src/extensions/compute.ts +7 -4
  195. package/src/extensions/editor/extension.test.ts +2 -1
  196. package/src/extensions/editor/extension.ts +2 -3
  197. package/src/index.ts +2 -7
  198. package/src/integrations/thread-ranges.ts +28 -24
  199. package/src/meta.ts +1 -1
  200. package/src/model/sheet-model.test.ts +4 -10
  201. package/src/model/sheet-model.ts +30 -22
  202. package/src/model/testing.ts +3 -2
  203. package/src/model/useSheetModel.ts +2 -1
  204. package/src/sanity.test.ts +1 -1
  205. package/src/testing/testing.tsx +2 -3
  206. package/src/{defs → types}/index.ts +1 -0
  207. package/src/types/schema.ts +56 -0
  208. package/src/{defs → types}/sheet-range-types.ts +1 -1
  209. package/src/types/types.ts +67 -0
  210. package/src/{defs → types}/util.ts +13 -13
  211. package/dist/lib/browser/SheetContainer-KCLT6PEO.mjs +0 -296
  212. package/dist/lib/browser/SheetContainer-KCLT6PEO.mjs.map +0 -7
  213. package/dist/lib/browser/chunk-E5WQ7U7G.mjs +0 -1675
  214. package/dist/lib/browser/chunk-E5WQ7U7G.mjs.map +0 -7
  215. package/dist/lib/browser/chunk-F3HE6D3J.mjs +0 -3269
  216. package/dist/lib/browser/chunk-F3HE6D3J.mjs.map +0 -7
  217. package/dist/lib/browser/chunk-JXFPOYNA.mjs +0 -67
  218. package/dist/lib/browser/chunk-JXFPOYNA.mjs.map +0 -7
  219. package/dist/lib/browser/chunk-RABELMEQ.mjs.map +0 -7
  220. package/dist/lib/browser/compute-graph-SNUS7HOH.mjs +0 -35
  221. package/dist/lib/browser/meta.mjs +0 -9
  222. package/dist/lib/browser/types.mjs +0 -16
  223. package/dist/lib/browser/types.mjs.map +0 -7
  224. package/dist/lib/node/SheetContainer-VVVRYTQG.cjs +0 -298
  225. package/dist/lib/node/SheetContainer-VVVRYTQG.cjs.map +0 -7
  226. package/dist/lib/node/chunk-2ZVZI2KJ.cjs.map +0 -7
  227. package/dist/lib/node/chunk-45YW2DX2.cjs +0 -1656
  228. package/dist/lib/node/chunk-45YW2DX2.cjs.map +0 -7
  229. package/dist/lib/node/chunk-KSEEI5VC.cjs +0 -3323
  230. package/dist/lib/node/chunk-KSEEI5VC.cjs.map +0 -7
  231. package/dist/lib/node/chunk-OWH2EUHZ.cjs +0 -90
  232. package/dist/lib/node/chunk-OWH2EUHZ.cjs.map +0 -7
  233. package/dist/lib/node/compute-graph-WILPHO4A.cjs +0 -57
  234. package/dist/lib/node/compute-graph-WILPHO4A.cjs.map +0 -7
  235. package/dist/lib/node/meta.cjs.map +0 -7
  236. package/dist/lib/node/types.cjs.map +0 -7
  237. package/dist/lib/node-esm/SheetContainer-LSBE6Q4X.mjs +0 -297
  238. package/dist/lib/node-esm/SheetContainer-LSBE6Q4X.mjs.map +0 -7
  239. package/dist/lib/node-esm/chunk-6JF2AHKO.mjs +0 -3270
  240. package/dist/lib/node-esm/chunk-6JF2AHKO.mjs.map +0 -7
  241. package/dist/lib/node-esm/chunk-BM2Q3FFC.mjs.map +0 -7
  242. package/dist/lib/node-esm/chunk-BVS2IQRO.mjs +0 -68
  243. package/dist/lib/node-esm/chunk-BVS2IQRO.mjs.map +0 -7
  244. package/dist/lib/node-esm/chunk-NYDNXI7L.mjs +0 -1676
  245. package/dist/lib/node-esm/chunk-NYDNXI7L.mjs.map +0 -7
  246. package/dist/lib/node-esm/compute-graph-S6CVN7RS.mjs +0 -36
  247. package/dist/lib/node-esm/compute-graph-S6CVN7RS.mjs.map +0 -7
  248. package/dist/lib/node-esm/meta.mjs +0 -10
  249. package/dist/lib/node-esm/meta.mjs.map +0 -7
  250. package/dist/lib/node-esm/types.mjs +0 -17
  251. package/dist/lib/node-esm/types.mjs.map +0 -7
  252. package/dist/types/src/components/SheetObjectSettings.d.ts +0 -7
  253. package/dist/types/src/components/SheetObjectSettings.d.ts.map +0 -1
  254. package/dist/types/src/components/Toolbar/Toolbar.d.ts +0 -48
  255. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +0 -1
  256. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts +0 -7
  257. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts.map +0 -1
  258. package/dist/types/src/components/Toolbar/index.d.ts +0 -2
  259. package/dist/types/src/components/Toolbar/index.d.ts.map +0 -1
  260. package/dist/types/src/compute-graph/compute-graph-registry.d.ts +0 -34
  261. package/dist/types/src/compute-graph/compute-graph-registry.d.ts.map +0 -1
  262. package/dist/types/src/compute-graph/compute-graph.d.ts +0 -64
  263. package/dist/types/src/compute-graph/compute-graph.d.ts.map +0 -1
  264. package/dist/types/src/compute-graph/compute-graph.stories.d.ts.map +0 -1
  265. package/dist/types/src/compute-graph/compute-graph.test.d.ts +0 -2
  266. package/dist/types/src/compute-graph/compute-graph.test.d.ts.map +0 -1
  267. package/dist/types/src/compute-graph/compute-node.d.ts +0 -26
  268. package/dist/types/src/compute-graph/compute-node.d.ts.map +0 -1
  269. package/dist/types/src/compute-graph/functions/async-function.d.ts +0 -66
  270. package/dist/types/src/compute-graph/functions/async-function.d.ts.map +0 -1
  271. package/dist/types/src/compute-graph/functions/edge-function.d.ts +0 -21
  272. package/dist/types/src/compute-graph/functions/edge-function.d.ts.map +0 -1
  273. package/dist/types/src/compute-graph/functions/function-defs.d.ts +0 -11
  274. package/dist/types/src/compute-graph/functions/function-defs.d.ts.map +0 -1
  275. package/dist/types/src/compute-graph/functions/index.d.ts +0 -4
  276. package/dist/types/src/compute-graph/functions/index.d.ts.map +0 -1
  277. package/dist/types/src/compute-graph/hyperformula.test.d.ts +0 -2
  278. package/dist/types/src/compute-graph/hyperformula.test.d.ts.map +0 -1
  279. package/dist/types/src/compute-graph/index.d.ts +0 -5
  280. package/dist/types/src/compute-graph/index.d.ts.map +0 -1
  281. package/dist/types/src/compute-graph/testing/index.d.ts +0 -3
  282. package/dist/types/src/compute-graph/testing/index.d.ts.map +0 -1
  283. package/dist/types/src/compute-graph/testing/test-builder.d.ts +0 -15
  284. package/dist/types/src/compute-graph/testing/test-builder.d.ts.map +0 -1
  285. package/dist/types/src/compute-graph/testing/test-plugin.d.ts +0 -36
  286. package/dist/types/src/compute-graph/testing/test-plugin.d.ts.map +0 -1
  287. package/dist/types/src/compute-graph/util.d.ts +0 -2
  288. package/dist/types/src/compute-graph/util.d.ts.map +0 -1
  289. package/dist/types/src/defs/index.d.ts.map +0 -1
  290. package/dist/types/src/defs/sheet-range-types.d.ts.map +0 -1
  291. package/dist/types/src/defs/types.d.ts +0 -26
  292. package/dist/types/src/defs/types.d.ts.map +0 -1
  293. package/dist/types/src/defs/types.test.d.ts +0 -2
  294. package/dist/types/src/defs/types.test.d.ts.map +0 -1
  295. package/dist/types/src/defs/util.d.ts.map +0 -1
  296. package/dist/types/src/types.d.ts +0 -182
  297. package/dist/types/src/types.d.ts.map +0 -1
  298. package/dist/vendor/hyperformula.mjs +0 -37145
  299. package/src/components/SheetObjectSettings.tsx +0 -38
  300. package/src/components/Toolbar/Toolbar.tsx +0 -346
  301. package/src/compute-graph/compute-graph-registry.ts +0 -90
  302. package/src/compute-graph/compute-graph.test.ts +0 -87
  303. package/src/compute-graph/compute-graph.ts +0 -260
  304. package/src/compute-graph/compute-node.ts +0 -62
  305. package/src/compute-graph/functions/async-function.ts +0 -179
  306. package/src/compute-graph/functions/edge-function.ts +0 -102
  307. package/src/compute-graph/functions/function-defs.ts +0 -2427
  308. package/src/compute-graph/functions/index.ts +0 -7
  309. package/src/compute-graph/hyperformula.test.ts +0 -14
  310. package/src/compute-graph/index.ts +0 -8
  311. package/src/compute-graph/testing/index.ts +0 -6
  312. package/src/compute-graph/testing/test-builder.ts +0 -54
  313. package/src/compute-graph/testing/test-plugin.ts +0 -100
  314. package/src/compute-graph/util.ts +0 -8
  315. package/src/defs/types.test.ts +0 -91
  316. package/src/defs/types.ts +0 -88
  317. package/src/types.ts +0 -125
  318. /package/dist/lib/browser/{compute-graph-SNUS7HOH.mjs.map → types/index.mjs.map} +0 -0
  319. /package/dist/lib/{browser/meta.mjs.map → node-esm/types/index.mjs.map} +0 -0
  320. /package/dist/types/src/{compute-graph → components/ComputeGraph}/compute-graph.stories.d.ts +0 -0
@@ -0,0 +1,801 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ DEFAULT_COLS,
4
+ DEFAULT_ROWS,
5
+ Range,
6
+ SheetAction,
7
+ cellClassNameForRange,
8
+ rangeFromIndex,
9
+ useSheetModel
10
+ } from "./chunk-NSVUOAI6.mjs";
11
+ import {
12
+ rangeExtension,
13
+ sheetExtension
14
+ } from "./chunk-PTOI45NK.mjs";
15
+ import {
16
+ SHEET_PLUGIN
17
+ } from "./chunk-FMOVRTS4.mjs";
18
+
19
+ // packages/plugins/plugin-sheet/src/components/ComputeGraph/ComputeGraphContextProvider.tsx
20
+ import React, { createContext, useContext } from "react";
21
+ import { raise } from "@dxos/debug";
22
+ import { useAsyncState } from "@dxos/react-hooks";
23
+ var ComputeGraphContext = /* @__PURE__ */ createContext(void 0);
24
+ var ComputeGraphContextProvider = ({ registry, children }) => {
25
+ return /* @__PURE__ */ React.createElement(ComputeGraphContext.Provider, {
26
+ value: {
27
+ registry
28
+ }
29
+ }, children);
30
+ };
31
+ var useComputeGraph = (space) => {
32
+ const { registry } = useContext(ComputeGraphContext) ?? raise(new Error("Missing ComputeGraphContext"));
33
+ const [graph] = useAsyncState(async () => {
34
+ if (space) {
35
+ const graph2 = registry.getOrCreateGraph(space);
36
+ await graph2.open();
37
+ return graph2;
38
+ }
39
+ }, [
40
+ space,
41
+ registry
42
+ ]);
43
+ return graph;
44
+ };
45
+
46
+ // packages/plugins/plugin-sheet/src/components/RangeList/RangeList.tsx
47
+ import React2, { useCallback } from "react";
48
+ import { rangeToA1Notation } from "@dxos/compute";
49
+ import { S } from "@dxos/echo-schema";
50
+ import { useTranslation } from "@dxos/react-ui";
51
+ import { List } from "@dxos/react-ui-list";
52
+ import { ghostHover } from "@dxos/react-ui-theme";
53
+ var RangeList = ({ sheet }) => {
54
+ const { t } = useTranslation(SHEET_PLUGIN);
55
+ const handleSelectRange = (range) => {
56
+ };
57
+ const handleDeleteRange = useCallback((range) => {
58
+ const index = sheet.ranges.findIndex((sheetRange) => sheetRange === range);
59
+ sheet.ranges.splice(index, 1);
60
+ }, [
61
+ sheet
62
+ ]);
63
+ return /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement("h2", {
64
+ className: "p-2 text-sm font-semibold"
65
+ }, t("range list heading")), /* @__PURE__ */ React2.createElement(List.Root, {
66
+ items: sheet.ranges,
67
+ isItem: S.is(Range)
68
+ }, ({ items: ranges }) => ranges.map((range, i) => /* @__PURE__ */ React2.createElement(List.Item, {
69
+ key: i,
70
+ item: range,
71
+ classNames: [
72
+ "p-2",
73
+ ghostHover
74
+ ]
75
+ }, /* @__PURE__ */ React2.createElement(List.ItemDragHandle, null), /* @__PURE__ */ React2.createElement(List.ItemTitle, {
76
+ onClick: () => handleSelectRange(range)
77
+ }, t("range title", {
78
+ position: rangeToA1Notation(rangeFromIndex(sheet, range.range)),
79
+ key: t(`range key ${range.key} label`),
80
+ value: t(`range value ${range.value} label`)
81
+ })), /* @__PURE__ */ React2.createElement(List.ItemDeleteButton, {
82
+ onClick: () => handleDeleteRange(range)
83
+ })))));
84
+ };
85
+
86
+ // packages/plugins/plugin-sheet/src/components/index.ts
87
+ import { lazy } from "react";
88
+
89
+ // packages/plugins/plugin-sheet/src/components/GridSheet/GridSheet.tsx
90
+ import React4, { useCallback as useCallback4, useMemo as useMemo2, useRef, useState as useState3 } from "react";
91
+ import { createIntent as createIntent2, useIntentDispatcher as useIntentDispatcher2 } from "@dxos/app-framework";
92
+ import { rangeToA1Notation as rangeToA1Notation2 } from "@dxos/compute";
93
+ import { DropdownMenu, Icon, useTranslation as useTranslation2 } from "@dxos/react-ui";
94
+ import { useAttention } from "@dxos/react-ui-attention";
95
+ import { closestCell, defaultSizeRow, editorKeys, Grid as Grid2, GridCellEditor, parseCellIndex } from "@dxos/react-ui-grid";
96
+
97
+ // packages/plugins/plugin-sheet/src/components/GridSheet/util.ts
98
+ import { useEffect as useEffect2, useState } from "react";
99
+ import { inRange as inRange2 } from "@dxos/compute";
100
+ import { createDocAccessor, fullyQualifiedId as fullyQualifiedId2 } from "@dxos/react-client/echo";
101
+ import { parseValue, cellClassesForFieldType } from "@dxos/react-ui-form";
102
+ import { colToA1Notation, rowToA1Notation, commentedClassName } from "@dxos/react-ui-grid";
103
+ import { mx } from "@dxos/react-ui-theme";
104
+
105
+ // packages/plugins/plugin-sheet/src/integrations/thread-ranges.ts
106
+ import { useCallback as useCallback2, useEffect, useMemo } from "react";
107
+ import { createIntent, createResolver, LayoutAction, useIntentDispatcher, useIntentResolver } from "@dxos/app-framework";
108
+ import { debounce } from "@dxos/async";
109
+ import { inRange } from "@dxos/compute";
110
+ import { ThreadAction } from "@dxos/plugin-thread/types";
111
+ import { fullyQualifiedId } from "@dxos/react-client/echo";
112
+ var completeCellRangeToThreadCursor = (range) => {
113
+ return `${range.from.col},${range.from.row},${range.to.col},${range.to.row}`;
114
+ };
115
+ var parseThreadAnchorAsCellRange = (cursor) => {
116
+ const coords = cursor.split(",");
117
+ if (coords.length !== 4) {
118
+ return null;
119
+ } else {
120
+ const [fromCol, fromRow, toCol, toRow] = coords;
121
+ return {
122
+ from: {
123
+ col: parseInt(fromCol),
124
+ row: parseInt(fromRow)
125
+ },
126
+ to: {
127
+ col: parseInt(toCol),
128
+ row: parseInt(toRow)
129
+ }
130
+ };
131
+ }
132
+ };
133
+ var useUpdateFocusedCellOnThreadSelection = (grid) => {
134
+ const { model, setActiveRefs } = useSheetContext();
135
+ const scrollIntoViewResolver = useMemo(() => createResolver(LayoutAction.ScrollIntoView, ({ cursor, ref }) => {
136
+ setActiveRefs(ref);
137
+ const range = parseThreadAnchorAsCellRange(cursor);
138
+ range && grid?.setFocus({
139
+ ...range.to,
140
+ plane: "grid"
141
+ }, true);
142
+ }, {
143
+ disposition: "hoist",
144
+ filter: (data) => data.id === fullyQualifiedId(model.sheet) && !!data.cursor
145
+ }), [
146
+ model.sheet,
147
+ setActiveRefs
148
+ ]);
149
+ useIntentResolver(SHEET_PLUGIN, scrollIntoViewResolver);
150
+ };
151
+ var useSelectThreadOnCellFocus = () => {
152
+ const { model, cursor } = useSheetContext();
153
+ const { dispatchPromise: dispatch } = useIntentDispatcher();
154
+ const threads = useMemo(() => model.sheet.threads?.filter((thread) => !!thread) ?? [], [
155
+ // TODO(thure): Surely we can find a better dependency for this…
156
+ JSON.stringify(model.sheet.threads)
157
+ ]);
158
+ const selectClosestThread = useCallback2((cellAddress) => {
159
+ if (!cellAddress || !threads) {
160
+ return;
161
+ }
162
+ const closestThread = threads?.find((ref) => {
163
+ if (ref.target?.anchor) {
164
+ const range = parseThreadAnchorAsCellRange(ref.target.anchor);
165
+ return range ? inRange(range, cellAddress) : false;
166
+ } else {
167
+ return false;
168
+ }
169
+ });
170
+ if (closestThread) {
171
+ void dispatch(createIntent(ThreadAction.Select, {
172
+ current: fullyQualifiedId(closestThread)
173
+ }));
174
+ }
175
+ }, [
176
+ dispatch,
177
+ threads
178
+ ]);
179
+ const debounced = useMemo(() => {
180
+ return debounce((cellCoords) => requestAnimationFrame(() => selectClosestThread(cellCoords)), 50);
181
+ }, [
182
+ selectClosestThread
183
+ ]);
184
+ useEffect(() => {
185
+ if (!cursor) {
186
+ return;
187
+ }
188
+ debounced(cursor);
189
+ }, [
190
+ cursor,
191
+ debounced
192
+ ]);
193
+ };
194
+
195
+ // packages/plugins/plugin-sheet/src/components/GridSheet/util.ts
196
+ var createDxGridColumns = (model) => {
197
+ return model.sheet.columns.reduce((acc, columnId, numericIndex) => {
198
+ if (model.sheet.columnMeta[columnId] && model.sheet.columnMeta[columnId].size) {
199
+ acc.grid[numericIndex] = {
200
+ size: model.sheet.columnMeta[columnId].size,
201
+ resizeable: true
202
+ };
203
+ }
204
+ return acc;
205
+ }, {
206
+ grid: {}
207
+ });
208
+ };
209
+ var createDxGridRows = (model) => {
210
+ return model.sheet.rows.reduce((acc, rowId, numericIndex) => {
211
+ if (model.sheet.rowMeta[rowId] && model.sheet.rowMeta[rowId].size) {
212
+ acc.grid[numericIndex] = {
213
+ size: model.sheet.rowMeta[rowId].size,
214
+ resizeable: true
215
+ };
216
+ }
217
+ return acc;
218
+ }, {
219
+ grid: {}
220
+ });
221
+ };
222
+ var projectCellProps = (model, col, row) => {
223
+ const address = {
224
+ col,
225
+ row
226
+ };
227
+ const rawValue = model.getValue(address);
228
+ const ranges = model.sheet.ranges?.filter(({ range }) => inRange2(rangeFromIndex(model.sheet, range), address));
229
+ const threadRefs = model.sheet.threads?.filter((thread) => {
230
+ const range = thread.target?.anchor && parseThreadAnchorAsCellRange(thread.target.anchor);
231
+ return thread && range ? inRange2(range, address) : false;
232
+ }).map((thread) => fullyQualifiedId2(thread)).join(" ");
233
+ const description = model.getValueDescription(address);
234
+ const type = description?.type;
235
+ const format = description?.format;
236
+ const classNames = ranges?.map(cellClassNameForRange).reverse();
237
+ return {
238
+ value: parseValue({
239
+ type,
240
+ format,
241
+ value: rawValue
242
+ }),
243
+ className: mx(cellClassesForFieldType({
244
+ type,
245
+ format
246
+ }), threadRefs && commentedClassName, classNames),
247
+ dataRefs: threadRefs
248
+ };
249
+ };
250
+ var gridCellGetter = (model) => {
251
+ const cachedGridCells = {};
252
+ return (nextBounds) => {
253
+ [
254
+ ...Array(nextBounds.end.col - nextBounds.start.col)
255
+ ].forEach((_, c0) => {
256
+ return [
257
+ ...Array(nextBounds.end.row - nextBounds.start.row)
258
+ ].forEach((_2, r0) => {
259
+ const col = nextBounds.start.col + c0;
260
+ const row = nextBounds.start.row + r0;
261
+ cachedGridCells[`${col},${row}`] = projectCellProps(model, col, row);
262
+ });
263
+ });
264
+ return cachedGridCells;
265
+ };
266
+ };
267
+ var rowLabelCell = (row) => ({
268
+ value: rowToA1Notation(row),
269
+ className: "text-end !pie-1 text-subdued",
270
+ resizeHandle: "row"
271
+ });
272
+ var colLabelCell = (col) => ({
273
+ value: colToA1Notation(col),
274
+ className: "text-subdued",
275
+ resizeHandle: "col"
276
+ });
277
+ var cellGetter = (model) => {
278
+ const getGridCells = gridCellGetter(model);
279
+ return (nextBounds, plane) => {
280
+ switch (plane) {
281
+ case "grid":
282
+ return getGridCells(nextBounds);
283
+ case "frozenColsStart":
284
+ return [
285
+ ...Array(nextBounds.end.row - nextBounds.start.row)
286
+ ].reduce((acc, _, r0) => {
287
+ const r = nextBounds.start.row + r0;
288
+ acc[`0,${r}`] = rowLabelCell(r);
289
+ return acc;
290
+ }, {});
291
+ case "frozenRowsStart":
292
+ return [
293
+ ...Array(nextBounds.end.col - nextBounds.start.col)
294
+ ].reduce((acc, _, c0) => {
295
+ const c = nextBounds.start.col + c0;
296
+ acc[`${c},0`] = colLabelCell(c);
297
+ return acc;
298
+ }, {});
299
+ default:
300
+ return {};
301
+ }
302
+ };
303
+ };
304
+ var useSheetModelDxGridProps = (dxGrid, model) => {
305
+ const [columns, setColumns] = useState(createDxGridColumns(model));
306
+ const [rows, setRows] = useState(createDxGridRows(model));
307
+ useEffect2(() => {
308
+ const cellsAccessor = createDocAccessor(model.sheet, [
309
+ "cells"
310
+ ]);
311
+ if (dxGrid) {
312
+ dxGrid.getCells = cellGetter(model);
313
+ }
314
+ const handleCellsUpdate = () => {
315
+ dxGrid?.requestUpdate("initialCells");
316
+ };
317
+ cellsAccessor.handle.addListener("change", handleCellsUpdate);
318
+ const unsubscribe = model.graph.update.on(handleCellsUpdate);
319
+ return () => {
320
+ cellsAccessor.handle.removeListener("change", handleCellsUpdate);
321
+ unsubscribe();
322
+ };
323
+ }, [
324
+ model,
325
+ dxGrid
326
+ ]);
327
+ useEffect2(() => {
328
+ const columnMetaAccessor = createDocAccessor(model.sheet, [
329
+ "columnMeta"
330
+ ]);
331
+ const rowMetaAccessor = createDocAccessor(model.sheet, [
332
+ "rowMeta"
333
+ ]);
334
+ const handleColumnMetaUpdate = () => {
335
+ setColumns(createDxGridColumns(model));
336
+ };
337
+ const handleRowMetaUpdate = () => {
338
+ setRows(createDxGridRows(model));
339
+ };
340
+ columnMetaAccessor.handle.addListener("change", handleColumnMetaUpdate);
341
+ rowMetaAccessor.handle.addListener("change", handleRowMetaUpdate);
342
+ return () => {
343
+ columnMetaAccessor.handle.removeListener("change", handleColumnMetaUpdate);
344
+ rowMetaAccessor.handle.removeListener("change", handleRowMetaUpdate);
345
+ };
346
+ }, [
347
+ model,
348
+ dxGrid
349
+ ]);
350
+ return {
351
+ columns,
352
+ rows
353
+ };
354
+ };
355
+
356
+ // packages/plugins/plugin-sheet/src/components/SheetContext/SheetContext.tsx
357
+ import React3, { createContext as createContext2, useCallback as useCallback3, useContext as useContext2, useState as useState2 } from "react";
358
+ import { invariant } from "@dxos/invariant";
359
+ import { fullyQualifiedId as fullyQualifiedId3 } from "@dxos/react-client/echo";
360
+ import { Grid, useGridContext } from "@dxos/react-ui-grid";
361
+ var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-sheet/src/components/SheetContext/SheetContext.tsx";
362
+ var SheetContext = /* @__PURE__ */ createContext2(void 0);
363
+ var useSheetContext = () => {
364
+ const context = useContext2(SheetContext);
365
+ invariant(context, void 0, {
366
+ F: __dxlog_file,
367
+ L: 54,
368
+ S: void 0,
369
+ A: [
370
+ "context",
371
+ ""
372
+ ]
373
+ });
374
+ return context;
375
+ };
376
+ var SheetProviderImpl = ({ model, onInfo, ignoreAttention, children, __gridScope }) => {
377
+ const { id, editing, setEditing } = useGridContext("SheetProvider", __gridScope);
378
+ const [cursor, setCursorInternal] = useState2();
379
+ const [range, setRangeInternal] = useState2();
380
+ const [cursorFallbackRange, setCursorFallbackRange] = useState2();
381
+ const [activeRefs, setActiveRefs] = useState2("");
382
+ const setCursor = useCallback3((nextCursor) => {
383
+ setCursorInternal(nextCursor);
384
+ setCursorFallbackRange(range?.to ? range : nextCursor ? {
385
+ from: nextCursor,
386
+ to: nextCursor
387
+ } : void 0);
388
+ }, [
389
+ range
390
+ ]);
391
+ const setRange = useCallback3((nextRange) => {
392
+ setRangeInternal(nextRange);
393
+ setCursorFallbackRange(nextRange?.to ? nextRange : cursor ? {
394
+ from: cursor,
395
+ to: cursor
396
+ } : void 0);
397
+ }, [
398
+ cursor
399
+ ]);
400
+ return /* @__PURE__ */ React3.createElement(SheetContext.Provider, {
401
+ value: {
402
+ id,
403
+ model,
404
+ editing,
405
+ setEditing,
406
+ cursor,
407
+ setCursor,
408
+ range,
409
+ setRange,
410
+ cursorFallbackRange,
411
+ activeRefs,
412
+ setActiveRefs,
413
+ // TODO(burdon): Change to event.
414
+ onInfo,
415
+ ignoreAttention
416
+ }
417
+ }, children);
418
+ };
419
+ var SheetProvider = ({ children, graph, sheet, readonly, ignoreAttention, onInfo }) => {
420
+ const model = useSheetModel(graph, sheet, {
421
+ readonly
422
+ });
423
+ return !model ? null : /* @__PURE__ */ React3.createElement(Grid.Root, {
424
+ id: fullyQualifiedId3(sheet)
425
+ }, /* @__PURE__ */ React3.createElement(SheetProviderImpl, {
426
+ model,
427
+ onInfo,
428
+ ignoreAttention
429
+ }, children));
430
+ };
431
+
432
+ // packages/plugins/plugin-sheet/src/components/GridSheet/GridSheet.tsx
433
+ var inertPosition = {
434
+ plane: "grid",
435
+ col: 0,
436
+ row: 0
437
+ };
438
+ var initialCells = {
439
+ grid: {},
440
+ frozenColsStart: [
441
+ ...Array(64)
442
+ ].reduce((acc, _, i) => {
443
+ acc[`0,${i}`] = rowLabelCell(i);
444
+ return acc;
445
+ }, {}),
446
+ frozenRowsStart: [
447
+ ...Array(12)
448
+ ].reduce((acc, _, i) => {
449
+ acc[`${i},0`] = colLabelCell(i);
450
+ return acc;
451
+ }, {})
452
+ };
453
+ var frozen = {
454
+ frozenColsStart: 1,
455
+ frozenRowsStart: 1
456
+ };
457
+ var sheetRowDefault = {
458
+ frozenRowsStart: {
459
+ size: defaultSizeRow,
460
+ readonly: true
461
+ },
462
+ grid: {
463
+ size: defaultSizeRow,
464
+ resizeable: true
465
+ }
466
+ };
467
+ var sheetColDefault = {
468
+ frozenColsStart: {
469
+ size: 48,
470
+ readonly: true
471
+ },
472
+ grid: {
473
+ size: 180,
474
+ resizeable: true
475
+ }
476
+ };
477
+ var GridSheet = () => {
478
+ const { t } = useTranslation2(SHEET_PLUGIN);
479
+ const { id, model, editing, setCursor, setRange, cursor, cursorFallbackRange, activeRefs, ignoreAttention } = useSheetContext();
480
+ const [dxGrid, setDxGrid] = useState3(null);
481
+ const [extraplanarFocus, setExtraplanarFocus] = useState3(null);
482
+ const { dispatchPromise: dispatch } = useIntentDispatcher2();
483
+ const rangeController = useRef();
484
+ const { hasAttention } = useAttention(id);
485
+ const handleFocus = useCallback4((event) => {
486
+ if (!editing) {
487
+ const cell = closestCell(event.target);
488
+ if (cell) {
489
+ if (cell.plane === "grid") {
490
+ setCursor({
491
+ col: cell.col,
492
+ row: cell.row
493
+ });
494
+ setExtraplanarFocus(null);
495
+ } else {
496
+ setExtraplanarFocus(cell);
497
+ }
498
+ } else {
499
+ setExtraplanarFocus(null);
500
+ }
501
+ }
502
+ }, [
503
+ editing
504
+ ]);
505
+ const handleClose = useCallback4((_value, event) => {
506
+ if (event) {
507
+ const { key, shift } = event;
508
+ const axis = [
509
+ "Enter",
510
+ "ArrowUp",
511
+ "ArrowDown"
512
+ ].includes(key) ? "row" : [
513
+ "Tab",
514
+ "ArrowLeft",
515
+ "ArrowRight"
516
+ ].includes(key) ? "col" : void 0;
517
+ const delta = key.startsWith("Arrow") ? [
518
+ "ArrowUp",
519
+ "ArrowLeft"
520
+ ].includes(key) ? -1 : 1 : shift ? -1 : 1;
521
+ dxGrid?.refocus(axis, delta);
522
+ }
523
+ }, [
524
+ model,
525
+ editing,
526
+ dxGrid
527
+ ]);
528
+ const handleBlur = useCallback4((value) => {
529
+ if (value !== void 0) {
530
+ model.setValue(parseCellIndex(editing.index), value);
531
+ }
532
+ }, [
533
+ model,
534
+ editing
535
+ ]);
536
+ const handleAxisResize = useCallback4(({ axis, size, index: numericIndex }) => {
537
+ if (axis === "row") {
538
+ const rowId = model.sheet.rows[parseInt(numericIndex)];
539
+ model.sheet.rowMeta[rowId] ??= {};
540
+ model.sheet.rowMeta[rowId].size = size;
541
+ } else {
542
+ const columnId = model.sheet.columns[parseInt(numericIndex)];
543
+ model.sheet.columnMeta[columnId] ??= {};
544
+ model.sheet.columnMeta[columnId].size = size;
545
+ }
546
+ }, [
547
+ model
548
+ ]);
549
+ const handleSelect = useCallback4(({ minCol, maxCol, minRow, maxRow }) => {
550
+ const range = {
551
+ from: {
552
+ col: minCol,
553
+ row: minRow
554
+ }
555
+ };
556
+ if (minCol !== maxCol || minRow !== maxRow) {
557
+ range.to = {
558
+ col: maxCol,
559
+ row: maxRow
560
+ };
561
+ }
562
+ if (editing) {
563
+ rangeController.current?.setRange(rangeToA1Notation2(range));
564
+ } else {
565
+ setRange(range.to ? range : void 0);
566
+ }
567
+ }, [
568
+ editing
569
+ ]);
570
+ const handleWheel = useCallback4((event) => {
571
+ if (!ignoreAttention && !hasAttention) {
572
+ event.stopPropagation();
573
+ }
574
+ }, [
575
+ hasAttention,
576
+ ignoreAttention
577
+ ]);
578
+ const selectEntireAxis = useCallback4((pos) => {
579
+ switch (pos.plane) {
580
+ case "frozenRowsStart":
581
+ return dxGrid?.setSelection({
582
+ start: {
583
+ col: pos.col,
584
+ row: 0,
585
+ plane: "grid"
586
+ },
587
+ end: {
588
+ col: pos.col,
589
+ row: model.sheet.rows.length - 1,
590
+ plane: "grid"
591
+ }
592
+ });
593
+ case "frozenColsStart":
594
+ return dxGrid?.setSelection({
595
+ start: {
596
+ row: pos.row,
597
+ col: 0,
598
+ plane: "grid"
599
+ },
600
+ end: {
601
+ row: pos.row,
602
+ col: model.sheet.columns.length - 1,
603
+ plane: "grid"
604
+ }
605
+ });
606
+ }
607
+ }, [
608
+ dxGrid,
609
+ model.sheet
610
+ ]);
611
+ const handleClick = useCallback4((event) => {
612
+ const cell = closestCell(event.target);
613
+ if (cell) {
614
+ selectEntireAxis(cell);
615
+ }
616
+ }, [
617
+ selectEntireAxis
618
+ ]);
619
+ const handleKeyDown = useCallback4((event) => {
620
+ switch (event.key) {
621
+ case "Backspace":
622
+ case "Delete":
623
+ event.preventDefault();
624
+ return cursorFallbackRange && model.clear(cursorFallbackRange);
625
+ case "Enter":
626
+ case "Space":
627
+ if (dxGrid && extraplanarFocus) {
628
+ switch (extraplanarFocus.plane) {
629
+ case "frozenRowsStart":
630
+ case "frozenColsStart":
631
+ event.preventDefault();
632
+ return selectEntireAxis(extraplanarFocus);
633
+ }
634
+ }
635
+ }
636
+ if (event.metaKey || event.ctrlKey) {
637
+ switch (event.key) {
638
+ case "x":
639
+ case "X":
640
+ event.preventDefault();
641
+ return cursorFallbackRange && model.cut(cursorFallbackRange);
642
+ case "c":
643
+ case "C":
644
+ event.preventDefault();
645
+ return cursorFallbackRange && model.copy(cursorFallbackRange);
646
+ case "v":
647
+ case "V":
648
+ event.preventDefault();
649
+ return cursor && model.paste(cursor);
650
+ case "z":
651
+ event.preventDefault();
652
+ return event.shiftKey ? model.redo() : model.undo();
653
+ case "Z":
654
+ case "y":
655
+ event.preventDefault();
656
+ return model.redo();
657
+ }
658
+ }
659
+ }, [
660
+ cursorFallbackRange,
661
+ model,
662
+ cursor,
663
+ extraplanarFocus,
664
+ selectEntireAxis
665
+ ]);
666
+ const contextMenuAnchorRef = useRef(null);
667
+ const [contextMenuOpen, setContextMenuOpen] = useState3(null);
668
+ const contextMenuAxis = contextMenuOpen?.plane.startsWith("frozenRows") ? "col" : "row";
669
+ const handleContextMenu = useCallback4((event) => {
670
+ const cell = closestCell(event.target);
671
+ if (cell && cell.plane.startsWith("frozen")) {
672
+ event.preventDefault();
673
+ contextMenuAnchorRef.current = event.target;
674
+ setContextMenuOpen(cell);
675
+ }
676
+ }, []);
677
+ const handleAxisMenuAction = useCallback4((operation) => {
678
+ switch (operation) {
679
+ case "insert-before":
680
+ case "insert-after":
681
+ return dispatch(createIntent2(SheetAction.InsertAxis, {
682
+ model,
683
+ axis: contextMenuAxis,
684
+ index: contextMenuOpen[contextMenuAxis] + (operation === "insert-before" ? 0 : 1)
685
+ }));
686
+ case "drop":
687
+ return dispatch(createIntent2(SheetAction.DropAxis, {
688
+ model,
689
+ axis: contextMenuAxis,
690
+ axisIndex: model.sheet[contextMenuAxis === "row" ? "rows" : "columns"][contextMenuOpen[contextMenuAxis]]
691
+ }));
692
+ }
693
+ }, [
694
+ contextMenuAxis,
695
+ contextMenuOpen,
696
+ model,
697
+ dispatch
698
+ ]);
699
+ const { columns, rows } = useSheetModelDxGridProps(dxGrid, model);
700
+ const extension = useMemo2(() => [
701
+ editorKeys({
702
+ onClose: handleClose,
703
+ ...editing?.initialContent && {
704
+ onNav: handleClose
705
+ }
706
+ }),
707
+ sheetExtension({
708
+ functions: model.graph.getFunctions()
709
+ }),
710
+ rangeExtension({
711
+ onInit: (fn) => rangeController.current = fn,
712
+ onStateChange: (state) => {
713
+ if (dxGrid) {
714
+ dxGrid.mode = typeof state.activeRange === "undefined" ? "edit" : "edit-select";
715
+ }
716
+ }
717
+ })
718
+ ], [
719
+ model,
720
+ handleClose,
721
+ editing
722
+ ]);
723
+ const getCellContent = useCallback4((index) => {
724
+ return model.getCellText(parseCellIndex(index));
725
+ }, [
726
+ model
727
+ ]);
728
+ useUpdateFocusedCellOnThreadSelection(dxGrid);
729
+ useSelectThreadOnCellFocus();
730
+ return /* @__PURE__ */ React4.createElement("div", {
731
+ role: "none",
732
+ className: "relative min-bs-0"
733
+ }, /* @__PURE__ */ React4.createElement(GridCellEditor, {
734
+ getCellContent,
735
+ extension,
736
+ onBlur: handleBlur
737
+ }), /* @__PURE__ */ React4.createElement(Grid2.Content, {
738
+ initialCells,
739
+ limitColumns: DEFAULT_COLS,
740
+ limitRows: DEFAULT_ROWS,
741
+ columns,
742
+ rows,
743
+ onAxisResize: handleAxisResize,
744
+ onSelect: handleSelect,
745
+ rowDefault: sheetRowDefault,
746
+ columnDefault: sheetColDefault,
747
+ frozen,
748
+ onFocus: handleFocus,
749
+ onWheelCapture: handleWheel,
750
+ onKeyDown: handleKeyDown,
751
+ onContextMenu: handleContextMenu,
752
+ onClick: handleClick,
753
+ overscroll: "trap",
754
+ className: "[--dx-grid-base:var(--surface-bg)] [&_.dx-grid]:border-bs [&_.dx-grid]:absolute [&_.dx-grid]:inset-0 [&_.dx-grid]:border-separator",
755
+ activeRefs,
756
+ ref: setDxGrid
757
+ }), /* @__PURE__ */ React4.createElement(DropdownMenu.Root, {
758
+ modal: false,
759
+ open: !!contextMenuOpen,
760
+ onOpenChange: (nextOpen) => setContextMenuOpen(nextOpen ? inertPosition : null)
761
+ }, /* @__PURE__ */ React4.createElement(DropdownMenu.VirtualTrigger, {
762
+ virtualRef: contextMenuAnchorRef
763
+ }), /* @__PURE__ */ React4.createElement(DropdownMenu.Content, {
764
+ side: contextMenuAxis === "col" ? "bottom" : "right",
765
+ sideOffset: 4,
766
+ collisionPadding: 8
767
+ }, /* @__PURE__ */ React4.createElement(DropdownMenu.Viewport, null, /* @__PURE__ */ React4.createElement(DropdownMenu.Item, {
768
+ onClick: () => handleAxisMenuAction("insert-before"),
769
+ "data-testid": `grid.${contextMenuAxis}.insert-before`
770
+ }, /* @__PURE__ */ React4.createElement(Icon, {
771
+ size: 5,
772
+ icon: contextMenuAxis === "col" ? "ph--columns-plus-left--regular" : "ph--rows-plus-top--regular"
773
+ }), /* @__PURE__ */ React4.createElement("span", null, t(`add ${contextMenuAxis} before label`))), /* @__PURE__ */ React4.createElement(DropdownMenu.Item, {
774
+ onClick: () => handleAxisMenuAction("insert-after"),
775
+ "data-testid": `grid.${contextMenuAxis}.insert-after`
776
+ }, /* @__PURE__ */ React4.createElement(Icon, {
777
+ size: 5,
778
+ icon: contextMenuAxis === "col" ? "ph--columns-plus-right--regular" : "ph--rows-plus-bottom--regular"
779
+ }), /* @__PURE__ */ React4.createElement("span", null, t(`add ${contextMenuAxis} after label`))), /* @__PURE__ */ React4.createElement(DropdownMenu.Item, {
780
+ onClick: () => handleAxisMenuAction("drop"),
781
+ "data-testid": `grid.${contextMenuAxis}.drop`
782
+ }, /* @__PURE__ */ React4.createElement(Icon, {
783
+ size: 5,
784
+ icon: "ph--backspace--regular"
785
+ }), /* @__PURE__ */ React4.createElement("span", null, t(`delete ${contextMenuAxis} label`)))), /* @__PURE__ */ React4.createElement(DropdownMenu.Arrow, null))));
786
+ };
787
+
788
+ // packages/plugins/plugin-sheet/src/components/index.ts
789
+ var SheetContainer = lazy(() => import("./SheetContainer-QEEFORIC.mjs"));
790
+
791
+ export {
792
+ ComputeGraphContextProvider,
793
+ useComputeGraph,
794
+ completeCellRangeToThreadCursor,
795
+ useSheetContext,
796
+ SheetProvider,
797
+ GridSheet,
798
+ RangeList,
799
+ SheetContainer
800
+ };
801
+ //# sourceMappingURL=chunk-OXD6RBFF.mjs.map