@dxos/react-ui-table 0.8.1-staging.5be625a → 0.8.1-staging.97aedb1

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 (172) hide show
  1. package/dist/lib/browser/{chunk-5MKYB7NF.mjs → chunk-YWNRUF4J.mjs} +7 -3
  2. package/dist/lib/browser/{chunk-5MKYB7NF.mjs.map → chunk-YWNRUF4J.mjs.map} +3 -3
  3. package/dist/lib/browser/index.mjs +295 -97
  4. package/dist/lib/browser/index.mjs.map +3 -3
  5. package/dist/lib/browser/meta.json +1 -1
  6. package/dist/lib/browser/types/index.mjs +1 -1
  7. package/dist/lib/node/{chunk-NRFKBRPV.cjs → chunk-TGG6OZ54.cjs} +10 -6
  8. package/dist/lib/node/{chunk-NRFKBRPV.cjs.map → chunk-TGG6OZ54.cjs.map} +3 -3
  9. package/dist/lib/node/index.cjs +293 -93
  10. package/dist/lib/node/index.cjs.map +3 -3
  11. package/dist/lib/node/meta.json +1 -1
  12. package/dist/lib/node/types/index.cjs +3 -3
  13. package/dist/lib/node/types/index.cjs.map +1 -1
  14. package/dist/lib/node-esm/{chunk-SU4D55KI.mjs → chunk-KKLP54L3.mjs} +7 -3
  15. package/dist/lib/node-esm/{chunk-SU4D55KI.mjs.map → chunk-KKLP54L3.mjs.map} +3 -3
  16. package/dist/lib/node-esm/index.mjs +295 -97
  17. package/dist/lib/node-esm/index.mjs.map +3 -3
  18. package/dist/lib/node-esm/meta.json +1 -1
  19. package/dist/lib/node-esm/types/index.mjs +1 -1
  20. package/dist/types/src/components/Table/DynamicTable.d.ts +15 -10
  21. package/dist/types/src/components/Table/DynamicTable.d.ts.map +1 -1
  22. package/dist/types/src/components/Table/DynamicTable.stories.d.ts +10 -0
  23. package/dist/types/src/components/Table/DynamicTable.stories.d.ts.map +1 -0
  24. package/dist/types/src/components/Table/Table.d.ts +1 -1
  25. package/dist/types/src/components/Table/Table.d.ts.map +1 -1
  26. package/dist/types/src/components/Table/Table.stories.d.ts +2 -3
  27. package/dist/types/src/components/Table/Table.stories.d.ts.map +1 -1
  28. package/dist/types/src/components/Table/relations.stories.d.ts +9 -0
  29. package/dist/types/src/components/Table/relations.stories.d.ts.map +1 -0
  30. package/dist/types/src/components/TableCellEditor/TableCellEditor.d.ts.map +1 -1
  31. package/dist/types/src/components/TableCellEditor/TableCellEditor.stories.d.ts.map +1 -1
  32. package/dist/types/src/components/testing.d.ts.map +1 -1
  33. package/dist/types/src/hooks/useTableModel.d.ts +6 -10
  34. package/dist/types/src/hooks/useTableModel.d.ts.map +1 -1
  35. package/dist/types/src/model/index.d.ts +1 -0
  36. package/dist/types/src/model/index.d.ts.map +1 -1
  37. package/dist/types/src/model/selection-model.d.ts +6 -3
  38. package/dist/types/src/model/selection-model.d.ts.map +1 -1
  39. package/dist/types/src/model/table-model.d.ts +13 -14
  40. package/dist/types/src/model/table-model.d.ts.map +1 -1
  41. package/dist/types/src/model/table-presentation.d.ts +4 -4
  42. package/dist/types/src/model/table-presentation.d.ts.map +1 -1
  43. package/dist/types/src/model/table-sorting.d.ts +2 -2
  44. package/dist/types/src/model/table-sorting.d.ts.map +1 -1
  45. package/dist/types/src/types/table.d.ts +2 -1
  46. package/dist/types/src/types/table.d.ts.map +1 -1
  47. package/dist/types/src/util/dynamic-table.d.ts +21 -30
  48. package/dist/types/src/util/dynamic-table.d.ts.map +1 -1
  49. package/dist/types/src/util/table-controls.d.ts +2 -2
  50. package/dist/types/src/util/table-controls.d.ts.map +1 -1
  51. package/dist/types/src/util/table.d.ts.map +1 -1
  52. package/package.json +33 -32
  53. package/src/components/Table/DynamicTable.stories.tsx +155 -0
  54. package/src/components/Table/DynamicTable.tsx +46 -28
  55. package/src/components/Table/Table.stories.tsx +129 -125
  56. package/src/components/Table/Table.tsx +51 -26
  57. package/src/components/Table/relations.stories.tsx +113 -0
  58. package/src/components/TableCellEditor/TableCellEditor.stories.tsx +8 -3
  59. package/src/components/TableCellEditor/TableCellEditor.tsx +102 -4
  60. package/src/components/testing.ts +0 -1
  61. package/src/hooks/useTableModel.ts +11 -11
  62. package/src/model/index.ts +1 -0
  63. package/src/model/selection-model.ts +12 -2
  64. package/src/model/table-model.test.ts +1 -1
  65. package/src/model/table-model.ts +27 -18
  66. package/src/model/table-presentation.test.ts +1 -1
  67. package/src/model/table-presentation.ts +65 -11
  68. package/src/model/table-sorting.ts +2 -2
  69. package/src/playwright/smoke.spec.ts +2 -3
  70. package/src/types/table.ts +6 -5
  71. package/src/util/dynamic-table.ts +57 -25
  72. package/src/util/table-controls.ts +4 -4
  73. package/src/util/table.ts +2 -1
  74. package/dist/lib/browser/deprecated/index.mjs +0 -1483
  75. package/dist/lib/browser/deprecated/index.mjs.map +0 -7
  76. package/dist/lib/node/deprecated/index.cjs +0 -1511
  77. package/dist/lib/node/deprecated/index.cjs.map +0 -7
  78. package/dist/lib/node-esm/deprecated/index.mjs +0 -1485
  79. package/dist/lib/node-esm/deprecated/index.mjs.map +0 -7
  80. package/dist/types/src/deprecated/components/Cell/Cell.d.ts +0 -12
  81. package/dist/types/src/deprecated/components/Cell/Cell.d.ts.map +0 -1
  82. package/dist/types/src/deprecated/components/Cell/CellCombobox.d.ts +0 -13
  83. package/dist/types/src/deprecated/components/Cell/CellCombobox.d.ts.map +0 -1
  84. package/dist/types/src/deprecated/components/Cell/index.d.ts +0 -2
  85. package/dist/types/src/deprecated/components/Cell/index.d.ts.map +0 -1
  86. package/dist/types/src/deprecated/components/ColumnMenu/ColumnMenu.d.ts +0 -23
  87. package/dist/types/src/deprecated/components/ColumnMenu/ColumnMenu.d.ts.map +0 -1
  88. package/dist/types/src/deprecated/components/ColumnMenu/ColumnMenu.stories.d.ts +0 -36
  89. package/dist/types/src/deprecated/components/ColumnMenu/ColumnMenu.stories.d.ts.map +0 -1
  90. package/dist/types/src/deprecated/components/ColumnMenu/ColumnSettings.d.ts +0 -15
  91. package/dist/types/src/deprecated/components/ColumnMenu/ColumnSettings.d.ts.map +0 -1
  92. package/dist/types/src/deprecated/components/ColumnMenu/ColumnSettings.stories.d.ts +0 -84
  93. package/dist/types/src/deprecated/components/ColumnMenu/ColumnSettings.stories.d.ts.map +0 -1
  94. package/dist/types/src/deprecated/components/ColumnMenu/index.d.ts +0 -3
  95. package/dist/types/src/deprecated/components/ColumnMenu/index.d.ts.map +0 -1
  96. package/dist/types/src/deprecated/components/Table/Table.d.ts +0 -20
  97. package/dist/types/src/deprecated/components/Table/Table.d.ts.map +0 -1
  98. package/dist/types/src/deprecated/components/Table/Table.stories.d.ts +0 -116
  99. package/dist/types/src/deprecated/components/Table/Table.stories.d.ts.map +0 -1
  100. package/dist/types/src/deprecated/components/Table/TableBody.d.ts +0 -12
  101. package/dist/types/src/deprecated/components/Table/TableBody.d.ts.map +0 -1
  102. package/dist/types/src/deprecated/components/Table/TableContext.d.ts +0 -13
  103. package/dist/types/src/deprecated/components/Table/TableContext.d.ts.map +0 -1
  104. package/dist/types/src/deprecated/components/Table/TableHead.d.ts +0 -9
  105. package/dist/types/src/deprecated/components/Table/TableHead.d.ts.map +0 -1
  106. package/dist/types/src/deprecated/components/Table/TableRootContext.d.ts +0 -17
  107. package/dist/types/src/deprecated/components/Table/TableRootContext.d.ts.map +0 -1
  108. package/dist/types/src/deprecated/components/Table/index.d.ts +0 -5
  109. package/dist/types/src/deprecated/components/Table/index.d.ts.map +0 -1
  110. package/dist/types/src/deprecated/components/Table/props.d.ts +0 -42
  111. package/dist/types/src/deprecated/components/Table/props.d.ts.map +0 -1
  112. package/dist/types/src/deprecated/components/index.d.ts +0 -4
  113. package/dist/types/src/deprecated/components/index.d.ts.map +0 -1
  114. package/dist/types/src/deprecated/helpers.d.ts +0 -91
  115. package/dist/types/src/deprecated/helpers.d.ts.map +0 -1
  116. package/dist/types/src/deprecated/hooks/index.d.ts +0 -5
  117. package/dist/types/src/deprecated/hooks/index.d.ts.map +0 -1
  118. package/dist/types/src/deprecated/hooks/useColumnSizing.d.ts +0 -12
  119. package/dist/types/src/deprecated/hooks/useColumnSizing.d.ts.map +0 -1
  120. package/dist/types/src/deprecated/hooks/useColumnSorting.d.ts +0 -15
  121. package/dist/types/src/deprecated/hooks/useColumnSorting.d.ts.map +0 -1
  122. package/dist/types/src/deprecated/hooks/usePinLastRow.d.ts +0 -3
  123. package/dist/types/src/deprecated/hooks/usePinLastRow.d.ts.map +0 -1
  124. package/dist/types/src/deprecated/hooks/useRowSelection.d.ts +0 -7
  125. package/dist/types/src/deprecated/hooks/useRowSelection.d.ts.map +0 -1
  126. package/dist/types/src/deprecated/index.d.ts +0 -8
  127. package/dist/types/src/deprecated/index.d.ts.map +0 -1
  128. package/dist/types/src/deprecated/schema/Schema.stories.d.ts +0 -11
  129. package/dist/types/src/deprecated/schema/Schema.stories.d.ts.map +0 -1
  130. package/dist/types/src/deprecated/schema/column-utils.d.ts +0 -7
  131. package/dist/types/src/deprecated/schema/column-utils.d.ts.map +0 -1
  132. package/dist/types/src/deprecated/schema/index.d.ts +0 -3
  133. package/dist/types/src/deprecated/schema/index.d.ts.map +0 -1
  134. package/dist/types/src/deprecated/schema/types.d.ts +0 -27
  135. package/dist/types/src/deprecated/schema/types.d.ts.map +0 -1
  136. package/dist/types/src/deprecated/theme.d.ts +0 -29
  137. package/dist/types/src/deprecated/theme.d.ts.map +0 -1
  138. package/dist/types/src/deprecated/translations.d.ts +0 -21
  139. package/dist/types/src/deprecated/translations.d.ts.map +0 -1
  140. package/dist/types/src/deprecated/types.d.ts +0 -26
  141. package/dist/types/src/deprecated/types.d.ts.map +0 -1
  142. package/src/deprecated/components/Cell/Cell.tsx +0 -88
  143. package/src/deprecated/components/Cell/CellCombobox.tsx +0 -103
  144. package/src/deprecated/components/Cell/index.ts +0 -5
  145. package/src/deprecated/components/ColumnMenu/ColumnMenu.stories.tsx +0 -129
  146. package/src/deprecated/components/ColumnMenu/ColumnMenu.tsx +0 -182
  147. package/src/deprecated/components/ColumnMenu/ColumnSettings.stories.tsx +0 -108
  148. package/src/deprecated/components/ColumnMenu/ColumnSettings.tsx +0 -207
  149. package/src/deprecated/components/ColumnMenu/index.ts +0 -6
  150. package/src/deprecated/components/Table/Table.stories.tsx +0 -508
  151. package/src/deprecated/components/Table/Table.tsx +0 -301
  152. package/src/deprecated/components/Table/TableBody.tsx +0 -82
  153. package/src/deprecated/components/Table/TableContext.tsx +0 -34
  154. package/src/deprecated/components/Table/TableHead.tsx +0 -78
  155. package/src/deprecated/components/Table/TableRootContext.ts +0 -39
  156. package/src/deprecated/components/Table/index.ts +0 -8
  157. package/src/deprecated/components/Table/props.ts +0 -60
  158. package/src/deprecated/components/index.ts +0 -7
  159. package/src/deprecated/helpers.tsx +0 -526
  160. package/src/deprecated/hooks/index.ts +0 -8
  161. package/src/deprecated/hooks/useColumnSizing.ts +0 -46
  162. package/src/deprecated/hooks/useColumnSorting.ts +0 -64
  163. package/src/deprecated/hooks/usePinLastRow.ts +0 -47
  164. package/src/deprecated/hooks/useRowSelection.ts +0 -40
  165. package/src/deprecated/index.ts +0 -12
  166. package/src/deprecated/schema/Schema.stories.tsx +0 -59
  167. package/src/deprecated/schema/column-utils.ts +0 -54
  168. package/src/deprecated/schema/index.ts +0 -6
  169. package/src/deprecated/schema/types.ts +0 -40
  170. package/src/deprecated/theme.ts +0 -82
  171. package/src/deprecated/translations.ts +0 -26
  172. package/src/deprecated/types.ts +0 -38
