@dxos/plugin-sheet 0.6.12-main.89e9959 → 0.6.12-main.ac23639

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 (96) hide show
  1. package/dist/lib/browser/{SheetContainer-LG77O4RM.mjs → SheetContainer-XBTEYQ6T.mjs} +4 -4
  2. package/dist/lib/browser/{chunk-QILRZNE5.mjs → chunk-D3QTX46O.mjs} +4 -5
  3. package/dist/lib/browser/chunk-D3QTX46O.mjs.map +7 -0
  4. package/dist/lib/browser/{chunk-CHQAW4F4.mjs → chunk-NA6NLHDE.mjs} +117 -260
  5. package/dist/lib/browser/chunk-NA6NLHDE.mjs.map +7 -0
  6. package/dist/lib/browser/{chunk-WZMOZKQZ.mjs → chunk-NZBWHQSR.mjs} +21 -25
  7. package/dist/lib/browser/chunk-NZBWHQSR.mjs.map +7 -0
  8. package/dist/lib/browser/index.mjs +8 -17
  9. package/dist/lib/browser/index.mjs.map +4 -4
  10. package/dist/lib/browser/meta.json +1 -1
  11. package/dist/lib/browser/meta.mjs +1 -1
  12. package/dist/lib/browser/types.mjs +4 -8
  13. package/dist/lib/node/{SheetContainer-OZ7DHH4L.cjs → SheetContainer-HSRYKV52.cjs} +16 -16
  14. package/dist/lib/node/{chunk-BNARJ5GM.cjs → chunk-QIFIGEKV.cjs} +6 -7
  15. package/dist/lib/node/chunk-QIFIGEKV.cjs.map +7 -0
  16. package/dist/lib/node/{chunk-5FTFZL5W.cjs → chunk-UXH6GKEU.cjs} +61 -202
  17. package/dist/lib/node/chunk-UXH6GKEU.cjs.map +7 -0
  18. package/dist/lib/node/{chunk-AOP42UAA.cjs → chunk-XYGN3RTG.cjs} +27 -33
  19. package/dist/lib/node/chunk-XYGN3RTG.cjs.map +7 -0
  20. package/dist/lib/node/index.cjs +29 -37
  21. package/dist/lib/node/index.cjs.map +4 -4
  22. package/dist/lib/node/meta.cjs +3 -3
  23. package/dist/lib/node/meta.cjs.map +1 -1
  24. package/dist/lib/node/meta.json +1 -1
  25. package/dist/lib/node/types.cjs +8 -12
  26. package/dist/lib/node/types.cjs.map +2 -2
  27. package/dist/lib/node-esm/{SheetContainer-4XS2G25Z.mjs → SheetContainer-Q4PHM7ZE.mjs} +4 -4
  28. package/dist/lib/node-esm/{chunk-RR2AO4SM.mjs → chunk-GH33JLIW.mjs} +21 -25
  29. package/dist/lib/node-esm/chunk-GH33JLIW.mjs.map +7 -0
  30. package/dist/lib/node-esm/{chunk-KK3XL37M.mjs → chunk-J2KAVUQA.mjs} +117 -260
  31. package/dist/lib/node-esm/chunk-J2KAVUQA.mjs.map +7 -0
  32. package/dist/lib/node-esm/{chunk-IU2L277A.mjs → chunk-VCYJWE3O.mjs} +4 -5
  33. package/dist/lib/node-esm/chunk-VCYJWE3O.mjs.map +7 -0
  34. package/dist/lib/node-esm/index.mjs +8 -17
  35. package/dist/lib/node-esm/index.mjs.map +4 -4
  36. package/dist/lib/node-esm/meta.json +1 -1
  37. package/dist/lib/node-esm/meta.mjs +1 -1
  38. package/dist/lib/node-esm/types.mjs +4 -8
  39. package/dist/types/src/components/GridSheet/GridSheet.d.ts.map +1 -1
  40. package/dist/types/src/components/{CellEditor/CellEditor.stories.d.ts → GridSheet/SheetCellEditor.stories.d.ts} +2 -2
  41. package/dist/types/src/components/GridSheet/SheetCellEditor.stories.d.ts.map +1 -0
  42. package/dist/types/src/components/GridSheet/util.d.ts +2 -2
  43. package/dist/types/src/components/GridSheet/util.d.ts.map +1 -1
  44. package/dist/types/src/components/Sheet/Sheet.d.ts.map +1 -1
  45. package/dist/types/src/components/Sheet/Sheet.stories.d.ts.map +1 -1
  46. package/dist/types/src/extensions/editor/extension.d.ts.map +1 -0
  47. package/dist/types/src/extensions/editor/extension.test.d.ts.map +1 -0
  48. package/dist/types/src/extensions/editor/index.d.ts +2 -0
  49. package/dist/types/src/extensions/editor/index.d.ts.map +1 -0
  50. package/dist/types/src/extensions/index.d.ts +1 -0
  51. package/dist/types/src/extensions/index.d.ts.map +1 -1
  52. package/dist/types/src/meta.d.ts +3 -6
  53. package/dist/types/src/meta.d.ts.map +1 -1
  54. package/dist/types/src/model/formatting-model.d.ts +3 -0
  55. package/dist/types/src/model/formatting-model.d.ts.map +1 -1
  56. package/dist/types/src/model/sheet-model.d.ts +3 -2
  57. package/dist/types/src/model/sheet-model.d.ts.map +1 -1
  58. package/dist/types/src/types.d.ts +4 -20
  59. package/dist/types/src/types.d.ts.map +1 -1
  60. package/package.json +36 -34
  61. package/src/components/GridSheet/GridSheet.tsx +14 -32
  62. package/src/components/{CellEditor/CellEditor.stories.tsx → GridSheet/SheetCellEditor.stories.tsx} +2 -2
  63. package/src/components/GridSheet/util.ts +2 -6
  64. package/src/components/Sheet/Sheet.stories.tsx +4 -3
  65. package/src/components/Sheet/Sheet.tsx +2 -8
  66. package/src/{components/CellEditor → extensions/editor}/index.ts +0 -1
  67. package/src/extensions/index.ts +1 -0
  68. package/src/{meta.tsx → meta.ts} +3 -3
  69. package/src/model/formatting-model.ts +11 -8
  70. package/src/model/sheet-model.test.ts +1 -3
  71. package/src/model/sheet-model.ts +13 -11
  72. package/src/types.ts +8 -35
  73. package/dist/lib/browser/chunk-CHQAW4F4.mjs.map +0 -7
  74. package/dist/lib/browser/chunk-QILRZNE5.mjs.map +0 -7
  75. package/dist/lib/browser/chunk-WZMOZKQZ.mjs.map +0 -7
  76. package/dist/lib/node/chunk-5FTFZL5W.cjs.map +0 -7
  77. package/dist/lib/node/chunk-AOP42UAA.cjs.map +0 -7
  78. package/dist/lib/node/chunk-BNARJ5GM.cjs.map +0 -7
  79. package/dist/lib/node-esm/chunk-IU2L277A.mjs.map +0 -7
  80. package/dist/lib/node-esm/chunk-KK3XL37M.mjs.map +0 -7
  81. package/dist/lib/node-esm/chunk-RR2AO4SM.mjs.map +0 -7
  82. package/dist/types/src/components/CellEditor/CellEditor.d.ts +0 -34
  83. package/dist/types/src/components/CellEditor/CellEditor.d.ts.map +0 -1
  84. package/dist/types/src/components/CellEditor/CellEditor.stories.d.ts.map +0 -1
  85. package/dist/types/src/components/CellEditor/extension.d.ts.map +0 -1
  86. package/dist/types/src/components/CellEditor/extension.test.d.ts.map +0 -1
  87. package/dist/types/src/components/CellEditor/index.d.ts +0 -3
  88. package/dist/types/src/components/CellEditor/index.d.ts.map +0 -1
  89. package/src/components/CellEditor/CellEditor.tsx +0 -163
  90. /package/dist/lib/browser/{SheetContainer-LG77O4RM.mjs.map → SheetContainer-XBTEYQ6T.mjs.map} +0 -0
  91. /package/dist/lib/node/{SheetContainer-OZ7DHH4L.cjs.map → SheetContainer-HSRYKV52.cjs.map} +0 -0
  92. /package/dist/lib/node-esm/{SheetContainer-4XS2G25Z.mjs.map → SheetContainer-Q4PHM7ZE.mjs.map} +0 -0
  93. /package/dist/types/src/{components/CellEditor → extensions/editor}/extension.d.ts +0 -0
  94. /package/dist/types/src/{components/CellEditor → extensions/editor}/extension.test.d.ts +0 -0
  95. /package/src/{components/CellEditor → extensions/editor}/extension.test.ts +0 -0
  96. /package/src/{components/CellEditor → extensions/editor}/extension.ts +0 -0
