@dxos/plugin-sheet 0.6.10 → 0.6.11-staging.32b42e4

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 (65) hide show
  1. package/dist/lib/browser/{SheetContainer-ISY6DUVE.mjs → SheetContainer-U4H5D34A.mjs} +64 -52
  2. package/dist/lib/browser/SheetContainer-U4H5D34A.mjs.map +7 -0
  3. package/dist/lib/browser/chunk-APHOLYUB.mjs +175 -0
  4. package/dist/lib/browser/chunk-APHOLYUB.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-CBRBNG3R.mjs → chunk-D5AGLXJP.mjs} +123 -202
  6. package/dist/lib/browser/chunk-D5AGLXJP.mjs.map +7 -0
  7. package/dist/lib/browser/{chunk-D3PUKBH6.mjs → chunk-FUAGSXA4.mjs} +1 -1
  8. package/dist/lib/browser/{chunk-D3PUKBH6.mjs.map → chunk-FUAGSXA4.mjs.map} +2 -2
  9. package/dist/lib/browser/chunk-NU4PBN33.mjs +8 -0
  10. package/dist/lib/browser/chunk-NU4PBN33.mjs.map +7 -0
  11. package/dist/lib/browser/index.mjs +37 -80
  12. package/dist/lib/browser/index.mjs.map +4 -4
  13. package/dist/lib/browser/meta.json +1 -1
  14. package/dist/lib/browser/testing.mjs +92 -0
  15. package/dist/lib/browser/testing.mjs.map +7 -0
  16. package/dist/lib/browser/types.mjs +1 -1
  17. package/dist/lib/node/{SheetContainer-ESRTE7A5.cjs → SheetContainer-AXQV3ZT5.cjs} +83 -72
  18. package/dist/lib/node/SheetContainer-AXQV3ZT5.cjs.map +7 -0
  19. package/dist/lib/node/{chunk-4EGEA3KL.cjs → chunk-5KKJ4NPP.cjs} +135 -214
  20. package/dist/lib/node/chunk-5KKJ4NPP.cjs.map +7 -0
  21. package/dist/lib/node/chunk-CN3RPESU.cjs +202 -0
  22. package/dist/lib/node/chunk-CN3RPESU.cjs.map +7 -0
  23. package/dist/lib/node/{chunk-3R3J7IZR.cjs → chunk-DSYKOI4E.cjs} +4 -4
  24. package/dist/lib/node/{chunk-3R3J7IZR.cjs.map → chunk-DSYKOI4E.cjs.map} +2 -2
  25. package/dist/lib/node/chunk-PYXHNAAK.cjs +40 -0
  26. package/dist/lib/node/chunk-PYXHNAAK.cjs.map +7 -0
  27. package/dist/lib/node/index.cjs +38 -79
  28. package/dist/lib/node/index.cjs.map +4 -4
  29. package/dist/lib/node/meta.json +1 -1
  30. package/dist/lib/node/testing.cjs +111 -0
  31. package/dist/lib/node/testing.cjs.map +7 -0
  32. package/dist/lib/node/types.cjs +9 -9
  33. package/dist/lib/node/types.cjs.map +1 -1
  34. package/dist/types/src/SheetPlugin.d.ts.map +1 -1
  35. package/dist/types/src/components/CellEditor/extension.d.ts.map +1 -1
  36. package/dist/types/src/components/ComputeGraph/edge-function.d.ts.map +1 -1
  37. package/dist/types/src/components/ComputeGraph/graph-context.d.ts.map +1 -1
  38. package/dist/types/src/components/Sheet/Sheet.d.ts.map +1 -1
  39. package/dist/types/src/components/Sheet/Sheet.stories.d.ts.map +1 -1
  40. package/dist/types/src/components/SheetContainer.d.ts +1 -1
  41. package/dist/types/src/components/SheetContainer.d.ts.map +1 -1
  42. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts.map +1 -1
  43. package/dist/types/src/components/index.d.ts +1 -1
  44. package/dist/types/src/components/index.d.ts.map +1 -1
  45. package/dist/types/src/model/model.d.ts.map +1 -1
  46. package/dist/types/src/testing.d.ts +9 -0
  47. package/dist/types/src/testing.d.ts.map +1 -0
  48. package/dist/types/src/types.d.ts.map +1 -1
  49. package/package.json +38 -28
  50. package/src/SheetPlugin.tsx +36 -16
  51. package/src/components/CellEditor/extension.ts +16 -10
  52. package/src/components/ComputeGraph/edge-function.ts +6 -2
  53. package/src/components/ComputeGraph/graph-context.tsx +10 -1
  54. package/src/components/Sheet/Sheet.stories.tsx +9 -47
  55. package/src/components/Sheet/Sheet.tsx +24 -33
  56. package/src/components/Sheet/formatting.ts +1 -1
  57. package/src/components/SheetContainer.tsx +3 -4
  58. package/src/components/Toolbar/Toolbar.stories.tsx +5 -10
  59. package/src/model/model.ts +2 -3
  60. package/src/testing.ts +50 -0
  61. package/src/types.ts +2 -0
  62. package/dist/lib/browser/SheetContainer-ISY6DUVE.mjs.map +0 -7
  63. package/dist/lib/browser/chunk-CBRBNG3R.mjs.map +0 -7
  64. package/dist/lib/node/SheetContainer-ESRTE7A5.cjs.map +0 -7
  65. package/dist/lib/node/chunk-4EGEA3KL.cjs.map +0 -7
