@dxos/react-ui-table 0.8.4-main.fcfe5033a5 → 0.8.4-staging.60fe92afc8

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 (115) hide show
  1. package/LICENSE +102 -5
  2. package/dist/lib/browser/{chunk-F7Y374KL.mjs → chunk-4KOQTPFC.mjs} +62 -111
  3. package/dist/lib/browser/chunk-4KOQTPFC.mjs.map +7 -0
  4. package/dist/lib/browser/{chunk-BF54SSNL.mjs → chunk-62PYOJPY.mjs} +13 -16
  5. package/dist/lib/browser/chunk-62PYOJPY.mjs.map +7 -0
  6. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  7. package/dist/lib/browser/chunk-J5LGTIGS.mjs.map +7 -0
  8. package/dist/lib/browser/index.mjs +57 -131
  9. package/dist/lib/browser/index.mjs.map +4 -4
  10. package/dist/lib/browser/meta.json +1 -1
  11. package/dist/lib/browser/testing/index.mjs +9 -8
  12. package/dist/lib/browser/testing/index.mjs.map +3 -3
  13. package/dist/lib/browser/translations.mjs +36 -0
  14. package/dist/lib/browser/translations.mjs.map +7 -0
  15. package/dist/lib/browser/types/index.mjs +2 -1
  16. package/dist/lib/node-esm/{chunk-SIRDIPHZ.mjs → chunk-7LMOZUTS.mjs} +13 -16
  17. package/dist/lib/node-esm/chunk-7LMOZUTS.mjs.map +7 -0
  18. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  19. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  20. package/dist/lib/node-esm/{chunk-CCJ4LOVM.mjs → chunk-KOSV2J5N.mjs} +62 -111
  21. package/dist/lib/node-esm/chunk-KOSV2J5N.mjs.map +7 -0
  22. package/dist/lib/node-esm/index.mjs +57 -131
  23. package/dist/lib/node-esm/index.mjs.map +4 -4
  24. package/dist/lib/node-esm/meta.json +1 -1
  25. package/dist/lib/node-esm/testing/index.mjs +9 -8
  26. package/dist/lib/node-esm/testing/index.mjs.map +3 -3
  27. package/dist/lib/node-esm/translations.mjs +37 -0
  28. package/dist/lib/node-esm/translations.mjs.map +7 -0
  29. package/dist/lib/node-esm/types/index.mjs +2 -1
  30. package/dist/types/src/components/Table/ColumnActionsMenu.d.ts.map +1 -1
  31. package/dist/types/src/components/Table/ColumnSettings.d.ts +2 -2
  32. package/dist/types/src/components/Table/ColumnSettings.d.ts.map +1 -1
  33. package/dist/types/src/components/Table/DynamicTable.d.ts +3 -4
  34. package/dist/types/src/components/Table/DynamicTable.d.ts.map +1 -1
  35. package/dist/types/src/components/Table/DynamicTable.stories.d.ts +21 -20
  36. package/dist/types/src/components/Table/DynamicTable.stories.d.ts.map +1 -1
  37. package/dist/types/src/components/Table/Relations.stories.d.ts +87 -81
  38. package/dist/types/src/components/Table/Relations.stories.d.ts.map +1 -1
  39. package/dist/types/src/components/Table/RowActionsMenu.d.ts.map +1 -1
  40. package/dist/types/src/components/Table/Table.d.ts +2 -2
  41. package/dist/types/src/components/Table/Table.d.ts.map +1 -1
  42. package/dist/types/src/components/Table/Table.stories.d.ts +88 -81
  43. package/dist/types/src/components/Table/Table.stories.d.ts.map +1 -1
  44. package/dist/types/src/components/Table/TableContent.d.ts +2 -1
  45. package/dist/types/src/components/Table/TableContent.d.ts.map +1 -1
  46. package/dist/types/src/components/Table/TableToolbar.d.ts +1 -1
  47. package/dist/types/src/components/Table/TableToolbar.d.ts.map +1 -1
  48. package/dist/types/src/components/TableCellEditor/CellValidationMessage.d.ts.map +1 -1
  49. package/dist/types/src/components/TableCellEditor/FormCellEditor.d.ts +1 -2
  50. package/dist/types/src/components/TableCellEditor/FormCellEditor.d.ts.map +1 -1
  51. package/dist/types/src/components/TableCellEditor/TableCellEditor.d.ts.map +1 -1
  52. package/dist/types/src/components/TableCellEditor/TableCellEditor.stories.d.ts +19 -19
  53. package/dist/types/src/components/TableCellEditor/TableCellEditor.stories.d.ts.map +1 -1
  54. package/dist/types/src/components/testing.d.ts.map +1 -1
  55. package/dist/types/src/hooks/useAddRow.d.ts.map +1 -1
  56. package/dist/types/src/hooks/useProjectionModel.d.ts.map +1 -1
  57. package/dist/types/src/hooks/useTableModel.d.ts.map +1 -1
  58. package/dist/types/src/index.d.ts +0 -2
  59. package/dist/types/src/index.d.ts.map +1 -1
  60. package/dist/types/src/model/modal-controller.d.ts.map +1 -1
  61. package/dist/types/src/model/selection-model.d.ts +1 -1
  62. package/dist/types/src/model/selection-model.d.ts.map +1 -1
  63. package/dist/types/src/model/table-model.d.ts +7 -7
  64. package/dist/types/src/model/table-model.d.ts.map +1 -1
  65. package/dist/types/src/model/table-presentation.d.ts.map +1 -1
  66. package/dist/types/src/playwright/TableManager.d.ts.map +1 -1
  67. package/dist/types/src/playwright/playwright.config.d.ts.map +1 -1
  68. package/dist/types/src/testing/useTestTableModel.d.ts +1 -1
  69. package/dist/types/src/testing/useTestTableModel.d.ts.map +1 -1
  70. package/dist/types/src/translations.d.ts +19 -19
  71. package/dist/types/src/translations.d.ts.map +1 -1
  72. package/dist/types/src/types/Table.d.ts +12 -6
  73. package/dist/types/src/types/Table.d.ts.map +1 -1
  74. package/dist/types/src/util/dynamic-table.d.ts +6 -6
  75. package/dist/types/src/util/dynamic-table.d.ts.map +1 -1
  76. package/dist/types/src/util/query-ast.d.ts.map +1 -1
  77. package/dist/types/src/util/schema.d.ts.map +1 -1
  78. package/dist/types/src/util/signals.d.ts.map +1 -1
  79. package/dist/types/src/util/sort.d.ts.map +1 -1
  80. package/dist/types/src/util/table-buttons.d.ts +20 -20
  81. package/dist/types/src/util/table-buttons.d.ts.map +1 -1
  82. package/dist/types/src/util/table-controls.d.ts +4 -4
  83. package/dist/types/src/util/table-controls.d.ts.map +1 -1
  84. package/dist/types/src/util/tag.d.ts.map +1 -1
  85. package/dist/types/tsconfig.tsbuildinfo +1 -1
  86. package/package.json +53 -63
  87. package/src/components/Table/ColumnActionsMenu.tsx +2 -1
  88. package/src/components/Table/ColumnSettings.tsx +2 -2
  89. package/src/components/Table/DynamicTable.stories.tsx +9 -8
  90. package/src/components/Table/DynamicTable.tsx +11 -12
  91. package/src/components/Table/Relations.stories.tsx +46 -9
  92. package/src/components/Table/RowActionsMenu.tsx +3 -2
  93. package/src/components/Table/Table.stories.tsx +86 -33
  94. package/src/components/Table/TableContent.tsx +9 -4
  95. package/src/components/Table/TableToolbar.tsx +2 -2
  96. package/src/components/TableCellEditor/CellValidationMessage.tsx +1 -2
  97. package/src/components/TableCellEditor/FormCellEditor.tsx +8 -7
  98. package/src/components/TableCellEditor/TableCellEditor.stories.tsx +7 -4
  99. package/src/components/TableCellEditor/TableCellEditor.tsx +8 -6
  100. package/src/components/testing.ts +7 -12
  101. package/src/hooks/useProjectionModel.ts +5 -6
  102. package/src/hooks/useTableModel.ts +1 -1
  103. package/src/index.ts +0 -4
  104. package/src/model/table-model.test.ts +4 -9
  105. package/src/model/table-model.ts +43 -36
  106. package/src/model/table-presentation.test.ts +4 -9
  107. package/src/model/table-presentation.ts +15 -15
  108. package/src/testing/useTestTableModel.ts +6 -7
  109. package/src/types/Table.ts +16 -15
  110. package/src/util/dynamic-table.test.ts +13 -20
  111. package/src/util/dynamic-table.ts +19 -18
  112. package/dist/lib/browser/chunk-BF54SSNL.mjs.map +0 -7
  113. package/dist/lib/browser/chunk-F7Y374KL.mjs.map +0 -7
  114. package/dist/lib/node-esm/chunk-CCJ4LOVM.mjs.map +0 -7
  115. package/dist/lib/node-esm/chunk-SIRDIPHZ.mjs.map +0 -7
