@dxos/plugin-sheet 0.8.1 → 0.8.2-main.10c050d

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 (188) hide show
  1. package/dist/lib/browser/SheetContainer-GXPG3ZDN.mjs +351 -0
  2. package/dist/lib/browser/SheetContainer-GXPG3ZDN.mjs.map +7 -0
  3. package/dist/lib/browser/anchor-sort-CUTFYIT4.mjs +24 -0
  4. package/dist/lib/browser/anchor-sort-CUTFYIT4.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-ZOKEQL2K.mjs → chunk-5FLX3UGU.mjs} +55 -63
  6. package/dist/lib/browser/chunk-5FLX3UGU.mjs.map +7 -0
  7. package/dist/lib/browser/chunk-AYMJXZFS.mjs +847 -0
  8. package/dist/lib/browser/chunk-AYMJXZFS.mjs.map +7 -0
  9. package/dist/lib/browser/{chunk-AT5ZK6JD.mjs → chunk-FJRLDX7Z.mjs} +1 -1
  10. package/dist/lib/browser/chunk-FJRLDX7Z.mjs.map +7 -0
  11. package/dist/lib/browser/{chunk-EMSCNWEK.mjs → chunk-IR42IS3F.mjs} +2 -2
  12. package/dist/lib/{node-esm/chunk-76T5X4VP.mjs.map → browser/chunk-IR42IS3F.mjs.map} +1 -1
  13. package/dist/lib/browser/{compute-graph-registry-WEJLJJ6T.mjs → compute-graph-registry-IXGGJJBU.mjs} +3 -3
  14. package/dist/lib/browser/compute-graph-registry-IXGGJJBU.mjs.map +7 -0
  15. package/dist/lib/browser/index.mjs +17 -16
  16. package/dist/lib/browser/index.mjs.map +3 -3
  17. package/dist/lib/browser/{intent-resolver-6OUEM3IG.mjs → intent-resolver-UI4DHURQ.mjs} +2 -2
  18. package/dist/lib/browser/{markdown-DR4RDEEY.mjs → markdown-T4TUP4BF.mjs} +4 -4
  19. package/dist/lib/browser/markdown-T4TUP4BF.mjs.map +7 -0
  20. package/dist/lib/browser/meta.json +1 -1
  21. package/dist/lib/browser/{react-surface-ECKBP3UZ.mjs → react-surface-KI6T5M2X.mjs} +5 -5
  22. package/dist/lib/browser/types/index.mjs +1 -1
  23. package/dist/lib/node/SheetContainer-UUDOHLZR.cjs +351 -0
  24. package/dist/lib/node/SheetContainer-UUDOHLZR.cjs.map +7 -0
  25. package/dist/lib/node/{thread-WP43BC4N.cjs → anchor-sort-LTLYUTUP.cjs} +17 -10
  26. package/dist/lib/node/anchor-sort-LTLYUTUP.cjs.map +7 -0
  27. package/dist/lib/node/{chunk-D4MOMCEU.cjs → chunk-76NESQLB.cjs} +70 -78
  28. package/dist/lib/node/chunk-76NESQLB.cjs.map +7 -0
  29. package/dist/lib/node/chunk-BXBNSNDK.cjs +855 -0
  30. package/dist/lib/node/chunk-BXBNSNDK.cjs.map +7 -0
  31. package/dist/lib/node/{chunk-LEV7OSTK.cjs → chunk-FIM6EZ6M.cjs} +4 -4
  32. package/dist/lib/node/chunk-FIM6EZ6M.cjs.map +7 -0
  33. package/dist/lib/node/{chunk-O2FOEUYB.cjs → chunk-LJWWS53Z.cjs} +5 -5
  34. package/dist/lib/node/{chunk-O2FOEUYB.cjs.map → chunk-LJWWS53Z.cjs.map} +1 -1
  35. package/dist/lib/node/{compute-graph-registry-VVSRJUGS.cjs → compute-graph-registry-ARLDHPFW.cjs} +7 -7
  36. package/dist/lib/node/compute-graph-registry-ARLDHPFW.cjs.map +7 -0
  37. package/dist/lib/node/index.cjs +21 -20
  38. package/dist/lib/node/index.cjs.map +3 -3
  39. package/dist/lib/node/{intent-resolver-ICHNDL6F.cjs → intent-resolver-EVLGL7VZ.cjs} +9 -9
  40. package/dist/lib/node/{markdown-E7OUIMZO.cjs → markdown-DBPOAYI7.cjs} +8 -8
  41. package/dist/lib/node/markdown-DBPOAYI7.cjs.map +7 -0
  42. package/dist/lib/node/meta.json +1 -1
  43. package/dist/lib/node/{react-surface-6PBWE75L.cjs → react-surface-QHAPOAR2.cjs} +14 -14
  44. package/dist/lib/node/types/index.cjs +29 -29
  45. package/dist/lib/node/types/index.cjs.map +1 -1
  46. package/dist/lib/node-esm/SheetContainer-44KHKMPI.mjs +352 -0
  47. package/dist/lib/node-esm/SheetContainer-44KHKMPI.mjs.map +7 -0
  48. package/dist/lib/node-esm/anchor-sort-3E2VGLO6.mjs +25 -0
  49. package/dist/lib/node-esm/anchor-sort-3E2VGLO6.mjs.map +7 -0
  50. package/dist/lib/node-esm/{chunk-6NB67Y6X.mjs → chunk-DIF3IOAB.mjs} +55 -63
  51. package/dist/lib/node-esm/chunk-DIF3IOAB.mjs.map +7 -0
  52. package/dist/lib/node-esm/chunk-GCCM7R45.mjs +848 -0
  53. package/dist/lib/node-esm/chunk-GCCM7R45.mjs.map +7 -0
  54. package/dist/lib/node-esm/{chunk-76T5X4VP.mjs → chunk-IQ76YE6M.mjs} +2 -2
  55. package/dist/lib/{browser/chunk-EMSCNWEK.mjs.map → node-esm/chunk-IQ76YE6M.mjs.map} +1 -1
  56. package/dist/lib/node-esm/{chunk-HXBUY5ET.mjs → chunk-NMCVJWDT.mjs} +1 -1
  57. package/dist/lib/node-esm/chunk-NMCVJWDT.mjs.map +7 -0
  58. package/dist/lib/node-esm/{compute-graph-registry-PBQ52KH6.mjs → compute-graph-registry-7PDWXMHF.mjs} +3 -3
  59. package/dist/lib/node-esm/compute-graph-registry-7PDWXMHF.mjs.map +7 -0
  60. package/dist/lib/node-esm/index.mjs +17 -16
  61. package/dist/lib/node-esm/index.mjs.map +3 -3
  62. package/dist/lib/node-esm/{intent-resolver-2JNQCFCI.mjs → intent-resolver-TPOH5JM5.mjs} +2 -2
  63. package/dist/lib/node-esm/{markdown-BPKS2TNG.mjs → markdown-WWUJ3E5F.mjs} +4 -4
  64. package/dist/lib/node-esm/markdown-WWUJ3E5F.mjs.map +7 -0
  65. package/dist/lib/node-esm/meta.json +1 -1
  66. package/dist/lib/node-esm/{react-surface-UM2Y3ZWZ.mjs → react-surface-XT2J3S67.mjs} +5 -5
  67. package/dist/lib/node-esm/types/index.mjs +1 -1
  68. package/dist/types/src/SheetPlugin.d.ts.map +1 -1
  69. package/dist/types/src/capabilities/anchor-sort.d.ts +6 -0
  70. package/dist/types/src/capabilities/anchor-sort.d.ts.map +1 -0
  71. package/dist/types/src/capabilities/compute-graph-registry.d.ts +2 -2
  72. package/dist/types/src/capabilities/compute-graph-registry.d.ts.map +1 -1
  73. package/dist/types/src/capabilities/index.d.ts +6 -6
  74. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  75. package/dist/types/src/capabilities/markdown.d.ts +2 -2
  76. package/dist/types/src/capabilities/markdown.d.ts.map +1 -1
  77. package/dist/types/src/components/ComputeGraph/ComputeGraphContextProvider.d.ts.map +1 -1
  78. package/dist/types/src/components/GridSheet/GridSheet.d.ts.map +1 -1
  79. package/dist/types/src/components/GridSheet/GridSheet.stories.d.ts.map +1 -1
  80. package/dist/types/src/components/GridSheet/util.d.ts.map +1 -1
  81. package/dist/types/src/components/RangeList/RangeList.d.ts.map +1 -1
  82. package/dist/types/src/components/SheetContainer/SheetContainer.d.ts +3 -2
  83. package/dist/types/src/components/SheetContainer/SheetContainer.d.ts.map +1 -1
  84. package/dist/types/src/components/SheetContainer/SheetContainer.stories.d.ts.map +1 -1
  85. package/dist/types/src/components/SheetContext/SheetContext.d.ts.map +1 -1
  86. package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts +2 -2
  87. package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts.map +1 -1
  88. package/dist/types/src/components/SheetToolbar/align.d.ts +4 -1
  89. package/dist/types/src/components/SheetToolbar/align.d.ts.map +1 -1
  90. package/dist/types/src/components/SheetToolbar/style.d.ts +3 -1
  91. package/dist/types/src/components/SheetToolbar/style.d.ts.map +1 -1
  92. package/dist/types/src/components/SheetToolbar/useToolbarState.d.ts +2 -3
  93. package/dist/types/src/components/SheetToolbar/useToolbarState.d.ts.map +1 -1
  94. package/dist/types/src/components/index.d.ts +1 -6
  95. package/dist/types/src/components/index.d.ts.map +1 -1
  96. package/dist/types/src/extensions/compute.d.ts.map +1 -1
  97. package/dist/types/src/extensions/editor/extension.d.ts.map +1 -1
  98. package/dist/types/src/integrations/thread-ranges.d.ts.map +1 -1
  99. package/dist/types/src/model/sheet-model.d.ts.map +1 -1
  100. package/dist/types/src/model/testing.d.ts.map +1 -1
  101. package/dist/types/src/model/useSheetModel.d.ts.map +1 -1
  102. package/dist/types/src/serializer.d.ts.map +1 -1
  103. package/dist/types/src/testing/data.d.ts.map +1 -1
  104. package/dist/types/src/testing/playwright/sheet-manager.d.ts.map +1 -1
  105. package/dist/types/src/testing/testing.d.ts.map +1 -1
  106. package/dist/types/src/translations.d.ts +2 -54
  107. package/dist/types/src/translations.d.ts.map +1 -1
  108. package/dist/types/src/types/schema.d.ts +38 -150
  109. package/dist/types/src/types/schema.d.ts.map +1 -1
  110. package/dist/types/src/types/sheet-range-types.d.ts.map +1 -1
  111. package/dist/types/src/types/types.d.ts +36 -36
  112. package/dist/types/src/types/types.d.ts.map +1 -1
  113. package/dist/types/src/types/util.d.ts.map +1 -1
  114. package/dist/types/tsconfig.tsbuildinfo +1 -1
  115. package/package.json +55 -48
  116. package/src/SheetPlugin.tsx +7 -5
  117. package/src/capabilities/anchor-sort.ts +22 -0
  118. package/src/capabilities/compute-graph-registry.ts +3 -3
  119. package/src/capabilities/index.ts +1 -1
  120. package/src/capabilities/markdown.ts +3 -3
  121. package/src/components/ComputeGraph/compute-graph.stories.tsx +4 -4
  122. package/src/components/FunctionEditor/FunctionEditor.tsx +1 -1
  123. package/src/components/GridSheet/GridSheet.stories.tsx +5 -2
  124. package/src/components/GridSheet/GridSheet.tsx +18 -12
  125. package/src/components/GridSheet/SheetCellEditor.stories.tsx +2 -2
  126. package/src/components/GridSheet/util.ts +17 -11
  127. package/src/components/RangeList/RangeList.tsx +2 -2
  128. package/src/components/SheetContainer/SheetContainer.stories.tsx +3 -6
  129. package/src/components/SheetContainer/SheetContainer.tsx +5 -8
  130. package/src/components/SheetToolbar/SheetToolbar.stories.tsx +2 -2
  131. package/src/components/SheetToolbar/SheetToolbar.tsx +56 -20
  132. package/src/components/SheetToolbar/align.ts +44 -14
  133. package/src/components/SheetToolbar/style.ts +48 -12
  134. package/src/components/SheetToolbar/useToolbarState.ts +3 -4
  135. package/src/extensions/compute.ts +1 -1
  136. package/src/integrations/thread-ranges.ts +14 -17
  137. package/src/model/sheet-model.test.ts +1 -1
  138. package/src/model/sheet-model.ts +17 -17
  139. package/src/sanity.test.ts +3 -3
  140. package/src/serializer.ts +3 -4
  141. package/src/testing/playwright/sheet-manager.ts +9 -9
  142. package/src/types/schema.ts +20 -22
  143. package/src/types/types.ts +25 -25
  144. package/src/types/util.ts +2 -3
  145. package/dist/lib/browser/SheetContainer-B3A5443Z.mjs +0 -370
  146. package/dist/lib/browser/SheetContainer-B3A5443Z.mjs.map +0 -7
  147. package/dist/lib/browser/chunk-AT5ZK6JD.mjs.map +0 -7
  148. package/dist/lib/browser/chunk-CHMPICA6.mjs +0 -815
  149. package/dist/lib/browser/chunk-CHMPICA6.mjs.map +0 -7
  150. package/dist/lib/browser/chunk-ZOKEQL2K.mjs.map +0 -7
  151. package/dist/lib/browser/compute-graph-registry-WEJLJJ6T.mjs.map +0 -7
  152. package/dist/lib/browser/markdown-DR4RDEEY.mjs.map +0 -7
  153. package/dist/lib/browser/thread-76MK2FMV.mjs +0 -17
  154. package/dist/lib/browser/thread-76MK2FMV.mjs.map +0 -7
  155. package/dist/lib/node/SheetContainer-LGRD3TTQ.cjs +0 -364
  156. package/dist/lib/node/SheetContainer-LGRD3TTQ.cjs.map +0 -7
  157. package/dist/lib/node/chunk-AEH3L5QZ.cjs +0 -822
  158. package/dist/lib/node/chunk-AEH3L5QZ.cjs.map +0 -7
  159. package/dist/lib/node/chunk-D4MOMCEU.cjs.map +0 -7
  160. package/dist/lib/node/chunk-LEV7OSTK.cjs.map +0 -7
  161. package/dist/lib/node/compute-graph-registry-VVSRJUGS.cjs.map +0 -7
  162. package/dist/lib/node/markdown-E7OUIMZO.cjs.map +0 -7
  163. package/dist/lib/node/thread-WP43BC4N.cjs.map +0 -7
  164. package/dist/lib/node-esm/SheetContainer-4FNTLG5R.mjs +0 -371
  165. package/dist/lib/node-esm/SheetContainer-4FNTLG5R.mjs.map +0 -7
  166. package/dist/lib/node-esm/chunk-6NB67Y6X.mjs.map +0 -7
  167. package/dist/lib/node-esm/chunk-HXBUY5ET.mjs.map +0 -7
  168. package/dist/lib/node-esm/chunk-WQHYR4WD.mjs +0 -816
  169. package/dist/lib/node-esm/chunk-WQHYR4WD.mjs.map +0 -7
  170. package/dist/lib/node-esm/compute-graph-registry-PBQ52KH6.mjs.map +0 -7
  171. package/dist/lib/node-esm/markdown-BPKS2TNG.mjs.map +0 -7
  172. package/dist/lib/node-esm/thread-4NCPE5FK.mjs +0 -18
  173. package/dist/lib/node-esm/thread-4NCPE5FK.mjs.map +0 -7
  174. package/dist/types/src/capabilities/thread.d.ts +0 -6
  175. package/dist/types/src/capabilities/thread.d.ts.map +0 -1
  176. package/dist/types/src/components/SheetToolbar/comment.d.ts +0 -23
  177. package/dist/types/src/components/SheetToolbar/comment.d.ts.map +0 -1
  178. package/dist/types/src/components/SheetToolbar/useToolbarAction.d.ts +0 -8
  179. package/dist/types/src/components/SheetToolbar/useToolbarAction.d.ts.map +0 -1
  180. package/src/capabilities/thread.ts +0 -14
  181. package/src/components/SheetToolbar/comment.ts +0 -56
  182. package/src/components/SheetToolbar/useToolbarAction.ts +0 -87
  183. /package/dist/lib/browser/{intent-resolver-6OUEM3IG.mjs.map → intent-resolver-UI4DHURQ.mjs.map} +0 -0
  184. /package/dist/lib/browser/{react-surface-ECKBP3UZ.mjs.map → react-surface-KI6T5M2X.mjs.map} +0 -0
  185. /package/dist/lib/node/{intent-resolver-ICHNDL6F.cjs.map → intent-resolver-EVLGL7VZ.cjs.map} +0 -0
  186. /package/dist/lib/node/{react-surface-6PBWE75L.cjs.map → react-surface-QHAPOAR2.cjs.map} +0 -0
  187. /package/dist/lib/node-esm/{intent-resolver-2JNQCFCI.mjs.map → intent-resolver-TPOH5JM5.mjs.map} +0 -0
  188. /package/dist/lib/node-esm/{react-surface-UM2Y3ZWZ.mjs.map → react-surface-XT2J3S67.mjs.map} +0 -0
