@dxos/plugin-sheet 0.8.4-main.c4373fc → 0.8.4-main.c85a9c8dae

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