@dxos/plugin-sheet 0.8.4-main.2e9d522 → 0.8.4-main.3c1ae3b

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 (209) hide show
  1. package/dist/lib/browser/{SheetContainer-KDGD4AVG.mjs → SheetContainer-UAOTJWSB.mjs} +41 -43
  2. package/dist/lib/browser/SheetContainer-UAOTJWSB.mjs.map +7 -0
  3. package/dist/lib/browser/anchor-sort-OWOAGQM6.mjs +23 -0
  4. package/dist/lib/browser/anchor-sort-OWOAGQM6.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-KJWZUQVA.mjs → chunk-73AV3NH6.mjs} +4 -4
  6. package/dist/lib/browser/chunk-73AV3NH6.mjs.map +7 -0
  7. package/dist/lib/browser/{chunk-7HQX4NQP.mjs → chunk-7VEWYJJN.mjs} +2 -2
  8. package/dist/lib/browser/chunk-7VEWYJJN.mjs.map +7 -0
  9. package/dist/lib/browser/{chunk-JUOVL3LE.mjs → chunk-B7YJQ6NY.mjs} +219 -214
  10. package/dist/lib/browser/chunk-B7YJQ6NY.mjs.map +7 -0
  11. package/dist/lib/browser/chunk-FWFAAGXL.mjs +28 -0
  12. package/dist/lib/browser/chunk-FWFAAGXL.mjs.map +7 -0
  13. package/dist/lib/browser/{chunk-SI4X5GUR.mjs → chunk-GBK6OLCY.mjs} +225 -210
  14. package/dist/lib/browser/chunk-GBK6OLCY.mjs.map +7 -0
  15. package/dist/lib/browser/compute-graph-registry-AP5RA7W3.mjs +21 -0
  16. package/dist/lib/browser/compute-graph-registry-AP5RA7W3.mjs.map +7 -0
  17. package/dist/lib/browser/index.mjs +30 -31
  18. package/dist/lib/browser/index.mjs.map +3 -3
  19. package/dist/lib/browser/{intent-resolver-WOJGZMSV.mjs → intent-resolver-OMHQGXFL.mjs} +10 -10
  20. package/dist/lib/browser/intent-resolver-OMHQGXFL.mjs.map +7 -0
  21. package/dist/lib/browser/{markdown-VXMIPUQC.mjs → markdown-B6VKYY2S.mjs} +6 -6
  22. package/dist/lib/browser/markdown-B6VKYY2S.mjs.map +7 -0
  23. package/dist/lib/browser/meta.json +1 -1
  24. package/dist/lib/browser/{react-surface-SE4HGAEH.mjs → react-surface-OAPAEL36.mjs} +16 -15
  25. package/dist/lib/browser/react-surface-OAPAEL36.mjs.map +7 -0
  26. package/dist/lib/browser/types/index.mjs +4 -12
  27. package/dist/lib/node-esm/{SheetContainer-RMG24NZC.mjs → SheetContainer-37DHGRQD.mjs} +41 -43
  28. package/dist/lib/node-esm/SheetContainer-37DHGRQD.mjs.map +7 -0
  29. package/dist/lib/node-esm/{anchor-sort-CTJGOPET.mjs → anchor-sort-FG3DS4HM.mjs} +10 -11
  30. package/dist/lib/node-esm/anchor-sort-FG3DS4HM.mjs.map +7 -0
  31. package/dist/lib/node-esm/{chunk-IFMIRCZH.mjs → chunk-2D5E4MPO.mjs} +219 -214
  32. package/dist/lib/node-esm/chunk-2D5E4MPO.mjs.map +7 -0
  33. package/dist/lib/node-esm/{chunk-6SK5LJ5S.mjs → chunk-44YTKTMP.mjs} +4 -4
  34. package/dist/lib/node-esm/chunk-44YTKTMP.mjs.map +7 -0
  35. package/dist/lib/node-esm/{chunk-Q6UYC4G5.mjs → chunk-4QV4AGWK.mjs} +2 -2
  36. package/dist/lib/node-esm/chunk-4QV4AGWK.mjs.map +7 -0
  37. package/dist/lib/node-esm/chunk-HILDMVPL.mjs +29 -0
  38. package/dist/lib/node-esm/chunk-HILDMVPL.mjs.map +7 -0
  39. package/dist/lib/node-esm/{chunk-CADTJFAS.mjs → chunk-KSHCRK5J.mjs} +225 -210
  40. package/dist/lib/node-esm/chunk-KSHCRK5J.mjs.map +7 -0
  41. package/dist/lib/node-esm/compute-graph-registry-UMQ5UYCL.mjs +22 -0
  42. package/dist/lib/node-esm/compute-graph-registry-UMQ5UYCL.mjs.map +7 -0
  43. package/dist/lib/node-esm/index.mjs +30 -31
  44. package/dist/lib/node-esm/index.mjs.map +3 -3
  45. package/dist/lib/node-esm/{intent-resolver-PZRXBNIJ.mjs → intent-resolver-DHEHYV3B.mjs} +10 -10
  46. package/dist/lib/node-esm/intent-resolver-DHEHYV3B.mjs.map +7 -0
  47. package/dist/lib/node-esm/{markdown-4VPQJZNZ.mjs → markdown-VKY7HXU2.mjs} +6 -6
  48. package/dist/lib/node-esm/markdown-VKY7HXU2.mjs.map +7 -0
  49. package/dist/lib/node-esm/meta.json +1 -1
  50. package/dist/lib/node-esm/{react-surface-LAU23XBH.mjs → react-surface-6LO5MPFK.mjs} +16 -15
  51. package/dist/lib/node-esm/react-surface-6LO5MPFK.mjs.map +7 -0
  52. package/dist/lib/node-esm/types/index.mjs +4 -12
  53. package/dist/types/src/SheetPlugin.d.ts +1 -1
  54. package/dist/types/src/SheetPlugin.d.ts.map +1 -1
  55. package/dist/types/src/capabilities/anchor-sort.d.ts +2 -4
  56. package/dist/types/src/capabilities/anchor-sort.d.ts.map +1 -1
  57. package/dist/types/src/capabilities/compute-graph-registry.d.ts +1 -1
  58. package/dist/types/src/capabilities/compute-graph-registry.d.ts.map +1 -1
  59. package/dist/types/src/capabilities/index.d.ts +5 -10
  60. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  61. package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
  62. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  63. package/dist/types/src/capabilities/markdown.d.ts +1 -3
  64. package/dist/types/src/capabilities/markdown.d.ts.map +1 -1
  65. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  66. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  67. package/dist/types/src/components/ComputeGraph/ComputeGraphContextProvider.d.ts.map +1 -1
  68. package/dist/types/src/components/ComputeGraph/compute-graph.stories.d.ts +9 -4
  69. package/dist/types/src/components/ComputeGraph/compute-graph.stories.d.ts.map +1 -1
  70. package/dist/types/src/components/GridSheet/GridSheet.d.ts.map +1 -1
  71. package/dist/types/src/components/GridSheet/GridSheet.stories.d.ts +51 -3
  72. package/dist/types/src/components/GridSheet/GridSheet.stories.d.ts.map +1 -1
  73. package/dist/types/src/components/GridSheet/SheetCellEditor.stories.d.ts +11 -20
  74. package/dist/types/src/components/GridSheet/SheetCellEditor.stories.d.ts.map +1 -1
  75. package/dist/types/src/components/GridSheet/util.d.ts +1 -1
  76. package/dist/types/src/components/GridSheet/util.d.ts.map +1 -1
  77. package/dist/types/src/components/RangeList/RangeList.d.ts +2 -2
  78. package/dist/types/src/components/RangeList/RangeList.d.ts.map +1 -1
  79. package/dist/types/src/components/SheetContainer/SheetContainer.d.ts +2 -2
  80. package/dist/types/src/components/SheetContainer/SheetContainer.d.ts.map +1 -1
  81. package/dist/types/src/components/SheetContainer/SheetContainer.stories.d.ts +53 -5
  82. package/dist/types/src/components/SheetContainer/SheetContainer.stories.d.ts.map +1 -1
  83. package/dist/types/src/components/SheetContext/SheetContext.d.ts +3 -3
  84. package/dist/types/src/components/SheetContext/SheetContext.d.ts.map +1 -1
  85. package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts +3 -4
  86. package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts.map +1 -1
  87. package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts +88 -4
  88. package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts.map +1 -1
  89. package/dist/types/src/components/SheetToolbar/align.d.ts +2 -2
  90. package/dist/types/src/components/SheetToolbar/align.d.ts.map +1 -1
  91. package/dist/types/src/components/SheetToolbar/style.d.ts.map +1 -1
  92. package/dist/types/src/extensions/compute.d.ts +1 -1
  93. package/dist/types/src/extensions/compute.d.ts.map +1 -1
  94. package/dist/types/src/extensions/compute.stories.d.ts +10 -13
  95. package/dist/types/src/extensions/compute.stories.d.ts.map +1 -1
  96. package/dist/types/src/extensions/editor/index.d.ts +1 -1
  97. package/dist/types/src/extensions/editor/index.d.ts.map +1 -1
  98. package/dist/types/src/extensions/editor/{extension.d.ts → sheet-extension.d.ts} +1 -1
  99. package/dist/types/src/extensions/editor/sheet-extension.d.ts.map +1 -0
  100. package/dist/types/src/extensions/editor/sheet-extension.test.d.ts +2 -0
  101. package/dist/types/src/extensions/editor/sheet-extension.test.d.ts.map +1 -0
  102. package/dist/types/src/integrations/thread-ranges.d.ts.map +1 -1
  103. package/dist/types/src/meta.d.ts +0 -1
  104. package/dist/types/src/meta.d.ts.map +1 -1
  105. package/dist/types/src/model/sheet-model.d.ts +6 -6
  106. package/dist/types/src/model/sheet-model.d.ts.map +1 -1
  107. package/dist/types/src/model/testing.d.ts +2 -2
  108. package/dist/types/src/model/testing.d.ts.map +1 -1
  109. package/dist/types/src/model/useSheetModel.d.ts +2 -2
  110. package/dist/types/src/model/useSheetModel.d.ts.map +1 -1
  111. package/dist/types/src/playwright/sheet-manager.d.ts +1 -1
  112. package/dist/types/src/playwright/sheet-manager.d.ts.map +1 -1
  113. package/dist/types/src/serializer.d.ts +2 -2
  114. package/dist/types/src/serializer.d.ts.map +1 -1
  115. package/dist/types/src/testing/data.d.ts +2 -2
  116. package/dist/types/src/testing/data.d.ts.map +1 -1
  117. package/dist/types/src/testing/testing.d.ts +27 -3
  118. package/dist/types/src/testing/testing.d.ts.map +1 -1
  119. package/dist/types/src/translations.d.ts +3 -2
  120. package/dist/types/src/translations.d.ts.map +1 -1
  121. package/dist/types/src/types/{schema.d.ts → Sheet.d.ts} +38 -5
  122. package/dist/types/src/types/Sheet.d.ts.map +1 -0
  123. package/dist/types/src/types/index.d.ts +1 -1
  124. package/dist/types/src/types/index.d.ts.map +1 -1
  125. package/dist/types/src/types/sheet-range-types.d.ts +2 -2
  126. package/dist/types/src/types/sheet-range-types.d.ts.map +1 -1
  127. package/dist/types/src/types/types.d.ts +7 -16
  128. package/dist/types/src/types/types.d.ts.map +1 -1
  129. package/dist/types/src/types/util.d.ts +9 -10
  130. package/dist/types/src/types/util.d.ts.map +1 -1
  131. package/dist/types/tsconfig.tsbuildinfo +1 -1
  132. package/package.json +68 -64
  133. package/src/SheetPlugin.tsx +69 -66
  134. package/src/capabilities/anchor-sort.ts +7 -8
  135. package/src/capabilities/capabilities.ts +2 -2
  136. package/src/capabilities/compute-graph-registry.ts +9 -14
  137. package/src/capabilities/intent-resolver.ts +5 -5
  138. package/src/capabilities/markdown.ts +3 -2
  139. package/src/capabilities/react-surface.tsx +11 -9
  140. package/src/components/ComputeGraph/ComputeGraphContextProvider.tsx +1 -1
  141. package/src/components/ComputeGraph/compute-graph.stories.tsx +21 -20
  142. package/src/components/FunctionEditor/FunctionEditor.tsx +2 -2
  143. package/src/components/GridSheet/GridSheet.stories.tsx +19 -13
  144. package/src/components/GridSheet/GridSheet.tsx +39 -26
  145. package/src/components/GridSheet/SheetCellEditor.stories.tsx +41 -43
  146. package/src/components/GridSheet/util.ts +16 -10
  147. package/src/components/RangeList/RangeList.tsx +8 -8
  148. package/src/components/SheetContainer/SheetContainer.stories.tsx +48 -44
  149. package/src/components/SheetContainer/SheetContainer.tsx +10 -5
  150. package/src/components/SheetContext/SheetContext.tsx +9 -9
  151. package/src/components/SheetToolbar/SheetToolbar.stories.tsx +19 -13
  152. package/src/components/SheetToolbar/SheetToolbar.tsx +31 -32
  153. package/src/components/SheetToolbar/align.ts +7 -6
  154. package/src/components/SheetToolbar/style.ts +4 -4
  155. package/src/extensions/compute.stories.tsx +31 -27
  156. package/src/extensions/compute.ts +2 -3
  157. package/src/extensions/editor/index.ts +1 -1
  158. package/src/extensions/editor/{extension.test.ts → sheet-extension.test.ts} +1 -1
  159. package/src/integrations/thread-ranges.ts +15 -20
  160. package/src/meta.ts +7 -5
  161. package/src/model/sheet-model.test.ts +5 -4
  162. package/src/model/sheet-model.ts +16 -16
  163. package/src/model/testing.ts +4 -4
  164. package/src/model/useSheetModel.ts +2 -2
  165. package/src/playwright/sheet-manager.ts +1 -1
  166. package/src/playwright/sheet.spec.ts +1 -1
  167. package/src/sanity.test.ts +4 -5
  168. package/src/serializer.ts +4 -4
  169. package/src/testing/data.ts +2 -2
  170. package/src/testing/testing.tsx +11 -5
  171. package/src/translations.ts +3 -2
  172. package/src/types/Sheet.ts +103 -0
  173. package/src/types/index.ts +1 -1
  174. package/src/types/sheet-range-types.ts +2 -2
  175. package/src/types/types.ts +6 -15
  176. package/src/types/util.ts +13 -41
  177. package/dist/lib/browser/SheetContainer-KDGD4AVG.mjs.map +0 -7
  178. package/dist/lib/browser/anchor-sort-VHURGBOY.mjs +0 -24
  179. package/dist/lib/browser/anchor-sort-VHURGBOY.mjs.map +0 -7
  180. package/dist/lib/browser/chunk-6AKBCBL4.mjs +0 -18
  181. package/dist/lib/browser/chunk-6AKBCBL4.mjs.map +0 -7
  182. package/dist/lib/browser/chunk-7HQX4NQP.mjs.map +0 -7
  183. package/dist/lib/browser/chunk-JUOVL3LE.mjs.map +0 -7
  184. package/dist/lib/browser/chunk-KJWZUQVA.mjs.map +0 -7
  185. package/dist/lib/browser/chunk-SI4X5GUR.mjs.map +0 -7
  186. package/dist/lib/browser/compute-graph-registry-VG7VP7IV.mjs +0 -30
  187. package/dist/lib/browser/compute-graph-registry-VG7VP7IV.mjs.map +0 -7
  188. package/dist/lib/browser/intent-resolver-WOJGZMSV.mjs.map +0 -7
  189. package/dist/lib/browser/markdown-VXMIPUQC.mjs.map +0 -7
  190. package/dist/lib/browser/react-surface-SE4HGAEH.mjs.map +0 -7
  191. package/dist/lib/node-esm/SheetContainer-RMG24NZC.mjs.map +0 -7
  192. package/dist/lib/node-esm/anchor-sort-CTJGOPET.mjs.map +0 -7
  193. package/dist/lib/node-esm/chunk-3K5VNYOF.mjs +0 -20
  194. package/dist/lib/node-esm/chunk-3K5VNYOF.mjs.map +0 -7
  195. package/dist/lib/node-esm/chunk-6SK5LJ5S.mjs.map +0 -7
  196. package/dist/lib/node-esm/chunk-CADTJFAS.mjs.map +0 -7
  197. package/dist/lib/node-esm/chunk-IFMIRCZH.mjs.map +0 -7
  198. package/dist/lib/node-esm/chunk-Q6UYC4G5.mjs.map +0 -7
  199. package/dist/lib/node-esm/compute-graph-registry-3K3Q2A5T.mjs +0 -31
  200. package/dist/lib/node-esm/compute-graph-registry-3K3Q2A5T.mjs.map +0 -7
  201. package/dist/lib/node-esm/intent-resolver-PZRXBNIJ.mjs.map +0 -7
  202. package/dist/lib/node-esm/markdown-4VPQJZNZ.mjs.map +0 -7
  203. package/dist/lib/node-esm/react-surface-LAU23XBH.mjs.map +0 -7
  204. package/dist/types/src/extensions/editor/extension.d.ts.map +0 -1
  205. package/dist/types/src/extensions/editor/extension.test.d.ts +0 -2
  206. package/dist/types/src/extensions/editor/extension.test.d.ts.map +0 -1
  207. package/dist/types/src/types/schema.d.ts.map +0 -1
  208. package/src/types/schema.ts +0 -61
  209. /package/src/extensions/editor/{extension.ts → sheet-extension.ts} +0 -0
