@dxos/plugin-sheet 0.6.13-main.09887cd → 0.6.13-main.ed424a1

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 (79) hide show
  1. package/dist/lib/browser/{SheetContainer-NDNIS44E.mjs → SheetContainer-RVRACGCZ.mjs} +107 -82
  2. package/dist/lib/browser/SheetContainer-RVRACGCZ.mjs.map +7 -0
  3. package/dist/lib/browser/{chunk-GKI67SEF.mjs → chunk-BWN5DZWZ.mjs} +16 -11
  4. package/dist/lib/browser/chunk-BWN5DZWZ.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-AQSGDA4X.mjs → chunk-HOG37RYS.mjs} +92 -178
  6. package/dist/lib/browser/chunk-HOG37RYS.mjs.map +7 -0
  7. package/dist/lib/browser/index.mjs +2 -2
  8. package/dist/lib/browser/meta.json +1 -1
  9. package/dist/lib/browser/types.mjs +3 -3
  10. package/dist/lib/node/{SheetContainer-YSQGJD7K.cjs → SheetContainer-J7XROAMN.cjs} +113 -89
  11. package/dist/lib/node/SheetContainer-J7XROAMN.cjs.map +7 -0
  12. package/dist/lib/node/{chunk-6F43RV45.cjs → chunk-AXQZA2YS.cjs} +103 -186
  13. package/dist/lib/node/chunk-AXQZA2YS.cjs.map +7 -0
  14. package/dist/lib/node/{chunk-ER3PM7GD.cjs → chunk-NZARD7UP.cjs} +20 -15
  15. package/dist/lib/node/chunk-NZARD7UP.cjs.map +7 -0
  16. package/dist/lib/node/index.cjs +18 -18
  17. package/dist/lib/node/meta.json +1 -1
  18. package/dist/lib/node/types.cjs +7 -7
  19. package/dist/lib/node/types.cjs.map +1 -1
  20. package/dist/lib/node-esm/{SheetContainer-M7WRMZDU.mjs → SheetContainer-YWQVKHQB.mjs} +107 -82
  21. package/dist/lib/node-esm/SheetContainer-YWQVKHQB.mjs.map +7 -0
  22. package/dist/lib/node-esm/{chunk-ELTFPX5B.mjs → chunk-BPXXIAOQ.mjs} +92 -178
  23. package/dist/lib/node-esm/chunk-BPXXIAOQ.mjs.map +7 -0
  24. package/dist/lib/node-esm/{chunk-ZVLLQ2PJ.mjs → chunk-WFDTY3IC.mjs} +16 -11
  25. package/dist/lib/node-esm/chunk-WFDTY3IC.mjs.map +7 -0
  26. package/dist/lib/node-esm/index.mjs +2 -2
  27. package/dist/lib/node-esm/meta.json +1 -1
  28. package/dist/lib/node-esm/types.mjs +3 -3
  29. package/dist/types/src/components/GridSheet/GridSheet.d.ts.map +1 -1
  30. package/dist/types/src/components/GridSheet/util.d.ts +2 -2
  31. package/dist/types/src/components/GridSheet/util.d.ts.map +1 -1
  32. package/dist/types/src/components/SheetContainer/SheetContainer.d.ts.map +1 -1
  33. package/dist/types/src/components/SheetContainer/SheetContainer.stories.d.ts.map +1 -1
  34. package/dist/types/src/components/SheetContext/SheetContext.d.ts +1 -2
  35. package/dist/types/src/components/SheetContext/SheetContext.d.ts.map +1 -1
  36. package/dist/types/src/components/Toolbar/Toolbar.d.ts +11 -17
  37. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -1
  38. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts +1 -2
  39. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts.map +1 -1
  40. package/dist/types/src/components/index.d.ts.map +1 -1
  41. package/dist/types/src/defs/index.d.ts +1 -0
  42. package/dist/types/src/defs/index.d.ts.map +1 -1
  43. package/dist/types/src/defs/sheet-range-types.d.ts +13 -0
  44. package/dist/types/src/defs/sheet-range-types.d.ts.map +1 -0
  45. package/dist/types/src/hooks/index.d.ts +0 -1
  46. package/dist/types/src/hooks/index.d.ts.map +1 -1
  47. package/dist/types/src/model/index.d.ts +0 -1
  48. package/dist/types/src/model/index.d.ts.map +1 -1
  49. package/dist/types/src/types.d.ts +39 -20
  50. package/dist/types/src/types.d.ts.map +1 -1
  51. package/package.json +35 -34
  52. package/src/components/GridSheet/GridSheet.stories.tsx +2 -2
  53. package/src/components/GridSheet/GridSheet.tsx +5 -3
  54. package/src/components/GridSheet/util.ts +24 -10
  55. package/src/components/SheetContainer/SheetContainer.stories.tsx +2 -2
  56. package/src/components/SheetContainer/SheetContainer.tsx +3 -28
  57. package/src/components/SheetContext/SheetContext.tsx +5 -9
  58. package/src/components/Toolbar/Toolbar.tsx +116 -68
  59. package/src/defs/index.ts +1 -0
  60. package/src/defs/sheet-range-types.ts +46 -0
  61. package/src/defs/util.ts +1 -1
  62. package/src/hooks/index.ts +0 -1
  63. package/src/model/index.ts +0 -1
  64. package/src/types.ts +5 -11
  65. package/dist/lib/browser/SheetContainer-NDNIS44E.mjs.map +0 -7
  66. package/dist/lib/browser/chunk-AQSGDA4X.mjs.map +0 -7
  67. package/dist/lib/browser/chunk-GKI67SEF.mjs.map +0 -7
  68. package/dist/lib/node/SheetContainer-YSQGJD7K.cjs.map +0 -7
  69. package/dist/lib/node/chunk-6F43RV45.cjs.map +0 -7
  70. package/dist/lib/node/chunk-ER3PM7GD.cjs.map +0 -7
  71. package/dist/lib/node-esm/SheetContainer-M7WRMZDU.mjs.map +0 -7
  72. package/dist/lib/node-esm/chunk-ELTFPX5B.mjs.map +0 -7
  73. package/dist/lib/node-esm/chunk-ZVLLQ2PJ.mjs.map +0 -7
  74. package/dist/types/src/hooks/useFormattingModel.d.ts +0 -3
  75. package/dist/types/src/hooks/useFormattingModel.d.ts.map +0 -1
  76. package/dist/types/src/model/formatting-model.d.ts +0 -19
  77. package/dist/types/src/model/formatting-model.d.ts.map +0 -1
  78. package/src/hooks/useFormattingModel.ts +0 -11
  79. package/src/model/formatting-model.ts +0 -116
