@dxos/plugin-sheet 0.8.3 → 0.8.4-main.f9ba587

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 (119) hide show
  1. package/dist/lib/browser/{SheetContainer-BDZXBB5U.mjs → SheetContainer-6IWQKRJC.mjs} +14 -14
  2. package/dist/lib/browser/{anchor-sort-NYYZLRAA.mjs → anchor-sort-VHURGBOY.mjs} +4 -4
  3. package/dist/lib/browser/{chunk-D3G4UGEK.mjs → chunk-6AKBCBL4.mjs} +2 -2
  4. package/dist/lib/browser/{chunk-FJRLDX7Z.mjs → chunk-7HQX4NQP.mjs} +3 -3
  5. package/dist/lib/browser/{chunk-IR42IS3F.mjs → chunk-KJWZUQVA.mjs} +3 -3
  6. package/dist/lib/browser/{chunk-I7FZ4TWJ.mjs → chunk-SI4X5GUR.mjs} +11 -11
  7. package/dist/lib/browser/chunk-SI4X5GUR.mjs.map +7 -0
  8. package/dist/lib/browser/{chunk-5TA43LO4.mjs → chunk-ULWNSP4B.mjs} +15 -15
  9. package/dist/lib/browser/{compute-graph-registry-IXGGJJBU.mjs → compute-graph-registry-VG7VP7IV.mjs} +4 -4
  10. package/dist/lib/browser/index.mjs +17 -18
  11. package/dist/lib/browser/index.mjs.map +3 -3
  12. package/dist/lib/browser/{intent-resolver-IBBI6B74.mjs → intent-resolver-WOJGZMSV.mjs} +4 -4
  13. package/dist/lib/browser/{markdown-T4TUP4BF.mjs → markdown-VXMIPUQC.mjs} +5 -5
  14. package/dist/lib/browser/meta.json +1 -1
  15. package/dist/lib/browser/{react-surface-UI46P43F.mjs → react-surface-DAHMBIQW.mjs} +7 -7
  16. package/dist/lib/browser/types/index.mjs +2 -2
  17. package/dist/lib/node-esm/{SheetContainer-V632Q4HA.mjs → SheetContainer-SW55KKOT.mjs} +14 -14
  18. package/dist/lib/node-esm/{anchor-sort-JTNZOE67.mjs → anchor-sort-CTJGOPET.mjs} +4 -4
  19. package/dist/lib/node-esm/{chunk-Y6ND5HWX.mjs → chunk-3K5VNYOF.mjs} +2 -2
  20. package/dist/lib/node-esm/{chunk-IQ76YE6M.mjs → chunk-6SK5LJ5S.mjs} +3 -3
  21. package/dist/lib/node-esm/{chunk-C4IKYVTV.mjs → chunk-CADTJFAS.mjs} +11 -11
  22. package/dist/lib/node-esm/chunk-CADTJFAS.mjs.map +7 -0
  23. package/dist/lib/node-esm/{chunk-NMCVJWDT.mjs → chunk-Q6UYC4G5.mjs} +3 -3
  24. package/dist/lib/node-esm/{chunk-SOC52B67.mjs → chunk-VEGX32AT.mjs} +15 -15
  25. package/dist/lib/node-esm/{compute-graph-registry-7PDWXMHF.mjs → compute-graph-registry-3K3Q2A5T.mjs} +4 -4
  26. package/dist/lib/node-esm/index.mjs +17 -18
  27. package/dist/lib/node-esm/index.mjs.map +3 -3
  28. package/dist/lib/node-esm/{intent-resolver-M2HNR7PJ.mjs → intent-resolver-PZRXBNIJ.mjs} +4 -4
  29. package/dist/lib/node-esm/{markdown-WWUJ3E5F.mjs → markdown-4VPQJZNZ.mjs} +5 -5
  30. package/dist/lib/node-esm/meta.json +1 -1
  31. package/dist/lib/node-esm/{react-surface-OLXO2MVB.mjs → react-surface-Z7TVWQ4V.mjs} +7 -7
  32. package/dist/lib/node-esm/types/index.mjs +2 -2
  33. package/dist/types/src/components/ComputeGraph/compute-graph.stories.d.ts +1 -1
  34. package/dist/types/src/components/ComputeGraph/compute-graph.stories.d.ts.map +1 -1
  35. package/dist/types/src/components/GridSheet/GridSheet.stories.d.ts +1 -1
  36. package/dist/types/src/components/GridSheet/GridSheet.stories.d.ts.map +1 -1
  37. package/dist/types/src/components/GridSheet/SheetCellEditor.stories.d.ts +1 -1
  38. package/dist/types/src/components/GridSheet/SheetCellEditor.stories.d.ts.map +1 -1
  39. package/dist/types/src/components/SheetContainer/SheetContainer.stories.d.ts +1 -1
  40. package/dist/types/src/components/SheetContainer/SheetContainer.stories.d.ts.map +1 -1
  41. package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts +1 -1
  42. package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts.map +1 -1
  43. package/dist/types/src/extensions/compute.stories.d.ts +1 -1
  44. package/dist/types/src/extensions/compute.stories.d.ts.map +1 -1
  45. package/dist/types/src/playwright/playwright.config.d.ts +3 -0
  46. package/dist/types/src/playwright/playwright.config.d.ts.map +1 -0
  47. package/dist/types/src/playwright/sheet-manager.d.ts.map +1 -0
  48. package/dist/types/src/playwright/sheet.spec.d.ts.map +1 -0
  49. package/dist/types/src/translations.d.ts +5 -62
  50. package/dist/types/src/translations.d.ts.map +1 -1
  51. package/dist/types/src/types/schema.d.ts.map +1 -1
  52. package/dist/types/tsconfig.tsbuildinfo +1 -1
  53. package/package.json +52 -52
  54. package/src/SheetPlugin.tsx +1 -1
  55. package/src/components/ComputeGraph/compute-graph.stories.tsx +1 -1
  56. package/src/components/GridSheet/GridSheet.stories.tsx +2 -2
  57. package/src/components/GridSheet/SheetCellEditor.stories.tsx +1 -1
  58. package/src/components/SheetContainer/SheetContainer.stories.tsx +2 -2
  59. package/src/components/SheetToolbar/SheetToolbar.stories.tsx +2 -2
  60. package/src/extensions/compute.stories.tsx +1 -1
  61. package/src/playwright/playwright.config.ts +17 -0
  62. package/src/{testing/playwright → playwright}/sheet.spec.ts +1 -1
  63. package/src/translations.ts +6 -6
  64. package/src/types/schema.ts +1 -0
  65. package/dist/lib/browser/chunk-I7FZ4TWJ.mjs.map +0 -7
  66. package/dist/lib/node/SheetContainer-VWPM3HYJ.cjs +0 -351
  67. package/dist/lib/node/SheetContainer-VWPM3HYJ.cjs.map +0 -7
  68. package/dist/lib/node/anchor-sort-A7NABMJM.cjs +0 -39
  69. package/dist/lib/node/anchor-sort-A7NABMJM.cjs.map +0 -7
  70. package/dist/lib/node/chunk-FIM6EZ6M.cjs +0 -256
  71. package/dist/lib/node/chunk-FIM6EZ6M.cjs.map +0 -7
  72. package/dist/lib/node/chunk-JSIDCZHB.cjs +0 -41
  73. package/dist/lib/node/chunk-JSIDCZHB.cjs.map +0 -7
  74. package/dist/lib/node/chunk-LJWWS53Z.cjs +0 -34
  75. package/dist/lib/node/chunk-LJWWS53Z.cjs.map +0 -7
  76. package/dist/lib/node/chunk-N7FSEUIN.cjs +0 -927
  77. package/dist/lib/node/chunk-N7FSEUIN.cjs.map +0 -7
  78. package/dist/lib/node/chunk-ST3WA73J.cjs +0 -855
  79. package/dist/lib/node/chunk-ST3WA73J.cjs.map +0 -7
  80. package/dist/lib/node/compute-graph-registry-ARLDHPFW.cjs +0 -56
  81. package/dist/lib/node/compute-graph-registry-ARLDHPFW.cjs.map +0 -7
  82. package/dist/lib/node/index.cjs +0 -173
  83. package/dist/lib/node/index.cjs.map +0 -7
  84. package/dist/lib/node/intent-resolver-2657YDOU.cjs +0 -69
  85. package/dist/lib/node/intent-resolver-2657YDOU.cjs.map +0 -7
  86. package/dist/lib/node/markdown-DBPOAYI7.cjs +0 -40
  87. package/dist/lib/node/markdown-DBPOAYI7.cjs.map +0 -7
  88. package/dist/lib/node/meta.json +0 -1
  89. package/dist/lib/node/react-surface-XQEIRKWU.cjs +0 -71
  90. package/dist/lib/node/react-surface-XQEIRKWU.cjs.map +0 -7
  91. package/dist/lib/node/types/index.cjs +0 -84
  92. package/dist/lib/node/types/index.cjs.map +0 -7
  93. package/dist/lib/node-esm/chunk-C4IKYVTV.mjs.map +0 -7
  94. package/dist/types/src/testing/playwright/sheet-manager.d.ts.map +0 -1
  95. package/dist/types/src/testing/playwright/sheet.spec.d.ts.map +0 -1
  96. package/src/testing/playwright/playwright.config.cts +0 -18
  97. /package/dist/lib/browser/{SheetContainer-BDZXBB5U.mjs.map → SheetContainer-6IWQKRJC.mjs.map} +0 -0
  98. /package/dist/lib/browser/{anchor-sort-NYYZLRAA.mjs.map → anchor-sort-VHURGBOY.mjs.map} +0 -0
  99. /package/dist/lib/browser/{chunk-D3G4UGEK.mjs.map → chunk-6AKBCBL4.mjs.map} +0 -0
  100. /package/dist/lib/browser/{chunk-FJRLDX7Z.mjs.map → chunk-7HQX4NQP.mjs.map} +0 -0
  101. /package/dist/lib/browser/{chunk-IR42IS3F.mjs.map → chunk-KJWZUQVA.mjs.map} +0 -0
  102. /package/dist/lib/browser/{chunk-5TA43LO4.mjs.map → chunk-ULWNSP4B.mjs.map} +0 -0
  103. /package/dist/lib/browser/{compute-graph-registry-IXGGJJBU.mjs.map → compute-graph-registry-VG7VP7IV.mjs.map} +0 -0
  104. /package/dist/lib/browser/{intent-resolver-IBBI6B74.mjs.map → intent-resolver-WOJGZMSV.mjs.map} +0 -0
  105. /package/dist/lib/browser/{markdown-T4TUP4BF.mjs.map → markdown-VXMIPUQC.mjs.map} +0 -0
  106. /package/dist/lib/browser/{react-surface-UI46P43F.mjs.map → react-surface-DAHMBIQW.mjs.map} +0 -0
  107. /package/dist/lib/node-esm/{SheetContainer-V632Q4HA.mjs.map → SheetContainer-SW55KKOT.mjs.map} +0 -0
  108. /package/dist/lib/node-esm/{anchor-sort-JTNZOE67.mjs.map → anchor-sort-CTJGOPET.mjs.map} +0 -0
  109. /package/dist/lib/node-esm/{chunk-Y6ND5HWX.mjs.map → chunk-3K5VNYOF.mjs.map} +0 -0
  110. /package/dist/lib/node-esm/{chunk-IQ76YE6M.mjs.map → chunk-6SK5LJ5S.mjs.map} +0 -0
  111. /package/dist/lib/node-esm/{chunk-NMCVJWDT.mjs.map → chunk-Q6UYC4G5.mjs.map} +0 -0
  112. /package/dist/lib/node-esm/{chunk-SOC52B67.mjs.map → chunk-VEGX32AT.mjs.map} +0 -0
  113. /package/dist/lib/node-esm/{compute-graph-registry-7PDWXMHF.mjs.map → compute-graph-registry-3K3Q2A5T.mjs.map} +0 -0
  114. /package/dist/lib/node-esm/{intent-resolver-M2HNR7PJ.mjs.map → intent-resolver-PZRXBNIJ.mjs.map} +0 -0
  115. /package/dist/lib/node-esm/{markdown-WWUJ3E5F.mjs.map → markdown-4VPQJZNZ.mjs.map} +0 -0
  116. /package/dist/lib/node-esm/{react-surface-OLXO2MVB.mjs.map → react-surface-Z7TVWQ4V.mjs.map} +0 -0
  117. /package/dist/types/src/{testing/playwright → playwright}/sheet-manager.d.ts +0 -0
  118. /package/dist/types/src/{testing/playwright → playwright}/sheet.spec.d.ts +0 -0
  119. /package/src/{testing/playwright → playwright}/sheet-manager.ts +0 -0
