@dxos/plugin-sheet 0.8.4-main.f9ba587 → 0.8.4-staging.60fe92afc8

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