@@ -26,8 +26,8 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var chunk_6F43RV45_exports = {};
30
- __export(chunk_6F43RV45_exports, {
29
+ var chunk_AXQZA2YS_exports = {};
30
+ __export(chunk_AXQZA2YS_exports, {
31
31
  ComputeGraphContextProvider: () => ComputeGraphContextProvider,
32
32
  GridSheet: () => GridSheet,
33
33
  SheetContainer: () => SheetContainer,
@@ -37,12 +37,13 @@ __export(chunk_6F43RV45_exports, {
37
37
  compareIndexPositions: () => compareIndexPositions,
38
38
  computeGraphFacet: () => computeGraphFacet,
39
39
  createSheet: () => createSheet,
40
+ inRange: () => inRange,
40
41
  rangeToA1Notation: () => rangeToA1Notation,
41
42
  useComputeGraph: () => useComputeGraph,
42
43
  useSheetContext: () => useSheetContext
43
44
  });
44
- module.exports = __toCommonJS(chunk_6F43RV45_exports);
45
- var import_chunk_ER3PM7GD = require("./chunk-ER3PM7GD.cjs");
45
+ module.exports = __toCommonJS(chunk_AXQZA2YS_exports);
46
+ var import_chunk_NZARD7UP = require("./chunk-NZARD7UP.cjs");
46
47
  var import_chunk_QIFIGEKV = require("./chunk-QIFIGEKV.cjs");
47
48
  var import_chunk_5XPK2V4A = require("./chunk-5XPK2V4A.cjs");
48
49
  var import_react = __toESM(require("react"));
@@ -71,26 +72,25 @@ var import_react_ui_attention = require("@dxos/react-ui-attention");
71
72
  var import_react_ui_grid = require("@dxos/react-ui-grid");
72
73
  var import_react5 = require("react");
73
74
  var import_echo = require("@dxos/react-client/echo");
75
+ var import_react_ui_data = require("@dxos/react-ui-data");
74
76
  var import_react_ui_grid2 = require("@dxos/react-ui-grid");
75
77
  var import_react_ui_theme2 = require("@dxos/react-ui-theme");
76
78
  var import_react6 = require("react");
77
79
  var import_echo_schema2 = require("@dxos/echo-schema");
78
- var import_schema = require("@dxos/schema");
79
80
  var import_async2 = require("@dxos/async");
80
81
  var import_context = require("@dxos/context");
81
82
  var import_echo_schema3 = require("@dxos/echo-schema");
82
83
  var import_invariant3 = require("@dxos/invariant");
83
84
  var import_keys = require("@dxos/keys");
84
85
  var import_log = require("@dxos/log");
85
- var import_schema2 = require("@dxos/schema");
86
+ var import_schema = require("@dxos/schema");
86
87
  var import_hyperformula = require("#hyperformula");
87
- var import_react7 = require("react");
88
88
  var import_signals_core = require("@preact/signals-core");
89
- var import_react8 = require("react");
89
+ var import_react7 = require("react");
90
90
  var import_app_framework = require("@dxos/app-framework");
91
91
  var import_async3 = require("@dxos/async");
92
92
  var import_echo2 = require("@dxos/react-client/echo");
93
- var import_react9 = __toESM(require("react"));
93
+ var import_react8 = __toESM(require("react"));
94
94
  var import_invariant4 = require("@dxos/invariant");
95
95
  var import_echo3 = require("@dxos/react-client/echo");
96
96
  var import_react_ui_grid3 = require("@dxos/react-ui-grid");
@@ -201,14 +201,14 @@ var initialize = (sheet, { rows = DEFAULT_ROWS, columns = DEFAULT_COLUMNS } = {}
201
201
  }
202
202
  };
203
203
  var createSheet = ({ name, cells, ...size } = {}) => {
204
- const sheet = (0, import_echo_schema.create)(import_chunk_ER3PM7GD.SheetType, {
204
+ const sheet = (0, import_echo_schema.create)(import_chunk_NZARD7UP.SheetType, {
205
205
  name,
206
206
  cells: {},
207
207
  rows: [],
208
208
  columns: [],
209
209
  rowMeta: {},
210
210
  columnMeta: {},
211
- formatting: []
211
+ ranges: []
212
212
  });
213
213
  initialize(sheet, size);
214
214
  if (cells) {
@@ -231,13 +231,6 @@ var addressFromIndex = (sheet, idx) => {
231
231
  row: sheet.rows.indexOf(row)
232
232
  };
233
233
  };
234
- var rangeFromIndex = (sheet, idx) => {
235
- const [from, to] = idx.split(":").map((index) => addressFromIndex(sheet, index));
236
- return {
237
- from,
238
- to
239
- };
240
- };
241
234
  var closest = (cursor, cells) => {
242
235
  let closestCell2;
243
236
  let closestDistance = Number.MAX_SAFE_INTEGER;
@@ -259,6 +252,32 @@ var compareIndexPositions = (sheet, indexA, indexB) => {
259
252
  return columnA - columnB;
260
253
  }
261
254
  };
255
+ var cellClassNameForRange = ({ key, value }) => {
256
+ switch (key) {
257
+ case "align":
258
+ switch (value) {
259
+ case "start":
260
+ return "text-start";
261
+ case "center":
262
+ return "text-center";
263
+ case "end":
264
+ return "text-end";
265
+ default:
266
+ return void 0;
267
+ }
268
+ case "comment":
269
+ return "bg-gridComment";
270
+ case "style":
271
+ switch (value) {
272
+ case "highlight":
273
+ return "bg-gridHighlight";
274
+ default:
275
+ return void 0;
276
+ }
277
+ default:
278
+ return void 0;
279
+ }
280
+ };
262
281
  var updateAllDecorations = import_state.StateEffect.define();
263
282
  var computeGraphFacet = (0, import_state2.singleValueFacet)();
264
283
  var highlightStyles = import_language2.HighlightStyle.define([
@@ -491,7 +510,26 @@ var createDxGridRows = (model) => {
491
510
  grid: {}
492
511
  });
493
512
  };
494
- var gridCellGetter = (model, formatting) => {
513
+ var projectCellProps = (model, col, row) => {
514
+ const address = {
515
+ col,
516
+ row
517
+ };
518
+ const rawValue = model.getValue(address);
519
+ if (rawValue === void 0 || rawValue === null) {
520
+ return {
521
+ value: ""
522
+ };
523
+ }
524
+ const ranges = model.sheet.ranges?.filter(({ range }) => inRange(range, address));
525
+ const type = model.getValueType(address);
526
+ const classNames = ranges?.map(cellClassNameForRange).reverse();
527
+ return {
528
+ value: (0, import_react_ui_data.parseValue)(type, rawValue),
529
+ className: (0, import_react_ui_theme2.mx)((0, import_react_ui_data.cellClassesForFieldType)(type), classNames)
530
+ };
531
+ };
532
+ var gridCellGetter = (model) => {
495
533
  const cachedGridCells = {};
496
534
  return (nextBounds) => {
497
535
  [
@@ -502,16 +540,10 @@ var gridCellGetter = (model, formatting) => {
502
540
  ].forEach((_2, r0) => {
503
541
  const col = nextBounds.start.col + c0;
504
542
  const row = nextBounds.start.row + r0;
505
- const cell = formatting.getFormatting({
506
- col,
507
- row
508
- });
543
+ const cell = projectCellProps(model, col, row);
509
544
  if (cell.value) {
510
545
  cachedGridCells;
511
- cachedGridCells[`${col},${row}`] = {
512
- value: cell.value,
513
- className: (0, import_react_ui_theme2.mx)(cell.classNames)
514
- };
546
+ cachedGridCells[`${col},${row}`] = cell;
515
547
  }
516
548
  });
517
549
  });
@@ -527,8 +559,8 @@ var colLabelCell = (col) => ({
527
559
  value: (0, import_react_ui_grid2.colToA1Notation)(col),
528
560
  resizeHandle: "col"
529
561
  });
530
- var cellGetter = (model, formatting) => {
531
- const getGridCells = gridCellGetter(model, formatting);
562
+ var cellGetter = (model) => {
563
+ const getGridCells = gridCellGetter(model);
532
564
  return (nextBounds, plane) => {
533
565
  switch (plane) {
534
566
  case "grid":
@@ -554,7 +586,7 @@ var cellGetter = (model, formatting) => {
554
586
  }
555
587
  };
556
588
  };
557
- var useSheetModelDxGridProps = (dxGridRef, model, formatting) => {
589
+ var useSheetModelDxGridProps = (dxGridRef, model) => {
558
590
  const [columns, setColumns] = (0, import_react5.useState)(createDxGridColumns(model));
559
591
  const [rows, setRows] = (0, import_react5.useState)(createDxGridColumns(model));
560
592
  (0, import_react5.useLayoutEffect)(() => {
@@ -562,7 +594,7 @@ var useSheetModelDxGridProps = (dxGridRef, model, formatting) => {
562
594
  "cells"
563
595
  ]);
564
596
  if (dxGridRef.current) {
565
- dxGridRef.current.getCells = cellGetter(model, formatting);
597
+ dxGridRef.current.getCells = cellGetter(model);
566
598
  }
567
599
  const handleCellsUpdate = () => {
568
600
  dxGridRef.current?.requestUpdate("initialCells");
@@ -570,8 +602,7 @@ var useSheetModelDxGridProps = (dxGridRef, model, formatting) => {
570
602
  cellsAccessor.handle.addListener("change", handleCellsUpdate);
571
603
  return () => cellsAccessor.handle.removeListener("change", handleCellsUpdate);
572
604
  }, [
573
- model,
574
- formatting
605
+ model
575
606
  ]);
576
607
  (0, import_react5.useEffect)(() => {
577
608
  const columnMetaAccessor = (0, import_echo.createDocAccessor)(model.sheet, [
@@ -636,124 +667,15 @@ var createDecorations = () => {
636
667
  getAllDecorations
637
668
  };
638
669
  };
639
- var FormattingModel = class {
640
- constructor(_model) {
641
- this._model = _model;
642
- }
643
- /**
644
- * Get formatted string value and className for cell.
645
- */
646
- getFormatting(cell) {
647
- const value = this._model.getValue(cell);
648
- if (value === void 0 || value === null) {
649
- return {};
650
- }
651
- const locales = void 0;
652
- const idx = addressToIndex(this._model.sheet, cell);
653
- let formatting = this._model.sheet.formatting.find?.(({ range }) => range === idx);
654
- const classNames = [
655
- ...formatting?.classNames ?? []
656
- ];
657
- for (const [idx2, _formatting] of Object.entries(this._model.sheet.formatting)) {
658
- const range = rangeFromIndex(this._model.sheet, idx2);
659
- if (inRange(range, cell)) {
660
- if (_formatting.classNames) {
661
- classNames.push(..._formatting.classNames);
662
- }
663
- if (_formatting.type) {
664
- formatting = _formatting;
665
- }
666
- }
667
- }
668
- const defaultNumber = "justify-end font-mono";
669
- const type = formatting?.type ?? this._model.getValueType(cell);
670
- switch (type) {
671
- case import_schema.FieldValueType.Boolean: {
672
- return {
673
- value: value.toLocaleString().toUpperCase(),
674
- classNames: [
675
- ...classNames,
676
- value ? "!text-greenText" : "!text-orangeText"
677
- ]
678
- };
679
- }
680
- //
681
- // Numbers.
682
- //
683
- case import_schema.FieldValueType.Number: {
684
- return {
685
- value: value.toLocaleString(locales),
686
- classNames: [
687
- ...classNames,
688
- defaultNumber
689
- ]
690
- };
691
- }
692
- case import_schema.FieldValueType.Percent: {
693
- return {
694
- value: value * 100 + "%",
695
- classNames: [
696
- ...classNames,
697
- defaultNumber
698
- ]
699
- };
700
- }
701
- case import_schema.FieldValueType.Currency: {
702
- return {
703
- value: value.toLocaleString(locales, {
704
- style: "currency",
705
- currency: "USD",
706
- minimumFractionDigits: 2,
707
- maximumFractionDigits: 2
708
- }),
709
- classNames: [
710
- ...classNames,
711
- defaultNumber
712
- ]
713
- };
714
- }
715
- //
716
- // Dates.
717
- //
718
- case import_schema.FieldValueType.DateTime: {
719
- const date = this._model.toLocalDate(value);
720
- return {
721
- value: date.toLocaleString(locales),
722
- classNames
723
- };
724
- }
725
- case import_schema.FieldValueType.Date: {
726
- const date = this._model.toLocalDate(value);
727
- return {
728
- value: date.toLocaleDateString(locales),
729
- classNames
730
- };
731
- }
732
- case import_schema.FieldValueType.Time: {
733
- const date = this._model.toLocalDate(value);
734
- return {
735
- value: date.toLocaleTimeString(locales),
736
- classNames
737
- };
738
- }
739
- default: {
740
- return {
741
- value: String(value),
742
- classNames
743
- };
744
- }
745
- }
746
- }
747
- };
748
670
  var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-sheet/src/model/sheet-model.ts";
749
671
  var typeMap = {
750
- BOOLEAN: import_schema2.FieldValueType.Boolean,
751
- NUMBER_RAW: import_schema2.FieldValueType.Number,
752
- NUMBER_PERCENT: import_schema2.FieldValueType.Percent,
753
- NUMBER_CURRENCY: import_schema2.FieldValueType.Currency,
754
- NUMBER_DATETIME: import_schema2.FieldValueType.DateTime,
755
- NUMBER_DATE: import_schema2.FieldValueType.Date,
756
- NUMBER_TIME: import_schema2.FieldValueType.Time
672
+ BOOLEAN: import_schema.FieldValueType.Boolean,
673
+ NUMBER_RAW: import_schema.FieldValueType.Number,
674
+ NUMBER_PERCENT: import_schema.FieldValueType.Percent,
675
+ NUMBER_CURRENCY: import_schema.FieldValueType.Currency,
676
+ NUMBER_DATETIME: import_schema.FieldValueType.DateTime,
677
+ NUMBER_DATE: import_schema.FieldValueType.Date,
678
+ NUMBER_TIME: import_schema.FieldValueType.Time
757
679
  };
758
680
  var getTopLeft = (range) => {
759
681
  const to = range.to ?? range.from;
@@ -1223,14 +1145,9 @@ var SheetModel = class extends import_context.Resource {
1223
1145
  return this._node.graph.hf.numberToTime(num);
1224
1146
  }
1225
1147
  };
1226
- var useFormattingModel = (model) => {
1227
- return (0, import_react6.useMemo)(() => model && new FormattingModel(model), [
1228
- model
1229
- ]);
1230
- };
1231
1148
  var useSheetModel = (graph, sheet, { readonly } = {}) => {
1232
- const [model, setModel] = (0, import_react7.useState)();
1233
- (0, import_react7.useEffect)(() => {
1149
+ const [model, setModel] = (0, import_react6.useState)();
1150
+ (0, import_react6.useEffect)(() => {
1234
1151
  if (!graph || !sheet) {
1235
1152
  return;
1236
1153
  }
@@ -1254,7 +1171,7 @@ var useSheetModel = (graph, sheet, { readonly } = {}) => {
1254
1171
  return model;
1255
1172
  };
1256
1173
  var useUpdateFocusedCellOnThreadSelection = (model, grid) => {
1257
- const handleScrollIntoView = (0, import_react8.useCallback)(({ action, data }) => {
1174
+ const handleScrollIntoView = (0, import_react7.useCallback)(({ action, data }) => {
1258
1175
  switch (action) {
1259
1176
  case import_app_framework.LayoutAction.SCROLL_INTO_VIEW: {
1260
1177
  if (!data?.id || data?.cursor === void 0 || data?.id !== (0, import_echo2.fullyQualifiedId)(model.sheet)) {
@@ -1274,15 +1191,15 @@ var useUpdateFocusedCellOnThreadSelection = (model, grid) => {
1274
1191
  };
1275
1192
  var useSelectThreadOnCellFocus = (model, cursor) => {
1276
1193
  const dispatch = (0, import_app_framework.useIntentDispatcher)();
1277
- const activeThreads = (0, import_react8.useMemo)(() => model.sheet.threads?.filter((thread) => !!thread && thread.status === "active") ?? [], [
1194
+ const activeThreads = (0, import_react7.useMemo)(() => model.sheet.threads?.filter((thread) => !!thread && thread.status === "active") ?? [], [
1278
1195
  // TODO(thure): Surely we can find a better dependency for this…
1279
1196
  JSON.stringify(model.sheet.threads)
1280
1197
  ]);
1281
- const activeThreadAddresses = (0, import_react8.useMemo)(() => activeThreads.map((thread) => thread.anchor).filter((anchor) => anchor !== void 0).map((anchor) => addressFromIndex(model.sheet, anchor)), [
1198
+ const activeThreadAddresses = (0, import_react7.useMemo)(() => activeThreads.map((thread) => thread.anchor).filter((anchor) => anchor !== void 0).map((anchor) => addressFromIndex(model.sheet, anchor)), [
1282
1199
  activeThreads,
1283
1200
  model.sheet
1284
1201
  ]);
1285
- const selectClosestThread = (0, import_react8.useCallback)((cellAddress) => {
1202
+ const selectClosestThread = (0, import_react7.useCallback)((cellAddress) => {
1286
1203
  if (!cellAddress || !activeThreads) {
1287
1204
  return;
1288
1205
  }
@@ -1306,12 +1223,12 @@ var useSelectThreadOnCellFocus = (model, cursor) => {
1306
1223
  activeThreadAddresses,
1307
1224
  model.sheet
1308
1225
  ]);
1309
- const debounced = (0, import_react8.useMemo)(() => {
1226
+ const debounced = (0, import_react7.useMemo)(() => {
1310
1227
  return (0, import_async3.debounce)((cellCoords) => requestAnimationFrame(() => selectClosestThread(cellCoords)), 50);
1311
1228
  }, [
1312
1229
  selectClosestThread
1313
1230
  ]);
1314
- (0, import_react8.useEffect)(() => {
1231
+ (0, import_react7.useEffect)(() => {
1315
1232
  if (!cursor) {
1316
1233
  return;
1317
1234
  }
@@ -1331,13 +1248,13 @@ var createThreadDecoration = (cellIndex, threadId, sheetId) => {
1331
1248
  };
1332
1249
  };
1333
1250
  var useThreadDecorations = (model, decorations) => {
1334
- const sheet = (0, import_react8.useMemo)(() => model.sheet, [
1251
+ const sheet = (0, import_react7.useMemo)(() => model.sheet, [
1335
1252
  model.sheet
1336
1253
  ]);
1337
- const sheetId = (0, import_react8.useMemo)(() => (0, import_echo2.fullyQualifiedId)(sheet), [
1254
+ const sheetId = (0, import_react7.useMemo)(() => (0, import_echo2.fullyQualifiedId)(sheet), [
1338
1255
  sheet
1339
1256
  ]);
1340
- (0, import_react8.useEffect)(() => {
1257
+ (0, import_react7.useEffect)(() => {
1341
1258
  const unsubscribe = (0, import_signals_core.effect)(() => {
1342
1259
  const activeThreadAnchors = /* @__PURE__ */ new Set();
1343
1260
  if (!sheet.threads) {
@@ -1367,12 +1284,12 @@ var useThreadDecorations = (model, decorations) => {
1367
1284
  });
1368
1285
  };
1369
1286
  var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-sheet/src/components/SheetContext/SheetContext.tsx";
1370
- var SheetContext = /* @__PURE__ */ (0, import_react9.createContext)(null);
1287
+ var SheetContext = /* @__PURE__ */ (0, import_react8.createContext)(null);
1371
1288
  var useSheetContext = () => {
1372
- const context = (0, import_react9.useContext)(SheetContext);
1289
+ const context = (0, import_react8.useContext)(SheetContext);
1373
1290
  (0, import_invariant4.invariant)(context, void 0, {
1374
1291
  F: __dxlog_file3,
1375
- L: 46,
1292
+ L: 45,
1376
1293
  S: void 0,
1377
1294
  A: [
1378
1295
  "context",
@@ -1381,18 +1298,17 @@ var useSheetContext = () => {
1381
1298
  });
1382
1299
  return context;
1383
1300
  };
1384
- var SheetProviderImpl = ({ model, formatting, onInfo, children, __gridScope }) => {
1301
+ var SheetProviderImpl = ({ model, onInfo, children, __gridScope }) => {
1385
1302
  const { id, editing, setEditing } = (0, import_react_ui_grid3.useGridContext)("SheetProvider", __gridScope);
1386
- const decorations = (0, import_react9.useMemo)(() => createDecorations(), []);
1387
- const [cursor, setCursor] = (0, import_react9.useState)();
1388
- const [range, setRange] = (0, import_react9.useState)();
1303
+ const decorations = (0, import_react8.useMemo)(() => createDecorations(), []);
1304
+ const [cursor, setCursor] = (0, import_react8.useState)();
1305
+ const [range, setRange] = (0, import_react8.useState)();
1389
1306
  useSelectThreadOnCellFocus(model, cursor);
1390
1307
  useThreadDecorations(model, decorations);
1391
- return /* @__PURE__ */ import_react9.default.createElement(SheetContext.Provider, {
1308
+ return /* @__PURE__ */ import_react8.default.createElement(SheetContext.Provider, {
1392
1309
  value: {
1393
1310
  id,
1394
1311
  model,
1395
- formatting,
1396
1312
  editing,
1397
1313
  setEditing,
1398
1314
  cursor,
@@ -1409,12 +1325,10 @@ var SheetProvider = ({ children, graph, sheet, readonly, onInfo }) => {
1409
1325
  const model = useSheetModel(graph, sheet, {
1410
1326
  readonly
1411
1327
  });
1412
- const formatting = useFormattingModel(model);
1413
- return !model || !formatting ? null : /* @__PURE__ */ import_react9.default.createElement(import_react_ui_grid3.Grid.Root, {
1328
+ return !model ? null : /* @__PURE__ */ import_react8.default.createElement(import_react_ui_grid3.Grid.Root, {
1414
1329
  id: (0, import_echo3.fullyQualifiedId)(sheet)
1415
- }, /* @__PURE__ */ import_react9.default.createElement(SheetProviderImpl, {
1330
+ }, /* @__PURE__ */ import_react8.default.createElement(SheetProviderImpl, {
1416
1331
  model,
1417
- formatting,
1418
1332
  onInfo
1419
1333
  }, children));
1420
1334
  };
@@ -1453,17 +1367,19 @@ var sheetColDefault = {
1453
1367
  }
1454
1368
  };
1455
1369
  var GridSheet = () => {
1456
- const { id, model, formatting, editing, setEditing, setCursor, setRange } = useSheetContext();
1370
+ const { id, model, editing, setEditing, setCursor, setRange } = useSheetContext();
1457
1371
  const dxGrid = (0, import_react4.useRef)(null);
1458
1372
  const rangeNotifier = (0, import_react4.useRef)();
1459
1373
  const { hasAttention } = (0, import_react_ui_attention.useAttention)(id);
1460
1374
  const handleFocus = (0, import_react4.useCallback)((event) => {
1461
1375
  if (!editing) {
1462
1376
  const cell = (0, import_react_ui_grid.closestCell)(event.target);
1463
- setCursor(cell && cell.plane === "grid" ? {
1464
- col: cell.col,
1465
- row: cell.row
1466
- } : void 0);
1377
+ if (cell && cell.plane === "grid") {
1378
+ setCursor({
1379
+ col: cell.col,
1380
+ row: cell.row
1381
+ });
1382
+ }
1467
1383
  }
1468
1384
  }, [
1469
1385
  editing
@@ -1533,7 +1449,7 @@ var GridSheet = () => {
1533
1449
  }, [
1534
1450
  hasAttention
1535
1451
  ]);
1536
- const { columns, rows } = useSheetModelDxGridProps(dxGrid, model, formatting);
1452
+ const { columns, rows } = useSheetModelDxGridProps(dxGrid, model);
1537
1453
  const extension = (0, import_react4.useMemo)(() => [
1538
1454
  (0, import_react_ui_grid.editorKeys)({
1539
1455
  onClose: handleClose,
@@ -1577,7 +1493,7 @@ var GridSheet = () => {
1577
1493
  ref: dxGrid
1578
1494
  }));
1579
1495
  };
1580
- var SheetContainer = import_react3.default.lazy(() => import("./SheetContainer-YSQGJD7K.cjs"));
1496
+ var SheetContainer = import_react3.default.lazy(() => import("./SheetContainer-J7XROAMN.cjs"));
1581
1497
  var useComputeGraph = (space) => {
1582
1498
  const { registry } = (0, import_react2.useContext)(ComputeGraphContext) ?? (0, import_debug.raise)(new Error("Missing ComputeGraphContext"));
1583
1499
  const [graph] = (0, import_react_hooks.useAsyncState)(async () => {
@@ -1603,8 +1519,9 @@ var useComputeGraph = (space) => {
1603
1519
  compareIndexPositions,
1604
1520
  computeGraphFacet,
1605
1521
  createSheet,
1522
+ inRange,
1606
1523
  rangeToA1Notation,
1607
1524
  useComputeGraph,
1608
1525
  useSheetContext
1609
1526
  });
1610
- //# sourceMappingURL=chunk-6F43RV45.cjs.map
1527
+ //# sourceMappingURL=chunk-AXQZA2YS.cjs.map