@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.
Files changed (195) hide show
  1. package/dist/lib/browser/{SheetContainer-JZNFXBW3.mjs → SheetContainer-67YEU5EA.mjs} +41 -43
  2. package/dist/lib/browser/SheetContainer-67YEU5EA.mjs.map +7 -0
  3. package/dist/lib/browser/anchor-sort-FCQ5OZZK.mjs +23 -0
  4. package/dist/lib/browser/anchor-sort-FCQ5OZZK.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-BVTHIA5U.mjs → chunk-6WBJDEKF.mjs} +37 -32
  6. package/dist/lib/browser/chunk-6WBJDEKF.mjs.map +7 -0
  7. package/dist/lib/browser/{chunk-KJWZUQVA.mjs → chunk-73AV3NH6.mjs} +4 -4
  8. package/dist/lib/browser/chunk-73AV3NH6.mjs.map +7 -0
  9. package/dist/lib/browser/{chunk-VTTKAHAY.mjs → chunk-7VEWYJJN.mjs} +2 -2
  10. package/dist/lib/browser/chunk-7VEWYJJN.mjs.map +7 -0
  11. package/dist/lib/browser/{chunk-ELAASQ5H.mjs → chunk-DVJ3QW3F.mjs} +215 -207
  12. package/dist/lib/browser/chunk-DVJ3QW3F.mjs.map +7 -0
  13. package/dist/lib/browser/chunk-FWFAAGXL.mjs +28 -0
  14. package/dist/lib/browser/chunk-FWFAAGXL.mjs.map +7 -0
  15. package/dist/lib/browser/compute-graph-registry-AP5RA7W3.mjs +21 -0
  16. package/dist/lib/browser/compute-graph-registry-AP5RA7W3.mjs.map +7 -0
  17. package/dist/lib/browser/index.mjs +20 -21
  18. package/dist/lib/browser/index.mjs.map +3 -3
  19. package/dist/lib/browser/{intent-resolver-SSLPTP5O.mjs → intent-resolver-66OAYVQF.mjs} +9 -9
  20. package/dist/lib/browser/intent-resolver-66OAYVQF.mjs.map +7 -0
  21. package/dist/lib/browser/{markdown-3VPZYNGU.mjs → markdown-B6VKYY2S.mjs} +6 -6
  22. package/dist/lib/browser/{markdown-3VPZYNGU.mjs.map → markdown-B6VKYY2S.mjs.map} +1 -1
  23. package/dist/lib/browser/meta.json +1 -1
  24. package/dist/lib/browser/{react-surface-Y7KTPJW2.mjs → react-surface-HARAYCN7.mjs} +16 -15
  25. package/dist/lib/browser/react-surface-HARAYCN7.mjs.map +7 -0
  26. package/dist/lib/browser/types/index.mjs +4 -12
  27. package/dist/lib/node-esm/{SheetContainer-GOIBAE2P.mjs → SheetContainer-NJONAMYZ.mjs} +41 -43
  28. package/dist/lib/node-esm/SheetContainer-NJONAMYZ.mjs.map +7 -0
  29. package/dist/lib/node-esm/{anchor-sort-YM2UBIKL.mjs → anchor-sort-ZE7IS7SH.mjs} +10 -11
  30. package/dist/lib/node-esm/anchor-sort-ZE7IS7SH.mjs.map +7 -0
  31. package/dist/lib/node-esm/{chunk-6SK5LJ5S.mjs → chunk-44YTKTMP.mjs} +4 -4
  32. package/dist/lib/node-esm/chunk-44YTKTMP.mjs.map +7 -0
  33. package/dist/lib/node-esm/{chunk-4L5CIB7E.mjs → chunk-4H2EHVWE.mjs} +215 -207
  34. package/dist/lib/node-esm/chunk-4H2EHVWE.mjs.map +7 -0
  35. package/dist/lib/node-esm/{chunk-FXRXBHWM.mjs → chunk-4QV4AGWK.mjs} +2 -2
  36. package/dist/lib/node-esm/chunk-4QV4AGWK.mjs.map +7 -0
  37. package/dist/lib/node-esm/chunk-HILDMVPL.mjs +29 -0
  38. package/dist/lib/node-esm/chunk-HILDMVPL.mjs.map +7 -0
  39. package/dist/lib/node-esm/{chunk-56HYMW55.mjs → chunk-S3RJ7IY6.mjs} +37 -32
  40. package/dist/lib/node-esm/chunk-S3RJ7IY6.mjs.map +7 -0
  41. package/dist/lib/node-esm/compute-graph-registry-UMQ5UYCL.mjs +22 -0
  42. package/dist/lib/node-esm/compute-graph-registry-UMQ5UYCL.mjs.map +7 -0
  43. package/dist/lib/node-esm/index.mjs +20 -21
  44. package/dist/lib/node-esm/index.mjs.map +3 -3
  45. package/dist/lib/node-esm/{intent-resolver-5P6DBGK2.mjs → intent-resolver-VNKIMQQT.mjs} +9 -9
  46. package/dist/lib/node-esm/intent-resolver-VNKIMQQT.mjs.map +7 -0
  47. package/dist/lib/node-esm/{markdown-SFDGQWYE.mjs → markdown-VKY7HXU2.mjs} +6 -6
  48. package/dist/lib/node-esm/{markdown-SFDGQWYE.mjs.map → markdown-VKY7HXU2.mjs.map} +1 -1
  49. package/dist/lib/node-esm/meta.json +1 -1
  50. package/dist/lib/node-esm/{react-surface-6Z5FAOBH.mjs → react-surface-KTQWXV2L.mjs} +16 -15
  51. package/dist/lib/node-esm/react-surface-KTQWXV2L.mjs.map +7 -0
  52. package/dist/lib/node-esm/types/index.mjs +4 -12
  53. package/dist/types/src/SheetPlugin.d.ts +1 -1
  54. package/dist/types/src/SheetPlugin.d.ts.map +1 -1
  55. package/dist/types/src/capabilities/anchor-sort.d.ts +2 -4
  56. package/dist/types/src/capabilities/anchor-sort.d.ts.map +1 -1
  57. package/dist/types/src/capabilities/compute-graph-registry.d.ts +1 -1
  58. package/dist/types/src/capabilities/compute-graph-registry.d.ts.map +1 -1
  59. package/dist/types/src/capabilities/index.d.ts +5 -10
  60. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  61. package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
  62. package/dist/types/src/capabilities/markdown.d.ts +1 -3
  63. package/dist/types/src/capabilities/markdown.d.ts.map +1 -1
  64. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  65. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  66. package/dist/types/src/components/ComputeGraph/compute-graph.stories.d.ts +9 -4
  67. package/dist/types/src/components/ComputeGraph/compute-graph.stories.d.ts.map +1 -1
  68. package/dist/types/src/components/GridSheet/GridSheet.d.ts.map +1 -1
  69. package/dist/types/src/components/GridSheet/GridSheet.stories.d.ts +50 -3
  70. package/dist/types/src/components/GridSheet/GridSheet.stories.d.ts.map +1 -1
  71. package/dist/types/src/components/GridSheet/SheetCellEditor.stories.d.ts +11 -20
  72. package/dist/types/src/components/GridSheet/SheetCellEditor.stories.d.ts.map +1 -1
  73. package/dist/types/src/components/GridSheet/util.d.ts.map +1 -1
  74. package/dist/types/src/components/RangeList/RangeList.d.ts +2 -2
  75. package/dist/types/src/components/RangeList/RangeList.d.ts.map +1 -1
  76. package/dist/types/src/components/SheetContainer/SheetContainer.d.ts +2 -2
  77. package/dist/types/src/components/SheetContainer/SheetContainer.d.ts.map +1 -1
  78. package/dist/types/src/components/SheetContainer/SheetContainer.stories.d.ts +52 -5
  79. package/dist/types/src/components/SheetContainer/SheetContainer.stories.d.ts.map +1 -1
  80. package/dist/types/src/components/SheetContext/SheetContext.d.ts +2 -2
  81. package/dist/types/src/components/SheetContext/SheetContext.d.ts.map +1 -1
  82. package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts +3 -4
  83. package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts.map +1 -1
  84. package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts +86 -4
  85. package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts.map +1 -1
  86. package/dist/types/src/extensions/compute.d.ts +1 -1
  87. package/dist/types/src/extensions/compute.d.ts.map +1 -1
  88. package/dist/types/src/extensions/compute.stories.d.ts +10 -13
  89. package/dist/types/src/extensions/compute.stories.d.ts.map +1 -1
  90. package/dist/types/src/extensions/editor/index.d.ts +1 -1
  91. package/dist/types/src/extensions/editor/index.d.ts.map +1 -1
  92. package/dist/types/src/extensions/editor/{extension.d.ts → sheet-extension.d.ts} +1 -1
  93. package/dist/types/src/extensions/editor/sheet-extension.d.ts.map +1 -0
  94. package/dist/types/src/extensions/editor/sheet-extension.test.d.ts +2 -0
  95. package/dist/types/src/extensions/editor/sheet-extension.test.d.ts.map +1 -0
  96. package/dist/types/src/integrations/thread-ranges.d.ts.map +1 -1
  97. package/dist/types/src/meta.d.ts +0 -1
  98. package/dist/types/src/meta.d.ts.map +1 -1
  99. package/dist/types/src/model/sheet-model.d.ts +5 -5
  100. package/dist/types/src/model/sheet-model.d.ts.map +1 -1
  101. package/dist/types/src/model/testing.d.ts +2 -2
  102. package/dist/types/src/model/testing.d.ts.map +1 -1
  103. package/dist/types/src/model/useSheetModel.d.ts +2 -2
  104. package/dist/types/src/model/useSheetModel.d.ts.map +1 -1
  105. package/dist/types/src/serializer.d.ts +2 -2
  106. package/dist/types/src/serializer.d.ts.map +1 -1
  107. package/dist/types/src/testing/data.d.ts +2 -2
  108. package/dist/types/src/testing/data.d.ts.map +1 -1
  109. package/dist/types/src/testing/testing.d.ts +27 -3
  110. package/dist/types/src/testing/testing.d.ts.map +1 -1
  111. package/dist/types/src/translations.d.ts +2 -2
  112. package/dist/types/src/translations.d.ts.map +1 -1
  113. package/dist/types/src/types/{schema.d.ts → Sheet.d.ts} +37 -4
  114. package/dist/types/src/types/Sheet.d.ts.map +1 -0
  115. package/dist/types/src/types/index.d.ts +1 -1
  116. package/dist/types/src/types/index.d.ts.map +1 -1
  117. package/dist/types/src/types/sheet-range-types.d.ts +2 -2
  118. package/dist/types/src/types/sheet-range-types.d.ts.map +1 -1
  119. package/dist/types/src/types/types.d.ts +7 -16
  120. package/dist/types/src/types/types.d.ts.map +1 -1
  121. package/dist/types/src/types/util.d.ts +9 -10
  122. package/dist/types/src/types/util.d.ts.map +1 -1
  123. package/dist/types/tsconfig.tsbuildinfo +1 -1
  124. package/package.json +65 -64
  125. package/src/SheetPlugin.tsx +70 -61
  126. package/src/capabilities/anchor-sort.ts +7 -8
  127. package/src/capabilities/capabilities.ts +2 -2
  128. package/src/capabilities/compute-graph-registry.ts +8 -13
  129. package/src/capabilities/intent-resolver.ts +4 -4
  130. package/src/capabilities/react-surface.tsx +9 -8
  131. package/src/components/ComputeGraph/compute-graph.stories.tsx +18 -18
  132. package/src/components/FunctionEditor/FunctionEditor.tsx +2 -2
  133. package/src/components/GridSheet/GridSheet.stories.tsx +17 -12
  134. package/src/components/GridSheet/GridSheet.tsx +24 -12
  135. package/src/components/GridSheet/SheetCellEditor.stories.tsx +40 -42
  136. package/src/components/GridSheet/util.ts +9 -3
  137. package/src/components/RangeList/RangeList.tsx +8 -8
  138. package/src/components/SheetContainer/SheetContainer.stories.tsx +45 -42
  139. package/src/components/SheetContainer/SheetContainer.tsx +10 -5
  140. package/src/components/SheetContext/SheetContext.tsx +4 -4
  141. package/src/components/SheetToolbar/SheetToolbar.stories.tsx +17 -12
  142. package/src/components/SheetToolbar/SheetToolbar.tsx +27 -29
  143. package/src/components/SheetToolbar/align.ts +3 -3
  144. package/src/components/SheetToolbar/style.ts +2 -2
  145. package/src/extensions/compute.stories.tsx +29 -26
  146. package/src/extensions/compute.ts +1 -2
  147. package/src/extensions/editor/index.ts +1 -1
  148. package/src/extensions/editor/{extension.test.ts → sheet-extension.test.ts} +1 -1
  149. package/src/integrations/thread-ranges.ts +15 -20
  150. package/src/meta.ts +7 -5
  151. package/src/model/sheet-model.test.ts +4 -4
  152. package/src/model/sheet-model.ts +4 -4
  153. package/src/model/testing.ts +4 -4
  154. package/src/model/useSheetModel.ts +2 -2
  155. package/src/sanity.test.ts +3 -4
  156. package/src/serializer.ts +3 -3
  157. package/src/testing/data.ts +2 -2
  158. package/src/testing/testing.tsx +11 -5
  159. package/src/translations.ts +2 -2
  160. package/src/types/Sheet.ts +103 -0
  161. package/src/types/index.ts +1 -1
  162. package/src/types/sheet-range-types.ts +2 -2
  163. package/src/types/types.ts +6 -16
  164. package/src/types/util.ts +10 -38
  165. package/dist/lib/browser/SheetContainer-JZNFXBW3.mjs.map +0 -7
  166. package/dist/lib/browser/anchor-sort-VRX3YZKT.mjs +0 -24
  167. package/dist/lib/browser/anchor-sort-VRX3YZKT.mjs.map +0 -7
  168. package/dist/lib/browser/chunk-6AKBCBL4.mjs +0 -18
  169. package/dist/lib/browser/chunk-6AKBCBL4.mjs.map +0 -7
  170. package/dist/lib/browser/chunk-BVTHIA5U.mjs.map +0 -7
  171. package/dist/lib/browser/chunk-ELAASQ5H.mjs.map +0 -7
  172. package/dist/lib/browser/chunk-KJWZUQVA.mjs.map +0 -7
  173. package/dist/lib/browser/chunk-VTTKAHAY.mjs.map +0 -7
  174. package/dist/lib/browser/compute-graph-registry-6YJHXORG.mjs +0 -30
  175. package/dist/lib/browser/compute-graph-registry-6YJHXORG.mjs.map +0 -7
  176. package/dist/lib/browser/intent-resolver-SSLPTP5O.mjs.map +0 -7
  177. package/dist/lib/browser/react-surface-Y7KTPJW2.mjs.map +0 -7
  178. package/dist/lib/node-esm/SheetContainer-GOIBAE2P.mjs.map +0 -7
  179. package/dist/lib/node-esm/anchor-sort-YM2UBIKL.mjs.map +0 -7
  180. package/dist/lib/node-esm/chunk-3K5VNYOF.mjs +0 -20
  181. package/dist/lib/node-esm/chunk-3K5VNYOF.mjs.map +0 -7
  182. package/dist/lib/node-esm/chunk-4L5CIB7E.mjs.map +0 -7
  183. package/dist/lib/node-esm/chunk-56HYMW55.mjs.map +0 -7
  184. package/dist/lib/node-esm/chunk-6SK5LJ5S.mjs.map +0 -7
  185. package/dist/lib/node-esm/chunk-FXRXBHWM.mjs.map +0 -7
  186. package/dist/lib/node-esm/compute-graph-registry-ET5KJNLV.mjs +0 -31
  187. package/dist/lib/node-esm/compute-graph-registry-ET5KJNLV.mjs.map +0 -7
  188. package/dist/lib/node-esm/intent-resolver-5P6DBGK2.mjs.map +0 -7
  189. package/dist/lib/node-esm/react-surface-6Z5FAOBH.mjs.map +0 -7
  190. package/dist/types/src/extensions/editor/extension.d.ts.map +0 -1
  191. package/dist/types/src/extensions/editor/extension.test.d.ts +0 -2
  192. package/dist/types/src/extensions/editor/extension.test.d.ts.map +0 -1
  193. package/dist/types/src/types/schema.d.ts.map +0 -1
  194. package/src/types/schema.ts +0 -61
  195. /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-BVTHIA5U.mjs";