@@ -26,13 +26,14 @@ 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 SheetContainer_ESRTE7A5_exports = {};
30
- __export(SheetContainer_ESRTE7A5_exports, {
29
+ var SheetContainer_AXQV3ZT5_exports = {};
30
+ __export(SheetContainer_AXQV3ZT5_exports, {
31
31
  default: () => SheetContainer_default
32
32
  });
33
- module.exports = __toCommonJS(SheetContainer_ESRTE7A5_exports);
34
- var import_chunk_4EGEA3KL = require("./chunk-4EGEA3KL.cjs");
35
- var import_chunk_3R3J7IZR = require("./chunk-3R3J7IZR.cjs");
33
+ module.exports = __toCommonJS(SheetContainer_AXQV3ZT5_exports);
34
+ var import_chunk_CN3RPESU = require("./chunk-CN3RPESU.cjs");
35
+ var import_chunk_5KKJ4NPP = require("./chunk-5KKJ4NPP.cjs");
36
+ var import_chunk_DSYKOI4E = require("./chunk-DSYKOI4E.cjs");
36
37
  var import_chunk_BJ6ZD7MN = require("./chunk-BJ6ZD7MN.cjs");
37
38
  var import_react = __toESM(require("react"));
38
39
  var import_react_ui_theme = require("@dxos/react-ui-theme");
@@ -181,12 +182,12 @@ var getCellAtPointer = (event) => {
181
182
  if (root) {
182
183
  const value = root.dataset[CELL_DATA_KEY];
183
184
  if (value) {
184
- return (0, import_chunk_4EGEA3KL.addressFromA1Notation)(value);
185
+ return (0, import_chunk_5KKJ4NPP.addressFromA1Notation)(value);
185
186
  }
186
187
  }
187
188
  };
188
189
  var getCellElement = (root, cell) => {
189
- const pos = (0, import_chunk_4EGEA3KL.addressToA1Notation)(cell);
190
+ const pos = (0, import_chunk_5KKJ4NPP.addressToA1Notation)(cell);
190
191
  return root.querySelector(`[data-${CELL_DATA_KEY}="${pos}"]`);
191
192
  };
192
193
  var handleNav = (ev, cursor, range, size) => {
@@ -314,7 +315,7 @@ var useRangeSelect = (cb) => {
314
315
  const onMouseMove = (ev) => {
315
316
  if (from) {
316
317
  let current = getCellAtPointer(ev);
317
- if ((0, import_chunk_4EGEA3KL.posEquals)(current, from)) {
318
+ if ((0, import_chunk_5KKJ4NPP.posEquals)(current, from)) {
318
319
  current = void 0;
319
320
  }
320
321
  setTo(current);
@@ -327,7 +328,7 @@ var useRangeSelect = (cb) => {
327
328
  const onMouseUp = (ev) => {
328
329
  if (from) {
329
330
  let current = getCellAtPointer(ev);
330
- if ((0, import_chunk_4EGEA3KL.posEquals)(current, from)) {
331
+ if ((0, import_chunk_5KKJ4NPP.posEquals)(current, from)) {
331
332
  current = void 0;
332
333
  }
333
334
  setFrom(void 0);
@@ -370,7 +371,7 @@ var FormattingModel = class {
370
371
  ];
371
372
  for (const [idx2, _formatting] of Object.entries(this.model.sheet.formatting)) {
372
373
  const range = this.model.rangeFromIndex(idx2);
373
- if ((0, import_chunk_4EGEA3KL.inRange)(range, cell)) {
374
+ if ((0, import_chunk_5KKJ4NPP.inRange)(range, cell)) {
374
375
  if (_formatting.classNames) {
375
376
  classNames.push(..._formatting.classNames);
376
377
  }
@@ -382,16 +383,19 @@ var FormattingModel = class {
382
383
  const defaultNumber = "justify-end font-mono";
383
384
  const type = formatting?.type ?? this.model.getValueType(cell);
384
385
  switch (type) {
385
- case import_chunk_3R3J7IZR.ValueTypeEnum.Boolean: {
386
+ case import_chunk_DSYKOI4E.ValueTypeEnum.Boolean: {
386
387
  return {
387
388
  value: value.toLocaleString().toUpperCase(),
388
389
  classNames: [
389
390
  ...classNames,
390
- value ? "!text-green-500" : "!text-orange-500"
391
+ value ? "!text-greenText" : "!text-orangeText"
391
392
  ]
392
393
  };
393
394
  }
394
- case import_chunk_3R3J7IZR.ValueTypeEnum.Number: {
395
+ //
396
+ // Numbers.
397
+ //
398
+ case import_chunk_DSYKOI4E.ValueTypeEnum.Number: {
395
399
  return {
396
400
  value: value.toLocaleString(locales),
397
401
  classNames: [
@@ -400,7 +404,7 @@ var FormattingModel = class {
400
404
  ]
401
405
  };
402
406
  }
403
- case import_chunk_3R3J7IZR.ValueTypeEnum.Percent: {
407
+ case import_chunk_DSYKOI4E.ValueTypeEnum.Percent: {
404
408
  return {
405
409
  value: value * 100 + "%",
406
410
  classNames: [
@@ -409,7 +413,7 @@ var FormattingModel = class {
409
413
  ]
410
414
  };
411
415
  }
412
- case import_chunk_3R3J7IZR.ValueTypeEnum.Currency: {
416
+ case import_chunk_DSYKOI4E.ValueTypeEnum.Currency: {
413
417
  return {
414
418
  value: value.toLocaleString(locales, {
415
419
  style: "currency",
@@ -423,21 +427,24 @@ var FormattingModel = class {
423
427
  ]
424
428
  };
425
429
  }
426
- case import_chunk_3R3J7IZR.ValueTypeEnum.DateTime: {
430
+ //
431
+ // Dates.
432
+ //
433
+ case import_chunk_DSYKOI4E.ValueTypeEnum.DateTime: {
427
434
  const date = this.model.toLocalDate(value);
428
435
  return {
429
436
  value: date.toLocaleString(locales),
430
437
  classNames
431
438
  };
432
439
  }
433
- case import_chunk_3R3J7IZR.ValueTypeEnum.Date: {
440
+ case import_chunk_DSYKOI4E.ValueTypeEnum.Date: {
434
441
  const date = this.model.toLocalDate(value);
435
442
  return {
436
443
  value: date.toLocaleDateString(locales),
437
444
  classNames
438
445
  };
439
446
  }
440
- case import_chunk_3R3J7IZR.ValueTypeEnum.Time: {
447
+ case import_chunk_DSYKOI4E.ValueTypeEnum.Time: {
441
448
  const date = this.model.toLocalDate(value);
442
449
  return {
443
450
  value: date.toLocaleTimeString(locales),
@@ -471,7 +478,7 @@ var useSheetContext = () => {
471
478
  };
472
479
  var mapFormulaBindingToId = (functions) => (formula) => {
473
480
  return formula.replace(/([a-zA-Z0-9]+)\((.*)\)/g, (match, binding, args) => {
474
- if (import_chunk_4EGEA3KL.defaultFunctions.find((fn2) => fn2.name === binding) || binding === "EDGE") {
481
+ if (import_chunk_5KKJ4NPP.defaultFunctions.find((fn2) => fn2.name === binding) || binding === "EDGE") {
475
482
  return match;
476
483
  }
477
484
  const fn = functions.find((fn2) => fn2.binding === binding);
@@ -497,7 +504,7 @@ var mapFormulaBindingFromId = (functions) => (formula) => {
497
504
  });
498
505
  };
499
506
  var SheetContextProvider = ({ children, sheet, space, readonly, onInfo, ...options }) => {
500
- const graph = (0, import_chunk_4EGEA3KL.useComputeGraph)(space, options);
507
+ const graph = (0, import_chunk_CN3RPESU.useComputeGraph)(space, options);
501
508
  const [cursor, setCursor] = (0, import_react6.useState)();
502
509
  const [range, setRange] = (0, import_react6.useState)();
503
510
  const [editing, setEditing] = (0, import_react6.useState)(false);
@@ -506,7 +513,7 @@ var SheetContextProvider = ({ children, sheet, space, readonly, onInfo, ...optio
506
513
  let model2;
507
514
  let formatting2;
508
515
  const t = setTimeout(async () => {
509
- model2 = new import_chunk_4EGEA3KL.SheetModel(graph, sheet, space, {
516
+ model2 = new import_chunk_5KKJ4NPP.SheetModel(graph, sheet, space, {
510
517
  readonly,
511
518
  mapFormulaBindingToId,
512
519
  mapFormulaBindingFromId
@@ -681,30 +688,30 @@ var highlightStyles = import_language.HighlightStyle.define([
681
688
  // Function.
682
689
  {
683
690
  tag: import_highlight.tags.name,
684
- class: "text-primary-500"
691
+ class: "text-accentText"
685
692
  },
686
693
  // Range.
687
694
  {
688
695
  tag: import_highlight.tags.tagName,
689
- class: "text-pink-500"
696
+ class: "text-pinkText"
690
697
  },
691
698
  // Values.
692
699
  {
693
700
  tag: import_highlight.tags.number,
694
- class: "text-teal-500"
701
+ class: "text-tealText"
695
702
  },
696
703
  {
697
704
  tag: import_highlight.tags.bool,
698
- class: "text-teal-500"
705
+ class: "text-tealText"
699
706
  },
700
707
  {
701
708
  tag: import_highlight.tags.string,
702
- class: "text-teal-500"
709
+ class: "text-tealText"
703
710
  },
704
711
  // Error.
705
712
  {
706
713
  tag: import_highlight.tags.invalid,
707
- class: "text-neutral-500"
714
+ class: "text-unAccent"
708
715
  }
709
716
  ]);
710
717
  var languageFacet = import_state.Facet.define();
@@ -726,7 +733,7 @@ var sheetExtension = ({ functions = [] }) => {
726
733
  root.className = "flex flex-col gap-2 text-sm";
727
734
  const title = document.createElement("h2");
728
735
  title.innerText = name;
729
- title.className = "text-lg font-mono text-primary-500";
736
+ title.className = "text-lg font-mono text-accentText";
730
737
  root.appendChild(title);
731
738
  if (description) {
732
739
  const info = document.createElement("p");
@@ -737,7 +744,7 @@ var sheetExtension = ({ functions = [] }) => {
737
744
  if (syntax) {
738
745
  const detail = document.createElement("pre");
739
746
  detail.innerText = syntax;
740
- detail.className = "whitespace-pre-wrap text-green-500";
747
+ detail.className = "whitespace-pre-wrap text-greenText";
741
748
  root.appendChild(detail);
742
749
  }
743
750
  return root;
@@ -791,8 +798,8 @@ var sheetExtension = ({ functions = [] }) => {
791
798
  // TODO(burdon): Factor out fragments.
792
799
  // TODO(burdon): Size to make width same as column.
793
800
  "!-left-[1px] !top-[33px] !-m-0 border !border-t-0 [&>ul]:!min-w-[198px]",
794
- "[&>ul>li[aria-selected]]:!bg-primary-700",
795
- "border-neutral-200 dark:border-neutral-700"
801
+ "[&>ul>li[aria-selected]]:!bg-accentSurface",
802
+ "border-separator"
796
803
  )
797
804
  }),
798
805
  import_view2.keymap.of([
@@ -842,6 +849,13 @@ var rangeExtension = (onInit) => {
842
849
  };
843
850
  break;
844
851
  }
852
+ case "CloseParen": {
853
+ activeRange = {
854
+ from,
855
+ to: from
856
+ };
857
+ break;
858
+ }
845
859
  case "RangeToken":
846
860
  case "CellToken":
847
861
  activeRange = {
@@ -875,11 +889,10 @@ var visitTree = (node, callback) => {
875
889
  };
876
890
  var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-sheet/src/components/Sheet/Sheet.tsx";
877
891
  var fragments = {
878
- axis: "bg-neutral-50 text-neutral-800 dark:bg-neutral-800 dark:text-neutral-200 text-xs select-none",
879
- axisSelected: "bg-neutral-100 dark:bg-neutral-900 text-black dark:text-white",
880
- cell: "dark:bg-neutral-850",
881
- cellSelected: "bg-neutral-50 dark:bg-neutral-900 text-black dark:text-white border !border-primary-500",
882
- border: "border-neutral-200 dark:border-neutral-700"
892
+ axis: "bg-axisSurface text-axisText text-xs select-none",
893
+ axisSelected: "bg-attention text-baseText",
894
+ cell: "bg-gridCell",
895
+ cellSelected: "bg-gridCellSelected text-baseText border !border-accentSurface"
883
896
  };
884
897
  var SheetRoot = ({ children, ...props }) => {
885
898
  return /* @__PURE__ */ import_react3.default.createElement(SheetContextProvider, props, children);
@@ -999,7 +1012,7 @@ var SheetMain = /* @__PURE__ */ (0, import_react3.forwardRef)(({ classNames, num
999
1012
  };
1000
1013
  return /* @__PURE__ */ import_react3.default.createElement("div", {
1001
1014
  role: "none",
1002
- className: (0, import_react_ui_theme2.mx)("grid grid-cols-[calc(var(--rail-size)-2px)_1fr] grid-rows-[32px_1fr_32px] bs-full is-full overflow-hidden", fragments.border, classNames)
1015
+ className: (0, import_react_ui_theme2.mx)("grid grid-cols-[calc(var(--rail-size)-2px)_1fr] grid-rows-[32px_1fr_32px] bs-full is-full overflow-hidden", classNames)
1003
1016
  }, /* @__PURE__ */ import_react3.default.createElement(GridCorner, {
1004
1017
  onClick: () => {
1005
1018
  setCursor(void 0);
@@ -1088,7 +1101,7 @@ var GridCorner = (props) => {
1088
1101
  };
1089
1102
  var MovingOverlay = ({ label }) => {
1090
1103
  return /* @__PURE__ */ import_react3.default.createElement("div", {
1091
- className: "flex w-full h-full justify-center items-center text-sm p-1 bg-primary-500/50 cursor-pointer"
1104
+ className: "flex w-full h-full justify-center items-center text-sm p-1 bg-gridOverlay cursor-pointer"
1092
1105
  }, label);
1093
1106
  };
1094
1107
  var mouseConstraints = {
@@ -1134,7 +1147,7 @@ var SheetRows = /* @__PURE__ */ (0, import_react3.forwardRef)(({ rows, sizes, se
1134
1147
  return /* @__PURE__ */ import_react3.default.createElement("div", {
1135
1148
  className: "relative flex grow overflow-hidden"
1136
1149
  }, /* @__PURE__ */ import_react3.default.createElement("div", {
1137
- className: (0, import_react_ui_theme2.mx)("z-20 absolute inset-0 border-y pointer-events-none", fragments.border),
1150
+ className: (0, import_react_ui_theme2.mx)("z-20 absolute inset-0 border-y border-gridLine pointer-events-none"),
1138
1151
  style: {
1139
1152
  width: axisWidth
1140
1153
  }
@@ -1222,14 +1235,14 @@ var GridRowCell = ({ idx, index, label, size, resize, selected, onSelect, onResi
1222
1235
  ref: setNodeRef,
1223
1236
  ...attributes,
1224
1237
  ...listeners,
1225
- className: (0, import_react_ui_theme2.mx)("flex h-full items-center justify-center cursor-pointer", "border-t focus-visible:outline-none", fragments.border, fragments.axis, selected && fragments.axisSelected, isDragging && fragments.axisSelected),
1238
+ className: (0, import_react_ui_theme2.mx)("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),
1226
1239
  onClick: () => onSelect?.(index)
1227
1240
  }, /* @__PURE__ */ import_react3.default.createElement("span", {
1228
1241
  className: "flex w-full justify-center"
1229
1242
  }, label), over?.id === idx && !isDragging && /* @__PURE__ */ import_react3.default.createElement("div", {
1230
- className: "z-20 absolute top-0 w-full min-h-[4px] border-b-4 border-primary-500"
1243
+ className: "z-20 absolute top-0 w-full min-h-[4px] border-b-4 border-accentSurface"
1231
1244
  }), resizing && /* @__PURE__ */ import_react3.default.createElement("div", {
1232
- className: "z-20 absolute bottom-0 w-full min-h-[4px] border-b-4 border-primary-500"
1245
+ className: "z-20 absolute bottom-0 w-full min-h-[4px] border-b-4 border-accentSurface"
1233
1246
  })));
1234
1247
  };
1235
1248
  var SheetColumns = /* @__PURE__ */ (0, import_react3.forwardRef)(({ columns, sizes, selected, onSelect, onResize, onMove }, forwardRef2) => {
@@ -1268,7 +1281,7 @@ var SheetColumns = /* @__PURE__ */ (0, import_react3.forwardRef)(({ columns, siz
1268
1281
  return /* @__PURE__ */ import_react3.default.createElement("div", {
1269
1282
  className: "relative flex grow overflow-hidden"
1270
1283
  }, /* @__PURE__ */ import_react3.default.createElement("div", {
1271
- className: (0, import_react_ui_theme2.mx)("z-20 absolute inset-0 border-x pointer-events-none", fragments.border),
1284
+ className: (0, import_react_ui_theme2.mx)("z-20 absolute inset-0 border-x border-gridLine pointer-events-none"),
1272
1285
  style: {
1273
1286
  height: axisHeight
1274
1287
  }
@@ -1296,14 +1309,14 @@ var SheetColumns = /* @__PURE__ */ (0, import_react3.forwardRef)(({ columns, siz
1296
1309
  key: idx,
1297
1310
  idx,
1298
1311
  index,
1299
- label: (0, import_chunk_4EGEA3KL.columnLetter)(index),
1312
+ label: (0, import_chunk_5KKJ4NPP.columnLetter)(index),
1300
1313
  size: sizes?.[idx] ?? defaultWidth,
1301
1314
  resize: index < columns.length - 1,
1302
1315
  selected: selected === index,
1303
1316
  onResize,
1304
1317
  onSelect
1305
1318
  }))), /* @__PURE__ */ (0, import_react_dom.createPortal)(/* @__PURE__ */ import_react3.default.createElement(import_core.DragOverlay, null, active && /* @__PURE__ */ import_react3.default.createElement(MovingOverlay, {
1306
- label: (0, import_chunk_4EGEA3KL.columnLetter)(active.data.current.index)
1319
+ label: (0, import_chunk_5KKJ4NPP.columnLetter)(active.data.current.index)
1307
1320
  })), document.body))));
1308
1321
  });
1309
1322
  var GridColumnCell = ({ idx, index, label, size, resize, selected, onSelect, onResize }) => {
@@ -1359,14 +1372,14 @@ var GridColumnCell = ({ idx, index, label, size, resize, selected, onSelect, onR
1359
1372
  ref: setNodeRef,
1360
1373
  ...attributes,
1361
1374
  ...listeners,
1362
- className: (0, import_react_ui_theme2.mx)("flex h-full items-center justify-center cursor-pointer", "border-l focus-visible:outline-none", fragments.border, fragments.axis, selected && fragments.axisSelected, isDragging && fragments.axisSelected),
1375
+ className: (0, import_react_ui_theme2.mx)("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),
1363
1376
  onClick: () => onSelect?.(index)
1364
1377
  }, /* @__PURE__ */ import_react3.default.createElement("span", {
1365
1378
  className: "flex w-full justify-center"
1366
1379
  }, label), over?.id === idx && !isDragging && /* @__PURE__ */ import_react3.default.createElement("div", {
1367
- className: "z-20 absolute left-0 h-full min-w-[4px] border-l-4 border-primary-500"
1380
+ className: "z-20 absolute left-0 h-full min-w-[4px] border-l-4 border-accentSurface"
1368
1381
  }), resizing && /* @__PURE__ */ import_react3.default.createElement("div", {
1369
- className: "z-20 absolute right-0 h-full min-h-[4px] border-l-4 border-primary-500"
1382
+ className: "z-20 absolute right-0 h-full min-h-[4px] border-l-4 border-accentSurface"
1370
1383
  })));
1371
1384
  };
1372
1385
  var SheetGrid = /* @__PURE__ */ (0, import_react3.forwardRef)(({ size, rows, columns, rowSizes, columnSizes }, forwardRef2) => {
@@ -1385,7 +1398,7 @@ var SheetGrid = /* @__PURE__ */ (0, import_react3.forwardRef)(({ size, rows, col
1385
1398
  id: model.id
1386
1399
  }, {
1387
1400
  F: __dxlog_file2,
1388
- L: 735,
1401
+ L: 730,
1389
1402
  S: void 0,
1390
1403
  C: (f, a) => f(...a)
1391
1404
  });
@@ -1502,18 +1515,18 @@ var SheetGrid = /* @__PURE__ */ (0, import_react3.forwardRef)(({ size, rows, col
1502
1515
  rowSizes,
1503
1516
  columnSizes
1504
1517
  });
1505
- const qualifiedSubjectId = (0, import_echo.fullyQualifiedId)(model.sheet);
1506
- const attendableAttrs = (0, import_react_ui_attention.createAttendableAttributes)(qualifiedSubjectId);
1507
- const attended = true;
1518
+ const id = (0, import_echo.fullyQualifiedId)(model.sheet);
1519
+ const attendableAttrs = (0, import_react_ui_attention.createAttendableAttributes)(id);
1520
+ const hasAttention = (0, import_react_ui_attention.useHasAttention)(id);
1508
1521
  return /* @__PURE__ */ import_react3.default.createElement("div", {
1509
1522
  ref: containerRef,
1510
1523
  role: "grid",
1511
1524
  className: "relative flex grow overflow-hidden"
1512
1525
  }, /* @__PURE__ */ import_react3.default.createElement("div", {
1513
- className: (0, import_react_ui_theme2.mx)("z-20 absolute inset-0 border pointer-events-none", fragments.border)
1526
+ className: (0, import_react_ui_theme2.mx)("z-20 absolute inset-0 border border-gridLine pointer-events-none")
1514
1527
  }), /* @__PURE__ */ import_react3.default.createElement("div", {
1515
1528
  ref: scrollerRef,
1516
- className: (0, import_react_ui_theme2.mx)("grow", attended && "overflow-auto scrollbar-thin")
1529
+ className: (0, import_react_ui_theme2.mx)("grow", hasAttention && "overflow-auto scrollbar-thin")
1517
1530
  }, /* @__PURE__ */ import_react3.default.createElement("div", {
1518
1531
  className: "relative select-none",
1519
1532
  style: {
@@ -1537,9 +1550,9 @@ var SheetGrid = /* @__PURE__ */ (0, import_react3.forwardRef)(({ size, rows, col
1537
1550
  row,
1538
1551
  column
1539
1552
  };
1540
- const id = (0, import_chunk_4EGEA3KL.addressToA1Notation)(cell);
1553
+ const id2 = (0, import_chunk_5KKJ4NPP.addressToA1Notation)(cell);
1541
1554
  const idx = model.addressToIndex(cell);
1542
- const active = (0, import_chunk_4EGEA3KL.posEquals)(cursor, cell);
1555
+ const active = (0, import_chunk_5KKJ4NPP.posEquals)(cursor, cell);
1543
1556
  if (active && editing) {
1544
1557
  const value = initialText.current ?? model.getCellText(cell) ?? "";
1545
1558
  const handleClose = (value2) => {
@@ -1580,8 +1593,8 @@ var SheetGrid = /* @__PURE__ */ (0, import_react3.forwardRef)(({ size, rows, col
1580
1593
  });
1581
1594
  }
1582
1595
  return /* @__PURE__ */ import_react3.default.createElement(SheetCell, {
1583
- key: id,
1584
- id,
1596
+ key: id2,
1597
+ id: id2,
1585
1598
  cell,
1586
1599
  active,
1587
1600
  style,
@@ -1615,7 +1628,7 @@ var SelectionOverlay = ({ root }) => {
1615
1628
  return /* @__PURE__ */ import_react3.default.createElement("div", {
1616
1629
  role: "none",
1617
1630
  style: bounds,
1618
- className: "z-10 absolute pointer-events-none bg-primary-500/20 border border-primary-500/50"
1631
+ className: "z-10 absolute pointer-events-none bg-gridSelectionOverlay border border-gridOverlay"
1619
1632
  });
1620
1633
  };
1621
1634
  var SheetCell = ({ id, cell, style, active, onSelect }) => {
@@ -1625,7 +1638,7 @@ var SheetCell = ({ id, cell, style, active, onSelect }) => {
1625
1638
  [`data-${CELL_DATA_KEY}`]: id,
1626
1639
  role: "cell",
1627
1640
  style,
1628
- className: (0, import_react_ui_theme2.mx)("flex w-full h-full truncate items-center border cursor-pointer", "px-2 py-1", fragments.cell, fragments.border, active && [
1641
+ className: (0, import_react_ui_theme2.mx)("flex w-full h-full px-2 py-1 truncate items-center border border-gridLine cursor-pointer", fragments.cell, active && [
1629
1642
  "z-20",
1630
1643
  fragments.cellSelected
1631
1644
  ], classNames),
@@ -1646,7 +1659,7 @@ var GridCellEditor = ({ style, value, onNav, onClose }) => {
1646
1659
  const notifier = (0, import_react3.useRef)();
1647
1660
  (0, import_react3.useEffect)(() => {
1648
1661
  if (range) {
1649
- notifier.current?.((0, import_chunk_4EGEA3KL.rangeToA1Notation)(range));
1662
+ notifier.current?.((0, import_chunk_5KKJ4NPP.rangeToA1Notation)(range));
1650
1663
  }
1651
1664
  }, [
1652
1665
  range
@@ -1688,15 +1701,15 @@ var SheetStatusBar = () => {
1688
1701
  }
1689
1702
  }
1690
1703
  return /* @__PURE__ */ import_react3.default.createElement("div", {
1691
- className: (0, import_react_ui_theme2.mx)("flex shrink-0 justify-between items-center px-4 py-1 text-sm border-x", fragments.border)
1704
+ className: (0, import_react_ui_theme2.mx)("flex shrink-0 justify-between items-center px-4 py-1 text-sm border-x border-gridLine")
1692
1705
  }, /* @__PURE__ */ import_react3.default.createElement("div", {
1693
1706
  className: "flex gap-4 items-center"
1694
1707
  }, /* @__PURE__ */ import_react3.default.createElement("div", {
1695
1708
  className: "flex w-16 items-center font-mono"
1696
- }, range && (0, import_chunk_4EGEA3KL.rangeToA1Notation)(range) || cursor && (0, import_chunk_4EGEA3KL.addressToA1Notation)(cursor)), /* @__PURE__ */ import_react3.default.createElement("div", {
1709
+ }, range && (0, import_chunk_5KKJ4NPP.rangeToA1Notation)(range) || cursor && (0, import_chunk_5KKJ4NPP.addressToA1Notation)(cursor)), /* @__PURE__ */ import_react3.default.createElement("div", {
1697
1710
  className: "flex gap-2 items-center"
1698
1711
  }, /* @__PURE__ */ import_react3.default.createElement(import_react2.Function, {
1699
- className: (0, import_react_ui_theme2.mx)("text-green-500", isFormula ? "visible" : "invisible")
1712
+ className: (0, import_react_ui_theme2.mx)("text-greenText", isFormula ? "visible" : "invisible")
1700
1713
  }), /* @__PURE__ */ import_react3.default.createElement("span", {
1701
1714
  className: "font-mono"
1702
1715
  }, value))));
@@ -1716,7 +1729,7 @@ var SheetDebug = () => {
1716
1729
  model
1717
1730
  ]);
1718
1731
  return /* @__PURE__ */ import_react3.default.createElement("div", {
1719
- className: (0, import_react_ui_theme2.mx)("z-20 absolute right-0 top-20 bottom-20 w-[30rem] overflow-auto scrollbar-thin", "border text-xs bg-neutral-50 dark:bg-black text-cyan-500 font-mono p-1 opacity-80", fragments.border)
1732
+ className: (0, import_react_ui_theme2.mx)("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")
1720
1733
  }, /* @__PURE__ */ import_react3.default.createElement("pre", {
1721
1734
  className: "whitespace-pre-wrap"
1722
1735
  }, JSON.stringify({
@@ -1738,17 +1751,15 @@ var Sheet = {
1738
1751
  StatusBar: SheetStatusBar,
1739
1752
  Debug: SheetDebug
1740
1753
  };
1741
- var SheetContainer = ({ sheet, space, role, coordinate = {
1742
- part: "main",
1743
- entryId: ""
1744
- } }) => {
1754
+ var SheetContainer = ({ sheet, space, role, remoteFunctionUrl }) => {
1745
1755
  return /* @__PURE__ */ import_react.default.createElement("div", {
1746
1756
  role: "none",
1747
- className: (0, import_react_ui_theme.mx)("flex", role === "article" && "row-span-2", role === "section" && "aspect-square border-y border-is border-separator", coordinate.part !== "solo" && "border-is border-separator")
1757
+ className: (0, import_react_ui_theme.mx)("flex", role === "article" && "row-span-2", role === "section" && "aspect-square border-y border-is border-separator")
1748
1758
  }, /* @__PURE__ */ import_react.default.createElement(Sheet.Root, {
1749
1759
  sheet,
1750
- space
1760
+ space,
1761
+ remoteFunctionUrl
1751
1762
  }, /* @__PURE__ */ import_react.default.createElement(Sheet.Main, null)));
1752
1763
  };
1753
1764
  var SheetContainer_default = SheetContainer;
1754
- //# sourceMappingURL=SheetContainer-ESRTE7A5.cjs.map
1765
+ //# sourceMappingURL=SheetContainer-AXQV3ZT5.cjs.map