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