@dxos/plugin-sheet 0.7.5-main.9d26e3a → 0.7.5-main.9d2a38b

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 (191) hide show
  1. package/dist/lib/browser/SheetContainer-CM4CO3DC.mjs +370 -0
  2. package/dist/lib/browser/SheetContainer-CM4CO3DC.mjs.map +7 -0
  3. package/dist/lib/browser/chunk-FOO6NGBM.mjs +229 -0
  4. package/dist/lib/browser/chunk-FOO6NGBM.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-A374JPWV.mjs → chunk-H23JW3DX.mjs} +139 -381
  6. package/dist/lib/browser/chunk-H23JW3DX.mjs.map +7 -0
  7. package/dist/lib/browser/{chunk-RABELMEQ.mjs → chunk-K6EUYKWT.mjs} +3 -3
  8. package/dist/lib/browser/chunk-K6EUYKWT.mjs.map +7 -0
  9. package/dist/lib/browser/chunk-PW25VUP6.mjs +15 -0
  10. package/dist/lib/browser/chunk-PW25VUP6.mjs.map +7 -0
  11. package/dist/lib/browser/{chunk-Q4XS4YWF.mjs → chunk-T3IVPMRX.mjs} +2 -2
  12. package/dist/lib/browser/chunk-T3IVPMRX.mjs.map +7 -0
  13. package/dist/lib/browser/compute-graph-registry-XH6B2SWG.mjs +27 -0
  14. package/dist/lib/browser/compute-graph-registry-XH6B2SWG.mjs.map +7 -0
  15. package/dist/lib/browser/index.mjs +86 -218
  16. package/dist/lib/browser/index.mjs.map +4 -4
  17. package/dist/lib/browser/intent-resolver-Q7DTHAM5.mjs +47 -0
  18. package/dist/lib/browser/intent-resolver-Q7DTHAM5.mjs.map +7 -0
  19. package/dist/lib/browser/markdown-IKG5FNCA.mjs +26 -0
  20. package/dist/lib/browser/markdown-IKG5FNCA.mjs.map +7 -0
  21. package/dist/lib/browser/meta.json +1 -1
  22. package/dist/lib/browser/react-context-JG43577H.mjs +28 -0
  23. package/dist/lib/browser/react-context-JG43577H.mjs.map +7 -0
  24. package/dist/lib/browser/react-surface-URRC3AFC.mjs +43 -0
  25. package/dist/lib/browser/react-surface-URRC3AFC.mjs.map +7 -0
  26. package/dist/lib/browser/thread-YX6KBQNQ.mjs +17 -0
  27. package/dist/lib/browser/thread-YX6KBQNQ.mjs.map +7 -0
  28. package/dist/lib/browser/types/index.mjs +2 -2
  29. package/dist/lib/node/SheetContainer-TJ3JQLWM.cjs +364 -0
  30. package/dist/lib/node/SheetContainer-TJ3JQLWM.cjs.map +7 -0
  31. package/dist/lib/node/{chunk-TQOJ7DG2.cjs → chunk-E3RXOEL6.cjs} +6 -6
  32. package/dist/lib/node/chunk-E3RXOEL6.cjs.map +7 -0
  33. package/dist/lib/node/{meta.cjs → chunk-FU5K66DS.cjs} +12 -8
  34. package/dist/lib/node/chunk-FU5K66DS.cjs.map +7 -0
  35. package/dist/lib/node/{chunk-2ZVZI2KJ.cjs → chunk-NLDXUFDG.cjs} +7 -7
  36. package/dist/lib/node/chunk-NLDXUFDG.cjs.map +7 -0
  37. package/dist/lib/node/chunk-P4KSGZSS.cjs +251 -0
  38. package/dist/lib/node/chunk-P4KSGZSS.cjs.map +7 -0
  39. package/dist/lib/node/{chunk-FDEQ2PGJ.cjs → chunk-ZPWW4LPY.cjs} +181 -419
  40. package/dist/lib/node/chunk-ZPWW4LPY.cjs.map +7 -0
  41. package/dist/lib/node/compute-graph-registry-ORGTIE5M.cjs +53 -0
  42. package/dist/lib/node/compute-graph-registry-ORGTIE5M.cjs.map +7 -0
  43. package/dist/lib/node/index.cjs +87 -215
  44. package/dist/lib/node/index.cjs.map +4 -4
  45. package/dist/lib/node/intent-resolver-ZUDJJUFG.cjs +60 -0
  46. package/dist/lib/node/intent-resolver-ZUDJJUFG.cjs.map +7 -0
  47. package/dist/lib/node/markdown-EUUL3Q36.cjs +40 -0
  48. package/dist/lib/node/markdown-EUUL3Q36.cjs.map +7 -0
  49. package/dist/lib/node/meta.json +1 -1
  50. package/dist/lib/node/react-context-OOH5QFE2.cjs +50 -0
  51. package/dist/lib/node/react-context-OOH5QFE2.cjs.map +7 -0
  52. package/dist/lib/node/react-surface-IQN5JKSS.cjs +64 -0
  53. package/dist/lib/node/react-surface-IQN5JKSS.cjs.map +7 -0
  54. package/dist/lib/node/thread-VBPS23P2.cjs +32 -0
  55. package/dist/lib/node/thread-VBPS23P2.cjs.map +7 -0
  56. package/dist/lib/node/types/index.cjs +30 -30
  57. package/dist/lib/node/types/index.cjs.map +1 -1
  58. package/dist/lib/node-esm/SheetContainer-QEEFORIC.mjs +371 -0
  59. package/dist/lib/node-esm/SheetContainer-QEEFORIC.mjs.map +7 -0
  60. package/dist/lib/node-esm/{chunk-BM2Q3FFC.mjs → chunk-FMOVRTS4.mjs} +3 -3
  61. package/dist/lib/node-esm/chunk-FMOVRTS4.mjs.map +7 -0
  62. package/dist/lib/node-esm/chunk-KCXK5UM6.mjs +16 -0
  63. package/dist/lib/node-esm/chunk-KCXK5UM6.mjs.map +7 -0
  64. package/dist/lib/node-esm/{chunk-NYYIDVR7.mjs → chunk-NSVUOAI6.mjs} +2 -2
  65. package/dist/lib/node-esm/chunk-NSVUOAI6.mjs.map +7 -0
  66. package/dist/lib/node-esm/{chunk-L5PQHVTX.mjs → chunk-OXD6RBFF.mjs} +139 -381
  67. package/dist/lib/node-esm/chunk-OXD6RBFF.mjs.map +7 -0
  68. package/dist/lib/node-esm/chunk-PTOI45NK.mjs +231 -0
  69. package/dist/lib/node-esm/chunk-PTOI45NK.mjs.map +7 -0
  70. package/dist/lib/node-esm/compute-graph-registry-JH2FRHLD.mjs +28 -0
  71. package/dist/lib/node-esm/compute-graph-registry-JH2FRHLD.mjs.map +7 -0
  72. package/dist/lib/node-esm/index.mjs +86 -218
  73. package/dist/lib/node-esm/index.mjs.map +4 -4
  74. package/dist/lib/node-esm/intent-resolver-IF64RN7B.mjs +48 -0
  75. package/dist/lib/node-esm/intent-resolver-IF64RN7B.mjs.map +7 -0
  76. package/dist/lib/node-esm/markdown-D2ZMN7LR.mjs +27 -0
  77. package/dist/lib/node-esm/markdown-D2ZMN7LR.mjs.map +7 -0
  78. package/dist/lib/node-esm/meta.json +1 -1
  79. package/dist/lib/node-esm/react-context-CJVSLO74.mjs +29 -0
  80. package/dist/lib/node-esm/react-context-CJVSLO74.mjs.map +7 -0
  81. package/dist/lib/node-esm/react-surface-XJIX5G3I.mjs +44 -0
  82. package/dist/lib/node-esm/react-surface-XJIX5G3I.mjs.map +7 -0
  83. package/dist/lib/node-esm/thread-HSJD3SR6.mjs +18 -0
  84. package/dist/lib/node-esm/thread-HSJD3SR6.mjs.map +7 -0
  85. package/dist/lib/node-esm/types/index.mjs +2 -2
  86. package/dist/types/src/SheetPlugin.d.ts +1 -3
  87. package/dist/types/src/SheetPlugin.d.ts.map +1 -1
  88. package/dist/types/src/capabilities/capabilities.d.ts +5 -0
  89. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -0
  90. package/dist/types/src/capabilities/compute-graph-registry.d.ts +4 -0
  91. package/dist/types/src/capabilities/compute-graph-registry.d.ts.map +1 -0
  92. package/dist/types/src/capabilities/index.d.ts +17 -0
  93. package/dist/types/src/capabilities/index.d.ts.map +1 -0
  94. package/dist/types/src/capabilities/intent-resolver.d.ts +4 -0
  95. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -0
  96. package/dist/types/src/capabilities/markdown.d.ts +6 -0
  97. package/dist/types/src/capabilities/markdown.d.ts.map +1 -0
  98. package/dist/types/src/capabilities/react-context.d.ts +8 -0
  99. package/dist/types/src/capabilities/react-context.d.ts.map +1 -0
  100. package/dist/types/src/capabilities/react-surface.d.ts +4 -0
  101. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  102. package/dist/types/src/capabilities/thread.d.ts +6 -0
  103. package/dist/types/src/capabilities/thread.d.ts.map +1 -0
  104. package/dist/types/src/components/GridSheet/GridSheet.stories.d.ts.map +1 -1
  105. package/dist/types/src/components/SheetContainer/SheetContainer.d.ts.map +1 -1
  106. package/dist/types/src/components/SheetContainer/SheetContainer.stories.d.ts.map +1 -1
  107. package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts +7 -0
  108. package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts.map +1 -0
  109. package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts +6 -0
  110. package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts.map +1 -0
  111. package/dist/types/src/components/SheetToolbar/align.d.ts +28 -0
  112. package/dist/types/src/components/SheetToolbar/align.d.ts.map +1 -0
  113. package/dist/types/src/components/SheetToolbar/comment.d.ts +23 -0
  114. package/dist/types/src/components/SheetToolbar/comment.d.ts.map +1 -0
  115. package/dist/types/src/components/SheetToolbar/index.d.ts +2 -0
  116. package/dist/types/src/components/SheetToolbar/index.d.ts.map +1 -0
  117. package/dist/types/src/components/SheetToolbar/style.d.ts +26 -0
  118. package/dist/types/src/components/SheetToolbar/style.d.ts.map +1 -0
  119. package/dist/types/src/components/SheetToolbar/useToolbarAction.d.ts +8 -0
  120. package/dist/types/src/components/SheetToolbar/useToolbarAction.d.ts.map +1 -0
  121. package/dist/types/src/components/SheetToolbar/useToolbarState.d.ts +6 -0
  122. package/dist/types/src/components/SheetToolbar/useToolbarState.d.ts.map +1 -0
  123. package/dist/types/src/components/index.d.ts +1 -2
  124. package/dist/types/src/components/index.d.ts.map +1 -1
  125. package/dist/types/src/index.d.ts +2 -3
  126. package/dist/types/src/index.d.ts.map +1 -1
  127. package/dist/types/src/meta.d.ts +1 -2
  128. package/dist/types/src/meta.d.ts.map +1 -1
  129. package/dist/types/src/testing/testing.d.ts +1 -1
  130. package/dist/types/src/testing/testing.d.ts.map +1 -1
  131. package/dist/types/src/types/sheet-range-types.d.ts +1 -1
  132. package/dist/types/src/types/sheet-range-types.d.ts.map +1 -1
  133. package/dist/types/src/types/types.d.ts +0 -11
  134. package/dist/types/src/types/types.d.ts.map +1 -1
  135. package/dist/types/tsconfig.tsbuildinfo +1 -1
  136. package/package.json +44 -51
  137. package/src/SheetPlugin.tsx +68 -103
  138. package/src/capabilities/capabilities.ts +14 -0
  139. package/src/capabilities/compute-graph-registry.ts +25 -0
  140. package/src/capabilities/index.ts +14 -0
  141. package/src/capabilities/intent-resolver.ts +29 -0
  142. package/src/capabilities/markdown.ts +22 -0
  143. package/src/capabilities/react-context.tsx +20 -0
  144. package/src/capabilities/react-surface.tsx +30 -0
  145. package/src/capabilities/thread.ts +14 -0
  146. package/src/components/GridSheet/GridSheet.stories.tsx +2 -0
  147. package/src/components/SheetContainer/SheetContainer.stories.tsx +25 -22
  148. package/src/components/SheetContainer/SheetContainer.tsx +3 -8
  149. package/src/components/{Toolbar/Toolbar.stories.tsx → SheetToolbar/SheetToolbar.stories.tsx} +4 -8
  150. package/src/components/SheetToolbar/SheetToolbar.tsx +48 -0
  151. package/src/components/SheetToolbar/align.ts +68 -0
  152. package/src/components/SheetToolbar/comment.ts +56 -0
  153. package/src/components/{Toolbar → SheetToolbar}/index.ts +1 -1
  154. package/src/components/SheetToolbar/style.ts +72 -0
  155. package/src/components/SheetToolbar/useToolbarAction.ts +87 -0
  156. package/src/components/SheetToolbar/useToolbarState.ts +17 -0
  157. package/src/components/index.ts +0 -1
  158. package/src/index.ts +2 -5
  159. package/src/meta.ts +1 -1
  160. package/src/types/sheet-range-types.ts +1 -1
  161. package/src/types/types.ts +0 -26
  162. package/dist/lib/browser/SheetContainer-S4NCLUYL.mjs +0 -290
  163. package/dist/lib/browser/SheetContainer-S4NCLUYL.mjs.map +0 -7
  164. package/dist/lib/browser/chunk-A374JPWV.mjs.map +0 -7
  165. package/dist/lib/browser/chunk-Q4XS4YWF.mjs.map +0 -7
  166. package/dist/lib/browser/chunk-RABELMEQ.mjs.map +0 -7
  167. package/dist/lib/browser/meta.mjs +0 -9
  168. package/dist/lib/browser/meta.mjs.map +0 -7
  169. package/dist/lib/node/SheetContainer-TP4GYXZB.cjs +0 -296
  170. package/dist/lib/node/SheetContainer-TP4GYXZB.cjs.map +0 -7
  171. package/dist/lib/node/chunk-2ZVZI2KJ.cjs.map +0 -7
  172. package/dist/lib/node/chunk-FDEQ2PGJ.cjs.map +0 -7
  173. package/dist/lib/node/chunk-TQOJ7DG2.cjs.map +0 -7
  174. package/dist/lib/node/meta.cjs.map +0 -7
  175. package/dist/lib/node-esm/SheetContainer-YB3JBVPZ.mjs +0 -291
  176. package/dist/lib/node-esm/SheetContainer-YB3JBVPZ.mjs.map +0 -7
  177. package/dist/lib/node-esm/chunk-BM2Q3FFC.mjs.map +0 -7
  178. package/dist/lib/node-esm/chunk-L5PQHVTX.mjs.map +0 -7
  179. package/dist/lib/node-esm/chunk-NYYIDVR7.mjs.map +0 -7
  180. package/dist/lib/node-esm/meta.mjs +0 -10
  181. package/dist/lib/node-esm/meta.mjs.map +0 -7
  182. package/dist/types/src/components/SheetObjectSettings.d.ts +0 -7
  183. package/dist/types/src/components/SheetObjectSettings.d.ts.map +0 -1
  184. package/dist/types/src/components/Toolbar/Toolbar.d.ts +0 -48
  185. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +0 -1
  186. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts +0 -7
  187. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts.map +0 -1
  188. package/dist/types/src/components/Toolbar/index.d.ts +0 -2
  189. package/dist/types/src/components/Toolbar/index.d.ts.map +0 -1
  190. package/src/components/SheetObjectSettings.tsx +0 -38
  191. package/src/components/Toolbar/Toolbar.tsx +0 -344
