@dxos/plugin-sheet 0.7.4 → 0.7.5-labs.071a3e2

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