@@ -3,25 +3,25 @@ import {
3
3
  SheetProvider,
4
4
  useComputeGraph,
5
5
  useSheetContext
6
- } from "./chunk-5TA43LO4.mjs";
6
+ } from "./chunk-ULWNSP4B.mjs";
7
7
  import {
8
8
  alignKey,
9
9
  mapFormulaIndicesToRefs,
10
10
  rangeFromIndex,
11
11
  rangeToIndex
12
- } from "./chunk-I7FZ4TWJ.mjs";
13
- import "./chunk-FJRLDX7Z.mjs";
12
+ } from "./chunk-SI4X5GUR.mjs";
13
+ import "./chunk-7HQX4NQP.mjs";
14
14
  import {
15
15
  SHEET_PLUGIN
16
- } from "./chunk-D3G4UGEK.mjs";
16
+ } from "./chunk-6AKBCBL4.mjs";
17
17
 
18
- // packages/plugins/plugin-sheet/src/components/SheetContainer/SheetContainer.tsx
18
+ // src/components/SheetContainer/SheetContainer.tsx
19
19
  import { useSignals as _useSignals4 } from "@preact-signals/safe-react/tracking";
20
20
  import React3 from "react";
21
21
  import { fullyQualifiedId } from "@dxos/react-client/echo";
22
22
  import { StackItem } from "@dxos/react-ui-stack";
23
23
 
24
- // packages/plugins/plugin-sheet/src/components/FunctionEditor/FunctionEditor.tsx
24
+ // src/components/FunctionEditor/FunctionEditor.tsx
25
25
  import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
26
26
  import React from "react";
27
27
  import { addressToA1Notation, isFormula, rangeToA1Notation } from "@dxos/compute";
@@ -63,14 +63,14 @@ var FunctionEditor = () => {
63
63
  }
64
64
  };
65
65
 
66
- // packages/plugins/plugin-sheet/src/components/SheetToolbar/SheetToolbar.tsx
66
+ // src/components/SheetToolbar/SheetToolbar.tsx
67
67
  import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
68
68
  import { Rx } from "@effect-rx/rx-react";
69
69
  import React2, { useMemo as useMemo2 } from "react";
70
70
  import { useAppGraph } from "@dxos/app-framework";
71
71
  import { createGapSeparator, MenuProvider, rxFromSignal, ToolbarMenu, useMenuActions } from "@dxos/react-ui-menu";
72
72
 
73
- // packages/plugins/plugin-sheet/src/components/SheetToolbar/align.ts
73
+ // src/components/SheetToolbar/align.ts
74
74
  import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
75
75
  import { useEffect } from "react";
76
76
  import { inRange } from "@dxos/compute";
@@ -161,7 +161,7 @@ var createAlign = (model, state, cursorFallbackRange) => {
161
161
  };
162
162
  };
163
163
 
164
- // packages/plugins/plugin-sheet/src/components/SheetToolbar/style.ts
164
+ // src/components/SheetToolbar/style.ts
165
165
  import { useEffect as useEffect2 } from "react";
166
166
  import { inRange as inRange2 } from "@dxos/compute";
167
167
  import { createMenuAction as createMenuAction2, createMenuItemGroup as createMenuItemGroup2 } from "@dxos/react-ui-menu";
@@ -245,14 +245,14 @@ var createStyle = (model, state, cursorFallbackRange) => {
245
245
  };
246
246
  };
247
247
 
248
- // packages/plugins/plugin-sheet/src/components/SheetToolbar/useToolbarState.ts
248
+ // src/components/SheetToolbar/useToolbarState.ts
249
249
  import { useMemo } from "react";
250
250
  import { live } from "@dxos/live-object";
251
251
  var useToolbarState = (initialState = {}) => {
252
252
  return useMemo(() => live(initialState), []);
253
253
  };
254
254
 
