@dxos/plugin-sheet 0.6.14-main.7bd9c89 → 0.6.14-staging.3e2eaca

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 (232) hide show
  1. package/dist/lib/browser/{SheetContainer-AKWROARP.mjs → SheetContainer-P3NF5KEI.mjs} +90 -88
  2. package/dist/lib/browser/SheetContainer-P3NF5KEI.mjs.map +7 -0
  3. package/dist/lib/browser/{chunk-FGMFOW6U.mjs → chunk-4LKIURJA.mjs} +917 -817
  4. package/dist/lib/browser/chunk-4LKIURJA.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-BWN5DZWZ.mjs → chunk-BVUN7SHF.mjs} +6 -13
  6. package/dist/lib/browser/chunk-BVUN7SHF.mjs.map +7 -0
  7. package/dist/lib/browser/{chunk-D3QTX46O.mjs → chunk-RABELMEQ.mjs} +3 -2
  8. package/dist/lib/browser/{chunk-D3QTX46O.mjs.map → chunk-RABELMEQ.mjs.map} +3 -3
  9. package/dist/lib/browser/{chunk-GSV5QNLD.mjs → chunk-VMSX6Z4X.mjs} +297 -44
  10. package/dist/lib/browser/chunk-VMSX6Z4X.mjs.map +7 -0
  11. package/dist/lib/browser/{graph-M4IQ76QX.mjs → compute-graph-GGWUX644.mjs} +4 -2
  12. package/dist/lib/browser/index.mjs +91 -21
  13. package/dist/lib/browser/index.mjs.map +4 -4
  14. package/dist/lib/browser/meta.json +1 -1
  15. package/dist/lib/browser/meta.mjs +1 -1
  16. package/dist/lib/browser/types.mjs +2 -2
  17. package/dist/lib/node/{SheetContainer-N5IQGEFL.cjs → SheetContainer-MPFKXY26.cjs} +88 -93
  18. package/dist/lib/node/SheetContainer-MPFKXY26.cjs.map +7 -0
  19. package/dist/lib/node/{chunk-QIFIGEKV.cjs → chunk-2ZVZI2KJ.cjs} +6 -5
  20. package/dist/lib/node/{chunk-QIFIGEKV.cjs.map → chunk-2ZVZI2KJ.cjs.map} +3 -3
  21. package/dist/lib/node/{chunk-NZARD7UP.cjs → chunk-AWKOWDMI.cjs} +10 -17
  22. package/dist/lib/node/chunk-AWKOWDMI.cjs.map +7 -0
  23. package/dist/lib/node/{chunk-5XPK2V4A.cjs → chunk-O7XR4R7Y.cjs} +306 -42
  24. package/dist/lib/node/chunk-O7XR4R7Y.cjs.map +7 -0
  25. package/dist/lib/node/{chunk-53BMSUIK.cjs → chunk-OO24XJBV.cjs} +853 -767
  26. package/dist/lib/node/chunk-OO24XJBV.cjs.map +7 -0
  27. package/dist/lib/node/{graph-Q3N2X26H.cjs → compute-graph-KGWA2QLE.cjs} +21 -19
  28. package/dist/lib/node/compute-graph-KGWA2QLE.cjs.map +7 -0
  29. package/dist/lib/node/index.cjs +109 -42
  30. package/dist/lib/node/index.cjs.map +4 -4
  31. package/dist/lib/node/meta.cjs +3 -3
  32. package/dist/lib/node/meta.cjs.map +1 -1
  33. package/dist/lib/node/meta.json +1 -1
  34. package/dist/lib/node/types.cjs +7 -7
  35. package/dist/lib/node/types.cjs.map +1 -1
  36. package/dist/lib/node-esm/{SheetContainer-46PBMF2E.mjs → SheetContainer-22IOAW3B.mjs} +90 -88
  37. package/dist/lib/node-esm/SheetContainer-22IOAW3B.mjs.map +7 -0
  38. package/dist/lib/node-esm/{chunk-VCYJWE3O.mjs → chunk-BM2Q3FFC.mjs} +3 -2
  39. package/dist/lib/node-esm/{chunk-VCYJWE3O.mjs.map → chunk-BM2Q3FFC.mjs.map} +3 -3
  40. package/dist/lib/node-esm/{chunk-T3PRH7QS.mjs → chunk-BW36PM2Y.mjs} +917 -817
  41. package/dist/lib/node-esm/chunk-BW36PM2Y.mjs.map +7 -0
  42. package/dist/lib/node-esm/{chunk-5WPZCXNS.mjs → chunk-CR4K75EL.mjs} +296 -44
  43. package/dist/lib/node-esm/chunk-CR4K75EL.mjs.map +7 -0
  44. package/dist/lib/node-esm/{chunk-WFDTY3IC.mjs → chunk-UIBWRHW7.mjs} +6 -13
  45. package/dist/lib/node-esm/chunk-UIBWRHW7.mjs.map +7 -0
  46. package/dist/lib/node-esm/{graph-SMPUMOV2.mjs → compute-graph-2SCZT7N5.mjs} +4 -2
  47. package/dist/lib/node-esm/index.mjs +91 -21
  48. package/dist/lib/node-esm/index.mjs.map +4 -4
  49. package/dist/lib/node-esm/meta.json +1 -1
  50. package/dist/lib/node-esm/meta.mjs +1 -1
  51. package/dist/lib/node-esm/types.mjs +2 -2
  52. package/dist/types/src/SheetPlugin.d.ts.map +1 -1
  53. package/dist/types/src/components/ComputeGraph/ComputeGraphContextProvider.d.ts +3 -1
  54. package/dist/types/src/components/ComputeGraph/ComputeGraphContextProvider.d.ts.map +1 -1
  55. package/dist/types/src/components/FunctionEditor/FunctionEditor.d.ts.map +1 -1
  56. package/dist/types/src/components/GridSheet/GridSheet.d.ts.map +1 -1
  57. package/dist/types/src/components/GridSheet/GridSheet.stories.d.ts.map +1 -1
  58. package/dist/types/src/components/GridSheet/util.d.ts +2 -2
  59. package/dist/types/src/components/GridSheet/util.d.ts.map +1 -1
  60. package/dist/types/src/components/RangeList/RangeList.d.ts +7 -0
  61. package/dist/types/src/components/RangeList/RangeList.d.ts.map +1 -0
  62. package/dist/types/src/components/RangeList/index.d.ts +2 -0
  63. package/dist/types/src/components/RangeList/index.d.ts.map +1 -0
  64. package/dist/types/src/components/SheetContainer/SheetContainer.d.ts +6 -3
  65. package/dist/types/src/components/SheetContainer/SheetContainer.d.ts.map +1 -1
  66. package/dist/types/src/components/SheetContainer/SheetContainer.stories.d.ts.map +1 -1
  67. package/dist/types/src/components/SheetContext/SheetContext.d.ts +7 -5
  68. package/dist/types/src/components/SheetContext/SheetContext.d.ts.map +1 -1
  69. package/dist/types/src/components/Toolbar/Toolbar.d.ts +6 -3
  70. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -1
  71. package/dist/types/src/components/index.d.ts +5 -2
  72. package/dist/types/src/components/index.d.ts.map +1 -1
  73. package/dist/types/src/compute-graph/compute-graph-registry.d.ts.map +1 -0
  74. package/dist/types/src/{graph → compute-graph}/compute-graph.d.ts +3 -3
  75. package/dist/types/src/compute-graph/compute-graph.d.ts.map +1 -0
  76. package/dist/types/src/compute-graph/compute-graph.stories.d.ts.map +1 -0
  77. package/dist/types/src/compute-graph/compute-graph.test.d.ts.map +1 -0
  78. package/dist/types/src/compute-graph/compute-node.d.ts.map +1 -0
  79. package/dist/types/src/compute-graph/functions/async-function.d.ts.map +1 -0
  80. package/dist/types/src/compute-graph/functions/edge-function.d.ts.map +1 -0
  81. package/dist/types/src/compute-graph/functions/function-defs.d.ts.map +1 -0
  82. package/dist/types/src/compute-graph/functions/index.d.ts.map +1 -0
  83. package/dist/types/src/compute-graph/hyperformula.test.d.ts.map +1 -0
  84. package/dist/types/src/compute-graph/index.d.ts.map +1 -0
  85. package/dist/types/src/compute-graph/testing/index.d.ts.map +1 -0
  86. package/dist/types/src/compute-graph/testing/test-builder.d.ts.map +1 -0
  87. package/dist/types/src/compute-graph/testing/test-plugin.d.ts.map +1 -0
  88. package/dist/types/src/compute-graph/util.d.ts.map +1 -0
  89. package/dist/types/src/defs/index.d.ts +1 -1
  90. package/dist/types/src/defs/index.d.ts.map +1 -1
  91. package/dist/types/src/defs/sheet-range-types.d.ts +2 -2
  92. package/dist/types/src/defs/sheet-range-types.d.ts.map +1 -1
  93. package/dist/types/src/defs/types.d.ts +6 -0
  94. package/dist/types/src/defs/types.d.ts.map +1 -1
  95. package/dist/types/src/defs/util.d.ts +3 -7
  96. package/dist/types/src/defs/util.d.ts.map +1 -1
  97. package/dist/types/src/extensions/compute.d.ts +1 -1
  98. package/dist/types/src/extensions/compute.d.ts.map +1 -1
  99. package/dist/types/src/extensions/editor/extension.d.ts +23 -3
  100. package/dist/types/src/extensions/editor/extension.d.ts.map +1 -1
  101. package/dist/types/src/index.d.ts +1 -1
  102. package/dist/types/src/index.d.ts.map +1 -1
  103. package/dist/types/src/integrations/index.d.ts +2 -0
  104. package/dist/types/src/integrations/index.d.ts.map +1 -0
  105. package/dist/types/src/integrations/thread-ranges.d.ts +7 -0
  106. package/dist/types/src/integrations/thread-ranges.d.ts.map +1 -0
  107. package/dist/types/src/meta.d.ts +1 -0
  108. package/dist/types/src/meta.d.ts.map +1 -1
  109. package/dist/types/src/model/index.d.ts +1 -1
  110. package/dist/types/src/model/index.d.ts.map +1 -1
  111. package/dist/types/src/model/sheet-model.d.ts +13 -6
  112. package/dist/types/src/model/sheet-model.d.ts.map +1 -1
  113. package/dist/types/src/{hooks → model}/useSheetModel.d.ts +1 -1
  114. package/dist/types/src/model/useSheetModel.d.ts.map +1 -0
  115. package/dist/types/src/serializer.d.ts +4 -0
  116. package/dist/types/src/serializer.d.ts.map +1 -0
  117. package/dist/types/src/testing/testing.d.ts +1 -1
  118. package/dist/types/src/testing/testing.d.ts.map +1 -1
  119. package/dist/types/src/translations.d.ts +18 -3
  120. package/dist/types/src/translations.d.ts.map +1 -1
  121. package/dist/types/src/types.d.ts +37 -33
  122. package/dist/types/src/types.d.ts.map +1 -1
  123. package/package.json +44 -50
  124. package/src/SheetPlugin.tsx +45 -12
  125. package/src/components/ComputeGraph/ComputeGraphContextProvider.tsx +19 -2
  126. package/src/components/FunctionEditor/FunctionEditor.tsx +6 -10
  127. package/src/components/GridSheet/GridSheet.stories.tsx +3 -1
  128. package/src/components/GridSheet/GridSheet.tsx +196 -36
  129. package/src/components/GridSheet/SheetCellEditor.stories.tsx +1 -1
  130. package/src/components/GridSheet/util.ts +41 -21
  131. package/src/components/RangeList/RangeList.tsx +53 -0
  132. package/src/components/RangeList/index.ts +5 -0
  133. package/src/components/SheetContainer/SheetContainer.stories.tsx +5 -3
  134. package/src/components/SheetContainer/SheetContainer.tsx +19 -12
  135. package/src/components/SheetContext/SheetContext.tsx +43 -20
  136. package/src/components/Toolbar/Toolbar.tsx +98 -86
  137. package/src/components/index.ts +1 -0
  138. package/src/{graph → compute-graph}/compute-graph.stories.tsx +2 -1
  139. package/src/{graph → compute-graph}/compute-graph.ts +27 -9
  140. package/src/{graph → compute-graph}/compute-node.ts +2 -3
  141. package/src/{graph → compute-graph}/functions/async-function.ts +1 -0
  142. package/src/{graph → compute-graph}/functions/edge-function.ts +5 -3
  143. package/src/defs/index.ts +1 -1
  144. package/src/defs/sheet-range-types.ts +9 -6
  145. package/src/defs/types.ts +6 -1
  146. package/src/defs/util.ts +4 -19
  147. package/src/extensions/compute.stories.tsx +2 -2
  148. package/src/extensions/compute.ts +2 -2
  149. package/src/extensions/editor/extension.test.ts +1 -1
  150. package/src/extensions/editor/extension.ts +48 -23
  151. package/src/index.ts +2 -2
  152. package/src/integrations/index.ts +5 -0
  153. package/src/integrations/thread-ranges.ts +101 -0
  154. package/src/meta.ts +1 -0
  155. package/src/model/index.ts +1 -1
  156. package/src/model/sheet-model.test.ts +6 -4
  157. package/src/model/sheet-model.ts +103 -26
  158. package/src/{hooks → model}/useSheetModel.ts +1 -1
  159. package/src/serializer.ts +27 -0
  160. package/src/testing/testing.tsx +1 -1
  161. package/src/translations.ts +18 -3
  162. package/src/types.ts +24 -2
  163. package/dist/lib/browser/SheetContainer-AKWROARP.mjs.map +0 -7
  164. package/dist/lib/browser/chunk-BWN5DZWZ.mjs.map +0 -7
  165. package/dist/lib/browser/chunk-FGMFOW6U.mjs.map +0 -7
  166. package/dist/lib/browser/chunk-GSV5QNLD.mjs.map +0 -7
  167. package/dist/lib/node/SheetContainer-N5IQGEFL.cjs.map +0 -7
  168. package/dist/lib/node/chunk-53BMSUIK.cjs.map +0 -7
  169. package/dist/lib/node/chunk-5XPK2V4A.cjs.map +0 -7
  170. package/dist/lib/node/chunk-NZARD7UP.cjs.map +0 -7
  171. package/dist/lib/node/graph-Q3N2X26H.cjs.map +0 -7
  172. package/dist/lib/node-esm/SheetContainer-46PBMF2E.mjs.map +0 -7
  173. package/dist/lib/node-esm/chunk-5WPZCXNS.mjs.map +0 -7
  174. package/dist/lib/node-esm/chunk-T3PRH7QS.mjs.map +0 -7
  175. package/dist/lib/node-esm/chunk-WFDTY3IC.mjs.map +0 -7
  176. package/dist/types/src/graph/compute-graph-registry.d.ts.map +0 -1
  177. package/dist/types/src/graph/compute-graph.d.ts.map +0 -1
  178. package/dist/types/src/graph/compute-graph.stories.d.ts.map +0 -1
  179. package/dist/types/src/graph/compute-graph.test.d.ts.map +0 -1
  180. package/dist/types/src/graph/compute-node.d.ts.map +0 -1
  181. package/dist/types/src/graph/functions/async-function.d.ts.map +0 -1
  182. package/dist/types/src/graph/functions/edge-function.d.ts.map +0 -1
  183. package/dist/types/src/graph/functions/function-defs.d.ts.map +0 -1
  184. package/dist/types/src/graph/functions/index.d.ts.map +0 -1
  185. package/dist/types/src/graph/hyperformula.test.d.ts.map +0 -1
  186. package/dist/types/src/graph/index.d.ts.map +0 -1
  187. package/dist/types/src/graph/testing/index.d.ts.map +0 -1
  188. package/dist/types/src/graph/testing/test-builder.d.ts.map +0 -1
  189. package/dist/types/src/graph/testing/test-plugin.d.ts.map +0 -1
  190. package/dist/types/src/graph/util.d.ts.map +0 -1
  191. package/dist/types/src/hooks/hooks.stories.d.ts +0 -6
  192. package/dist/types/src/hooks/hooks.stories.d.ts.map +0 -1
  193. package/dist/types/src/hooks/index.d.ts +0 -4
  194. package/dist/types/src/hooks/index.d.ts.map +0 -1
  195. package/dist/types/src/hooks/threads.d.ts +0 -8
  196. package/dist/types/src/hooks/threads.d.ts.map +0 -1
  197. package/dist/types/src/hooks/useComputeGraph.d.ts +0 -7
  198. package/dist/types/src/hooks/useComputeGraph.d.ts.map +0 -1
  199. package/dist/types/src/hooks/useSheetModel.d.ts.map +0 -1
  200. package/dist/types/src/model/decorations.d.ts +0 -26
  201. package/dist/types/src/model/decorations.d.ts.map +0 -1
  202. package/src/hooks/hooks.stories.tsx +0 -53
  203. package/src/hooks/index.ts +0 -7
  204. package/src/hooks/threads.ts +0 -147
  205. package/src/hooks/useComputeGraph.ts +0 -28
  206. package/src/model/decorations.ts +0 -66
  207. /package/dist/lib/browser/{graph-M4IQ76QX.mjs.map → compute-graph-GGWUX644.mjs.map} +0 -0
  208. /package/dist/lib/node-esm/{graph-SMPUMOV2.mjs.map → compute-graph-2SCZT7N5.mjs.map} +0 -0
  209. /package/dist/types/src/{graph → compute-graph}/compute-graph-registry.d.ts +0 -0
  210. /package/dist/types/src/{graph → compute-graph}/compute-graph.stories.d.ts +0 -0
  211. /package/dist/types/src/{graph → compute-graph}/compute-graph.test.d.ts +0 -0
  212. /package/dist/types/src/{graph → compute-graph}/compute-node.d.ts +0 -0
  213. /package/dist/types/src/{graph → compute-graph}/functions/async-function.d.ts +0 -0
  214. /package/dist/types/src/{graph → compute-graph}/functions/edge-function.d.ts +0 -0
  215. /package/dist/types/src/{graph → compute-graph}/functions/function-defs.d.ts +0 -0
  216. /package/dist/types/src/{graph → compute-graph}/functions/index.d.ts +0 -0
  217. /package/dist/types/src/{graph → compute-graph}/hyperformula.test.d.ts +0 -0
  218. /package/dist/types/src/{graph → compute-graph}/index.d.ts +0 -0
  219. /package/dist/types/src/{graph → compute-graph}/testing/index.d.ts +0 -0
  220. /package/dist/types/src/{graph → compute-graph}/testing/test-builder.d.ts +0 -0
  221. /package/dist/types/src/{graph → compute-graph}/testing/test-plugin.d.ts +0 -0
  222. /package/dist/types/src/{graph → compute-graph}/util.d.ts +0 -0
  223. /package/src/{graph → compute-graph}/compute-graph-registry.ts +0 -0
  224. /package/src/{graph → compute-graph}/compute-graph.test.ts +0 -0
  225. /package/src/{graph → compute-graph}/functions/function-defs.ts +0 -0
  226. /package/src/{graph → compute-graph}/functions/index.ts +0 -0
  227. /package/src/{graph → compute-graph}/hyperformula.test.ts +0 -0
  228. /package/src/{graph → compute-graph}/index.ts +0 -0
  229. /package/src/{graph → compute-graph}/testing/index.ts +0 -0
  230. /package/src/{graph → compute-graph}/testing/test-builder.ts +0 -0
  231. /package/src/{graph → compute-graph}/testing/test-plugin.ts +0 -0
  232. /package/src/{graph → compute-graph}/util.ts +0 -0