@@ -1,822 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var chunk_AEH3L5QZ_exports = {};
30
- __export(chunk_AEH3L5QZ_exports, {
31
- ComputeGraphContextProvider: () => ComputeGraphContextProvider,
32
- GridSheet: () => GridSheet,
33
- RangeList: () => RangeList,
34
- SheetContainer: () => SheetContainer,
35
- SheetProvider: () => SheetProvider,
36
- completeCellRangeToThreadCursor: () => completeCellRangeToThreadCursor,
37
- useComputeGraph: () => useComputeGraph,
38
- useSheetContext: () => useSheetContext
39
- });
40
- module.exports = __toCommonJS(chunk_AEH3L5QZ_exports);
41
- var import_chunk_LEV7OSTK = require("./chunk-LEV7OSTK.cjs");
42
- var import_chunk_D4MOMCEU = require("./chunk-D4MOMCEU.cjs");
43
- var import_chunk_JSIDCZHB = require("./chunk-JSIDCZHB.cjs");
44
- var import_react = __toESM(require("react"));
45
- var import_debug = require("@dxos/debug");
46
- var import_react_hooks = require("@dxos/react-hooks");
47
- var import_react2 = __toESM(require("react"));
48
- var import_compute = require("@dxos/compute");
49
- var import_echo_schema = require("@dxos/echo-schema");
50
- var import_react_ui = require("@dxos/react-ui");
51
- var import_react_ui_list = require("@dxos/react-ui-list");
52
- var import_react_ui_theme = require("@dxos/react-ui-theme");
53
- var import_react3 = require("react");
54
- var import_react4 = __toESM(require("react"));
55
- var import_app_framework = require("@dxos/app-framework");
56
- var import_compute2 = require("@dxos/compute");
57
- var import_react_ui2 = require("@dxos/react-ui");
58
- var import_react_ui_attention = require("@dxos/react-ui-attention");
59
- var import_react_ui_grid = require("@dxos/react-ui-grid");
60
- var import_react5 = require("react");
61
- var import_compute3 = require("@dxos/compute");
62
- var import_echo = require("@dxos/react-client/echo");
63
- var import_react_ui_form = require("@dxos/react-ui-form");
64
- var import_react_ui_grid2 = require("@dxos/react-ui-grid");
65
- var import_react_ui_theme2 = require("@dxos/react-ui-theme");
66
- var import_effect = require("effect");
67
- var import_react6 = require("react");
68
- var import_app_framework2 = require("@dxos/app-framework");
69
- var import_async = require("@dxos/async");
70
- var import_compute4 = require("@dxos/compute");
71
- var import_echo_schema2 = require("@dxos/echo-schema");
72
- var import_types = require("@dxos/plugin-deck/types");
73
- var import_types2 = require("@dxos/plugin-thread/types");
74
- var import_echo2 = require("@dxos/react-client/echo");
75
- var import_react7 = __toESM(require("react"));
76
- var import_invariant = require("@dxos/invariant");
77
- var import_echo3 = require("@dxos/react-client/echo");
78
- var import_react_ui_grid3 = require("@dxos/react-ui-grid");
79
- var ComputeGraphContext = /* @__PURE__ */ (0, import_react.createContext)(void 0);
80
- var ComputeGraphContextProvider = ({ registry, children }) => {
81
- return /* @__PURE__ */ import_react.default.createElement(ComputeGraphContext.Provider, {
82
- value: {
83
- registry
84
- }
85
- }, children);
86
- };
87
- var useComputeGraph = (space) => {
88
- const { registry } = (0, import_react.useContext)(ComputeGraphContext) ?? (0, import_debug.raise)(new Error("Missing ComputeGraphContext"));
89
- const [graph] = (0, import_react_hooks.useAsyncState)(async () => {
90
- if (space) {
91
- const graph2 = registry.getOrCreateGraph(space);
92
- await graph2.open();
93
- return graph2;
94
- }
95
- }, [
96
- space,
97
- registry
98
- ]);
99
- return graph;
100
- };
101
- var RangeList = ({ sheet }) => {
102
- const { t } = (0, import_react_ui.useTranslation)(import_chunk_JSIDCZHB.SHEET_PLUGIN);
103
- const handleSelectRange = (range) => {
104
- };
105
- const handleDeleteRange = (0, import_react2.useCallback)((range) => {
106
- const index = sheet.ranges.findIndex((sheetRange) => sheetRange === range);
107
- sheet.ranges.splice(index, 1);
108
- }, [
109
- sheet
110
- ]);
111
- return /* @__PURE__ */ import_react2.default.createElement(import_react2.default.Fragment, null, /* @__PURE__ */ import_react2.default.createElement("h2", {
112
- className: "p-2 text-sm font-semibold"
113
- }, t("range list heading")), /* @__PURE__ */ import_react2.default.createElement(import_react_ui_list.List.Root, {
114
- items: sheet.ranges,
115
- isItem: import_echo_schema.S.is(import_chunk_D4MOMCEU.Range)
116
- }, ({ items: ranges }) => ranges.map((range, i) => /* @__PURE__ */ import_react2.default.createElement(import_react_ui_list.List.Item, {
117
- key: i,
118
- item: range,
119
- classNames: [
120
- "p-2",
121
- import_react_ui_theme.ghostHover
122
- ]
123
- }, /* @__PURE__ */ import_react2.default.createElement(import_react_ui_list.List.ItemDragHandle, null), /* @__PURE__ */ import_react2.default.createElement(import_react_ui_list.List.ItemTitle, {
124
- onClick: () => handleSelectRange(range)
125
- }, t("range title", {
126
- position: (0, import_compute.rangeToA1Notation)((0, import_chunk_D4MOMCEU.rangeFromIndex)(sheet, range.range)),
127
- key: t(`range key ${range.key} label`),
128
- value: t(`range value ${range.value} label`)
129
- })), /* @__PURE__ */ import_react2.default.createElement(import_react_ui_list.List.ItemDeleteButton, {
130
- onClick: () => handleDeleteRange(range)
131
- })))));
132
- };
133
- var completeCellRangeToThreadCursor = (range) => {
134
- return `${range.from.col},${range.from.row},${range.to.col},${range.to.row}`;
135
- };
136
- var parseThreadAnchorAsCellRange = (cursor) => {
137
- const coords = cursor.split(",");
138
- if (coords.length !== 4) {
139
- return null;
140
- } else {
141
- const [fromCol, fromRow, toCol, toRow] = coords;
142
- return {
143
- from: {
144
- col: parseInt(fromCol),
145
- row: parseInt(fromRow)
146
- },
147
- to: {
148
- col: parseInt(toCol),
149
- row: parseInt(toRow)
150
- }
151
- };
152
- }
153
- };
154
- var useUpdateFocusedCellOnThreadSelection = (grid) => {
155
- const { model, setActiveRefs } = useSheetContext();
156
- const scrollIntoViewResolver = (0, import_react6.useMemo)(() => (0, import_app_framework2.createResolver)({
157
- intent: import_app_framework2.LayoutAction.ScrollIntoView,
158
- position: "hoist",
159
- filter: (data) => {
160
- if (!import_echo_schema2.S.is(import_app_framework2.LayoutAction.ScrollIntoView.fields.input)(data)) {
161
- return false;
162
- }
163
- return data.subject === (0, import_echo2.fullyQualifiedId)(model.sheet) && !!data.options?.cursor;
164
- },
165
- resolve: ({ options: { cursor, ref } }) => {
166
- setActiveRefs(ref);
167
- const range = parseThreadAnchorAsCellRange(cursor);
168
- range && grid?.setFocus({
169
- ...range.to,
170
- plane: "grid"
171
- }, true);
172
- }
173
- }), [
174
- model.sheet,
175
- setActiveRefs
176
- ]);
177
- (0, import_app_framework2.useIntentResolver)(import_chunk_JSIDCZHB.SHEET_PLUGIN, scrollIntoViewResolver);
178
- };
179
- var useSelectThreadOnCellFocus = () => {
180
- const { model, cursor } = useSheetContext();
181
- const { dispatchPromise: dispatch } = (0, import_app_framework2.useIntentDispatcher)();
182
- const threads = (0, import_react6.useMemo)(() => model.sheet.threads?.filter((thread) => !!thread) ?? [], [
183
- // TODO(thure): Surely we can find a better dependency for this…
184
- JSON.stringify(model.sheet.threads)
185
- ]);
186
- const selectClosestThread = (0, import_react6.useCallback)((cellAddress) => {
187
- if (!cellAddress || !threads) {
188
- return;
189
- }
190
- const closestThread = threads?.find((ref) => {
191
- if (ref.target?.anchor) {
192
- const range = parseThreadAnchorAsCellRange(ref.target.anchor);
193
- return range ? (0, import_compute4.inRange)(range, cellAddress) : false;
194
- } else {
195
- return false;
196
- }
197
- });
198
- if (closestThread) {
199
- const primary = (0, import_echo2.fullyQualifiedId)(model.sheet);
200
- const intent = (0, import_effect.pipe)((0, import_app_framework2.createIntent)(import_types2.ThreadAction.Select, {
201
- current: (0, import_echo2.fullyQualifiedId)(closestThread)
202
- }), (0, import_app_framework2.chain)(import_types.DeckAction.ChangeCompanion, {
203
- primary,
204
- companion: `${primary}${import_types.ATTENDABLE_PATH_SEPARATOR}comments`
205
- }));
206
- void dispatch(intent);
207
- }
208
- }, [
209
- dispatch,
210
- threads
211
- ]);
212
- const debounced = (0, import_react6.useMemo)(() => {
213
- return (0, import_async.debounce)((cellCoords) => requestAnimationFrame(() => selectClosestThread(cellCoords)), 50);
214
- }, [
215
- selectClosestThread
216
- ]);
217
- (0, import_react6.useEffect)(() => {
218
- if (!cursor) {
219
- return;
220
- }
221
- debounced(cursor);
222
- }, [
223
- cursor,
224
- debounced
225
- ]);
226
- };
227
- var createDxGridColumns = (model) => {
228
- return model.sheet.columns.reduce((acc, columnId, numericIndex) => {
229
- if (model.sheet.columnMeta[columnId] && model.sheet.columnMeta[columnId].size) {
230
- acc.grid[numericIndex] = {
231
- size: model.sheet.columnMeta[columnId].size,
232
- resizeable: true
233
- };
234
- }
235
- return acc;
236
- }, {
237
- grid: {}
238
- });
239
- };
240
- var createDxGridRows = (model) => {
241
- return model.sheet.rows.reduce((acc, rowId, numericIndex) => {
242
- if (model.sheet.rowMeta[rowId] && model.sheet.rowMeta[rowId].size) {
243
- acc.grid[numericIndex] = {
244
- size: model.sheet.rowMeta[rowId].size,
245
- resizeable: true
246
- };
247
- }
248
- return acc;
249
- }, {
250
- grid: {}
251
- });
252
- };
253
- var projectCellProps = (model, col, row) => {
254
- const address = {
255
- col,
256
- row
257
- };
258
- const rawValue = model.getValue(address);
259
- const ranges = model.sheet.ranges?.filter(({ range }) => (0, import_compute3.inRange)((0, import_chunk_D4MOMCEU.rangeFromIndex)(model.sheet, range), address));
260
- const threadRefs = model.sheet.threads?.filter((thread) => {
261
- const range = thread.target?.anchor && parseThreadAnchorAsCellRange(thread.target.anchor);
262
- return thread && range ? (0, import_compute3.inRange)(range, address) : false;
263
- }).map((thread) => (0, import_echo.fullyQualifiedId)(thread)).join(" ");
264
- const description = model.getValueDescription(address);
265
- const type = description?.type;
266
- const format = description?.format;
267
- const classNames = ranges?.map(import_chunk_D4MOMCEU.cellClassNameForRange).reverse();
268
- return {
269
- value: (0, import_react_ui_form.parseValue)({
270
- type,
271
- format,
272
- value: rawValue
273
- }),
274
- className: (0, import_react_ui_theme2.mx)((0, import_react_ui_form.cellClassesForFieldType)({
275
- type,
276
- format
277
- }), threadRefs && import_react_ui_grid2.commentedClassName, classNames),
278
- dataRefs: threadRefs
279
- };
280
- };
281
- var gridCellGetter = (model) => {
282
- const cachedGridCells = {};
283
- return (nextBounds) => {
284
- [
285
- ...Array(nextBounds.end.col - nextBounds.start.col)
286
- ].forEach((_, c0) => {
287
- return [
288
- ...Array(nextBounds.end.row - nextBounds.start.row)
289
- ].forEach((_2, r0) => {
290
- const col = nextBounds.start.col + c0;
291
- const row = nextBounds.start.row + r0;
292
- cachedGridCells[`${col},${row}`] = projectCellProps(model, col, row);
293
- });
294
- });
295
- return cachedGridCells;
296
- };
297
- };
298
- var rowLabelCell = (row) => ({
299
- value: (0, import_react_ui_grid2.rowToA1Notation)(row),
300
- className: "text-end pie-1 text-subdued",
301
- resizeHandle: "row"
302
- });
303
- var colLabelCell = (col) => ({
304
- value: (0, import_react_ui_grid2.colToA1Notation)(col),
305
- className: "text-subdued",
306
- resizeHandle: "col"
307
- });
308
- var cellGetter = (model) => {
309
- const getGridCells = gridCellGetter(model);
310
- return (nextBounds, plane) => {
311
- switch (plane) {
312
- case "grid":
313
- return getGridCells(nextBounds);
314
- case "frozenColsStart":
315
- return [
316
- ...Array(nextBounds.end.row - nextBounds.start.row)
317
- ].reduce((acc, _, r0) => {
318
- const r = nextBounds.start.row + r0;
319
- acc[`0,${r}`] = rowLabelCell(r);
320
- return acc;
321
- }, {});
322
- case "frozenRowsStart":
323
- return [
324
- ...Array(nextBounds.end.col - nextBounds.start.col)
325
- ].reduce((acc, _, c0) => {
326
- const c = nextBounds.start.col + c0;
327
- acc[`${c},0`] = colLabelCell(c);
328
- return acc;
329
- }, {});
330
- default:
331
- return {};
332
- }
333
- };
334
- };
335
- var useSheetModelDxGridProps = (dxGrid, model) => {
336
- const [columns, setColumns] = (0, import_react5.useState)(createDxGridColumns(model));
337
- const [rows, setRows] = (0, import_react5.useState)(createDxGridRows(model));
338
- (0, import_react5.useEffect)(() => {
339
- const cellsAccessor = (0, import_echo.createDocAccessor)(model.sheet, [
340
- "cells"
341
- ]);
342
- if (dxGrid) {
343
- dxGrid.getCells = cellGetter(model);
344
- }
345
- const handleCellsUpdate = () => {
346
- dxGrid?.requestUpdate("initialCells");
347
- };
348
- cellsAccessor.handle.addListener("change", handleCellsUpdate);
349
- const unsubscribe = model.graph.update.on(handleCellsUpdate);
350
- return () => {
351
- cellsAccessor.handle.removeListener("change", handleCellsUpdate);
352
- unsubscribe();
353
- };
354
- }, [
355
- model,
356
- dxGrid
357
- ]);
358
- (0, import_react5.useEffect)(() => {
359
- const columnMetaAccessor = (0, import_echo.createDocAccessor)(model.sheet, [
360
- "columnMeta"
361
- ]);
362
- const rowMetaAccessor = (0, import_echo.createDocAccessor)(model.sheet, [
363
- "rowMeta"
364
- ]);
365
- const handleColumnMetaUpdate = () => {
366
- setColumns(createDxGridColumns(model));
367
- };
368
- const handleRowMetaUpdate = () => {
369
- setRows(createDxGridRows(model));
370
- };
371
- columnMetaAccessor.handle.addListener("change", handleColumnMetaUpdate);
372
- rowMetaAccessor.handle.addListener("change", handleRowMetaUpdate);
373
- return () => {
374
- columnMetaAccessor.handle.removeListener("change", handleColumnMetaUpdate);
375
- rowMetaAccessor.handle.removeListener("change", handleRowMetaUpdate);
376
- };
377
- }, [
378
- model,
379
- dxGrid
380
- ]);
381
- return {
382
- columns,
383
- rows
384
- };
385
- };
386
- var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-sheet/src/components/SheetContext/SheetContext.tsx";
387
- var SheetContext = /* @__PURE__ */ (0, import_react7.createContext)(void 0);
388
- var useSheetContext = () => {
389
- const context = (0, import_react7.useContext)(SheetContext);
390
- (0, import_invariant.invariant)(context, void 0, {
391
- F: __dxlog_file,
392
- L: 54,
393
- S: void 0,
394
- A: [
395
- "context",
396
- ""
397
- ]
398
- });
399
- return context;
400
- };
401
- var SheetProviderImpl = ({ model, onInfo, ignoreAttention, children, __gridScope }) => {
402
- const { id, editing, setEditing } = (0, import_react_ui_grid3.useGridContext)("SheetProvider", __gridScope);
403
- const [cursor, setCursorInternal] = (0, import_react7.useState)();
404
- const [range, setRangeInternal] = (0, import_react7.useState)();
405
- const [cursorFallbackRange, setCursorFallbackRange] = (0, import_react7.useState)();
406
- const [activeRefs, setActiveRefs] = (0, import_react7.useState)("");
407
- const setCursor = (0, import_react7.useCallback)((nextCursor) => {
408
- setCursorInternal(nextCursor);
409
- setCursorFallbackRange(range?.to ? range : nextCursor ? {
410
- from: nextCursor,
411
- to: nextCursor
412
- } : void 0);
413
- }, [
414
- range
415
- ]);
416
- const setRange = (0, import_react7.useCallback)((nextRange) => {
417
- setRangeInternal(nextRange);
418
- setCursorFallbackRange(nextRange?.to ? nextRange : cursor ? {
419
- from: cursor,
420
- to: cursor
421
- } : void 0);
422
- }, [
423
- cursor
424
- ]);
425
- return /* @__PURE__ */ import_react7.default.createElement(SheetContext.Provider, {
426
- value: {
427
- id,
428
- model,
429
- editing,
430
- setEditing,
431
- cursor,
432
- setCursor,
433
- range,
434
- setRange,
435
- cursorFallbackRange,
436
- activeRefs,
437
- setActiveRefs,
438
- // TODO(burdon): Change to event.
439
- onInfo,
440
- ignoreAttention
441
- }
442
- }, children);
443
- };
444
- var SheetProvider = ({ children, graph, sheet, readonly, ignoreAttention, onInfo }) => {
445
- const model = (0, import_chunk_D4MOMCEU.useSheetModel)(graph, sheet, {
446
- readonly
447
- });
448
- return !model ? null : /* @__PURE__ */ import_react7.default.createElement(import_react_ui_grid3.Grid.Root, {
449
- id: (0, import_echo3.fullyQualifiedId)(sheet)
450
- }, /* @__PURE__ */ import_react7.default.createElement(SheetProviderImpl, {
451
- model,
452
- onInfo,
453
- ignoreAttention
454
- }, children));
455
- };
456
- var inertPosition = {
457
- plane: "grid",
458
- col: 0,
459
- row: 0
460
- };
461
- var initialCells = {
462
- grid: {},
463
- frozenColsStart: [
464
- ...Array(64)
465
- ].reduce((acc, _, i) => {
466
- acc[`0,${i}`] = rowLabelCell(i);
467
- return acc;
468
- }, {}),
469
- frozenRowsStart: [
470
- ...Array(12)
471
- ].reduce((acc, _, i) => {
472
- acc[`${i},0`] = colLabelCell(i);
473
- return acc;
474
- }, {})
475
- };
476
- var frozen = {
477
- frozenColsStart: 1,
478
- frozenRowsStart: 1
479
- };
480
- var sheetRowDefault = {
481
- frozenRowsStart: {
482
- size: import_react_ui_grid.defaultSizeRow,
483
- readonly: true
484
- },
485
- grid: {
486
- size: import_react_ui_grid.defaultSizeRow,
487
- resizeable: true
488
- }
489
- };
490
- var sheetColDefault = {
491
- frozenColsStart: {
492
- size: 48,
493
- readonly: true
494
- },
495
- grid: {
496
- size: 180,
497
- resizeable: true
498
- }
499
- };
500
- var GridSheet = () => {
501
- const { t } = (0, import_react_ui2.useTranslation)(import_chunk_JSIDCZHB.SHEET_PLUGIN);
502
- const { id, model, editing, setCursor, setRange, cursor, cursorFallbackRange, activeRefs, ignoreAttention } = useSheetContext();
503
- const [dxGrid, setDxGrid] = (0, import_react4.useState)(null);
504
- const [extraplanarFocus, setExtraplanarFocus] = (0, import_react4.useState)(null);
505
- const { dispatchPromise: dispatch } = (0, import_app_framework.useIntentDispatcher)();
506
- const rangeController = (0, import_react4.useRef)();
507
- const { hasAttention } = (0, import_react_ui_attention.useAttention)(id);
508
- const handleFocus = (0, import_react4.useCallback)((event) => {
509
- if (!editing) {
510
- const cell = (0, import_react_ui_grid.closestCell)(event.target);
511
- if (cell) {
512
- if (cell.plane === "grid") {
513
- setCursor({
514
- col: cell.col,
515
- row: cell.row
516
- });
517
- setExtraplanarFocus(null);
518
- } else {
519
- setExtraplanarFocus(cell);
520
- }
521
- } else {
522
- setExtraplanarFocus(null);
523
- }
524
- }
525
- }, [
526
- editing
527
- ]);
528
- const handleClose = (0, import_react4.useCallback)((_value, event) => {
529
- if (event) {
530
- const { key, shift } = event;
531
- const axis = [
532
- "Enter",
533
- "ArrowUp",
534
- "ArrowDown"
535
- ].includes(key) ? "row" : [
536
- "Tab",
537
- "ArrowLeft",
538
- "ArrowRight"
539
- ].includes(key) ? "col" : void 0;
540
- const delta = key.startsWith("Arrow") ? [
541
- "ArrowUp",
542
- "ArrowLeft"
543
- ].includes(key) ? -1 : 1 : shift ? -1 : 1;
544
- dxGrid?.refocus(axis, delta);
545
- }
546
- }, [
547
- model,
548
- editing,
549
- dxGrid
550
- ]);
551
- const handleBlur = (0, import_react4.useCallback)((value) => {
552
- if (value !== void 0) {
553
- model.setValue((0, import_react_ui_grid.parseCellIndex)(editing.index), value);
554
- }
555
- }, [
556
- model,
557
- editing
558
- ]);
559
- const handleAxisResize = (0, import_react4.useCallback)(({ axis, size, index: numericIndex }) => {
560
- if (axis === "row") {
561
- const rowId = model.sheet.rows[parseInt(numericIndex)];
562
- model.sheet.rowMeta[rowId] ??= {};
563
- model.sheet.rowMeta[rowId].size = size;
564
- } else {
565
- const columnId = model.sheet.columns[parseInt(numericIndex)];
566
- model.sheet.columnMeta[columnId] ??= {};
567
- model.sheet.columnMeta[columnId].size = size;
568
- }
569
- }, [
570
- model
571
- ]);
572
- const handleSelect = (0, import_react4.useCallback)(({ minCol, maxCol, minRow, maxRow }) => {
573
- const range = {
574
- from: {
575
- col: minCol,
576
- row: minRow
577
- }
578
- };
579
- if (minCol !== maxCol || minRow !== maxRow) {
580
- range.to = {
581
- col: maxCol,
582
- row: maxRow
583
- };
584
- }
585
- if (editing) {
586
- rangeController.current?.setRange((0, import_compute2.rangeToA1Notation)(range));
587
- } else {
588
- setRange(range.to ? range : void 0);
589
- }
590
- }, [
591
- editing
592
- ]);
593
- const handleWheel = (0, import_react4.useCallback)((event) => {
594
- if (!ignoreAttention && !hasAttention) {
595
- event.stopPropagation();
596
- }
597
- }, [
598
- hasAttention,
599
- ignoreAttention
600
- ]);
601
- const selectEntireAxis = (0, import_react4.useCallback)((pos) => {
602
- switch (pos.plane) {
603
- case "frozenRowsStart":
604
- return dxGrid?.setSelection({
605
- start: {
606
- col: pos.col,
607
- row: 0,
608
- plane: "grid"
609
- },
610
- end: {
611
- col: pos.col,
612
- row: model.sheet.rows.length - 1,
613
- plane: "grid"
614
- }
615
- });
616
- case "frozenColsStart":
617
- return dxGrid?.setSelection({
618
- start: {
619
- row: pos.row,
620
- col: 0,
621
- plane: "grid"
622
- },
623
- end: {
624
- row: pos.row,
625
- col: model.sheet.columns.length - 1,
626
- plane: "grid"
627
- }
628
- });
629
- }
630
- }, [
631
- dxGrid,
632
- model.sheet
633
- ]);
634
- const handleClick = (0, import_react4.useCallback)((event) => {
635
- const cell = (0, import_react_ui_grid.closestCell)(event.target);
636
- if (cell) {
637
- selectEntireAxis(cell);
638
- }
639
- }, [
640
- selectEntireAxis
641
- ]);
642
- const handleKeyDown = (0, import_react4.useCallback)((event) => {
643
- switch (event.key) {
644
- case "Backspace":
645
- case "Delete":
646
- event.preventDefault();
647
- return cursorFallbackRange && model.clear(cursorFallbackRange);
648
- case "Enter":
649
- case "Space":
650
- if (dxGrid && extraplanarFocus) {
651
- switch (extraplanarFocus.plane) {
652
- case "frozenRowsStart":
653
- case "frozenColsStart":
654
- event.preventDefault();
655
- return selectEntireAxis(extraplanarFocus);
656
- }
657
- }
658
- }
659
- if (event.metaKey || event.ctrlKey) {
660
- switch (event.key) {
661
- case "x":
662
- case "X":
663
- event.preventDefault();
664
- return cursorFallbackRange && model.cut(cursorFallbackRange);
665
- case "c":
666
- case "C":
667
- event.preventDefault();
668
- return cursorFallbackRange && model.copy(cursorFallbackRange);
669
- case "v":
670
- case "V":
671
- event.preventDefault();
672
- return cursor && model.paste(cursor);
673
- case "z":
674
- event.preventDefault();
675
- return event.shiftKey ? model.redo() : model.undo();
676
- case "Z":
677
- case "y":
678
- event.preventDefault();
679
- return model.redo();
680
- }
681
- }
682
- }, [
683
- cursorFallbackRange,
684
- model,
685
- cursor,
686
- extraplanarFocus,
687
- selectEntireAxis
688
- ]);
689
- const contextMenuAnchorRef = (0, import_react4.useRef)(null);
690
- const [contextMenuOpen, setContextMenuOpen] = (0, import_react4.useState)(null);
691
- const contextMenuAxis = contextMenuOpen?.plane.startsWith("frozenRows") ? "col" : "row";
692
- const handleContextMenu = (0, import_react4.useCallback)((event) => {
693
- const cell = (0, import_react_ui_grid.closestCell)(event.target);
694
- if (cell && cell.plane.startsWith("frozen")) {
695
- event.preventDefault();
696
- contextMenuAnchorRef.current = event.target;
697
- setContextMenuOpen(cell);
698
- }
699
- }, []);
700
- const handleAxisMenuAction = (0, import_react4.useCallback)((operation) => {
701
- switch (operation) {
702
- case "insert-before":
703
- case "insert-after":
704
- return dispatch((0, import_app_framework.createIntent)(import_chunk_D4MOMCEU.SheetAction.InsertAxis, {
705
- model,
706
- axis: contextMenuAxis,
707
- index: contextMenuOpen[contextMenuAxis] + (operation === "insert-before" ? 0 : 1)
708
- }));
709
- case "drop":
710
- return dispatch((0, import_app_framework.createIntent)(import_chunk_D4MOMCEU.SheetAction.DropAxis, {
711
- model,
712
- axis: contextMenuAxis,
713
- axisIndex: model.sheet[contextMenuAxis === "row" ? "rows" : "columns"][contextMenuOpen[contextMenuAxis]]
714
- }));
715
- }
716
- }, [
717
- contextMenuAxis,
718
- contextMenuOpen,
719
- model,
720
- dispatch
721
- ]);
722
- const { columns, rows } = useSheetModelDxGridProps(dxGrid, model);
723
- const extension = (0, import_react4.useMemo)(() => [
724
- (0, import_react_ui_grid.editorKeys)({
725
- onClose: handleClose,
726
- ...editing?.initialContent && {
727
- onNav: handleClose
728
- }
729
- }),
730
- (0, import_chunk_LEV7OSTK.sheetExtension)({
731
- functions: model.graph.getFunctions()
732
- }),
733
- (0, import_chunk_LEV7OSTK.rangeExtension)({
734
- onInit: (fn) => rangeController.current = fn,
735
- onStateChange: (state) => {
736
- if (dxGrid) {
737
- dxGrid.mode = typeof state.activeRange === "undefined" ? "edit" : "edit-select";
738
- }
739
- }
740
- })
741
- ], [
742
- model,
743
- handleClose,
744
- editing
745
- ]);
746
- const getCellContent = (0, import_react4.useCallback)((index) => {
747
- return model.getCellText((0, import_react_ui_grid.parseCellIndex)(index));
748
- }, [
749
- model
750
- ]);
751
- useUpdateFocusedCellOnThreadSelection(dxGrid);
752
- useSelectThreadOnCellFocus();
753
- return /* @__PURE__ */ import_react4.default.createElement("div", {
754
- role: "none",
755
- className: "relative min-bs-0"
756
- }, /* @__PURE__ */ import_react4.default.createElement(import_react_ui_grid.GridCellEditor, {
757
- getCellContent,
758
- extension,
759
- onBlur: handleBlur
760
- }), /* @__PURE__ */ import_react4.default.createElement(import_react_ui_grid.Grid.Content, {
761
- initialCells,
762
- limitColumns: import_chunk_D4MOMCEU.DEFAULT_COLS,
763
- limitRows: import_chunk_D4MOMCEU.DEFAULT_ROWS,
764
- columns,
765
- rows,
766
- onAxisResize: handleAxisResize,
767
- onSelect: handleSelect,
768
- rowDefault: sheetRowDefault,
769
- columnDefault: sheetColDefault,
770
- frozen,
771
- onFocus: handleFocus,
772
- onWheelCapture: handleWheel,
773
- onKeyDown: handleKeyDown,
774
- onContextMenu: handleContextMenu,
775
- onClick: handleClick,
776
- overscroll: "trap",
777
- className: "[--dx-grid-base:var(--surface-bg)] [&_.dx-grid]:border-bs [&_.dx-grid]:absolute [&_.dx-grid]:inset-0 [&_.dx-grid]:border-separator",
778
- activeRefs,
779
- ref: setDxGrid
780
- }), /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.DropdownMenu.Root, {
781
- modal: false,
782
- open: !!contextMenuOpen,
783
- onOpenChange: (nextOpen) => setContextMenuOpen(nextOpen ? inertPosition : null)
784
- }, /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.DropdownMenu.VirtualTrigger, {
785
- virtualRef: contextMenuAnchorRef
786
- }), /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.DropdownMenu.Content, {
787
- side: contextMenuAxis === "col" ? "bottom" : "right",
788
- sideOffset: 4,
789
- collisionPadding: 8
790
- }, /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.DropdownMenu.Viewport, null, /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.DropdownMenu.Item, {
791
- onClick: () => handleAxisMenuAction("insert-before"),
792
- "data-testid": `grid.${contextMenuAxis}.insert-before`
793
- }, /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Icon, {
794
- size: 5,
795
- icon: contextMenuAxis === "col" ? "ph--columns-plus-left--regular" : "ph--rows-plus-top--regular"
796
- }), /* @__PURE__ */ import_react4.default.createElement("span", null, t(`add ${contextMenuAxis} before label`))), /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.DropdownMenu.Item, {
797
- onClick: () => handleAxisMenuAction("insert-after"),
798
- "data-testid": `grid.${contextMenuAxis}.insert-after`
799
- }, /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Icon, {
800
- size: 5,
801
- icon: contextMenuAxis === "col" ? "ph--columns-plus-right--regular" : "ph--rows-plus-bottom--regular"
802
- }), /* @__PURE__ */ import_react4.default.createElement("span", null, t(`add ${contextMenuAxis} after label`))), /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.DropdownMenu.Item, {
803
- onClick: () => handleAxisMenuAction("drop"),
804
- "data-testid": `grid.${contextMenuAxis}.drop`
805
- }, /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Icon, {
806
- size: 5,
807
- icon: "ph--backspace--regular"
808
- }), /* @__PURE__ */ import_react4.default.createElement("span", null, t(`delete ${contextMenuAxis} label`)))), /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.DropdownMenu.Arrow, null))));
809
- };
810
- var SheetContainer = (0, import_react3.lazy)(() => import("./SheetContainer-LGRD3TTQ.cjs"));
811
- // Annotate the CommonJS export names for ESM import in node:
812
- 0 && (module.exports = {
813
- ComputeGraphContextProvider,
814
- GridSheet,
815
- RangeList,
816
- SheetContainer,
817
- SheetProvider,
818
- completeCellRangeToThreadCursor,
819
- useComputeGraph,
820
- useSheetContext
821
- });
822
- //# sourceMappingURL=chunk-AEH3L5QZ.cjs.map