255
- // packages/plugins/plugin-sheet/src/components/SheetToolbar/SheetToolbar.tsx
255
+ // src/components/SheetToolbar/SheetToolbar.tsx
256
256
  var createToolbarActions = (model, state, cursorFallbackRange, customActions) => {
257
257
  return Rx.make((get) => {
258
258
  const align = get(rxFromSignal(() => createAlign(model, state, cursorFallbackRange)));
@@ -320,7 +320,7 @@ var SheetToolbar = ({ id, classNames }) => {
320
320
  }
321
321
  };
322
322
 
323
- // packages/plugins/plugin-sheet/src/components/SheetContainer/SheetContainer.tsx
323
+ // src/components/SheetContainer/SheetContainer.tsx
324
324
  var SheetContainer = ({ space, sheet, role, ignoreAttention }) => {
325
325
  var _effect = _useSignals4();
326
326
  try {
@@ -343,9 +343,9 @@ var SheetContainer = ({ space, sheet, role, ignoreAttention }) => {
343
343
  }
344
344
  };
345
345
 
346
- // packages/plugins/plugin-sheet/src/components/SheetContainer/index.ts
346
+ // src/components/SheetContainer/index.ts
347
347
  var SheetContainer_default = SheetContainer;
348
348
  export {
349
349
  SheetContainer_default as default
350
350
  };
351
- //# sourceMappingURL=SheetContainer-BDZXBB5U.mjs.map
351
+ //# sourceMappingURL=SheetContainer-6IWQKRJC.mjs.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  SheetType,
3
3
  compareIndexPositions
4
- } from "./chunk-I7FZ4TWJ.mjs";
5
- import "./chunk-D3G4UGEK.mjs";
4
+ } from "./chunk-SI4X5GUR.mjs";
5
+ import "./chunk-6AKBCBL4.mjs";
6
6
 
7
- // packages/plugins/plugin-sheet/src/capabilities/anchor-sort.ts
7
+ // src/capabilities/anchor-sort.ts
8
8
  import { Capabilities, contributes } from "@dxos/app-framework";
9
9
  import { Type } from "@dxos/echo";
10
10
  import { getTarget } from "@dxos/react-client/echo";
@@ -21,4 +21,4 @@ var anchor_sort_default = () => contributes(Capabilities.AnchorSort, {
21
21
  export {
22
22
  anchor_sort_default as default
23
23
  };
24
- //# sourceMappingURL=anchor-sort-NYYZLRAA.mjs.map
24
+ //# sourceMappingURL=anchor-sort-VHURGBOY.mjs.map
@@ -1,4 +1,4 @@
1
- // packages/plugins/plugin-sheet/src/meta.ts
1
+ // src/meta.ts
2
2
  var SHEET_PLUGIN = "dxos.org/plugin/sheet";
3
3
  var meta = {
4
4
  id: SHEET_PLUGIN,
@@ -15,4 +15,4 @@ export {
15
15
  SHEET_PLUGIN,
16
16
  meta
17
17
  };
18
- //# sourceMappingURL=chunk-D3G4UGEK.mjs.map
18
+ //# sourceMappingURL=chunk-6AKBCBL4.mjs.map
@@ -1,4 +1,4 @@
1
- // packages/plugins/plugin-sheet/src/extensions/compute.ts
1
+ // src/extensions/compute.ts
2
2
  import { syntaxTree } from "@codemirror/language";
3
3
  import { RangeSetBuilder, StateEffect, StateField } from "@codemirror/state";
4
4
  import { Decoration, EditorView, ViewPlugin, WidgetType } from "@codemirror/view";
@@ -9,7 +9,7 @@ import { documentId, singleValueFacet } from "@dxos/react-ui-editor";
9
9
  var updateAllDecorations = StateEffect.define();
10
10
  var computeGraphFacet = singleValueFacet();
11
11
 
12
- // packages/plugins/plugin-sheet/src/extensions/editor/extension.ts
12
+ // src/extensions/editor/extension.ts
13
13
  import { acceptCompletion, autocompletion, completionStatus, startCompletion } from "@codemirror/autocomplete";
14
14
  import { HighlightStyle, syntaxHighlighting } from "@codemirror/language";
15
15
  import { ViewPlugin as ViewPlugin2, keymap } from "@codemirror/view";
@@ -231,4 +231,4 @@ export {
231
231
  sheetExtension,
232
232
  rangeExtension
233
233
  };
234
- //# sourceMappingURL=chunk-FJRLDX7Z.mjs.map
234
+ //# sourceMappingURL=chunk-7HQX4NQP.mjs.map
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  SHEET_PLUGIN
3
- } from "./chunk-D3G4UGEK.mjs";
3
+ } from "./chunk-6AKBCBL4.mjs";
4
4
 
5
- // packages/plugins/plugin-sheet/src/capabilities/capabilities.ts
5
+ // src/capabilities/capabilities.ts
6
6
  import { defineCapability } from "@dxos/app-framework";
7
7
  (function(SheetCapabilities2) {
8
8
  SheetCapabilities2.ComputeGraphRegistry = defineCapability(`${SHEET_PLUGIN}/capability/compute-graph-registry`);
@@ -12,4 +12,4 @@ var SheetCapabilities;
12
12
  export {
13
13
  SheetCapabilities
14
14
  };
15
- //# sourceMappingURL=chunk-IR42IS3F.mjs.map
15
+ //# sourceMappingURL=chunk-KJWZUQVA.mjs.map
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  SHEET_PLUGIN
3
- } from "./chunk-D3G4UGEK.mjs";
3
+ } from "./chunk-6AKBCBL4.mjs";
4
4
 
5
- // packages/plugins/plugin-sheet/src/types/schema.ts
5
+ // src/types/schema.ts
6
6
  import { Schema } from "effect";
7
7
  import { Type } from "@dxos/echo";
8
8
  var CellValue = Schema.Struct({
@@ -47,7 +47,7 @@ var SheetType = Schema.Struct({
47
47
  version: "0.1.0"
48
48
  }));
49
49
 
50
- // packages/plugins/plugin-sheet/src/types/sheet-range-types.ts
50
+ // src/types/sheet-range-types.ts
51
51
  var alignKey = "alignment";
52
52
  var commentKey = "comment";
53
53
  var styleKey = "style";
@@ -80,10 +80,10 @@ var cellClassNameForRange = ({ key, value }) => {
80
80
  }
81
81
  };
82
82
 
83
- // packages/plugins/plugin-sheet/src/types/types.ts
83
+ // src/types/types.ts
84
84
  import { Schema as Schema2 } from "effect";
85
85
 
86
- // packages/plugins/plugin-sheet/src/model/sheet-model.ts
86
+ // src/model/sheet-model.ts
87
87
  import { Event } from "@dxos/async";
88
88
  import { addressFromA1Notation, addressToA1Notation, createSheetName, isFormula, DetailedCellError, ExportedCellChange } from "@dxos/compute";
89
89
  import { Resource } from "@dxos/context";
@@ -92,7 +92,7 @@ import { FormatEnum, TypeEnum } from "@dxos/echo-schema";
92
92
  import { invariant } from "@dxos/invariant";
93
93
  import { PublicKey } from "@dxos/keys";
94
94
  import { log } from "@dxos/log";
95
- var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-sheet/src/model/sheet-model.ts";
95
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-sheet/src/model/sheet-model.ts";
96
96
  var typeMap = {
97
97
  BOOLEAN: {
98
98
  type: TypeEnum.Boolean
@@ -653,7 +653,7 @@ var SheetModel = class extends Resource {
653
653
  }
654
654
  };
655
655
 
656
- // packages/plugins/plugin-sheet/src/model/useSheetModel.ts
656
+ // src/model/useSheetModel.ts
657
657
  import { useEffect, useState } from "react";
658
658
  var useSheetModel = (graph, sheet, { readonly } = {}) => {
659
659
  const [model, setModel] = useState();
@@ -681,7 +681,7 @@ var useSheetModel = (graph, sheet, { readonly } = {}) => {
681
681
  return model;
682
682
  };
683
683
 
684
- // packages/plugins/plugin-sheet/src/types/types.ts
684
+ // src/types/types.ts
685
685
  (function(SheetAction2) {
686
686
  const SHEET_ACTION = `${SHEET_PLUGIN}/action`;
687
687
  class Create extends Schema2.TaggedClass()(`${SHEET_ACTION}/create`, {
@@ -729,12 +729,12 @@ var useSheetModel = (graph, sheet, { readonly } = {}) => {
729
729
  })(SheetAction || (SheetAction = {}));
730
730
  var SheetAction;
731
731
 
732
- // packages/plugins/plugin-sheet/src/types/util.ts
732
+ // src/types/util.ts
733
733
  import { addressFromA1Notation as addressFromA1Notation2, addressToA1Notation as addressToA1Notation2, isFormula as isFormula2 } from "@dxos/compute";
734
734
  import { randomBytes } from "@dxos/crypto";
735
735
  import { Obj as Obj2 } from "@dxos/echo";
736
736
  import { invariant as invariant2 } from "@dxos/invariant";
737
- var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-sheet/src/types/util.ts";
737
+ var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-sheet/src/types/util.ts";
738
738
  var MAX_ROWS = 500;
739
739
  var MAX_COLS = 676;
740
740
  var DEFAULT_ROWS = 50;
@@ -889,4 +889,4 @@ export {
889
889
  mapFormulaRefsToIndices,
890
890
  mapFormulaIndicesToRefs
891
891
  };
892
- //# sourceMappingURL=chunk-I7FZ4TWJ.mjs.map
892
+ //# sourceMappingURL=chunk-SI4X5GUR.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/types/schema.ts", "../../../src/types/sheet-range-types.ts", "../../../src/types/types.ts", "../../../src/model/sheet-model.ts", "../../../src/model/useSheetModel.ts", "../../../src/types/util.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Schema } from 'effect';\n\nimport { Type } from '@dxos/echo';\n\nexport const CellValue = Schema.Struct({\n // TODO(burdon): How to store dates (datetime, date, time), percentages, etc.\n // Consider import/export; natural access for other plugins. Special handling for currency (precision).\n // TODO(burdon): Automerge (long string) or short string or number.\n value: Schema.Any,\n});\n\nexport type CellValue = Schema.Schema.Type<typeof CellValue>;\n\n// TODO(burdon): IMPORTANT: Reconcile with Field definition.\nexport const Range = Schema.Struct({\n range: Schema.String,\n key: Schema.String,\n value: Schema.String,\n});\n\nexport type Range = Schema.Schema.Type<typeof Range>;\n\n// TODO(burdon): Visibility, locked, frozen, etc.\nexport const RowColumnMeta = Schema.Struct({\n size: Schema.optional(Schema.Number),\n});\n\n// TODO(burdon): Reconcile col/column (across packages).\n// TODO(burdon): Index to all updates when rows/columns are inserted/deleted.\nexport const SheetType = Schema.Struct({\n name: Schema.optional(Schema.String),\n\n // Sparse map of cells referenced by index.\n cells: Schema.mutable(Schema.Record({ key: Schema.String, value: Schema.mutable(CellValue) })),\n\n // Ordered row indices.\n rows: Schema.mutable(Schema.Array(Schema.String)),\n\n // Ordered column indices.\n columns: Schema.mutable(Schema.Array(Schema.String)),\n\n // Row metadata referenced by index.\n rowMeta: Schema.mutable(Schema.Record({ key: Schema.String, value: Schema.mutable(RowColumnMeta) })),\n\n // Column metadata referenced by index.\n columnMeta: Schema.mutable(Schema.Record({ key: Schema.String, value: Schema.mutable(RowColumnMeta) })),\n\n // Cell formatting referenced by indexed range.\n ranges: Schema.mutable(Schema.Array(Range)),\n}).pipe(\n Type.Obj({\n typename: 'dxos.org/type/Sheet',\n version: '0.1.0',\n }),\n);\n\nexport interface SheetType extends Schema.Schema.Type<typeof SheetType> {}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { type ClassNameValue } from '@dxos/react-ui';\n\nimport { type SheetType } from '../types';\n\nexport const alignKey = 'alignment';\nexport type AlignKey = typeof alignKey;\nexport type AlignValue = 'start' | 'center' | 'end';\n\nexport const commentKey = 'comment';\nexport type CommentKey = typeof commentKey;\nexport type CommentValue = string;\n\nexport const styleKey = 'style';\nexport type StyleKey = typeof styleKey;\nexport type StyleValue = 'highlight' | 'softwrap';\n\n// TODO(burdon): Reconcile with plugin-table.\nexport const cellClassNameForRange = ({ key, value }: SheetType['ranges'][number]): ClassNameValue => {\n switch (key) {\n case alignKey:\n switch (value) {\n case 'start':\n return 'text-start';\n case 'center':\n return 'text-center';\n case 'end':\n return 'text-end';\n default:\n return undefined;\n }\n\n case commentKey:\n return 'bg-gridComment';\n\n case styleKey:\n switch (value) {\n case 'highlight':\n return '!bg-gridHighlight';\n case 'softwrap':\n return '!whitespace-normal';\n default:\n return undefined;\n }\n\n default:\n return undefined;\n }\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Schema } from 'effect';\n\nimport { type CellValue, RowColumnMeta, SheetType } from './schema';\nimport { SHEET_PLUGIN } from '../meta';\nimport { SheetModel } from '../model';\n\nexport type SheetSize = {\n rows: number;\n columns: number;\n};\n\nexport type CreateSheetOptions = {\n name?: string;\n cells?: Record<string, CellValue>;\n} & Partial<SheetSize>;\n\nexport namespace SheetAction {\n const SHEET_ACTION = `${SHEET_PLUGIN}/action`;\n\n export class Create extends Schema.TaggedClass<Create>()(`${SHEET_ACTION}/create`, {\n input: Schema.Struct({\n name: Schema.optional(Schema.String),\n }),\n output: Schema.Struct({\n object: SheetType,\n }),\n }) {}\n\n // TODO(wittjosiah): Factor out. This is `DxGridAxis` from `@dxos/react-ui-grid`.\n const Axis = Schema.Union(Schema.Literal('row'), Schema.Literal('col'));\n\n export class InsertAxis extends Schema.TaggedClass<InsertAxis>()(`${SHEET_ACTION}/axis-insert`, {\n input: Schema.Struct({\n // TODO(wittjosiah): Schema.instanceOf(SheetModel) throws when running tests.\n model: Schema.Any.pipe(Schema.filter((model) => model instanceof SheetModel)) as Schema.Schema<SheetModel>,\n axis: Axis,\n index: Schema.Number,\n count: Schema.optional(Schema.Number),\n }),\n output: Schema.Void,\n }) {}\n\n export const RestoreAxis = Schema.Struct({\n axis: Axis,\n axisIndex: Schema.String,\n index: Schema.Number,\n axisMeta: RowColumnMeta,\n values: Schema.Array(Schema.Any),\n });\n\n export type RestoreAxis = Schema.Schema.Type<typeof RestoreAxis>;\n\n export class DropAxis extends Schema.TaggedClass<DropAxis>()(`${SHEET_ACTION}/axis-drop`, {\n input: Schema.Struct({\n // TODO(wittjosiah): Schema.instanceOf(SheetModel) throws when running tests.\n model: Schema.Any.pipe(Schema.filter((model) => model instanceof SheetModel)) as Schema.Schema<SheetModel>,\n axis: Axis,\n axisIndex: Schema.String,\n deletionData: Schema.optional(RestoreAxis),\n }),\n output: Schema.Void,\n }) {}\n}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Event } from '@dxos/async';\nimport {\n addressFromA1Notation,\n addressToA1Notation,\n createSheetName,\n isFormula,\n type CellAddress,\n type CellRange,\n type CellScalarValue,\n type ComputeGraph,\n type ComputeNode,\n type ComputeNodeEvent,\n DetailedCellError,\n ExportedCellChange,\n type SimpleCellRange,\n type SimpleCellAddress,\n type SimpleDate,\n type SimpleDateTime,\n} from '@dxos/compute';\nimport { Resource } from '@dxos/context';\nimport { Obj } from '@dxos/echo';\nimport { FormatEnum, TypeEnum } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { PublicKey } from '@dxos/keys';\nimport { log } from '@dxos/log';\n\nimport {\n MAX_COLS,\n MAX_ROWS,\n ReadonlyException,\n addressFromIndex,\n addressToIndex,\n initialize,\n insertIndices,\n mapFormulaIndicesToRefs,\n mapFormulaRefsToIndices,\n} from '../types';\nimport { type SheetAction, type CellValue, type SheetType } from '../types';\n\n// TODO(burdon): Move to compute.\n// Map sheet types to system types.\n// https://hyperformula.handsontable.com/guide/types-of-values.html\n// - https://github.com/handsontable/hyperformula/blob/master/src/Cell.ts (CellValueType)\n// - https://github.com/handsontable/hyperformula/blob/master/src/interpreter/InterpreterValue.ts (NumberType)\nconst typeMap: Record<string, { type: TypeEnum; format?: FormatEnum }> = {\n BOOLEAN: { type: TypeEnum.Boolean },\n NUMBER_RAW: { type: TypeEnum.Number },\n NUMBER_PERCENT: { type: TypeEnum.Number, format: FormatEnum.Percent },\n NUMBER_CURRENCY: { type: TypeEnum.Number, format: FormatEnum.Currency },\n NUMBER_DATETIME: { type: TypeEnum.String, format: FormatEnum.DateTime },\n NUMBER_DATE: { type: TypeEnum.String, format: FormatEnum.Date },\n NUMBER_TIME: { type: TypeEnum.String, format: FormatEnum.Time },\n};\n\nconst getTopLeft = (range: CellRange): CellAddress => {\n const to = range.to ?? range.from;\n return { row: Math.min(range.from.row, to.row), col: Math.min(range.from.col, to.col) };\n};\n\nconst toSimpleCellAddress = (sheet: number, cell: CellAddress): SimpleCellAddress => ({\n sheet,\n row: cell.row,\n col: cell.col,\n});\n\nconst toModelRange = (sheet: number, range: CellRange): SimpleCellRange => ({\n start: toSimpleCellAddress(sheet, range.from),\n end: toSimpleCellAddress(sheet, range.to ?? range.from),\n});\n\nexport type SheetModelOptions = {\n readonly?: boolean;\n};\n\n/**\n * Spreadsheet data model.\n *\n * [ComputeGraphContext] > [SheetContext]:[SheetModel] > [Sheet.Root]\n */\n// TODO(burdon): Factor out commonality with ComputeNode. Factor out HF.\nexport class SheetModel extends Resource {\n public readonly id = `model-${PublicKey.random().truncate()}`;\n\n // Wraps compute node.\n public readonly update = new Event<ComputeNodeEvent>();\n\n private _node?: ComputeNode;\n\n constructor(\n private readonly _graph: ComputeGraph,\n private readonly _sheet: SheetType,\n private readonly _options: SheetModelOptions = {},\n ) {\n super();\n }\n\n get graph() {\n return this._graph;\n }\n\n get sheet() {\n return this._sheet;\n }\n\n get readonly() {\n return this._options.readonly;\n }\n\n get bounds() {\n return {\n rows: this._sheet.rows.length,\n columns: this._sheet.columns.length,\n };\n }\n\n /**\n * Initialize sheet and engine.\n */\n protected override async _open(): Promise<void> {\n log('initialize', { id: this.id });\n initialize(this._sheet);\n\n this._graph.update.on((event) => {\n if (event.type === 'functionsUpdated') {\n this.reset();\n }\n });\n\n // TODO(burdon): SheetModel should extend ComputeNode and be constructed via the graph.\n this._node = this._graph.getOrCreateNode(\n createSheetName({ type: Obj.getTypename(this._sheet)!, id: this._sheet.id }),\n );\n await this._node.open();\n\n // Listen for model updates (e.g., async calculations).\n const unsubscribe = this._node.update.on((event) => this.update.emit(event));\n this._ctx.onDispose(unsubscribe);\n\n this.reset();\n }\n\n /**\n * Update engine.\n * NOTE: This resets the undo history.\n * @deprecated\n */\n reset(): void {\n invariant(this._node);\n this._node.graph.hf.clearSheet(this._node.sheetId);\n Object.entries(this._sheet.cells).forEach(([key, { value }]) => {\n invariant(this._node);\n const { col, row } = addressFromIndex(this._sheet, key);\n if (isFormula(value)) {\n const binding = this._graph.mapFunctionBindingFromId(mapFormulaIndicesToRefs(this._sheet, value));\n if (binding) {\n value = this._graph.mapFormulaToNative(binding);\n } else {\n // If binding is not found, render the cell as empty.\n // This prevents the cell from momentarily rendering an error while the binding is being loaded.\n value = '';\n }\n }\n\n this._node.graph.hf.setCellContents({ sheet: this._node.sheetId, row, col }, value);\n });\n }\n\n /**\n * Recalculate formulas.\n * NOTE: This resets the undo history.\n * https://hyperformula.handsontable.com/guide/volatile-functions.html#volatile-actions\n * @deprecated\n */\n // TODO(burdon): Remove.\n recalculate(): void {\n this._node?.graph.hf.rebuildAndRecalculate();\n }\n\n insertRows(i: number, n = 1): string[] {\n const idx = insertIndices(this._sheet.rows, i, n, MAX_ROWS);\n this.reset();\n return idx;\n }\n\n insertColumns(i: number, n = 1): string[] {\n const idx = insertIndices(this._sheet.columns, i, n, MAX_COLS);\n this.reset();\n return idx;\n }\n\n dropRow(rowIndex: string): SheetAction.RestoreAxis {\n const range = {\n from: addressFromIndex(this._sheet, `${this._sheet.columns[0]}@${rowIndex}`),\n to: addressFromIndex(this._sheet, `${this._sheet.columns[this._sheet.columns.length - 1]}@${rowIndex}`),\n };\n const values = this.getCellValues(range).flat();\n const index = this._sheet.rows.indexOf(rowIndex);\n this.clear(range);\n this._sheet.rows.splice(index, 1);\n delete this._sheet.rowMeta[rowIndex];\n this.reset();\n return { axis: 'row', index, axisIndex: rowIndex, axisMeta: this._sheet.rowMeta[rowIndex], values };\n }\n\n dropColumn(colIndex: string): SheetAction.RestoreAxis {\n const range = {\n from: addressFromIndex(this._sheet, `${colIndex}@${this._sheet.rows[0]}`),\n to: addressFromIndex(this._sheet, `${colIndex}@${this._sheet.rows[this._sheet.rows.length - 1]}`),\n };\n const values = this.getCellValues(range).flat();\n const index = this._sheet.columns.indexOf(colIndex);\n this.clear(range);\n this._sheet.columns.splice(index, 1);\n delete this._sheet.columnMeta[colIndex];\n this.reset();\n return { axis: 'col', index, axisIndex: colIndex, axisMeta: this._sheet.rowMeta[colIndex], values };\n }\n\n restoreRow({ index, axisIndex, axisMeta, values }: SheetAction.RestoreAxis): void {\n this._sheet.rows.splice(index, 0, axisIndex);\n values.forEach((value, col) => {\n if (value) {\n this._sheet.cells[`${this._sheet.columns[col]}@${axisIndex}`] = { value };\n }\n });\n if (axisMeta) {\n this._sheet.rowMeta[axisIndex] = axisMeta;\n }\n this.reset();\n }\n\n restoreColumn({ index, axisIndex, axisMeta, values }: SheetAction.RestoreAxis): void {\n this._sheet.columns.splice(index, 0, axisIndex);\n values.forEach((value, row) => {\n if (value) {\n this._sheet.cells[`${axisIndex}@${this._sheet.rows[row]}`] = { value };\n }\n });\n if (axisMeta) {\n this._sheet.columnMeta[axisIndex] = axisMeta;\n }\n this.reset();\n }\n\n //\n // Undoable actions.\n // TODO(burdon): Group undoable methods; consistently update hf/sheet.\n //\n\n /**\n * Clear range of values.\n */\n clear(range: CellRange): void {\n invariant(this._node);\n const topLeft = getTopLeft(range);\n const values = this._iterRange(range, () => null);\n this._node.graph.hf.setCellContents(toSimpleCellAddress(this._node.sheetId, topLeft), values);\n this._iterRange(range, (cell) => {\n const idx = addressToIndex(this._sheet, cell);\n delete this._sheet.cells[idx];\n });\n }\n\n cut(range: CellRange): void {\n invariant(this._node);\n this._node.graph.hf.cut(toModelRange(this._node.sheetId, range));\n this._iterRange(range, (cell) => {\n const idx = addressToIndex(this._sheet, cell);\n delete this._sheet.cells[idx];\n });\n }\n\n copy(range: CellRange): void {\n invariant(this._node);\n this._node.graph.hf.copy(toModelRange(this._node.sheetId, range));\n }\n\n paste(cell: CellAddress): void {\n invariant(this._node);\n if (!this._node.graph.hf.isClipboardEmpty()) {\n const changes = this._node.graph.hf.paste(toSimpleCellAddress(this._node.sheetId, cell));\n for (const change of changes) {\n if (change instanceof ExportedCellChange) {\n const { address, newValue } = change;\n const idx = addressToIndex(this._sheet, { row: address.row, col: address.col });\n this._sheet.cells[idx] = { value: newValue };\n }\n }\n }\n }\n\n // TODO(burdon): Display undo/redo state.\n undo(): void {\n invariant(this._node);\n if (this._node.graph.hf.isThereSomethingToUndo()) {\n this._node.graph.hf.undo();\n // this.update.emit();\n }\n }\n\n redo(): void {\n invariant(this._node);\n if (this._node.graph.hf.isThereSomethingToRedo()) {\n this._node.graph.hf.redo();\n // this.update.emit();\n }\n }\n\n /**\n * Get value from sheet.\n */\n getCellValue(cell: CellAddress): CellScalarValue {\n const idx = addressToIndex(this._sheet, cell);\n return this._sheet.cells[idx]?.value ?? null;\n }\n\n /**\n * Get value as a string for editing.\n */\n getCellText(cell: CellAddress): string | undefined {\n const value = this.getCellValue(cell);\n if (value == null) {\n return undefined;\n }\n\n if (isFormula(value)) {\n return this._graph.mapFunctionBindingFromId(mapFormulaIndicesToRefs(this._sheet, value));\n } else {\n return String(value);\n }\n }\n\n /**\n * Get array of raw values from sheet.\n */\n getCellValues(range: CellRange): CellScalarValue[][] {\n return this._iterRange(range, (cell) => this.getCellValue(cell));\n }\n\n /**\n * Gets the regular or computed value from the engine.\n */\n getValue(cell: CellAddress): CellScalarValue {\n // Applies rounding and post-processing.\n invariant(this._node);\n const address = toSimpleCellAddress(this._node.sheetId, cell);\n const value = this._node.graph.hf.getCellValue(address);\n if (value instanceof DetailedCellError) {\n // TODO(wittjosiah): Error details should be shown in cell `title`.\n log.warn('cell error', { cell, error: value });\n return value.toString();\n }\n\n return value;\n }\n\n /**\n * Get value type.\n */\n getValueDescription(cell: CellAddress): { type: TypeEnum; format?: FormatEnum } | undefined {\n invariant(this._node);\n const addr = toSimpleCellAddress(this._node.sheetId, cell);\n const type = this._node.graph.hf.getCellValueDetailedType(addr);\n return typeMap[type];\n }\n\n /**\n * Sets the value, updating the sheet and engine.\n */\n setValue(cell: CellAddress, value: CellScalarValue): void {\n invariant(this._node);\n if (this._options.readonly) {\n throw new ReadonlyException();\n }\n\n // Reallocate if > current bounds.\n let refresh = false;\n if (cell.row >= this._sheet.rows.length) {\n insertIndices(this._sheet.rows, cell.row, 1, MAX_ROWS);\n refresh = true;\n }\n if (cell.col >= this._sheet.columns.length) {\n insertIndices(this._sheet.columns, cell.col, 1, MAX_COLS);\n refresh = true;\n }\n\n if (refresh) {\n // TODO(burdon): Remove.\n this.reset();\n }\n\n // Insert into engine.\n this._node.graph.hf.setCellContents({ sheet: this._node.sheetId, row: cell.row, col: cell.col }, [\n [isFormula(value) ? this._graph.mapFormulaToNative(value) : value],\n ]);\n\n // Insert into sheet.\n const idx = addressToIndex(this._sheet, cell);\n if (value === undefined || value === null) {\n delete this._sheet.cells[idx];\n } else {\n if (isFormula(value)) {\n value = this._graph.mapFunctionBindingToId(mapFormulaRefsToIndices(this._sheet, value));\n }\n\n this._sheet.cells[idx] = { value };\n }\n }\n\n /**\n * Sets values from a simple map.\n */\n setValues(values: Record<string, CellValue>): void {\n Object.entries(values).forEach(([key, { value }]) => {\n this.setValue(addressFromA1Notation(key), value);\n });\n }\n\n /**\n * Iterate range.\n */\n private _iterRange(range: CellRange, cb: (cell: CellAddress) => CellScalarValue | void): CellScalarValue[][] {\n const to = range.to ?? range.from;\n const rowRange = [Math.min(range.from.row, to.row), Math.max(range.from.row, to.row)];\n const columnRange = [Math.min(range.from.col, to.col), Math.max(range.from.col, to.col)];\n const rows: CellScalarValue[][] = [];\n for (let row = rowRange[0]; row <= rowRange[1]; row++) {\n const rowCells: CellScalarValue[] = [];\n for (let column = columnRange[0]; column <= columnRange[1]; column++) {\n const value = cb({ row, col: column });\n if (value !== undefined) {\n rowCells.push(value);\n }\n }\n\n rows.push(rowCells);\n }\n\n return rows;\n }\n\n // TODO(burdon): Delete index.\n private _deleteIndices(indices: string[], i: number, n: number): void {\n throw new Error('Not implemented');\n }\n\n // TODO(burdon): Move. Cannot use fractional without changing. Switch back to using unique IDs?\n private _moveIndices(indices: string[], i: number, j: number, n: number): void {\n throw new Error('Not implemented');\n }\n\n /**\n * Map from indices to A1 notation.\n */\n mapFormulaIndicesToRefs(formula: string): string {\n invariant(isFormula(formula));\n return formula.replace(/([a-zA-Z0-9]+)@([a-zA-Z0-9]+)/g, (idx) => {\n return addressToA1Notation(addressFromIndex(this._sheet, idx));\n });\n }\n\n //\n // Values\n //\n\n /**\n * https://hyperformula.handsontable.com/guide/date-and-time-handling.html#example\n * https://hyperformula.handsontable.com/api/interfaces/configparams.html#nulldate\n * NOTE: TODAY() is number of FULL days since nullDate. It will typically be -1 days from NOW().\n */\n toLocalDate(num: number): Date {\n const { year, month, day, hours, minutes, seconds } = this.toDateTime(num);\n return new Date(year, month - 1, day, hours, minutes, seconds);\n }\n\n toDateTime(num: number): SimpleDateTime {\n invariant(this._node);\n return this._node.graph.hf.numberToDateTime(num) as SimpleDateTime;\n }\n\n toDate(num: number): SimpleDate {\n invariant(this._node);\n return this._node.graph.hf.numberToDate(num) as SimpleDate;\n }\n\n toTime(num: number): SimpleDate {\n invariant(this._node);\n return this._node.graph.hf.numberToTime(num) as SimpleDate;\n }\n}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { useEffect, useState } from 'react';\n\nimport { type ComputeGraph } from '@dxos/compute';\n\nimport { SheetModel } from '../model';\nimport { type SheetType } from '../types';\n\nexport type UseSheetModelOptions = {\n readonly?: boolean;\n};\n\nexport const useSheetModel = (\n graph?: ComputeGraph,\n sheet?: SheetType,\n { readonly }: UseSheetModelOptions = {},\n): SheetModel | undefined => {\n const [model, setModel] = useState<SheetModel>();\n useEffect(() => {\n if (!graph || !sheet) {\n return;\n }\n\n let model: SheetModel | undefined;\n const t = setTimeout(async () => {\n model = new SheetModel(graph, sheet, { readonly });\n await model.open();\n setModel(model);\n });\n\n return () => {\n clearTimeout(t);\n void model?.close();\n };\n }, [graph, sheet, readonly]);\n\n return model;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport {\n addressFromA1Notation,\n addressToA1Notation,\n isFormula,\n type CellAddress,\n type CellRange,\n type CompleteCellRange,\n} from '@dxos/compute';\nimport { randomBytes } from '@dxos/crypto';\nimport { Obj } from '@dxos/echo';\nimport { invariant } from '@dxos/invariant';\n\nimport { type CreateSheetOptions, type SheetSize, SheetType } from '../types';\n\nexport const MAX_ROWS = 500;\nexport const MAX_COLS = 676; // 26^2;\n\nexport const DEFAULT_ROWS = 50;\nexport const DEFAULT_COLS = 26;\n\n// TODO(burdon): Factor out from dxos/protocols to new common package.\nexport class ApiError extends Error {}\n\nexport class ReadonlyException extends ApiError {}\n\nexport class RangeException extends ApiError {\n constructor(n: number) {\n super();\n }\n}\n\n/**\n * With a string length of 8, the chance of a collision is 0.02% for a sheet with 10,000 strings.\n */\nexport const createIndex = (length = 8): string => {\n const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n const charactersLength = characters.length;\n const randomBuffer = randomBytes(length);\n return Array.from(randomBuffer, (byte) => characters[byte % charactersLength]).join('');\n};\n\nexport const createIndices = (length: number): string[] => Array.from({ length }).map(() => createIndex());\n\nexport const insertIndices = (indices: string[], i: number, n: number, max: number) => {\n if (i + n > max) {\n throw new RangeException(i + n);\n }\n\n const idx = createIndices(n);\n indices.splice(i, 0, ...idx);\n return idx;\n};\n\nexport const initialize = (\n sheet: SheetType,\n { rows = DEFAULT_ROWS, columns = DEFAULT_COLS }: Partial<SheetSize> = {},\n) => {\n if (!sheet.rows.length) {\n insertIndices(sheet.rows, 0, rows, MAX_ROWS);\n }\n if (!sheet.columns.length) {\n insertIndices(sheet.columns, 0, columns, MAX_COLS);\n }\n};\n\nexport const createSheet = ({ name, cells, ...size }: CreateSheetOptions = {}): SheetType => {\n const sheet = Obj.make(SheetType, {\n name,\n cells: {},\n rows: [],\n columns: [],\n rowMeta: {},\n columnMeta: {},\n ranges: [],\n });\n\n initialize(sheet, size);\n\n if (cells) {\n Object.entries(cells).forEach(([key, { value }]) => {\n const idx = addressToIndex(sheet, addressFromA1Notation(key));\n if (isFormula(value)) {\n value = mapFormulaRefsToIndices(sheet, value);\n }\n\n sheet.cells[idx] = { value };\n });\n }\n\n return sheet;\n};\n\n/**\n * E.g., \"A1\" => \"CA2@CB3\".\n */\nexport const addressToIndex = (sheet: SheetType, cell: CellAddress): string => {\n return `${sheet.columns[cell.col]}@${sheet.rows[cell.row]}`;\n};\n\n/**\n * E.g., \"CA2@CB3\" => \"A1\".\n */\nexport const addressFromIndex = (sheet: SheetType, idx: string): CellAddress => {\n const [column, row] = idx.split('@');\n return {\n col: sheet.columns.indexOf(column),\n row: sheet.rows.indexOf(row),\n };\n};\n\n/**\n * E.g., \"A1:B2\" => \"CA2@CB3:CC4@CD5\".\n */\nexport const rangeToIndex = (sheet: SheetType, range: CellRange): string => {\n return [range.from, range.to ?? range.from].map((cell) => addressToIndex(sheet, cell)).join(':');\n};\n\n/**\n * E.g., \"CA2@CB3:CC4@CD5\" => \"A1:B2\".\n */\nexport const rangeFromIndex = (sheet: SheetType, idx: string): CompleteCellRange => {\n const [from, to] = idx.split(':').map((index) => addressFromIndex(sheet, index));\n return { from, to };\n};\n\n/**\n * Compares the positions of two cell indexes in a sheet.\n * Sorts primarily by row, then by column if rows are equal.\n */\nexport const compareIndexPositions = (sheet: SheetType, indexA: string, indexB: string): number => {\n const { row: rowA, col: columnA } = addressFromIndex(sheet, indexA);\n const { row: rowB, col: columnB } = addressFromIndex(sheet, indexB);\n\n // Sort by row first, then by column.\n if (rowA !== rowB) {\n return rowA - rowB;\n } else {\n return columnA - columnB;\n }\n};\n\n// TODO(burdon): Tests.\n\n/**\n * Map from A1 notation to indices.\n */\nexport const mapFormulaRefsToIndices = (sheet: SheetType, formula: string): string => {\n invariant(isFormula(formula));\n return formula.replace(/([a-zA-Z]+)([0-9]+)/g, (match) => {\n return addressToIndex(sheet, addressFromA1Notation(match));\n });\n};\n\n/**\n * Map from indices to A1 notation.\n */\nexport const mapFormulaIndicesToRefs = (sheet: SheetType, formula: string): string => {\n invariant(isFormula(formula));\n return formula.replace(/([a-zA-Z0-9]+)@([a-zA-Z0-9]+)/g, (idx) => {\n return addressToA1Notation(addressFromIndex(sheet, idx));\n });\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["Schema", "Type", "CellValue", "Schema", "Struct", "value", "Any", "Range", "range", "String", "key", "RowColumnMeta", "size", "optional", "Number", "SheetType", "name", "cells", "mutable", "Record", "rows", "Array", "columns", "rowMeta", "columnMeta", "ranges", "pipe", "Type", "Obj", "typename", "version", "alignKey", "commentKey", "styleKey", "cellClassNameForRange", "key", "value", "undefined", "Schema", "Event", "addressFromA1Notation", "addressToA1Notation", "createSheetName", "isFormula", "DetailedCellError", "ExportedCellChange", "Resource", "Obj", "FormatEnum", "TypeEnum", "invariant", "PublicKey", "log", "typeMap", "BOOLEAN", "type", "TypeEnum", "Boolean", "NUMBER_RAW", "Number", "NUMBER_PERCENT", "format", "FormatEnum", "Percent", "NUMBER_CURRENCY", "Currency", "NUMBER_DATETIME", "String", "DateTime", "NUMBER_DATE", "Date", "NUMBER_TIME", "Time", "getTopLeft", "range", "to", "from", "row", "Math", "min", "col", "toSimpleCellAddress", "sheet", "cell", "toModelRange", "start", "end", "SheetModel", "Resource", "_graph", "_sheet", "_options", "id", "PublicKey", "random", "truncate", "update", "Event", "graph", "readonly", "bounds", "rows", "length", "columns", "_open", "log", "initialize", "on", "event", "reset", "_node", "getOrCreateNode", "createSheetName", "Obj", "getTypename", "open", "unsubscribe", "emit", "_ctx", "onDispose", "invariant", "hf", "clearSheet", "sheetId", "Object", "entries", "cells", "forEach", "key", "value", "addressFromIndex", "isFormula", "binding", "mapFunctionBindingFromId", "mapFormulaIndicesToRefs", "mapFormulaToNative", "setCellContents", "recalculate", "rebuildAndRecalculate", "insertRows", "i", "n", "idx", "insertIndices", "MAX_ROWS", "insertColumns", "MAX_COLS", "dropRow", "rowIndex", "values", "getCellValues", "flat", "index", "indexOf", "clear", "splice", "rowMeta", "axis", "axisIndex", "axisMeta", "dropColumn", "colIndex", "columnMeta", "restoreRow", "restoreColumn", "topLeft", "_iterRange", "addressToIndex", "cut", "copy", "paste", "isClipboardEmpty", "changes", "change", "ExportedCellChange", "address", "newValue", "undo", "isThereSomethingToUndo", "redo", "isThereSomethingToRedo", "getCellValue", "getCellText", "undefined", "getValue", "DetailedCellError", "warn", "error", "toString", "getValueDescription", "addr", "getCellValueDetailedType", "setValue", "ReadonlyException", "refresh", "mapFunctionBindingToId", "mapFormulaRefsToIndices", "setValues", "addressFromA1Notation", "cb", "rowRange", "max", "columnRange", "rowCells", "column", "push", "_deleteIndices", "indices", "Error", "_moveIndices", "j", "formula", "replace", "addressToA1Notation", "toLocalDate", "num", "year", "month", "day", "hours", "minutes", "seconds", "toDateTime", "numberToDateTime", "toDate", "numberToDate", "toTime", "numberToTime", "useEffect", "useState", "useSheetModel", "graph", "sheet", "readonly", "model", "setModel", "useState", "useEffect", "t", "setTimeout", "SheetModel", "open", "clearTimeout", "close", "SheetAction", "SHEET_ACTION", "SHEET_PLUGIN", "Create", "Schema", "TaggedClass", "input", "Struct", "name", "optional", "String", "output", "object", "SheetType", "Axis", "Union", "Literal", "InsertAxis", "model", "Any", "pipe", "filter", "SheetModel", "axis", "index", "Number", "count", "Void", "RestoreAxis", "axisIndex", "axisMeta", "RowColumnMeta", "values", "Array", "DropAxis", "deletionData", "addressFromA1Notation", "addressToA1Notation", "isFormula", "randomBytes", "Obj", "invariant", "MAX_ROWS", "MAX_COLS", "DEFAULT_ROWS", "DEFAULT_COLS", "ApiError", "Error", "ReadonlyException", "RangeException", "n", "createIndex", "length", "characters", "charactersLength", "randomBuffer", "randomBytes", "Array", "from", "byte", "join", "createIndices", "map", "insertIndices", "indices", "i", "max", "idx", "splice", "initialize", "sheet", "rows", "columns", "createSheet", "name", "cells", "size", "Obj", "make", "SheetType", "rowMeta", "columnMeta", "ranges", "Object", "entries", "forEach", "key", "value", "addressToIndex", "addressFromA1Notation", "isFormula", "mapFormulaRefsToIndices", "cell", "col", "row", "addressFromIndex", "column", "split", "indexOf", "rangeToIndex", "range", "to", "rangeFromIndex", "index", "compareIndexPositions", "indexA", "indexB", "rowA", "columnA", "rowB", "columnB", "formula", "invariant", "replace", "match", "mapFormulaIndicesToRefs", "addressToA1Notation"]
7
+ }
@@ -6,16 +6,16 @@ import {
6
6
  cellClassNameForRange,
7
7
  rangeFromIndex,
8
8
  useSheetModel
9
- } from "./chunk-I7FZ4TWJ.mjs";
9
+ } from "./chunk-SI4X5GUR.mjs";
10
10
  import {
11
11
  rangeExtension,
12
12
  sheetExtension
13
- } from "./chunk-FJRLDX7Z.mjs";
13
+ } from "./chunk-7HQX4NQP.mjs";
14
14
  import {
15
15
  SHEET_PLUGIN
16
- } from "./chunk-D3G4UGEK.mjs";
16
+ } from "./chunk-6AKBCBL4.mjs";
17
17
 
18
- // packages/plugins/plugin-sheet/src/components/ComputeGraph/ComputeGraphContextProvider.tsx
18
+ // src/components/ComputeGraph/ComputeGraphContextProvider.tsx
19
19
  import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
20
20
  import React, { createContext, useContext } from "react";
21
21
  import { raise } from "@dxos/debug";
@@ -48,7 +48,7 @@ var useComputeGraph = (space) => {
48
48
  return graph;
49
49
  };
50
50
 
51
- // packages/plugins/plugin-sheet/src/components/RangeList/RangeList.tsx
51
+ // src/components/RangeList/RangeList.tsx
52
52
  import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
53
53
  import { Schema } from "effect";
54
54
  import React2, { useCallback } from "react";
@@ -94,10 +94,10 @@ var RangeList = ({ sheet }) => {
94
94
  }
95
95
  };
96
96
 
97
- // packages/plugins/plugin-sheet/src/components/index.ts
97
+ // src/components/index.ts
98
98
  import { lazy } from "react";
99
99
 
100
- // packages/plugins/plugin-sheet/src/components/GridSheet/GridSheet.tsx
100
+ // src/components/GridSheet/GridSheet.tsx
101
101
  import { useSignals as _useSignals4 } from "@preact-signals/safe-react/tracking";
102
102
  import React4, { useCallback as useCallback4, useMemo as useMemo2, useRef, useState as useState3 } from "react";
103
103
  import { createIntent as createIntent2, useIntentDispatcher as useIntentDispatcher2 } from "@dxos/app-framework";
@@ -107,7 +107,7 @@ import { DropdownMenu, Icon, useTranslation as useTranslation2 } from "@dxos/rea
107
107
  import { useAttention } from "@dxos/react-ui-attention";
108
108
  import { closestCell, editorKeys, parseCellIndex, Grid as Grid2, GridCellEditor } from "@dxos/react-ui-grid";
109
109
 
110
- // packages/plugins/plugin-sheet/src/components/GridSheet/util.ts
110
+ // src/components/GridSheet/util.ts
111
111
  import { useEffect, useState } from "react";
112
112
  import { inRange } from "@dxos/compute";
113
113
  import { createDocAccessor } from "@dxos/react-client/echo";
@@ -278,7 +278,7 @@ var useSheetModelDxGridProps = (dxGrid, model) => {
278
278
  };
279
279
  };
280
280
 
281
- // packages/plugins/plugin-sheet/src/integrations/thread-ranges.ts
281
+ // src/integrations/thread-ranges.ts
282
282
  import { Schema as Schema2, pipe } from "effect";
283
283
  import { useCallback as useCallback2, useEffect as useEffect2, useMemo } from "react";
284
284
  import { createIntent, createResolver, LayoutAction, useIntentResolver, useIntentDispatcher, chain } from "@dxos/app-framework";
@@ -380,13 +380,13 @@ var useSelectThreadOnCellFocus = () => {
380
380
  ]);
