@dxos/react-ui-table 0.7.5-labs.a279d8c → 0.7.5-labs.a8b535d

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 (73) hide show
  1. package/dist/lib/browser/index.mjs +47 -5
  2. package/dist/lib/browser/index.mjs.map +3 -3
  3. package/dist/lib/browser/meta.json +1 -1
  4. package/dist/lib/node/index.cjs +47 -5
  5. package/dist/lib/node/index.cjs.map +3 -3
  6. package/dist/lib/node/meta.json +1 -1
  7. package/dist/lib/node-esm/index.mjs +47 -5
  8. package/dist/lib/node-esm/index.mjs.map +3 -3
  9. package/dist/lib/node-esm/meta.json +1 -1
  10. package/dist/types/src/_deprecated/components/Cell/Cell.d.ts +2 -2
  11. package/dist/types/src/_deprecated/components/Cell/Cell.d.ts.map +1 -1
  12. package/dist/types/src/_deprecated/components/Cell/CellCombobox.d.ts +1 -2
  13. package/dist/types/src/_deprecated/components/Cell/CellCombobox.d.ts.map +1 -1
  14. package/dist/types/src/_deprecated/components/ColumnMenu/ColumnMenu.d.ts +2 -3
  15. package/dist/types/src/_deprecated/components/ColumnMenu/ColumnMenu.d.ts.map +1 -1
  16. package/dist/types/src/_deprecated/components/ColumnMenu/ColumnMenu.stories.d.ts +6 -7
  17. package/dist/types/src/_deprecated/components/ColumnMenu/ColumnMenu.stories.d.ts.map +1 -1
  18. package/dist/types/src/_deprecated/components/ColumnMenu/ColumnSettings.d.ts +1 -2
  19. package/dist/types/src/_deprecated/components/ColumnMenu/ColumnSettings.d.ts.map +1 -1
  20. package/dist/types/src/_deprecated/components/ColumnMenu/ColumnSettings.stories.d.ts +6 -7
  21. package/dist/types/src/_deprecated/components/ColumnMenu/ColumnSettings.stories.d.ts.map +1 -1
  22. package/dist/types/src/_deprecated/components/Table/Table.d.ts +5 -5
  23. package/dist/types/src/_deprecated/components/Table/Table.d.ts.map +1 -1
  24. package/dist/types/src/_deprecated/components/Table/Table.stories.d.ts +8 -9
  25. package/dist/types/src/_deprecated/components/Table/Table.stories.d.ts.map +1 -1
  26. package/dist/types/src/_deprecated/components/Table/TableBody.d.ts +1 -2
  27. package/dist/types/src/_deprecated/components/Table/TableBody.d.ts.map +1 -1
  28. package/dist/types/src/_deprecated/components/Table/TableContext.d.ts +1 -1
  29. package/dist/types/src/_deprecated/components/Table/TableContext.d.ts.map +1 -1
  30. package/dist/types/src/_deprecated/components/Table/TableHead.d.ts +1 -2
  31. package/dist/types/src/_deprecated/components/Table/TableHead.d.ts.map +1 -1
  32. package/dist/types/src/_deprecated/schema/Schema.stories.d.ts +2 -3
  33. package/dist/types/src/_deprecated/schema/Schema.stories.d.ts.map +1 -1
  34. package/dist/types/src/components/Table/ColumnActionsMenu.d.ts +1 -2
  35. package/dist/types/src/components/Table/ColumnActionsMenu.d.ts.map +1 -1
  36. package/dist/types/src/components/Table/ColumnSettings.d.ts +1 -2
  37. package/dist/types/src/components/Table/ColumnSettings.d.ts.map +1 -1
  38. package/dist/types/src/components/Table/CreateRefPanel.d.ts +1 -2
  39. package/dist/types/src/components/Table/CreateRefPanel.d.ts.map +1 -1
  40. package/dist/types/src/components/Table/RefPanel.d.ts +1 -2
  41. package/dist/types/src/components/Table/RefPanel.d.ts.map +1 -1
  42. package/dist/types/src/components/Table/RowActionsMenu.d.ts +1 -2
  43. package/dist/types/src/components/Table/RowActionsMenu.d.ts.map +1 -1
  44. package/dist/types/src/components/Table/Table.d.ts +1 -1
  45. package/dist/types/src/components/Table/Table.stories.d.ts +1 -4
  46. package/dist/types/src/components/Table/Table.stories.d.ts.map +1 -1
  47. package/dist/types/src/components/TableCellEditor/TableCellEditor.d.ts +1 -2
  48. package/dist/types/src/components/TableCellEditor/TableCellEditor.d.ts.map +1 -1
  49. package/dist/types/src/components/TableToolbar/TableToolbar.d.ts +1 -2
  50. package/dist/types/src/components/TableToolbar/TableToolbar.d.ts.map +1 -1
  51. package/dist/types/src/components/testing.d.ts +11 -10
  52. package/dist/types/src/components/testing.d.ts.map +1 -1
  53. package/dist/types/src/hooks/useTableModel.d.ts.map +1 -1
  54. package/dist/types/src/model/table-presentation.d.ts.map +1 -1
  55. package/dist/types/src/model/table-sorting.d.ts.map +1 -1
  56. package/dist/types/src/types/table.d.ts +17 -14
  57. package/dist/types/src/types/table.d.ts.map +1 -1
  58. package/dist/types/tsconfig.tsbuildinfo +1 -1
  59. package/package.json +36 -35
  60. package/src/_deprecated/schema/Schema.stories.tsx +1 -1
  61. package/src/components/Table/Table.stories.tsx +22 -23
  62. package/src/components/TableCellEditor/TableCellEditor.stories.tsx +1 -1
  63. package/src/hooks/useTableModel.ts +21 -0
  64. package/src/model/table-model.ts +1 -1
  65. package/src/model/table-presentation.ts +13 -1
  66. package/src/model/table-sorting.ts +14 -0
  67. package/src/playwright/smoke.spec.ts +3 -3
  68. package/src/util/table-buttons.ts +1 -1
  69. package/src/util/table-controls.ts +2 -2
  70. package/src/util/table.ts +1 -1
  71. package/dist/types/src/playwright/playwright.config.d.ts +0 -3
  72. package/dist/types/src/playwright/playwright.config.d.ts.map +0 -1
  73. /package/src/playwright/{playwright.config.ts → playwright.config.cts} +0 -0
