@dxos/plugin-sheet 0.6.12-main.89e9959 → 0.6.12-main.c1d977f

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 (85) hide show
  1. package/dist/lib/browser/{SheetContainer-LG77O4RM.mjs → SheetContainer-7QG5RIM4.mjs} +4 -4
  2. package/dist/lib/browser/{chunk-WZMOZKQZ.mjs → chunk-4DPOO6BK.mjs} +18 -6
  3. package/dist/lib/browser/{chunk-WZMOZKQZ.mjs.map → chunk-4DPOO6BK.mjs.map} +3 -3
  4. package/dist/lib/browser/{chunk-CHQAW4F4.mjs → chunk-BKTLTM2Y.mjs} +83 -227
  5. package/dist/lib/browser/chunk-BKTLTM2Y.mjs.map +7 -0
  6. package/dist/lib/browser/{chunk-QILRZNE5.mjs → chunk-D3QTX46O.mjs} +4 -5
  7. package/dist/lib/browser/chunk-D3QTX46O.mjs.map +7 -0
  8. package/dist/lib/browser/index.mjs +8 -17
  9. package/dist/lib/browser/index.mjs.map +4 -4
  10. package/dist/lib/browser/meta.json +1 -1
  11. package/dist/lib/browser/meta.mjs +1 -1
  12. package/dist/lib/browser/types.mjs +2 -2
  13. package/dist/lib/node/{SheetContainer-OZ7DHH4L.cjs → SheetContainer-DXDD2G3A.cjs} +16 -16
  14. package/dist/lib/node/{chunk-5FTFZL5W.cjs → chunk-4FMMRVT2.cjs} +42 -185
  15. package/dist/lib/node/chunk-4FMMRVT2.cjs.map +7 -0
  16. package/dist/lib/node/{chunk-AOP42UAA.cjs → chunk-PJY2K5S2.cjs} +22 -10
  17. package/dist/lib/node/{chunk-AOP42UAA.cjs.map → chunk-PJY2K5S2.cjs.map} +3 -3
  18. package/dist/lib/node/{chunk-BNARJ5GM.cjs → chunk-QIFIGEKV.cjs} +6 -7
  19. package/dist/lib/node/chunk-QIFIGEKV.cjs.map +7 -0
  20. package/dist/lib/node/index.cjs +29 -37
  21. package/dist/lib/node/index.cjs.map +4 -4
  22. package/dist/lib/node/meta.cjs +3 -3
  23. package/dist/lib/node/meta.cjs.map +1 -1
  24. package/dist/lib/node/meta.json +1 -1
  25. package/dist/lib/node/types.cjs +9 -9
  26. package/dist/lib/node/types.cjs.map +1 -1
  27. package/dist/lib/node-esm/{SheetContainer-4XS2G25Z.mjs → SheetContainer-5WYNOYYD.mjs} +4 -4
  28. package/dist/lib/node-esm/{chunk-RR2AO4SM.mjs → chunk-2X36GIGW.mjs} +18 -6
  29. package/dist/lib/node-esm/{chunk-RR2AO4SM.mjs.map → chunk-2X36GIGW.mjs.map} +3 -3
  30. package/dist/lib/node-esm/{chunk-KK3XL37M.mjs → chunk-JYDBXLDH.mjs} +83 -227
  31. package/dist/lib/node-esm/chunk-JYDBXLDH.mjs.map +7 -0
  32. package/dist/lib/node-esm/{chunk-IU2L277A.mjs → chunk-VCYJWE3O.mjs} +4 -5
  33. package/dist/lib/node-esm/chunk-VCYJWE3O.mjs.map +7 -0
  34. package/dist/lib/node-esm/index.mjs +8 -17
  35. package/dist/lib/node-esm/index.mjs.map +4 -4
  36. package/dist/lib/node-esm/meta.json +1 -1
  37. package/dist/lib/node-esm/meta.mjs +1 -1
  38. package/dist/lib/node-esm/types.mjs +2 -2
  39. package/dist/types/src/components/GridSheet/GridSheet.d.ts.map +1 -1
  40. package/dist/types/src/components/{CellEditor/CellEditor.stories.d.ts → GridSheet/SheetCellEditor.stories.d.ts} +2 -2
  41. package/dist/types/src/components/GridSheet/SheetCellEditor.stories.d.ts.map +1 -0
  42. package/dist/types/src/components/GridSheet/util.d.ts +2 -2
  43. package/dist/types/src/components/GridSheet/util.d.ts.map +1 -1
  44. package/dist/types/src/components/Sheet/Sheet.d.ts.map +1 -1
  45. package/dist/types/src/components/Sheet/Sheet.stories.d.ts.map +1 -1
  46. package/dist/types/src/extensions/editor/extension.d.ts.map +1 -0
  47. package/dist/types/src/extensions/editor/extension.test.d.ts.map +1 -0
  48. package/dist/types/src/extensions/editor/index.d.ts +2 -0
  49. package/dist/types/src/extensions/editor/index.d.ts.map +1 -0
  50. package/dist/types/src/extensions/index.d.ts +1 -0
  51. package/dist/types/src/extensions/index.d.ts.map +1 -1
  52. package/dist/types/src/meta.d.ts +3 -6
  53. package/dist/types/src/meta.d.ts.map +1 -1
  54. package/dist/types/src/types.d.ts.map +1 -1
  55. package/package.json +34 -34
  56. package/src/components/GridSheet/GridSheet.tsx +14 -32
  57. package/src/components/{CellEditor/CellEditor.stories.tsx → GridSheet/SheetCellEditor.stories.tsx} +2 -2
  58. package/src/components/GridSheet/util.ts +2 -6
  59. package/src/components/Sheet/Sheet.tsx +2 -8
  60. package/src/{components/CellEditor → extensions/editor}/index.ts +0 -1
  61. package/src/extensions/index.ts +1 -0
  62. package/src/{meta.tsx → meta.ts} +3 -3
  63. package/src/model/sheet-model.test.ts +1 -3
  64. package/src/types.ts +4 -4
  65. package/dist/lib/browser/chunk-CHQAW4F4.mjs.map +0 -7
  66. package/dist/lib/browser/chunk-QILRZNE5.mjs.map +0 -7
  67. package/dist/lib/node/chunk-5FTFZL5W.cjs.map +0 -7
  68. package/dist/lib/node/chunk-BNARJ5GM.cjs.map +0 -7
  69. package/dist/lib/node-esm/chunk-IU2L277A.mjs.map +0 -7
  70. package/dist/lib/node-esm/chunk-KK3XL37M.mjs.map +0 -7
  71. package/dist/types/src/components/CellEditor/CellEditor.d.ts +0 -34
  72. package/dist/types/src/components/CellEditor/CellEditor.d.ts.map +0 -1
  73. package/dist/types/src/components/CellEditor/CellEditor.stories.d.ts.map +0 -1
  74. package/dist/types/src/components/CellEditor/extension.d.ts.map +0 -1
  75. package/dist/types/src/components/CellEditor/extension.test.d.ts.map +0 -1
  76. package/dist/types/src/components/CellEditor/index.d.ts +0 -3
  77. package/dist/types/src/components/CellEditor/index.d.ts.map +0 -1
  78. package/src/components/CellEditor/CellEditor.tsx +0 -163
  79. /package/dist/lib/browser/{SheetContainer-LG77O4RM.mjs.map → SheetContainer-7QG5RIM4.mjs.map} +0 -0
  80. /package/dist/lib/node/{SheetContainer-OZ7DHH4L.cjs.map → SheetContainer-DXDD2G3A.cjs.map} +0 -0
  81. /package/dist/lib/node-esm/{SheetContainer-4XS2G25Z.mjs.map → SheetContainer-5WYNOYYD.mjs.map} +0 -0
  82. /package/dist/types/src/{components/CellEditor → extensions/editor}/extension.d.ts +0 -0
  83. /package/dist/types/src/{components/CellEditor → extensions/editor}/extension.test.d.ts +0 -0
  84. /package/src/{components/CellEditor → extensions/editor}/extension.test.ts +0 -0
  85. /package/src/{components/CellEditor → extensions/editor}/extension.ts +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/plugin-sheet",