381
381
  };
382
382
 
383
- // packages/plugins/plugin-sheet/src/components/SheetContext/SheetContext.tsx
383
+ // src/components/SheetContext/SheetContext.tsx
384
384
  import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
385
385
  import React3, { createContext as createContext2, useCallback as useCallback3, useContext as useContext2, useState as useState2 } from "react";
386
386
  import { invariant } from "@dxos/invariant";
387
387
  import { fullyQualifiedId as fullyQualifiedId2 } from "@dxos/react-client/echo";
388
388
  import { Grid, useGridContext } from "@dxos/react-ui-grid";
389
- var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-sheet/src/components/SheetContext/SheetContext.tsx";
389
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-sheet/src/components/SheetContext/SheetContext.tsx";
390
390
  var SheetContext = /* @__PURE__ */ createContext2(void 0);
391
391
  var useSheetContext = () => {
392
392
  const context = useContext2(SheetContext);
@@ -467,7 +467,7 @@ var SheetProvider = ({ children, graph, sheet, readonly, ignoreAttention, onInfo
467
467
  }
468
468
  };
469
469
 
470
- // packages/plugins/plugin-sheet/src/components/GridSheet/GridSheet.tsx
470
+ // src/components/GridSheet/GridSheet.tsx
471
471
  var inertPosition = {
472
472
  plane: "grid",
473
473
  col: 0,
@@ -832,8 +832,8 @@ var GridSheet = () => {
832
832
  }
833
833
  };
834
834
 
835
- // packages/plugins/plugin-sheet/src/components/index.ts
836
- var SheetContainer = lazy(() => import("./SheetContainer-BDZXBB5U.mjs"));
835
+ // src/components/index.ts
836
+ var SheetContainer = lazy(() => import("./SheetContainer-6IWQKRJC.mjs"));
837
837
 
838
838
  export {
839
839
  ComputeGraphContextProvider,
@@ -844,4 +844,4 @@ export {
844
844
  RangeList,
845
845
  SheetContainer
846
846
  };
847
- //# sourceMappingURL=chunk-5TA43LO4.mjs.map
847
+ //# sourceMappingURL=chunk-ULWNSP4B.mjs.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  SheetCapabilities
3
- } from "./chunk-IR42IS3F.mjs";
4
- import "./chunk-D3G4UGEK.mjs";
3
+ } from "./chunk-KJWZUQVA.mjs";
4
+ import "./chunk-6AKBCBL4.mjs";
5
5
 
