@dxos/react-ui-table 0.8.4-main.9735255 → 0.8.4-main.abd8ff62ef

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 (137) hide show
  1. package/dist/lib/browser/{chunk-OZBLY7XM.mjs → chunk-FBURZBPH.mjs} +17 -23
  2. package/dist/lib/browser/chunk-FBURZBPH.mjs.map +7 -0
  3. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  4. package/dist/lib/browser/chunk-J5LGTIGS.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-I5IFW7UF.mjs → chunk-YGC7LZJN.mjs} +39 -90
  6. package/dist/lib/browser/chunk-YGC7LZJN.mjs.map +7 -0
  7. package/dist/lib/browser/index.mjs +198 -235
  8. package/dist/lib/browser/index.mjs.map +4 -4
  9. package/dist/lib/browser/meta.json +1 -1
  10. package/dist/lib/browser/testing/index.mjs +7 -6
  11. package/dist/lib/browser/testing/index.mjs.map +3 -3
  12. package/dist/lib/browser/translations.mjs +36 -0
  13. package/dist/lib/browser/translations.mjs.map +7 -0
  14. package/dist/lib/browser/types/index.mjs +2 -1
  15. package/dist/lib/node-esm/{chunk-WNZSKIRF.mjs → chunk-DKKMSVKP.mjs} +17 -23
  16. package/dist/lib/node-esm/chunk-DKKMSVKP.mjs.map +7 -0
  17. package/dist/lib/node-esm/{chunk-DDJKYJFY.mjs → chunk-GKIWDEZ7.mjs} +39 -90
  18. package/dist/lib/node-esm/chunk-GKIWDEZ7.mjs.map +7 -0
  19. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  20. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  21. package/dist/lib/node-esm/index.mjs +198 -235
  22. package/dist/lib/node-esm/index.mjs.map +4 -4
  23. package/dist/lib/node-esm/meta.json +1 -1
  24. package/dist/lib/node-esm/testing/index.mjs +7 -6
  25. package/dist/lib/node-esm/testing/index.mjs.map +3 -3
  26. package/dist/lib/node-esm/translations.mjs +37 -0
  27. package/dist/lib/node-esm/translations.mjs.map +7 -0
  28. package/dist/lib/node-esm/types/index.mjs +2 -1
  29. package/dist/types/src/components/Table/ColumnActionsMenu.d.ts.map +1 -1
  30. package/dist/types/src/components/Table/ColumnSettings.d.ts.map +1 -1
  31. package/dist/types/src/components/Table/DynamicTable.d.ts +5 -4
  32. package/dist/types/src/components/Table/DynamicTable.d.ts.map +1 -1
  33. package/dist/types/src/components/Table/DynamicTable.stories.d.ts +20 -22
  34. package/dist/types/src/components/Table/DynamicTable.stories.d.ts.map +1 -1
  35. package/dist/types/src/components/Table/Relations.stories.d.ts +82 -82
  36. package/dist/types/src/components/Table/Relations.stories.d.ts.map +1 -1
  37. package/dist/types/src/components/Table/RowActionsMenu.d.ts.map +1 -1
  38. package/dist/types/src/components/Table/Table.d.ts +20 -21
  39. package/dist/types/src/components/Table/Table.d.ts.map +1 -1
  40. package/dist/types/src/components/Table/Table.stories.d.ts +84 -84
  41. package/dist/types/src/components/Table/Table.stories.d.ts.map +1 -1
  42. package/dist/types/src/components/Table/TableContent.d.ts +17 -0
  43. package/dist/types/src/components/Table/TableContent.d.ts.map +1 -0
  44. package/dist/types/src/components/Table/TableToolbar.d.ts +21 -0
  45. package/dist/types/src/components/Table/TableToolbar.d.ts.map +1 -0
  46. package/dist/types/src/components/TableCellEditor/CellValidationMessage.d.ts.map +1 -1
  47. package/dist/types/src/components/TableCellEditor/FormCellEditor.d.ts +3 -3
  48. package/dist/types/src/components/TableCellEditor/FormCellEditor.d.ts.map +1 -1
  49. package/dist/types/src/components/TableCellEditor/TableCellEditor.d.ts +2 -2
  50. package/dist/types/src/components/TableCellEditor/TableCellEditor.d.ts.map +1 -1
  51. package/dist/types/src/components/TableCellEditor/TableCellEditor.stories.d.ts +22 -24
  52. package/dist/types/src/components/TableCellEditor/TableCellEditor.stories.d.ts.map +1 -1
  53. package/dist/types/src/components/index.d.ts +0 -1
  54. package/dist/types/src/components/index.d.ts.map +1 -1
  55. package/dist/types/src/components/testing.d.ts.map +1 -1
  56. package/dist/types/src/hooks/useAddRow.d.ts +1 -1
  57. package/dist/types/src/hooks/useAddRow.d.ts.map +1 -1
  58. package/dist/types/src/hooks/useProjectionModel.d.ts +1 -1
  59. package/dist/types/src/hooks/useProjectionModel.d.ts.map +1 -1
  60. package/dist/types/src/hooks/useTableModel.d.ts +1 -1
  61. package/dist/types/src/hooks/useTableModel.d.ts.map +1 -1
  62. package/dist/types/src/index.d.ts +0 -2
  63. package/dist/types/src/index.d.ts.map +1 -1
  64. package/dist/types/src/model/modal-controller.d.ts.map +1 -1
  65. package/dist/types/src/model/selection-model.d.ts +1 -1
  66. package/dist/types/src/model/selection-model.d.ts.map +1 -1
  67. package/dist/types/src/model/table-model.d.ts +7 -6
  68. package/dist/types/src/model/table-model.d.ts.map +1 -1
  69. package/dist/types/src/model/table-presentation.d.ts.map +1 -1
  70. package/dist/types/src/playwright/TableManager.d.ts +2 -1
  71. package/dist/types/src/playwright/TableManager.d.ts.map +1 -1
  72. package/dist/types/src/playwright/playwright.config.d.ts.map +1 -1
  73. package/dist/types/src/testing/useTestTableModel.d.ts +2 -2
  74. package/dist/types/src/testing/useTestTableModel.d.ts.map +1 -1
  75. package/dist/types/src/translations.d.ts +19 -21
  76. package/dist/types/src/translations.d.ts.map +1 -1
  77. package/dist/types/src/types/Table.d.ts +1 -6
  78. package/dist/types/src/types/Table.d.ts.map +1 -1
  79. package/dist/types/src/util/dynamic-table.d.ts +6 -5
  80. package/dist/types/src/util/dynamic-table.d.ts.map +1 -1
  81. package/dist/types/src/util/dynamic-table.test.d.ts +2 -0
  82. package/dist/types/src/util/dynamic-table.test.d.ts.map +1 -0
  83. package/dist/types/src/util/query-ast.d.ts.map +1 -1
  84. package/dist/types/src/util/schema.d.ts.map +1 -1
  85. package/dist/types/src/util/signals.d.ts.map +1 -1
  86. package/dist/types/src/util/sort.d.ts.map +1 -1
  87. package/dist/types/src/util/table-buttons.d.ts +20 -20
  88. package/dist/types/src/util/table-buttons.d.ts.map +1 -1
  89. package/dist/types/src/util/table-controls.d.ts +4 -4
  90. package/dist/types/src/util/table-controls.d.ts.map +1 -1
  91. package/dist/types/src/util/tag.d.ts.map +1 -1
  92. package/dist/types/tsconfig.tsbuildinfo +1 -1
  93. package/package.json +59 -62
  94. package/src/components/Table/ColumnActionsMenu.tsx +7 -6
  95. package/src/components/Table/ColumnSettings.tsx +3 -4
  96. package/src/components/Table/DynamicTable.stories.tsx +19 -18
  97. package/src/components/Table/DynamicTable.tsx +13 -20
  98. package/src/components/Table/Relations.stories.tsx +78 -34
  99. package/src/components/Table/RowActionsMenu.tsx +3 -2
  100. package/src/components/Table/Table.stories.tsx +72 -52
  101. package/src/components/Table/Table.tsx +41 -435
  102. package/src/components/Table/TableContent.tsx +421 -0
  103. package/src/components/{TableToolbar → Table}/TableToolbar.tsx +36 -43
  104. package/src/components/TableCellEditor/CellValidationMessage.tsx +4 -4
  105. package/src/components/TableCellEditor/FormCellEditor.tsx +14 -7
  106. package/src/components/TableCellEditor/TableCellEditor.stories.tsx +13 -12
  107. package/src/components/TableCellEditor/TableCellEditor.tsx +12 -10
  108. package/src/components/index.ts +0 -1
  109. package/src/components/testing.ts +10 -10
  110. package/src/hooks/useAddRow.ts +1 -1
  111. package/src/hooks/useProjectionModel.ts +3 -3
  112. package/src/hooks/useTableModel.ts +1 -1
  113. package/src/index.ts +0 -4
  114. package/src/model/table-model.test.ts +5 -6
  115. package/src/model/table-model.ts +18 -17
  116. package/src/model/table-presentation.test.ts +13 -7
  117. package/src/model/table-presentation.ts +12 -12
  118. package/src/playwright/TableManager.ts +10 -3
  119. package/src/playwright/playwright.config.ts +1 -1
  120. package/src/playwright/smoke.spec.ts +48 -5
  121. package/src/testing/useTestTableModel.ts +6 -6
  122. package/src/translations.ts +19 -21
  123. package/src/types/Table.ts +12 -23
  124. package/src/util/dynamic-table.test.ts +77 -0
  125. package/src/util/dynamic-table.ts +17 -16
  126. package/src/util/query-ast.ts +3 -0
  127. package/src/util/table-buttons.ts +1 -1
  128. package/src/util/table-controls.ts +2 -2
  129. package/dist/lib/browser/chunk-I5IFW7UF.mjs.map +0 -7
  130. package/dist/lib/browser/chunk-OZBLY7XM.mjs.map +0 -7
  131. package/dist/lib/node-esm/chunk-DDJKYJFY.mjs.map +0 -7
  132. package/dist/lib/node-esm/chunk-WNZSKIRF.mjs.map +0 -7
  133. package/dist/types/src/components/TableToolbar/TableToolbar.d.ts +0 -21
  134. package/dist/types/src/components/TableToolbar/TableToolbar.d.ts.map +0 -1
  135. package/dist/types/src/components/TableToolbar/index.d.ts +0 -2
  136. package/dist/types/src/components/TableToolbar/index.d.ts.map +0 -1
  137. package/src/components/TableToolbar/index.ts +0 -5