6
+ } from "./chunk-6WBJDEKF.mjs";
7
7
  import {
8
8
  alignKey,
9
9
  mapFormulaIndicesToRefs,
10
10
  rangeFromIndex,
11
11
  rangeToIndex
12
- } from "./chunk-ELAASQ5H.mjs";
13
- import "./chunk-VTTKAHAY.mjs";
12
+ } from "./chunk-DVJ3QW3F.mjs";
13
+ import "./chunk-7VEWYJJN.mjs";
14
14
  import {
15
- SHEET_PLUGIN
16
- } from "./chunk-6AKBCBL4.mjs";
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 { fullyQualifiedId } from "@dxos/react-client/echo";
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 px-4 py-1 text-sm bg-toolbarSurface border-bs !border-subduedSeparator"
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 w-16 items-center font-mono"
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 { Rx } from "@effect-rx/rx-react";
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, createGapSeparator, rxFromSignal, useMenuActions } from "@dxos/react-ui-menu";
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: SHEET_PLUGIN
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: SHEET_PLUGIN
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: SHEET_PLUGIN
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 Rx.make((get) => {
258
- const align = get(rxFromSignal(() => createAlign(model, state, cursorFallbackRange)));
259
- const style = get(rxFromSignal(() => createStyle(model, state, cursorFallbackRange)));
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 nodes = [
262
- ...align.nodes,
263
- ...style.nodes,
264
- ...gap.nodes
265
- ];
266
- const edges = [
267
- ...align.edges,
268
- ...style.edges,
269
- ...gap.edges
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, classNames }) => {
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 Rx.make((get) => {
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
- ...role === "section" && {
336
- classNames: "aspect-video"
337
- }
332
+ classNames: [
333
+ role === "section" && "aspect-video",
334
+ role === "story" && "bs-full"
335
+ ]
338
336
  }, /* @__PURE__ */ React3.createElement(SheetToolbar, {
339
- id: fullyQualifiedId(sheet)
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-JZNFXBW3.mjs.map
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": "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",
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-ELAASQ5H.mjs";
9
+ } from "./chunk-DVJ3QW3F.mjs";
10
10
  import {
11
11
  rangeExtension,
12
12
  sheetExtension
13
- } from "./chunk-VTTKAHAY.mjs";
13
+ } from "./chunk-7VEWYJJN.mjs";
14
14
  import {
15
- SHEET_PLUGIN
16
- } from "./chunk-6AKBCBL4.mjs";
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 { Schema } from "effect";
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(SHEET_PLUGIN);
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, useIntentDispatcher as useIntentDispatcher2 } from "@dxos/app-framework";
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 { Schema as Schema2, pipe } from "effect";
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, useIntentDispatcher, useIntentResolver } from "@dxos/app-framework";
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, ThreadType } from "@dxos/plugin-thread/types";
119
- import { Filter, Query, fullyQualifiedId, getSpace, useQuery } from "@dxos/react-client/echo";
120
- import { AnchoredTo } from "@dxos/schema";
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 === fullyQualifiedId(model.sheet) && !!data.options?.cursor;
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(SHEET_PLUGIN, scrollIntoViewResolver);
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(ThreadType, source)) {
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 = fullyQualifiedId(model.sheet);
184
- const intent = pipe(createIntent(ThreadAction.Select, {
185
- current: fullyQualifiedId(closestThread)
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: fullyQualifiedId2(sheet)
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(SHEET_PLUGIN);
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 extension = useMemo2(() => [
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
- extension,
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-JZNFXBW3.mjs"));
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-BVTHIA5U.mjs.map
852
+ //# sourceMappingURL=chunk-6WBJDEKF.mjs.map