6
- // packages/plugins/plugin-sheet/src/capabilities/compute-graph-registry.ts
6
+ // src/capabilities/compute-graph-registry.ts
7
7
  import { contributes } from "@dxos/app-framework";
8
8
  import { ClientCapabilities } from "@dxos/plugin-client";
9
9
  var isSecure = (protocol) => {
@@ -27,4 +27,4 @@ var compute_graph_registry_default = async (context) => {
27
27
  export {
28
28
  compute_graph_registry_default as default
29
29
  };
30
- //# sourceMappingURL=compute-graph-registry-IXGGJJBU.mjs.map
30
+ //# sourceMappingURL=compute-graph-registry-VG7VP7IV.mjs.map
@@ -1,31 +1,31 @@
1
1
  import {
2
2
  SheetCapabilities
3
- } from "./chunk-IR42IS3F.mjs";
3
+ } from "./chunk-KJWZUQVA.mjs";
4
4
  import {
5
5
  SheetAction,
6
6
  SheetType
7
- } from "./chunk-I7FZ4TWJ.mjs";
7
+ } from "./chunk-SI4X5GUR.mjs";
8
8
  import {
9
9
  SHEET_PLUGIN,
10
10
  meta
11
- } from "./chunk-D3G4UGEK.mjs";
11
+ } from "./chunk-6AKBCBL4.mjs";
12
12
 
