@dxos/plugin-sheet 0.8.3 → 0.8.4-main.1068cf700f

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