3
- "version": "0.6.12-main.89e9959",
3
+ "version": "0.6.12-main.c1d977f",
4
4
  "description": "Braneframe sketch plugin",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -65,7 +65,7 @@
65
65
  "@dnd-kit/modifiers": "^6.0.0",
66
66
  "@dnd-kit/sortable": "^7.0.1",
67
67
  "@dnd-kit/utilities": "^3.2.0",
68
- "@effect/schema": "^0.67.16",
68
+ "@effect/schema": "^0.75.1",
69
69
  "@lezer/common": "^1.2.2",
70
70
  "@lezer/highlight": "^1.2.1",
71
71
  "@lezer/lezer": "^1.1.2",
@@ -79,29 +79,29 @@
79
79
  "re-resizable": "^6.9.17",
80
80
  "react-markdown": "^8.0.5",
81
81
  "react-resize-detector": "^11.0.1",
82
- "@dxos/app-framework": "0.6.12-main.89e9959",
83
- "@dxos/async": "0.6.12-main.89e9959",
84
- "@dxos/context": "0.6.12-main.89e9959",
85
- "@dxos/client": "0.6.12-main.89e9959",
86
- "@dxos/crypto": "0.6.12-main.89e9959",
87
- "@dxos/keys": "0.6.12-main.89e9959",
88
- "@dxos/debug": "0.6.12-main.89e9959",
89
- "@dxos/echo-schema": "0.6.12-main.89e9959",
90
- "@dxos/invariant": "0.6.12-main.89e9959",
91
- "@dxos/log": "0.6.12-main.89e9959",
92
- "@dxos/plugin-attention": "0.6.12-main.89e9959",
93
- "@dxos/plugin-graph": "0.6.12-main.89e9959",
94
- "@dxos/plugin-markdown": "0.6.12-main.89e9959",
95
- "@dxos/plugin-script": "0.6.12-main.89e9959",
96
- "@dxos/plugin-client": "0.6.12-main.89e9959",
97
- "@dxos/plugin-space": "0.6.12-main.89e9959",
98
- "@dxos/plugin-stack": "0.6.12-main.89e9959",
99
- "@dxos/react-client": "0.6.12-main.89e9959",
100
- "@dxos/react-hooks": "0.6.12-main.89e9959",
101
- "@dxos/react-ui-attention": "0.6.12-main.89e9959",
102
- "@dxos/react-ui-grid": "0.6.12-main.89e9959",
103
- "@dxos/util": "0.6.12-main.89e9959",
104
- "@dxos/react-ui-editor": "0.6.12-main.89e9959"
82
+ "@dxos/app-framework": "0.6.12-main.c1d977f",
83
+ "@dxos/client": "0.6.12-main.c1d977f",
84
+ "@dxos/async": "0.6.12-main.c1d977f",
85
+ "@dxos/crypto": "0.6.12-main.c1d977f",
86
+ "@dxos/context": "0.6.12-main.c1d977f",
87
+ "@dxos/echo-schema": "0.6.12-main.c1d977f",
88
+ "@dxos/debug": "0.6.12-main.c1d977f",
89
+ "@dxos/invariant": "0.6.12-main.c1d977f",
90
+ "@dxos/keys": "0.6.12-main.c1d977f",
91
+ "@dxos/log": "0.6.12-main.c1d977f",
92
+ "@dxos/plugin-attention": "0.6.12-main.c1d977f",
93
+ "@dxos/plugin-graph": "0.6.12-main.c1d977f",
94
+ "@dxos/plugin-client": "0.6.12-main.c1d977f",
95
+ "@dxos/plugin-script": "0.6.12-main.c1d977f",
96
+ "@dxos/plugin-markdown": "0.6.12-main.c1d977f",
97
+ "@dxos/plugin-space": "0.6.12-main.c1d977f",
98
+ "@dxos/plugin-stack": "0.6.12-main.c1d977f",
99
+ "@dxos/react-hooks": "0.6.12-main.c1d977f",
100
+ "@dxos/react-client": "0.6.12-main.c1d977f",
101
+ "@dxos/react-ui-attention": "0.6.12-main.c1d977f",
102
+ "@dxos/react-ui-grid": "0.6.12-main.c1d977f",
103
+ "@dxos/react-ui-editor": "0.6.12-main.c1d977f",
104
+ "@dxos/util": "0.6.12-main.c1d977f"
105
105
  },