@@ -1,10 +1,9 @@
1
1
  import {
2
- SheetType,
3
- ValueTypeEnum
4
- } from "./chunk-WZMOZKQZ.mjs";
2
+ SheetType
3
+ } from "./chunk-NZBWHQSR.mjs";
5
4
  import {
6
5
  SHEET_PLUGIN
7
- } from "./chunk-QILRZNE5.mjs";
6
+ } from "./chunk-D3QTX46O.mjs";
8
7
  import {
9
8
  createSheetName
10
9
  } from "./chunk-GSV5QNLD.mjs";
@@ -15,13 +14,14 @@ import { restrictToHorizontalAxis, restrictToVerticalAxis } from "@dnd-kit/modif
15
14
  import { getEventCoordinates, useCombinedRefs } from "@dnd-kit/utilities";
16
15
  import { Function as FunctionIcon } from "@phosphor-icons/react";
17
16
  import { Resizable } from "re-resizable";
18
- import React6, { forwardRef, useEffect as useEffect4, useImperativeHandle, useMemo as useMemo4, useRef, useState as useState5 } from "react";
17
+ import React5, { forwardRef, useEffect as useEffect4, useImperativeHandle, useMemo as useMemo4, useRef, useState as useState5 } from "react";
19
18
  import { createPortal } from "react-dom";
20
19
  import { useResizeDetector } from "react-resize-detector";
21
- import { debounce as debounce2 } from "@dxos/async";
20
+ import { debounce as debounce3 } from "@dxos/async";
22
21
  import { fullyQualifiedId as fullyQualifiedId2, createDocAccessor } from "@dxos/client/echo";
23
22
  import { log as log2 } from "@dxos/log";
24
23
  import { ATTENABLE_ATTRIBUTE, useAttendableAttributes, useAttention, useAttentionPath } from "@dxos/react-ui-attention";
24
+ import { CellEditor, editorKeys } from "@dxos/react-ui-grid";
25
25
  import { mx as mx2 } from "@dxos/react-ui-theme";
26
26
 
27
27
  // packages/plugins/plugin-sheet/src/components/Sheet/grid.ts
@@ -544,7 +544,7 @@ var ComputeGraphContextProvider = ({ registry, children }) => {
544
544
  };
545
545
 
546
546
  // packages/plugins/plugin-sheet/src/components/index.ts
547
- var SheetContainer = React2.lazy(() => import("./SheetContainer-LG77O4RM.mjs"));
547
+ var SheetContainer = React2.lazy(() => import("./SheetContainer-XBTEYQ6T.mjs"));
548
548
 
549
549
  // packages/plugins/plugin-sheet/src/hooks/useComputeGraph.ts