@@ -1,6 +1,6 @@
1
1
  import { type Decorator } from '@storybook/react';
2
2
  import { type Space } from '@dxos/react-client/echo';
3
- import { type ComputeGraph, type ComputeGraphOptions } from '../graph';
3
+ import { type ComputeGraph, type ComputeGraphOptions } from '../compute-graph';
4
4
  import { type CellValue, type CreateSheetOptions } from '../types';
5
5
  export declare const createTestCells: () => Record<string, CellValue>;
6
6
  export declare const useTestSheet: (space?: Space, graph?: ComputeGraph, options?: CreateSheetOptions) => import("../types").SheetType | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../../../src/testing/testing.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGlD,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAKrD,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,mBAAmB,EAAwB,MAAM,UAAU,CAAC;AAC7F,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAInE,eAAO,MAAM,eAAe,QAAO,MAAM,CAAC,MAAM,EAAE,SAAS,CA0BzD,CAAC;AAEH,eAAO,MAAM,YAAY,WAAY,KAAK,UAAU,YAAY,YAAY,kBAAkB,6CAW7F,CAAC;AAEF,eAAO,MAAM,yBAAyB,aACzB,mBAAmB,KAAG,SAQhC,CAAC"}
1
+ {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../../../src/testing/testing.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGlD,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAIrD,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,mBAAmB,EAAwB,MAAM,kBAAkB,CAAC;AAErG,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAInE,eAAO,MAAM,eAAe,QAAO,MAAM,CAAC,MAAM,EAAE,SAAS,CA0BzD,CAAC;AAEH,eAAO,MAAM,YAAY,WAAY,KAAK,UAAU,YAAY,YAAY,kBAAkB,6CAW7F,CAAC;AAEF,eAAO,MAAM,yBAAyB,aACzB,mBAAmB,KAAG,SAQhC,CAAC"}
@@ -6,14 +6,29 @@ declare const _default: readonly [{
6
6
  readonly 'create sheet label': "Create sheet";
7
7
  readonly 'create sheet section label': "Create sheet";
8
8
  readonly 'cell placeholder': "Cell value...";
9
- readonly 'toolbar left label': "Align left";
10
- readonly 'toolbar left center': "Align center";
11
- readonly 'toolbar left right': "Align right";
9
+ readonly 'range key alignment label': "Align";
10
+ readonly 'range key style label': "Style";
11
+ readonly 'range value start label': "Align left";
12
+ readonly 'range value center label': "Align center";
13
+ readonly 'range value end label': "Align right";
14
+ readonly 'range value softwrap label': "Wrap text";
15
+ readonly 'range value highlight label': "Highlight";
16
+ readonly 'toolbar action label': "{{value}}";
12
17
  readonly 'selection overlaps existing comment label': "Selected cell already has a comment";
13
18
  readonly 'comment label': "Add comment";
14
19
  readonly 'comment ranges not supported label': "Commenting on ranges is not yet supported";
15
20
  readonly 'no cursor label': "Select a cell to comment";
16
21
  readonly 'open comment for sheet cell': "View comments for cell";
22
+ readonly 'add col before label': "Add column before";
23
+ readonly 'add col after label': "Add column after";
24
+ readonly 'delete col label': "Delete column";
25
+ readonly 'add row before label': "Add row before";
26
+ readonly 'add row after label': "Add row after";
27
+ readonly 'delete row label': "Delete row";
28
+ readonly 'range list heading': "Ranges";
29
+ readonly 'range title': "{{position}} — {{value}}";
30
+ readonly 'col dropped label': "Deleted a column";
31
+ readonly 'row dropped label': "Deleted a row";
17
32
  };
18
33
  };
19
34
  }];