@@ -314,7 +314,7 @@ var initializeTable = async ({ space, table, initialRow = true, initialSchema })
314
314
  if (!schema) {
315
315
  throw new Error(`Schema not found: ${initialSchema}`);
316
316
  }
317
- const fields = getSchemaProperties(schema.ast).filter((prop) => prop.type !== "object" || prop.format === FormatEnum.Ref).map((prop) => prop.name);
317
+ const fields = getSchemaProperties(schema.ast).filter((prop) => prop.format !== FormatEnum.Ref).map((prop) => prop.name);
318
318
  table.view = makeRef(createView({
319
319
  // TODO(ZaymonFC): Don't hardcode name?
320
320
  name: "View",
@@ -398,7 +398,7 @@ var BUTTON_IDENTIFIERS = {
398
398
  var createButton = ({ attr, data, disabled = false, icon, testId, type = "primary" }) => {
399
399
  const dataAttrs = Object.entries(data).map(([k, v]) => `${k}="${v}"`).join(" ");
400
400
  const positionClass = type === "primary" ? "inline-end-2" : "inline-end-9";
401
- return `<button ${attr} data-testid="${testId}" class="ch-button is-6 pli-0.5 min-bs-0 absolute inset-block-1 ${positionClass}" ${dataAttrs} ${disabled ? "disabled" : ""}><svg><use href="/icons.svg#${icon}"/></svg></button>`;
401
+ return `<button ${attr} data-testid="${testId}" class="dx-button is-6 pli-0.5 min-bs-0 absolute inset-block-1 ${positionClass}" ${dataAttrs} ${disabled ? "disabled" : ""}><svg><use href="/icons.svg#${icon}"/></svg></button>`;
402
402
  };
403
403
  var addColumnButton = {
404
404
  attr: BUTTON_IDENTIFIERS.newColumn,
@@ -509,8 +509,8 @@ var CONTROL_IDENTIFIERS = {
509
509
  switch: "data-table-switch"
510
510
  };
511
511
  var BASE_CLASSES = {
512
- checkbox: "absolute inset-block-[.375rem] inline-end-[.375rem] ch-checkbox",
513
- switch: "absolute inset-block-[.25rem] inline-end-[.25rem] ch-checkbox--switch"
512
+ checkbox: "absolute inset-block-[.375rem] inline-end-[.375rem] dx-checkbox",
513
+ switch: "absolute inset-block-[.25rem] inline-end-[.25rem] dx-checkbox--switch"
514
514
  };
515
515
  var renderAttributes = (data) => {
516
516
  return Object.entries(data).map(([k, v]) => `${k}="${v}"`).join(" ");
@@ -782,6 +782,14 @@ var TableSorting = class {
782
782
  if (value == null) {
783
783
  return value;
784
784
  }
785
+ if (format === FormatEnum2.SingleSelect) {
786
+ const options = props.options;
787
+ if (!options) {
788
+ return void 0;
789
+ }
790
+ const option = options.find((option2) => option2.id === value);
791
+ return option ? options.indexOf(option) : void 0;
792
+ }
785
793
  if (format === FormatEnum2.Ref && field.referencePath) {
786
794
  const refValue = getValue(value.target, field.referencePath);
787
795
  return refValue;
@@ -1199,7 +1207,8 @@ var TablePresentation = class {
1199
1207
  return "";
1200
1208
  }
1201
1209
  switch (props.format) {
1202
- case FormatEnum4.Boolean: {
1210
+ case FormatEnum4.Boolean:
1211
+ case FormatEnum4.SingleSelect: {
1203
1212
  return "";
1204
1213
  }
1205
1214
  case FormatEnum4.Ref: {
@@ -1251,6 +1260,16 @@ var TablePresentation = class {
1251
1260
  });
1252
1261
  cell.readonly = true;
1253
1262
  }
1263
+ if (props.format === FormatEnum4.SingleSelect) {
1264
+ const value = getValue3(obj, field.path);
1265
+ const options = this.model.projection.getFieldProjection(field.id).props.options;
1266
+ if (options) {
1267
+ const option = options.find((o) => o.id === value);
1268
+ if (option) {
1269
+ cell.accessoryHtml = `<span class="dx-tag" data-hue="${option.color}">${option.title}</span>`;
1270
+ }
1271
+ }
1272
+ }
1254
1273
  const idx = toPlaneCellIndex({
1255
1274
  col: colIndex,
1256
1275
  row: displayIndex
@@ -1914,7 +1933,10 @@ var TableToolbar = ({ classNames, viewDirty, attendableId, onAction }) => {
1914
1933
  };
1915
1934
 
1916
1935
  // packages/ui/react-ui-table/src/hooks/useTableModel.ts
1936
+ import { effect as effect3 } from "@preact/signals-core";
1917
1937
  import { useEffect as useEffect2, useState as useState3 } from "react";
1938
+ import { useSelectionActions } from "@dxos/react-ui-attention";
1939
+ import { isNonNullable } from "@dxos/util";
1918
1940
  var useTableModel = ({ objects, table, projection, ...props }) => {
1919
1941
  const [model, setModel] = useState3();
1920
1942
  useEffect2(() => {
@@ -1947,6 +1969,26 @@ var useTableModel = ({ objects, table, projection, ...props }) => {
1947
1969
  model,
1948
1970
  objects
1949
1971
  ]);
1972
+ const { select, clear } = useSelectionActions([
1973
+ table?.id,
1974
+ table?.view?.target?.query.type
1975
+ ].filter(isNonNullable));
1976
+ useEffect2(() => {
1977
+ if (!model) {
1978
+ return;
1979
+ }
1980
+ const unsubscribe = effect3(() => {
1981
+ select([
1982
+ ...model.selection.selection.value
1983
+ ]);
1984
+ });
1985
+ return () => {
1986
+ clear();
1987
+ unsubscribe();
1988
+ };
1989
+ }, [
1990
+ model
1991
+ ]);
1950
1992
  return model;
1951
1993
  };
1952
1994
  export {