13
- // packages/plugins/plugin-sheet/src/capabilities/index.ts
13
+ // src/capabilities/index.ts
14
14
  import { lazy } from "@dxos/app-framework";
15
- var AnchorSort = lazy(() => import("./anchor-sort-NYYZLRAA.mjs"));
16
- var ComputeGraphRegistry = lazy(() => import("./compute-graph-registry-IXGGJJBU.mjs"));
17
- var IntentResolver = lazy(() => import("./intent-resolver-IBBI6B74.mjs"));
18
- var Markdown = lazy(() => import("./markdown-T4TUP4BF.mjs"));
19
- var ReactSurface = lazy(() => import("./react-surface-UI46P43F.mjs"));
15
+ var AnchorSort = lazy(() => import("./anchor-sort-VHURGBOY.mjs"));
16
+ var ComputeGraphRegistry = lazy(() => import("./compute-graph-registry-VG7VP7IV.mjs"));
17
+ var IntentResolver = lazy(() => import("./intent-resolver-WOJGZMSV.mjs"));
18
+ var Markdown = lazy(() => import("./markdown-VXMIPUQC.mjs"));
19
+ var ReactSurface = lazy(() => import("./react-surface-DAHMBIQW.mjs"));
20
20
 
21
- // packages/plugins/plugin-sheet/src/SheetPlugin.tsx
21
+ // src/SheetPlugin.tsx
22
22
  import { Capabilities, contributes, createIntent, defineModule, definePlugin, Events } from "@dxos/app-framework";