106
106
  "devDependencies": {
107
107
  "@lezer/generator": "^1.7.1",
@@ -114,20 +114,20 @@
114
114
  "react": "~18.2.0",
115
115
  "react-dom": "~18.2.0",
116
116
  "vite": "5.4.7",
117
- "@dxos/echo-generator": "0.6.12-main.89e9959",
118
- "@dxos/random": "0.6.12-main.89e9959",
119
- "@dxos/react-ui-syntax-highlighter": "0.6.12-main.89e9959",
120
- "@dxos/react-ui": "0.6.12-main.89e9959",
121
- "@dxos/react-ui-types": "0.6.12-main.89e9959",
122
- "@dxos/react-ui-theme": "0.6.12-main.89e9959",
123
- "@dxos/storybook-utils": "0.6.12-main.89e9959"
117
+ "@dxos/echo-generator": "0.6.12-main.c1d977f",
118
+ "@dxos/react-ui": "0.6.12-main.c1d977f",
119
+ "@dxos/random": "0.6.12-main.c1d977f",
120
+ "@dxos/react-ui-syntax-highlighter": "0.6.12-main.c1d977f",
121
+ "@dxos/react-ui-theme": "0.6.12-main.c1d977f",
122
+ "@dxos/storybook-utils": "0.6.12-main.c1d977f",
123
+ "@dxos/react-ui-types": "0.6.12-main.c1d977f"
124
124
  },