@@ -239,12 +239,12 @@ var tableControls = {
239
239
  // src/model/table-model.ts
240
240
  import { Atom as Atom2 } from "@effect-atom/atom-react";
241
241
  import { Resource as Resource2 } from "@dxos/context";
242
- import { Format as Format2, Obj, Order, Query, Ref } from "@dxos/echo";
243
- import { toEffectSchema } from "@dxos/echo/internal";
244
- import { getSnapshot } from "@dxos/echo/internal";
245
- import { getValue, setValue } from "@dxos/effect";
242
+ import { Format as Format2, Obj, Order, Query, Ref, Type } from "@dxos/echo";
243
+ import { toEffectSchema } from "@dxos/echo/JsonSchema";
244
+ import { getSnapshot } from "@dxos/echo/Obj";
245
+ import { SchemaEx } from "@dxos/effect";
246
246
  import { invariant } from "@dxos/invariant";
247
- import { ObjectId } from "@dxos/keys";
247
+ import { EntityId } from "@dxos/keys";
248
248
  import { formatForEditing, parseValue } from "@dxos/react-ui-form";
249
249
  import { validateSchema } from "@dxos/schema";
250
250
 
@@ -385,10 +385,10 @@ var SelectionModel = class extends Resource {
385
385
  // src/model/table-model.ts
386
386
  var __dxlog_file = "/__w/dxos/dxos/packages/ui/react-ui-table/src/model/table-model.ts";
387
387
  var createEchoChangeCallback = (table) => ({
388
- table: (mutate) => Obj.change(table, (table2) => mutate(table2)),
388
+ table: (mutate) => Obj.update(table, (table2) => mutate(table2)),
389
389
  row: (row, mutate) => {
390
390
  if (Obj.isObject(row)) {
391
- Obj.change(row, (row2) => mutate(row2));
391
+ Obj.update(row, (row2) => mutate(row2));
392
392
  } else {
393
393
  mutate(row);
394
394
  }
@@ -453,15 +453,7 @@ var TableModel = class extends Resource2 {
453
453
  ...defaultFeatures,
454
454
  ...features
455
455
  };
456
- invariant(!(this._features.dataEditable && this._features.selection.enabled && this._features.selection.mode === "single"), "Single selection is not compatible with editable tables.", {
457
- F: __dxlog_file,
458
- L: 197,
459
- S: this,
460
- A: [
461
- "!(this._features.dataEditable && this._features.selection.enabled && this._features.selection.mode === 'single')",
462
- "'Single selection is not compatible with editable tables.'"
463
- ]
464
- });
456
+ invariant(!(this._features.dataEditable && this._features.selection.enabled && this._features.selection.mode === "single"), "Single selection is not compatible with editable tables.", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 94, S: this, A: ["!(this._features.dataEditable && this._features.selection.enabled && this._features.selection.mode === 'single')", "'Single selection is not compatible with editable tables.'"] });
465
457
  this._visibleRange = Atom2.make({
466
458
  start: {
467
459
  row: 0,
@@ -476,8 +468,12 @@ var TableModel = class extends Resource2 {
476
468
  this._draftRows = Atom2.make([]);
477
469
  this._inMemorySort = Atom2.make(void 0);
478
470
  this._cellUpdateCounter = Atom2.make(0);
479
- this._persistedSort = Atom2.make((_get) => {
480
- const viewSnapshot = Obj.getSnapshot(this.view);
471
+ this._persistedSort = Atom2.make((get) => {
472
+ const view = get(this._object.view.atom);
473
+ if (!view) {
474
+ return void 0;
475
+ }
476
+ const viewSnapshot = Obj.getSnapshot(view);
481
477
  const ast = viewSnapshot.query.ast;
482
478
  const orders = extractOrder(ast);
483
479
  if (orders && orders.length > 0) {
@@ -512,8 +508,8 @@ var TableModel = class extends Resource2 {
512
508
  const sorted = [
513
509
  ...rows
514
510
  ].sort((a, b) => {
515
- const aValue = getValue(a, field.path);
516
- const bValue = getValue(b, field.path);
511
+ const aValue = SchemaEx.getValue(a, field.path);
512
+ const bValue = SchemaEx.getValue(b, field.path);
517
513
  return compareValues(aValue, bValue, fieldProjection.props.format, sort.direction);
518
514
  });
519
515
  return sorted;
@@ -540,19 +536,11 @@ var TableModel = class extends Resource2 {
540
536
  this._onRowAction = onRowAction;
541
537
  }
542
538
  get id() {
543
- return Obj.getDXN(this._object).toString();
539
+ return Obj.getURI(this._object);
544
540
  }
545
541
  get view() {
546
542
  const view = this._object.view.target;
547
- invariant(view, "Table model not initialized", {
548
- F: __dxlog_file,
549
- L: 308,
550
- S: this,
551
- A: [
552
- "view",
553
- "'Table model not initialized'"
554
- ]
555
- });
543
+ invariant(view, "Table model not initialized", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 190, S: this, A: ["view", "'Table model not initialized'"] });
556
544
  return view;
557
545
  }
558
546
  get table() {
@@ -612,15 +600,7 @@ var TableModel = class extends Resource2 {
612
600
  return this._pinnedRows;
613
601
  }
614
602
  get columnMeta() {
615
- invariant(this._columnMeta, void 0, {
616
- F: __dxlog_file,
617
- L: 381,
618
- S: this,
619
- A: [
620
- "this._columnMeta",
621
- ""
622
- ]
623
- });
603
+ invariant(this._columnMeta, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 244, S: this, A: ["this._columnMeta", ""] });
624
604
  return this._columnMeta;
625
605
  }
626
606
  get selection() {
@@ -639,15 +619,7 @@ var TableModel = class extends Resource2 {
639
619
  await this._selection.open(this._ctx);
640
620
  }
641
621
  initializeColumnMeta() {
642
- invariant(this._object.view.target, "View must be loaded before initializing column meta", {
643
- F: __dxlog_file,
644
- L: 405,
645
- S: this,
646
- A: [
647
- "this._object.view.target",
648
- "'View must be loaded before initializing column meta'"
649
- ]
650
- });
622
+ invariant(this._object.view.target, "View must be loaded before initializing column meta", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 263, S: this, A: ["this._object.view.target", "'View must be loaded before initializing column meta'"] });
651
623
  this._columnMeta = Atom2.make((get) => {
652
624
  const fields = get(this._projection.fields);
653
625
  const meta = Object.fromEntries(fields.map((field, index) => [
@@ -758,7 +730,7 @@ var TableModel = class extends Resource2 {
758
730
  return;
759
731
  }
760
732
  const draftData = {
761
- id: ObjectId.random()
733
+ id: EntityId.random()
762
734
  };
763
735
  const validationErrors = this.validateDraftRowData(draftData);
764
736
  const draftRow = {
@@ -841,13 +813,13 @@ var TableModel = class extends Resource2 {
841
813
  let value;
842
814
  if (plane === "frozenRowsEnd") {
843
815
  if (row >= 0 && row < this._registry.get(this._draftRows).length) {
844
- value = getValue(this._registry.get(this._draftRows)[row].data, field.path);
816
+ value = SchemaEx.getValue(this._registry.get(this._draftRows)[row].data, field.path);
845
817
  } else {
846
818
  return void 0;
847
819
  }
848
820
  } else {
849
821
  const sortedRows = this._registry.get(this._sortedRows);
850
- value = getValue(sortedRows[row], field.path);
822
+ value = SchemaEx.getValue(sortedRows[row], field.path);
851
823
  }
852
824
  if (value == null) {
853
825
  return "";
@@ -858,7 +830,7 @@ var TableModel = class extends Resource2 {
858
830
  if (!field.referencePath) {
859
831
  return "";
860
832
  }
861
- return getValue(value.target, field.referencePath);
833
+ return SchemaEx.getValue(value.target, field.referencePath);
862
834
  }
863
835
  default: {
864
836
  return formatForEditing({
@@ -893,7 +865,7 @@ var TableModel = class extends Resource2 {
893
865
  const snapshot = {
894
866
  ...draftRow.data
895
867
  };
896
- setValue(snapshot, field.path, transformedValue);
868
+ SchemaEx.setValue(snapshot, field.path, transformedValue);
897
869
  const validationErrors = this.validateDraftRowData(snapshot);
898
870
  if (validationErrors.length > 0) {
899
871
  const error = validationErrors.find((err) => err.path === field.path);
@@ -909,45 +881,23 @@ var TableModel = class extends Resource2 {
909
881
  };
910
882
  } else {
911
883
  const currentRow = this._registry.get(this._rows)[row];
912
- invariant(currentRow, "Invalid row index", {
913
- F: __dxlog_file,
914
- L: 693,
915
- S: this,
916
- A: [
917
- "currentRow",
918
- "'Invalid row index'"
919
- ]
920
- });
884
+ invariant(currentRow, "Invalid row index", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 537, S: this, A: ["currentRow", "'Invalid row index'"] });
921
885
  const snapshot = {
922
886
  ...getSnapshot(currentRow)
923
887
  };
924
- setValue(snapshot, field.path, transformedValue);
925
- const schema = Obj.getSchema(currentRow);
926
- invariant(schema, void 0, {
927
- F: __dxlog_file,
928
- L: 699,
929
- S: this,
930
- A: [
931
- "schema",
932
- ""
933
- ]
934
- });
888
+ SchemaEx.setValue(snapshot, field.path, transformedValue);
889
+ const type = Obj.getType(currentRow);
890
+ invariant(type, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 544, S: this, A: ["type", ""] });
891
+ const schema = Type.getSchema(type);
935
892
  const validationResult = validateSchema(schema, snapshot);
936
893
  if (validationResult && validationResult.length > 0) {
937
- const error = validationResult[0];
938
- invariant(error.path === field.path, void 0, {
939
- F: __dxlog_file,
940
- L: 704,
941
- S: this,
942
- A: [
943
- "error.path === field.path",
944
- ""
945
- ]
946
- });
947
- return {
948
- valid: false,
949
- error: error.message
950
- };
894
+ const error = validationResult.find((err) => err.path === field.path);
895
+ if (error) {
896
+ return {
897
+ valid: false,
898
+ error: error.message
899
+ };
900
+ }
951
901
  }
952
902
  return {
953
903
  valid: true
@@ -968,14 +918,14 @@ var TableModel = class extends Resource2 {
968
918
  }
969
919
  if (plane === "frozenRowsEnd") {
970
920
  if (row >= 0 && row < this._registry.get(this._draftRows).length) {
971
- setValue(this._registry.get(this._draftRows)[row].data, field.path, transformedValue);
921
+ SchemaEx.setValue(this._registry.get(this._draftRows)[row].data, field.path, transformedValue);
972
922
  this.validateDraftRow(row);
973
923
  }
974
924
  } else {
975
925
  const sortedRows = this._registry.get(this._sortedRows);
976
926
  const rowData = sortedRows[row];
977
927
  this._change.row(rowData, (mutableRow) => {
978
- setValue(mutableRow, field.path, transformedValue);
928
+ SchemaEx.setValue(mutableRow, field.path, transformedValue);
979
929
  });
980
930
  }
981
931
  };
@@ -989,10 +939,10 @@ var TableModel = class extends Resource2 {
989
939
  const field = fields[col];
990
940
  const sortedRows = this._registry.get(this._sortedRows);
991
941
  const rowData = sortedRows[row];
992
- const value = getValue(rowData, field.path);
942
+ const value = SchemaEx.getValue(rowData, field.path);
993
943
  const updatedValue = update(value);
994
944
  this._change.row(rowData, (mutableRow) => {
995
- setValue(mutableRow, field.path, updatedValue);
945
+ SchemaEx.setValue(mutableRow, field.path, updatedValue);
996
946
  });
997
947
  }
998
948
  /**
@@ -1107,12 +1057,12 @@ var TableModel = class extends Resource2 {
1107
1057
  const field = this._projection.getFields().find((f) => f.id === inMemorySort.fieldId);
1108
1058
  if (field) {
1109
1059
  const newQuery = baseQuery.orderBy(Order.property(field.path, inMemorySort.direction));
1110
- Obj.change(view, (view2) => {
1060
+ Obj.update(view, (view2) => {
1111
1061
  view2.query.ast = newQuery.ast;
1112
1062
  });
1113
1063
  }
1114
1064
  } else {
1115
- Obj.change(view, (view2) => {
1065
+ Obj.update(view, (view2) => {
1116
1066
  view2.query.ast = baseQuery.ast;
1117
1067
  });
1118
1068
  }
@@ -1170,7 +1120,8 @@ var editorTextToCellValue = (props, value) => {
1170
1120
  import { Atom as Atom3 } from "@effect-atom/atom-react";
1171
1121
  import * as Predicate from "effect/Predicate";
1172
1122
  import { Obj as Obj2 } from "@dxos/echo";
1173
- import { Format as Format3, TypeEnum, getValue as getValue2 } from "@dxos/echo/internal";
1123
+ import { Format as Format3, TypeEnum } from "@dxos/echo/Format";
1124
+ import { SchemaEx as SchemaEx2 } from "@dxos/effect";
1174
1125
  import { cellClassesForFieldType, formatForDisplay } from "@dxos/react-ui-form";
1175
1126
  import { toPlaneCellIndex } from "@dxos/react-ui-grid";
1176
1127
  import { VIEW_FIELD_LIMIT } from "@dxos/schema";
@@ -1251,7 +1202,7 @@ var TablePresentation = class {
1251
1202
  const { props } = this.getFieldProjection(field.id);
1252
1203
  const cell = {
1253
1204
  get value() {
1254
- const value = getValue2(obj, field.path);
1205
+ const value = SchemaEx2.getValue(obj, field.path);
1255
1206
  if (value == null) {
1256
1207
  return "";
1257
1208
  }
@@ -1268,7 +1219,7 @@ var TablePresentation = class {
1268
1219
  if (!field.referencePath) {
1269
1220
  return "";
1270
1221
  }
1271
- return getValue2(value.target, field.referencePath);
1222
+ return SchemaEx2.getValue(value.target, field.referencePath);
1272
1223
  }
1273
1224
  default: {
1274
1225
  return formatForDisplay({
@@ -1291,7 +1242,7 @@ var TablePresentation = class {
1291
1242
  }
1292
1243
  cell.className = mx(classes);
1293
1244
  if (props.type === TypeEnum.Array) {
1294
- const targetArray = getValue2(obj, field.path);
1245
+ const targetArray = SchemaEx2.getValue(obj, field.path);
1295
1246
  if (targetArray && Array.isArray(targetArray)) {
1296
1247
  const getLabel = (value) => {
1297
1248
  if (!value) {
@@ -1314,18 +1265,18 @@ var TablePresentation = class {
1314
1265
  const tags = targetArray.map(getLabel).filter(Predicate.isNotNullable).map((title) => {
1315
1266
  return `<span class="dx-tag" data-hue="neutral">${title}</span>`;
1316
1267
  }).join("");
1317
- cell.accessoryHtml = `<div role='none' class="flex flex-row gap-1 overflow-x-auto">${tags}</div>`;
1268
+ cell.accessoryHtml = `<div class="flex flex-row gap-1 overflow-x-auto">${tags}</div>`;
1318
1269
  }
1319
1270
  }
1320
1271
  if (props.format === Format3.TypeFormat.Ref && props.referenceSchema) {
1321
- const targetObj = getValue2(obj, field.path)?.target;
1272
+ const targetObj = SchemaEx2.getValue(obj, field.path)?.target;
1322
1273
  if (targetObj) {
1323
- const dxn = Obj2.getDXN(targetObj)?.toString();
1324
- cell.accessoryHtml = `<div role="none" class="absolute end-0 inset-y-0 p-(--dx-grid-cell-content-padding-block)"><dx-anchor dxn=${dxn} class="dx-button w-6 aspect-square min-h-0" data-dx-grid-action="accessory"><dx-icon icon="ph--link-simple--regular"/></dx-anchor></div>`;
1274
+ const uri = Obj2.getURI(targetObj);
1275
+ cell.accessoryHtml = `<div role="none" class="absolute end-0 inset-y-0 p-(--dx-grid-cell-content-padding-block)"><dx-anchor uri=${uri} class="dx-button w-6 aspect-square min-h-0" data-dx-grid-action="accessory"><dx-icon icon="ph--link-simple--regular"/></dx-anchor></div>`;
1325
1276
  }
1326
1277
  }
1327
1278
  if (props.format === Format3.TypeFormat.Boolean) {
1328
- const value = getValue2(obj, field.path);
1279
+ const value = SchemaEx2.getValue(obj, field.path);
1329
1280
  cell.accessoryHtml = tableControls.switch.render({
1330
1281
  colIndex,
1331
1282
  rowIndex: displayIndex,
@@ -1334,7 +1285,7 @@ var TablePresentation = class {
1334
1285
  cell.readonly = "no-text-select";
1335
1286
  }
1336
1287
  if (props.format === Format3.TypeFormat.SingleSelect) {
1337
- const value = getValue2(obj, field.path);
1288
+ const value = SchemaEx2.getValue(obj, field.path);
1338
1289
  const options = this.model.projection.getFieldProjection(field.id).props.options;
1339
1290
  if (options) {
1340
1291
  const option = options.find((o) => o.id === value);
@@ -1344,7 +1295,7 @@ var TablePresentation = class {
1344
1295
  }
1345
1296
  }
1346
1297
  if (props.format === Format3.TypeFormat.MultiSelect) {
1347
- const values = getValue2(obj, field.path);
1298
+ const values = SchemaEx2.getValue(obj, field.path);
1348
1299
  const options = this.model.projection.getFieldProjection(field.id).props.options;
1349
1300
  if (options && values && values.length > 0) {
1350
1301
  const tags = values.map((value) => {
@@ -1593,11 +1544,11 @@ var cellClassesForRowSelection = (selected, selectionMode) => {
1593
1544
  switch (selectionMode) {
1594
1545
  case "single":
1595
1546
  return [
1596
- "dx-grid__cell--no-focus-unfurl !bg-current-surface hover:bg-hover-surface cursor-pointer!"
1547
+ "dx-grid__cell--no-focus-unfurl bg-current-surface! hover:bg-hover-surface cursor-pointer!"
1597
1548
  ];
1598
1549
  case "multiple":
1599
1550
  return [
1600
- "!bg-grid-cell-selected"
1551
+ "bg-grid-cell-selected!"
1601
1552
  ];
1602
1553
  }
1603
1554
  };
@@ -1624,7 +1575,7 @@ var useAddRow = ({ db, schema }) => {
1624
1575
 
1625
1576
  // src/hooks/useProjectionModel.ts
1626
1577
  import { useState } from "react";
1627
- import { JsonSchema, Type } from "@dxos/echo";
1578
+ import { Type as Type2 } from "@dxos/echo";
1628
1579
  import { useAsyncEffect } from "@dxos/react-ui";
1629
1580
  import { ProjectionModel, createEchoChangeCallback as createEchoChangeCallback2 } from "@dxos/schema";
1630
1581
  var useProjectionModel = (schema, table, registry) => {
@@ -1632,8 +1583,8 @@ var useProjectionModel = (schema, table, registry) => {
1632
1583
  useAsyncEffect(async () => {
1633
1584
  if (schema && table) {
1634
1585
  const view = await table.view.load();
1635
- const jsonSchema = Type.isMutable(schema) ? schema.jsonSchema : JsonSchema.toJsonSchema(schema);
1636
- const change = createEchoChangeCallback2(view, Type.isMutable(schema) ? schema : void 0);
1586
+ const jsonSchema = schema.jsonSchema;
1587
+ const change = createEchoChangeCallback2(view, Type2.getDatabase(schema) != null ? schema : void 0);
1637
1588
  const projection2 = new ProjectionModel({
1638
1589
  registry,
1639
1590
  view,
@@ -1659,7 +1610,7 @@ import { useSelected, useSelectionActions } from "@dxos/react-ui-attention";
1659
1610
  import { isNonNullable } from "@dxos/util";
1660
1611
  var useTableModel = ({ object, projection, db, rows, rowActions, features, onSelectionChanged, onRowAction, ...props }) => {
1661
1612
  const registry = useContext(RegistryContext);
1662
- const selected = useSelected(object && Obj4.getDXN(object).toString(), "multi");
1613
+ const selected = useSelected(object && Obj4.getURI(object), "multi");
1663
1614
  const initialSelection = useMemo(() => selected, [
1664
1615
  object
1665
1616
  ]);
@@ -1750,4 +1701,4 @@ export {
1750
1701
  useProjectionModel,
1751
1702
  useTableModel
1752
1703
  };
1753
- //# sourceMappingURL=chunk-CCJ4LOVM.mjs.map
1704
+ //# sourceMappingURL=chunk-KOSV2J5N.mjs.map