@dxos/plugin-sheet 0.8.4-main.dedc0f3 → 0.8.4-main.dfabb4ec29

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