@@ -7,10 +7,14 @@ import {
7
7
  cellClassNameForRange,
8
8
  rangeFromIndex,
9
9
  useSheetModel
10
- } from "./chunk-NYYIDVR7.mjs";
10
+ } from "./chunk-NSVUOAI6.mjs";
11
+ import {
12
+ rangeExtension,
13
+ sheetExtension
14
+ } from "./chunk-PTOI45NK.mjs";
11
15
  import {
12
16
  SHEET_PLUGIN
13
- } from "./chunk-BM2Q3FFC.mjs";
17
+ } from "./chunk-FMOVRTS4.mjs";
14
18
 
15
19
  // packages/plugins/plugin-sheet/src/components/ComputeGraph/ComputeGraphContextProvider.tsx
16
20
  import React, { createContext, useContext } from "react";
@@ -39,334 +43,8 @@ var useComputeGraph = (space) => {
39
43
  return graph;
40
44
  };
41
45
 
42
- // packages/plugins/plugin-sheet/src/extensions/compute.ts
43
- import { syntaxTree } from "@codemirror/language";
44
- import { RangeSetBuilder, StateEffect, StateField } from "@codemirror/state";
45
- import { Decoration, EditorView, ViewPlugin, WidgetType } from "@codemirror/view";
46
- import { debounce } from "@dxos/async";
47
- import { createSheetName } from "@dxos/compute";
48
- import { invariant } from "@dxos/invariant";
49
- import { documentId, singleValueFacet } from "@dxos/react-ui-editor";
50
- var updateAllDecorations = StateEffect.define();
51
- var computeGraphFacet = singleValueFacet();
52
-
53
- // packages/plugins/plugin-sheet/src/extensions/editor/extension.ts
54
- import { acceptCompletion, autocompletion, completionStatus, startCompletion } from "@codemirror/autocomplete";
55
- import { HighlightStyle, syntaxHighlighting } from "@codemirror/language";
56
- import { ViewPlugin as ViewPlugin2, keymap } from "@codemirror/view";
57
- import { tags } from "@lezer/highlight";
58
- import { spreadsheet } from "codemirror-lang-spreadsheet";
59
- import { RANGE_NOTATION } from "@dxos/compute";
60
- import { singleValueFacet as singleValueFacet2 } from "@dxos/react-ui-editor";
61
- import { mx } from "@dxos/react-ui-theme";
62
- var highlightStyles = HighlightStyle.define([
63
- // Function.
64
- {
65
- tag: tags.name,
66
- class: "text-accentText"
67
- },
68
- // Range.
69
- {
70
- tag: tags.tagName,
71
- class: "text-pinkText"
72
- },
73
- // Values.
74
- {
75
- tag: tags.number,
76
- class: "text-tealText"
77
- },
78
- {
79
- tag: tags.bool,
80
- class: "text-tealText"
81
- },
82
- {
83
- tag: tags.string,
84
- class: "text-tealText"
85
- },
86
- // Error.
87
- {
88
- tag: tags.invalid,
89
- class: "text-unAccent"
90
- }
91
- ]);
92
- var languageFacet = singleValueFacet2();
93
- var sheetExtension = ({ debug, functions = [] }) => {
94
- const { extension, language } = spreadsheet({
95
- idiom: "en-US",
96
- decimalSeparator: "."
97
- });
98
- const createCompletion = (name) => {
99
- const { section = "Custom", description, syntax } = functions.find((value) => value.name === name) ?? {};
100
- return {
101
- section,
102
- label: name,
103
- info: () => {
104
- if (!description && !syntax) {
105
- return null;
106
- }
107
- const root = document.createElement("div");
108
- root.className = "flex flex-col gap-2 text-sm";
109
- const title = document.createElement("h2");
110
- title.innerText = name;
111
- title.className = "text-lg font-mono text-accentText";
112
- root.appendChild(title);
113
- if (description) {
114
- const info = document.createElement("p");
115
- info.innerText = description;
116
- info.className = "text-subdued";
117
- root.appendChild(info);
118
- }
119
- if (syntax) {
120
- const detail = document.createElement("pre");
121
- detail.innerText = syntax;
122
- detail.className = "whitespace-pre-wrap text-greenText";
123
- root.appendChild(detail);
124
- }
125
- return root;
126
- },
127
- apply: (view, completion, from, to) => {
128
- const insertParens = to === view.state.doc.toString().length;
129
- view.dispatch(view.state.update({
130
- changes: {
131
- from,
132
- to,
133
- insert: completion.label + (insertParens ? "()" : "")
134
- },
135
- selection: {
136
- anchor: from + completion.label.length + 1
137
- }
138
- }));
139
- }
140
- };
141
- };
142
- return [
143
- extension,
144
- languageFacet.of(language),
145
- language.data.of({
146
- autocomplete: (context) => {
147
- if (context.state.doc.toString()[0] !== "=") {
148
- return null;
149
- }
150
- const match = context.matchBefore(/\w*/);
151
- if (!match || match.from === match.to) {
152
- return null;
153
- }
154
- const text = match.text.toUpperCase();
155
- if (!context.explicit && match.text.length < 2) {
156
- return null;
157
- }
158
- return {
159
- from: match.from,
160
- options: functions?.filter(({ name }) => name.startsWith(text)).map(({ name }) => createCompletion(name)) ?? []
161
- };
162
- }
163
- }),
164
- syntaxHighlighting(highlightStyles),
165
- autocompletion({
166
- aboveCursor: false,
167
- defaultKeymap: true,
168
- activateOnTyping: true,
169
- closeOnBlur: !debug,
170
- icons: false,
171
- tooltipClass: () => mx("!-left-[1px] !top-[33px] !-m-0 border !border-t-0 [&>ul]:!min-w-[198px]", "[&>ul>li[aria-selected]]:!bg-accentSurface", "border-separator")
172
- }),
173
- keymap.of([
174
- {
175
- key: "Tab",
176
- run: (view) => {
177
- return completionStatus(view.state) === "active" ? acceptCompletion(view) : startCompletion(view);
178
- }
179
- }
180
- ])
181
- ];
182
- };
183
- var rangeExtension = ({ onInit, onStateChange }) => {
184
- let view;
185
- let activeRange;
186
- const notifier = {
187
- setRange: (range) => {
188
- if (activeRange) {
189
- view.dispatch(view.state.update({
190
- changes: {
191
- ...activeRange,
192
- insert: range.toString()
193
- },
194
- selection: {
195
- anchor: activeRange.from + range.length
196
- }
197
- }));
198
- }
199
- view.focus();
200
- }
201
- };
202
- return ViewPlugin2.fromClass(class {
203
- constructor(_view) {
204
- view = _view;
205
- onInit?.(notifier);
206
- }
207
- update(view2) {
208
- const { anchor } = view2.state.selection.ranges[0];
209
- activeRange = void 0;
210
- const language = view2.state.facet(languageFacet);
211
- const { topNode } = language.parser.parse(view2.state.doc.toString());
212
- visitTree(topNode, ({ type, from, to }) => {
213
- if (from <= anchor && to >= anchor) {
214
- switch (type.name) {
215
- case "Function":
216
- activeRange = {
217
- from: to,
218
- to
219
- };
220
- break;
221
- case "CloseParen":
222
- activeRange = {
223
- from,
224
- to: from
225
- };
226
- break;
227
- case "RangeToken":
228
- case "CellToken":
229
- activeRange = {
230
- from,
231
- to
232
- };
233
- return true;
234
- }
235
- }
236
- return false;
237
- });
238
- if (!activeRange && view2.state.doc.toString()[0] === "=") {
239
- const str = view2.state.doc.sliceString(1);
240
- if (RANGE_NOTATION.test(str)) {
241
- activeRange = {
242
- from: 1,
243
- to: str.length + 1
244
- };
245
- }
246
- }
247
- onStateChange?.({
248
- activeRange: activeRange ? view2.state.doc.sliceString(activeRange.from, activeRange.to) : void 0
249
- });
250
- }
251
- });
252
- };
253
- var visitTree = (node, callback) => {
254
- if (callback(node)) {
255
- return true;
256
- }
257
- for (let child = node.firstChild; child !== null; child = child.nextSibling) {
258
- if (visitTree(child, callback)) {
259
- return true;
260
- }
261
- }
262
- return false;
263
- };
264
-
265
- // packages/plugins/plugin-sheet/src/components/SheetContext/SheetContext.tsx
266
- import React2, { createContext as createContext2, useCallback, useContext as useContext2, useState } from "react";
267
- import { invariant as invariant2 } from "@dxos/invariant";
268
- import { fullyQualifiedId } from "@dxos/react-client/echo";
269
- import { Grid, useGridContext } from "@dxos/react-ui-grid";
270
- var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-sheet/src/components/SheetContext/SheetContext.tsx";
271
- var SheetContext = /* @__PURE__ */ createContext2(void 0);
272
- var useSheetContext = () => {
273
- const context = useContext2(SheetContext);
274
- invariant2(context, void 0, {
275
- F: __dxlog_file,
276
- L: 54,
277
- S: void 0,
278
- A: [
279
- "context",
280
- ""
281
- ]
282
- });
283
- return context;
284
- };
285
- var SheetProviderImpl = ({ model, onInfo, ignoreAttention, children, __gridScope }) => {
286
- const { id, editing, setEditing } = useGridContext("SheetProvider", __gridScope);
287
- const [cursor, setCursorInternal] = useState();
288
- const [range, setRangeInternal] = useState();
289
- const [cursorFallbackRange, setCursorFallbackRange] = useState();
290
- const [activeRefs, setActiveRefs] = useState("");
291
- const setCursor = useCallback((nextCursor) => {
292
- setCursorInternal(nextCursor);
293
- setCursorFallbackRange(range?.to ? range : nextCursor ? {
294
- from: nextCursor,
295
- to: nextCursor
296
- } : void 0);
297
- }, [
298
- range
299
- ]);
300
- const setRange = useCallback((nextRange) => {
301
- setRangeInternal(nextRange);
302
- setCursorFallbackRange(nextRange?.to ? nextRange : cursor ? {
303
- from: cursor,
304
- to: cursor
305
- } : void 0);
306
- }, [
307
- cursor
308
- ]);
309
- return /* @__PURE__ */ React2.createElement(SheetContext.Provider, {
310
- value: {
311
- id,
312
- model,
313
- editing,
314
- setEditing,
315
- cursor,
316
- setCursor,
317
- range,
318
- setRange,
319
- cursorFallbackRange,
320
- activeRefs,
321
- setActiveRefs,
322
- // TODO(burdon): Change to event.
323
- onInfo,
324
- ignoreAttention
325
- }
326
- }, children);
327
- };
328
- var SheetProvider = ({ children, graph, sheet, readonly, ignoreAttention, onInfo }) => {
329
- const model = useSheetModel(graph, sheet, {
330
- readonly
331
- });
332
- return !model ? null : /* @__PURE__ */ React2.createElement(Grid.Root, {
333
- id: fullyQualifiedId(sheet)
334
- }, /* @__PURE__ */ React2.createElement(SheetProviderImpl, {
335
- model,
336
- onInfo,
337
- ignoreAttention
338
- }, children));
339
- };
340
-
341
- // packages/plugins/plugin-sheet/src/components/GridSheet/GridSheet.tsx
342
- import React5, { useCallback as useCallback4, useMemo as useMemo2, useRef, useState as useState3 } from "react";
343
- import { createIntent as createIntent2, useIntentDispatcher as useIntentDispatcher2 } from "@dxos/app-framework";
344
- import { rangeToA1Notation as rangeToA1Notation2 } from "@dxos/compute";
345
- import { DropdownMenu, Icon, useTranslation as useTranslation3 } from "@dxos/react-ui";
346
- import { useAttention } from "@dxos/react-ui-attention";
347
- import { closestCell, defaultSizeRow, editorKeys, Grid as Grid2, GridCellEditor, parseCellIndex } from "@dxos/react-ui-grid";
348
-
349
- // packages/plugins/plugin-sheet/src/components/GridSheet/util.ts
350
- import { useEffect as useEffect2, useState as useState2 } from "react";
351
- import { inRange as inRange2 } from "@dxos/compute";
352
- import { createDocAccessor, fullyQualifiedId as fullyQualifiedId3 } from "@dxos/react-client/echo";
353
- import { parseValue, cellClassesForFieldType } from "@dxos/react-ui-form";
354
- import { colToA1Notation, rowToA1Notation, commentedClassName } from "@dxos/react-ui-grid";
355
- import { mx as mx2 } from "@dxos/react-ui-theme";
356
-
357
- // packages/plugins/plugin-sheet/src/integrations/thread-ranges.ts
358
- import { useCallback as useCallback3, useEffect, useMemo } from "react";
359
- import { createIntent, createResolver, LayoutAction, useIntentDispatcher, useIntentResolver } from "@dxos/app-framework";
360
- import { debounce as debounce2 } from "@dxos/async";
361
- import { inRange } from "@dxos/compute";
362
- import { ThreadAction } from "@dxos/plugin-thread/types";
363
- import { fullyQualifiedId as fullyQualifiedId2 } from "@dxos/react-client/echo";
364
-
365
- // packages/plugins/plugin-sheet/src/components/index.ts
366
- import { lazy } from "react";
367
-
368
46
  // packages/plugins/plugin-sheet/src/components/RangeList/RangeList.tsx
