@dxos/plugin-sheet 0.8.4-main.28f8d3d → 0.8.4-main.2c6827d
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.
- package/dist/lib/browser/{SheetContainer-JZNFXBW3.mjs → SheetContainer-67YEU5EA.mjs} +41 -43
- package/dist/lib/browser/SheetContainer-67YEU5EA.mjs.map +7 -0
- package/dist/lib/browser/anchor-sort-FCQ5OZZK.mjs +23 -0
- package/dist/lib/browser/anchor-sort-FCQ5OZZK.mjs.map +7 -0
- package/dist/lib/browser/{chunk-BVTHIA5U.mjs → chunk-6WBJDEKF.mjs} +37 -32
- package/dist/lib/browser/chunk-6WBJDEKF.mjs.map +7 -0
- package/dist/lib/browser/{chunk-KJWZUQVA.mjs → chunk-73AV3NH6.mjs} +4 -4
- package/dist/lib/browser/chunk-73AV3NH6.mjs.map +7 -0
- package/dist/lib/browser/{chunk-VTTKAHAY.mjs → chunk-7VEWYJJN.mjs} +2 -2
- package/dist/lib/browser/chunk-7VEWYJJN.mjs.map +7 -0
- package/dist/lib/browser/{chunk-ELAASQ5H.mjs → chunk-DVJ3QW3F.mjs} +215 -207
- package/dist/lib/browser/chunk-DVJ3QW3F.mjs.map +7 -0
- package/dist/lib/browser/chunk-FWFAAGXL.mjs +28 -0
- package/dist/lib/browser/chunk-FWFAAGXL.mjs.map +7 -0
- package/dist/lib/browser/compute-graph-registry-AP5RA7W3.mjs +21 -0
- package/dist/lib/browser/compute-graph-registry-AP5RA7W3.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +20 -21
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-SSLPTP5O.mjs → intent-resolver-66OAYVQF.mjs} +9 -9
- package/dist/lib/browser/intent-resolver-66OAYVQF.mjs.map +7 -0
- package/dist/lib/browser/{markdown-3VPZYNGU.mjs → markdown-B6VKYY2S.mjs} +6 -6
- package/dist/lib/browser/{markdown-3VPZYNGU.mjs.map → markdown-B6VKYY2S.mjs.map} +1 -1
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-surface-Y7KTPJW2.mjs → react-surface-HARAYCN7.mjs} +16 -15
- package/dist/lib/browser/react-surface-HARAYCN7.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +4 -12
- package/dist/lib/node-esm/{SheetContainer-GOIBAE2P.mjs → SheetContainer-NJONAMYZ.mjs} +41 -43
- package/dist/lib/node-esm/SheetContainer-NJONAMYZ.mjs.map +7 -0
- package/dist/lib/node-esm/{anchor-sort-YM2UBIKL.mjs → anchor-sort-ZE7IS7SH.mjs} +10 -11
- package/dist/lib/node-esm/anchor-sort-ZE7IS7SH.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-6SK5LJ5S.mjs → chunk-44YTKTMP.mjs} +4 -4
- package/dist/lib/node-esm/chunk-44YTKTMP.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-4L5CIB7E.mjs → chunk-4H2EHVWE.mjs} +215 -207
- package/dist/lib/node-esm/chunk-4H2EHVWE.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-FXRXBHWM.mjs → chunk-4QV4AGWK.mjs} +2 -2
- package/dist/lib/node-esm/chunk-4QV4AGWK.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-HILDMVPL.mjs +29 -0
- package/dist/lib/node-esm/chunk-HILDMVPL.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-56HYMW55.mjs → chunk-S3RJ7IY6.mjs} +37 -32
- package/dist/lib/node-esm/chunk-S3RJ7IY6.mjs.map +7 -0
- package/dist/lib/node-esm/compute-graph-registry-UMQ5UYCL.mjs +22 -0
- package/dist/lib/node-esm/compute-graph-registry-UMQ5UYCL.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +20 -21
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-5P6DBGK2.mjs → intent-resolver-VNKIMQQT.mjs} +9 -9
- package/dist/lib/node-esm/intent-resolver-VNKIMQQT.mjs.map +7 -0
- package/dist/lib/node-esm/{markdown-SFDGQWYE.mjs → markdown-VKY7HXU2.mjs} +6 -6
- package/dist/lib/node-esm/{markdown-SFDGQWYE.mjs.map → markdown-VKY7HXU2.mjs.map} +1 -1
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-surface-6Z5FAOBH.mjs → react-surface-KTQWXV2L.mjs} +16 -15
- package/dist/lib/node-esm/react-surface-KTQWXV2L.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +4 -12
- package/dist/types/src/SheetPlugin.d.ts +1 -1
- package/dist/types/src/SheetPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/anchor-sort.d.ts +2 -4
- package/dist/types/src/capabilities/anchor-sort.d.ts.map +1 -1
- package/dist/types/src/capabilities/compute-graph-registry.d.ts +1 -1
- package/dist/types/src/capabilities/compute-graph-registry.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +5 -10
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
- package/dist/types/src/capabilities/markdown.d.ts +1 -3
- package/dist/types/src/capabilities/markdown.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/components/ComputeGraph/compute-graph.stories.d.ts +9 -4
- package/dist/types/src/components/ComputeGraph/compute-graph.stories.d.ts.map +1 -1
- package/dist/types/src/components/GridSheet/GridSheet.d.ts.map +1 -1
- package/dist/types/src/components/GridSheet/GridSheet.stories.d.ts +50 -3
- package/dist/types/src/components/GridSheet/GridSheet.stories.d.ts.map +1 -1
- package/dist/types/src/components/GridSheet/SheetCellEditor.stories.d.ts +11 -20
- package/dist/types/src/components/GridSheet/SheetCellEditor.stories.d.ts.map +1 -1
- package/dist/types/src/components/GridSheet/util.d.ts.map +1 -1
- package/dist/types/src/components/RangeList/RangeList.d.ts +2 -2
- package/dist/types/src/components/RangeList/RangeList.d.ts.map +1 -1
- package/dist/types/src/components/SheetContainer/SheetContainer.d.ts +2 -2
- package/dist/types/src/components/SheetContainer/SheetContainer.d.ts.map +1 -1
- package/dist/types/src/components/SheetContainer/SheetContainer.stories.d.ts +52 -5
- package/dist/types/src/components/SheetContainer/SheetContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/SheetContext/SheetContext.d.ts +2 -2
- package/dist/types/src/components/SheetContext/SheetContext.d.ts.map +1 -1
- package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts +3 -4
- package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts.map +1 -1
- package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts +86 -4
- package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts.map +1 -1
- package/dist/types/src/extensions/compute.d.ts +1 -1
- package/dist/types/src/extensions/compute.d.ts.map +1 -1
- package/dist/types/src/extensions/compute.stories.d.ts +10 -13
- package/dist/types/src/extensions/compute.stories.d.ts.map +1 -1
- package/dist/types/src/extensions/editor/index.d.ts +1 -1
- package/dist/types/src/extensions/editor/index.d.ts.map +1 -1
- package/dist/types/src/extensions/editor/{extension.d.ts → sheet-extension.d.ts} +1 -1
- package/dist/types/src/extensions/editor/sheet-extension.d.ts.map +1 -0
- package/dist/types/src/extensions/editor/sheet-extension.test.d.ts +2 -0
- package/dist/types/src/extensions/editor/sheet-extension.test.d.ts.map +1 -0
- package/dist/types/src/integrations/thread-ranges.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +0 -1
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/model/sheet-model.d.ts +5 -5
- package/dist/types/src/model/sheet-model.d.ts.map +1 -1
- package/dist/types/src/model/testing.d.ts +2 -2
- package/dist/types/src/model/testing.d.ts.map +1 -1
- package/dist/types/src/model/useSheetModel.d.ts +2 -2
- package/dist/types/src/model/useSheetModel.d.ts.map +1 -1
- package/dist/types/src/serializer.d.ts +2 -2
- package/dist/types/src/serializer.d.ts.map +1 -1
- package/dist/types/src/testing/data.d.ts +2 -2
- package/dist/types/src/testing/data.d.ts.map +1 -1
- package/dist/types/src/testing/testing.d.ts +27 -3
- package/dist/types/src/testing/testing.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +2 -2
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/{schema.d.ts → Sheet.d.ts} +37 -4
- package/dist/types/src/types/Sheet.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +1 -1
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/types/sheet-range-types.d.ts +2 -2
- package/dist/types/src/types/sheet-range-types.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +7 -16
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/types/util.d.ts +9 -10
- package/dist/types/src/types/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +65 -64
- package/src/SheetPlugin.tsx +70 -61
- package/src/capabilities/anchor-sort.ts +7 -8
- package/src/capabilities/capabilities.ts +2 -2
- package/src/capabilities/compute-graph-registry.ts +8 -13
- package/src/capabilities/intent-resolver.ts +4 -4
- package/src/capabilities/react-surface.tsx +9 -8
- package/src/components/ComputeGraph/compute-graph.stories.tsx +18 -18
- package/src/components/FunctionEditor/FunctionEditor.tsx +2 -2
- package/src/components/GridSheet/GridSheet.stories.tsx +17 -12
- package/src/components/GridSheet/GridSheet.tsx +24 -12
- package/src/components/GridSheet/SheetCellEditor.stories.tsx +40 -42
- package/src/components/GridSheet/util.ts +9 -3
- package/src/components/RangeList/RangeList.tsx +8 -8
- package/src/components/SheetContainer/SheetContainer.stories.tsx +45 -42
- package/src/components/SheetContainer/SheetContainer.tsx +10 -5
- package/src/components/SheetContext/SheetContext.tsx +4 -4
- package/src/components/SheetToolbar/SheetToolbar.stories.tsx +17 -12
- package/src/components/SheetToolbar/SheetToolbar.tsx +27 -29
- package/src/components/SheetToolbar/align.ts +3 -3
- package/src/components/SheetToolbar/style.ts +2 -2
- package/src/extensions/compute.stories.tsx +29 -26
- package/src/extensions/compute.ts +1 -2
- package/src/extensions/editor/index.ts +1 -1
- package/src/extensions/editor/{extension.test.ts → sheet-extension.test.ts} +1 -1
- package/src/integrations/thread-ranges.ts +15 -20
- package/src/meta.ts +7 -5
- package/src/model/sheet-model.test.ts +4 -4
- package/src/model/sheet-model.ts +4 -4
- package/src/model/testing.ts +4 -4
- package/src/model/useSheetModel.ts +2 -2
- package/src/sanity.test.ts +3 -4
- package/src/serializer.ts +3 -3
- package/src/testing/data.ts +2 -2
- package/src/testing/testing.tsx +11 -5
- package/src/translations.ts +2 -2
- package/src/types/Sheet.ts +103 -0
- package/src/types/index.ts +1 -1
- package/src/types/sheet-range-types.ts +2 -2
- package/src/types/types.ts +6 -16
- package/src/types/util.ts +10 -38
- package/dist/lib/browser/SheetContainer-JZNFXBW3.mjs.map +0 -7
- package/dist/lib/browser/anchor-sort-VRX3YZKT.mjs +0 -24
- package/dist/lib/browser/anchor-sort-VRX3YZKT.mjs.map +0 -7
- package/dist/lib/browser/chunk-6AKBCBL4.mjs +0 -18
- package/dist/lib/browser/chunk-6AKBCBL4.mjs.map +0 -7
- package/dist/lib/browser/chunk-BVTHIA5U.mjs.map +0 -7
- package/dist/lib/browser/chunk-ELAASQ5H.mjs.map +0 -7
- package/dist/lib/browser/chunk-KJWZUQVA.mjs.map +0 -7
- package/dist/lib/browser/chunk-VTTKAHAY.mjs.map +0 -7
- package/dist/lib/browser/compute-graph-registry-6YJHXORG.mjs +0 -30
- package/dist/lib/browser/compute-graph-registry-6YJHXORG.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-SSLPTP5O.mjs.map +0 -7
- package/dist/lib/browser/react-surface-Y7KTPJW2.mjs.map +0 -7
- package/dist/lib/node-esm/SheetContainer-GOIBAE2P.mjs.map +0 -7
- package/dist/lib/node-esm/anchor-sort-YM2UBIKL.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-3K5VNYOF.mjs +0 -20
- package/dist/lib/node-esm/chunk-3K5VNYOF.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-4L5CIB7E.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-56HYMW55.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-6SK5LJ5S.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-FXRXBHWM.mjs.map +0 -7
- package/dist/lib/node-esm/compute-graph-registry-ET5KJNLV.mjs +0 -31
- package/dist/lib/node-esm/compute-graph-registry-ET5KJNLV.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-5P6DBGK2.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-6Z5FAOBH.mjs.map +0 -7
- package/dist/types/src/extensions/editor/extension.d.ts.map +0 -1
- package/dist/types/src/extensions/editor/extension.test.d.ts +0 -2
- package/dist/types/src/extensions/editor/extension.test.d.ts.map +0 -1
- package/dist/types/src/types/schema.d.ts.map +0 -1
- package/src/types/schema.ts +0 -61
- /package/src/extensions/editor/{extension.ts → sheet-extension.ts} +0 -0
|
@@ -3,22 +3,22 @@ import {
|
|
|
3
3
|
SheetProvider,
|
|
4
4
|
useComputeGraph,
|
|
5
5
|
useSheetContext
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-6WBJDEKF.mjs";
|
|
7
7
|
import {
|
|
8
8
|
alignKey,
|
|
9
9
|
mapFormulaIndicesToRefs,
|
|
10
10
|
rangeFromIndex,
|
|
11
11
|
rangeToIndex
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-DVJ3QW3F.mjs";
|
|
13
|
+
import "./chunk-7VEWYJJN.mjs";
|
|
14
14
|
import {
|
|
15
|
-
|
|
16
|
-
} from "./chunk-
|
|
15
|
+
meta
|
|
16
|
+
} from "./chunk-FWFAAGXL.mjs";
|
|
17
17
|
|
|
18
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
|
-
import {
|
|
21
|
+
import { Obj } from "@dxos/echo";
|
|
22
22
|
import { StackItem } from "@dxos/react-ui-stack";
|
|
23
23
|
|
|
24
24
|
// src/components/FunctionEditor/FunctionEditor.tsx
|
|
@@ -42,11 +42,11 @@ var FunctionEditor = () => {
|
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
return /* @__PURE__ */ React.createElement("div", {
|
|
45
|
-
className: "flex shrink-0 justify-between items-center
|
|
45
|
+
className: "flex shrink-0 justify-between items-center pli-4 plb-1 text-sm bg-toolbarSurface border-bs !border-subduedSeparator"
|
|
46
46
|
}, /* @__PURE__ */ React.createElement("div", {
|
|
47
47
|
className: "flex gap-4 items-center"
|
|
48
48
|
}, /* @__PURE__ */ React.createElement("div", {
|
|
49
|
-
className: "flex
|
|
49
|
+
className: "flex is-16 items-center font-mono"
|
|
50
50
|
}, range && rangeToA1Notation(range) || cursor && addressToA1Notation(cursor)), /* @__PURE__ */ React.createElement("div", {
|
|
51
51
|
className: "flex gap-2 items-center"
|
|
52
52
|
}, /* @__PURE__ */ React.createElement(Icon, {
|
|
@@ -65,10 +65,10 @@ var FunctionEditor = () => {
|
|
|
65
65
|
|
|
66
66
|
// src/components/SheetToolbar/SheetToolbar.tsx
|
|
67
67
|
import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
|
|
68
|
-
import {
|
|
68
|
+
import { Atom } from "@effect-atom/atom-react";
|
|
69
69
|
import React2, { useMemo as useMemo2 } from "react";
|
|
70
|
-
import { useAppGraph } from "@dxos/app-framework";
|
|
71
|
-
import { MenuProvider, ToolbarMenu,
|
|
70
|
+
import { useAppGraph } from "@dxos/app-framework/react";
|
|
71
|
+
import { MenuProvider, ToolbarMenu, atomFromSignal, createGapSeparator, useMenuActions } from "@dxos/react-ui-menu";
|
|
72
72
|
|
|
73
73
|
// src/components/SheetToolbar/align.ts
|
|
74
74
|
import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
|
|
@@ -98,7 +98,7 @@ var createAlignGroupAction = (value) => createMenuItemGroup("align", {
|
|
|
98
98
|
label: [
|
|
99
99
|
"align label",
|
|
100
100
|
{
|
|
101
|
-
ns:
|
|
101
|
+
ns: meta.id
|
|
102
102
|
}
|
|
103
103
|
],
|
|
104
104
|
variant: "toggleGroup",
|
|
@@ -133,7 +133,7 @@ var createAlignActions = (model, state, cursorFallbackRange) => Object.entries(a
|
|
|
133
133
|
label: [
|
|
134
134
|
`range value ${alignValue} label`,
|
|
135
135
|
{
|
|
136
|
-
ns:
|
|
136
|
+
ns: meta.id
|
|
137
137
|
}
|
|
138
138
|
],
|
|
139
139
|
icon,
|
|
@@ -218,7 +218,7 @@ var createStyleActions = (model, state, cursorFallbackRange) => Object.entries(s
|
|
|
218
218
|
label: [
|
|
219
219
|
`range value ${styleValue} label`,
|
|
220
220
|
{
|
|
221
|
-
ns:
|
|
221
|
+
ns: meta.id
|
|
222
222
|
}
|
|
223
223
|
],
|
|
224
224
|
checked: !!state[styleValue]
|
|
@@ -254,32 +254,31 @@ var useToolbarState = (initialState = {}) => {
|
|
|
254
254
|
|
|
255
255
|
// src/components/SheetToolbar/SheetToolbar.tsx
|
|
256
256
|
var createToolbarActions = (model, state, cursorFallbackRange, customActions) => {
|
|
257
|
-
return
|
|
258
|
-
const align = get(
|
|
259
|
-
const style = get(
|
|
257
|
+
return Atom.make((get) => {
|
|
258
|
+
const align = get(atomFromSignal(() => createAlign(model, state, cursorFallbackRange)));
|
|
259
|
+
const style = get(atomFromSignal(() => createStyle(model, state, cursorFallbackRange)));
|
|
260
260
|
const gap = createGapSeparator();
|
|
261
|
-
const
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
261
|
+
const graph = {
|
|
262
|
+
nodes: [
|
|
263
|
+
...align.nodes,
|
|
264
|
+
...style.nodes,
|
|
265
|
+
...gap.nodes
|
|
266
|
+
],
|
|
267
|
+
edges: [
|
|
268
|
+
...align.edges,
|
|
269
|
+
...style.edges,
|
|
270
|
+
...gap.edges
|
|
271
|
+
]
|
|
272
|
+
};
|
|
271
273
|
if (customActions) {
|
|
272
274
|
const custom = get(customActions);
|
|
273
|
-
nodes.push(...custom.nodes);
|
|
274
|
-
edges.push(...custom.edges);
|
|
275
|
+
graph.nodes.push(...custom.nodes);
|
|
276
|
+
graph.edges.push(...custom.edges);
|
|
275
277
|
}
|
|
276
|
-
return
|
|
277
|
-
nodes,
|
|
278
|
-
edges
|
|
279
|
-
};
|
|
278
|
+
return graph;
|
|
280
279
|
});
|
|
281
280
|
};
|
|
282
|
-
var SheetToolbar = ({ id
|
|
281
|
+
var SheetToolbar = ({ id }) => {
|
|
283
282
|
var _effect = _useSignals3();
|
|
284
283
|
try {
|
|
285
284
|
const { model, cursorFallbackRange } = useSheetContext();
|
|
@@ -288,7 +287,7 @@ var SheetToolbar = ({ id, classNames }) => {
|
|
|
288
287
|
useStyleState(state);
|
|
289
288
|
const { graph } = useAppGraph();
|
|
290
289
|
const customActions = useMemo2(() => {
|
|
291
|
-
return
|
|
290
|
+
return Atom.make((get) => {
|
|
292
291
|
const actions = get(graph.actions(id));
|
|
293
292
|
const nodes = actions.filter((action) => action.properties.disposition === "toolbar");
|
|
294
293
|
return {
|
|
@@ -312,9 +311,7 @@ var SheetToolbar = ({ id, classNames }) => {
|
|
|
312
311
|
return /* @__PURE__ */ React2.createElement(MenuProvider, {
|
|
313
312
|
...menu,
|
|
314
313
|
attendableId: id
|
|
315
|
-
}, /* @__PURE__ */ React2.createElement(ToolbarMenu,
|
|
316
|
-
classNames
|
|
317
|
-
}));
|
|
314
|
+
}, /* @__PURE__ */ React2.createElement(ToolbarMenu, null));
|
|
318
315
|
} finally {
|
|
319
316
|
_effect.f();
|
|
320
317
|
}
|
|
@@ -332,11 +329,12 @@ var SheetContainer = ({ space, sheet, role, ignoreAttention }) => {
|
|
|
332
329
|
}, /* @__PURE__ */ React3.createElement(StackItem.Content, {
|
|
333
330
|
toolbar: true,
|
|
334
331
|
statusbar: true,
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
332
|
+
classNames: [
|
|
333
|
+
role === "section" && "aspect-video",
|
|
334
|
+
role === "story" && "bs-full"
|
|
335
|
+
]
|
|
338
336
|
}, /* @__PURE__ */ React3.createElement(SheetToolbar, {
|
|
339
|
-
id:
|
|
337
|
+
id: Obj.getDXN(sheet).toString()
|
|
340
338
|
}), /* @__PURE__ */ React3.createElement(GridSheet, null), /* @__PURE__ */ React3.createElement(FunctionEditor, null))) : null;
|
|
341
339
|
} finally {
|
|
342
340
|
_effect.f();
|
|
@@ -348,4 +346,4 @@ var SheetContainer_default = SheetContainer;
|
|
|
348
346
|
export {
|
|
349
347
|
SheetContainer_default as default
|
|
350
348
|
};
|
|
351
|
-
//# sourceMappingURL=SheetContainer-
|
|
349
|
+
//# sourceMappingURL=SheetContainer-67YEU5EA.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/SheetContainer/SheetContainer.tsx", "../../../src/components/FunctionEditor/FunctionEditor.tsx", "../../../src/components/SheetToolbar/SheetToolbar.tsx", "../../../src/components/SheetToolbar/align.ts", "../../../src/components/SheetToolbar/style.ts", "../../../src/components/SheetToolbar/useToolbarState.ts", "../../../src/components/SheetContainer/index.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Obj } from '@dxos/echo';\nimport { type Space } from '@dxos/react-client/echo';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nimport { type Sheet } from '../../types';\nimport { useComputeGraph } from '../ComputeGraph';\nimport { FunctionEditor } from '../FunctionEditor';\nimport { GridSheet } from '../GridSheet';\nimport { SheetProvider } from '../SheetContext';\nimport { SheetToolbar } from '../SheetToolbar';\n\nexport type SheetContainerProps = {\n space: Space;\n sheet: Sheet.Sheet;\n role?: string;\n ignoreAttention?: boolean;\n};\n\nexport const SheetContainer = ({ space, sheet, role, ignoreAttention }: SheetContainerProps) => {\n const graph = useComputeGraph(space);\n\n return graph ? (\n <SheetProvider sheet={sheet} graph={graph} ignoreAttention={ignoreAttention}>\n <StackItem.Content\n toolbar\n statusbar\n classNames={[role === 'section' && 'aspect-video', role === 'story' && 'bs-full']}\n >\n <SheetToolbar id={Obj.getDXN(sheet).toString()} />\n <GridSheet />\n <FunctionEditor />\n </StackItem.Content>\n </SheetProvider>\n ) : null;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { addressToA1Notation, isFormula, rangeToA1Notation } from '@dxos/compute';\nimport { Icon } from '@dxos/react-ui';\n\nimport { mapFormulaIndicesToRefs } from '../../types';\nimport { useSheetContext } from '../SheetContext';\n\nexport const FunctionEditor = () => {\n const { model, cursor, range } = useSheetContext();\n\n let value;\n let formula = false;\n if (cursor) {\n value = model.getCellValue(cursor);\n if (isFormula(value)) {\n value = model.graph.mapFunctionBindingFromId(mapFormulaIndicesToRefs(model.sheet, value));\n formula = true;\n } else if (value != null) {\n value = String(value);\n }\n }\n\n return (\n <div className='flex shrink-0 justify-between items-center pli-4 plb-1 text-sm bg-toolbarSurface border-bs !border-subduedSeparator'>\n <div className='flex gap-4 items-center'>\n <div className='flex is-16 items-center font-mono'>\n {(range && rangeToA1Notation(range)) || (cursor && addressToA1Notation(cursor))}\n </div>\n <div className='flex gap-2 items-center'>\n <Icon icon='ph--function--regular' classNames={['text-greenText', formula ? 'visible' : 'invisible']} />\n <span className='font-mono'>{value}</span>\n </div>\n </div>\n </div>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Atom } from '@effect-atom/atom-react';\nimport React, { type PropsWithChildren, useMemo } from 'react';\n\nimport { useAppGraph } from '@dxos/app-framework/react';\nimport { type CompleteCellRange } from '@dxos/compute';\nimport {\n type ActionGraphProps,\n MenuProvider,\n ToolbarMenu,\n atomFromSignal,\n createGapSeparator,\n useMenuActions,\n} from '@dxos/react-ui-menu';\n\nimport { type SheetModel } from '../../model';\nimport { useSheetContext } from '../SheetContext';\n\nimport { createAlign, useAlignState } from './align';\nimport { createStyle, useStyleState } from './style';\nimport { type ToolbarState, useToolbarState } from './useToolbarState';\n\nconst createToolbarActions = (\n model: SheetModel,\n state: ToolbarState,\n cursorFallbackRange?: CompleteCellRange,\n customActions?: Atom.Atom<ActionGraphProps>,\n): Atom.Atom<ActionGraphProps> => {\n return Atom.make((get) => {\n const align = get(atomFromSignal(() => createAlign(model, state, cursorFallbackRange)));\n const style = get(atomFromSignal(() => createStyle(model, state, cursorFallbackRange)));\n const gap = createGapSeparator();\n\n const graph: ActionGraphProps = {\n nodes: [...align.nodes, ...style.nodes, ...gap.nodes],\n edges: [...align.edges, ...style.edges, ...gap.edges],\n };\n\n if (customActions) {\n const custom = get(customActions);\n graph.nodes.push(...custom.nodes);\n graph.edges.push(...custom.edges);\n }\n\n return graph;\n });\n};\n\nexport type SheetToolbarProps = PropsWithChildren<{ id: string }>;\n\nexport const SheetToolbar = ({ id }: SheetToolbarProps) => {\n const { model, cursorFallbackRange } = useSheetContext();\n const state = useToolbarState({});\n useAlignState(state);\n useStyleState(state);\n\n const { graph } = useAppGraph();\n const customActions = useMemo(() => {\n return Atom.make((get) => {\n const actions = get(graph.actions(id));\n const nodes = actions.filter((action) => action.properties.disposition === 'toolbar');\n return {\n nodes,\n edges: nodes.map((node) => ({ source: 'root', target: node.id })),\n };\n });\n }, [graph]);\n\n const actionsCreator = useMemo(\n () => createToolbarActions(model, state, cursorFallbackRange, customActions),\n [model, state, cursorFallbackRange, customActions],\n );\n const menu = useMenuActions(actionsCreator);\n\n return (\n <MenuProvider {...menu} attendableId={id}>\n <ToolbarMenu />\n </MenuProvider>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useEffect } from 'react';\n\nimport { type CompleteCellRange, inRange } from '@dxos/compute';\nimport { type ToolbarMenuActionGroupProperties, createMenuAction, createMenuItemGroup } from '@dxos/react-ui-menu';\n\nimport { meta } from '../../meta';\nimport { type SheetModel } from '../../model';\nimport { type AlignKey, type AlignValue, alignKey, rangeFromIndex, rangeToIndex } from '../../types';\nimport { useSheetContext } from '../SheetContext';\n\nimport { type ToolbarState } from './useToolbarState';\n\nexport type AlignAction = { key: AlignKey; value: AlignValue };\n\nexport type AlignState = { [alignKey]: AlignValue | undefined };\n\nconst aligns: Record<AlignValue, string> = {\n start: 'ph--text-align-left--regular',\n center: 'ph--text-align-center--regular',\n end: 'ph--text-align-right--regular',\n};\n\nexport const useAlignState = (state: Partial<AlignState>) => {\n const { cursor, model } = useSheetContext();\n useEffect(() => {\n // TODO(thure): Can this O(n) call be memoized?\n state[alignKey] = (\n cursor\n ? model.sheet.ranges?.findLast(\n ({ range, key }) => key === alignKey && inRange(rangeFromIndex(model.sheet, range), cursor),\n )?.value\n : undefined\n ) as AlignValue | undefined;\n }, [cursor, model.sheet]);\n};\n\nconst createAlignGroupAction = (value?: AlignValue) =>\n createMenuItemGroup('align', {\n label: ['align label', { ns: meta.id }],\n variant: 'toggleGroup',\n selectCardinality: 'single',\n value: `${alignKey}--${value}`,\n } as ToolbarMenuActionGroupProperties);\n\nconst createAlignActions = (model: SheetModel, state: ToolbarState, cursorFallbackRange?: CompleteCellRange) =>\n Object.entries(aligns).map(([alignValue, icon]) => {\n return createMenuAction<AlignAction>(\n `${alignKey}--${alignValue}`,\n () => {\n if (!cursorFallbackRange) {\n return;\n }\n const index =\n model.sheet.ranges?.findIndex(\n (range) =>\n range.key === alignKey && inRange(rangeFromIndex(model.sheet, range.range), cursorFallbackRange.from),\n ) ?? -1;\n const nextRangeEntity = {\n range: rangeToIndex(model.sheet, cursorFallbackRange),\n key: alignKey,\n value: alignValue as AlignValue,\n };\n if (index < 0) {\n model.sheet.ranges?.push(nextRangeEntity);\n state[alignKey] = nextRangeEntity.value;\n } else if (model.sheet.ranges![index].value === nextRangeEntity.value) {\n model.sheet.ranges?.splice(index, 1);\n state[alignKey] = undefined;\n } else {\n model.sheet.ranges?.splice(index, 1, nextRangeEntity);\n state[alignKey] = nextRangeEntity.value;\n }\n },\n {\n key: alignKey,\n value: alignValue as AlignValue,\n checked: state[alignKey] === alignValue,\n label: [`range value ${alignValue} label`, { ns: meta.id }],\n icon,\n testId: `grid.toolbar.${alignKey}.${alignValue}`,\n },\n );\n });\n\nexport const createAlign = (model: SheetModel, state: ToolbarState, cursorFallbackRange?: CompleteCellRange) => {\n const alignGroup = createAlignGroupAction(state[alignKey]);\n const alignActions = createAlignActions(model, state, cursorFallbackRange);\n return {\n nodes: [alignGroup, ...alignActions],\n edges: [\n { source: 'root', target: 'align' },\n ...alignActions.map(({ id }) => ({ source: alignGroup.id, target: id })),\n ],\n };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useEffect } from 'react';\n\nimport { type CompleteCellRange, inRange } from '@dxos/compute';\nimport { type ToolbarMenuActionGroupProperties, createMenuAction, createMenuItemGroup } from '@dxos/react-ui-menu';\n\nimport { meta } from '../../meta';\nimport { type SheetModel } from '../../model';\nimport { type StyleKey, type StyleValue, rangeFromIndex, rangeToIndex } from '../../types';\nimport { useSheetContext } from '../SheetContext';\n\nexport type StyleState = Partial<Record<StyleValue, boolean>>;\n\nexport type StyleAction = { key: StyleKey; value: StyleValue };\n\nconst styles: Record<StyleValue, string> = {\n highlight: 'ph--highlighter--regular',\n softwrap: 'ph--paragraph--regular',\n};\n\nexport const useStyleState = (state: StyleState) => {\n const { cursorFallbackRange, model } = useSheetContext();\n\n useEffect(() => {\n state.highlight = false;\n state.softwrap = false;\n if (cursorFallbackRange && model.sheet.ranges) {\n model.sheet.ranges\n .filter(\n ({ range, key }) => key === 'style' && inRange(rangeFromIndex(model.sheet, range), cursorFallbackRange.from),\n )\n .forEach(({ value }) => {\n state[value as StyleValue] = true;\n });\n }\n }, [cursorFallbackRange, model.sheet]);\n};\n\nconst createStyleGroup = (state: StyleState) => {\n return createMenuItemGroup('style', {\n variant: 'toggleGroup',\n selectCardinality: 'multiple',\n value: Object.keys(styles)\n .filter((key) => !!state[key as StyleValue])\n .map((styleValue) => `style--${styleValue}`),\n } as ToolbarMenuActionGroupProperties);\n};\n\nconst createStyleActions = (model: SheetModel, state: StyleState, cursorFallbackRange?: CompleteCellRange) =>\n Object.entries(styles).map(([styleValue, icon]) => {\n return createMenuAction<StyleAction>(\n `style--${styleValue}`,\n () => {\n if (!cursorFallbackRange) {\n return;\n }\n const index =\n model.sheet.ranges?.findIndex(\n (range) =>\n range.key === 'style' && inRange(rangeFromIndex(model.sheet, range.range), cursorFallbackRange.from),\n ) ?? -1;\n const nextRangeEntity = {\n range: rangeToIndex(model.sheet, cursorFallbackRange),\n key: 'style',\n value: styleValue as StyleValue,\n };\n if (\n model.sheet.ranges\n .filter(\n ({ range, key: rangeKey }) =>\n rangeKey === 'style' && inRange(rangeFromIndex(model.sheet, range), cursorFallbackRange.from),\n )\n .some(({ value: rangeValue }) => rangeValue === styleValue)\n ) {\n // this value should be unset\n if (index >= 0) {\n model.sheet.ranges?.splice(index, 1);\n }\n state[nextRangeEntity.value] = false;\n } else {\n model.sheet.ranges?.push(nextRangeEntity);\n state[nextRangeEntity.value] = true;\n }\n },\n {\n key: 'style',\n value: styleValue as StyleValue,\n icon,\n label: [`range value ${styleValue} label`, { ns: meta.id }],\n checked: !!state[styleValue as StyleValue],\n },\n );\n });\n\nexport const createStyle = (model: SheetModel, state: StyleState, cursorFallbackRange?: CompleteCellRange) => {\n const styleGroupAction = createStyleGroup(state);\n const styleActions = createStyleActions(model, state, cursorFallbackRange);\n return {\n nodes: [styleGroupAction, ...styleActions],\n edges: [\n { source: 'root', target: 'style' },\n ...styleActions.map(({ id }) => ({ source: styleGroupAction.id, target: id })),\n ],\n };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useMemo } from 'react';\n\nimport { live } from '@dxos/live-object';\n\nimport { type AlignState } from './align';\nimport { type StyleState } from './style';\n\nexport type ToolbarState = Partial<StyleState & AlignState>;\n\nexport const useToolbarState = (initialState: ToolbarState = {}) => {\n return useMemo(() => live<ToolbarState>(initialState), []);\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { SheetContainer } from './SheetContainer';\n\nexport default SheetContainer;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AAIA,OAAOA,YAAW;AAElB,SAASC,WAAW;AAEpB,SAASC,iBAAiB;;;;ACJ1B,OAAOC,WAAW;AAElB,SAASC,qBAAqBC,WAAWC,yBAAyB;AAClE,SAASC,YAAY;AAKd,IAAMC,iBAAiB,MAAA;;;AAC5B,UAAM,EAAEC,OAAOC,QAAQC,MAAK,IAAKC,gBAAAA;AAEjC,QAAIC;AACJ,QAAIC,UAAU;AACd,QAAIJ,QAAQ;AACVG,cAAQJ,MAAMM,aAAaL,MAAAA;AAC3B,UAAIM,UAAUH,KAAAA,GAAQ;AACpBA,gBAAQJ,MAAMQ,MAAMC,yBAAyBC,wBAAwBV,MAAMW,OAAOP,KAAAA,CAAAA;AAClFC,kBAAU;MACZ,WAAWD,SAAS,MAAM;AACxBA,gBAAQQ,OAAOR,KAAAA;MACjB;IACF;AAEA,WACE,sBAAA,cAACS,OAAAA;MAAIC,WAAU;OACb,sBAAA,cAACD,OAAAA;MAAIC,WAAU;OACb,sBAAA,cAACD,OAAAA;MAAIC,WAAU;OACXZ,SAASa,kBAAkBb,KAAAA,KAAYD,UAAUe,oBAAoBf,MAAAA,CAAAA,GAEzE,sBAAA,cAACY,OAAAA;MAAIC,WAAU;OACb,sBAAA,cAACG,MAAAA;MAAKC,MAAK;MAAwBC,YAAY;QAAC;QAAkBd,UAAU,YAAY;;QACxF,sBAAA,cAACe,QAAAA;MAAKN,WAAU;OAAaV,KAAAA,CAAAA,CAAAA,CAAAA;;;;AAKvC;;;;ACpCA,SAASiB,YAAY;AACrB,OAAOC,UAAiCC,WAAAA,gBAAe;AAEvD,SAASC,mBAAmB;AAE5B,SAEEC,cACAC,aACAC,gBACAC,oBACAC,sBACK;;;;ACZP,SAASC,iBAAiB;AAE1B,SAAiCC,eAAe;AAChD,SAAgDC,kBAAkBC,2BAA2B;AAa7F,IAAMC,SAAqC;EACzCC,OAAO;EACPC,QAAQ;EACRC,KAAK;AACP;AAEO,IAAMC,gBAAgB,CAACC,UAAAA;;;AAC5B,UAAM,EAAEC,QAAQC,MAAK,IAAKC,gBAAAA;AAC1BC,cAAU,MAAA;AAERJ,YAAMK,QAAAA,IACJJ,SACIC,MAAMI,MAAMC,QAAQC,SAClB,CAAC,EAAEC,OAAOC,IAAG,MAAOA,QAAQL,YAAYM,QAAQC,eAAeV,MAAMI,OAAOG,KAAAA,GAAQR,MAAAA,CAAAA,GACnFY,QACHC;IAER,GAAG;MAACb;MAAQC,MAAMI;KAAM;;;;AAC1B;AAEA,IAAMS,yBAAyB,CAACF,UAC9BG,oBAAoB,SAAS;EAC3BC,OAAO;IAAC;IAAe;MAAEC,IAAIC,KAAKC;IAAG;;EACrCC,SAAS;EACTC,mBAAmB;EACnBT,OAAO,GAAGR,QAAAA,KAAaQ,KAAAA;AACzB,CAAA;AAEF,IAAMU,qBAAqB,CAACrB,OAAmBF,OAAqBwB,wBAClEC,OAAOC,QAAQ/B,MAAAA,EAAQgC,IAAI,CAAC,CAACC,YAAYC,IAAAA,MAAK;AAC5C,SAAOC,iBACL,GAAGzB,QAAAA,KAAauB,UAAAA,IAChB,MAAA;AACE,QAAI,CAACJ,qBAAqB;AACxB;IACF;AACA,UAAMO,QACJ7B,MAAMI,MAAMC,QAAQyB,UAClB,CAACvB,UACCA,MAAMC,QAAQL,YAAYM,QAAQC,eAAeV,MAAMI,OAAOG,MAAMA,KAAK,GAAGe,oBAAoBS,IAAI,CAAA,KACnG;AACP,UAAMC,kBAAkB;MACtBzB,OAAO0B,aAAajC,MAAMI,OAAOkB,mBAAAA;MACjCd,KAAKL;MACLQ,OAAOe;IACT;AACA,QAAIG,QAAQ,GAAG;AACb7B,YAAMI,MAAMC,QAAQ6B,KAAKF,eAAAA;AACzBlC,YAAMK,QAAAA,IAAY6B,gBAAgBrB;IACpC,WAAWX,MAAMI,MAAMC,OAAQwB,KAAAA,EAAOlB,UAAUqB,gBAAgBrB,OAAO;AACrEX,YAAMI,MAAMC,QAAQ8B,OAAON,OAAO,CAAA;AAClC/B,YAAMK,QAAAA,IAAYS;IACpB,OAAO;AACLZ,YAAMI,MAAMC,QAAQ8B,OAAON,OAAO,GAAGG,eAAAA;AACrClC,YAAMK,QAAAA,IAAY6B,gBAAgBrB;IACpC;EACF,GACA;IACEH,KAAKL;IACLQ,OAAOe;IACPU,SAAStC,MAAMK,QAAAA,MAAcuB;IAC7BX,OAAO;MAAC,eAAeW,UAAAA;MAAoB;QAAEV,IAAIC,KAAKC;MAAG;;IACzDS;IACAU,QAAQ,gBAAgBlC,QAAAA,IAAYuB,UAAAA;EACtC,CAAA;AAEJ,CAAA;AAEK,IAAMY,cAAc,CAACtC,OAAmBF,OAAqBwB,wBAAAA;AAClE,QAAMiB,aAAa1B,uBAAuBf,MAAMK,QAAAA,CAAS;AACzD,QAAMqC,eAAenB,mBAAmBrB,OAAOF,OAAOwB,mBAAAA;AACtD,SAAO;IACLmB,OAAO;MAACF;SAAeC;;IACvBE,OAAO;MACL;QAAEC,QAAQ;QAAQC,QAAQ;MAAQ;SAC/BJ,aAAaf,IAAI,CAAC,EAAEP,GAAE,OAAQ;QAAEyB,QAAQJ,WAAWrB;QAAI0B,QAAQ1B;MAAG,EAAA;;EAEzE;AACF;;;AC9FA,SAAS2B,aAAAA,kBAAiB;AAE1B,SAAiCC,WAAAA,gBAAe;AAChD,SAAgDC,oBAAAA,mBAAkBC,uBAAAA,4BAA2B;AAW7F,IAAMC,SAAqC;EACzCC,WAAW;EACXC,UAAU;AACZ;AAEO,IAAMC,gBAAgB,CAACC,UAAAA;AAC5B,QAAM,EAAEC,qBAAqBC,MAAK,IAAKC,gBAAAA;AAEvCC,EAAAA,WAAU,MAAA;AACRJ,UAAMH,YAAY;AAClBG,UAAMF,WAAW;AACjB,QAAIG,uBAAuBC,MAAMG,MAAMC,QAAQ;AAC7CJ,YAAMG,MAAMC,OACTC,OACC,CAAC,EAAEC,OAAOC,IAAG,MAAOA,QAAQ,WAAWC,SAAQC,eAAeT,MAAMG,OAAOG,KAAAA,GAAQP,oBAAoBW,IAAI,CAAA,EAE5GC,QAAQ,CAAC,EAAEC,MAAK,MAAE;AACjBd,cAAMc,KAAAA,IAAuB;MAC/B,CAAA;IACJ;EACF,GAAG;IAACb;IAAqBC,MAAMG;GAAM;AACvC;AAEA,IAAMU,mBAAmB,CAACf,UAAAA;AACxB,SAAOgB,qBAAoB,SAAS;IAClCC,SAAS;IACTC,mBAAmB;IACnBJ,OAAOK,OAAOC,KAAKxB,MAAAA,EAChBW,OAAO,CAACE,QAAQ,CAAC,CAACT,MAAMS,GAAAA,CAAkB,EAC1CY,IAAI,CAACC,eAAe,UAAUA,UAAAA,EAAY;EAC/C,CAAA;AACF;AAEA,IAAMC,qBAAqB,CAACrB,OAAmBF,OAAmBC,wBAChEkB,OAAOK,QAAQ5B,MAAAA,EAAQyB,IAAI,CAAC,CAACC,YAAYG,IAAAA,MAAK;AAC5C,SAAOC,kBACL,UAAUJ,UAAAA,IACV,MAAA;AACE,QAAI,CAACrB,qBAAqB;AACxB;IACF;AACA,UAAM0B,QACJzB,MAAMG,MAAMC,QAAQsB,UAClB,CAACpB,UACCA,MAAMC,QAAQ,WAAWC,SAAQC,eAAeT,MAAMG,OAAOG,MAAMA,KAAK,GAAGP,oBAAoBW,IAAI,CAAA,KAClG;AACP,UAAMiB,kBAAkB;MACtBrB,OAAOsB,aAAa5B,MAAMG,OAAOJ,mBAAAA;MACjCQ,KAAK;MACLK,OAAOQ;IACT;AACA,QACEpB,MAAMG,MAAMC,OACTC,OACC,CAAC,EAAEC,OAAOC,KAAKsB,SAAQ,MACrBA,aAAa,WAAWrB,SAAQC,eAAeT,MAAMG,OAAOG,KAAAA,GAAQP,oBAAoBW,IAAI,CAAA,EAE/FoB,KAAK,CAAC,EAAElB,OAAOmB,WAAU,MAAOA,eAAeX,UAAAA,GAClD;AAEA,UAAIK,SAAS,GAAG;AACdzB,cAAMG,MAAMC,QAAQ4B,OAAOP,OAAO,CAAA;MACpC;AACA3B,YAAM6B,gBAAgBf,KAAK,IAAI;IACjC,OAAO;AACLZ,YAAMG,MAAMC,QAAQ6B,KAAKN,eAAAA;AACzB7B,YAAM6B,gBAAgBf,KAAK,IAAI;IACjC;EACF,GACA;IACEL,KAAK;IACLK,OAAOQ;IACPG;IACAW,OAAO;MAAC,eAAed,UAAAA;MAAoB;QAAEe,IAAIC,KAAKC;MAAG;;IACzDC,SAAS,CAAC,CAACxC,MAAMsB,UAAAA;EACnB,CAAA;AAEJ,CAAA;AAEK,IAAMmB,cAAc,CAACvC,OAAmBF,OAAmBC,wBAAAA;AAChE,QAAMyC,mBAAmB3B,iBAAiBf,KAAAA;AAC1C,QAAM2C,eAAepB,mBAAmBrB,OAAOF,OAAOC,mBAAAA;AACtD,SAAO;IACL2C,OAAO;MAACF;SAAqBC;;IAC7BE,OAAO;MACL;QAAEC,QAAQ;QAAQC,QAAQ;MAAQ;SAC/BJ,aAAatB,IAAI,CAAC,EAAEkB,GAAE,OAAQ;QAAEO,QAAQJ,iBAAiBH;QAAIQ,QAAQR;MAAG,EAAA;;EAE/E;AACF;;;ACvGA,SAASS,eAAe;AAExB,SAASC,YAAY;AAOd,IAAMC,kBAAkB,CAACC,eAA6B,CAAC,MAAC;AAC7D,SAAOC,QAAQ,MAAMC,KAAmBF,YAAAA,GAAe,CAAA,CAAE;AAC3D;;;AHUA,IAAMG,uBAAuB,CAC3BC,OACAC,OACAC,qBACAC,kBAAAA;AAEA,SAAOC,KAAKC,KAAK,CAACC,QAAAA;AAChB,UAAMC,QAAQD,IAAIE,eAAe,MAAMC,YAAYT,OAAOC,OAAOC,mBAAAA,CAAAA,CAAAA;AACjE,UAAMQ,QAAQJ,IAAIE,eAAe,MAAMG,YAAYX,OAAOC,OAAOC,mBAAAA,CAAAA,CAAAA;AACjE,UAAMU,MAAMC,mBAAAA;AAEZ,UAAMC,QAA0B;MAC9BC,OAAO;WAAIR,MAAMQ;WAAUL,MAAMK;WAAUH,IAAIG;;MAC/CC,OAAO;WAAIT,MAAMS;WAAUN,MAAMM;WAAUJ,IAAII;;IACjD;AAEA,QAAIb,eAAe;AACjB,YAAMc,SAASX,IAAIH,aAAAA;AACnBW,YAAMC,MAAMG,KAAI,GAAID,OAAOF,KAAK;AAChCD,YAAME,MAAME,KAAI,GAAID,OAAOD,KAAK;IAClC;AAEA,WAAOF;EACT,CAAA;AACF;AAIO,IAAMK,eAAe,CAAC,EAAEC,GAAE,MAAqB;;;AACpD,UAAM,EAAEpB,OAAOE,oBAAmB,IAAKmB,gBAAAA;AACvC,UAAMpB,QAAQqB,gBAAgB,CAAC,CAAA;AAC/BC,kBAActB,KAAAA;AACduB,kBAAcvB,KAAAA;AAEd,UAAM,EAAEa,MAAK,IAAKW,YAAAA;AAClB,UAAMtB,gBAAgBuB,SAAQ,MAAA;AAC5B,aAAOtB,KAAKC,KAAK,CAACC,QAAAA;AAChB,cAAMqB,UAAUrB,IAAIQ,MAAMa,QAAQP,EAAAA,CAAAA;AAClC,cAAML,QAAQY,QAAQC,OAAO,CAACC,WAAWA,OAAOC,WAAWC,gBAAgB,SAAA;AAC3E,eAAO;UACLhB;UACAC,OAAOD,MAAMiB,IAAI,CAACC,UAAU;YAAEC,QAAQ;YAAQC,QAAQF,KAAKb;UAAG,EAAA;QAChE;MACF,CAAA;IACF,GAAG;MAACN;KAAM;AAEV,UAAMsB,iBAAiBV,SACrB,MAAM3B,qBAAqBC,OAAOC,OAAOC,qBAAqBC,aAAAA,GAC9D;MAACH;MAAOC;MAAOC;MAAqBC;KAAc;AAEpD,UAAMkC,OAAOC,eAAeF,cAAAA;AAE5B,WACE,gBAAAG,OAAA,cAACC,cAAAA;MAAc,GAAGH;MAAMI,cAAcrB;OACpC,gBAAAmB,OAAA,cAACG,aAAAA,IAAAA,CAAAA;;;;AAGP;;;AF1DO,IAAMC,iBAAiB,CAAC,EAAEC,OAAOC,OAAOC,MAAMC,gBAAe,MAAuB;;;AACzF,UAAMC,QAAQC,gBAAgBL,KAAAA;AAE9B,WAAOI,QACL,gBAAAE,OAAA,cAACC,eAAAA;MAAcN;MAAcG;MAAcD;OACzC,gBAAAG,OAAA,cAACE,UAAUC,SAAO;MAChBC,SAAAA;MACAC,WAAAA;MACAC,YAAY;QAACV,SAAS,aAAa;QAAgBA,SAAS,WAAW;;OAEvE,gBAAAI,OAAA,cAACO,cAAAA;MAAaC,IAAIC,IAAIC,OAAOf,KAAAA,EAAOgB,SAAQ;QAC5C,gBAAAX,OAAA,cAACY,WAAAA,IAAAA,GACD,gBAAAZ,OAAA,cAACa,gBAAAA,IAAAA,CAAAA,CAAAA,IAGH;;;;AACN;;;AMlCA,IAAA,yBAAeC;",
|
|
6
|
+
"names": ["React", "Obj", "StackItem", "React", "addressToA1Notation", "isFormula", "rangeToA1Notation", "Icon", "FunctionEditor", "model", "cursor", "range", "useSheetContext", "value", "formula", "getCellValue", "isFormula", "graph", "mapFunctionBindingFromId", "mapFormulaIndicesToRefs", "sheet", "String", "div", "className", "rangeToA1Notation", "addressToA1Notation", "Icon", "icon", "classNames", "span", "Atom", "React", "useMemo", "useAppGraph", "MenuProvider", "ToolbarMenu", "atomFromSignal", "createGapSeparator", "useMenuActions", "useEffect", "inRange", "createMenuAction", "createMenuItemGroup", "aligns", "start", "center", "end", "useAlignState", "state", "cursor", "model", "useSheetContext", "useEffect", "alignKey", "sheet", "ranges", "findLast", "range", "key", "inRange", "rangeFromIndex", "value", "undefined", "createAlignGroupAction", "createMenuItemGroup", "label", "ns", "meta", "id", "variant", "selectCardinality", "createAlignActions", "cursorFallbackRange", "Object", "entries", "map", "alignValue", "icon", "createMenuAction", "index", "findIndex", "from", "nextRangeEntity", "rangeToIndex", "push", "splice", "checked", "testId", "createAlign", "alignGroup", "alignActions", "nodes", "edges", "source", "target", "useEffect", "inRange", "createMenuAction", "createMenuItemGroup", "styles", "highlight", "softwrap", "useStyleState", "state", "cursorFallbackRange", "model", "useSheetContext", "useEffect", "sheet", "ranges", "filter", "range", "key", "inRange", "rangeFromIndex", "from", "forEach", "value", "createStyleGroup", "createMenuItemGroup", "variant", "selectCardinality", "Object", "keys", "map", "styleValue", "createStyleActions", "entries", "icon", "createMenuAction", "index", "findIndex", "nextRangeEntity", "rangeToIndex", "rangeKey", "some", "rangeValue", "splice", "push", "label", "ns", "meta", "id", "checked", "createStyle", "styleGroupAction", "styleActions", "nodes", "edges", "source", "target", "useMemo", "live", "useToolbarState", "initialState", "useMemo", "live", "createToolbarActions", "model", "state", "cursorFallbackRange", "customActions", "Atom", "make", "get", "align", "atomFromSignal", "createAlign", "style", "createStyle", "gap", "createGapSeparator", "graph", "nodes", "edges", "custom", "push", "SheetToolbar", "id", "useSheetContext", "useToolbarState", "useAlignState", "useStyleState", "useAppGraph", "useMemo", "actions", "filter", "action", "properties", "disposition", "map", "node", "source", "target", "actionsCreator", "menu", "useMenuActions", "React", "MenuProvider", "attendableId", "ToolbarMenu", "SheetContainer", "space", "sheet", "role", "ignoreAttention", "graph", "useComputeGraph", "React", "SheetProvider", "StackItem", "Content", "toolbar", "statusbar", "classNames", "SheetToolbar", "id", "Obj", "getDXN", "toString", "GridSheet", "FunctionEditor", "SheetContainer"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Sheet_exports,
|
|
3
|
+
compareIndexPositions
|
|
4
|
+
} from "./chunk-DVJ3QW3F.mjs";
|
|
5
|
+
import "./chunk-FWFAAGXL.mjs";
|
|
6
|
+
|
|
7
|
+
// src/capabilities/anchor-sort.ts
|
|
8
|
+
import { Capabilities, contributes } from "@dxos/app-framework";
|
|
9
|
+
import { Relation } from "@dxos/echo";
|
|
10
|
+
var anchor_sort_default = (() => contributes(Capabilities.AnchorSort, {
|
|
11
|
+
key: Sheet_exports.Sheet.typename,
|
|
12
|
+
sort: (anchorA, anchorB) => {
|
|
13
|
+
const sheet = Relation.getTarget(anchorA);
|
|
14
|
+
if (sheet !== Relation.getTarget(anchorB)) {
|
|
15
|
+
return 0;
|
|
16
|
+
}
|
|
17
|
+
return !anchorA.anchor || !anchorB.anchor ? 0 : compareIndexPositions(sheet, anchorA.anchor, anchorB.anchor);
|
|
18
|
+
}
|
|
19
|
+
}));
|
|
20
|
+
export {
|
|
21
|
+
anchor_sort_default as default
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=anchor-sort-FCQ5OZZK.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/anchor-sort.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, type Capability, contributes } from '@dxos/app-framework';\nimport { Relation } from '@dxos/echo';\n\nimport { Sheet, compareIndexPositions } from '../types';\n\nexport default (): Capability<typeof Capabilities.AnchorSort> =>\n contributes(Capabilities.AnchorSort, {\n key: Sheet.Sheet.typename,\n sort: (anchorA, anchorB) => {\n const sheet = Relation.getTarget(anchorA) as Sheet.Sheet;\n if (sheet !== Relation.getTarget(anchorB)) {\n return 0;\n }\n\n return !anchorA.anchor || !anchorB.anchor ? 0 : compareIndexPositions(sheet, anchorA.anchor, anchorB.anchor);\n },\n });\n"],
|
|
5
|
+
"mappings": ";;;;;;;AAIA,SAASA,cAA+BC,mBAAmB;AAC3D,SAASC,gBAAgB;AAIzB,IAAA,uBAAe,MACbC,YAAYC,aAAaC,YAAY;EACnCC,KAAKC,cAAMA,MAAMC;EACjBC,MAAM,CAACC,SAASC,YAAAA;AACd,UAAMC,QAAQC,SAASC,UAAUJ,OAAAA;AACjC,QAAIE,UAAUC,SAASC,UAAUH,OAAAA,GAAU;AACzC,aAAO;IACT;AAEA,WAAO,CAACD,QAAQK,UAAU,CAACJ,QAAQI,SAAS,IAAIC,sBAAsBJ,OAAOF,QAAQK,QAAQJ,QAAQI,MAAM;EAC7G;AACF,CAAA;",
|
|
6
|
+
"names": ["Capabilities", "contributes", "Relation", "contributes", "Capabilities", "AnchorSort", "key", "Sheet", "typename", "sort", "anchorA", "anchorB", "sheet", "Relation", "getTarget", "anchor", "compareIndexPositions"]
|
|
7
|
+
}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import {
|
|
2
2
|
DEFAULT_COLS,
|
|
3
3
|
DEFAULT_ROWS,
|
|
4
|
-
Range,
|
|
5
4
|
SheetAction,
|
|
5
|
+
Sheet_exports,
|
|
6
6
|
cellClassNameForRange,
|
|
7
7
|
rangeFromIndex,
|
|
8
8
|
useSheetModel
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-DVJ3QW3F.mjs";
|
|
10
10
|
import {
|
|
11
11
|
rangeExtension,
|
|
12
12
|
sheetExtension
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-7VEWYJJN.mjs";
|
|
14
14
|
import {
|
|
15
|
-
|
|
16
|
-
} from "./chunk-
|
|
15
|
+
meta
|
|
16
|
+
} from "./chunk-FWFAAGXL.mjs";
|
|
17
17
|
|
|
18
18
|
// src/components/ComputeGraph/ComputeGraphContextProvider.tsx
|
|
19
19
|
import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
|
|
@@ -50,7 +50,7 @@ var useComputeGraph = (space) => {
|
|
|
50
50
|
|
|
51
51
|
// src/components/RangeList/RangeList.tsx
|
|
52
52
|
import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
|
|
53
|
-
import
|
|
53
|
+
import * as Schema from "effect/Schema";
|
|
54
54
|
import React2, { useCallback } from "react";
|
|
55
55
|
import { rangeToA1Notation } from "@dxos/compute";
|
|
56
56
|
import { Callout, useTranslation } from "@dxos/react-ui";
|
|
@@ -59,7 +59,7 @@ import { ghostHover } from "@dxos/react-ui-theme";
|
|
|
59
59
|
var RangeList = ({ sheet }) => {
|
|
60
60
|
var _effect = _useSignals2();
|
|
61
61
|
try {
|
|
62
|
-
const { t } = useTranslation(
|
|
62
|
+
const { t } = useTranslation(meta.id);
|
|
63
63
|
const handleSelectRange = (range) => {
|
|
64
64
|
};
|
|
65
65
|
const handleDeleteRange = useCallback((range) => {
|
|
@@ -72,7 +72,7 @@ var RangeList = ({ sheet }) => {
|
|
|
72
72
|
className: "mbs-cardSpacingBlock mbe-labelSpacingBlock text-sm font-semibold"
|
|
73
73
|
}, t("range list heading")), sheet.ranges.length < 1 ? /* @__PURE__ */ React2.createElement(Callout.Root, null, /* @__PURE__ */ React2.createElement(Callout.Title, null, t("no ranges message"))) : /* @__PURE__ */ React2.createElement(List.Root, {
|
|
74
74
|
items: sheet.ranges,
|
|
75
|
-
isItem: Schema.is(Range)
|
|
75
|
+
isItem: Schema.is(Sheet_exports.Range)
|
|
76
76
|
}, ({ items: ranges }) => ranges.map((range, i) => /* @__PURE__ */ React2.createElement(List.Item, {
|
|
77
77
|
key: i,
|
|
78
78
|
item: range,
|
|
@@ -100,7 +100,8 @@ import { lazy } from "react";
|
|
|
100
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
|
-
import { createIntent as createIntent2
|
|
103
|
+
import { createIntent as createIntent2 } from "@dxos/app-framework";
|
|
104
|
+
import { useIntentDispatcher as useIntentDispatcher2 } from "@dxos/app-framework/react";
|
|
104
105
|
import { rangeToA1Notation as rangeToA1Notation2 } from "@dxos/compute";
|
|
105
106
|
import { defaultColSize, defaultRowSize } from "@dxos/lit-grid";
|
|
106
107
|
import { DropdownMenu, Icon, useTranslation as useTranslation2 } from "@dxos/react-ui";
|
|
@@ -108,16 +109,18 @@ import { useAttention } from "@dxos/react-ui-attention";
|
|
|
108
109
|
import { Grid as Grid2, GridCellEditor, closestCell, editorKeys, parseCellIndex } from "@dxos/react-ui-grid";
|
|
109
110
|
|
|
110
111
|
// src/integrations/thread-ranges.ts
|
|
111
|
-
import
|
|
112
|
+
import * as Function from "effect/Function";
|
|
113
|
+
import * as Schema2 from "effect/Schema";
|
|
112
114
|
import { useCallback as useCallback2, useEffect, useMemo } from "react";
|
|
113
|
-
import { LayoutAction, chain, createIntent, createResolver
|
|
115
|
+
import { LayoutAction, chain, createIntent, createResolver } from "@dxos/app-framework";
|
|
116
|
+
import { useIntentDispatcher, useIntentResolver } from "@dxos/app-framework/react";
|
|
114
117
|
import { debounce } from "@dxos/async";
|
|
115
118
|
import { inRange } from "@dxos/compute";
|
|
116
119
|
import { Obj, Relation } from "@dxos/echo";
|
|
117
120
|
import { ATTENDABLE_PATH_SEPARATOR, DeckAction } from "@dxos/plugin-deck/types";
|
|
118
|
-
import { ThreadAction
|
|
119
|
-
import { Filter, Query,
|
|
120
|
-
import { AnchoredTo } from "@dxos/
|
|
121
|
+
import { ThreadAction } from "@dxos/plugin-thread/types";
|
|
122
|
+
import { Filter, Query, getSpace, useQuery } from "@dxos/react-client/echo";
|
|
123
|
+
import { AnchoredTo, Thread } from "@dxos/types";
|
|
121
124
|
var parseThreadAnchorAsCellRange = (cursor) => {
|
|
122
125
|
const coords = cursor.split(",");
|
|
123
126
|
if (coords.length !== 4) {
|
|
@@ -145,7 +148,7 @@ var useUpdateFocusedCellOnThreadSelection = (grid) => {
|
|
|
145
148
|
if (!Schema2.is(LayoutAction.ScrollIntoView.fields.input)(data)) {
|
|
146
149
|
return false;
|
|
147
150
|
}
|
|
148
|
-
return data.subject ===
|
|
151
|
+
return data.subject === Obj.getDXN(model.sheet).toString() && !!data.options?.cursor;
|
|
149
152
|
},
|
|
150
153
|
resolve: ({ options: { cursor, ref } }) => {
|
|
151
154
|
setActiveRefs(ref);
|
|
@@ -159,20 +162,20 @@ var useUpdateFocusedCellOnThreadSelection = (grid) => {
|
|
|
159
162
|
model.sheet,
|
|
160
163
|
setActiveRefs
|
|
161
164
|
]);
|
|
162
|
-
useIntentResolver(
|
|
165
|
+
useIntentResolver(meta.id, scrollIntoViewResolver);
|
|
163
166
|
};
|
|
164
167
|
var useSelectThreadOnCellFocus = () => {
|
|
165
168
|
const { model, cursor } = useSheetContext();
|
|
166
169
|
const { dispatchPromise: dispatch } = useIntentDispatcher();
|
|
167
170
|
const space = getSpace(model.sheet);
|
|
168
|
-
const anchors = useQuery(space, Query.select(Filter.ids(model.sheet.id)).targetOf(AnchoredTo));
|
|
171
|
+
const anchors = useQuery(space, Query.select(Filter.ids(model.sheet.id)).targetOf(AnchoredTo.AnchoredTo));
|
|
169
172
|
const selectClosestThread = useCallback2((cellAddress) => {
|
|
170
173
|
if (!cellAddress) {
|
|
171
174
|
return;
|
|
172
175
|
}
|
|
173
176
|
const closestThread = anchors.find((anchor) => {
|
|
174
177
|
const source = Relation.getSource(anchor);
|
|
175
|
-
if (anchor.anchor && Obj.instanceOf(
|
|
178
|
+
if (anchor.anchor && Obj.instanceOf(Thread.Thread, source)) {
|
|
176
179
|
const range = parseThreadAnchorAsCellRange(anchor.anchor);
|
|
177
180
|
return range ? inRange(range, cellAddress) : false;
|
|
178
181
|
} else {
|
|
@@ -180,9 +183,9 @@ var useSelectThreadOnCellFocus = () => {
|
|
|
180
183
|
}
|
|
181
184
|
});
|
|
182
185
|
if (closestThread) {
|
|
183
|
-
const primary =
|
|
184
|
-
const intent = pipe(createIntent(ThreadAction.Select, {
|
|
185
|
-
current:
|
|
186
|
+
const primary = Obj.getDXN(model.sheet).toString();
|
|
187
|
+
const intent = Function.pipe(createIntent(ThreadAction.Select, {
|
|
188
|
+
current: Obj.getDXN(closestThread).toString()
|
|
186
189
|
}), chain(DeckAction.ChangeCompanion, {
|
|
187
190
|
primary,
|
|
188
191
|
companion: `${primary}${ATTENDABLE_PATH_SEPARATOR}comments`
|
|
@@ -212,8 +215,8 @@ var useSelectThreadOnCellFocus = () => {
|
|
|
212
215
|
// src/components/SheetContext/SheetContext.tsx
|
|
213
216
|
import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
|
|
214
217
|
import React3, { createContext as createContext2, useCallback as useCallback3, useContext as useContext2, useState } from "react";
|
|
218
|
+
import { Obj as Obj2 } from "@dxos/echo";
|
|
215
219
|
import { invariant } from "@dxos/invariant";
|
|
216
|
-
import { fullyQualifiedId as fullyQualifiedId2 } from "@dxos/react-client/echo";
|
|
217
220
|
import { Grid, useGridContext } from "@dxos/react-ui-grid";
|
|
218
221
|
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-sheet/src/components/SheetContext/SheetContext.tsx";
|
|
219
222
|
var SheetContext = /* @__PURE__ */ createContext2(void 0);
|
|
@@ -285,7 +288,7 @@ var SheetProvider = ({ children, graph, sheet, readonly, ignoreAttention, onInfo
|
|
|
285
288
|
readonly
|
|
286
289
|
});
|
|
287
290
|
return !model ? null : /* @__PURE__ */ React3.createElement(Grid.Root, {
|
|
288
|
-
id:
|
|
291
|
+
id: Obj2.getDXN(sheet).toString()
|
|
289
292
|
}, /* @__PURE__ */ React3.createElement(SheetProviderImpl, {
|
|
290
293
|
model,
|
|
291
294
|
onInfo,
|
|
@@ -495,7 +498,8 @@ var frozen = {
|
|
|
495
498
|
var sheetColDefault = {
|
|
496
499
|
frozenColsStart: {
|
|
497
500
|
size: 48,
|
|
498
|
-
readonly: true
|
|
501
|
+
readonly: true,
|
|
502
|
+
focusUnfurl: false
|
|
499
503
|
},
|
|
500
504
|
grid: {
|
|
501
505
|
size: defaultColSize,
|
|
@@ -505,7 +509,8 @@ var sheetColDefault = {
|
|
|
505
509
|
var sheetRowDefault = {
|
|
506
510
|
frozenRowsStart: {
|
|
507
511
|
size: defaultRowSize,
|
|
508
|
-
readonly: true
|
|
512
|
+
readonly: true,
|
|
513
|
+
focusUnfurl: false
|
|
509
514
|
},
|
|
510
515
|
grid: {
|
|
511
516
|
size: defaultRowSize,
|
|
@@ -515,12 +520,12 @@ var sheetRowDefault = {
|
|
|
515
520
|
var GridSheet = () => {
|
|
516
521
|
var _effect = _useSignals4();
|
|
517
522
|
try {
|
|
518
|
-
const { t } = useTranslation2(
|
|
523
|
+
const { t } = useTranslation2(meta.id);
|
|
519
524
|
const { id, model, editing, setCursor, setRange, cursor, cursorFallbackRange, activeRefs, ignoreAttention } = useSheetContext();
|
|
520
525
|
const [dxGrid, setDxGrid] = useState3(null);
|
|
521
526
|
const [extraplanarFocus, setExtraplanarFocus] = useState3(null);
|
|
522
527
|
const { dispatchPromise: dispatch } = useIntentDispatcher2();
|
|
523
|
-
const rangeController = useRef();
|
|
528
|
+
const rangeController = useRef(null);
|
|
524
529
|
const { hasAttention } = useAttention(id);
|
|
525
530
|
const handleFocus = useCallback4((event) => {
|
|
526
531
|
if (!editing) {
|
|
@@ -737,7 +742,7 @@ var GridSheet = () => {
|
|
|
737
742
|
dispatch
|
|
738
743
|
]);
|
|
739
744
|
const { columns, rows } = useSheetModelDxGridProps(dxGrid, model);
|
|
740
|
-
const
|
|
745
|
+
const extensions = useMemo2(() => [
|
|
741
746
|
editorKeys({
|
|
742
747
|
onClose: handleClose,
|
|
743
748
|
...editing?.initialContent && {
|
|
@@ -771,10 +776,10 @@ var GridSheet = () => {
|
|
|
771
776
|
// TODO(thure): Why are Table’s and Sheet’s editor boxes off by 1px?
|
|
772
777
|
/* @__PURE__ */ React4.createElement("div", {
|
|
773
778
|
role: "none",
|
|
774
|
-
className: "relative min-bs-0 [&_.cm-editor]:!border-lb [&_.cm-editor]:!border-transparent
|
|
779
|
+
className: "relative min-bs-0 [&_.cm-editor]:!border-lb [&_.cm-editor]:!border-transparent"
|
|
775
780
|
}, /* @__PURE__ */ React4.createElement(GridCellEditor, {
|
|
776
781
|
getCellContent,
|
|
777
|
-
|
|
782
|
+
extensions,
|
|
778
783
|
onBlur: handleBlur
|
|
779
784
|
}), /* @__PURE__ */ React4.createElement(Grid2.Content, {
|
|
780
785
|
initialCells,
|
|
@@ -833,7 +838,7 @@ var GridSheet = () => {
|
|
|
833
838
|
};
|
|
834
839
|
|
|
835
840
|
// src/components/index.ts
|
|
836
|
-
var SheetContainer = lazy(() => import("./SheetContainer-
|
|
841
|
+
var SheetContainer = lazy(() => import("./SheetContainer-67YEU5EA.mjs"));
|
|
837
842
|
|
|
838
843
|
export {
|
|
839
844
|
ComputeGraphContextProvider,
|
|
@@ -844,4 +849,4 @@ export {
|
|
|
844
849
|
RangeList,
|
|
845
850
|
SheetContainer
|
|
846
851
|
};
|
|
847
|
-
//# sourceMappingURL=chunk-
|
|
852
|
+
//# sourceMappingURL=chunk-6WBJDEKF.mjs.map
|