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