@@ -1,36 +1,39 @@
1
- var __defProp = Object.defineProperty;
2
- var __export = (target, all) => {
3
- for (var name in all)
4
- __defProp(target, name, { get: all[name], enumerable: true });
5
- };
1
+ import {
2
+ __export
3
+ } from "./chunk-J5LGTIGS.mjs";
6
4
 
7
5
  // src/types/Table.ts
8
6
  var Table_exports = {};
9
7
  __export(Table_exports, {
10
8
  Table: () => Table,
11
- TableV1: () => TableV1,
12
9
  make: () => make
13
10
  });
14
11
  import * as Match from "effect/Match";
15
12
  import * as Schema from "effect/Schema";
16
13
  import * as SchemaAST from "effect/SchemaAST";
17
- import { Obj, Ref, Type } from "@dxos/echo";
14
+ import { Annotation, JsonSchema, Obj, Ref, Type } from "@dxos/echo";
15
+ import { View } from "@dxos/echo";
18
16
  import { FormInputAnnotation, LabelAnnotation } from "@dxos/echo/internal";
19
- import { View, ViewAnnotation } from "@dxos/schema";
17
+ import { ViewAnnotation } from "@dxos/schema";
20
18
  var Table = Schema.Struct({
21
19
  name: Schema.String.pipe(Schema.optional),
22
- view: Type.Ref(View.View).pipe(FormInputAnnotation.set(false)),
20
+ view: Ref.Ref(View.View).pipe(FormInputAnnotation.set(false)),
23
21
  sizes: Schema.Record({
24
22
  // TODO(wittjosiah): Should be JsonPath.
25
23
  key: Schema.String,
26
24
  value: Schema.Number
27
25
  }).pipe(Schema.mutable, FormInputAnnotation.set(false))
28
26
  }).pipe(Type.object({
29
- typename: "dxos.org/type/Table",
30
- version: "0.2.0"
27
+ typename: "org.dxos.type.table",
28
+ version: "0.1.0"
31
29
  }), LabelAnnotation.set([
32
30
  "name"
33
- ]), ViewAnnotation.set(true));
31
+ ]), ViewAnnotation.set([
32
+ "view"
33
+ ]), Annotation.IconAnnotation.set({
34
+ icon: "ph--table--regular",
35
+ hue: "green"
36
+ }));
34
37
  var make = ({ name, sizes = {}, view, jsonSchema }) => {
35
38
  const table = Obj.make(Table, {
36
39
  name,
@@ -38,7 +41,7 @@ var make = ({ name, sizes = {}, view, jsonSchema }) => {
38
41
  sizes
39
42
  });
40
43
  if (jsonSchema) {
41
- const schema = Type.toEffectSchema(jsonSchema);
44
+ const schema = JsonSchema.toEffectSchema(jsonSchema);
42
45
  const properties = SchemaAST.getPropertySignatures(schema.ast);
43
46
  for (const property of properties) {
44
47
  const name2 = property.name.toString();
@@ -60,17 +63,8 @@ var make = ({ name, sizes = {}, view, jsonSchema }) => {
60
63
  }
61
64
  return table;
62
65
  };
63
- var TableV1 = Schema.Struct({
64
- sizes: Schema.Record({
65
- key: Schema.String,
66
- value: Schema.Number
67
- }).pipe(Schema.mutable)
68
- }).pipe(Type.object({
69
- typename: "dxos.org/type/Table",
70
- version: "0.1.0"
71
- }));
72
66
 
73
67
  export {
74
68
  Table_exports
75
69
  };
76
- //# sourceMappingURL=chunk-OZBLY7XM.mjs.map
70
+ //# sourceMappingURL=chunk-FBURZBPH.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/types/Table.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Match from 'effect/Match';\nimport * as Schema from 'effect/Schema';\nimport * as SchemaAST from 'effect/SchemaAST';\n\nimport { Annotation, JsonSchema, Obj, Ref, Type } from '@dxos/echo';\nimport { View } from '@dxos/echo';\nimport { FormInputAnnotation, type JsonPath, type JsonSchemaType, LabelAnnotation } from '@dxos/echo/internal';\nimport { ViewAnnotation } from '@dxos/schema';\n\nexport const Table = Schema.Struct({\n name: Schema.String.pipe(Schema.optional),\n\n view: Ref.Ref(View.View).pipe(FormInputAnnotation.set(false)),\n\n sizes: Schema.Record({\n // TODO(wittjosiah): Should be JsonPath.\n key: Schema.String,\n value: Schema.Number,\n }).pipe(Schema.mutable, FormInputAnnotation.set(false)),\n}).pipe(\n Type.object({\n typename: 'org.dxos.type.table',\n version: '0.1.0',\n }),\n LabelAnnotation.set(['name']),\n ViewAnnotation.set(['view']),\n Annotation.IconAnnotation.set({\n icon: 'ph--table--regular',\n hue: 'green',\n }),\n);\n\nexport interface Table extends Schema.Schema.Type<typeof Table> {}\n\ntype MakeProps = {\n name?: string;\n sizes?: Record<string, number>;\n view: View.View;\n /** Required to auto-size columns. */\n jsonSchema?: JsonSchemaType;\n};\n\n/**\n * Make a table as a view of a data set.\n */\nexport const make = ({ name, sizes = {}, view, jsonSchema }: MakeProps): Table => {\n const table = Obj.make(Table, { name, view: Ref.make(view), sizes } as Obj.MakeProps<typeof Table>);\n\n // Preset sizes.\n if (jsonSchema) {\n const schema = JsonSchema.toEffectSchema(jsonSchema);\n const properties = SchemaAST.getPropertySignatures(schema.ast);\n for (const property of properties) {\n const name = property.name.toString() as JsonPath;\n if (sizes?.[name]) {\n table.sizes[name] = sizes[name];\n continue;\n }\n\n Match.type<SchemaAST.AST>().pipe(\n Match.when({ _tag: 'BooleanKeyword' }, () => {\n table.sizes[name] = 100;\n }),\n Match.when({ _tag: 'NumberKeyword' }, () => {\n table.sizes[name] = 100;\n }),\n Match.orElse(() => {\n // Noop.\n }),\n )(property.type);\n }\n }\n\n return table;\n};\n"],
5
+ "mappings": ";;;;;AAAA;;;;;AAIA,YAAYA,WAAW;AACvB,YAAYC,YAAY;AACxB,YAAYC,eAAe;AAE3B,SAASC,YAAYC,YAAYC,KAAKC,KAAKC,YAAY;AACvD,SAASC,YAAY;AACrB,SAASC,qBAAyDC,uBAAuB;AACzF,SAASC,sBAAsB;AAExB,IAAMC,QAAeC,cAAO;EACjCC,MAAaC,cAAOC,KAAYC,eAAQ;EAExCC,MAAMZ,IAAIA,IAAIE,KAAKA,IAAI,EAAEQ,KAAKP,oBAAoBU,IAAI,KAAA,CAAA;EAEtDC,OAAcC,cAAO;;IAEnBC,KAAYP;IACZQ,OAAcC;EAChB,CAAA,EAAGR,KAAYS,gBAAShB,oBAAoBU,IAAI,KAAA,CAAA;AAClD,CAAA,EAAGH,KACDT,KAAKmB,OAAO;EACVC,UAAU;EACVC,SAAS;AACX,CAAA,GACAlB,gBAAgBS,IAAI;EAAC;CAAO,GAC5BR,eAAeQ,IAAI;EAAC;CAAO,GAC3BhB,WAAW0B,eAAeV,IAAI;EAC5BW,MAAM;EACNC,KAAK;AACP,CAAA,CAAA;AAgBK,IAAMC,OAAO,CAAC,EAAElB,MAAMM,QAAQ,CAAC,GAAGF,MAAMe,WAAU,MAAa;AACpE,QAAMC,QAAQ7B,IAAI2B,KAAKpB,OAAO;IAAEE;IAAMI,MAAMZ,IAAI0B,KAAKd,IAAAA;IAAOE;EAAM,CAAA;AAGlE,MAAIa,YAAY;AACd,UAAME,SAAS/B,WAAWgC,eAAeH,UAAAA;AACzC,UAAMI,aAAuBC,gCAAsBH,OAAOI,GAAG;AAC7D,eAAWC,YAAYH,YAAY;AACjC,YAAMvB,QAAO0B,SAAS1B,KAAK2B,SAAQ;AACnC,UAAIrB,QAAQN,KAAAA,GAAO;AACjBoB,cAAMd,MAAMN,KAAAA,IAAQM,MAAMN,KAAAA;AAC1B;MACF;AAEAd,MAAM0C,WAAI,EAAkB1B,KACpB2B,WAAK;QAAEC,MAAM;MAAiB,GAAG,MAAA;AACrCV,cAAMd,MAAMN,KAAAA,IAAQ;MACtB,CAAA,GACM6B,WAAK;QAAEC,MAAM;MAAgB,GAAG,MAAA;AACpCV,cAAMd,MAAMN,KAAAA,IAAQ;MACtB,CAAA,GACM+B,aAAO,MAAA;MAEb,CAAA,CAAA,EACAL,SAASE,IAAI;IACjB;EACF;AAEA,SAAOR;AACT;",
6
+ "names": ["Match", "Schema", "SchemaAST", "Annotation", "JsonSchema", "Obj", "Ref", "Type", "View", "FormInputAnnotation", "LabelAnnotation", "ViewAnnotation", "Table", "Struct", "name", "String", "pipe", "optional", "view", "set", "sizes", "Record", "key", "value", "Number", "mutable", "object", "typename", "version", "IconAnnotation", "icon", "hue", "make", "jsonSchema", "table", "schema", "toEffectSchema", "properties", "getPropertySignatures", "ast", "property", "toString", "type", "when", "_tag", "orElse"]
7
+ }
@@ -0,0 +1,10 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __export = (target, all) => {
3
+ for (var name in all)
4
+ __defProp(target, name, { get: all[name], enumerable: true });
5
+ };
6
+
7
+ export {
8
+ __export
9
+ };
10
+ //# sourceMappingURL=chunk-J5LGTIGS.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -6,6 +6,9 @@ var extractOrder = (queryAst) => {
6
6
  if (queryAst.type === "options") {
7
7
  return extractOrder(queryAst.query);
8
8
  }
9
+ if (queryAst.type === "from") {
10
+ return extractOrder(queryAst.query);
11
+ }
9
12
  return void 0;
10
13
  };
11
14
 
@@ -69,7 +72,7 @@ var BUTTON_IDENTIFIERS = {
69
72
  };
70
73
  var createButton = ({ attr, data, disabled = false, icon, testId, type: _type = "primary" }) => {
71
74
  const dataAttrs = Object.entries(data).map(([k, v]) => `${k}="${v}"`).join(" ");
72
- return `<button ${attr} data-testid="${testId}" class="dx-button is-6 aspect-square pli-0.5 min-bs-0" ${dataAttrs} ${disabled ? "disabled" : ""} data-dx-grid-action="accessory"><svg data-size="4"><use href="/icons.svg#${icon}"/></svg></button>`;
75
+ return `<button ${attr} data-testid="${testId}" class="dx-button w-6 aspect-square px-0.5 min-h-0" ${dataAttrs} ${disabled ? "disabled" : ""} data-dx-grid-action="accessory"><svg data-size="4"><use href="/icons.svg#${icon}"/></svg></button>`;
73
76
  };
74
77
  var addColumnButton = {
75
78
  attr: BUTTON_IDENTIFIERS.newColumn,
@@ -182,8 +185,8 @@ var CONTROL_IDENTIFIERS = {
182
185
  switch: "data-table-switch"
183
186
  };
184
187
  var BASE_CLASSES = {
185
- checkbox: "absolute inset-block-[.375rem] inline-end-[.375rem] dx-checkbox",
186
- switch: "absolute inset-block-[.25rem] inline-end-[.25rem] dx-checkbox--switch"
188
+ checkbox: "absolute inset-y-[.375rem] end-[.375rem] dx-checkbox",
189
+ switch: "absolute inset-y-[.25rem] end-[.25rem] dx-checkbox--switch"
187
190
  };
188
191
  var renderAttributes = (data) => {
189
192
  return Object.entries(data).map(([k, v]) => `${k}="${v}"`).join(" ");
@@ -380,10 +383,10 @@ var SelectionModel = class extends Resource {
380
383
  // src/model/table-model.ts
381
384
  var __dxlog_file = "/__w/dxos/dxos/packages/ui/react-ui-table/src/model/table-model.ts";
382
385
  var createEchoChangeCallback = (table) => ({
383
- table: (mutate) => Obj.change(table, (mutableTable) => mutate(mutableTable)),
386
+ table: (mutate) => Obj.update(table, (table2) => mutate(table2)),
384
387
  row: (row, mutate) => {
385
388
  if (Obj.isObject(row)) {
386
- Obj.change(row, (mutableRow) => mutate(mutableRow));
389
+ Obj.update(row, (row2) => mutate(row2));
387
390
  } else {
388
391
  mutate(row);
389
392
  }
@@ -410,7 +413,7 @@ var TableModel = class extends Resource2 {
410
413
  _visibleRange;
411
414
  _onInsertRow;
412
415
  _onDeleteRows;
413
- _onDeleteColumn;
416
+ _onColumnDelete;
414
417
  _onCellUpdate;
415
418
  _onRowOrderChange;
416
419
  _onRowAction;
@@ -436,7 +439,7 @@ var TableModel = class extends Resource2 {
436
439
  constructor({ registry, object, projection, db, change, features = {}, initialSelection = [], pinnedRows = {
437
440
  top: [],
438
441
  bottom: []
439
- }, rowActions = [], onCellUpdate, onDeleteColumn, onDeleteRows, onInsertRow, onRowOrderChange, onRowAction }) {
442
+ }, rowActions = [], onCellUpdate, onColumnDelete, onDeleteRows, onInsertRow, onRowOrderChange, onRowAction }) {
440
443
  super();
441
444
  this._registry = registry;
442
445
  this._object = object;
@@ -448,15 +451,7 @@ var TableModel = class extends Resource2 {
448
451
  ...defaultFeatures,
449
452
  ...features
450
453
  };
451
- invariant(!(this._features.dataEditable && this._features.selection.enabled && this._features.selection.mode === "single"), "Single selection is not compatible with editable tables.", {
452
- F: __dxlog_file,
453
- L: 196,
454
- S: this,
455
- A: [
456
- "!(this._features.dataEditable && this._features.selection.enabled && this._features.selection.mode === 'single')",
457
- "'Single selection is not compatible with editable tables.'"
458
- ]
459
- });
454
+ 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.'"] });
460
455
  this._visibleRange = Atom2.make({
461
456
  start: {
462
457
  row: 0,
@@ -529,7 +524,7 @@ var TableModel = class extends Resource2 {
529
524
  this._rowActions = rowActions;
530
525
  this._onInsertRow = onInsertRow;
531
526
  this._onDeleteRows = onDeleteRows;
532
- this._onDeleteColumn = onDeleteColumn;
527
+ this._onColumnDelete = onColumnDelete;
533
528
  this._onCellUpdate = onCellUpdate;
534
529
  this._onRowOrderChange = onRowOrderChange;
535
530
  this._onRowAction = onRowAction;
@@ -539,15 +534,7 @@ var TableModel = class extends Resource2 {
539
534
  }
540
535
  get view() {
541
536
  const view = this._object.view.target;
542
- invariant(view, "Table model not initialized", {
543
- F: __dxlog_file,
544
- L: 307,
545
- S: this,
546
- A: [
547
- "view",
548
- "'Table model not initialized'"
549
- ]
550
- });
537
+ invariant(view, "Table model not initialized", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 186, S: this, A: ["view", "'Table model not initialized'"] });
551
538
  return view;
552
539
  }
553
540
  get table() {
@@ -607,15 +594,7 @@ var TableModel = class extends Resource2 {
607
594
  return this._pinnedRows;
608
595
  }
609
596
  get columnMeta() {
610
- invariant(this._columnMeta, void 0, {
611
- F: __dxlog_file,
612
- L: 380,
613
- S: this,
614
- A: [
615
- "this._columnMeta",
616
- ""
617
- ]
618
- });
597
+ invariant(this._columnMeta, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 240, S: this, A: ["this._columnMeta", ""] });
619
598
  return this._columnMeta;
620
599
  }
621
600
  get selection() {
@@ -634,15 +613,7 @@ var TableModel = class extends Resource2 {
634
613
  await this._selection.open(this._ctx);
635
614
  }
636
615
  initializeColumnMeta() {
637
- invariant(this._object.view.target, "View must be loaded before initializing column meta", {
638
- F: __dxlog_file,
639
- L: 404,
640
- S: this,
641
- A: [
642
- "this._object.view.target",
643
- "'View must be loaded before initializing column meta'"
644
- ]
645
- });
616
+ invariant(this._object.view.target, "View must be loaded before initializing column meta", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 259, S: this, A: ["this._object.view.target", "'View must be loaded before initializing column meta'"] });
646
617
  this._columnMeta = Atom2.make((get) => {
647
618
  const fields = get(this._projection.fields);
648
619
  const meta = Object.fromEntries(fields.map((field, index) => [
@@ -904,39 +875,17 @@ var TableModel = class extends Resource2 {
904
875
  };
905
876
  } else {
906
877
  const currentRow = this._registry.get(this._rows)[row];
907
- invariant(currentRow, "Invalid row index", {
908
- F: __dxlog_file,
909
- L: 692,
910
- S: this,
911
- A: [
912
- "currentRow",
913
- "'Invalid row index'"
914
- ]
915
- });
916
- const snapshot = getSnapshot(currentRow);
878
+ invariant(currentRow, "Invalid row index", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 533, S: this, A: ["currentRow", "'Invalid row index'"] });
879
+ const snapshot = {
880
+ ...getSnapshot(currentRow)
881
+ };
917
882
  setValue(snapshot, field.path, transformedValue);
918
883
  const schema = Obj.getSchema(currentRow);
919
- invariant(schema, void 0, {
920
- F: __dxlog_file,
921
- L: 698,
922
- S: this,
923
- A: [
924
- "schema",
925
- ""
926
- ]
927
- });
884
+ invariant(schema, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 539, S: this, A: ["schema", ""] });
928
885
  const validationResult = validateSchema(schema, snapshot);
929
886
  if (validationResult && validationResult.length > 0) {
930
887
  const error = validationResult[0];
931
- invariant(error.path === field.path, void 0, {
932
- F: __dxlog_file,
933
- L: 703,
934
- S: this,
935
- A: [
936
- "error.path === field.path",
937
- ""
938
- ]
939
- });
888
+ invariant(error.path === field.path, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 543, S: this, A: ["error.path === field.path", ""] });
940
889
  return {
941
890
  valid: false,
942
891
  error: error.message
@@ -1021,8 +970,8 @@ var TableModel = class extends Resource2 {
1021
970
  return;
1022
971
  }
1023
972
  const field = this._projection?.getFields().find((field2) => field2.id === fieldId);
1024
- if (field && this._onDeleteColumn) {
1025
- this._onDeleteColumn(field.id);
973
+ if (field && this._onColumnDelete) {
974
+ this._onColumnDelete(field.id);
1026
975
  }
1027
976
  }
1028
977
  //
@@ -1100,13 +1049,13 @@ var TableModel = class extends Resource2 {
1100
1049
  const field = this._projection.getFields().find((f) => f.id === inMemorySort.fieldId);
1101
1050
  if (field) {
1102
1051
  const newQuery = baseQuery.orderBy(Order.property(field.path, inMemorySort.direction));
1103
- Obj.change(view, (v) => {
1104
- v.query.ast = newQuery.ast;
1052
+ Obj.update(view, (view2) => {
1053
+ view2.query.ast = newQuery.ast;
1105
1054
  });
1106
1055
  }
1107
1056
  } else {
1108
- Obj.change(view, (v) => {
1109
- v.query.ast = baseQuery.ast;
1057
+ Obj.update(view, (view2) => {
1058
+ view2.query.ast = baseQuery.ast;
1110
1059
  });
1111
1060
  }
1112
1061
  this._registry.set(this._inMemorySort, void 0);
@@ -1314,7 +1263,7 @@ var TablePresentation = class {
1314
1263
  const targetObj = getValue2(obj, field.path)?.target;
1315
1264
  if (targetObj) {
1316
1265
  const dxn = Obj2.getDXN(targetObj)?.toString();
1317
- cell.accessoryHtml = `<div role="none" class="absolute inline-end-0 inset-block-0 p-[--dx-grid-cell-content-padding-block]"><dx-anchor refId=${dxn} class="dx-button is-6 aspect-square min-bs-0" data-dx-grid-action="accessory"><dx-icon icon="ph--link-simple--regular"/></dx-anchor></div>`;
1266
+ 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>`;
1318
1267
  }
1319
1268
  }
1320
1269
  if (props.format === Format3.TypeFormat.Boolean) {
@@ -1428,7 +1377,7 @@ var TablePresentation = class {
1428
1377
  value: "",
1429
1378
  resizeHandle: "col",
1430
1379
  accessoryHtml: `
1431
- <span class="grow min-is-0 truncate">${props.title ?? field.path}</span>
1380
+ <span class="grow min-w-0 truncate">${props.title ?? field.path}</span>
1432
1381
  ${direction !== void 0 ? tableButtons.sort.render({
1433
1382
  fieldId: field.id,
1434
1383
  direction
@@ -1437,7 +1386,7 @@ var TablePresentation = class {
1437
1386
  fieldId: field.id
1438
1387
  })}
1439
1388
  `,
1440
- className: "!bg-toolbarSurface !text-description [&>div]:flex [&>div]:items-stretch"
1389
+ className: "!bg-toolbar-surface text-description! [&>div]:flex [&>div]:items-stretch"
1441
1390
  };
1442
1391
  }
1443
1392
  return cells;
@@ -1488,7 +1437,7 @@ var TablePresentation = class {
1488
1437
  col: 0,
1489
1438
  row: 0
1490
1439
  })]: {
1491
- className: "!bg-toolbarSurface",
1440
+ className: "!bg-toolbar-surface",
1492
1441
  readonly: true,
1493
1442
  value: ""
1494
1443
  }
@@ -1504,7 +1453,7 @@ var TablePresentation = class {
1504
1453
  header: true,
1505
1454
  checked: this.model.selection.allRowsSelected
1506
1455
  }),
1507
- className: "!bg-toolbarSurface",
1456
+ className: "!bg-toolbar-surface",
1508
1457
  readonly: true,
1509
1458
  value: ""
1510
1459
  }
@@ -1519,7 +1468,7 @@ var TablePresentation = class {
1519
1468
  accessoryHtml: this.model.features.schemaEditable ? tableButtons.addColumn.render({
1520
1469
  disabled: (this.model.projection?.getFields()?.length ?? 0) >= VIEW_FIELD_LIMIT
1521
1470
  }) : void 0,
1522
- className: "!bg-toolbarSurface",
1471
+ className: "!bg-toolbar-surface",
1523
1472
  readonly: true,
1524
1473
  value: ""
1525
1474
  }
@@ -1577,7 +1526,7 @@ var cellClassesForRowSelection = (selected, selectionMode) => {
1577
1526
  if (!selected) {
1578
1527
  if (selectionMode === "single") {
1579
1528
  return [
1580
- "!cursor-pointer"
1529
+ "cursor-pointer!"
1581
1530
  ];
1582
1531
  } else {
1583
1532
  return void 0;
@@ -1586,11 +1535,11 @@ var cellClassesForRowSelection = (selected, selectionMode) => {
1586
1535
  switch (selectionMode) {
1587
1536
  case "single":
1588
1537
  return [
1589
- "!bg-currentRelated dx-grid__cell--no-focus-unfurl hover:bg-hoverSurface !cursor-pointer"
1538
+ "dx-grid__cell--no-focus-unfurl !bg-current-surface hover:bg-hover-surface cursor-pointer!"
1590
1539
  ];
1591
1540
  case "multiple":
1592
1541
  return [
1593
- "!bg-gridCellSelected"
1542
+ "!bg-grid-cell-selected"
1594
1543
  ];
1595
1544
  }
1596
1545
  };
@@ -1617,7 +1566,7 @@ var useAddRow = ({ db, schema }) => {
1617
1566
 
1618
1567
  // src/hooks/useProjectionModel.ts
1619
1568
  import { useState } from "react";
1620
- import { Type } from "@dxos/echo";
1569
+ import { JsonSchema, Type } from "@dxos/echo";
1621
1570
  import { useAsyncEffect } from "@dxos/react-ui";
1622
1571
  import { ProjectionModel, createEchoChangeCallback as createEchoChangeCallback2 } from "@dxos/schema";
1623
1572
  var useProjectionModel = (schema, table, registry) => {
@@ -1625,7 +1574,7 @@ var useProjectionModel = (schema, table, registry) => {
1625
1574
  useAsyncEffect(async () => {
1626
1575
  if (schema && table) {
1627
1576
  const view = await table.view.load();
1628
- const jsonSchema = Type.isMutable(schema) ? schema.jsonSchema : Type.toJsonSchema(schema);
1577
+ const jsonSchema = Type.isMutable(schema) ? schema.jsonSchema : JsonSchema.toJsonSchema(schema);
1629
1578
  const change = createEchoChangeCallback2(view, Type.isMutable(schema) ? schema : void 0);
1630
1579
  const projection2 = new ProjectionModel({
1631
1580
  registry,
@@ -1743,4 +1692,4 @@ export {
1743
1692
  useProjectionModel,
1744
1693
  useTableModel
1745
1694
  };
1746
- //# sourceMappingURL=chunk-I5IFW7UF.mjs.map
1695
+ //# sourceMappingURL=chunk-YGC7LZJN.mjs.map