125
125
  "peerDependencies": {
126
126
  "@phosphor-icons/react": "^2.1.5",
127
127
  "react": "~18.2.0",
128
128
  "react-dom": "~18.2.0",
129
- "@dxos/react-ui": "0.6.12-main.89e9959",
130
- "@dxos/react-ui-theme": "0.6.12-main.89e9959"
129
+ "@dxos/react-ui": "0.6.12-main.c1d977f",
130
+ "@dxos/react-ui-theme": "0.6.12-main.c1d977f"
131
131
  },
132
132
  "publishConfig": {
133
133
  "access": "public"
@@ -10,44 +10,18 @@ import {
10
10
  type GridContentProps,
11
11
  type GridScopedProps,
12
12
  useGridContext,
13
+ editorKeys,
14
+ type EditorKeysProps,
15
+ GridCellEditor,
13
16
  } from '@dxos/react-ui-grid';
14
17
 
15
18
  import { colLabelCell, dxGridCellIndexToSheetCellAddress, rowLabelCell, useSheetModelDxGridProps } from './util';
16
19
  import { rangeToA1Notation, type CellRange } from '../../defs';
20
+ import { rangeExtension, sheetExtension, type CellRangeNotifier } from '../../extensions';
17
21
  import { type ComputeGraph } from '../../graph';
18
22
  import { useFormattingModel, useSheetModel, type UseSheetModelOptions } from '../../hooks';
19
23
  import { type SheetModel, type FormattingModel } from '../../model';
20
24
  import { type SheetType } from '../../types';
21
- import {
22
- CellEditor,
23
- type CellEditorProps,
24
- type CellRangeNotifier,
25
- editorKeys,
26
- type EditorKeysProps,
27
- rangeExtension,
28
- sheetExtension,
29
- } from '../CellEditor';
30
-
31
- const GridSheetCellEditor = ({
32
- model,
33
- extension,
34
- __gridScope,
35
- }: GridScopedProps<Pick<CellEditorProps, 'extension'> & { model: SheetModel }>) => {
36
- const { id, editing, setEditing, editBox } = useGridContext('GridSheetCellEditor', __gridScope);
37
- const cell = dxGridCellIndexToSheetCellAddress(editing);
38
-
39
- return editing ? (
40
- <CellEditor
41
- variant='grid'
42
- value={editing.initialContent ?? (cell ? model.getCellText(cell) : undefined)}
43
- autoFocus
44
- box={editBox}
45
- onBlur={() => setEditing(null)}
46
- extension={extension}
47
- gridId={id}
48
- />
49
- ) : null;
50
- };
51
25
 
52
26
  const initialCells = {
53
27
  grid: {},
@@ -82,7 +56,7 @@ const GridSheetImpl = ({
82
56
  const handleClose = useCallback<NonNullable<EditorKeysProps['onClose']> | NonNullable<EditorKeysProps['onNav']>>(
83
57
  (value, { key, shift }) => {
84
58
  if (value !== undefined) {
85
- model.setValue(dxGridCellIndexToSheetCellAddress(editing)!, value);
59
+ model.setValue(dxGridCellIndexToSheetCellAddress(editing!.index), value);
86
60
  }
87
61
  setEditing(null);
88
62
  const axis = ['Enter', 'ArrowUp', 'ArrowDown'].includes(key)
@@ -136,9 +110,17 @@ const GridSheetImpl = ({
136
110
  [model, handleClose, editing],
137
111
  );
138
112
 
113
+ const getCellContent = useCallback(
114
+ (index: string) => {
115
+ const cell = dxGridCellIndexToSheetCellAddress(index);
116
+ return model.getCellText(cell);
117
+ },
118
+ [model],
119
+ );
120
+
139
121
  return (
140
122
  <>
141
- <GridSheetCellEditor model={model} extension={extension} />
123
+ <GridCellEditor getCellContent={getCellContent} extension={extension} />
142
124
  <Grid.Content
143
125
  initialCells={initialCells}
144
126
  columns={columns}
@@ -9,12 +9,12 @@ import React, { useEffect, useMemo, useState } from 'react';
9
9
  import { Client } from '@dxos/client';
10
10
  import { createDocAccessor, type EchoReactiveObject } from '@dxos/client/echo';
11
11
  import { automerge } from '@dxos/react-ui-editor';
12
+ import { CellEditor, type CellEditorProps } from '@dxos/react-ui-grid';
12
13
  import { withTheme } from '@dxos/storybook-utils';
13
14
 
14
15
  import { HyperFormula } from '#hyperformula';
15
- import { CellEditor, type CellEditorProps } from './CellEditor';
16
- import { sheetExtension } from './extension';
17
16
  import { createSheet } from '../../defs';
17
+ import { sheetExtension } from '../../extensions';
18
18
  import { defaultFunctions } from '../../graph';
19
19
  import { SheetType } from '../../types';
20
20
 
@@ -6,7 +6,6 @@ import { type MutableRefObject, useEffect, useLayoutEffect, useState } from 'rea
6
6
 
7
7
  import { createDocAccessor } from '@dxos/react-client/echo';
8
8
  import {
9
- type GridEditing,
10
9
  type GridContentProps,
11
10
  type DxGridElement,
12
11
  type DxGridAxisMeta,
@@ -21,11 +20,8 @@ import { mx } from '@dxos/react-ui-theme';
21
20
  import { type CellAddress } from '../../defs';
22
21
  import { type SheetModel, type FormattingModel } from '../../model';
23
22
 
24
- export const dxGridCellIndexToSheetCellAddress = (gridEditing: GridEditing): CellAddress | null => {
25
- if (!gridEditing) {
26
- return null;
27
- }
28
- const [colStr, rowStr] = gridEditing.index.split(',');
23
+ export const dxGridCellIndexToSheetCellAddress = (index: string): CellAddress => {
24
+ const [colStr, rowStr] = index.split(',');
29
25
  return {
30
26
  col: parseInt(colStr),
31
27
  row: parseInt(rowStr),
@@ -42,6 +42,7 @@ import { fullyQualifiedId, createDocAccessor } from '@dxos/client/echo';
42
42
  import { log } from '@dxos/log';
43
43
  import { type ThemedClassName } from '@dxos/react-ui';
44
44
  import { ATTENABLE_ATTRIBUTE, useAttendableAttributes, useAttention, useAttentionPath } from '@dxos/react-ui-attention';
45
+ import { CellEditor, type EditorKeysProps, editorKeys } from '@dxos/react-ui-grid';
45
46
  import { mx } from '@dxos/react-ui-theme';
46
47
 
47
48
  import {
@@ -73,14 +74,7 @@ import {
73
74
  addressToIndex,
74
75
  addressFromIndex,
75
76
  } from '../../defs';
76
- import {
77
- CellEditor,
78
- type CellRangeNotifier,
79
- type EditorKeysProps,
80
- editorKeys,
81
- rangeExtension,
82
- sheetExtension,
83
- } from '../CellEditor';
77
+ import { rangeExtension, sheetExtension, type CellRangeNotifier } from '../../extensions';
84
78
 
85
79
  // TODO(burdon): Virtualization bug.
86
80
  // TODO(burdon): Toolbar styles and formatting.
@@ -2,5 +2,4 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- export * from './CellEditor';
6
5
  export * from './extension';
@@ -3,3 +3,4 @@
3
3
  //
4
4
 
5
5
  export * from './compute';
6
+ export * from './editor';
@@ -2,13 +2,13 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { pluginMeta } from '@dxos/app-framework';
5
+ import { type PluginMeta } from '@dxos/app-framework';
6
6
 
7
7
  export const SHEET_PLUGIN = 'dxos.org/plugin/sheet';
8
8
 
9
- export default pluginMeta({
9
+ export default {
10
10
  id: SHEET_PLUGIN,
11
11
  name: 'Sheet',
12
12
  description: 'A simple spreadsheet plugin.',
13
13
  icon: 'ph--grid-nine--regular',
14
- });
14
+ } satisfies PluginMeta;
@@ -8,12 +8,10 @@ import { Trigger } from '@dxos/async';
8
8
  import { FunctionType } from '@dxos/plugin-script/types';
9
9
 
10
10
  import { SheetModel } from './sheet-model';
11
- import { createSheet, addressFromA1Notation } from '../defs';
11
+ import { addressFromA1Notation, createSheet } from '../defs';
12
12
  import { TestBuilder, testFunctionPlugins } from '../graph/testing';
13
13
  import { type CellScalarValue } from '../types';
14
14
 
15
- // TODO(burdon): GPT("prompt", inputs); e.g., with large text cells.
16
-
17
15
  describe('SheetModel', () => {
18
16
  let testBuilder: TestBuilder;
19
17
  beforeEach(async () => {
package/src/types.ts CHANGED
@@ -105,7 +105,7 @@ export class SheetType extends TypedObject({ typename: 'dxos.org/type/SheetType'
105
105
  name: S.optional(S.String),
106
106
 
107
107
  // Sparse map of cells referenced by index.
108
- cells: S.mutable(S.Record(S.String, S.mutable(CellValue))),
108
+ cells: S.mutable(S.Record({ key: S.String, value: S.mutable(CellValue) })),
109
109
 
110
110
  // Ordered row indices.
111
111
  rows: S.mutable(S.Array(S.String)),
@@ -114,13 +114,13 @@ export class SheetType extends TypedObject({ typename: 'dxos.org/type/SheetType'
114
114
  columns: S.mutable(S.Array(S.String)),
115
115
 
116
116
  // Row metadata referenced by index.
117
- rowMeta: S.mutable(S.Record(S.String, S.mutable(RowColumnMeta))),
117
+ rowMeta: S.mutable(S.Record({ key: S.String, value: S.mutable(RowColumnMeta) })),
118
118
 
119
119
  // Column metadata referenced by index.
120
- columnMeta: S.mutable(S.Record(S.String, S.mutable(RowColumnMeta))),
120
+ columnMeta: S.mutable(S.Record({ key: S.String, value: S.mutable(RowColumnMeta) })),
121
121
 
122
122
  // Cell formatting referenced by indexed range.
123
- formatting: S.mutable(S.Record(S.String, S.mutable(Formatting))),
123
+ formatting: S.mutable(S.Record({ key: S.String, value: S.mutable(Formatting) })),
124
124
 
125
125
  // Threads associated with the sheet
126
126
  threads: S.optional(S.mutable(S.Array(ref(ThreadType)))),