@@ -1,40 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- import { useControllableState } from '@radix-ui/react-use-controllable-state';
6
- import { type OnChangeFn, type RowSelectionState } from '@tanstack/react-table';
7
- import { useCallback } from 'react';
8
-
9
- import { type TableProps } from '../components/Table';
10
-
11
- export const useRowSelection = (
12
- props: Pick<
13
- TableProps<any>,
14
- 'rowsSelectable' | 'defaultRowSelection' | 'rowSelection' | 'onRowSelectionChange' | 'rowsSelectable'
15
- >,
16
- ) => {
17
- const [rowSelection = {}, setRowSelection] = useControllableState({
18
- prop: props.rowSelection,
19
- onChange: props.onRowSelectionChange,
20
- defaultProp: props.defaultRowSelection,
21
- });
22
-
23
- // TODO(thure): Does @tanstack/react-table really need this intervention? It did seem necessary to enforce single-selection...
24
- const handleRowSelectionChange = useCallback<OnChangeFn<RowSelectionState>>(
25
- (updaterOrValue) => {
26
- const nextRowSelection = typeof updaterOrValue === 'function' ? updaterOrValue(rowSelection) : updaterOrValue;
27
- if (props.rowsSelectable === 'multi') {
28
- setRowSelection(nextRowSelection);
29
- } else if (props.rowsSelectable) {
30
- const nextRowSelectionKey = Object.keys(nextRowSelection).filter((id) => !rowSelection[id])[0];
31
- setRowSelection(nextRowSelectionKey ? { [nextRowSelectionKey]: true } : {});
32
- } else {
33
- setRowSelection({});
34
- }
35
- },
36
- [props.rowsSelectable, setRowSelection, rowSelection],
37
- );
38
-
39
- return { rowSelection, handleRowSelectionChange };
40
- };
@@ -1,12 +0,0 @@
1
- //
2
- // Copyright 2022 DXOS.org
3
- //
4
-
5
- export { default as translations } from './translations';
6
-
7
- export * from './components';
8
- export * from './helpers';
9
- export * from './hooks';
10
- export * from './schema';
11
- export * from './theme';
12
- export * from './types';
@@ -1,59 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- import '@dxos-theme';
6
-
7
- import { Arbitrary } from 'effect';
8
- import * as fc from 'fast-check';
9
- import React from 'react';
10
-
11
- import { S } from '@dxos/echo-schema';
12
- import { withTheme, withLayout } from '@dxos/storybook-utils';
13
-
14
- import { schemaToColumnDefs } from './column-utils';
15
- import { Table } from '../components';
16
-
17
- export default {
18
- title: 'ui/react-ui-table/deprecated/Schema',
19
- decorators: [withTheme, withLayout()],
20
- };
21
-
22
- const TestSchema = S.Struct({
23
- field1: S.String,
24
- field2: S.Number,
25
- field3: S.Date,
26
- field4: S.optional(S.String.pipe(S.length(10))),
27
- field5: S.optional(
28
- S.Struct({
29
- innerField1: S.String,
30
- innerField2: S.Number,
31
- }),
32
- ),
33
- });
34
-
35
- type TestType = S.Schema.Type<typeof TestSchema>;
36
-
37
- const columns = schemaToColumnDefs(TestSchema);
38
- const items = fc.sample(Arbitrary.make(TestSchema), 10);
39
-
40
- export const Default = {
41
- render: () => {
42
- return (
43
- <Table.Root>
44
- <Table.Viewport classNames='fixed inset-0'>
45
- <Table.Main<TestType>
46
- role='grid'
47
- rowsSelectable='multi'
48
- keyAccessor={(row) => JSON.stringify(row)}
49
- columns={columns}
50
- data={items}
51
- fullWidth
52
- stickyHeader
53
- border
54
- />
55
- </Table.Viewport>
56
- </Table.Root>
57
- );
58
- },
59
- };
@@ -1,54 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- import { type ColumnDef } from '@tanstack/react-table';
6
-
7
- import { TypeEnum, type S } from '@dxos/echo-schema';
8
- import { FormatEnum } from '@dxos/echo-schema';
9
- import { mapSchemaToFields } from '@dxos/schema';
10
-
11
- import { createColumnBuilder } from '../helpers';
12
-
13
- /**
14
- * @deprecated
15
- */
16
- export const schemaToColumnDefs = <T>(schema: S.Schema<T, any>): ColumnDef<T, any>[] => {
17
- const { helper, builder } = createColumnBuilder<T>();
18
-
19
- return mapSchemaToFields(schema).map(({ property, type, format }) => {
20
- const propertyKey = property.toString();
21
-
22
- if (!format) {
23
- switch (type) {
24
- case TypeEnum.String: {
25
- return helper.accessor(
26
- propertyKey as any,
27
- builder.string({ label: propertyKey, classNames: [property === 'id' && 'font-mono'] }),
28
- );
29
- }
30
- case TypeEnum.Number: {
31
- return helper.accessor(propertyKey as any, builder.number({ label: propertyKey }));
32
- }
33
- case TypeEnum.Boolean: {
34
- return helper.accessor(propertyKey as any, builder.switch({ label: propertyKey }));
35
- }
36
- default: {
37
- throw new Error(`Unhandled scalar type: ${type}`);
38
- }
39
- }
40
- }
41
-
42
- switch (format) {
43
- case FormatEnum.Date: {
44
- return helper.accessor(propertyKey as any, builder.date({ label: propertyKey }));
45
- }
46
- case FormatEnum.JSON: {
47
- return helper.accessor(propertyKey as any, builder.json({ label: propertyKey, id: propertyKey }));
48
- }
49
- default: {
50
- throw new Error(`Unhandled format: ${format}`);
51
- }
52
- }
53
- });
54
- };
@@ -1,6 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- export * from './column-utils';
6
- export * from './types';
@@ -1,40 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import { type TypeEnum, type FormatEnum } from '@dxos/echo-schema';
6
-
7
- /**
8
- * @deprecated
9
- */
10
- // TODO(burdon): Reconcile with @dxos/schema/View.
11
- export type TableDef = {
12
- id: string;
13
- name?: string;
14
- columns: ColumnDef[];
15
- };
16
-
17
- /**
18
- * @deprecated
19
- */
20
- // TODO(burdon): Reconcile with @dxos/schema/Field.
21
- export type ColumnDef = {
22
- id: string;
23
- prop: string;
24
- type: TypeEnum;
25
- format?: FormatEnum;
26
- size?: number;
27
- label?: string;
28
-
29
- // type = number
30
- digits?: number;
31
-
32
- // type = ref
33
- refTable?: string;
34
- refProp?: string;
35
-
36
- // TODO(burdon): Move to meta.
37
- fixed?: boolean;
38
- editable?: boolean;
39
- resizable?: boolean;
40
- };
@@ -1,82 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- import { focusRing, ghostSelected, ghostSelectedCurrent, mx } from '@dxos/react-ui-theme';
6
- import { type ComponentFunction } from '@dxos/react-ui-types';
7
-
8
- import { type TableContextValue, type TableFlags } from './components';
9
-
10
- export const currentRow = '!bg-neutral-75 !dark:bg-neutral-850';
11
- export const selectedRow = '!bg-primary-100 dark:!bg-primary-700';
12
- export const flushPadding = 'pli-0 plb-0';
13
- export const textPadding = 'pli-2 plb-0';
14
- export const headPadding = 'pli-2 plb-0';
15
-
16
- export const gridCellFocusRing =
17
- 'relative focus-within:outline focus-within:outline-1 outline-primary-500 outline-offset-[-1px]';
18
- const borderColors = 'border-neutral-200 dark:border-neutral-700';
19
- const stickyRowColors = 'bg-neutral-50 dark:bg-neutral-800';
20
-
21
- export type TableStyleProps = Partial<TableContextValue<any>>;
22
-
23
- export const tableRoot: ComponentFunction<TableStyleProps> = ({ fullWidth }, ...etc) =>
24
- mx('table-fixed', 'text-neutral-800 dark:text-neutral-200', fullWidth && 'is-full', ...etc);
25
-
26
- export const groupTh: ComponentFunction<TableStyleProps> = (_props, ...etc) =>
27
- mx('text-start font-medium', flushPadding, ...etc);
28
-
29
- export type TheadStyleProps = Partial<TableFlags>;
30
-
31
- export const theadRoot: ComponentFunction<TheadStyleProps> = ({ header, stickyHeader }, ...etc) =>
32
- mx(header ? stickyHeader && 'sticky block-start-[--sticky-top] z-[1]' : 'collapse', stickyRowColors, ...etc);
33
-
34
- export const theadTr: ComponentFunction<TheadStyleProps> = (_props, ...etc) => mx('group', ...etc);
35
-
36
- export const theadTh: ComponentFunction<TheadStyleProps> = ({ border }, ...etc) =>
37
- mx(
38
- 'relative',
39
- 'text-start text-xs select-none truncate',
40
- headPadding,
41
- border && borderColors,
42
- border && 'border-t border-b border-l last:border-r',
43
- ...etc,
44
- );
45
-
46
- export const theadResizeRoot: ComponentFunction<{ isResizing: boolean }> = ({ isResizing }) => {
47
- return mx(
48
- 'absolute h-full w-[4px] top-0 right-0',
49
- 'cursor-col-resize',
50
- 'user-select-none',
51
- 'touch-action-none',
52
- 'pointer-coarse:bg-neutral-100 dark:pointer-coarse:bg-neutral-800',
53
- !isResizing && 'group-hover:bg-neutral-100 dark:group-hover:bg-neutral-800',
54
- isResizing && 'bg-primary-500',
55
- );
56
- };
57
-
58
- export type TbodyStyleProps = Partial<TableContextValue<any>>;
59
- export const tbodyRoot: ComponentFunction<TbodyStyleProps> = (_props, ...etc) => mx(...etc);
60
-
61
- export type TbodyTrStyleProps = Partial<{ canBeCurrent?: boolean; isPinned?: boolean }>;
62
- export const tbodyTr: ComponentFunction<TbodyTrStyleProps> = ({ canBeCurrent, isPinned }, ...etc) =>
63
- mx(
64
- 'group',
65
- canBeCurrent ? ghostSelectedCurrent : ghostSelected,
66
- canBeCurrent && focusRing,
67
- canBeCurrent && 'cursor-pointer',
68
- isPinned && 'sticky z-1 block-end-0',
69
- isPinned && stickyRowColors,
70
- ...etc,
71
- );
72
-
73
- export const tdRoot: ComponentFunction<TbodyStyleProps & { pinned?: boolean }> = ({ border, isGrid, pinned }, ...etc) =>
74
- mx(
75
- 'relative',
76
- 'focus-within:!bg-neutral-50 dark:focus-within:!bg-neutral-900',
77
- flushPadding,
78
- border && 'border-b border-l last:border-r border-neutral-200 dark:border-neutral-700',
79
- pinned && 'border-t',
80
- isGrid && gridCellFocusRing,
81
- ...etc,
82
- );
@@ -1,26 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- export const translationKey = 'table';
6
-
7
- export default [
8
- {
9
- 'en-US': {
10
- [translationKey]: {
11
- 'no selection label': ' ',
12
- 'number column type label': 'Number',
13
- 'boolean column type label': 'Boolean',
14
- 'date column type label': 'Date',
15
- 'string column type label': 'Text',
16
- 'ref column type label': 'Reference',
17
- 'digits label': 'Decimal places',
18
- 'save label': 'Save',
19
- 'delete label': 'Delete',
20
- 'column label label': 'Label',
21
- 'property key label': 'Property',
22
- 'column type label': 'Type',
23
- },
24
- },
25
- },
26
- ];
@@ -1,38 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import { type ColumnDef, type RowData } from '@tanstack/react-table';
6
-
7
- import { type ClassNameValue } from '@dxos/react-ui-types';
8
-
9
- import { type SearchListQueryModel, type ValueUpdater } from './helpers';
10
-
11
- // Define custom meta definitions.
12
- declare module '@tanstack/react-table' {
13
- // Access via table.options.meta.
14
- // eslint-disable-next-line unused-imports/no-unused-vars
15
- interface TableMeta<TData extends RowData> {}
16
-
17
- // eslint-disable-next-line unused-imports/no-unused-vars
18
- interface ColumnMeta<TData extends RowData, TValue> {
19
- expand?: boolean;
20
- resizable?: boolean;
21
- model?: SearchListQueryModel<TData>;
22
- onUpdate?: ValueUpdater<TData, any>;
23
- digits?: number;
24
- header?: {
25
- classNames?: ClassNameValue;
26
- };
27
- footer?: {
28
- classNames?: ClassNameValue;
29
- };
30
- cell?: {
31
- classNames?: ClassNameValue;
32
- };
33
- }
34
- }
35
-
36
- export type KeyValue<TData extends RowData> = (row: TData) => string;
37
-
38
- export type TableColumnDef<TData extends RowData, TValue = any> = ColumnDef<TData, TValue>;