@@ -2,19 +2,19 @@ import { createRequire } from 'node:module';const require = createRequire(import
2
2
  import {
3
3
  DEFAULT_COLS,
4
4
  DEFAULT_ROWS,
5
- Range,
6
5
  SheetAction,
6
+ Sheet_exports,
7
7
  cellClassNameForRange,
8
8
  rangeFromIndex,
9
9
  useSheetModel
10
- } from "./chunk-CADTJFAS.mjs";
10
+ } from "./chunk-KSHCRK5J.mjs";
11
11
  import {
12
12
  rangeExtension,
13
13
  sheetExtension
14
- } from "./chunk-Q6UYC4G5.mjs";
14
+ } from "./chunk-4QV4AGWK.mjs";
15
15
  import {
16
- SHEET_PLUGIN
17
- } from "./chunk-3K5VNYOF.mjs";
16
+ meta
17
+ } from "./chunk-HILDMVPL.mjs";
18
18
 
19
19
  // src/components/ComputeGraph/ComputeGraphContextProvider.tsx
20
20
  import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
@@ -51,7 +51,7 @@ var useComputeGraph = (space) => {
51
51
 
52
52
  // src/components/RangeList/RangeList.tsx
53
53
  import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
54
- import { Schema } from "effect";
54
+ import * as Schema from "effect/Schema";
55
55
  import React2, { useCallback } from "react";
56
56
  import { rangeToA1Notation } from "@dxos/compute";
57
57
  import { Callout, useTranslation } from "@dxos/react-ui";
@@ -60,7 +60,7 @@ import { ghostHover } from "@dxos/react-ui-theme";
60
60
  var RangeList = ({ sheet }) => {
61
61
  var _effect = _useSignals2();
62
62
  try {
63
- const { t } = useTranslation(SHEET_PLUGIN);
63
+ const { t } = useTranslation(meta.id);
64
64
  const handleSelectRange = (range) => {
65
65
  };
66
66
  const handleDeleteRange = useCallback((range) => {
@@ -73,7 +73,7 @@ var RangeList = ({ sheet }) => {
73
73
  className: "mbs-cardSpacingBlock mbe-labelSpacingBlock text-sm font-semibold"
74
74
  }, t("range list heading")), sheet.ranges.length < 1 ? /* @__PURE__ */ React2.createElement(Callout.Root, null, /* @__PURE__ */ React2.createElement(Callout.Title, null, t("no ranges message"))) : /* @__PURE__ */ React2.createElement(List.Root, {
75
75
  items: sheet.ranges,
76
- isItem: Schema.is(Range)
76
+ isItem: Schema.is(Sheet_exports.Range)
77
77
  }, ({ items: ranges }) => ranges.map((range, i) => /* @__PURE__ */ React2.createElement(List.Item, {
78
78
  key: i,
79
79
  item: range,
@@ -101,195 +101,27 @@ import { lazy } from "react";
101
101
  // src/components/GridSheet/GridSheet.tsx
102
102
  import { useSignals as _useSignals4 } from "@preact-signals/safe-react/tracking";
103
103
  import React4, { useCallback as useCallback4, useMemo as useMemo2, useRef, useState as useState3 } from "react";
104
- import { createIntent as createIntent2, useIntentDispatcher as useIntentDispatcher2 } from "@dxos/app-framework";
104
+ import { createIntent as createIntent2 } from "@dxos/app-framework";
105
+ import { useIntentDispatcher as useIntentDispatcher2 } from "@dxos/app-framework/react";
105
106
  import { rangeToA1Notation as rangeToA1Notation2 } from "@dxos/compute";
106
107
  import { defaultColSize, defaultRowSize } from "@dxos/lit-grid";
107
108
  import { DropdownMenu, Icon, useTranslation as useTranslation2 } from "@dxos/react-ui";
108
109
  import { useAttention } from "@dxos/react-ui-attention";
109
- import { closestCell, editorKeys, parseCellIndex, Grid as Grid2, GridCellEditor } from "@dxos/react-ui-grid";
110
-
111
- // src/components/GridSheet/util.ts
112
- import { useEffect, useState } from "react";
113
- import { inRange } from "@dxos/compute";
114
- import { createDocAccessor } from "@dxos/react-client/echo";
115
- import { parseValue, cellClassesForFieldType } from "@dxos/react-ui-form";
116
- import { colToA1Notation, rowToA1Notation, commentedClassName } from "@dxos/react-ui-grid";
117
- import { mx } from "@dxos/react-ui-theme";
118
- var createDxGridColumns = (model) => {
119
- return model.sheet.columns.reduce((acc, columnId, numericIndex) => {
120
- if (model.sheet.columnMeta[columnId] && model.sheet.columnMeta[columnId].size) {
121
- acc.grid[numericIndex] = {
122
- size: model.sheet.columnMeta[columnId].size,
123
- resizeable: true
124
- };
125
- }
126
- return acc;
127
- }, {
128
- grid: {}
129
- });
130
- };
131
- var createDxGridRows = (model) => {
132
- return model.sheet.rows.reduce((acc, rowId, numericIndex) => {
133
- if (model.sheet.rowMeta[rowId] && model.sheet.rowMeta[rowId].size) {
134
- acc.grid[numericIndex] = {
135
- size: model.sheet.rowMeta[rowId].size,
136
- resizeable: true
137
- };
138
- }
139
- return acc;
140
- }, {
141
- grid: {}
142
- });
143
- };
144
- var projectCellProps = (model, col, row) => {
145
- const address = {
146
- col,
147
- row
148
- };
149
- const rawValue = model.getValue(address);
150
- const ranges = model.sheet.ranges?.filter(({ range }) => inRange(rangeFromIndex(model.sheet, range), address));
151
- const threadRefs = void 0;
152
- const description = model.getValueDescription(address);
153
- const type = description?.type;
154
- const format = description?.format;
155
- const classNames = ranges?.map(cellClassNameForRange).reverse();
156
- return {
157
- value: parseValue({
158
- type,
159
- format,
160
- value: rawValue
161
- }),
162
- className: mx(cellClassesForFieldType({
163
- type,
164
- format
165
- }), threadRefs && commentedClassName, classNames),
166
- dataRefs: threadRefs
167
- };
168
- };
169
- var gridCellGetter = (model) => {
170
- const cachedGridCells = {};
171
- return (nextBounds) => {
172
- [
173
- ...Array(nextBounds.end.col - nextBounds.start.col)
174
- ].forEach((_, c0) => {
175
- return [
176
- ...Array(nextBounds.end.row - nextBounds.start.row)
177
- ].forEach((_2, r0) => {
178
- const col = nextBounds.start.col + c0;
179
- const row = nextBounds.start.row + r0;
180
- cachedGridCells[`${col},${row}`] = projectCellProps(model, col, row);
181
- });
182
- });
183
- return cachedGridCells;
184
- };
185
- };
186
- var rowLabelCell = (row) => ({
187
- value: rowToA1Notation(row),
188
- className: "!bg-toolbarSurface text-subdued text-end pie-1",
189
- resizeHandle: "row"
190
- });
191
- var colLabelCell = (col) => ({
192
- value: colToA1Notation(col),
193
- className: "!bg-toolbarSurface text-subdued",
194
- resizeHandle: "col"
195
- });
196
- var cellGetter = (model) => {
197
- const getGridCells = gridCellGetter(model);
198
- return (nextBounds, plane) => {
199
- switch (plane) {
200
- case "grid":
201
- return getGridCells(nextBounds);
202
- case "fixedStartStart": {
203
- return {
204
- "0,0": {
205
- className: "!bg-toolbarSurface"
206
- }
207
- };
208
- }
209
- case "frozenColsStart":
210
- return [
211
- ...Array(nextBounds.end.row - nextBounds.start.row)
212
- ].reduce((acc, _, r0) => {
213
- const r = nextBounds.start.row + r0;
214
- acc[`0,${r}`] = rowLabelCell(r);
215
- return acc;
216
- }, {});
217
- case "frozenRowsStart":
218
- return [
219
- ...Array(nextBounds.end.col - nextBounds.start.col)
220
- ].reduce((acc, _, c0) => {
221
- const c = nextBounds.start.col + c0;
222
- acc[`${c},0`] = colLabelCell(c);
223
- return acc;
224
- }, {});
225
- default:
226
- return {};
227
- }
228
- };
229
- };
230
- var useSheetModelDxGridProps = (dxGrid, model) => {
231
- const [columns, setColumns] = useState(createDxGridColumns(model));
232
- const [rows, setRows] = useState(createDxGridRows(model));
233
- useEffect(() => {
234
- const cellsAccessor = createDocAccessor(model.sheet, [
235
- "cells"
236
- ]);
237
- if (dxGrid) {
238
- dxGrid.getCells = cellGetter(model);
239
- }
240
- const handleCellsUpdate = () => {
241
- dxGrid?.requestUpdate("initialCells");
242
- };
243
- cellsAccessor.handle.addListener("change", handleCellsUpdate);
244
- const unsubscribe = model.graph.update.on(handleCellsUpdate);
245
- return () => {
246
- cellsAccessor.handle.removeListener("change", handleCellsUpdate);
247
- unsubscribe();
248
- };
249
- }, [
250
- model,
251
- dxGrid
252
- ]);
253
- useEffect(() => {
254
- const columnMetaAccessor = createDocAccessor(model.sheet, [
255
- "columnMeta"
256
- ]);
257
- const rowMetaAccessor = createDocAccessor(model.sheet, [
258
- "rowMeta"
259
- ]);
260
- const handleColumnMetaUpdate = () => {
261
- setColumns(createDxGridColumns(model));
262
- };
263
- const handleRowMetaUpdate = () => {
264
- setRows(createDxGridRows(model));
265
- };
266
- columnMetaAccessor.handle.addListener("change", handleColumnMetaUpdate);
267
- rowMetaAccessor.handle.addListener("change", handleRowMetaUpdate);
268
- return () => {
269
- columnMetaAccessor.handle.removeListener("change", handleColumnMetaUpdate);
270
- rowMetaAccessor.handle.removeListener("change", handleRowMetaUpdate);
271
- };
272
- }, [
273
- model,
274
- dxGrid
275
- ]);
276
- return {
277
- columns,
278
- rows
279
- };
280
- };
110
+ import { Grid as Grid2, GridCellEditor, closestCell, editorKeys, parseCellIndex } from "@dxos/react-ui-grid";
281
111
 
282
112
  // src/integrations/thread-ranges.ts
283
- import { Schema as Schema2, pipe } from "effect";
284
- import { useCallback as useCallback2, useEffect as useEffect2, useMemo } from "react";
285
- import { createIntent, createResolver, LayoutAction, useIntentResolver, useIntentDispatcher, chain } from "@dxos/app-framework";
113
+ import * as Function from "effect/Function";
114
+ import * as Schema2 from "effect/Schema";
115
+ import { useCallback as useCallback2, useEffect, useMemo } from "react";
116
+ import { LayoutAction, chain, createIntent, createResolver } from "@dxos/app-framework";
117
+ import { useIntentDispatcher, useIntentResolver } from "@dxos/app-framework/react";
286
118
  import { debounce } from "@dxos/async";
287
- import { inRange as inRange2 } from "@dxos/compute";
119
+ import { inRange } from "@dxos/compute";
288
120
  import { Obj, Relation } from "@dxos/echo";
289
121
  import { ATTENDABLE_PATH_SEPARATOR, DeckAction } from "@dxos/plugin-deck/types";
290
- import { ThreadAction, ThreadType } from "@dxos/plugin-thread/types";
291
- import { Filter, fullyQualifiedId, getSpace, Query, useQuery } from "@dxos/react-client/echo";
292
- import { AnchoredTo } from "@dxos/schema";
122
+ import { ThreadAction } from "@dxos/plugin-thread/types";
123
+ import { Filter, Query, getSpace, useQuery } from "@dxos/react-client/echo";
124
+ import { AnchoredTo, Thread } from "@dxos/types";
293
125
  var parseThreadAnchorAsCellRange = (cursor) => {
294
126
  const coords = cursor.split(",");
295
127
  if (coords.length !== 4) {
@@ -317,7 +149,7 @@ var useUpdateFocusedCellOnThreadSelection = (grid) => {
317
149
  if (!Schema2.is(LayoutAction.ScrollIntoView.fields.input)(data)) {
318
150
  return false;
319
151
  }
320
- return data.subject === fullyQualifiedId(model.sheet) && !!data.options?.cursor;
152
+ return data.subject === Obj.getDXN(model.sheet).toString() && !!data.options?.cursor;
321
153
  },
322
154
  resolve: ({ options: { cursor, ref } }) => {
323
155
  setActiveRefs(ref);
@@ -331,30 +163,30 @@ var useUpdateFocusedCellOnThreadSelection = (grid) => {
331
163
  model.sheet,
332
164
  setActiveRefs
333
165
  ]);
334
- useIntentResolver(SHEET_PLUGIN, scrollIntoViewResolver);
166
+ useIntentResolver(meta.id, scrollIntoViewResolver);
335
167
  };
336
168
  var useSelectThreadOnCellFocus = () => {
337
169
  const { model, cursor } = useSheetContext();
338
170
  const { dispatchPromise: dispatch } = useIntentDispatcher();
339
171
  const space = getSpace(model.sheet);
340
- const anchors = useQuery(space, Query.select(Filter.ids(model.sheet.id)).targetOf(AnchoredTo));
172
+ const anchors = useQuery(space, Query.select(Filter.id(model.sheet.id)).targetOf(AnchoredTo.AnchoredTo));
341
173
  const selectClosestThread = useCallback2((cellAddress) => {
342
174
  if (!cellAddress) {
343
175
  return;
344
176
  }
345
177
  const closestThread = anchors.find((anchor) => {
346
178
  const source = Relation.getSource(anchor);
347
- if (anchor.anchor && Obj.instanceOf(ThreadType, source)) {
179
+ if (anchor.anchor && Obj.instanceOf(Thread.Thread, source)) {
348
180
  const range = parseThreadAnchorAsCellRange(anchor.anchor);
349
- return range ? inRange2(range, cellAddress) : false;
181
+ return range ? inRange(range, cellAddress) : false;
350
182
  } else {
351
183
  return false;
352
184
  }
353
185
  });
354
186
  if (closestThread) {
355
- const primary = fullyQualifiedId(model.sheet);
356
- const intent = pipe(createIntent(ThreadAction.Select, {
357
- current: fullyQualifiedId(closestThread)
187
+ const primary = Obj.getDXN(model.sheet).toString();
188
+ const intent = Function.pipe(createIntent(ThreadAction.Select, {
189
+ current: Obj.getDXN(closestThread).toString()
358
190
  }), chain(DeckAction.ChangeCompanion, {
359
191
  primary,
360
192
  companion: `${primary}${ATTENDABLE_PATH_SEPARATOR}comments`
@@ -370,7 +202,7 @@ var useSelectThreadOnCellFocus = () => {
370
202
  }, [
371
203
  selectClosestThread
372
204
  ]);
373
- useEffect2(() => {
205
+ useEffect(() => {
374
206
  if (!cursor) {
375
207
  return;
376
208
  }
@@ -383,9 +215,9 @@ var useSelectThreadOnCellFocus = () => {
383
215
 
384
216
  // src/components/SheetContext/SheetContext.tsx
385
217
  import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
386
- import React3, { createContext as createContext2, useCallback as useCallback3, useContext as useContext2, useState as useState2 } from "react";
218
+ import React3, { createContext as createContext2, useCallback as useCallback3, useContext as useContext2, useState } from "react";
219
+ import { Obj as Obj2 } from "@dxos/echo";
387
220
  import { invariant } from "@dxos/invariant";
388
- import { fullyQualifiedId as fullyQualifiedId2 } from "@dxos/react-client/echo";
389
221
  import { Grid, useGridContext } from "@dxos/react-ui-grid";
390
222
  var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-sheet/src/components/SheetContext/SheetContext.tsx";
391
223
  var SheetContext = /* @__PURE__ */ createContext2(void 0);
@@ -402,14 +234,14 @@ var useSheetContext = () => {
402
234
  });
403
235
  return context;
404
236
  };
405
- var SheetProviderImpl = ({ model, onInfo, ignoreAttention, children, __gridScope }) => {
237
+ var SheetProviderImpl = ({ __gridScope, children, ignoreAttention, model, onInfo }) => {
406
238
  var _effect = _useSignals3();
407
239
  try {
408
240
  const { id, editing, setEditing } = useGridContext("SheetProvider", __gridScope);
409
- const [cursor, setCursorInternal] = useState2();
410
- const [range, setRangeInternal] = useState2();
411
- const [cursorFallbackRange, setCursorFallbackRange] = useState2();
412
- const [activeRefs, setActiveRefs] = useState2("");
241
+ const [cursor, setCursorInternal] = useState();
242
+ const [range, setRangeInternal] = useState();
243
+ const [cursorFallbackRange, setCursorFallbackRange] = useState();
244
+ const [activeRefs, setActiveRefs] = useState("");
413
245
  const setCursor = useCallback3((nextCursor) => {
414
246
  setCursorInternal(nextCursor);
415
247
  setCursorFallbackRange(range?.to ? range : nextCursor ? {
@@ -457,7 +289,7 @@ var SheetProvider = ({ children, graph, sheet, readonly, ignoreAttention, onInfo
457
289
  readonly
458
290
  });
459
291
  return !model ? null : /* @__PURE__ */ React3.createElement(Grid.Root, {
460
- id: fullyQualifiedId2(sheet)
292
+ id: Obj2.getDXN(sheet).toString()
461
293
  }, /* @__PURE__ */ React3.createElement(SheetProviderImpl, {
462
294
  model,
463
295
  onInfo,
@@ -468,6 +300,177 @@ var SheetProvider = ({ children, graph, sheet, readonly, ignoreAttention, onInfo
468
300
  }
469
301
  };
470
302
 
303
+ // src/components/GridSheet/util.ts
304
+ import { useEffect as useEffect2, useState as useState2 } from "react";
305
+ import { inRange as inRange2 } from "@dxos/compute";
306
+ import { createDocAccessor } from "@dxos/echo-db";
307
+ import { cellClassesForFieldType, parseValue } from "@dxos/react-ui-form";
308
+ import { colToA1Notation, commentedClassName, rowToA1Notation } from "@dxos/react-ui-grid";
309
+ import { mx } from "@dxos/react-ui-theme";
310
+ var createDxGridColumns = (model) => {
311
+ return model.sheet.columns.reduce((acc, columnId, numericIndex) => {
312
+ if (model.sheet.columnMeta[columnId] && model.sheet.columnMeta[columnId].size) {
313
+ acc.grid[numericIndex] = {
314
+ size: model.sheet.columnMeta[columnId].size,
315
+ resizeable: true
316
+ };
317
+ }
318
+ return acc;
319
+ }, {
320
+ grid: {}
321
+ });
322
+ };
323
+ var createDxGridRows = (model) => {
324
+ return model.sheet.rows.reduce((acc, rowId, numericIndex) => {
325
+ if (model.sheet.rowMeta[rowId] && model.sheet.rowMeta[rowId].size) {
326
+ acc.grid[numericIndex] = {
327
+ size: model.sheet.rowMeta[rowId].size,
328
+ resizeable: true
329
+ };
330
+ }
331
+ return acc;
332
+ }, {
333
+ grid: {}
334
+ });
335
+ };
336
+ var projectCellProps = (model, col, row) => {
337
+ const address = {
338
+ col,
339
+ row
340
+ };
341
+ const rawValue = model.getValue(address);
342
+ const ranges = model.sheet.ranges?.filter(({ range }) => inRange2(rangeFromIndex(model.sheet, range), address));
343
+ const threadRefs = void 0;
344
+ const description = model.getValueDescription(address);
345
+ const type = description?.type;
346
+ const format = description?.format;
347
+ const classNames = ranges?.map(cellClassNameForRange).reverse();
348
+ return {
349
+ value: parseValue({
350
+ type,
351
+ format,
352
+ value: rawValue
353
+ }),
354
+ className: mx(cellClassesForFieldType({
355
+ type,
356
+ format
357
+ }), threadRefs && commentedClassName, classNames),
358
+ dataRefs: threadRefs
359
+ };
360
+ };
361
+ var gridCellGetter = (model) => {
362
+ const cachedGridCells = {};
363
+ return (nextBounds) => {
364
+ [
365
+ ...Array(nextBounds.end.col - nextBounds.start.col)
366
+ ].forEach((_, c0) => {
367
+ return [
368
+ ...Array(nextBounds.end.row - nextBounds.start.row)
369
+ ].forEach((_2, r0) => {
370
+ const col = nextBounds.start.col + c0;
371
+ const row = nextBounds.start.row + r0;
372
+ cachedGridCells[`${col},${row}`] = projectCellProps(model, col, row);
373
+ });
374
+ });
375
+ return cachedGridCells;
376
+ };
377
+ };
378
+ var rowLabelCell = (row) => ({
379
+ value: rowToA1Notation(row),
380
+ className: "!bg-toolbarSurface text-subdued text-end pie-1",
381
+ resizeHandle: "row"
382
+ });
383
+ var colLabelCell = (col) => ({
384
+ value: colToA1Notation(col),
385
+ className: "!bg-toolbarSurface text-subdued",
386
+ resizeHandle: "col"
387
+ });
388
+ var cellGetter = (model) => {
389
+ const getGridCells = gridCellGetter(model);
390
+ return (nextBounds, plane) => {
391
+ switch (plane) {
392
+ case "grid":
393
+ return getGridCells(nextBounds);
394
+ case "fixedStartStart": {
395
+ return {
396
+ "0,0": {
397
+ className: "!bg-toolbarSurface"
398
+ }
399
+ };
400
+ }
401
+ case "frozenColsStart":
402
+ return [
403
+ ...Array(nextBounds.end.row - nextBounds.start.row)
404
+ ].reduce((acc, _, r0) => {
405
+ const r = nextBounds.start.row + r0;
406
+ acc[`0,${r}`] = rowLabelCell(r);
407
+ return acc;
408
+ }, {});
409
+ case "frozenRowsStart":
410
+ return [
411
+ ...Array(nextBounds.end.col - nextBounds.start.col)
412
+ ].reduce((acc, _, c0) => {
413
+ const c = nextBounds.start.col + c0;
414
+ acc[`${c},0`] = colLabelCell(c);
415
+ return acc;
416
+ }, {});
417
+ default:
418
+ return {};
419
+ }
420
+ };
421
+ };
422
+ var useSheetModelDxGridProps = (dxGrid, model) => {
423
+ const [columns, setColumns] = useState2(createDxGridColumns(model));
424
+ const [rows, setRows] = useState2(createDxGridRows(model));
425
+ useEffect2(() => {
426
+ const cellsAccessor = createDocAccessor(model.sheet, [
427
+ "cells"
428
+ ]);
429
+ if (dxGrid) {
430
+ dxGrid.getCells = cellGetter(model);
431
+ }
432
+ const handleCellsUpdate = () => {
433
+ dxGrid?.requestUpdate("initialCells");
434
+ };
435
+ cellsAccessor.handle.addListener("change", handleCellsUpdate);
436
+ const unsubscribe = model.graph.update.on(handleCellsUpdate);
437
+ return () => {
438
+ cellsAccessor.handle.removeListener("change", handleCellsUpdate);
439
+ unsubscribe();
440
+ };
441
+ }, [
442
+ model,
443
+ dxGrid
444
+ ]);
445
+ useEffect2(() => {
446
+ const columnMetaAccessor = createDocAccessor(model.sheet, [
447
+ "columnMeta"
448
+ ]);
449
+ const rowMetaAccessor = createDocAccessor(model.sheet, [
450
+ "rowMeta"
451
+ ]);
452
+ const handleColumnMetaUpdate = () => {
453
+ setColumns(createDxGridColumns(model));
454
+ };
455
+ const handleRowMetaUpdate = () => {
456
+ setRows(createDxGridRows(model));
457
+ };
458
+ columnMetaAccessor.handle.addListener("change", handleColumnMetaUpdate);
459
+ rowMetaAccessor.handle.addListener("change", handleRowMetaUpdate);
460
+ return () => {
461
+ columnMetaAccessor.handle.removeListener("change", handleColumnMetaUpdate);
462
+ rowMetaAccessor.handle.removeListener("change", handleRowMetaUpdate);
463
+ };
464
+ }, [
465
+ model,
466
+ dxGrid
467
+ ]);
468
+ return {
469
+ columns,
470
+ rows
471
+ };
472
+ };
473
+
471
474
  // src/components/GridSheet/GridSheet.tsx
472
475
  var inertPosition = {
473
476
  plane: "grid",
@@ -496,7 +499,8 @@ var frozen = {
496
499
  var sheetColDefault = {
497
500
  frozenColsStart: {
498
501
  size: 48,
499
- readonly: true
502
+ readonly: true,
503
+ focusUnfurl: false
500
504
  },
501
505
  grid: {
502
506
  size: defaultColSize,
@@ -506,7 +510,8 @@ var sheetColDefault = {
506
510
  var sheetRowDefault = {
507
511
  frozenRowsStart: {
508
512
  size: defaultRowSize,
509
- readonly: true
513
+ readonly: true,
514
+ focusUnfurl: false
510
515
  },
511
516
  grid: {
512
517
  size: defaultRowSize,
@@ -516,12 +521,12 @@ var sheetRowDefault = {
516
521
  var GridSheet = () => {
517
522
  var _effect = _useSignals4();
518
523
  try {
519
- const { t } = useTranslation2(SHEET_PLUGIN);
524
+ const { t } = useTranslation2(meta.id);
520
525
  const { id, model, editing, setCursor, setRange, cursor, cursorFallbackRange, activeRefs, ignoreAttention } = useSheetContext();
521
526
  const [dxGrid, setDxGrid] = useState3(null);
522
527
  const [extraplanarFocus, setExtraplanarFocus] = useState3(null);
523
528
  const { dispatchPromise: dispatch } = useIntentDispatcher2();
524
- const rangeController = useRef();
529
+ const rangeController = useRef(null);
525
530
  const { hasAttention } = useAttention(id);
526
531
  const handleFocus = useCallback4((event) => {
527
532
  if (!editing) {
@@ -738,7 +743,7 @@ var GridSheet = () => {
738
743
  dispatch
739
744
  ]);
740
745
  const { columns, rows } = useSheetModelDxGridProps(dxGrid, model);
741
- const extension = useMemo2(() => [
746
+ const extensions = useMemo2(() => [
742
747
  editorKeys({
743
748
  onClose: handleClose,
744
749
  ...editing?.initialContent && {
@@ -772,10 +777,10 @@ var GridSheet = () => {
772
777
  // TODO(thure): Why are Table’s and Sheet’s editor boxes off by 1px?
773
778
  /* @__PURE__ */ React4.createElement("div", {
774
779
  role: "none",
775
- className: "relative min-bs-0 [&_.cm-editor]:!border-lb [&_.cm-editor]:!border-transparent "
780
+ className: "relative min-bs-0 [&_.cm-editor]:!border-lb [&_.cm-editor]:!border-transparent"
776
781
  }, /* @__PURE__ */ React4.createElement(GridCellEditor, {
777
782
  getCellContent,
778
- extension,
783
+ extensions,
779
784
  onBlur: handleBlur
780
785
  }), /* @__PURE__ */ React4.createElement(Grid2.Content, {
781
786
  initialCells,
@@ -834,7 +839,7 @@ var GridSheet = () => {
834
839
  };
835
840
 
836
841
  // src/components/index.ts
837
- var SheetContainer = lazy(() => import("./SheetContainer-RMG24NZC.mjs"));
842
+ var SheetContainer = lazy(() => import("./SheetContainer-37DHGRQD.mjs"));
838
843
 
839
844
  export {
840
845
  ComputeGraphContextProvider,
@@ -845,4 +850,4 @@ export {
845
850
  RangeList,
846
851
  SheetContainer
847
852
  };
848
- //# sourceMappingURL=chunk-IFMIRCZH.mjs.map
853
+ //# sourceMappingURL=chunk-2D5E4MPO.mjs.map