@@ -1 +1 @@
1
- {"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../../../src/translations.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAMA,wBAoBW"}
1
+ {"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../../../src/translations.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,wBAmCW"}
@@ -1,11 +1,41 @@
1
- import type { GraphBuilderProvides, IntentResolverProvides, MetadataRecordsProvides, SurfaceProvides, TranslationsProvides } from '@dxos/app-framework';
1
+ import type { GraphBuilderProvides, IntentResolverProvides, MetadataRecordsProvides, SurfaceProvides, TranslationsProvides, IntentData } from '@dxos/app-framework';
2
2
  import { ref, S } from '@dxos/echo-schema';
3
3
  import { type SchemaProvides } from '@dxos/plugin-client';
4
4
  import { type MarkdownExtensionProvides } from '@dxos/plugin-markdown';
5
5
  import { type SpaceInitProvides } from '@dxos/plugin-space';
6
6
  import { type StackProvides } from '@dxos/plugin-stack';
7
+ import { type DxGridAxis } from '@dxos/react-ui-grid';
8
+ import { type SheetModel } from './model';
7
9
  export declare enum SheetAction {
8
- CREATE = "dxos.org/plugin/sheet/action/create"
10
+ CREATE = "dxos.org/plugin/sheet/action/create",
11
+ INSERT_AXIS = "dxos.org/plugin/sheet/action/axis-insert",
12
+ DROP_AXIS = "dxos.org/plugin/sheet/action/axis-drop"
13
+ }
14
+ export type RestoreAxis = {
15
+ axis: DxGridAxis;
16
+ axisIndex: string;
17
+ index: number;
18
+ axisMeta?: S.Schema.Type<typeof RowColumnMeta>;
19
+ values: CellScalarValue[];
20
+ };
21
+ export declare namespace SheetAction {
22
+ type Create = IntentData<{
23
+ sheet: SheetType;
24
+ }>;
25
+ type InsertAxis = IntentData<{
26
+ model: SheetModel;
27
+ axis: DxGridAxis;
28
+ index: number;
29
+ count?: number;
30
+ }>;
31
+ type DropAxis = IntentData<{
32
+ model: SheetModel;
33
+ axis: DxGridAxis;
34
+ axisIndex: string;
35
+ }>;
36
+ type DropAxisRestore = IntentData<RestoreAxis & {
37
+ model: SheetModel;
38
+ }>;
9
39
  }