23
23
  import { ClientEvents } from "@dxos/plugin-client";
24
24
  import { MarkdownEvents } from "@dxos/plugin-markdown";
25
25
  import { SpaceCapabilities } from "@dxos/plugin-space";
26
26
  import { defineObjectForm } from "@dxos/plugin-space/types";
27
27
 
28
- // packages/plugins/plugin-sheet/src/serializer.ts
28
+ // src/serializer.ts
29
29
  import { Obj } from "@dxos/echo";
30
30
  import { getObjectCore } from "@dxos/react-client/echo";
31
31
  var serializer = {
@@ -43,19 +43,18 @@ var serializer = {
43
43
  }
44
44
  };
45
45
 
46
- // packages/plugins/plugin-sheet/src/translations.ts
47
- import { Type } from "@dxos/echo";
48
- var translations_default = [
46
+ // src/translations.ts
47
+ var translations = [
49
48
  {
50
49
  "en-US": {
51
- [Type.getTypename(SheetType)]: {
50
+ [SheetType.typename]: {
52
51
  "typename label": "Sheet",
53
52
  "typename label_zero": "Sheets",
54
53
  "typename label_one": "Sheet",
55
54
  "typename label_other": "Sheets",
56
55
  "object name placeholder": "New sheet"
57
56
  },
58
- [SHEET_PLUGIN]: {
57
+ [meta.id]: {
59
58
  "plugin name": "Sheets",
60
59
  "cell placeholder": "Cell value...",
61
60
  "range key alignment label": "Align",
@@ -87,7 +86,7 @@ var translations_default = [
87
86
  }
88
87
  ];
89
88
 
90
- // packages/plugins/plugin-sheet/src/SheetPlugin.tsx
89
+ // src/SheetPlugin.tsx
91
90
  var SheetPlugin = () => definePlugin(meta, [
92
91
  defineModule({
93
92
  id: `${meta.id}/module/compute-graph-registry`,
@@ -97,7 +96,7 @@ var SheetPlugin = () => definePlugin(meta, [
97
96
  defineModule({
98
97
  id: `${meta.id}/module/translations`,
99
98
  activatesOn: Events.SetupTranslations,
100
- activate: () => contributes(Capabilities.Translations, translations_default)
99
+ activate: () => contributes(Capabilities.Translations, translations)
101
100
  }),
102
101
  defineModule({
103
102
  id: `${meta.id}/module/metadata`,