@dxos/plugin-sheet 0.8.4-main.bc674ce → 0.8.4-main.c351d160a8

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 (186) hide show
  1. package/dist/lib/browser/RangeList-YI6FSF3S.mjs +48 -0
  2. package/dist/lib/browser/RangeList-YI6FSF3S.mjs.map +7 -0
  3. package/dist/lib/browser/{chunk-S27QJYTN.mjs → SheetContainer-O577SWMS.mjs} +578 -243
  4. package/dist/lib/browser/SheetContainer-O577SWMS.mjs.map +7 -0
  5. package/dist/lib/browser/{anchor-sort-LLO7PZKF.mjs → anchor-sort-NV6MQFUH.mjs} +5 -4
  6. package/dist/lib/browser/anchor-sort-NV6MQFUH.mjs.map +7 -0
  7. package/dist/lib/browser/{chunk-KE3AKN5W.mjs → chunk-GHS75KWH.mjs} +15 -32
  8. package/dist/lib/browser/chunk-GHS75KWH.mjs.map +7 -0
  9. package/dist/lib/browser/{chunk-IFLWVS2V.mjs → chunk-NNWF7EKC.mjs} +10 -10
  10. package/dist/lib/browser/{chunk-IFLWVS2V.mjs.map → chunk-NNWF7EKC.mjs.map} +2 -2
  11. package/dist/lib/browser/{compute-graph-registry-RC5L7RE4.mjs → compute-graph-registry-HVVALVIE.mjs} +2 -2
  12. package/dist/lib/browser/index.mjs +24 -27
  13. package/dist/lib/browser/index.mjs.map +3 -3
  14. package/dist/lib/browser/{markdown-D2T2DOVX.mjs → markdown-I2REDYX5.mjs} +3 -3
  15. package/dist/lib/browser/meta.json +1 -1
  16. package/dist/lib/browser/{operation-resolver-YDOW72CN.mjs → operation-resolver-VGBMFSYG.mjs} +5 -19
  17. package/dist/lib/browser/operation-resolver-VGBMFSYG.mjs.map +7 -0
  18. package/dist/lib/browser/react-surface-NSPYPZYP.mjs +52 -0
  19. package/dist/lib/browser/react-surface-NSPYPZYP.mjs.map +7 -0
  20. package/dist/lib/browser/types/index.mjs +1 -1
  21. package/dist/lib/node-esm/RangeList-7EG3K4KG.mjs +49 -0
  22. package/dist/lib/node-esm/RangeList-7EG3K4KG.mjs.map +7 -0
  23. package/dist/lib/node-esm/{chunk-Y4V6HVHO.mjs → SheetContainer-ICPEZUMD.mjs} +578 -243
  24. package/dist/lib/node-esm/SheetContainer-ICPEZUMD.mjs.map +7 -0
  25. package/dist/lib/node-esm/{anchor-sort-OX5I2YOW.mjs → anchor-sort-7XYLH2AM.mjs} +5 -4
  26. package/dist/lib/node-esm/anchor-sort-7XYLH2AM.mjs.map +7 -0
  27. package/dist/lib/node-esm/{chunk-PPOYR7DK.mjs → chunk-M52YLLWU.mjs} +10 -10
  28. package/dist/lib/node-esm/{chunk-PPOYR7DK.mjs.map → chunk-M52YLLWU.mjs.map} +2 -2
  29. package/dist/lib/node-esm/{chunk-6J5L47IB.mjs → chunk-VGXC77GH.mjs} +15 -32
  30. package/dist/lib/node-esm/chunk-VGXC77GH.mjs.map +7 -0
  31. package/dist/lib/node-esm/{compute-graph-registry-ZGXVLVGD.mjs → compute-graph-registry-IDU2KKQU.mjs} +2 -2
  32. package/dist/lib/node-esm/index.mjs +24 -27
  33. package/dist/lib/node-esm/index.mjs.map +3 -3
  34. package/dist/lib/node-esm/{markdown-PTV72DLO.mjs → markdown-6KBH3MBO.mjs} +3 -3
  35. package/dist/lib/node-esm/meta.json +1 -1
  36. package/dist/lib/node-esm/{operation-resolver-Q63VQBVA.mjs → operation-resolver-E7FIHPCO.mjs} +5 -19
  37. package/dist/lib/node-esm/operation-resolver-E7FIHPCO.mjs.map +7 -0
  38. package/dist/lib/node-esm/{react-surface-SWRZSZVR.mjs → react-surface-LCMQBROP.mjs} +22 -21
  39. package/dist/lib/node-esm/react-surface-LCMQBROP.mjs.map +7 -0
  40. package/dist/lib/node-esm/types/index.mjs +1 -1
  41. package/dist/types/src/SheetPlugin.d.ts.map +1 -1
  42. package/dist/types/src/capabilities/anchor-sort/anchor-sort.d.ts +3 -2
  43. package/dist/types/src/capabilities/anchor-sort/anchor-sort.d.ts.map +1 -1
  44. package/dist/types/src/capabilities/anchor-sort/index.d.ts +1 -1
  45. package/dist/types/src/capabilities/anchor-sort/index.d.ts.map +1 -1
  46. package/dist/types/src/capabilities/compute-graph-registry/compute-graph-registry.d.ts +1 -1
  47. package/dist/types/src/capabilities/markdown/markdown.d.ts +1 -1
  48. package/dist/types/src/capabilities/operation-resolver/index.d.ts +1 -1
  49. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -1
  50. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +2 -2
  51. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -1
  52. package/dist/types/src/capabilities/react-surface/index.d.ts +1 -1
  53. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -1
  54. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +2 -2
  55. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -1
  56. package/dist/types/src/components/Sheet/Sheet.d.ts +15 -0
  57. package/dist/types/src/components/Sheet/Sheet.d.ts.map +1 -0
  58. package/dist/types/src/components/Sheet/index.d.ts +2 -0
  59. package/dist/types/src/components/Sheet/index.d.ts.map +1 -0
  60. package/dist/types/src/components/SheetContent/SheetCellEditor.stories.d.ts.map +1 -0
  61. package/dist/types/src/components/SheetContent/SheetContent.d.ts +7 -0
  62. package/dist/types/src/components/SheetContent/SheetContent.d.ts.map +1 -0
  63. package/dist/types/src/components/{GridSheet/GridSheet.stories.d.ts → SheetContent/SheetContent.stories.d.ts} +5 -2
  64. package/dist/types/src/components/SheetContent/SheetContent.stories.d.ts.map +1 -0
  65. package/dist/types/src/components/SheetContent/index.d.ts +2 -0
  66. package/dist/types/src/components/SheetContent/index.d.ts.map +1 -0
  67. package/dist/types/src/components/SheetContent/util.d.ts.map +1 -0
  68. package/dist/types/src/components/{SheetContext/SheetContext.d.ts → SheetRoot/SheetRoot.d.ts} +6 -4
  69. package/dist/types/src/components/SheetRoot/SheetRoot.d.ts.map +1 -0
  70. package/dist/types/src/components/SheetRoot/index.d.ts +2 -0
  71. package/dist/types/src/components/SheetRoot/index.d.ts.map +1 -0
  72. package/dist/types/src/components/SheetStatusbar/SheetStatusbar.d.ts +7 -0
  73. package/dist/types/src/components/SheetStatusbar/SheetStatusbar.d.ts.map +1 -0
  74. package/dist/types/src/components/SheetStatusbar/index.d.ts +2 -0
  75. package/dist/types/src/components/SheetStatusbar/index.d.ts.map +1 -0
  76. package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts +6 -3
  77. package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts.map +1 -1
  78. package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts +2 -0
  79. package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts.map +1 -1
  80. package/dist/types/src/components/index.d.ts +1 -4
  81. package/dist/types/src/components/index.d.ts.map +1 -1
  82. package/dist/types/src/{components → containers}/RangeList/RangeList.d.ts.map +1 -1
  83. package/dist/types/src/containers/RangeList/index.d.ts +3 -0
  84. package/dist/types/src/containers/RangeList/index.d.ts.map +1 -0
  85. package/dist/types/src/containers/SheetContainer/SheetContainer.d.ts +12 -0
  86. package/dist/types/src/containers/SheetContainer/SheetContainer.d.ts.map +1 -0
  87. package/dist/types/src/{components → containers}/SheetContainer/SheetContainer.stories.d.ts +2 -2
  88. package/dist/types/src/containers/SheetContainer/SheetContainer.stories.d.ts.map +1 -0
  89. package/dist/types/src/{components → containers}/SheetContainer/index.d.ts.map +1 -1
  90. package/dist/types/src/containers/index.d.ts +4 -0
  91. package/dist/types/src/containers/index.d.ts.map +1 -0
  92. package/dist/types/src/extensions/compute.stories.d.ts.map +1 -1
  93. package/dist/types/src/integrations/thread-ranges.d.ts.map +1 -1
  94. package/dist/types/src/model/sheet-model.d.ts.map +1 -1
  95. package/dist/types/src/testing/testing.d.ts +1 -1
  96. package/dist/types/src/translations.d.ts +1 -0
  97. package/dist/types/src/translations.d.ts.map +1 -1
  98. package/dist/types/src/types/Sheet.d.ts +1 -1
  99. package/dist/types/src/types/Sheet.d.ts.map +1 -1
  100. package/dist/types/src/types/types.d.ts +3 -24
  101. package/dist/types/src/types/types.d.ts.map +1 -1
  102. package/dist/types/tsconfig.tsbuildinfo +1 -1
  103. package/package.json +62 -62
  104. package/src/SheetPlugin.tsx +15 -24
  105. package/src/capabilities/anchor-sort/anchor-sort.ts +3 -2
  106. package/src/capabilities/operation-resolver/operation-resolver.ts +4 -15
  107. package/src/capabilities/react-surface/react-surface.tsx +19 -13
  108. package/src/components/ComputeGraph/compute-graph.stories.tsx +2 -2
  109. package/src/components/Sheet/Sheet.tsx +20 -0
  110. package/src/components/Sheet/index.ts +5 -0
  111. package/src/components/{GridSheet → SheetContent}/SheetCellEditor.stories.tsx +5 -5
  112. package/src/components/{GridSheet/GridSheet.stories.tsx → SheetContent/SheetContent.stories.tsx} +12 -11
  113. package/src/components/{GridSheet/GridSheet.tsx → SheetContent/SheetContent.tsx} +14 -11
  114. package/src/components/{RangeList → SheetContent}/index.ts +1 -1
  115. package/src/components/{GridSheet → SheetContent}/util.ts +3 -3
  116. package/src/components/{SheetContext/SheetContext.tsx → SheetRoot/SheetRoot.tsx} +44 -36
  117. package/src/components/{GridSheet → SheetRoot}/index.ts +1 -1
  118. package/src/components/{FunctionEditor/FunctionEditor.tsx → SheetStatusbar/SheetStatusbar.tsx} +19 -8
  119. package/src/components/{FunctionEditor → SheetStatusbar}/index.ts +1 -1
  120. package/src/components/SheetToolbar/SheetToolbar.stories.tsx +4 -4
  121. package/src/components/SheetToolbar/SheetToolbar.tsx +11 -10
  122. package/src/components/SheetToolbar/align.ts +9 -9
  123. package/src/components/SheetToolbar/style.ts +7 -7
  124. package/src/components/index.ts +1 -7
  125. package/src/{components → containers}/RangeList/RangeList.tsx +10 -8
  126. package/src/containers/RangeList/index.ts +7 -0
  127. package/src/{components → containers}/SheetContainer/SheetContainer.stories.tsx +28 -33
  128. package/src/containers/SheetContainer/SheetContainer.tsx +57 -0
  129. package/src/{components → containers}/SheetContainer/index.ts +1 -1
  130. package/src/containers/index.ts +8 -0
  131. package/src/extensions/compute.stories.tsx +12 -11
  132. package/src/extensions/editor/sheet-extension.ts +10 -10
  133. package/src/integrations/thread-ranges.ts +6 -9
  134. package/src/meta.ts +1 -1
  135. package/src/model/sheet-model.ts +36 -34
  136. package/src/playwright/playwright.config.ts +1 -1
  137. package/src/playwright/sheet.spec.ts +1 -1
  138. package/src/translations.ts +1 -0
  139. package/src/types/Sheet.ts +8 -2
  140. package/src/types/capabilities.ts +1 -1
  141. package/src/types/sheet-range-types.ts +3 -3
  142. package/src/types/types.ts +4 -20
  143. package/dist/lib/browser/SheetContainer-J72HS2FI.mjs +0 -397
  144. package/dist/lib/browser/SheetContainer-J72HS2FI.mjs.map +0 -7
  145. package/dist/lib/browser/anchor-sort-LLO7PZKF.mjs.map +0 -7
  146. package/dist/lib/browser/chunk-KE3AKN5W.mjs.map +0 -7
  147. package/dist/lib/browser/chunk-S27QJYTN.mjs.map +0 -7
  148. package/dist/lib/browser/operation-resolver-YDOW72CN.mjs.map +0 -7
  149. package/dist/lib/browser/react-surface-JIYVFH42.mjs +0 -51
  150. package/dist/lib/browser/react-surface-JIYVFH42.mjs.map +0 -7
  151. package/dist/lib/node-esm/SheetContainer-OGSSDOZU.mjs +0 -398
  152. package/dist/lib/node-esm/SheetContainer-OGSSDOZU.mjs.map +0 -7
  153. package/dist/lib/node-esm/anchor-sort-OX5I2YOW.mjs.map +0 -7
  154. package/dist/lib/node-esm/chunk-6J5L47IB.mjs.map +0 -7
  155. package/dist/lib/node-esm/chunk-Y4V6HVHO.mjs.map +0 -7
  156. package/dist/lib/node-esm/operation-resolver-Q63VQBVA.mjs.map +0 -7
  157. package/dist/lib/node-esm/react-surface-SWRZSZVR.mjs.map +0 -7
  158. package/dist/types/src/components/FunctionEditor/FunctionEditor.d.ts +0 -3
  159. package/dist/types/src/components/FunctionEditor/FunctionEditor.d.ts.map +0 -1
  160. package/dist/types/src/components/FunctionEditor/index.d.ts +0 -2
  161. package/dist/types/src/components/FunctionEditor/index.d.ts.map +0 -1
  162. package/dist/types/src/components/GridSheet/GridSheet.d.ts +0 -3
  163. package/dist/types/src/components/GridSheet/GridSheet.d.ts.map +0 -1
  164. package/dist/types/src/components/GridSheet/GridSheet.stories.d.ts.map +0 -1
  165. package/dist/types/src/components/GridSheet/SheetCellEditor.stories.d.ts.map +0 -1
  166. package/dist/types/src/components/GridSheet/index.d.ts +0 -2
  167. package/dist/types/src/components/GridSheet/index.d.ts.map +0 -1
  168. package/dist/types/src/components/GridSheet/util.d.ts.map +0 -1
  169. package/dist/types/src/components/RangeList/index.d.ts +0 -2
  170. package/dist/types/src/components/RangeList/index.d.ts.map +0 -1
  171. package/dist/types/src/components/SheetContainer/SheetContainer.d.ts +0 -10
  172. package/dist/types/src/components/SheetContainer/SheetContainer.d.ts.map +0 -1
  173. package/dist/types/src/components/SheetContainer/SheetContainer.stories.d.ts.map +0 -1
  174. package/dist/types/src/components/SheetContext/SheetContext.d.ts.map +0 -1
  175. package/dist/types/src/components/SheetContext/index.d.ts +0 -2
  176. package/dist/types/src/components/SheetContext/index.d.ts.map +0 -1
  177. package/src/components/SheetContainer/SheetContainer.tsx +0 -48
  178. package/src/components/SheetContext/index.ts +0 -5
  179. /package/dist/lib/browser/{compute-graph-registry-RC5L7RE4.mjs.map → compute-graph-registry-HVVALVIE.mjs.map} +0 -0
  180. /package/dist/lib/browser/{markdown-D2T2DOVX.mjs.map → markdown-I2REDYX5.mjs.map} +0 -0
  181. /package/dist/lib/node-esm/{compute-graph-registry-ZGXVLVGD.mjs.map → compute-graph-registry-IDU2KKQU.mjs.map} +0 -0
  182. /package/dist/lib/node-esm/{markdown-PTV72DLO.mjs.map → markdown-6KBH3MBO.mjs.map} +0 -0
  183. /package/dist/types/src/components/{GridSheet → SheetContent}/SheetCellEditor.stories.d.ts +0 -0
  184. /package/dist/types/src/components/{GridSheet → SheetContent}/util.d.ts +0 -0
  185. /package/dist/types/src/{components → containers}/RangeList/RangeList.d.ts +0 -0
  186. /package/dist/types/src/{components → containers}/SheetContainer/index.d.ts +0 -0
