@dxos/plugin-sheet 0.8.4-main.72ec0f3 → 0.8.4-main.7996785055

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