10
40
  type ThreadProvides<T> = {
11
41
  thread: {
@@ -20,19 +50,11 @@ export declare const CellValue: S.Struct<{
20
50
  }>;
21
51
  export type CellValue = S.Schema.Type<typeof CellValue>;
22
52
  export declare const Range: S.Struct<{
23
- range: S.Struct<{
24
- from: S.Struct<{
25
- col: typeof S.Number;
26
- row: typeof S.Number;
27
- }>;
28
- to: S.Struct<{
29
- col: typeof S.Number;
30
- row: typeof S.Number;
31
- }>;
32
- }>;
53
+ range: typeof S.String;
33
54
  key: typeof S.String;
34
55
  value: typeof S.String;
35
56
  }>;
57
+ export type Range = S.Schema.Type<typeof Range>;
36
58
  export declare const RowColumnMeta: S.Struct<{
37
59
  size: S.optional<typeof S.Number>;
38
60
  }>;
@@ -56,18 +78,9 @@ declare const SheetType_base: import("@dxos/echo-schema").AbstractTypedObject<{
56
78
  };
57
79
  };
58
80
  ranges: {
59
- readonly value: string;
60
- readonly range: {
61
- readonly from: {
62
- readonly col: number;
63
- readonly row: number;
64
- };
65
- readonly to: {
66
- readonly col: number;
67
- readonly row: number;
68
- };
69
- };
70
81
  readonly key: string;
82
+ readonly value: string;
83
+ readonly range: string;
71
84
  }[];
72
85
  threads?: import("@dxos/echo-schema").Ref<{
73
86
  name?: string | undefined;
@@ -118,16 +131,7 @@ declare const SheetType_base: import("@dxos/echo-schema").AbstractTypedObject<{
118
131
  size: S.optional<typeof S.Number>;
119
132
  }>>>>;
120
133
  ranges: S.mutable<S.Array$<S.Struct<{
121
- range: S.Struct<{
122
- from: S.Struct<{
123
- col: typeof S.Number;
124
- row: typeof S.Number;
125
- }>;
126
- to: S.Struct<{
127
- col: typeof S.Number;
128
- row: typeof S.Number;
129
- }>;
130
- }>;
134
+ range: typeof S.String;
131
135
  key: typeof S.String;
132
136
  value: typeof S.String;
133
137
  }>>>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACvB,eAAe,EACf,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,GAAG,EAAE,CAAC,EAAe,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAMxD,oBAAY,WAAW;IACrB,MAAM,wCAA2B;CAClC;AAKD,KAAK,cAAc,CAAC,CAAC,IAAI;IACvB,MAAM,EAAE;QACN,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC;QAClC,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,KAAK,MAAM,CAAC;KAC9F,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,eAAe,GAC/C,sBAAsB,GACtB,oBAAoB,GACpB,yBAAyB,GACzB,uBAAuB,GACvB,oBAAoB,GACpB,cAAc,GACd,iBAAiB,GACjB,aAAa,GACb,cAAc,CAAC,SAAS,CAAC,CAAC;AAE5B,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAE/D,eAAO,MAAM,SAAS;;EAKpB,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,SAAS,CAAC,CAAC;AAGxD,eAAO,MAAM,KAAK;;;;;;;;;;;;;EAIhB,CAAC;AAGH,eAAO,MAAM,aAAa;;EAExB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAqCwN,CAAC;;oBAA8D,CAAC;uBAAyC,CAAC;wBAAwD,CAAC;;;;;;;;2BAAsP,CAAC;qBAAuC,CAAC;;iBAA8C,CAAC;sBAA4E,CAAC;;;mBAAwE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAvoB,CAAC;;oBAA8D,CAAC;uBAAyC,CAAC;wBAAwD,CAAC;;;;;;;;2BAAsP,CAAC;qBAAuC,CAAC;;iBAA8C,CAAC;sBAA4E,CAAC;;;mBAAwE,CAAC;;;;;;;;AAlCl2B,qBAAa,SAAU,SAAQ,cAuB7B;CAAG;AAEL,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CACnC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "name": "@dxos/plugin-sheet",
3
- "version": "0.6.14-main.7bd9c89",
3
+ "version": "0.6.14-staging.3e2eaca",
4
4
  "description": "Braneframe sketch plugin",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
7
7
  "license": "MIT",
8
8
  "author": "DXOS.org",
9
+ "sideEffects": true,
9
10
  "imports": {
10
11
  "#hyperformula": {
11
12
  "types": "hyperformula",
@@ -14,28 +15,19 @@
14
15
  },
15
16
  "exports": {
16
17
  ".": {
18
+ "types": "./dist/types/src/index.d.ts",
17
19
  "browser": "./dist/lib/browser/index.mjs",
18
- "node": {
19
- "require": "./dist/lib/node/index.cjs",
20
- "default": "./dist/lib/node-esm/index.mjs"
21
- },
22
- "types": "./dist/types/src/index.d.ts"
20
+ "node": "./dist/lib/node-esm/index.mjs"
23
21
  },
24
22
  "./meta": {
23
+ "types": "./dist/types/src/meta.d.ts",
25
24
  "browser": "./dist/lib/browser/meta.mjs",
26
- "node": {
27
- "require": "./dist/lib/node/meta.cjs",
28
- "default": "./dist/lib/node-esm/meta.mjs"
29
- },
30
- "types": "./dist/types/src/meta.d.ts"
25
+ "node": "./dist/lib/node-esm/meta.mjs"
31
26
  },
32
27
  "./types": {
28
+ "types": "./dist/types/src/types.d.ts",
33
29
  "browser": "./dist/lib/browser/types.mjs",
34
- "node": {
35
- "require": "./dist/lib/node/types.cjs",
36
- "default": "./dist/lib/node-esm/types.mjs"
37
- },
38
- "types": "./dist/types/src/types.d.ts"
30
+ "node": "./dist/lib/node-esm/types.mjs"
39
31
  }
40
32
  },
41
33
  "types": "dist/types/src/index.d.ts",
@@ -77,31 +69,33 @@
77
69
  "re-resizable": "^6.9.17",
78
70
  "react-markdown": "^8.0.5",
79
71
  "react-resize-detector": "^11.0.1",
80
- "@dxos/app-framework": "0.6.14-main.7bd9c89",
81
- "@dxos/async": "0.6.14-main.7bd9c89",
82
- "@dxos/client": "0.6.14-main.7bd9c89",
83
- "@dxos/context": "0.6.14-main.7bd9c89",
84
- "@dxos/debug": "0.6.14-main.7bd9c89",
85
- "@dxos/crypto": "0.6.14-main.7bd9c89",
86
- "@dxos/echo-schema": "0.6.14-main.7bd9c89",
87
- "@dxos/invariant": "0.6.14-main.7bd9c89",
88
- "@dxos/keys": "0.6.14-main.7bd9c89",
89
- "@dxos/plugin-attention": "0.6.14-main.7bd9c89",
90
- "@dxos/log": "0.6.14-main.7bd9c89",
91
- "@dxos/plugin-client": "0.6.14-main.7bd9c89",
92
- "@dxos/plugin-graph": "0.6.14-main.7bd9c89",
93
- "@dxos/plugin-markdown": "0.6.14-main.7bd9c89",
94
- "@dxos/plugin-script": "0.6.14-main.7bd9c89",
95
- "@dxos/plugin-stack": "0.6.14-main.7bd9c89",
96
- "@dxos/react-client": "0.6.14-main.7bd9c89",
97
- "@dxos/react-hooks": "0.6.14-main.7bd9c89",
98
- "@dxos/react-ui-attention": "0.6.14-main.7bd9c89",
99
- "@dxos/plugin-space": "0.6.14-main.7bd9c89",
100
- "@dxos/react-ui-editor": "0.6.14-main.7bd9c89",
101
- "@dxos/react-ui-data": "0.6.14-main.7bd9c89",
102
- "@dxos/react-ui-grid": "0.6.14-main.7bd9c89",
103
- "@dxos/schema": "0.6.14-main.7bd9c89",
104
- "@dxos/util": "0.6.14-main.7bd9c89"
72
+ "@dxos/app-framework": "0.6.14-staging.3e2eaca",
73
+ "@dxos/async": "0.6.14-staging.3e2eaca",
74
+ "@dxos/client": "0.6.14-staging.3e2eaca",
75
+ "@dxos/context": "0.6.14-staging.3e2eaca",
76
+ "@dxos/crypto": "0.6.14-staging.3e2eaca",
77
+ "@dxos/debug": "0.6.14-staging.3e2eaca",
78
+ "@dxos/echo-schema": "0.6.14-staging.3e2eaca",
79
+ "@dxos/invariant": "0.6.14-staging.3e2eaca",
80
+ "@dxos/keys": "0.6.14-staging.3e2eaca",
81
+ "@dxos/log": "0.6.14-staging.3e2eaca",
82
+ "@dxos/plugin-attention": "0.6.14-staging.3e2eaca",
83
+ "@dxos/plugin-client": "0.6.14-staging.3e2eaca",
84
+ "@dxos/plugin-graph": "0.6.14-staging.3e2eaca",
85
+ "@dxos/plugin-markdown": "0.6.14-staging.3e2eaca",
86
+ "@dxos/plugin-script": "0.6.14-staging.3e2eaca",
87
+ "@dxos/plugin-space": "0.6.14-staging.3e2eaca",
88
+ "@dxos/react-client": "0.6.14-staging.3e2eaca",
89
+ "@dxos/plugin-stack": "0.6.14-staging.3e2eaca",
90
+ "@dxos/react-hooks": "0.6.14-staging.3e2eaca",
91
+ "@dxos/react-ui-attention": "0.6.14-staging.3e2eaca",
92
+ "@dxos/react-ui-data": "0.6.14-staging.3e2eaca",
93
+ "@dxos/react-ui-editor": "0.6.14-staging.3e2eaca",
94
+ "@dxos/react-ui-grid": "0.6.14-staging.3e2eaca",
95
+ "@dxos/react-ui-stack": "0.6.14-staging.3e2eaca",
96
+ "@dxos/schema": "0.6.14-staging.3e2eaca",
97
+ "@dxos/react-ui-list": "0.6.14-staging.3e2eaca",
98
+ "@dxos/util": "0.6.14-staging.3e2eaca"
105
99
  },
106
100
  "devDependencies": {
107
101
  "@lezer/generator": "^1.7.1",
@@ -113,19 +107,19 @@
113
107
  "react": "~18.2.0",
114
108
  "react-dom": "~18.2.0",
115
109
  "vite": "5.4.7",
116
- "@dxos/echo-generator": "0.6.14-main.7bd9c89",
117
- "@dxos/react-ui": "0.6.14-main.7bd9c89",
118
- "@dxos/random": "0.6.14-main.7bd9c89",
119
- "@dxos/react-ui-theme": "0.6.14-main.7bd9c89",
120
- "@dxos/react-ui-syntax-highlighter": "0.6.14-main.7bd9c89",
121
- "@dxos/react-ui-types": "0.6.14-main.7bd9c89",
122
- "@dxos/storybook-utils": "0.6.14-main.7bd9c89"
110
+ "@dxos/echo-generator": "0.6.14-staging.3e2eaca",
111
+ "@dxos/react-ui": "0.6.14-staging.3e2eaca",
112
+ "@dxos/random": "0.6.14-staging.3e2eaca",
113
+ "@dxos/react-ui-syntax-highlighter": "0.6.14-staging.3e2eaca",
114
+ "@dxos/react-ui-theme": "0.6.14-staging.3e2eaca",
115
+ "@dxos/react-ui-types": "0.6.14-staging.3e2eaca",
116
+ "@dxos/storybook-utils": "0.6.14-staging.3e2eaca"
123
117
  },
124
118
  "peerDependencies": {
125
119
  "react": "~18.2.0",
126
120
  "react-dom": "~18.2.0",
127
- "@dxos/react-ui": "0.6.14-main.7bd9c89",
128
- "@dxos/react-ui-theme": "0.6.14-main.7bd9c89"
121
+ "@dxos/react-ui": "0.6.14-staging.3e2eaca",
122
+ "@dxos/react-ui-theme": "0.6.14-staging.3e2eaca"
129
123
  },
130
124
  "publishConfig": {
131
125
  "access": "public"
@@ -13,12 +13,12 @@ import { SpaceAction } from '@dxos/plugin-space';
13
13
  import { getSpace, isEchoObject } from '@dxos/react-client/echo';
14
14
  import { Icon } from '@dxos/react-ui';
15
15
 
16
- import { ComputeGraphContextProvider, SheetContainer } from './components';
16
+ import { ComputeGraphContextProvider, RangeList, SheetContainer } from './components';
17
+ import { type ComputeGraphRegistry } from './compute-graph';
17
18
  import { compareIndexPositions, createSheet } from './defs';
18
19
  import { computeGraphFacet } from './extensions';
19
- import { type ComputeGraphRegistry } from './graph';
20
- import { useComputeGraph } from './hooks';
21
20
  import meta, { SHEET_PLUGIN } from './meta';
21
+ import { serializer } from './serializer';
22
22
  import translations from './translations';
23
23
  import { SheetAction, SheetType, type SheetPluginProvides } from './types';
24
24
 
@@ -38,8 +38,8 @@ export const SheetPlugin = (): PluginDefinition<SheetPluginProvides> => {
38
38
  }
39
39
 
40
40
  // Async import removes direct dependency on hyperformula.
41
- const { ComputeGraphRegistry } = await import('./graph');
42
- computeGraphRegistry = new ComputeGraphRegistry({ remoteFunctionUrl });
41
+ const { defaultPlugins, ComputeGraphRegistry } = await import('./compute-graph');
42
+ computeGraphRegistry = new ComputeGraphRegistry({ plugins: defaultPlugins, remoteFunctionUrl });
43
43
  },
44
44
  provides: {
45
45
  context: ({ children }) => {
@@ -52,6 +52,7 @@ export const SheetPlugin = (): PluginDefinition<SheetPluginProvides> => {
52
52
  label: (object: any) => (object instanceof SheetType ? object.name : undefined),
53
53
  placeholder: ['sheet title placeholder', { ns: SHEET_PLUGIN }],
54
54
  icon: 'ph--grid-nine--regular',
55
+ serializer,
55
56
  },
56
57
  },
57
58
  },
@@ -143,14 +144,26 @@ export const SheetPlugin = (): PluginDefinition<SheetPluginProvides> => {
143
144
  surface: {
144
145
  component: ({ data, role }) => {
145
146
  const space = isEchoObject(data.object) ? getSpace(data.object) : undefined;
146
- const graph = useComputeGraph(space);
147
- if (graph && data.object instanceof SheetType) {
148
- switch (role) {
149
- case 'article':
150
- case 'section': {
151
- return <SheetContainer graph={graph} sheet={data.object} role={role} />;
147
+ if (!space) {
148
+ return null;
149
+ }
150
+
151
+ switch (role) {
152
+ case 'article':
153
+ case 'section':
154
+ if (data.object instanceof SheetType) {
155
+ return <SheetContainer space={space} sheet={data.object} role={role} />;
152
156
  }
153
- }
157
+
158
+ return null;
159
+ case 'complementary--settings':
160
+ if (data.subject instanceof SheetType) {
161
+ return {
162
+ node: <RangeList sheet={data.subject} />,
163
+ };
164
+ }
165
+
166
+ return null;
154
167
  }
155
168
 
156
169
  return null;
@@ -162,6 +175,26 @@ export const SheetPlugin = (): PluginDefinition<SheetPluginProvides> => {
162
175
  case SheetAction.CREATE: {
163
176
  return { data: createSheet() };
164
177
  }
178
+ case SheetAction.INSERT_AXIS: {
179
+ const { model, axis, index, count } = intent.data as SheetAction.InsertAxis;
180
+ const _indices = model[axis === 'col' ? 'insertColumns' : 'insertRows'](index, count);
181
+ return;
182
+ }
183
+ case SheetAction.DROP_AXIS: {
184
+ if (!intent.undo) {
185
+ const { model, axis, axisIndex } = intent.data as SheetAction.DropAxis;
186
+ const undoData = model[axis === 'col' ? 'dropColumn' : 'dropRow'](axisIndex);
187
+ return {
188
+ undoable: {
189
+ message: translations[0]['en-US'][SHEET_PLUGIN][`${axis} dropped label`],
190
+ data: { ...undoData, model },
191
+ },
192
+ };
193
+ } else {
194
+ const { model, ...undoData } = intent.data as SheetAction.DropAxisRestore;
195
+ model[undoData.axis === 'col' ? 'restoreColumn' : 'restoreRow'](undoData);
196
+ }
197
+ }
165
198
  }
166
199
  },
167
200
  },
@@ -2,9 +2,13 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import React, { createContext, type PropsWithChildren } from 'react';
5
+ import React, { createContext, type PropsWithChildren, useContext } from 'react';
6
6
 
7
- import { type ComputeGraphRegistry } from '../../graph';
7
+ import { raise } from '@dxos/debug';
8
+ import { type Space } from '@dxos/react-client/echo';
9
+ import { useAsyncState } from '@dxos/react-hooks';
10
+
11
+ import { type ComputeGraph, type ComputeGraphRegistry } from '../../compute-graph';
8
12
 
9
13
  export type ComputeGraphContextType = {
10
14
  registry: ComputeGraphRegistry;
@@ -18,3 +22,16 @@ export const ComputeGraphContext = createContext<ComputeGraphContextType | undef
18
22
  export const ComputeGraphContextProvider = ({ registry, children }: PropsWithChildren<ComputeGraphContextType>) => {
19
23
  return <ComputeGraphContext.Provider value={{ registry }}>{children}</ComputeGraphContext.Provider>;
20
24
  };
25
+
26
+ export const useComputeGraph = (space?: Space): ComputeGraph | undefined => {
27
+ const { registry } = useContext(ComputeGraphContext) ?? raise(new Error('Missing ComputeGraphContext'));
28
+ const [graph] = useAsyncState(async () => {
29
+ if (space) {
30
+ const graph = registry.getOrCreateGraph(space);
31
+ await graph.open();
32
+ return graph;
33
+ }
34
+ }, [space, registry]);
35
+
36
+ return graph;
37
+ };
@@ -7,36 +7,32 @@ import React from 'react';
7
7
  import { Icon } from '@dxos/react-ui';
8
8
  import { mx } from '@dxos/react-ui-theme';
9
9
 
10
- import { addressToA1Notation, rangeToA1Notation } from '../../defs';
10
+ import { addressToA1Notation, isFormula, rangeToA1Notation } from '../../defs';
11
11
  import { useSheetContext } from '../SheetContext';
12
12
 
13
13
  export const FunctionEditor = () => {
14
14
  const { model, cursor, range } = useSheetContext();
15
15
 
16
16
  let value;
17
- let isFormula = false;
17
+ let formula = false;
18
18
  if (cursor) {
19
19
  value = model.getCellValue(cursor);
20
- if (typeof value === 'string' && value.charAt(0) === '=') {
20
+ if (isFormula(value)) {
21
21
  value = model.graph.mapFunctionBindingFromId(model.mapFormulaIndicesToRefs(value));
22
- isFormula = true;
22
+ formula = true;
23
23
  } else if (value != null) {
24
24
  value = String(value);
25
25
  }
26
26
  }
27
27
 
28
28
  return (
29
- <div
30
- className={mx(
31
- 'flex shrink-0 justify-between items-center px-4 py-1 text-sm border-bs !border-separator attention-surface',
32
- )}
33
- >
29
+ <div className={mx('flex shrink-0 justify-between items-center px-4 py-1 text-sm attention-surface')}>
34
30
  <div className='flex gap-4 items-center'>
35
31
  <div className='flex w-16 items-center font-mono'>
36
32
  {(range && rangeToA1Notation(range)) || (cursor && addressToA1Notation(cursor))}
37
33
  </div>
38
34
  <div className='flex gap-2 items-center'>
39
- <Icon icon='ph--function--regular' classNames={['text-greenText', isFormula ? 'visible' : 'invisible']} />
35
+ <Icon icon='ph--function--regular' classNames={['text-greenText', formula ? 'visible' : 'invisible']} />
40
36
  <span className='font-mono'>{value}</span>
41
37
  </div>
42
38
  </div>
@@ -10,9 +10,10 @@ import { withClientProvider } from '@dxos/react-client/testing';
10
10
  import { withTheme, withLayout } from '@dxos/storybook-utils';
11
11
 
12
12
  import { GridSheet } from './GridSheet';
13
- import { useComputeGraph } from '../../hooks';
14
13
  import { createTestCells, useTestSheet, withComputeGraphDecorator } from '../../testing';
14
+ import translations from '../../translations';
15
15
  import { SheetType } from '../../types';
16
+ import { useComputeGraph } from '../ComputeGraph';
16
17
  import { SheetProvider } from '../SheetContext';
17
18
 
18
19
  export const Basic = () => {
@@ -39,6 +40,7 @@ const meta: Meta = {
39
40
  withTheme,
40
41
  withLayout({ fullscreen: true, tooltips: true }),
41
42
  ],
43
+ parameters: { translations },
42
44
  };
43
45
 
44
46
  export default meta;