@@ -11,7 +11,7 @@ import { Capability } from "@dxos/app-framework";
11
11
  // src/meta.ts
12
12
  import { trim } from "@dxos/util";
13
13
  var meta = {
14
- id: "dxos.org/plugin/sheet",
14
+ id: "org.dxos.plugin.sheet",
15
15
  name: "Sheet",
16
16
  description: trim`
17
17
  Full-featured spreadsheet application with over 400 built-in formulas for calculations and data analysis.
@@ -27,7 +27,7 @@ var meta = {
27
27
 
28
28
  // src/types/capabilities.ts
29
29
  (function(SheetCapabilities2) {
30
- SheetCapabilities2.ComputeGraphRegistry = Capability.make(`${meta.id}/capability/compute-graph-registry`);
30
+ SheetCapabilities2.ComputeGraphRegistry = Capability.make(`${meta.id}.capability.compute-graph-registry`);
31
31
  })(SheetCapabilities || (SheetCapabilities = {}));
32
32
  var SheetCapabilities;
33
33
 
@@ -42,7 +42,7 @@ __export(Sheet_exports, {
42
42
  });
43
43
  import * as Schema from "effect/Schema";
44
44
  import { addressFromA1Notation as addressFromA1Notation2, isFormula as isFormula2 } from "@dxos/compute";
45
- import { Obj, Type } from "@dxos/echo";
45
+ import { Annotation, Obj, Type } from "@dxos/echo";
46
46
  import { FormInputAnnotation } from "@dxos/echo/internal";
47
47
 
48
48
  // src/types/util.ts
@@ -188,8 +188,11 @@ var Sheet = Schema.Struct({
188
188
  // Cell formatting referenced by indexed range.
189
189
  ranges: Schema.Array(Range).pipe(FormInputAnnotation.set(false))
190
190
  }).pipe(Type.object({
191
- typename: "dxos.org/type/Sheet",
191
+ typename: "org.dxos.type.sheet",
192
192
  version: "0.1.0"
193
+ }), Annotation.IconAnnotation.set({
194
+ icon: "ph--grid-nine--regular",
195
+ hue: "indigo"
193
196
  }));
194
197
  var make = ({ name, cells = {}, ...size } = {}) => {
195
198
  const sheet = Obj.make(Sheet, {
@@ -236,13 +239,13 @@ var cellClassNameForRange = ({ key, value }) => {
236
239
  return void 0;
237
240
  }
238
241
  case commentKey:
239
- return "bg-gridComment";
242
+ return "bg-grid-comment";
240
243
  case styleKey:
241
244
  switch (value) {
242
245
  case "highlight":
243
- return "!bg-gridHighlight";
246
+ return "bg-grid-highlight!";
244
247
  case "softwrap":
245
- return "!whitespace-normal";
248
+ return "whitespace-normal!";
246
249
  default:
247
250
  return void 0;
248
251
  }
@@ -253,10 +256,7 @@ var cellClassNameForRange = ({ key, value }) => {
253
256
 
254
257
  // src/types/types.ts
255
258
  import * as Schema2 from "effect/Schema";
256
- import { Capability as Capability2 } from "@dxos/app-framework";
257
259
  import { Operation } from "@dxos/operation";
258
- import { SpaceSchema } from "@dxos/react-client/echo";
259
- import { Collection } from "@dxos/schema";
260
260
  var ActionAxis = Schema2.Union(Schema2.Literal("row"), Schema2.Literal("col"));
261
261
  (function(SheetAction2) {
262
262
  SheetAction2.RestoreAxis = Schema2.Struct({
@@ -267,29 +267,12 @@ var ActionAxis = Schema2.Union(Schema2.Literal("row"), Schema2.Literal("col"));
267
267
  values: Schema2.Array(Schema2.Any)
268
268
  });
269
269
  })(SheetAction || (SheetAction = {}));
270
- var SHEET_OPERATION = `${meta.id}/operation`;
270
+ var SHEET_OPERATION = `${meta.id}.operation`;
271
271
  var Axis = Schema2.Union(Schema2.Literal("row"), Schema2.Literal("col"));
272
272
  (function(SheetOperation2) {
273
- SheetOperation2.OnCreateSpace = Operation.make({
274
- meta: {
275
- key: `${SHEET_OPERATION}/on-create-space`,
276
- name: "On Create Space"
277
- },
278
- services: [
279
- Capability2.Service
280
- ],
281
- schema: {
282
- input: Schema2.Struct({
283
- space: SpaceSchema,
284
- rootCollection: Collection.Collection,
285
- isDefault: Schema2.optional(Schema2.Boolean)
286
- }),
287
- output: Schema2.Void
288
- }
289
- });
290
273
  SheetOperation2.InsertAxis = Operation.make({
291
274
  meta: {
292
- key: `${SHEET_OPERATION}/axis-insert`,
275
+ key: `${SHEET_OPERATION}.axis-insert`,
293
276
  name: "Insert Axis"
294
277
  },
295
278
  schema: {
@@ -321,7 +304,7 @@ var Axis = Schema2.Union(Schema2.Literal("row"), Schema2.Literal("col"));
321
304
  });
322
305
  SheetOperation2.DropAxis = Operation.make({
323
306
  meta: {
324
- key: `${SHEET_OPERATION}/axis-drop`,
307
+ key: `${SHEET_OPERATION}.axis-drop`,
325
308
  name: "Drop Axis"
326
309
  },
327
310
  schema: {
@@ -335,7 +318,7 @@ var Axis = Schema2.Union(Schema2.Literal("row"), Schema2.Literal("col"));
335
318
  });
336
319
  SheetOperation2.RestoreAxis = Operation.make({
337
320
  meta: {
338
- key: `${SHEET_OPERATION}/restore-axis`,
321
+ key: `${SHEET_OPERATION}.restore-axis`,
339
322
  name: "Restore Axis"
340
323
  },
341
324
  schema: {
@@ -395,4 +378,4 @@ export {
395
378
  SheetAction,
396
379
  SheetOperation
397
380
  };
398
- //# sourceMappingURL=chunk-6J5L47IB.mjs.map
381
+ //# sourceMappingURL=chunk-VGXC77GH.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/types/capabilities.ts", "../../../src/meta.ts", "../../../src/types/Sheet.ts", "../../../src/types/util.ts", "../../../src/types/sheet-range-types.ts", "../../../src/types/types.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\nimport { type ComputeGraphRegistry } from '@dxos/compute';\n\nimport { meta } from '../meta';\n\nexport namespace SheetCapabilities {\n export const ComputeGraphRegistry = Capability.make<ComputeGraphRegistry>(\n `${meta.id}.capability.compute-graph-registry`,\n );\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { trim } from '@dxos/util';\n\nexport const meta: Plugin.Meta = {\n id: 'org.dxos.plugin.sheet',\n name: 'Sheet',\n description: trim`\n Full-featured spreadsheet application with over 400 built-in formulas for calculations and data analysis.\n Create custom JavaScript functions and integrate with AI agents for advanced automation.\n `,\n icon: 'ph--grid-nine--regular',\n iconHue: 'indigo',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-sheet',\n screenshots: ['https://dxos.network/plugin-details-sheet-dark.png'],\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\n// @import-as-namespace\n\nimport * as Schema from 'effect/Schema';\n\nimport { addressFromA1Notation, isFormula } from '@dxos/compute';\nimport { Annotation, Obj, Type } from '@dxos/echo';\nimport { FormInputAnnotation } from '@dxos/echo/internal';\n\nimport { addressToIndex, initialize, mapFormulaRefsToIndices } from './util';\n\nexport type SheetSize = {\n rows: number;\n columns: number;\n};\n\nexport const CellValue = Schema.Struct({\n // TODO(burdon): How to store dates (datetime, date, time), percentages, etc.\n // Consider import/export; natural access for other plugins. Special handling for currency (precision).\n // TODO(burdon): Automerge (long string) or short string or number.\n value: Schema.Any,\n});\n\nexport type CellValue = Schema.Schema.Type<typeof CellValue>;\n\n// TODO(burdon): IMPORTANT: Reconcile with Field definition.\nexport const Range = Schema.Struct({\n range: Schema.String,\n key: Schema.String,\n value: Schema.String,\n});\n\nexport type Range = Schema.Schema.Type<typeof Range>;\n\n// TODO(burdon): Visibility, locked, frozen, etc.\nexport const RowColumnMeta = Schema.Struct({\n size: Schema.optional(Schema.Number),\n});\n\n// TODO(burdon): Reconcile col/column (across packages).\n// TODO(burdon): Index to all updates when rows/columns are inserted/deleted.\nexport const Sheet = Schema.Struct({\n name: Schema.optional(Schema.String),\n\n // Sparse map of cells referenced by index.\n cells: Schema.Record({ key: Schema.String, value: CellValue }).pipe(FormInputAnnotation.set(false)),\n\n // Ordered row indices.\n rows: Schema.Array(Schema.String).pipe(FormInputAnnotation.set(false)),\n\n // Ordered column indices.\n columns: Schema.Array(Schema.String).pipe(FormInputAnnotation.set(false)),\n\n // Row metadata referenced by index.\n rowMeta: Schema.Record({ key: Schema.String, value: RowColumnMeta }).pipe(FormInputAnnotation.set(false)),\n\n // Column metadata referenced by index.\n columnMeta: Schema.Record({ key: Schema.String, value: RowColumnMeta }).pipe(FormInputAnnotation.set(false)),\n\n // Cell formatting referenced by indexed range.\n ranges: Schema.Array(Range).pipe(FormInputAnnotation.set(false)),\n}).pipe(\n Type.object({\n typename: 'org.dxos.type.sheet',\n version: '0.1.0',\n }),\n Annotation.IconAnnotation.set({\n icon: 'ph--grid-nine--regular',\n hue: 'indigo',\n }),\n);\n\nexport interface Sheet extends Schema.Schema.Type<typeof Sheet> {}\n\nexport type SheetProps = {\n name?: string;\n cells?: Record<string, CellValue>;\n} & Partial<SheetSize>;\n\nexport const make = ({ name, cells = {}, ...size }: SheetProps = {}) => {\n const sheet = Obj.make(Sheet, { name, cells: {}, rows: [], columns: [], rowMeta: {}, columnMeta: {}, ranges: [] });\n\n // Initialize and set cells within Obj.change to satisfy change context requirements.\n Obj.change(sheet, (s) => {\n initialize(s, size);\n\n if (cells) {\n Object.entries(cells).forEach(([key, { value }]) => {\n const idx = addressToIndex(s, addressFromA1Notation(key));\n if (isFormula(value)) {\n value = mapFormulaRefsToIndices(s, value);\n }\n\n s.cells[idx] = { value };\n });\n }\n });\n\n return sheet;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport {\n type CellAddress,\n type CellRange,\n type CompleteCellRange,\n addressFromA1Notation,\n addressToA1Notation,\n isFormula,\n} from '@dxos/compute';\nimport { randomBytes } from '@dxos/crypto';\nimport { type Obj } from '@dxos/echo';\nimport { invariant } from '@dxos/invariant';\n\nimport { type Sheet } from '../types';\n\nexport const MAX_ROWS = 500;\nexport const MAX_COLS = 676; // 26^2;\n\nexport const DEFAULT_ROWS = 50;\nexport const DEFAULT_COLS = 26;\n\n// TODO(burdon): Factor out from dxos/protocols to new common package.\nexport class ApiError extends Error {}\n\nexport class ReadonlyException extends ApiError {}\n\nexport class RangeException extends ApiError {\n constructor(n: number) {\n super();\n }\n}\n\n/**\n * With a string length of 8, the chance of a collision is 0.02% for a sheet with 10,000 strings.\n */\nexport const createIndex = (length = 8): string => {\n const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n const charactersLength = characters.length;\n const randomBuffer = randomBytes(length);\n return Array.from(randomBuffer, (byte) => characters[byte % charactersLength]).join('');\n};\n\nexport const createIndices = (length: number): string[] => Array.from({ length }).map(() => createIndex());\n\nexport const insertIndices = (indices: string[], i: number, n: number, max: number) => {\n if (i + n > max) {\n throw new RangeException(i + n);\n }\n\n const idx = createIndices(n);\n indices.splice(i, 0, ...idx);\n return idx;\n};\n\nexport const initialize = (\n sheet: Obj.Mutable<Sheet.Sheet>,\n { rows = DEFAULT_ROWS, columns = DEFAULT_COLS }: Partial<Sheet.SheetSize> = {},\n) => {\n if (!sheet.rows.length) {\n insertIndices(sheet.rows, 0, rows, MAX_ROWS);\n }\n if (!sheet.columns.length) {\n insertIndices(sheet.columns, 0, columns, MAX_COLS);\n }\n};\n\n/**\n * E.g., \"A1\" => \"CA2@CB3\".\n */\nexport const addressToIndex = (sheet: Sheet.Sheet, cell: CellAddress): string => {\n return `${sheet.columns[cell.col]}@${sheet.rows[cell.row]}`;\n};\n\n/**\n * E.g., \"CA2@CB3\" => \"A1\".\n */\nexport const addressFromIndex = (sheet: Sheet.Sheet, idx: string): CellAddress => {\n const [column, row] = idx.split('@');\n return {\n col: sheet.columns.indexOf(column),\n row: sheet.rows.indexOf(row),\n };\n};\n\n/**\n * E.g., \"A1:B2\" => \"CA2@CB3:CC4@CD5\".\n */\nexport const rangeToIndex = (sheet: Sheet.Sheet, range: CellRange): string => {\n return [range.from, range.to ?? range.from].map((cell) => addressToIndex(sheet, cell)).join(':');\n};\n\n/**\n * E.g., \"CA2@CB3:CC4@CD5\" => \"A1:B2\".\n */\nexport const rangeFromIndex = (sheet: Sheet.Sheet, idx: string): CompleteCellRange => {\n const [from, to] = idx.split(':').map((index) => addressFromIndex(sheet, index));\n return { from, to };\n};\n\n/**\n * Compares the positions of two cell indexes in a sheet.\n * Sorts primarily by row, then by column if rows are equal.\n */\nexport const compareIndexPositions = (sheet: Sheet.Sheet, indexA: string, indexB: string): number => {\n const { row: rowA, col: columnA } = addressFromIndex(sheet, indexA);\n const { row: rowB, col: columnB } = addressFromIndex(sheet, indexB);\n\n // Sort by row first, then by column.\n if (rowA !== rowB) {\n return rowA - rowB;\n } else {\n return columnA - columnB;\n }\n};\n\n// TODO(burdon): Tests.\n\n/**\n * Map from A1 notation to indices.\n */\nexport const mapFormulaRefsToIndices = (sheet: Sheet.Sheet, formula: string): string => {\n invariant(isFormula(formula));\n return formula.replace(/([a-zA-Z]+)([0-9]+)/g, (match) => {\n return addressToIndex(sheet, addressFromA1Notation(match));\n });\n};\n\n/**\n * Map from indices to A1 notation.\n */\nexport const mapFormulaIndicesToRefs = (sheet: Sheet.Sheet, formula: string): string => {\n invariant(isFormula(formula));\n return formula.replace(/([a-zA-Z0-9]+)@([a-zA-Z0-9]+)/g, (idx) => {\n return addressToA1Notation(addressFromIndex(sheet, idx));\n });\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { type ClassNameValue } from '@dxos/react-ui';\n\nimport { type Sheet } from '../types';\n\nexport const alignKey = 'alignment';\nexport type AlignKey = typeof alignKey;\nexport type AlignValue = 'start' | 'center' | 'end';\n\nexport const commentKey = 'comment';\nexport type CommentKey = typeof commentKey;\nexport type CommentValue = string;\n\nexport const styleKey = 'style';\nexport type StyleKey = typeof styleKey;\nexport type StyleValue = 'highlight' | 'softwrap';\n\n// TODO(burdon): Reconcile with plugin-table.\nexport const cellClassNameForRange = ({ key, value }: Sheet.Sheet['ranges'][number]): ClassNameValue => {\n switch (key) {\n case alignKey:\n switch (value) {\n case 'start':\n return 'text-start';\n case 'center':\n return 'text-center';\n case 'end':\n return 'text-end';\n default:\n return undefined;\n }\n\n case commentKey:\n return 'bg-grid-comment';\n\n case styleKey:\n switch (value) {\n case 'highlight':\n return 'bg-grid-highlight!';\n case 'softwrap':\n return 'whitespace-normal!';\n default:\n return undefined;\n }\n\n default:\n return undefined;\n }\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Operation } from '@dxos/operation';\n\nimport { meta } from '../meta';\n\nimport * as Sheet from './Sheet';\n\n// TODO(wittjosiah): Factor out. This is `DxGridAxis` from `@dxos/react-ui-grid`.\nconst ActionAxis = Schema.Union(Schema.Literal('row'), Schema.Literal('col'));\n\nexport namespace SheetAction {\n export const RestoreAxis = Schema.Struct({\n axis: ActionAxis,\n axisIndex: Schema.String,\n index: Schema.Number,\n axisMeta: Sheet.RowColumnMeta,\n values: Schema.Array(Schema.Any),\n });\n\n export type RestoreAxis = Schema.Schema.Type<typeof RestoreAxis>;\n}\n\nconst SHEET_OPERATION = `${meta.id}.operation`;\n\n// TODO(wittjosiah): Factor out. This is `DxGridAxis` from `@dxos/react-ui-grid`.\nconst Axis = Schema.Union(Schema.Literal('row'), Schema.Literal('col'));\n\nexport namespace SheetOperation {\n export const InsertAxis = Operation.make({\n meta: { key: `${SHEET_OPERATION}.axis-insert`, name: 'Insert Axis' },\n schema: {\n input: Schema.Struct({\n model: Schema.Any,\n axis: Axis,\n index: Schema.Number,\n count: Schema.optional(Schema.Number),\n }),\n output: Schema.Void,\n },\n });\n\n export const DropAxisOutput = Schema.Struct({\n axis: Axis.annotations({ description: 'The axis type (row or col).' }),\n axisIndex: Schema.String.annotations({ description: 'The dropped axis index.' }),\n index: Schema.Number.annotations({ description: 'The position the axis was at.' }),\n axisMeta: Schema.Any.annotations({ description: 'The row/column metadata.' }),\n values: Schema.Array(Schema.Any).annotations({ description: 'The cell values that were dropped.' }),\n });\n\n export type DropAxisOutput = Schema.Schema.Type<typeof DropAxisOutput>;\n\n export const DropAxis = Operation.make({\n meta: { key: `${SHEET_OPERATION}.axis-drop`, name: 'Drop Axis' },\n schema: {\n input: Schema.Struct({\n model: Schema.Any,\n axis: Axis,\n axisIndex: Schema.String,\n }),\n output: DropAxisOutput,\n },\n });\n\n /**\n * Restore a dropped axis (inverse of DropAxis).\n */\n export const RestoreAxis = Operation.make({\n meta: { key: `${SHEET_OPERATION}.restore-axis`, name: 'Restore Axis' },\n schema: {\n input: Schema.Struct({\n model: Schema.Any.annotations({ description: 'The sheet model.' }),\n axis: Axis.annotations({ description: 'The axis type (row or col).' }),\n axisIndex: Schema.String.annotations({ description: 'The axis index to restore.' }),\n index: Schema.Number.annotations({ description: 'The position to restore at.' }),\n axisMeta: Schema.Any.annotations({ description: 'The row/column metadata.' }),\n values: Schema.Array(Schema.Any).annotations({ description: 'The cell values to restore.' }),\n }),\n output: Schema.Void,\n },\n });\n}\n"],
5
+ "mappings": ";;;;;;;;AAIA,SAASA,kBAAkB;;;ACC3B,SAASC,YAAY;AAEd,IAAMC,OAAoB;EAC/BC,IAAI;EACJC,MAAM;EACNC,aAAaC;;;;EAIbC,MAAM;EACNC,SAAS;EACTC,QAAQ;EACRC,aAAa;IAAC;;AAChB;;;UDTiBC,oBAAAA;qBACFC,uBAAuBC,WAAWC,KAC7C,GAAGC,KAAKC,EAAE,oCAAoC;AAElD,GAJiBL,sBAAAA,oBAAAA,CAAAA,EAAAA;;;;AETjB;;;;;;;;AAMA,YAAYM,YAAY;AAExB,SAASC,yBAAAA,wBAAuBC,aAAAA,kBAAiB;AACjD,SAASC,YAAYC,KAAKC,YAAY;AACtC,SAASC,2BAA2B;;;ACNpC,SAIEC,uBACAC,qBACAC,iBACK;AACP,SAASC,mBAAmB;AAE5B,SAASC,iBAAiB;;AAInB,IAAMC,WAAW;AACjB,IAAMC,WAAW;AAEjB,IAAMC,eAAe;AACrB,IAAMC,eAAe;AAGrB,IAAMC,WAAN,cAAuBC,MAAAA;AAAO;AAE9B,IAAMC,oBAAN,cAAgCF,SAAAA;AAAU;AAE1C,IAAMG,iBAAN,cAA6BH,SAAAA;EAClC,YAAYI,GAAW;AACrB,UAAK;EACP;AACF;AAKO,IAAMC,cAAc,CAACC,SAAS,MAAC;AACpC,QAAMC,aAAa;AACnB,QAAMC,mBAAmBD,WAAWD;AACpC,QAAMG,eAAef,YAAYY,MAAAA;AACjC,SAAOI,MAAMC,KAAKF,cAAc,CAACG,SAASL,WAAWK,OAAOJ,gBAAAA,CAAiB,EAAEK,KAAK,EAAA;AACtF;AAEO,IAAMC,gBAAgB,CAACR,WAA6BI,MAAMC,KAAK;EAAEL;AAAO,CAAA,EAAGS,IAAI,MAAMV,YAAAA,CAAAA;AAErF,IAAMW,gBAAgB,CAACC,SAAmBC,GAAWd,GAAWe,QAAAA;AACrE,MAAID,IAAId,IAAIe,KAAK;AACf,UAAM,IAAIhB,eAAee,IAAId,CAAAA;EAC/B;AAEA,QAAMgB,MAAMN,cAAcV,CAAAA;AAC1Ba,UAAQI,OAAOH,GAAG,GAAA,GAAME,GAAAA;AACxB,SAAOA;AACT;AAEO,IAAME,aAAa,CACxBC,OACA,EAAEC,OAAO1B,cAAc2B,UAAU1B,aAAY,IAA+B,CAAC,MAAC;AAE9E,MAAI,CAACwB,MAAMC,KAAKlB,QAAQ;AACtBU,kBAAcO,MAAMC,MAAM,GAAGA,MAAM5B,QAAAA;EACrC;AACA,MAAI,CAAC2B,MAAME,QAAQnB,QAAQ;AACzBU,kBAAcO,MAAME,SAAS,GAAGA,SAAS5B,QAAAA;EAC3C;AACF;AAKO,IAAM6B,iBAAiB,CAACH,OAAoBI,SAAAA;AACjD,SAAO,GAAGJ,MAAME,QAAQE,KAAKC,GAAG,CAAC,IAAIL,MAAMC,KAAKG,KAAKE,GAAG,CAAC;AAC3D;AAKO,IAAMC,mBAAmB,CAACP,OAAoBH,QAAAA;AACnD,QAAM,CAACW,QAAQF,GAAAA,IAAOT,IAAIY,MAAM,GAAA;AAChC,SAAO;IACLJ,KAAKL,MAAME,QAAQQ,QAAQF,MAAAA;IAC3BF,KAAKN,MAAMC,KAAKS,QAAQJ,GAAAA;EAC1B;AACF;AAKO,IAAMK,eAAe,CAACX,OAAoBY,UAAAA;AAC/C,SAAO;IAACA,MAAMxB;IAAMwB,MAAMC,MAAMD,MAAMxB;IAAMI,IAAI,CAACY,SAASD,eAAeH,OAAOI,IAAAA,CAAAA,EAAOd,KAAK,GAAA;AAC9F;AAKO,IAAMwB,iBAAiB,CAACd,OAAoBH,QAAAA;AACjD,QAAM,CAACT,MAAMyB,EAAAA,IAAMhB,IAAIY,MAAM,GAAA,EAAKjB,IAAI,CAACuB,UAAUR,iBAAiBP,OAAOe,KAAAA,CAAAA;AACzE,SAAO;IAAE3B;IAAMyB;EAAG;AACpB;AAMO,IAAMG,wBAAwB,CAAChB,OAAoBiB,QAAgBC,WAAAA;AACxE,QAAM,EAAEZ,KAAKa,MAAMd,KAAKe,QAAO,IAAKb,iBAAiBP,OAAOiB,MAAAA;AAC5D,QAAM,EAAEX,KAAKe,MAAMhB,KAAKiB,QAAO,IAAKf,iBAAiBP,OAAOkB,MAAAA;AAG5D,MAAIC,SAASE,MAAM;AACjB,WAAOF,OAAOE;EAChB,OAAO;AACL,WAAOD,UAAUE;EACnB;AACF;AAOO,IAAMC,0BAA0B,CAACvB,OAAoBwB,YAAAA;AAC1DpD,YAAUF,UAAUsD,OAAAA,GAAAA,QAAAA;;;;;;;;;AACpB,SAAOA,QAAQC,QAAQ,wBAAwB,CAACC,UAAAA;AAC9C,WAAOvB,eAAeH,OAAOhC,sBAAsB0D,KAAAA,CAAAA;EACrD,CAAA;AACF;AAKO,IAAMC,0BAA0B,CAAC3B,OAAoBwB,YAAAA;AAC1DpD,YAAUF,UAAUsD,OAAAA,GAAAA,QAAAA;;;;;;;;;AACpB,SAAOA,QAAQC,QAAQ,kCAAkC,CAAC5B,QAAAA;AACxD,WAAO5B,oBAAoBsC,iBAAiBP,OAAOH,GAAAA,CAAAA;EACrD,CAAA;AACF;;;ADvHO,IAAM+B,YAAmBC,cAAO;;;;EAIrCC,OAAcC;AAChB,CAAA;AAKO,IAAMC,QAAeH,cAAO;EACjCI,OAAcC;EACdC,KAAYD;EACZJ,OAAcI;AAChB,CAAA;AAKO,IAAME,gBAAuBP,cAAO;EACzCQ,MAAaC,gBAAgBC,aAAM;AACrC,CAAA;AAIO,IAAMC,QAAeX,cAAO;EACjCY,MAAaH,gBAAgBJ,aAAM;;EAGnCQ,OAAcC,cAAO;IAAER,KAAYD;IAAQJ,OAAOF;EAAU,CAAA,EAAGgB,KAAKC,oBAAoBC,IAAI,KAAA,CAAA;;EAG5FC,MAAaC,aAAad,aAAM,EAAEU,KAAKC,oBAAoBC,IAAI,KAAA,CAAA;;EAG/DG,SAAgBD,aAAad,aAAM,EAAEU,KAAKC,oBAAoBC,IAAI,KAAA,CAAA;;EAGlEI,SAAgBP,cAAO;IAAER,KAAYD;IAAQJ,OAAOM;EAAc,CAAA,EAAGQ,KAAKC,oBAAoBC,IAAI,KAAA,CAAA;;EAGlGK,YAAmBR,cAAO;IAAER,KAAYD;IAAQJ,OAAOM;EAAc,CAAA,EAAGQ,KAAKC,oBAAoBC,IAAI,KAAA,CAAA;;EAGrGM,QAAeJ,aAAMhB,KAAAA,EAAOY,KAAKC,oBAAoBC,IAAI,KAAA,CAAA;AAC3D,CAAA,EAAGF,KACDS,KAAKC,OAAO;EACVC,UAAU;EACVC,SAAS;AACX,CAAA,GACAC,WAAWC,eAAeZ,IAAI;EAC5Ba,MAAM;EACNC,KAAK;AACP,CAAA,CAAA;AAUK,IAAMC,OAAO,CAAC,EAAEpB,MAAMC,QAAQ,CAAC,GAAG,GAAGL,KAAAA,IAAqB,CAAC,MAAC;AACjE,QAAMyB,QAAQC,IAAIF,KAAKrB,OAAO;IAAEC;IAAMC,OAAO,CAAC;IAAGK,MAAM,CAAA;IAAIE,SAAS,CAAA;IAAIC,SAAS,CAAC;IAAGC,YAAY,CAAC;IAAGC,QAAQ,CAAA;EAAG,CAAA;AAGhHW,MAAIC,OAAOF,OAAO,CAACG,MAAAA;AACjBC,eAAWD,GAAG5B,IAAAA;AAEd,QAAIK,OAAO;AACTyB,aAAOC,QAAQ1B,KAAAA,EAAO2B,QAAQ,CAAC,CAAClC,KAAK,EAAEL,MAAK,CAAE,MAAC;AAC7C,cAAMwC,MAAMC,eAAeN,GAAGO,uBAAsBrC,GAAAA,CAAAA;AACpD,YAAIsC,WAAU3C,KAAAA,GAAQ;AACpBA,kBAAQ4C,wBAAwBT,GAAGnC,KAAAA;QACrC;AAEAmC,UAAEvB,MAAM4B,GAAAA,IAAO;UAAExC;QAAM;MACzB,CAAA;IACF;EACF,CAAA;AAEA,SAAOgC;AACT;;;AE9FO,IAAMa,WAAW;AAIjB,IAAMC,aAAa;AAInB,IAAMC,WAAW;AAKjB,IAAMC,wBAAwB,CAAC,EAAEC,KAAKC,MAAK,MAAiC;AACjF,UAAQD,KAAAA;IACN,KAAKJ;AACH,cAAQK,OAAAA;QACN,KAAK;AACH,iBAAO;QACT,KAAK;AACH,iBAAO;QACT,KAAK;AACH,iBAAO;QACT;AACE,iBAAOC;MACX;IAEF,KAAKL;AACH,aAAO;IAET,KAAKC;AACH,cAAQG,OAAAA;QACN,KAAK;AACH,iBAAO;QACT,KAAK;AACH,iBAAO;QACT;AACE,iBAAOC;MACX;IAEF;AACE,aAAOA;EACX;AACF;;;AC/CA,YAAYC,aAAY;AAExB,SAASC,iBAAiB;AAO1B,IAAMC,aAAoBC,cAAaC,gBAAQ,KAAA,GAAeA,gBAAQ,KAAA,CAAA;UAErDC,cAAAA;eACFC,cAAqBC,eAAO;IACvCC,MAAMN;IACNO,WAAkBC;IAClBC,OAAcC;IACdC,UAAgBC;IAChBC,QAAeC,cAAaC,WAAG;EACjC,CAAA;AAGF,GAViBZ,gBAAAA,cAAAA,CAAAA,EAAAA;AAYjB,IAAMa,kBAAkB,GAAGC,KAAKC,EAAE;AAGlC,IAAMC,OAAclB,cAAaC,gBAAQ,KAAA,GAAeA,gBAAQ,KAAA,CAAA;UAE/CkB,iBAAAA;kBACFC,aAAaC,UAAUC,KAAK;IACvCN,MAAM;MAAEO,KAAK,GAAGR,eAAAA;MAA+BS,MAAM;IAAc;IACnEC,QAAQ;MACNC,OAActB,eAAO;QACnBuB,OAAcb;QACdT,MAAMa;QACNV,OAAcC;QACdmB,OAAcC,iBAAgBpB,cAAM;MACtC,CAAA;MACAqB,QAAeC;IACjB;EACF,CAAA;kBAEaC,iBAAwB5B,eAAO;IAC1CC,MAAMa,KAAKe,YAAY;MAAEC,aAAa;IAA8B,CAAA;IACpE5B,WAAkBC,eAAO0B,YAAY;MAAEC,aAAa;IAA0B,CAAA;IAC9E1B,OAAcC,eAAOwB,YAAY;MAAEC,aAAa;IAAgC,CAAA;IAChFxB,UAAiBI,YAAImB,YAAY;MAAEC,aAAa;IAA2B,CAAA;IAC3EtB,QAAeC,cAAaC,WAAG,EAAEmB,YAAY;MAAEC,aAAa;IAAqC,CAAA;EACnG,CAAA;kBAIaC,WAAWd,UAAUC,KAAK;IACrCN,MAAM;MAAEO,KAAK,GAAGR,eAAAA;MAA6BS,MAAM;IAAY;IAC/DC,QAAQ;MACNC,OAActB,eAAO;QACnBuB,OAAcb;QACdT,MAAMa;QACNZ,WAAkBC;MACpB,CAAA;MACAuB,QAAMX,gBAAEa;IACV;EACF,CAAA;kBAKa7B,cAAckB,UAAUC,KAAK;IACxCN,MAAM;MAAEO,KAAK,GAAGR,eAAAA;MAAgCS,MAAM;IAAe;IACrEC,QAAQ;MACNC,OAActB,eAAO;QACnBuB,OAAcb,YAAImB,YAAY;UAAEC,aAAa;QAAmB,CAAA;QAChE7B,MAAMa,KAAKe,YAAY;UAAEC,aAAa;QAA8B,CAAA;QACpE5B,WAAkBC,eAAO0B,YAAY;UAAEC,aAAa;QAA6B,CAAA;QACjF1B,OAAcC,eAAOwB,YAAY;UAAEC,aAAa;QAA8B,CAAA;QAC9ExB,UAAiBI,YAAImB,YAAY;UAAEC,aAAa;QAA2B,CAAA;QAC3EtB,QAAeC,cAAaC,WAAG,EAAEmB,YAAY;UAAEC,aAAa;QAA8B,CAAA;MAC5F,CAAA;MACAJ,QAAeC;IACjB;EACF,CAAA;AACF,GArDiBZ,mBAAAA,iBAAAA,CAAAA,EAAAA;;;",
6
+ "names": ["Capability", "trim", "meta", "id", "name", "description", "trim", "icon", "iconHue", "source", "screenshots", "SheetCapabilities", "ComputeGraphRegistry", "Capability", "make", "meta", "id", "Schema", "addressFromA1Notation", "isFormula", "Annotation", "Obj", "Type", "FormInputAnnotation", "addressFromA1Notation", "addressToA1Notation", "isFormula", "randomBytes", "invariant", "MAX_ROWS", "MAX_COLS", "DEFAULT_ROWS", "DEFAULT_COLS", "ApiError", "Error", "ReadonlyException", "RangeException", "n", "createIndex", "length", "characters", "charactersLength", "randomBuffer", "Array", "from", "byte", "join", "createIndices", "map", "insertIndices", "indices", "i", "max", "idx", "splice", "initialize", "sheet", "rows", "columns", "addressToIndex", "cell", "col", "row", "addressFromIndex", "column", "split", "indexOf", "rangeToIndex", "range", "to", "rangeFromIndex", "index", "compareIndexPositions", "indexA", "indexB", "rowA", "columnA", "rowB", "columnB", "mapFormulaRefsToIndices", "formula", "replace", "match", "mapFormulaIndicesToRefs", "CellValue", "Struct", "value", "Any", "Range", "range", "String", "key", "RowColumnMeta", "size", "optional", "Number", "Sheet", "name", "cells", "Record", "pipe", "FormInputAnnotation", "set", "rows", "Array", "columns", "rowMeta", "columnMeta", "ranges", "Type", "object", "typename", "version", "Annotation", "IconAnnotation", "icon", "hue", "make", "sheet", "Obj", "change", "s", "initialize", "Object", "entries", "forEach", "idx", "addressToIndex", "addressFromA1Notation", "isFormula", "mapFormulaRefsToIndices", "alignKey", "commentKey", "styleKey", "cellClassNameForRange", "key", "value", "undefined", "Schema", "Operation", "ActionAxis", "Union", "Literal", "SheetAction", "RestoreAxis", "Struct", "axis", "axisIndex", "String", "index", "Number", "axisMeta", "RowColumnMeta", "values", "Array", "Any", "SHEET_OPERATION", "meta", "id", "Axis", "SheetOperation", "InsertAxis", "Operation", "make", "key", "name", "schema", "input", "model", "count", "optional", "output", "Void", "DropAxisOutput", "annotations", "description", "DropAxis"]
7
+ }
@@ -1,7 +1,7 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  SheetCapabilities
4
- } from "./chunk-6J5L47IB.mjs";
4
+ } from "./chunk-VGXC77GH.mjs";
5
5
 
6
6
  // src/capabilities/compute-graph-registry/compute-graph-registry.ts
7
7
  import * as Effect from "effect/Effect";
@@ -19,4 +19,4 @@ var compute_graph_registry_default = Capability.makeModule(Effect.fnUntraced(fun
19
19
  export {
20
20
  compute_graph_registry_default as default
21
21
  };
22
- //# sourceMappingURL=compute-graph-registry-ZGXVLVGD.mjs.map
22
+ //# sourceMappingURL=compute-graph-registry-IDU2KKQU.mjs.map
@@ -1,39 +1,39 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  SheetCapabilities,
4
- SheetOperation,
5
4
  Sheet_exports,
6
5
  meta
7
- } from "./chunk-6J5L47IB.mjs";
6
+ } from "./chunk-VGXC77GH.mjs";
8
7
 
9
8
  // src/SheetPlugin.tsx
10
9
  import * as Effect from "effect/Effect";
11
- import { ActivationEvent, Capability as Capability6, Common, Plugin } from "@dxos/app-framework";
12
- import { Operation } from "@dxos/operation";
10
+ import * as Option from "effect/Option";
11
+ import { ActivationEvent, Plugin } from "@dxos/app-framework";
12
+ import { AppActivationEvents, AppPlugin } from "@dxos/app-toolkit";
13
+ import { Annotation } from "@dxos/echo";
13
14
  import { AutomationEvents } from "@dxos/plugin-automation";
14
15
  import { ClientEvents } from "@dxos/plugin-client";
15
16
  import { MarkdownEvents } from "@dxos/plugin-markdown";
16
- import { SpaceCapabilities, SpaceEvents } from "@dxos/plugin-space";
17
17
 
18
18
  // src/capabilities/anchor-sort/index.ts
19
19
  import { Capability } from "@dxos/app-framework";
20
- var AnchorSort = Capability.lazy("AnchorSort", () => import("./anchor-sort-OX5I2YOW.mjs"));
20
+ var AnchorSort = Capability.lazy("AnchorSort", () => import("./anchor-sort-7XYLH2AM.mjs"));
21
21
 
22
22
  // src/capabilities/compute-graph-registry/index.ts
23
23
  import { Capability as Capability2 } from "@dxos/app-framework";
24
- var ComputeGraphRegistry = Capability2.lazy("ComputeGraphRegistry", () => import("./compute-graph-registry-ZGXVLVGD.mjs"));
24
+ var ComputeGraphRegistry = Capability2.lazy("ComputeGraphRegistry", () => import("./compute-graph-registry-IDU2KKQU.mjs"));
25
25
 
26
26
  // src/capabilities/markdown/index.ts
27
27
  import { Capability as Capability3 } from "@dxos/app-framework";
28
- var Markdown = Capability3.lazy("Markdown", () => import("./markdown-PTV72DLO.mjs"));
28
+ var Markdown = Capability3.lazy("Markdown", () => import("./markdown-6KBH3MBO.mjs"));
29
29
 
30
30
  // src/capabilities/operation-resolver/index.ts
31
31
  import { Capability as Capability4 } from "@dxos/app-framework";
32
- var OperationResolver = Capability4.lazy("OperationResolver", () => import("./operation-resolver-Q63VQBVA.mjs"));
32
+ var OperationResolver = Capability4.lazy("OperationResolver", () => import("./operation-resolver-E7FIHPCO.mjs"));
33
33
 
34
34
  // src/capabilities/react-surface/index.ts
35
35
  import { Capability as Capability5 } from "@dxos/app-framework";
36
- var ReactSurface = Capability5.lazy("ReactSurface", () => import("./react-surface-SWRZSZVR.mjs"));
36
+ var ReactSurface = Capability5.lazy("ReactSurface", () => import("./react-surface-LCMQBROP.mjs"));
37
37
 
38
38
  // src/serializer.ts
39
39
  import { Obj } from "@dxos/echo";
@@ -63,6 +63,7 @@ var translations = [
63
63
  "typename label_one": "Sheet",
64
64
  "typename label_other": "Sheets",
65
65
  "object name placeholder": "New sheet",
66
+ "add object label": "Add sheet",
66
67
  "rename object label": "Rename sheet",
67
68
  "delete object label": "Delete sheet",
68
69
  "object deleted label": "Sheet deleted"
@@ -100,42 +101,38 @@ var translations = [
100
101
  ];
101
102
 
102
103
  // src/SheetPlugin.tsx
103
- var SheetPlugin = Plugin.define(meta).pipe(Plugin.addModule({
104
- activatesOn: ActivationEvent.allOf(ClientEvents.ClientReady, AutomationEvents.ComputeRuntimeReady),
105
- activate: ComputeGraphRegistry
106
- }), Common.Plugin.addTranslationsModule({
107
- translations
108
- }), Common.Plugin.addMetadataModule({
104
+ var SheetPlugin = Plugin.define(meta).pipe(AppPlugin.addMetadataModule({
109
105
  metadata: {
110
106
  id: Sheet_exports.Sheet.typename,
111
107
  metadata: {
112
108
  label: (object) => object.name,
113
- icon: "ph--grid-nine--regular",
114
- iconHue: "indigo",
109
+ icon: Annotation.IconAnnotation.get(Sheet_exports.Sheet).pipe(Option.getOrThrow).icon,
110
+ iconHue: Annotation.IconAnnotation.get(Sheet_exports.Sheet).pipe(Option.getOrThrow).hue ?? "white",
115
111
  serializer,
116
112
  comments: "anchored",
117
113
  createObject: (props) => Effect.sync(() => Sheet_exports.make(props))
118
114
  }
119
115
  }
120
- }), Common.Plugin.addSchemaModule({
116
+ }), AppPlugin.addOperationResolverModule({
117
+ activate: OperationResolver
118
+ }), AppPlugin.addSchemaModule({
121
119
  schema: [
122
120
  Sheet_exports.Sheet
123
121
  ]
122
+ }), AppPlugin.addSurfaceModule({
123
+ activate: ReactSurface
124
+ }), AppPlugin.addTranslationsModule({
125
+ translations
124
126
  }), Plugin.addModule({
125
- id: "on-space-created",
126
- activatesOn: SpaceEvents.SpaceCreated,
127
- activate: () => Effect.succeed(Capability6.contributes(SpaceCapabilities.OnCreateSpace, (params) => Operation.invoke(SheetOperation.OnCreateSpace, params)))
127
+ activatesOn: ActivationEvent.allOf(ClientEvents.ClientReady, AutomationEvents.ComputeRuntimeReady),
128
+ activate: ComputeGraphRegistry
128
129
  }), Plugin.addModule({
129
130
  activatesOn: MarkdownEvents.SetupExtensions,
130
131
  activate: Markdown
131
132
  }), Plugin.addModule({
132
133
  // TODO(wittjosiah): More relevant event?
133
- activatesOn: Common.ActivationEvent.AppGraphReady,
134
+ activatesOn: AppActivationEvents.AppGraphReady,
134
135
  activate: AnchorSort
135
- }), Common.Plugin.addSurfaceModule({
136
- activate: ReactSurface
137
- }), Common.Plugin.addOperationResolverModule({
138
- activate: OperationResolver
139
136
  }), Plugin.make);
140
137
  export {
141
138
  SheetCapabilities,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/SheetPlugin.tsx", "../../../src/capabilities/anchor-sort/index.ts", "../../../src/capabilities/compute-graph-registry/index.ts", "../../../src/capabilities/markdown/index.ts", "../../../src/capabilities/operation-resolver/index.ts", "../../../src/capabilities/react-surface/index.ts", "../../../src/serializer.ts", "../../../src/translations.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { ActivationEvent, Capability, Common, Plugin } from '@dxos/app-framework';\nimport { Operation } from '@dxos/operation';\nimport { AutomationEvents } from '@dxos/plugin-automation';\nimport { ClientEvents } from '@dxos/plugin-client';\nimport { MarkdownEvents } from '@dxos/plugin-markdown';\nimport { SpaceCapabilities, SpaceEvents } from '@dxos/plugin-space';\nimport { type CreateObject } from '@dxos/plugin-space/types';\n\nimport { AnchorSort, ComputeGraphRegistry, Markdown, OperationResolver, ReactSurface } from './capabilities';\nimport { meta } from './meta';\nimport { serializer } from './serializer';\nimport { translations } from './translations';\nimport { Sheet, SheetOperation } from './types';\n\nexport const SheetPlugin = Plugin.define(meta).pipe(\n Plugin.addModule({\n activatesOn: ActivationEvent.allOf(ClientEvents.ClientReady, AutomationEvents.ComputeRuntimeReady),\n activate: ComputeGraphRegistry,\n }),\n Common.Plugin.addTranslationsModule({ translations }),\n Common.Plugin.addMetadataModule({\n metadata: {\n id: Sheet.Sheet.typename,\n metadata: {\n label: (object: Sheet.Sheet) => object.name,\n icon: 'ph--grid-nine--regular',\n iconHue: 'indigo',\n serializer,\n comments: 'anchored',\n createObject: ((props) => Effect.sync(() => Sheet.make(props))) satisfies CreateObject,\n },\n },\n }),\n Common.Plugin.addSchemaModule({ schema: [Sheet.Sheet] }),\n Plugin.addModule({\n id: 'on-space-created',\n activatesOn: SpaceEvents.SpaceCreated,\n activate: () =>\n Effect.succeed(\n Capability.contributes(SpaceCapabilities.OnCreateSpace, (params) =>\n Operation.invoke(SheetOperation.OnCreateSpace, params),\n ),\n ),\n }),\n Plugin.addModule({\n activatesOn: MarkdownEvents.SetupExtensions,\n activate: Markdown,\n }),\n Plugin.addModule({\n // TODO(wittjosiah): More relevant event?\n activatesOn: Common.ActivationEvent.AppGraphReady,\n activate: AnchorSort,\n }),\n Common.Plugin.addSurfaceModule({ activate: ReactSurface }),\n Common.Plugin.addOperationResolverModule({ activate: OperationResolver }),\n Plugin.make,\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const AnchorSort = Capability.lazy('AnchorSort', () => import('./anchor-sort'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const ComputeGraphRegistry = Capability.lazy('ComputeGraphRegistry', () => import('./compute-graph-registry'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const Markdown = Capability.lazy('Markdown', () => import('./markdown'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const OperationResolver = Capability.lazy('OperationResolver', () => import('./operation-resolver'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const ReactSurface = Capability.lazy('ReactSurface', () => import('./react-surface'));\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Obj } from '@dxos/echo';\nimport { getObjectCore } from '@dxos/echo-db';\nimport { type TypedObjectSerializer } from '@dxos/plugin-space/types';\n\nimport { Sheet } from './types';\n\nexport const serializer: TypedObjectSerializer<Sheet.Sheet> = {\n serialize: async ({ object }): Promise<string> => {\n return JSON.stringify(object, null, 2);\n },\n\n deserialize: async ({ content, newId }) => {\n const { id, ...parsed } = JSON.parse(content);\n const sheet = Obj.make(Sheet.Sheet, parsed);\n\n if (!newId) {\n const core = getObjectCore(sheet);\n core.id = id;\n }\n\n return sheet;\n },\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Resource } from '@dxos/react-ui';\n\nimport { meta } from './meta';\nimport { Sheet } from './types';\n\nexport const translations = [\n {\n 'en-US': {\n [Sheet.Sheet.typename]: {\n 'typename label': 'Sheet',\n 'typename label_zero': 'Sheets',\n 'typename label_one': 'Sheet',\n 'typename label_other': 'Sheets',\n 'object name placeholder': 'New sheet',\n 'rename object label': 'Rename sheet',\n 'delete object label': 'Delete sheet',\n 'object deleted label': 'Sheet deleted',\n },\n [meta.id]: {\n 'plugin name': 'Sheets',\n 'cell placeholder': 'Cell value...',\n 'range key alignment label': 'Align',\n 'range key style label': 'Style',\n 'range value start label': 'Align left',\n 'range value center label': 'Align center',\n 'range value end label': 'Align right',\n 'range value softwrap label': 'Wrap text',\n 'range value highlight label': 'Highlight',\n 'toolbar action label': '{{value}}',\n 'selection overlaps existing comment label': 'Selected cell already has a comment',\n 'comment label': 'Add comment',\n 'comment ranges not supported label': 'Commenting on ranges is not yet supported',\n 'no cursor label': 'Select a cell to comment',\n 'open comment for sheet cell': 'View comments for cell',\n 'add col before label': 'Add column before',\n 'add col after label': 'Add column after',\n 'delete col label': 'Delete column',\n 'add row before label': 'Add row before',\n 'add row after label': 'Add row after',\n 'delete row label': 'Delete row',\n 'range list heading': 'Ranges',\n 'no ranges message': 'No ranges',\n 'range title': '{{position}} — {{value}}',\n 'col dropped label': 'Deleted a column',\n 'row dropped label': 'Deleted a row',\n },\n },\n },\n] as const satisfies Resource[];\n"],
5
- "mappings": "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",
6
- "names": ["Effect", "ActivationEvent", "Capability", "Common", "Plugin", "Operation", "AutomationEvents", "ClientEvents", "MarkdownEvents", "SpaceCapabilities", "SpaceEvents", "Capability", "AnchorSort", "Capability", "lazy", "Capability", "ComputeGraphRegistry", "Capability", "lazy", "Capability", "Markdown", "Capability", "lazy", "Capability", "OperationResolver", "Capability", "lazy", "Capability", "ReactSurface", "Capability", "lazy", "Obj", "getObjectCore", "serializer", "serialize", "object", "JSON", "stringify", "deserialize", "content", "newId", "id", "parsed", "parse", "sheet", "Obj", "make", "Sheet", "core", "getObjectCore", "translations", "Sheet", "typename", "meta", "id", "SheetPlugin", "Plugin", "define", "meta", "pipe", "addModule", "activatesOn", "ActivationEvent", "allOf", "ClientEvents", "ClientReady", "AutomationEvents", "ComputeRuntimeReady", "activate", "ComputeGraphRegistry", "Common", "addTranslationsModule", "translations", "addMetadataModule", "metadata", "id", "Sheet", "typename", "label", "object", "name", "icon", "iconHue", "serializer", "comments", "createObject", "props", "sync", "make", "addSchemaModule", "schema", "SpaceEvents", "SpaceCreated", "succeed", "Capability", "contributes", "SpaceCapabilities", "OnCreateSpace", "params", "Operation", "invoke", "SheetOperation", "MarkdownEvents", "SetupExtensions", "Markdown", "AppGraphReady", "AnchorSort", "addSurfaceModule", "ReactSurface", "addOperationResolverModule", "OperationResolver"]
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { ActivationEvent, Plugin } from '@dxos/app-framework';\nimport { AppActivationEvents, AppPlugin } from '@dxos/app-toolkit';\nimport { Annotation } from '@dxos/echo';\nimport { AutomationEvents } from '@dxos/plugin-automation';\nimport { ClientEvents } from '@dxos/plugin-client';\nimport { MarkdownEvents } from '@dxos/plugin-markdown';\nimport { type CreateObject } from '@dxos/plugin-space/types';\n\nimport { AnchorSort, ComputeGraphRegistry, Markdown, OperationResolver, ReactSurface } from './capabilities';\nimport { meta } from './meta';\nimport { serializer } from './serializer';\nimport { translations } from './translations';\nimport { Sheet } from './types';\n\nexport const SheetPlugin = Plugin.define(meta).pipe(\n AppPlugin.addMetadataModule({\n metadata: {\n id: Sheet.Sheet.typename,\n metadata: {\n label: (object: Sheet.Sheet) => object.name,\n icon: Annotation.IconAnnotation.get(Sheet.Sheet).pipe(Option.getOrThrow).icon,\n iconHue: Annotation.IconAnnotation.get(Sheet.Sheet).pipe(Option.getOrThrow).hue ?? 'white',\n serializer,\n comments: 'anchored',\n createObject: ((props) => Effect.sync(() => Sheet.make(props))) satisfies CreateObject,\n },\n },\n }),\n AppPlugin.addOperationResolverModule({ activate: OperationResolver }),\n AppPlugin.addSchemaModule({ schema: [Sheet.Sheet] }),\n AppPlugin.addSurfaceModule({ activate: ReactSurface }),\n AppPlugin.addTranslationsModule({ translations }),\n Plugin.addModule({\n activatesOn: ActivationEvent.allOf(ClientEvents.ClientReady, AutomationEvents.ComputeRuntimeReady),\n activate: ComputeGraphRegistry,\n }),\n Plugin.addModule({\n activatesOn: MarkdownEvents.SetupExtensions,\n activate: Markdown,\n }),\n Plugin.addModule({\n // TODO(wittjosiah): More relevant event?\n activatesOn: AppActivationEvents.AppGraphReady,\n activate: AnchorSort,\n }),\n Plugin.make,\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const AnchorSort = Capability.lazy('AnchorSort', () => import('./anchor-sort'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const ComputeGraphRegistry = Capability.lazy('ComputeGraphRegistry', () => import('./compute-graph-registry'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const Markdown = Capability.lazy('Markdown', () => import('./markdown'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const OperationResolver = Capability.lazy('OperationResolver', () => import('./operation-resolver'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const ReactSurface = Capability.lazy('ReactSurface', () => import('./react-surface'));\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Obj } from '@dxos/echo';\nimport { getObjectCore } from '@dxos/echo-db';\nimport { type TypedObjectSerializer } from '@dxos/plugin-space/types';\n\nimport { Sheet } from './types';\n\nexport const serializer: TypedObjectSerializer<Sheet.Sheet> = {\n serialize: async ({ object }): Promise<string> => {\n return JSON.stringify(object, null, 2);\n },\n\n deserialize: async ({ content, newId }) => {\n const { id, ...parsed } = JSON.parse(content);\n const sheet = Obj.make(Sheet.Sheet, parsed);\n\n if (!newId) {\n const core = getObjectCore(sheet);\n core.id = id;\n }\n\n return sheet;\n },\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Resource } from '@dxos/react-ui';\n\nimport { meta } from './meta';\nimport { Sheet } from './types';\n\nexport const translations = [\n {\n 'en-US': {\n [Sheet.Sheet.typename]: {\n 'typename label': 'Sheet',\n 'typename label_zero': 'Sheets',\n 'typename label_one': 'Sheet',\n 'typename label_other': 'Sheets',\n 'object name placeholder': 'New sheet',\n 'add object label': 'Add sheet',\n 'rename object label': 'Rename sheet',\n 'delete object label': 'Delete sheet',\n 'object deleted label': 'Sheet deleted',\n },\n [meta.id]: {\n 'plugin name': 'Sheets',\n 'cell placeholder': 'Cell value...',\n 'range key alignment label': 'Align',\n 'range key style label': 'Style',\n 'range value start label': 'Align left',\n 'range value center label': 'Align center',\n 'range value end label': 'Align right',\n 'range value softwrap label': 'Wrap text',\n 'range value highlight label': 'Highlight',\n 'toolbar action label': '{{value}}',\n 'selection overlaps existing comment label': 'Selected cell already has a comment',\n 'comment label': 'Add comment',\n 'comment ranges not supported label': 'Commenting on ranges is not yet supported',\n 'no cursor label': 'Select a cell to comment',\n 'open comment for sheet cell': 'View comments for cell',\n 'add col before label': 'Add column before',\n 'add col after label': 'Add column after',\n 'delete col label': 'Delete column',\n 'add row before label': 'Add row before',\n 'add row after label': 'Add row after',\n 'delete row label': 'Delete row',\n 'range list heading': 'Ranges',\n 'no ranges message': 'No ranges',\n 'range title': '{{position}} — {{value}}',\n 'col dropped label': 'Deleted a column',\n 'row dropped label': 'Deleted a row',\n },\n },\n },\n] as const satisfies Resource[];\n"],
5
+ "mappings": "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",
6
+ "names": ["Effect", "Option", "ActivationEvent", "Plugin", "AppActivationEvents", "AppPlugin", "Annotation", "AutomationEvents", "ClientEvents", "MarkdownEvents", "Capability", "AnchorSort", "Capability", "lazy", "Capability", "ComputeGraphRegistry", "Capability", "lazy", "Capability", "Markdown", "Capability", "lazy", "Capability", "OperationResolver", "Capability", "lazy", "Capability", "ReactSurface", "Capability", "lazy", "Obj", "getObjectCore", "serializer", "serialize", "object", "JSON", "stringify", "deserialize", "content", "newId", "id", "parsed", "parse", "sheet", "Obj", "make", "Sheet", "core", "getObjectCore", "translations", "Sheet", "typename", "meta", "id", "SheetPlugin", "Plugin", "define", "meta", "pipe", "AppPlugin", "addMetadataModule", "metadata", "id", "Sheet", "typename", "label", "object", "name", "icon", "Annotation", "IconAnnotation", "get", "getOrThrow", "iconHue", "hue", "serializer", "comments", "createObject", "props", "sync", "make", "addOperationResolverModule", "activate", "OperationResolver", "addSchemaModule", "schema", "addSurfaceModule", "ReactSurface", "addTranslationsModule", "translations", "addModule", "activatesOn", "ActivationEvent", "allOf", "ClientEvents", "ClientReady", "AutomationEvents", "ComputeRuntimeReady", "ComputeGraphRegistry", "MarkdownEvents", "SetupExtensions", "Markdown", "AppActivationEvents", "AppGraphReady", "AnchorSort"]
7
7
  }
@@ -1,10 +1,10 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  computeGraphFacet
4
- } from "./chunk-PPOYR7DK.mjs";
4
+ } from "./chunk-M52YLLWU.mjs";
5
5
  import {
6
6
  SheetCapabilities
7
- } from "./chunk-6J5L47IB.mjs";
7
+ } from "./chunk-VGXC77GH.mjs";
8
8
 
9
9
  // src/capabilities/markdown/markdown.ts
10
10
  import * as Effect from "effect/Effect";
@@ -27,4 +27,4 @@ var markdown_default = Capability.makeModule(Effect.fnUntraced(function* () {
27
27
  export {
28
28
  markdown_default as default
29
29
  };
30
- //# sourceMappingURL=markdown-PTV72DLO.mjs.map
30
+ //# sourceMappingURL=markdown-6KBH3MBO.mjs.map