550
550
  var useComputeGraph = (space) => {
@@ -566,6 +566,7 @@ var useComputeGraph = (space) => {
566
566
  import { useMemo } from "react";
567
567
 
568
568
  // packages/plugins/plugin-sheet/src/model/formatting-model.ts
569
+ import { FieldValueType } from "@dxos/schema";
569
570
  var FormattingModel = class {
570
571
  constructor(_model) {
571
572
  this._model = _model;
@@ -598,7 +599,7 @@ var FormattingModel = class {
598
599
  const defaultNumber = "justify-end font-mono";
599
600
  const type = formatting?.type ?? this._model.getValueType(cell);
600
601
  switch (type) {
601
- case ValueTypeEnum.Boolean: {
602
+ case FieldValueType.Boolean: {
602
603
  return {
603
604
  value: value.toLocaleString().toUpperCase(),
604
605
  classNames: [
@@ -610,7 +611,7 @@ var FormattingModel = class {
610
611
  //
611
612
  // Numbers.
612
613
  //
613
- case ValueTypeEnum.Number: {
614
+ case FieldValueType.Number: {
614
615
  return {
615
616
  value: value.toLocaleString(locales),
616
617
  classNames: [
@@ -619,7 +620,7 @@ var FormattingModel = class {
619
620
  ]
620
621
  };
621
622
  }
622
- case ValueTypeEnum.Percent: {
623
+ case FieldValueType.Percent: {
623
624
  return {
624
625
  value: value * 100 + "%",
625
626
  classNames: [
@@ -628,7 +629,7 @@ var FormattingModel = class {
628
629
  ]
629
630
  };
630
631
  }
631
- case ValueTypeEnum.Currency: {
632
+ case FieldValueType.Currency: {
632
633
  return {
633
634
  value: value.toLocaleString(locales, {
634
635
  style: "currency",
@@ -645,21 +646,21 @@ var FormattingModel = class {
645
646
  //
646
647
  // Dates.
647
648
  //
648
- case ValueTypeEnum.DateTime: {
649
+ case FieldValueType.DateTime: {
649
650
  const date = this._model.toLocalDate(value);
650
651
  return {
651
652
  value: date.toLocaleString(locales),
652
653
  classNames
653
654
  };
654
655
  }
655
- case ValueTypeEnum.Date: {
656
+ case FieldValueType.Date: {
656
657
  const date = this._model.toLocalDate(value);
657
658
  return {
658
659
  value: date.toLocaleDateString(locales),
659
660
  classNames
660
661
  };
661
662
  }
662
- case ValueTypeEnum.Time: {
663
+ case FieldValueType.Time: {
663
664
  const date = this._model.toLocalDate(value);
664
665
  return {
665
666
  value: date.toLocaleTimeString(locales),
@@ -683,16 +684,17 @@ import { getTypename } from "@dxos/echo-schema";
683
684
  import { invariant as invariant2 } from "@dxos/invariant";
684
685
  import { PublicKey } from "@dxos/keys";
685
686
  import { log } from "@dxos/log";
687
+ import { FieldValueType as FieldValueType2 } from "@dxos/schema";
686
688
  import { DetailedCellError, ExportedCellChange } from "#hyperformula";
687
689
  var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-sheet/src/model/sheet-model.ts";
688
690
  var typeMap = {
689
- BOOLEAN: ValueTypeEnum.Boolean,
690
- NUMBER_RAW: ValueTypeEnum.Number,
691
- NUMBER_PERCENT: ValueTypeEnum.Percent,
692
- NUMBER_CURRENCY: ValueTypeEnum.Currency,
693
- NUMBER_DATETIME: ValueTypeEnum.DateTime,
694
- NUMBER_DATE: ValueTypeEnum.Date,
695
- NUMBER_TIME: ValueTypeEnum.Time
691
+ BOOLEAN: FieldValueType2.Boolean,
692
+ NUMBER_RAW: FieldValueType2.Number,
693
+ NUMBER_PERCENT: FieldValueType2.Percent,
694
+ NUMBER_CURRENCY: FieldValueType2.Currency,
695
+ NUMBER_DATETIME: FieldValueType2.DateTime,
696
+ NUMBER_DATE: FieldValueType2.Date,
697
+ NUMBER_TIME: FieldValueType2.Time
696
698
  };
697
699
  var getTopLeft = (range) => {
698
700
  const to = range.to ?? range.from;
@@ -742,7 +744,7 @@ var SheetModel = class extends Resource {
742
744
  id: this.id
743
745
  }, {
744
746
  F: __dxlog_file2,
745
- L: 104,
747
+ L: 106,
746
748
  S: this,
747
749
  C: (f, a) => f(...a)
748
750
  });
@@ -764,7 +766,7 @@ var SheetModel = class extends Resource {
764
766
  reset() {
765
767
  invariant2(this._node, void 0, {
766
768
  F: __dxlog_file2,
767
- L: 124,
769
+ L: 126,
768
770
  S: this,
769
771
  A: [
770
772
  "this._node",
@@ -775,7 +777,7 @@ var SheetModel = class extends Resource {
775
777
  Object.entries(this._sheet.cells).forEach(([key, { value }]) => {
776
778
  invariant2(this._node, void 0, {
777
779
  F: __dxlog_file2,
778
- L: 127,
780
+ L: 129,
779
781
  S: this,
780
782
  A: [
781
783
  "this._node",
@@ -821,7 +823,7 @@ var SheetModel = class extends Resource {
821
823
  clear(range) {
822
824
  invariant2(this._node, void 0, {
823
825
  F: __dxlog_file2,
824
- L: 169,
826
+ L: 171,
825
827
  S: this,
826
828
  A: [
827
829
  "this._node",
@@ -839,7 +841,7 @@ var SheetModel = class extends Resource {
839
841
  cut(range) {
840
842
  invariant2(this._node, void 0, {
841
843
  F: __dxlog_file2,
842
- L: 180,
844
+ L: 182,
843
845
  S: this,
844
846
  A: [
845
847
  "this._node",
@@ -855,7 +857,7 @@ var SheetModel = class extends Resource {
855
857
  copy(range) {
856
858
  invariant2(this._node, void 0, {
857
859
  F: __dxlog_file2,
858
- L: 189,
860
+ L: 191,
859
861
  S: this,
860
862
  A: [
861
863
  "this._node",
@@ -867,7 +869,7 @@ var SheetModel = class extends Resource {
867
869
  paste(cell) {
868
870
  invariant2(this._node, void 0, {
869
871
  F: __dxlog_file2,
870
- L: 194,
872
+ L: 196,
871
873
  S: this,
872
874
  A: [
873
875
  "this._node",
@@ -894,7 +896,7 @@ var SheetModel = class extends Resource {
894
896
  undo() {
895
897
  invariant2(this._node, void 0, {
896
898
  F: __dxlog_file2,
897
- L: 209,
899
+ L: 211,
898
900
  S: this,
899
901
  A: [
900
902
  "this._node",
@@ -908,7 +910,7 @@ var SheetModel = class extends Resource {
908
910
  redo() {
909
911
  invariant2(this._node, void 0, {
910
912
  F: __dxlog_file2,
911
- L: 217,
913
+ L: 219,
912
914
  S: this,
913
915
  A: [
914
916
  "this._node",
@@ -952,7 +954,7 @@ var SheetModel = class extends Resource {
952
954
  getValue(cell) {
953
955
  invariant2(this._node, void 0, {
954
956
  F: __dxlog_file2,
955
- L: 260,
957
+ L: 262,
956
958
  S: this,
957
959
  A: [
958
960
  "this._node",
@@ -971,7 +973,7 @@ var SheetModel = class extends Resource {
971
973
  getValueType(cell) {
972
974
  invariant2(this._node, void 0, {
973
975
  F: __dxlog_file2,
974
- L: 273,
976
+ L: 275,
975
977
  S: this,
976
978
  A: [
977
979
  "this._node",
@@ -988,7 +990,7 @@ var SheetModel = class extends Resource {
988
990
  setValue(cell, value) {
989
991
  invariant2(this._node, void 0, {
990
992
  F: __dxlog_file2,
991
- L: 283,
993
+ L: 285,
992
994
  S: this,
993
995
  A: [
994
996
  "this._node",
@@ -1085,7 +1087,7 @@ var SheetModel = class extends Resource {
1085
1087
  mapFormulaRefsToIndices(formula) {
1086
1088
  invariant2(formula.charAt(0) === "=", void 0, {
1087
1089
  F: __dxlog_file2,
1088
- L: 372,
1090
+ L: 374,
1089
1091
  S: this,
1090
1092
  A: [
1091
1093
  "formula.charAt(0) === '='",
@@ -1102,7 +1104,7 @@ var SheetModel = class extends Resource {
1102
1104
  mapFormulaIndicesToRefs(formula) {
1103
1105
  invariant2(formula.charAt(0) === "=", void 0, {
1104
1106
  F: __dxlog_file2,
1105
- L: 382,
1107
+ L: 384,
1106
1108
  S: this,
1107
1109
  A: [
1108
1110
  "formula.charAt(0) === '='",
@@ -1128,7 +1130,7 @@ var SheetModel = class extends Resource {
1128
1130
  toDateTime(num) {
1129
1131
  invariant2(this._node, void 0, {
1130
1132
  F: __dxlog_file2,
1131
- L: 403,
1133
+ L: 405,
1132
1134
  S: this,
1133
1135
  A: [
1134
1136
  "this._node",
@@ -1140,7 +1142,7 @@ var SheetModel = class extends Resource {
1140
1142
  toDate(num) {
1141
1143
  invariant2(this._node, void 0, {
1142
1144
  F: __dxlog_file2,
1143
- L: 408,
1145
+ L: 410,
1144
1146
  S: this,
1145
1147
  A: [
1146
1148
  "this._node",
@@ -1152,7 +1154,7 @@ var SheetModel = class extends Resource {
1152
1154
  toTime(num) {
1153
1155
  invariant2(this._node, void 0, {
1154
1156
  F: __dxlog_file2,
1155
- L: 413,
1157
+ L: 415,
1156
1158
  S: this,
1157
1159
  A: [
1158
1160
  "this._node",
@@ -1438,169 +1440,23 @@ var scrollIntoView = (scrollContainer, el) => {
1438
1440
  }
1439
1441
  };
1440
1442
 
1441
- // packages/plugins/plugin-sheet/src/components/CellEditor/CellEditor.tsx
1442
- import { EditorView, keymap } from "@codemirror/view";
1443
- import React5 from "react";
1444
- import { useThemeContext } from "@dxos/react-ui";
1445
- import { createBasicExtensions, createThemeExtensions, preventNewline, useTextEditor } from "@dxos/react-ui-editor";
1446
- var editorKeys = ({ onNav, onClose }) => {
1447
- return keymap.of([
1448
- {
1449
- key: "ArrowUp",
1450
- run: (editor) => {
1451
- const value = editor.state.doc.toString();
1452
- onNav?.(value, {
1453
- key: "ArrowUp"
1454
- });
1455
- return !!onNav;
1456
- }
1457
- },
1458
- {
1459
- key: "ArrowDown",
1460
- run: (editor) => {
1461
- const value = editor.state.doc.toString();
1462
- onNav?.(value, {
1463
- key: "ArrowDown"
1464
- });
1465
- return !!onNav;
1466
- }
1467
- },
1468
- {
1469
- key: "ArrowLeft",
1470
- run: (editor) => {
1471
- const value = editor.state.doc.toString();
1472
- onNav?.(value, {
1473
- key: "ArrowLeft"
1474
- });
1475
- return !!onNav;
1476
- }
1477
- },
1478
- {
1479
- key: "ArrowRight",
1480
- run: (editor) => {
1481
- const value = editor.state.doc.toString();
1482
- onNav?.(value, {
1483
- key: "ArrowRight"
1484
- });
1485
- return !!onNav;
1486
- }
1487
- },
1488
- {
1489
- key: "Enter",
1490
- run: (editor) => {
1491
- onClose(editor.state.doc.toString(), {
1492
- key: "Enter"
1493
- });
1494
- return true;
1495
- },
1496
- shift: (editor) => {
1497
- onClose(editor.state.doc.toString(), {
1498
- key: "Enter",
1499
- shift: true
1500
- });
1501
- return true;
1502
- }
1503
- },
1504
- {
1505
- key: "Tab",
1506
- run: (editor) => {
1507
- onClose(editor.state.doc.toString(), {
1508
- key: "Tab"
1509
- });
1510
- return true;
1511
- },
1512
- shift: (editor) => {
1513
- onClose(editor.state.doc.toString(), {
1514
- key: "Tab",
1515
- shift: true
1516
- });
1517
- return true;
1518
- }
1519
- },
1520
- {
1521
- key: "Escape",
1522
- run: () => {
1523
- onClose(void 0, {
1524
- key: "Escape"
1525
- });
1526
- return true;
1527
- }
1528
- }
1529
- ]);
1530
- };
1531
- var editorVariants = {
1532
- // TODO(thure): remove when legacy is no longer used.
1533
- legacy: {
1534
- root: "flex w-full",
1535
- editor: "flex w-full [&>.cm-scroller]:scrollbar-none",
1536
- content: "!px-2 !py-1"
1537
- },
1538
- grid: {
1539
- root: "absolute z-[1]",
1540
- editor: "[&>.cm-scroller]:scrollbar-none tabular-nums",
1541
- content: "!border !border-transparent !p-0.5"
1542
- }
1543
- };
1544
- var CellEditor = ({ value, extension, autoFocus, onBlur, variant = "legacy", box, gridId }) => {
1545
- const { themeMode } = useThemeContext();
1546
- const { parentRef } = useTextEditor(() => {
1547
- return {
1548
- autoFocus,
1549
- initialValue: value,
1550
- selection: {
1551
- anchor: value?.length ?? 0
1552
- },
1553
- extensions: [
1554
- extension ?? [],
1555
- preventNewline,
1556
- EditorView.focusChangeEffect.of((_, focusing) => {
1557
- if (!focusing) {
1558
- onBlur?.({
1559
- type: "blur"
1560
- });
1561
- }
1562
- return null;
1563
- }),
1564
- createBasicExtensions({
1565
- lineWrapping: false
1566
- }),
1567
- createThemeExtensions({
1568
- themeMode,
1569
- slots: {
1570
- editor: {
1571
- className: editorVariants[variant].editor
1572
- },
1573
- content: {
1574
- className: editorVariants[variant].content
1575
- }
1576
- }
1577
- })
1578
- ]
1579
- };
1580
- }, [
1581
- extension,
1582
- autoFocus,
1583
- value,
1584
- variant,
1585
- onBlur
1586
- ]);
1587
- return /* @__PURE__ */ React5.createElement("div", {
1588
- ref: parentRef,
1589
- className: editorVariants[variant].root,
1590
- style: box,
1591
- ...gridId && {
1592
- "data-grid": gridId
1593
- }
1594
- });
1595
- };
1443
+ // packages/plugins/plugin-sheet/src/extensions/compute.ts
1444
+ import { syntaxTree } from "@codemirror/language";
1445
+ import { RangeSetBuilder, StateEffect, StateField } from "@codemirror/state";
1446
+ import { Decoration, EditorView, ViewPlugin, WidgetType } from "@codemirror/view";
1447
+ import { debounce as debounce2 } from "@dxos/async";
1448
+ import { invariant as invariant4 } from "@dxos/invariant";
1449
+ import { documentId, singleValueFacet } from "@dxos/react-ui-editor/state";
1450
+ var updateAllDecorations = StateEffect.define();
1451
+ var computeGraphFacet = singleValueFacet();
1596
1452
 
1597
- // packages/plugins/plugin-sheet/src/components/CellEditor/extension.ts
1453
+ // packages/plugins/plugin-sheet/src/extensions/editor/extension.ts
1598
1454
  import { acceptCompletion, autocompletion, completionStatus, startCompletion } from "@codemirror/autocomplete";
1599
1455
  import { HighlightStyle, syntaxHighlighting } from "@codemirror/language";
1600
- import { ViewPlugin, keymap as keymap2 } from "@codemirror/view";
1456
+ import { ViewPlugin as ViewPlugin2, keymap } from "@codemirror/view";
1601
1457
  import { tags } from "@lezer/highlight";
1602
1458
  import { spreadsheet } from "codemirror-lang-spreadsheet";
1603
- import { singleValueFacet } from "@dxos/react-ui-editor/state";
1459
+ import { singleValueFacet as singleValueFacet2 } from "@dxos/react-ui-editor/state";
1604
1460
  import { mx } from "@dxos/react-ui-theme";
1605
1461
  var highlightStyles = HighlightStyle.define([
1606
1462
  // Function.
@@ -1632,7 +1488,7 @@ var highlightStyles = HighlightStyle.define([
1632
1488
  class: "text-unAccent"
1633
1489
  }
1634
1490
  ]);
1635
- var languageFacet = singleValueFacet();
1491
+ var languageFacet = singleValueFacet2();
1636
1492
  var sheetExtension = ({ functions = [] }) => {
1637
1493
  const { extension, language } = spreadsheet({
1638
1494
  idiom: "en-US",
@@ -1714,7 +1570,7 @@ var sheetExtension = ({ functions = [] }) => {
1714
1570
  icons: false,
1715
1571
  tooltipClass: () => mx("!-left-[1px] !top-[33px] !-m-0 border !border-t-0 [&>ul]:!min-w-[198px]", "[&>ul>li[aria-selected]]:!bg-accentSurface", "border-separator")
1716
1572
  }),
1717
- keymap2.of([
1573
+ keymap.of([
1718
1574
  {
1719
1575
  key: "Tab",
1720
1576
  run: (view) => {
@@ -1741,7 +1597,7 @@ var rangeExtension = (onInit) => {
1741
1597
  }
1742
1598
  view.focus();
1743
1599
  };
1744
- return ViewPlugin.fromClass(class {
1600
+ return ViewPlugin2.fromClass(class {
1745
1601
  constructor(_view) {
1746
1602
  view = _view;
1747
1603
  onInit(provider);
@@ -1809,7 +1665,7 @@ var fragments = {
1809
1665
  cellSelected: "bg-gridCellSelected text-baseText border !border-accentSurface"
1810
1666
  };
1811
1667
  var SheetRoot = ({ children, ...props }) => {
1812
- return /* @__PURE__ */ React6.createElement(SheetContextProvider, props, children);
1668
+ return /* @__PURE__ */ React5.createElement(SheetContextProvider, props, children);
1813
1669
  };
1814
1670
  var SheetMain = /* @__PURE__ */ forwardRef(({ classNames, numRows, numCols }, forwardRef2) => {
1815
1671
  const { model, cursor, setCursor, setRange, setEditing } = useSheetContext();
@@ -1828,7 +1684,7 @@ var SheetMain = /* @__PURE__ */ forwardRef(({ classNames, numRows, numCols }, fo
1828
1684
  const columnsAccessor = createDocAccessor(model.sheet, [
1829
1685
  "columns"
1830
1686
  ]);
1831
- const handleUpdate = debounce2(() => {
1687
+ const handleUpdate = debounce3(() => {
1832
1688
  setRows([
1833
1689
  ...model.sheet.rows
1834
1690
  ]);
@@ -1883,7 +1739,7 @@ var SheetMain = /* @__PURE__ */ forwardRef(({ classNames, numRows, numCols }, fo
1883
1739
  const columnAccessor = createDocAccessor(model.sheet, [
1884
1740
  "columnMeta"
1885
1741
  ]);
1886
- const handleUpdate = debounce2(() => {
1742
+ const handleUpdate = debounce3(() => {
1887
1743
  const mapSizes = (values) => values.reduce((map, [idx, meta]) => {
1888
1744
  if (meta.size) {
1889
1745
  map[idx] = meta.size;
@@ -1925,16 +1781,16 @@ var SheetMain = /* @__PURE__ */ forwardRef(({ classNames, numRows, numCols }, fo
1925
1781
  }));
1926
1782
  }
1927
1783
  };
1928
- return /* @__PURE__ */ React6.createElement("div", {
1784
+ return /* @__PURE__ */ React5.createElement("div", {
1929
1785
  role: "none",
1930
1786
  className: mx2("grid grid-cols-[calc(var(--rail-size)-2px)_1fr] grid-rows-[32px_1fr_32px] bs-full is-full overflow-hidden", classNames)
1931
- }, /* @__PURE__ */ React6.createElement(GridCorner, {
1787
+ }, /* @__PURE__ */ React5.createElement(GridCorner, {
1932
1788
  onClick: () => {
1933
1789
  setCursor(void 0);
1934
1790
  setRange(void 0);
1935
1791
  setEditing(false);
1936
1792
  }
1937
- }), /* @__PURE__ */ React6.createElement(SheetColumns, {
1793
+ }), /* @__PURE__ */ React5.createElement(SheetColumns, {
1938
1794
  ref: columnsRef,
1939
1795
  columns,
1940
1796
  sizes: columnSizes,
@@ -1945,7 +1801,7 @@ var SheetMain = /* @__PURE__ */ forwardRef(({ classNames, numRows, numCols }, fo
1945
1801
  }),
1946
1802
  onResize: handleResizeColumn,
1947
1803
  onMove: handleMoveColumns
1948
- }), /* @__PURE__ */ React6.createElement(SheetRows, {
1804
+ }), /* @__PURE__ */ React5.createElement(SheetRows, {
1949
1805
  ref: rowsRef,
1950
1806
  rows,
1951
1807
  sizes: rowSizes,
@@ -1956,7 +1812,7 @@ var SheetMain = /* @__PURE__ */ forwardRef(({ classNames, numRows, numCols }, fo
1956
1812
  }),
1957
1813
  onResize: handleResizeRow,
1958
1814
  onMove: handleMoveRows
1959
- }), /* @__PURE__ */ React6.createElement(SheetGrid, {
1815
+ }), /* @__PURE__ */ React5.createElement(SheetGrid, {
1960
1816
  ref: contentRef,
1961
1817
  size: {
1962
1818
  numRows: numRows ?? rows.length,
@@ -1966,7 +1822,7 @@ var SheetMain = /* @__PURE__ */ forwardRef(({ classNames, numRows, numCols }, fo
1966
1822
  columns,
1967
1823
  rowSizes,
1968
1824
  columnSizes
1969
- }), /* @__PURE__ */ React6.createElement(GridCorner, null), /* @__PURE__ */ React6.createElement(SheetStatusBar, null));
1825
+ }), /* @__PURE__ */ React5.createElement(GridCorner, null), /* @__PURE__ */ React5.createElement(SheetStatusBar, null));
1970
1826
  });
1971
1827
  var useScrollHandlers = () => {
1972
1828
  const rowsRef = useRef(null);
@@ -2009,13 +1865,13 @@ var useScrollHandlers = () => {
2009
1865
  };
2010
1866
  };
2011
1867
  var GridCorner = (props) => {
2012
- return /* @__PURE__ */ React6.createElement("div", {
1868
+ return /* @__PURE__ */ React5.createElement("div", {
2013
1869
  className: fragments.axis,
2014
1870
  ...props
2015
1871
  });
2016
1872
  };
2017
1873
  var MovingOverlay = ({ label }) => {
2018
- return /* @__PURE__ */ React6.createElement("div", {
1874
+ return /* @__PURE__ */ React5.createElement("div", {
2019
1875
  className: "flex w-full h-full justify-center items-center text-sm p-1 bg-gridOverlay cursor-pointer"
2020
1876
  }, label);
2021
1877
  };
@@ -2059,18 +1915,18 @@ var SheetRows = /* @__PURE__ */ forwardRef(({ rows, sizes, selected, onSelect, o
2059
1915
  }
2060
1916
  return transform;
2061
1917
  };
2062
- return /* @__PURE__ */ React6.createElement("div", {
1918
+ return /* @__PURE__ */ React5.createElement("div", {
2063
1919
  className: "relative flex grow overflow-hidden"
2064
- }, /* @__PURE__ */ React6.createElement("div", {
1920
+ }, /* @__PURE__ */ React5.createElement("div", {
2065
1921
  className: mx2("z-20 absolute inset-0 border-y border-gridLine pointer-events-none"),
2066
1922
  style: {
2067
1923
  width: axisWidth
2068
1924
  }
2069
- }), /* @__PURE__ */ React6.createElement("div", {
1925
+ }), /* @__PURE__ */ React5.createElement("div", {
2070
1926
  ref: forwardRef2,
2071
1927
  role: "rowheader",
2072
1928
  className: "grow overflow-y-auto scrollbar-none"
2073
- }, /* @__PURE__ */ React6.createElement(DndContext, {
1929
+ }, /* @__PURE__ */ React5.createElement(DndContext, {
2074
1930
  sensors,
2075
1931
  modifiers: [
2076
1932
  restrictToVerticalAxis,
@@ -2078,12 +1934,12 @@ var SheetRows = /* @__PURE__ */ forwardRef(({ rows, sizes, selected, onSelect, o
2078
1934
  ],
2079
1935
  onDragStart: handleDragStart,
2080
1936
  onDragEnd: handleDragEnd
2081
- }, /* @__PURE__ */ React6.createElement("div", {
1937
+ }, /* @__PURE__ */ React5.createElement("div", {
2082
1938
  className: "flex flex-col",
2083
1939
  style: {
2084
1940
  width: axisWidth
2085
1941
  }
2086
- }, rows.map((idx, index) => /* @__PURE__ */ React6.createElement(GridRowCell, {
1942
+ }, rows.map((idx, index) => /* @__PURE__ */ React5.createElement(GridRowCell, {
2087
1943
  key: idx,
2088
1944
  idx,
2089
1945
  index,
@@ -2093,7 +1949,7 @@ var SheetRows = /* @__PURE__ */ forwardRef(({ rows, sizes, selected, onSelect, o
2093
1949
  selected: selected === index,
2094
1950
  onResize,
2095
1951
  onSelect
2096
- }))), /* @__PURE__ */ createPortal(/* @__PURE__ */ React6.createElement(DragOverlay, null, active && /* @__PURE__ */ React6.createElement(MovingOverlay, {
1952
+ }))), /* @__PURE__ */ createPortal(/* @__PURE__ */ React5.createElement(DragOverlay, null, active && /* @__PURE__ */ React5.createElement(MovingOverlay, {
2097
1953
  label: String(active.data.current.index + 1)
2098
1954
  })), document.body))));
2099
1955
  });
@@ -2134,7 +1990,7 @@ var GridRowCell = ({ idx, index, label, size, resize, selected, onSelect, onResi
2134
1990
  onResize?.(idx, initialSize + height, true);
2135
1991
  setResizing(false);
2136
1992
  };
2137
- return /* @__PURE__ */ React6.createElement(Resizable, {
1993
+ return /* @__PURE__ */ React5.createElement(Resizable, {
2138
1994
  enable: {
2139
1995
  bottom: resize
2140
1996
  },
@@ -2146,17 +2002,17 @@ var GridRowCell = ({ idx, index, label, size, resize, selected, onSelect, onResi
2146
2002
  onResizeStart: handleResizeStart,
2147
2003
  onResize: handleResize,
2148
2004
  onResizeStop: handleResizeStop
2149
- }, /* @__PURE__ */ React6.createElement("div", {
2005
+ }, /* @__PURE__ */ React5.createElement("div", {
2150
2006
  ref: setNodeRef,
2151
2007
  ...attributes,
2152
2008
  ...listeners,
2153
2009
  className: mx2("flex h-full items-center justify-center cursor-pointer", "border-t border-gridLine focus-visible:outline-none", fragments.axis, selected && fragments.axisSelected, isDragging && fragments.axisSelected),
2154
2010
  onClick: () => onSelect?.(index)
2155
- }, /* @__PURE__ */ React6.createElement("span", {
2011
+ }, /* @__PURE__ */ React5.createElement("span", {
2156
2012
  className: "flex w-full justify-center"
2157
- }, label), over?.id === idx && !isDragging && /* @__PURE__ */ React6.createElement("div", {
2013
+ }, label), over?.id === idx && !isDragging && /* @__PURE__ */ React5.createElement("div", {
2158
2014
  className: "z-20 absolute top-0 w-full min-h-[4px] border-b-4 border-accentSurface"
2159
- }), resizing && /* @__PURE__ */ React6.createElement("div", {
2015
+ }), resizing && /* @__PURE__ */ React5.createElement("div", {
2160
2016
  className: "z-20 absolute bottom-0 w-full min-h-[4px] border-b-4 border-accentSurface"
2161
2017
  })));
2162
2018
  };
@@ -2193,18 +2049,18 @@ var SheetColumns = /* @__PURE__ */ forwardRef(({ columns, sizes, selected, onSel
2193
2049
  }
2194
2050
  return transform;
2195
2051
  };
2196
- return /* @__PURE__ */ React6.createElement("div", {
2052
+ return /* @__PURE__ */ React5.createElement("div", {
2197
2053
  className: "relative flex grow overflow-hidden"
2198
- }, /* @__PURE__ */ React6.createElement("div", {
2054
+ }, /* @__PURE__ */ React5.createElement("div", {
2199
2055
  className: mx2("z-20 absolute inset-0 border-x border-gridLine pointer-events-none"),
2200
2056
  style: {
2201
2057
  height: axisHeight
2202
2058
  }
2203
- }), /* @__PURE__ */ React6.createElement("div", {
2059
+ }), /* @__PURE__ */ React5.createElement("div", {
2204
2060
  ref: forwardRef2,
2205
2061
  role: "columnheader",
2206
2062
  className: "grow overflow-x-auto scrollbar-none"
2207
- }, /* @__PURE__ */ React6.createElement(DndContext, {
2063
+ }, /* @__PURE__ */ React5.createElement(DndContext, {
2208
2064
  autoScroll: {
2209
2065
  enabled: true
2210
2066
  },
@@ -2215,12 +2071,12 @@ var SheetColumns = /* @__PURE__ */ forwardRef(({ columns, sizes, selected, onSel
2215
2071
  ],
2216
2072
  onDragStart: handleDragStart,
2217
2073
  onDragEnd: handleDragEnd
2218
- }, /* @__PURE__ */ React6.createElement("div", {
2074
+ }, /* @__PURE__ */ React5.createElement("div", {
2219
2075
  className: "flex h-full",
2220
2076
  style: {
2221
2077
  height: axisHeight
2222
2078
  }
2223
- }, columns.map((idx, index) => /* @__PURE__ */ React6.createElement(GridColumnCell, {
2079
+ }, columns.map((idx, index) => /* @__PURE__ */ React5.createElement(GridColumnCell, {
2224
2080
  key: idx,
2225
2081
  idx,
2226
2082
  index,
@@ -2230,7 +2086,7 @@ var SheetColumns = /* @__PURE__ */ forwardRef(({ columns, sizes, selected, onSel
2230
2086
  selected: selected === index,
2231
2087
  onResize,
2232
2088
  onSelect
2233
- }))), /* @__PURE__ */ createPortal(/* @__PURE__ */ React6.createElement(DragOverlay, null, active && /* @__PURE__ */ React6.createElement(MovingOverlay, {
2089
+ }))), /* @__PURE__ */ createPortal(/* @__PURE__ */ React5.createElement(DragOverlay, null, active && /* @__PURE__ */ React5.createElement(MovingOverlay, {
2234
2090
  label: columnLetter(active.data.current.index)
2235
2091
  })), document.body))));
2236
2092
  });
@@ -2271,7 +2127,7 @@ var GridColumnCell = ({ idx, index, label, size, resize, selected, onSelect, onR
2271
2127
  onResize?.(idx, initialSize + width, true);
2272
2128
  setResizing(false);
2273
2129
  };
2274
- return /* @__PURE__ */ React6.createElement(Resizable, {
2130
+ return /* @__PURE__ */ React5.createElement(Resizable, {
2275
2131
  enable: {
2276
2132
  right: resize
2277
2133
  },
@@ -2283,17 +2139,17 @@ var GridColumnCell = ({ idx, index, label, size, resize, selected, onSelect, onR
2283
2139
  onResizeStart: handleResizeStart,
2284
2140
  onResize: handleResize,
2285
2141
  onResizeStop: handleResizeStop
2286
- }, /* @__PURE__ */ React6.createElement("div", {
2142
+ }, /* @__PURE__ */ React5.createElement("div", {
2287
2143
  ref: setNodeRef,
2288
2144
  ...attributes,
2289
2145
  ...listeners,
2290
2146
  className: mx2("flex h-full items-center justify-center cursor-pointer", "border-l border-gridLine focus-visible:outline-none", fragments.axis, selected && fragments.axisSelected, isDragging && fragments.axisSelected),
2291
2147
  onClick: () => onSelect?.(index)
2292
- }, /* @__PURE__ */ React6.createElement("span", {
2148
+ }, /* @__PURE__ */ React5.createElement("span", {
2293
2149
  className: "flex w-full justify-center"
2294
- }, label), over?.id === idx && !isDragging && /* @__PURE__ */ React6.createElement("div", {
2150
+ }, label), over?.id === idx && !isDragging && /* @__PURE__ */ React5.createElement("div", {
2295
2151
  className: "z-20 absolute left-0 h-full min-w-[4px] border-l-4 border-accentSurface"
2296
- }), resizing && /* @__PURE__ */ React6.createElement("div", {
2152
+ }), resizing && /* @__PURE__ */ React5.createElement("div", {
2297
2153
  className: "z-20 absolute right-0 h-full min-h-[4px] border-l-4 border-accentSurface"
2298
2154
  })));
2299
2155
  };
@@ -2313,7 +2169,7 @@ var SheetGrid = /* @__PURE__ */ forwardRef(({ size, rows, columns, rowSizes, col
2313
2169
  id: model.id
2314
2170
  }, {
2315
2171
  F: __dxlog_file4,
2316
- L: 738,
2172
+ L: 732,
2317
2173
  S: void 0,
2318
2174
  C: (f, a) => f(...a)
2319
2175
  });
@@ -2432,16 +2288,16 @@ var SheetGrid = /* @__PURE__ */ forwardRef(({ size, rows, columns, rowSizes, col
2432
2288
  });
2433
2289
  const id = fullyQualifiedId2(model.sheet);
2434
2290
  const { hasAttention } = useAttention(id);
2435
- return /* @__PURE__ */ React6.createElement("div", {
2291
+ return /* @__PURE__ */ React5.createElement("div", {
2436
2292
  ref: containerRef,
2437
2293
  role: "grid",
2438
2294
  className: "relative flex grow overflow-hidden"
2439
- }, /* @__PURE__ */ React6.createElement("div", {
2295
+ }, /* @__PURE__ */ React5.createElement("div", {
2440
2296
  className: mx2("z-20 absolute inset-0 border border-gridLine pointer-events-none")
2441
- }), /* @__PURE__ */ React6.createElement("div", {
2297
+ }), /* @__PURE__ */ React5.createElement("div", {
2442
2298
  ref: scrollerRef,
2443
2299
  className: mx2("grow", hasAttention && "overflow-auto scrollbar-thin")
2444
- }, /* @__PURE__ */ React6.createElement("div", {
2300
+ }, /* @__PURE__ */ React5.createElement("div", {
2445
2301
  className: "relative select-none",
2446
2302
  style: {
2447
2303
  width,
@@ -2449,7 +2305,7 @@ var SheetGrid = /* @__PURE__ */ forwardRef(({ size, rows, columns, rowSizes, col
2449
2305
  },
2450
2306
  onClick: () => inputRef.current?.focus(),
2451
2307
  ...handlers
2452
- }, scrollerRef.current && /* @__PURE__ */ React6.createElement(SelectionOverlay, {
2308
+ }, scrollerRef.current && /* @__PURE__ */ React5.createElement(SelectionOverlay, {
2453
2309
  root: scrollerRef.current
2454
2310
  }), rowRange.map(({ row, top, height: height2 }) => {
2455
2311
  return columnRange.map(({ col, left, width: width2 }) => {
@@ -2498,7 +2354,7 @@ var SheetGrid = /* @__PURE__ */ forwardRef(({ size, rows, columns, rowSizes, col
2498
2354
  inputRef.current?.focus();
2499
2355
  setEditing(false);
2500
2356
  };
2501
- return /* @__PURE__ */ React6.createElement(GridCellEditor, {
2357
+ return /* @__PURE__ */ React5.createElement(GridCellEditor, {
2502
2358
  key: idx,
2503
2359
  value,
2504
2360
  style,
@@ -2506,7 +2362,7 @@ var SheetGrid = /* @__PURE__ */ forwardRef(({ size, rows, columns, rowSizes, col
2506
2362
  onClose: handleClose
2507
2363
  });
2508
2364
  }
2509
- return /* @__PURE__ */ React6.createElement(SheetCell, {
2365
+ return /* @__PURE__ */ React5.createElement(SheetCell, {
2510
2366
  key: id2,
2511
2367
  id: id2,
2512
2368
  cell,
@@ -2518,7 +2374,7 @@ var SheetGrid = /* @__PURE__ */ forwardRef(({ size, rows, columns, rowSizes, col
2518
2374
  }
2519
2375
  });
2520
2376
  });
2521
- }))), /* @__PURE__ */ createPortal(/* @__PURE__ */ React6.createElement(SheetInput, {
2377
+ }))), /* @__PURE__ */ createPortal(/* @__PURE__ */ React5.createElement(SheetInput, {
2522
2378
  ref: inputRef,
2523
2379
  id,
2524
2380
  onKeyDown: handleKeyDown
@@ -2528,10 +2384,10 @@ var SheetInput = /* @__PURE__ */ forwardRef(({ id, onKeyDown }, forwardedRef) =>
2528
2384
  const path = useAttentionPath();
2529
2385
  const attendableAttrs = useAttendableAttributes(id);
2530
2386
  return path.toReversed().reduce((acc, part) => {
2531
- return /* @__PURE__ */ React6.createElement("div", {
2387
+ return /* @__PURE__ */ React5.createElement("div", {
2532
2388
  [ATTENABLE_ATTRIBUTE]: part
2533
2389
  }, acc);
2534
- }, /* @__PURE__ */ React6.createElement("input", {
2390
+ }, /* @__PURE__ */ React5.createElement("input", {
2535
2391
  ref: forwardedRef,
2536
2392
  className: "absolute w-[1px] h-[1px] bg-transparent outline-none border-none caret-transparent",
2537
2393
  onKeyDown,
@@ -2551,7 +2407,7 @@ var SelectionOverlay = ({ root }) => {
2551
2407
  const b1 = getRelativeClientRect(root, c1);
2552
2408
  const b2 = getRelativeClientRect(root, c2);
2553
2409
  const bounds = getRectUnion(b1, b2);
2554
- return /* @__PURE__ */ React6.createElement("div", {
2410
+ return /* @__PURE__ */ React5.createElement("div", {
2555
2411
  role: "none",
2556
2412
  style: bounds,
2557
2413
  className: "z-10 absolute pointer-events-none bg-gridSelectionOverlay border border-gridOverlay"
@@ -2569,12 +2425,12 @@ var SheetCell = ({ id, cell, style, active, onSelect }) => {
2569
2425
  return children;
2570
2426
  }
2571
2427
  const DecoratorComponent = decorate;
2572
- return /* @__PURE__ */ React6.createElement(DecoratorComponent, null, children);
2573
- }, /* @__PURE__ */ React6.createElement("div", {
2428
+ return /* @__PURE__ */ React5.createElement(DecoratorComponent, null, children);
2429
+ }, /* @__PURE__ */ React5.createElement("div", {
2574
2430
  role: "none",
2575
2431
  className: mx2("flex flex-grow bs-full is-full px-2 items-center truncate cursor-pointer", ...decorationAddedClasses)
2576
2432
  }, value));
2577
- return /* @__PURE__ */ React6.createElement("div", {
2433
+ return /* @__PURE__ */ React5.createElement("div", {
2578
2434
  [`data-${CELL_DATA_KEY}`]: id,
2579
2435
  role: "cell",
2580
2436
  style,
@@ -2616,12 +2472,12 @@ var GridCellEditor = ({ style, value, onNav, onClose }) => {
2616
2472
  ], [
2617
2473
  model
2618
2474
  ]);
2619
- return /* @__PURE__ */ React6.createElement("div", {
2475
+ return /* @__PURE__ */ React5.createElement("div", {
2620
2476
  role: "cell",
2621
2477
  style,
2622
2478
  className: mx2("z-20 flex", fragments.cellSelected),
2623
2479
  onClick: (ev) => ev.stopPropagation()
2624
- }, /* @__PURE__ */ React6.createElement(CellEditor, {
2480
+ }, /* @__PURE__ */ React5.createElement(CellEditor, {
2625
2481
  autoFocus: true,
2626
2482
  value,
2627
2483
  extension
@@ -2640,17 +2496,17 @@ var SheetStatusBar = () => {
2640
2496
  value = String(value);
2641
2497
  }
2642
2498
  }
2643
- return /* @__PURE__ */ React6.createElement("div", {
2499
+ return /* @__PURE__ */ React5.createElement("div", {
2644
2500
  className: mx2("flex shrink-0 justify-between items-center px-4 py-1 text-sm border-x border-gridLine")
2645
- }, /* @__PURE__ */ React6.createElement("div", {
2501
+ }, /* @__PURE__ */ React5.createElement("div", {
2646
2502
  className: "flex gap-4 items-center"
2647
- }, /* @__PURE__ */ React6.createElement("div", {
2503
+ }, /* @__PURE__ */ React5.createElement("div", {
2648
2504
  className: "flex w-16 items-center font-mono"
2649
- }, range && rangeToA1Notation(range) || cursor && addressToA1Notation(cursor)), /* @__PURE__ */ React6.createElement("div", {
2505
+ }, range && rangeToA1Notation(range) || cursor && addressToA1Notation(cursor)), /* @__PURE__ */ React5.createElement("div", {
2650
2506
  className: "flex gap-2 items-center"
2651
- }, /* @__PURE__ */ React6.createElement(FunctionIcon, {
2507
+ }, /* @__PURE__ */ React5.createElement(FunctionIcon, {
2652
2508
  className: mx2("text-greenText", isFormula ? "visible" : "invisible")
2653
- }), /* @__PURE__ */ React6.createElement("span", {
2509
+ }), /* @__PURE__ */ React5.createElement("span", {
2654
2510
  className: "font-mono"
2655
2511
  }, value))));
2656
2512
  };
@@ -2668,9 +2524,9 @@ var SheetDebug = () => {
2668
2524
  }, [
2669
2525
  model
2670
2526
  ]);
2671
- return /* @__PURE__ */ React6.createElement("div", {
2527
+ return /* @__PURE__ */ React5.createElement("div", {
2672
2528
  className: mx2("z-20 absolute right-0 top-20 bottom-20 w-[30rem] overflow-auto scrollbar-thin", "border border-gridLine text-xs bg-neutral-50 dark:bg-black text-cyan-500 font-mono p-1 opacity-80")
2673
- }, /* @__PURE__ */ React6.createElement("pre", {
2529
+ }, /* @__PURE__ */ React5.createElement("pre", {
2674
2530
  className: "whitespace-pre-wrap"
2675
2531
  }, JSON.stringify({
2676
2532
  cursor,
@@ -2699,7 +2555,8 @@ export {
2699
2555
  compareIndexPositions,
2700
2556
  useComputeGraph,
2701
2557
  useSheetContext,
2558
+ computeGraphFacet,
2702
2559
  Sheet,
2703
2560
  SheetContainer
2704
2561
  };
2705
- //# sourceMappingURL=chunk-CHQAW4F4.mjs.map
2562
+ //# sourceMappingURL=chunk-NA6NLHDE.mjs.map