369
- import React3, { useCallback as useCallback2 } from "react";
47
+ import React2, { useCallback } from "react";
370
48
  import { rangeToA1Notation } from "@dxos/compute";
371
49
  import { S } from "@dxos/echo-schema";
372
50
  import { useTranslation } from "@dxos/react-ui";
@@ -376,59 +54,61 @@ var RangeList = ({ sheet }) => {
376
54
  const { t } = useTranslation(SHEET_PLUGIN);
377
55
  const handleSelectRange = (range) => {
378
56
  };
379
- const handleDeleteRange = useCallback2((range) => {
57
+ const handleDeleteRange = useCallback((range) => {
380
58
  const index = sheet.ranges.findIndex((sheetRange) => sheetRange === range);
381
59
  sheet.ranges.splice(index, 1);
382
60
  }, [
383
61
  sheet
384
62
  ]);
385
- return /* @__PURE__ */ React3.createElement(React3.Fragment, null, /* @__PURE__ */ React3.createElement("h2", {
63
+ return /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement("h2", {
386
64
  className: "p-2 text-sm font-semibold"
387
- }, t("range list heading")), /* @__PURE__ */ React3.createElement(List.Root, {
65
+ }, t("range list heading")), /* @__PURE__ */ React2.createElement(List.Root, {
388
66
  items: sheet.ranges,
389
67
  isItem: S.is(Range)
390
- }, ({ items: ranges }) => ranges.map((range, i) => /* @__PURE__ */ React3.createElement(List.Item, {
68
+ }, ({ items: ranges }) => ranges.map((range, i) => /* @__PURE__ */ React2.createElement(List.Item, {
391
69
  key: i,
392
70
  item: range,
393
71
  classNames: [
394
72
  "p-2",
395
73
  ghostHover
396
74
  ]
397
- }, /* @__PURE__ */ React3.createElement(List.ItemDragHandle, null), /* @__PURE__ */ React3.createElement(List.ItemTitle, {
75
+ }, /* @__PURE__ */ React2.createElement(List.ItemDragHandle, null), /* @__PURE__ */ React2.createElement(List.ItemTitle, {
398
76
  onClick: () => handleSelectRange(range)
399
77
  }, t("range title", {
400
78
  position: rangeToA1Notation(rangeFromIndex(sheet, range.range)),
401
79
  key: t(`range key ${range.key} label`),
402
80
  value: t(`range value ${range.value} label`)
403
- })), /* @__PURE__ */ React3.createElement(List.ItemDeleteButton, {
81
+ })), /* @__PURE__ */ React2.createElement(List.ItemDeleteButton, {
404
82
  onClick: () => handleDeleteRange(range)
405
83
  })))));
406
84
  };
407
85
 
408
- // packages/plugins/plugin-sheet/src/components/SheetObjectSettings.tsx
409
- import React4 from "react";
410
- import { SPACE_PLUGIN } from "@dxos/plugin-space/meta";
411
- import { Input, useTranslation as useTranslation2 } from "@dxos/react-ui";
412
- var SheetObjectSettings = ({ sheet }) => {
413
- const { t } = useTranslation2(SPACE_PLUGIN);
414
- return /* @__PURE__ */ React4.createElement(React4.Fragment, null, /* @__PURE__ */ React4.createElement("div", {
415
- role: "form",
416
- className: "flex flex-col w-full p-2 gap-1"
417
- }, /* @__PURE__ */ React4.createElement(Input.Root, null, /* @__PURE__ */ React4.createElement(Input.Label, null, t("name label")), /* @__PURE__ */ React4.createElement(Input.TextInput, {
418
- placeholder: t("name placeholder"),
419
- value: sheet.name ?? "",
420
- onChange: (event) => {
421
- sheet.name = event.target.value;
422
- }
423
- }))), /* @__PURE__ */ React4.createElement(RangeList, {
424
- sheet
425
- }));
426
- };
427
-
428
86
  // packages/plugins/plugin-sheet/src/components/index.ts
429
- var SheetContainer = lazy(() => import("./SheetContainer-YB3JBVPZ.mjs"));
87
+ import { lazy } from "react";
88
+
89
+ // packages/plugins/plugin-sheet/src/components/GridSheet/GridSheet.tsx
90
+ import React4, { useCallback as useCallback4, useMemo as useMemo2, useRef, useState as useState3 } from "react";
91
+ import { createIntent as createIntent2, useIntentDispatcher as useIntentDispatcher2 } from "@dxos/app-framework";
92
+ import { rangeToA1Notation as rangeToA1Notation2 } from "@dxos/compute";
93
+ import { DropdownMenu, Icon, useTranslation as useTranslation2 } from "@dxos/react-ui";
94
+ import { useAttention } from "@dxos/react-ui-attention";
95
+ import { closestCell, defaultSizeRow, editorKeys, Grid as Grid2, GridCellEditor, parseCellIndex } from "@dxos/react-ui-grid";
96
+
97
+ // packages/plugins/plugin-sheet/src/components/GridSheet/util.ts
98
+ import { useEffect as useEffect2, useState } from "react";
99
+ import { inRange as inRange2 } from "@dxos/compute";
100
+ import { createDocAccessor, fullyQualifiedId as fullyQualifiedId2 } from "@dxos/react-client/echo";
101
+ import { parseValue, cellClassesForFieldType } from "@dxos/react-ui-form";
102
+ import { colToA1Notation, rowToA1Notation, commentedClassName } from "@dxos/react-ui-grid";
103
+ import { mx } from "@dxos/react-ui-theme";
430
104
 
431
105
  // packages/plugins/plugin-sheet/src/integrations/thread-ranges.ts
106
+ import { useCallback as useCallback2, useEffect, useMemo } from "react";
107
+ import { createIntent, createResolver, LayoutAction, useIntentDispatcher, useIntentResolver } from "@dxos/app-framework";
108
+ import { debounce } from "@dxos/async";
109
+ import { inRange } from "@dxos/compute";
110
+ import { ThreadAction } from "@dxos/plugin-thread/types";
111
+ import { fullyQualifiedId } from "@dxos/react-client/echo";
432
112
  var completeCellRangeToThreadCursor = (range) => {
433
113
  return `${range.from.col},${range.from.row},${range.to.col},${range.to.row}`;
434
114
  };
@@ -461,7 +141,7 @@ var useUpdateFocusedCellOnThreadSelection = (grid) => {
461
141
  }, true);
462
142
  }, {
463
143
  disposition: "hoist",
464
- filter: (data) => data.id === fullyQualifiedId2(model.sheet) && !!data.cursor
144
+ filter: (data) => data.id === fullyQualifiedId(model.sheet) && !!data.cursor
465
145
  }), [
466
146
  model.sheet,
467
147
  setActiveRefs
@@ -475,7 +155,7 @@ var useSelectThreadOnCellFocus = () => {
475
155
  // TODO(thure): Surely we can find a better dependency for this…
476
156
  JSON.stringify(model.sheet.threads)
477
157
  ]);
478
- const selectClosestThread = useCallback3((cellAddress) => {
158
+ const selectClosestThread = useCallback2((cellAddress) => {
479
159
  if (!cellAddress || !threads) {
480
160
  return;
481
161
  }
@@ -489,7 +169,7 @@ var useSelectThreadOnCellFocus = () => {
489
169
  });
490
170
  if (closestThread) {
491
171
  void dispatch(createIntent(ThreadAction.Select, {
492
- current: fullyQualifiedId2(closestThread)
172
+ current: fullyQualifiedId(closestThread)
493
173
  }));
494
174
  }
495
175
  }, [
@@ -497,7 +177,7 @@ var useSelectThreadOnCellFocus = () => {
497
177
  threads
498
178
  ]);
499
179
  const debounced = useMemo(() => {
500
- return debounce2((cellCoords) => requestAnimationFrame(() => selectClosestThread(cellCoords)), 50);
180
+ return debounce((cellCoords) => requestAnimationFrame(() => selectClosestThread(cellCoords)), 50);
501
181
  }, [
502
182
  selectClosestThread
503
183
  ]);
@@ -549,7 +229,7 @@ var projectCellProps = (model, col, row) => {
549
229
  const threadRefs = model.sheet.threads?.filter((thread) => {
550
230
  const range = thread.target?.anchor && parseThreadAnchorAsCellRange(thread.target.anchor);
551
231
  return thread && range ? inRange2(range, address) : false;
552
- }).map((thread) => fullyQualifiedId3(thread)).join(" ");
232
+ }).map((thread) => fullyQualifiedId2(thread)).join(" ");
553
233
  const description = model.getValueDescription(address);
554
234
  const type = description?.type;
555
235
  const format = description?.format;
@@ -560,7 +240,7 @@ var projectCellProps = (model, col, row) => {
560
240
  format,
561
241
  value: rawValue
562
242
  }),
563
- className: mx2(cellClassesForFieldType({
243
+ className: mx(cellClassesForFieldType({
564
244
  type,
565
245
  format
566
246
  }), threadRefs && commentedClassName, classNames),
@@ -622,8 +302,8 @@ var cellGetter = (model) => {
622
302
  };
623
303
  };
624
304
  var useSheetModelDxGridProps = (dxGrid, model) => {
625
- const [columns, setColumns] = useState2(createDxGridColumns(model));
626
- const [rows, setRows] = useState2(createDxGridRows(model));
305
+ const [columns, setColumns] = useState(createDxGridColumns(model));
306
+ const [rows, setRows] = useState(createDxGridRows(model));
627
307
  useEffect2(() => {
628
308
  const cellsAccessor = createDocAccessor(model.sheet, [
629
309
  "cells"
@@ -673,6 +353,82 @@ var useSheetModelDxGridProps = (dxGrid, model) => {
673
353
  };
674
354
  };
675
355
 
356
+ // packages/plugins/plugin-sheet/src/components/SheetContext/SheetContext.tsx
357
+ import React3, { createContext as createContext2, useCallback as useCallback3, useContext as useContext2, useState as useState2 } from "react";
358
+ import { invariant } from "@dxos/invariant";
359
+ import { fullyQualifiedId as fullyQualifiedId3 } from "@dxos/react-client/echo";
360
+ import { Grid, useGridContext } from "@dxos/react-ui-grid";
361
+ var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-sheet/src/components/SheetContext/SheetContext.tsx";
362
+ var SheetContext = /* @__PURE__ */ createContext2(void 0);
363
+ var useSheetContext = () => {
364
+ const context = useContext2(SheetContext);
365
+ invariant(context, void 0, {
366
+ F: __dxlog_file,
367
+ L: 54,
368
+ S: void 0,
369
+ A: [
370
+ "context",
371
+ ""
372
+ ]
373
+ });
374
+ return context;
375
+ };
376
+ var SheetProviderImpl = ({ model, onInfo, ignoreAttention, children, __gridScope }) => {
377
+ const { id, editing, setEditing } = useGridContext("SheetProvider", __gridScope);
378
+ const [cursor, setCursorInternal] = useState2();
379
+ const [range, setRangeInternal] = useState2();
380
+ const [cursorFallbackRange, setCursorFallbackRange] = useState2();
381
+ const [activeRefs, setActiveRefs] = useState2("");
382
+ const setCursor = useCallback3((nextCursor) => {
383
+ setCursorInternal(nextCursor);
384
+ setCursorFallbackRange(range?.to ? range : nextCursor ? {
385
+ from: nextCursor,
386
+ to: nextCursor
387
+ } : void 0);
388
+ }, [
389
+ range
390
+ ]);
391
+ const setRange = useCallback3((nextRange) => {
392
+ setRangeInternal(nextRange);
393
+ setCursorFallbackRange(nextRange?.to ? nextRange : cursor ? {
394
+ from: cursor,
395
+ to: cursor
396
+ } : void 0);
397
+ }, [
398
+ cursor
399
+ ]);
400
+ return /* @__PURE__ */ React3.createElement(SheetContext.Provider, {
401
+ value: {
402
+ id,
403
+ model,
404
+ editing,
405
+ setEditing,
406
+ cursor,
407
+ setCursor,
408
+ range,
409
+ setRange,
410
+ cursorFallbackRange,
411
+ activeRefs,
412
+ setActiveRefs,
413
+ // TODO(burdon): Change to event.
414
+ onInfo,
415
+ ignoreAttention
416
+ }
417
+ }, children);
418
+ };
419
+ var SheetProvider = ({ children, graph, sheet, readonly, ignoreAttention, onInfo }) => {
420
+ const model = useSheetModel(graph, sheet, {
421
+ readonly
422
+ });
423
+ return !model ? null : /* @__PURE__ */ React3.createElement(Grid.Root, {
424
+ id: fullyQualifiedId3(sheet)
425
+ }, /* @__PURE__ */ React3.createElement(SheetProviderImpl, {
426
+ model,
427
+ onInfo,
428
+ ignoreAttention
429
+ }, children));
430
+ };
431
+
676
432
  // packages/plugins/plugin-sheet/src/components/GridSheet/GridSheet.tsx
677
433
  var inertPosition = {
678
434
  plane: "grid",
@@ -719,7 +475,7 @@ var sheetColDefault = {
719
475
  }
720
476
  };
721
477
  var GridSheet = () => {
722
- const { t } = useTranslation3(SHEET_PLUGIN);
478
+ const { t } = useTranslation2(SHEET_PLUGIN);
723
479
  const { id, model, editing, setCursor, setRange, cursor, cursorFallbackRange, activeRefs, ignoreAttention } = useSheetContext();
724
480
  const [dxGrid, setDxGrid] = useState3(null);
725
481
  const [extraplanarFocus, setExtraplanarFocus] = useState3(null);
@@ -971,14 +727,14 @@ var GridSheet = () => {
971
727
  ]);
972
728
  useUpdateFocusedCellOnThreadSelection(dxGrid);
973
729
  useSelectThreadOnCellFocus();
974
- return /* @__PURE__ */ React5.createElement("div", {
730
+ return /* @__PURE__ */ React4.createElement("div", {
975
731
  role: "none",
976
732
  className: "relative min-bs-0"
977
- }, /* @__PURE__ */ React5.createElement(GridCellEditor, {
733
+ }, /* @__PURE__ */ React4.createElement(GridCellEditor, {
978
734
  getCellContent,
979
735
  extension,
980
736
  onBlur: handleBlur
981
- }), /* @__PURE__ */ React5.createElement(Grid2.Content, {
737
+ }), /* @__PURE__ */ React4.createElement(Grid2.Content, {
982
738
  initialCells,
983
739
  limitColumns: DEFAULT_COLS,
984
740
  limitRows: DEFAULT_ROWS,
@@ -998,46 +754,48 @@ var GridSheet = () => {
998
754
  className: "[--dx-grid-base:var(--surface-bg)] [&_.dx-grid]:border-bs [&_.dx-grid]:absolute [&_.dx-grid]:inset-0 [&_.dx-grid]:border-separator",
999
755
  activeRefs,
1000
756
  ref: setDxGrid
1001
- }), /* @__PURE__ */ React5.createElement(DropdownMenu.Root, {
757
+ }), /* @__PURE__ */ React4.createElement(DropdownMenu.Root, {
1002
758
  modal: false,
1003
759
  open: !!contextMenuOpen,
1004
760
  onOpenChange: (nextOpen) => setContextMenuOpen(nextOpen ? inertPosition : null)
1005
- }, /* @__PURE__ */ React5.createElement(DropdownMenu.VirtualTrigger, {
761
+ }, /* @__PURE__ */ React4.createElement(DropdownMenu.VirtualTrigger, {
1006
762
  virtualRef: contextMenuAnchorRef
1007
- }), /* @__PURE__ */ React5.createElement(DropdownMenu.Content, {
763
+ }), /* @__PURE__ */ React4.createElement(DropdownMenu.Content, {
1008
764
  side: contextMenuAxis === "col" ? "bottom" : "right",
1009
765
  sideOffset: 4,
1010
766
  collisionPadding: 8
1011
- }, /* @__PURE__ */ React5.createElement(DropdownMenu.Viewport, null, /* @__PURE__ */ React5.createElement(DropdownMenu.Item, {
767
+ }, /* @__PURE__ */ React4.createElement(DropdownMenu.Viewport, null, /* @__PURE__ */ React4.createElement(DropdownMenu.Item, {
1012
768
  onClick: () => handleAxisMenuAction("insert-before"),
1013
769
  "data-testid": `grid.${contextMenuAxis}.insert-before`
1014
- }, /* @__PURE__ */ React5.createElement(Icon, {
770
+ }, /* @__PURE__ */ React4.createElement(Icon, {
1015
771
  size: 5,
1016
772
  icon: contextMenuAxis === "col" ? "ph--columns-plus-left--regular" : "ph--rows-plus-top--regular"
1017
- }), /* @__PURE__ */ React5.createElement("span", null, t(`add ${contextMenuAxis} before label`))), /* @__PURE__ */ React5.createElement(DropdownMenu.Item, {
773
+ }), /* @__PURE__ */ React4.createElement("span", null, t(`add ${contextMenuAxis} before label`))), /* @__PURE__ */ React4.createElement(DropdownMenu.Item, {
1018
774
  onClick: () => handleAxisMenuAction("insert-after"),
1019
775
  "data-testid": `grid.${contextMenuAxis}.insert-after`
1020
- }, /* @__PURE__ */ React5.createElement(Icon, {
776
+ }, /* @__PURE__ */ React4.createElement(Icon, {
1021
777
  size: 5,
1022
778
  icon: contextMenuAxis === "col" ? "ph--columns-plus-right--regular" : "ph--rows-plus-bottom--regular"
1023
- }), /* @__PURE__ */ React5.createElement("span", null, t(`add ${contextMenuAxis} after label`))), /* @__PURE__ */ React5.createElement(DropdownMenu.Item, {
779
+ }), /* @__PURE__ */ React4.createElement("span", null, t(`add ${contextMenuAxis} after label`))), /* @__PURE__ */ React4.createElement(DropdownMenu.Item, {
1024
780
  onClick: () => handleAxisMenuAction("drop"),
1025
781
  "data-testid": `grid.${contextMenuAxis}.drop`
1026
- }, /* @__PURE__ */ React5.createElement(Icon, {
782
+ }, /* @__PURE__ */ React4.createElement(Icon, {
1027
783
  size: 5,
1028
784
  icon: "ph--backspace--regular"
1029
- }), /* @__PURE__ */ React5.createElement("span", null, t(`delete ${contextMenuAxis} label`)))), /* @__PURE__ */ React5.createElement(DropdownMenu.Arrow, null))));
785
+ }), /* @__PURE__ */ React4.createElement("span", null, t(`delete ${contextMenuAxis} label`)))), /* @__PURE__ */ React4.createElement(DropdownMenu.Arrow, null))));
1030
786
  };
1031
787
 
788
+ // packages/plugins/plugin-sheet/src/components/index.ts
789
+ var SheetContainer = lazy(() => import("./SheetContainer-QEEFORIC.mjs"));
790
+
1032
791
  export {
1033
792
  ComputeGraphContextProvider,
1034
793
  useComputeGraph,
1035
794
  completeCellRangeToThreadCursor,
1036
- computeGraphFacet,
1037
795
  useSheetContext,
1038
796
  SheetProvider,
1039
797
  GridSheet,
1040
- SheetObjectSettings,
798
+ RangeList,
1041
799
  SheetContainer
1042
800
  };
1043
- //# sourceMappingURL=chunk-L5PQHVTX.mjs.map
801
+ //# sourceMappingURL=chunk-OXD6RBFF.mjs.map