@jielga/tmdatagrid 1.1.1 → 2.0.0-beta.0

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 (40) hide show
  1. package/dist/index.d.ts +170 -77
  2. package/dist/index.js +745 -687
  3. package/dist/index.js.map +1 -1
  4. package/package.json +1 -1
  5. package/skills/appearance/SKILL.md +1 -1
  6. package/skills/cell-selection/SKILL.md +1 -1
  7. package/skills/columns/SKILL.md +42 -17
  8. package/skills/data/SKILL.md +1 -1
  9. package/skills/editing/SKILL.md +40 -30
  10. package/skills/editing/references/editing-api.md +4 -4
  11. package/skills/editing/references/editors-and-validation.md +50 -8
  12. package/skills/filtering/SKILL.md +13 -14
  13. package/skills/getting-started/SKILL.md +1 -1
  14. package/skills/grouping/SKILL.md +1 -1
  15. package/skills/options/SKILL.md +1 -1
  16. package/skills/rows/SKILL.md +1 -1
  17. package/skills/server-side/SKILL.md +1 -1
  18. package/skills/testing/SKILL.md +2 -2
  19. package/src/tmdatagrid/components/TMDataGridCellEditor.tsx +49 -16
  20. package/src/tmdatagrid/components/TMDataGridEntryRows.tsx +42 -11
  21. package/src/tmdatagrid/components/TMDataGridFilterPanel.tsx +5 -3
  22. package/src/tmdatagrid/components/TMDataGridTable.tsx +3 -26
  23. package/src/tmdatagrid/components/editors/TMDataGridBooleanEditor.tsx +0 -2
  24. package/src/tmdatagrid/components/editors/TMDataGridDateEditor.tsx +1 -3
  25. package/src/tmdatagrid/components/editors/TMDataGridMultiSelectEditor.tsx +0 -2
  26. package/src/tmdatagrid/components/editors/TMDataGridNumberEditor.tsx +13 -11
  27. package/src/tmdatagrid/components/editors/TMDataGridSelectEditor.tsx +0 -2
  28. package/src/tmdatagrid/components/editors/TMDataGridStringEditor.tsx +13 -9
  29. package/src/tmdatagrid/components/editors/editorShared.ts +47 -0
  30. package/src/tmdatagrid/components/filters/DgAutocompleteFilter.tsx +1 -1
  31. package/src/tmdatagrid/components/filters/DgDateRangeFilter.tsx +2 -2
  32. package/src/tmdatagrid/components/filters/DgRangeSliderFilter.tsx +2 -2
  33. package/src/tmdatagrid/components/filters/DgTriStateFilter.tsx +1 -1
  34. package/src/tmdatagrid/components/filters/TMDataGridFilterValueInput.tsx +1 -1
  35. package/src/tmdatagrid/core/columnUtils.ts +44 -3
  36. package/src/tmdatagrid/core/editEngine.ts +91 -24
  37. package/src/tmdatagrid/core/editorFocus.ts +29 -0
  38. package/src/tmdatagrid/core/filterControls.ts +28 -1
  39. package/src/tmdatagrid/index.ts +6 -0
  40. package/src/tmdatagrid/useTMDataGrid.tsx +37 -48
package/dist/index.d.ts CHANGED
@@ -285,7 +285,7 @@ type TMDataGridValidator = StandardSchemaV1<unknown, unknown> | ((args: {
285
285
  fieldApi: never;
286
286
  }) => unknown);
287
287
  /**
288
- * `meta.validate` - per-column field validators. A bare schema or function is
288
+ * `meta.edit.validate` - per-column field validators. A bare schema or function is
289
289
  * shorthand for `{ onChange: it }`; the object form takes every trigger
290
290
  * TanStack Form defines, `Async` variants and debounce included.
291
291
  */
@@ -384,7 +384,7 @@ type ErasedColumn = Column<TMDataGridFeatures, TMDataGridRowData, unknown>;
384
384
  * inside any TanStack Form. The table side is where the editor is standing.
385
385
  *
386
386
  * The built-ins are implemented against this same contract, so
387
- * `meta.editor` is not a special case - it is the slot the defaults
387
+ * `meta.edit.editor` is not a special case - it is the slot the defaults
388
388
  * fill, and the exported built-ins can be wrapped instead of replaced.
389
389
  */
390
390
  type TMDataGridEditorArgs = {
@@ -401,16 +401,6 @@ type TMDataGridEditorArgs = {
401
401
  /** What Escape would do - drop the draft. */
402
402
  cancel: () => void;
403
403
  size: TMDataGridSize;
404
- /**
405
- * @deprecated The grid places the caret itself, once per open gesture, so
406
- * honouring this is optional and it will go in the next major. It focuses
407
- * `data-dg-part="editor-input"` when the editor publishes it and the first
408
- * focusable element inside the editor otherwise, which is why a custom
409
- * editor that ignores this prop still gets the caret. False under
410
- * `editMode: "row"`, where a whole row of editors is mounted at once and
411
- * only the named cell may take it.
412
- */
413
- autoFocus: boolean;
414
404
  /**
415
405
  * Set when typing opened the editor (the Sheets gesture) - the built-ins
416
406
  * replace the value with it and keep typing. A custom editor may ignore it.
@@ -418,11 +408,79 @@ type TMDataGridEditorArgs = {
418
408
  seedText?: string;
419
409
  };
420
410
  /**
421
- * `meta.editor` - replaces the built-in editor for this column. Rendered as
422
- * JSX, never invoked as a bare function, so hooks are legal inside. Define it
423
- * at module scope: a new identity per render remounts the editor mid-edit.
411
+ * `meta.edit.editor` - replaces the built-in editor for this column. Rendered
412
+ * as JSX, never invoked as a bare function, so hooks are legal inside. Define
413
+ * it at module scope: a new identity per render remounts the editor mid-edit.
424
414
  */
425
415
  type TMDataGridEditorComponent = ComponentType<TMDataGridEditorArgs>;
416
+ /** What `meta.edit.mapValue` is handed for one write. */
417
+ type TMDataGridEditValueMapArgs = {
418
+ /** The value the editor just wrote. */
419
+ value: unknown;
420
+ /** What the field held before this write - for length-aware masks. */
421
+ previous: unknown;
422
+ row: ErasedRow;
423
+ column: ErasedColumn;
424
+ table: TMDataGridTable<TMDataGridRowData>;
425
+ };
426
+ /**
427
+ * `meta.edit.mapValue` - the value on its way into the draft, mapped.
428
+ *
429
+ * Runs on every write an editor makes, which for a text input is every
430
+ * keystroke and for a select is every pick, so the mapped value is what the
431
+ * user sees, what validators judge and what commits.
432
+ */
433
+ type TMDataGridEditValueMap = (args: TMDataGridEditValueMapArgs) => unknown;
434
+ /**
435
+ * `meta.edit` - everything about how this column is edited, in one place,
436
+ * mirroring the `edit.*` engine the grid exposes at runtime.
437
+ *
438
+ * ```tsx
439
+ * meta: {
440
+ * type: "string",
441
+ * edit: {
442
+ * enabled: (row) => row.original.status !== "Locked",
443
+ * validate: z.string().min(2, "Too short"),
444
+ * mapValue: ({ value }) =>
445
+ * typeof value === "string" ? value.toUpperCase() : value,
446
+ * },
447
+ * }
448
+ * ```
449
+ *
450
+ * `meta.type` and `meta.options` stay outside this namespace on purpose: one
451
+ * declaration of each feeds the cell editor and the filter panel alike.
452
+ */
453
+ type TMDataGridColumnEditOptions = {
454
+ /**
455
+ * Whether this column's cells take edits, once `editMode` is on. `false`
456
+ * switches the column off outright; a predicate decides per row. Defaults
457
+ * to editable for any column that maps to a field - see {@link field}.
458
+ */
459
+ enabled?: boolean | ((row: Row<TMDataGridFeatures, TMDataGridRowData>) => boolean);
460
+ /**
461
+ * The data path this column edits, when it is not the `accessorKey` - the
462
+ * only way a column built on `accessorFn` becomes editable. Dot paths reach
463
+ * into nested records: `"address.city"`.
464
+ */
465
+ field?: string;
466
+ /**
467
+ * Replaces the built-in editor for this column. See
468
+ * {@link TMDataGridEditorComponent}.
469
+ */
470
+ editor?: TMDataGridEditorComponent;
471
+ /**
472
+ * Field-level validators, in TanStack Form's own vocabulary. A bare Zod
473
+ * schema (or any Standard Schema, or a plain function) means
474
+ * `{ onChange: it }`; the object form takes every trigger Form defines.
475
+ */
476
+ validate?: TMDataGridFieldValidate;
477
+ /**
478
+ * Maps every value an editor writes before it reaches the draft - uppercase
479
+ * a code, strip spaces from an IBAN, clamp a number into range. See
480
+ * {@link TMDataGridEditValueMap}.
481
+ */
482
+ mapValue?: TMDataGridEditValueMap;
483
+ };
426
484
  /** A new row being committed - `onRowAdd`, and `submitAll`'s `added`. */
427
485
  type TMDataGridRowAddArgs<TData extends RowData> = {
428
486
  /** The engine's placeholder id; the real id is the consumer's to mint. */
@@ -449,14 +507,16 @@ type TMDataGridEditCommitBatchArgs<TData extends RowData> = {
449
507
  * `accessorKey` is the true path and Form addresses fields by dot-path, so
450
508
  * nested rows work for free: `accessorKey: "address.city"` edits
451
509
  * `values.address.city`. A column built on `accessorFn` has no path and is
452
- * not editable unless `meta.editField` names one. TanStack's default column
510
+ * not editable unless `meta.edit.field` names one. TanStack's default column
453
511
  * id turns dots into underscores - which is why this starts from
454
512
  * `accessorKey`, never from `id`.
455
513
  */
456
514
  declare function getEditFieldName(column: {
457
515
  columnDef: {
458
516
  meta?: {
459
- editField?: string;
517
+ edit?: {
518
+ field?: string;
519
+ };
460
520
  };
461
521
  };
462
522
  }): string | null;
@@ -529,7 +589,7 @@ type TMDataGridEditApi = {
529
589
  canDeleteRows: () => boolean;
530
590
  };
531
591
  /**
532
- * `meta.validate` normalised to the object TanStack Form's `validators`
592
+ * `meta.edit.validate` normalised to the object TanStack Form's `validators`
533
593
  * option takes - a bare schema or function is shorthand for `{ onChange }`.
534
594
  */
535
595
  declare function normalizeFieldValidate(validate: TMDataGridFieldValidate | undefined): Record<string, unknown> | undefined;
@@ -703,11 +763,37 @@ type TMDataGridFilterControlArgs = {
703
763
  labels: TMDataGridLabels;
704
764
  };
705
765
  /**
706
- * `meta.filterControl` - replaces the built-in value control for this column.
766
+ * `meta.filter.control` - replaces the built-in value control for this column.
707
767
  * Rendered as JSX, never invoked as a bare function, so hooks are legal
708
768
  * inside. Define it at module scope so its identity is stable across renders.
709
769
  */
710
770
  type TMDataGridFilterControlComponent = ComponentType<TMDataGridFilterControlArgs>;
771
+ /**
772
+ * `meta.filter` - everything about how this column filters, in one place.
773
+ *
774
+ * ```tsx
775
+ * meta: {
776
+ * type: "number",
777
+ * filter: { defaultOperator: "between", control: DgRangeSliderFilter },
778
+ * }
779
+ * ```
780
+ *
781
+ * `meta.type` and `meta.options` stay outside this namespace on purpose: one
782
+ * declaration of each feeds the filter panel and the cell editor alike.
783
+ */
784
+ type TMDataGridColumnFilterOptions = {
785
+ /**
786
+ * The operator a fresh filter on this column starts with, instead of the
787
+ * type's default - a salary column can open on `"between"`. Must be one of
788
+ * the type's own operators.
789
+ */
790
+ defaultOperator?: TMDataGridFilterOperator;
791
+ /**
792
+ * Replaces the built-in value control in this column's filter-panel row.
793
+ * See {@link TMDataGridFilterControlComponent}.
794
+ */
795
+ control?: TMDataGridFilterControlComponent;
796
+ };
711
797
  //#endregion
712
798
  //#region .types-tmp/core/quickSearch.d.ts
713
799
  /** How the quick search matches - see `quickSearchMode` on the hook options. */
@@ -1070,7 +1156,16 @@ declare function boundsEdges(bounds: TMDataGridRangeBounds | null, rowIndex: num
1070
1156
  } | null;
1071
1157
  //#endregion
1072
1158
  //#region .types-tmp/useTMDataGrid.d.ts
1073
- /** Per-column configuration the TMDataGrid chrome reads. */
1159
+ /**
1160
+ * Per-column configuration the TMDataGrid chrome reads.
1161
+ *
1162
+ * A stage that owns behaviour gets a namespace - `filter` and `edit`, each
1163
+ * mirroring the feature's runtime API. What the column *is* stays flat:
1164
+ * `label`, `type`, `options`, `align`, `flex`, `autoSize`, `enableOrdering`.
1165
+ * `type` and `options` in particular are shared ground - one declaration of
1166
+ * each feeds the filter panel and the cell editor alike, which is why they sit
1167
+ * outside both namespaces.
1168
+ */
1074
1169
  type TMDataGridColumnMeta = {
1075
1170
  /** Name shown in menus and the column manager. Falls back to a string header. */
1076
1171
  label?: string;
@@ -1103,50 +1198,34 @@ type TMDataGridColumnMeta = {
1103
1198
  */
1104
1199
  enableOrdering?: boolean;
1105
1200
  /**
1106
- * The operator a fresh filter on this column starts with, instead of the
1107
- * type's default - a salary column can open on `"between"`. Must be one of
1108
- * the type's own operators.
1109
- */
1110
- defaultFilterOperator?: TMDataGridFilterOperator;
1111
- /**
1112
- * Replaces the built-in value control in this column's filter-panel row. A
1113
- * component rendered as JSX (hooks are legal inside), receiving the
1114
- * value-only contract: it reads the current operator, writes the bare
1115
- * value, and the grid composes the stored filter around it. Define it at
1116
- * module scope. See {@link TMDataGridFilterControlArgs}.
1117
- */
1118
- filterControl?: TMDataGridFilterControlComponent;
1119
- /**
1120
- * Whether this column's cells take edits, once `editMode` is on. `false`
1121
- * switches the column off outright; a predicate decides per row. Defaults
1122
- * to editable for any column that maps to a field - see {@link editField}.
1123
- */
1124
- editable?: boolean | ((row: Row<TMDataGridFeatures, TMDataGridRowData>) => boolean);
1125
- /**
1126
- * The data path this column edits, when it is not the `accessorKey` - the
1127
- * only way a column built on `accessorFn` becomes editable. Dot paths reach
1128
- * into nested records: `"address.city"`.
1129
- */
1130
- editField?: string;
1131
- /**
1132
- * Field-level validators, in TanStack Form's own vocabulary. A bare Zod
1133
- * schema (or any Standard Schema, or a plain function) means
1134
- * `{ onChange: it }`; the object form takes every trigger Form defines.
1201
+ * How this column filters: the operator a fresh filter starts with, and the
1202
+ * value control the filter panel renders for it.
1135
1203
  *
1136
1204
  * ```tsx
1137
- * meta: { validate: z.string().min(2, "Too short") }
1138
- * meta: { validate: { onBlur: z.string().email() } }
1205
+ * meta: {
1206
+ * type: "number",
1207
+ * filter: { defaultOperator: "between", control: DgRangeSliderFilter },
1208
+ * }
1139
1209
  * ```
1210
+ *
1211
+ * See {@link TMDataGridColumnFilterOptions}.
1140
1212
  */
1141
- validate?: TMDataGridFieldValidate;
1213
+ filter?: TMDataGridColumnFilterOptions;
1142
1214
  /**
1143
- * Replaces the built-in editor for this column. A component rendered as
1144
- * JSX (hooks are legal inside), receiving the live TanStack Form `field`
1145
- * API plus the table context, the same contract the built-ins fill. Define
1146
- * it at module scope so its identity is stable across renders. See
1147
- * {@link TMDataGridEditorArgs}.
1215
+ * How this column is edited: whether it takes edits, which field they write
1216
+ * to, which editor opens, what validates the field and what maps the value
1217
+ * on its way in.
1218
+ *
1219
+ * ```tsx
1220
+ * meta: {
1221
+ * type: "string",
1222
+ * edit: { validate: z.string().min(2, "Too short") },
1223
+ * }
1224
+ * ```
1225
+ *
1226
+ * See {@link TMDataGridColumnEditOptions}.
1148
1227
  */
1149
- editor?: TMDataGridEditorComponent;
1228
+ edit?: TMDataGridColumnEditOptions;
1150
1229
  };
1151
1230
  /** Grid-wide configuration passed through `options.meta`. */
1152
1231
  type TMDataGridTableMeta = {
@@ -1559,9 +1638,9 @@ type TMDataGridEditingCallbacks<TData extends RowData> = {
1559
1638
  *
1560
1639
  * One TanStack Form per editing row; drafts survive scrolling because the
1561
1640
  * forms live outside the DOM, keyed by row id. Which columns edit, and with
1562
- * what, is declared per column: `meta.type` picks the built-in editor,
1563
- * `meta.validate` its validators, `meta.editable` / `meta.editor` the
1564
- * overrides.
1641
+ * what, is declared per column under `meta.edit`: `meta.type` picks the
1642
+ * built-in editor, and `enabled`, `field`, `editor`, `validate` and `mapValue`
1643
+ * override the rest.
1565
1644
  */
1566
1645
  type TMDataGridEditingOptions<TData extends RowData> = (TMDataGridEditingCallbacks<TData> & {
1567
1646
  editMode: "batch";
@@ -2550,7 +2629,7 @@ declare function formatGroupValue(value: unknown, blankLabel?: string): string;
2550
2629
  //#region .types-tmp/components/filters/TMDataGridFilterValueInput.d.ts
2551
2630
  /**
2552
2631
  * The built-in value control of a filter-panel row - what renders when a
2553
- * column declares no `meta.filterControl`. Shaped by the operator: a
2632
+ * column declares no `meta.filter.control`. Shaped by the operator: a
2554
2633
  * multi-select for the set operators, a From/To pair for `between`, a Yes/No
2555
2634
  * dropdown for booleans, a typed input otherwise.
2556
2635
  *
@@ -2561,9 +2640,9 @@ declare function TMDataGridFilterValueInput({ column, operator, value, onChange,
2561
2640
  //#endregion
2562
2641
  //#region .types-tmp/components/filters/DgRangeSliderFilter.d.ts
2563
2642
  /**
2564
- * A built-in `meta.filterControl` for `number` columns: a range slider whose
2643
+ * A built-in `meta.filter.control` for `number` columns: a range slider whose
2565
2644
  * bounds are seeded from the values present in the data, writing the
2566
- * `between` pair. Pair it with `meta.defaultFilterOperator: "between"` so
2645
+ * `between` pair. Pair it with `meta.filter.defaultOperator: "between"` so
2567
2646
  * the filter opens on it; any non-range operator falls back to the standard
2568
2647
  * input.
2569
2648
  */
@@ -2571,17 +2650,17 @@ declare function DgRangeSliderFilter(args: TMDataGridFilterControlArgs): import(
2571
2650
  //#endregion
2572
2651
  //#region .types-tmp/components/filters/DgDateRangeFilter.d.ts
2573
2652
  /**
2574
- * A built-in `meta.filterControl` for `date` columns: a From/To pair of
2653
+ * A built-in `meta.filter.control` for `date` columns: a From/To pair of
2575
2654
  * native date inputs writing the `between` pair - no `@mantine/dates`
2576
2655
  * involved, like the built-in date editor. Pair it with
2577
- * `meta.defaultFilterOperator: "between"`; any non-range operator falls back
2656
+ * `meta.filter.defaultOperator: "between"`; any non-range operator falls back
2578
2657
  * to the standard input.
2579
2658
  */
2580
2659
  declare function DgDateRangeFilter(args: TMDataGridFilterControlArgs): import("react").JSX.Element;
2581
2660
  //#endregion
2582
2661
  //#region .types-tmp/components/filters/DgAutocompleteFilter.d.ts
2583
2662
  /**
2584
- * A built-in `meta.filterControl` for text-shaped columns: a free-text input
2663
+ * A built-in `meta.filter.control` for text-shaped columns: a free-text input
2585
2664
  * that also offers the values present in the data (or the column's declared
2586
2665
  * `meta.options`) as suggestions. Set or range operators fall back to the
2587
2666
  * standard input.
@@ -2590,7 +2669,7 @@ declare function DgAutocompleteFilter(args: TMDataGridFilterControlArgs): import
2590
2669
  //#endregion
2591
2670
  //#region .types-tmp/components/filters/DgTriStateFilter.d.ts
2592
2671
  /**
2593
- * A built-in `meta.filterControl` for `boolean` columns: an All / Yes / No
2672
+ * A built-in `meta.filter.control` for `boolean` columns: an All / Yes / No
2594
2673
  * segmented control - All clears the value, which deactivates the filter.
2595
2674
  * Set or range operators fall back to the standard input.
2596
2675
  */
@@ -2598,23 +2677,23 @@ declare function DgTriStateFilter(args: TMDataGridFilterControlArgs): import("re
2598
2677
  //#endregion
2599
2678
  //#region .types-tmp/components/editors/TMDataGridStringEditor.d.ts
2600
2679
  /** The built-in editor for `meta.type: "string"` (and the default). */
2601
- declare function TMDataGridStringEditor({ field, autoFocus, column, size }: TMDataGridEditorArgs): import("react").JSX.Element;
2680
+ declare function TMDataGridStringEditor({ field, column, size }: TMDataGridEditorArgs): import("react").JSX.Element;
2602
2681
  //#endregion
2603
2682
  //#region .types-tmp/components/editors/TMDataGridNumberEditor.d.ts
2604
2683
  /** The built-in editor for `meta.type: "number"`. */
2605
- declare function TMDataGridNumberEditor({ field, autoFocus, column, size }: TMDataGridEditorArgs): import("react").JSX.Element;
2684
+ declare function TMDataGridNumberEditor({ field, column, size }: TMDataGridEditorArgs): import("react").JSX.Element;
2606
2685
  //#endregion
2607
2686
  //#region .types-tmp/components/editors/TMDataGridBooleanEditor.d.ts
2608
2687
  /** The built-in editor for `meta.type: "boolean"` - a focused checkbox. */
2609
- declare function TMDataGridBooleanEditor({ field, autoFocus, column, size }: TMDataGridEditorArgs): import("react").JSX.Element;
2688
+ declare function TMDataGridBooleanEditor({ field, column, size }: TMDataGridEditorArgs): import("react").JSX.Element;
2610
2689
  //#endregion
2611
2690
  //#region .types-tmp/components/editors/TMDataGridDateEditor.d.ts
2612
2691
  /**
2613
2692
  * The built-in editor for `meta.type: "date"` - the native
2614
2693
  * `<input type="date">` styled by Mantine, no `@mantine/dates` involved. A
2615
- * consumer wanting a real picker plugs one in through `meta.editor`.
2694
+ * consumer wanting a real picker plugs one in through `meta.edit.editor`.
2616
2695
  */
2617
- declare function TMDataGridDateEditor({ field, autoFocus, column, size }: TMDataGridEditorArgs): import("react").JSX.Element;
2696
+ declare function TMDataGridDateEditor({ field, column, size }: TMDataGridEditorArgs): import("react").JSX.Element;
2618
2697
  //#endregion
2619
2698
  //#region .types-tmp/components/editors/TMDataGridSelectEditor.d.ts
2620
2699
  /**
@@ -2622,7 +2701,7 @@ declare function TMDataGridDateEditor({ field, autoFocus, column, size }: TMData
2622
2701
  * `meta.options` the filter panel reads - with the row in hand, so a
2623
2702
  * function source can depend on the record being edited.
2624
2703
  */
2625
- declare function TMDataGridSelectEditor({ field, autoFocus, column, row, table, size, commit }: TMDataGridEditorArgs): import("react").JSX.Element;
2704
+ declare function TMDataGridSelectEditor({ field, column, row, table, size, commit }: TMDataGridEditorArgs): import("react").JSX.Element;
2626
2705
  //#endregion
2627
2706
  //#region .types-tmp/components/editors/TMDataGridMultiSelectEditor.d.ts
2628
2707
  /**
@@ -2630,7 +2709,7 @@ declare function TMDataGridSelectEditor({ field, autoFocus, column, row, table,
2630
2709
  * arrays. Never commits on pick: building a set takes several, so the commit
2631
2710
  * stays on Enter/blur like a text edit.
2632
2711
  */
2633
- declare function TMDataGridMultiSelectEditor({ field, autoFocus, column, row, table, size }: TMDataGridEditorArgs): import("react").JSX.Element;
2712
+ declare function TMDataGridMultiSelectEditor({ field, column, row, table, size }: TMDataGridEditorArgs): import("react").JSX.Element;
2634
2713
  //#endregion
2635
2714
  //#region .types-tmp/core/labelsSv.d.ts
2636
2715
  /**
@@ -2665,9 +2744,23 @@ declare function getColumnLabel(column: ColumnLike): string;
2665
2744
  declare function getColumnType(column: ColumnLike): TMDataGridColumnType;
2666
2745
  /**
2667
2746
  * The operator a fresh filter on this column starts with -
2668
- * `meta.defaultFilterOperator`, else the type's default.
2747
+ * `meta.filter.defaultOperator`, else the type's default.
2669
2748
  */
2670
2749
  declare function getColumnDefaultOperator(column: ColumnLike): TMDataGridFilterOperator;
2750
+ /**
2751
+ * This column's filter-panel value control - `meta.filter.control`, or
2752
+ * `undefined` for the built-in shape-by-operator input.
2753
+ */
2754
+ declare function getColumnFilterControl(column: ColumnLike): TMDataGridFilterControlComponent | undefined;
2755
+ /**
2756
+ * Whether `meta.edit.enabled` lets this column's cell on this row be edited -
2757
+ * the switch, then the predicate.
2758
+ *
2759
+ * This is only the column's half of the rule. A cell also needs the column to
2760
+ * map to a field (`getEditFieldName`) and the row to take edits at all
2761
+ * (`isRowEditable`); `edit.canEditCell` is the whole question.
2762
+ */
2763
+ declare function isColumnEditableForRow(column: ColumnLike, row: Row<TMDataGridFeatures, TMDataGridRowData>): boolean;
2671
2764
  /**
2672
2765
  * A generated lane holding one fixed-width thing - the checkbox, the details
2673
2766
  * chevron, the row number.
@@ -2951,4 +3044,4 @@ declare function getSelectableRowIds<TData extends RowData>(row: Row<TMDataGridF
2951
3044
  */
2952
3045
  declare function resolveRowSelectionClick<TData extends RowData>({ rows, rowId, anchorRowId, modifiers, selection, canReplaceSelection }: ResolveRowSelectionClickArgs<TData>): ResolvedRowSelection;
2953
3046
  //#endregion
2954
- export { type BuildCellMatrixArgs, type ColumnStepArgs, DATA_STATE_SLICES, DEFAULT_CELL_EXPORT_OPTIONS, DEFAULT_TMDATAGRID_SIZE, DETAILS_COLUMN_ID, DgAutocompleteFilter, DgDateRangeFilter, DgRangeSliderFilter, DgTriStateFilter, EDIT_COLUMN_ID, FILTER_OPERATOR_LABELS, GROUP_COLUMN_ID, type MoveColumnArgs, PERSIST_PAYLOAD_VERSION, ROW_NUMBER_COLUMN_ID, type ResolveCellMoveArgs, type ResolveRangeBoundsArgs, type ResolveRowSelectionClickArgs, type ResolvedRowSelection, SELECT_COLUMN_ID, SETTINGS_STATE_SLICES, SIZE_CONTROL_SIZE, SIZE_ROW_HEIGHT, TMDATAGRID_LABELS_EN, TMDATAGRID_LABELS_SV, TMDataGrid, type TMDataGridAggregationName, type TMDataGridApi, TMDataGridBooleanEditor, type TMDataGridCapabilities, type TMDataGridCellCoords, type TMDataGridCellEventArgs, type TMDataGridCellExportOptions, type TMDataGridCellMatrix, type TMDataGridCellNav, type TMDataGridCellPosition, type TMDataGridCellRange, type TMDataGridCellSelectionMode, type TMDataGridColumnCapabilities, type TMDataGridColumnLayout, type TMDataGridColumnMenuItemsArgs, type TMDataGridColumnMenuItemsRenderer, type TMDataGridColumnMeta, type TMDataGridColumnRegion, type TMDataGridColumnType, type TMDataGridContextValue, type TMDataGridDataSlice, TMDataGridDateEditor, type TMDataGridDetailsArgs, type TMDataGridDetailsRenderer, type TMDataGridDropSide, TMDataGridEditActions, type TMDataGridEditActionsActions, type TMDataGridEditActionsControls, type TMDataGridEditActionsProps, type TMDataGridEditActionsSlotArgs, type TMDataGridEditActionsState, type TMDataGridEditApi, type TMDataGridEditChange, type TMDataGridEditCommitArgs, type TMDataGridEditCommitBatchArgs, type TMDataGridEditField, type TMDataGridEditMode, type TMDataGridEditRowProjection, type TMDataGridEditState, type TMDataGridEditingOptions, type TMDataGridEditorArgs, type TMDataGridEditorComponent, type TMDataGridExpandAllArgs, type TMDataGridExpandTarget, type TMDataGridFeatureFlags, type TMDataGridFeatures, type TMDataGridFieldValidate, type TMDataGridFilterControlArgs, type TMDataGridFilterControlComponent, type TMDataGridFilterOperator, TMDataGridFilterPills, type TMDataGridFilterPillsProps, type TMDataGridFilterValue, TMDataGridFilterValueInput, type TMDataGridFooterProps, type TMDataGridLabels, type TMDataGridLabelsOverride, TMDataGridMultiSelectEditor, TMDataGridNumberEditor, type TMDataGridOption, type TMDataGridOptionsArgs, type TMDataGridOptionsSource, type TMDataGridPaginationActions, type TMDataGridPaginationApi, type TMDataGridPaginationControls, type TMDataGridPaginationSlotArgs, type TMDataGridPaginationState, type TMDataGridPersistKey, type TMDataGridPersistence, type TMDataGridProps, type TMDataGridQuickSearchMode, type TMDataGridRangeBounds, type TMDataGridRowAddArgs, type TMDataGridRowClickModifiers, type TMDataGridRowContextMenuArgs, type TMDataGridRowContextMenuRenderer, type TMDataGridRowData, type TMDataGridRowDeleteArgs, type TMDataGridRowEditForm, type TMDataGridRowStyle, type TMDataGridRowValidators, type TMDataGridScrollAlign, type TMDataGridScrollToRowArgs, TMDataGridSearch, type TMDataGridSearchProps, TMDataGridSelectEditor, type TMDataGridSelectionMode, type TMDataGridSettingsSlice, type TMDataGridSize, type TMDataGridStorageMode, TMDataGridStringEditor, type TMDataGridTable, type TMDataGridTableMeta, type TMDataGridTableProps, type TMDataGridUiActions, type TMDataGridUiState, type TMDataGridUiStore, type UseTMDataGridOptions, aggregateColumn, areAllRowsExpanded, autosizeColumn, boundsCellCount, boundsEdges, buildCellMatrix, buildGridCellMatrix, clearedValueForType, createTMDataGridColumnHelper, downloadTextFile, emptyValueForOperator, exportGridToCsv, formatExportValue, formatFilterLabel, formatGroupValue, fuzzyGlobalFilterFn, getColumnCapabilities, getColumnDefaultOperator, getColumnLabel, getColumnRegion, getColumnType, getDefaultOperator, getDisplayedRows, getEditFieldName, getGridCapabilities, getGroupDataRows, getOperatorsForType, getSelectableRowIds, getStepTargetColumn, getTMDataGridPaginationApi, isColumnReorderable, isControlColumn, isFilterActive, isPagingActive, isSameCell, isWithinBounds, measureColumnContentWidth, mergeLabels, moveColumn, moveColumnByStep, normalizeFieldValidate, openColumnFilter, operatorNeedsValue, operatorTakesArrayValue, operatorTakesRangeValue, optionsToComboboxData, readFeatureFlags, resolveCellMove, resolveColumnOptions, resolveExpandAll, resolveRangeBounds, resolveRowSelectionClick, tmDataGridFeatures, toClipboardText, toExcelCsv, useCellControlTabIndex, useTMDataGrid, useTMDataGridContext, writeClipboardText };
3047
+ export { type BuildCellMatrixArgs, type ColumnStepArgs, DATA_STATE_SLICES, DEFAULT_CELL_EXPORT_OPTIONS, DEFAULT_TMDATAGRID_SIZE, DETAILS_COLUMN_ID, DgAutocompleteFilter, DgDateRangeFilter, DgRangeSliderFilter, DgTriStateFilter, EDIT_COLUMN_ID, FILTER_OPERATOR_LABELS, GROUP_COLUMN_ID, type MoveColumnArgs, PERSIST_PAYLOAD_VERSION, ROW_NUMBER_COLUMN_ID, type ResolveCellMoveArgs, type ResolveRangeBoundsArgs, type ResolveRowSelectionClickArgs, type ResolvedRowSelection, SELECT_COLUMN_ID, SETTINGS_STATE_SLICES, SIZE_CONTROL_SIZE, SIZE_ROW_HEIGHT, TMDATAGRID_LABELS_EN, TMDATAGRID_LABELS_SV, TMDataGrid, type TMDataGridAggregationName, type TMDataGridApi, TMDataGridBooleanEditor, type TMDataGridCapabilities, type TMDataGridCellCoords, type TMDataGridCellEventArgs, type TMDataGridCellExportOptions, type TMDataGridCellMatrix, type TMDataGridCellNav, type TMDataGridCellPosition, type TMDataGridCellRange, type TMDataGridCellSelectionMode, type TMDataGridColumnCapabilities, type TMDataGridColumnEditOptions, type TMDataGridColumnFilterOptions, type TMDataGridColumnLayout, type TMDataGridColumnMenuItemsArgs, type TMDataGridColumnMenuItemsRenderer, type TMDataGridColumnMeta, type TMDataGridColumnRegion, type TMDataGridColumnType, type TMDataGridContextValue, type TMDataGridDataSlice, TMDataGridDateEditor, type TMDataGridDetailsArgs, type TMDataGridDetailsRenderer, type TMDataGridDropSide, TMDataGridEditActions, type TMDataGridEditActionsActions, type TMDataGridEditActionsControls, type TMDataGridEditActionsProps, type TMDataGridEditActionsSlotArgs, type TMDataGridEditActionsState, type TMDataGridEditApi, type TMDataGridEditChange, type TMDataGridEditCommitArgs, type TMDataGridEditCommitBatchArgs, type TMDataGridEditField, type TMDataGridEditMode, type TMDataGridEditRowProjection, type TMDataGridEditState, type TMDataGridEditValueMap, type TMDataGridEditValueMapArgs, type TMDataGridEditingOptions, type TMDataGridEditorArgs, type TMDataGridEditorComponent, type TMDataGridExpandAllArgs, type TMDataGridExpandTarget, type TMDataGridFeatureFlags, type TMDataGridFeatures, type TMDataGridFieldValidate, type TMDataGridFilterControlArgs, type TMDataGridFilterControlComponent, type TMDataGridFilterOperator, TMDataGridFilterPills, type TMDataGridFilterPillsProps, type TMDataGridFilterValue, TMDataGridFilterValueInput, type TMDataGridFooterProps, type TMDataGridLabels, type TMDataGridLabelsOverride, TMDataGridMultiSelectEditor, TMDataGridNumberEditor, type TMDataGridOption, type TMDataGridOptionsArgs, type TMDataGridOptionsSource, type TMDataGridPaginationActions, type TMDataGridPaginationApi, type TMDataGridPaginationControls, type TMDataGridPaginationSlotArgs, type TMDataGridPaginationState, type TMDataGridPersistKey, type TMDataGridPersistence, type TMDataGridProps, type TMDataGridQuickSearchMode, type TMDataGridRangeBounds, type TMDataGridRowAddArgs, type TMDataGridRowClickModifiers, type TMDataGridRowContextMenuArgs, type TMDataGridRowContextMenuRenderer, type TMDataGridRowData, type TMDataGridRowDeleteArgs, type TMDataGridRowEditForm, type TMDataGridRowStyle, type TMDataGridRowValidators, type TMDataGridScrollAlign, type TMDataGridScrollToRowArgs, TMDataGridSearch, type TMDataGridSearchProps, TMDataGridSelectEditor, type TMDataGridSelectionMode, type TMDataGridSettingsSlice, type TMDataGridSize, type TMDataGridStorageMode, TMDataGridStringEditor, type TMDataGridTable, type TMDataGridTableMeta, type TMDataGridTableProps, type TMDataGridUiActions, type TMDataGridUiState, type TMDataGridUiStore, type UseTMDataGridOptions, aggregateColumn, areAllRowsExpanded, autosizeColumn, boundsCellCount, boundsEdges, buildCellMatrix, buildGridCellMatrix, clearedValueForType, createTMDataGridColumnHelper, downloadTextFile, emptyValueForOperator, exportGridToCsv, formatExportValue, formatFilterLabel, formatGroupValue, fuzzyGlobalFilterFn, getColumnCapabilities, getColumnDefaultOperator, getColumnFilterControl, getColumnLabel, getColumnRegion, getColumnType, getDefaultOperator, getDisplayedRows, getEditFieldName, getGridCapabilities, getGroupDataRows, getOperatorsForType, getSelectableRowIds, getStepTargetColumn, getTMDataGridPaginationApi, isColumnEditableForRow, isColumnReorderable, isControlColumn, isFilterActive, isPagingActive, isSameCell, isWithinBounds, measureColumnContentWidth, mergeLabels, moveColumn, moveColumnByStep, normalizeFieldValidate, openColumnFilter, operatorNeedsValue, operatorTakesArrayValue, operatorTakesRangeValue, optionsToComboboxData, readFeatureFlags, resolveCellMove, resolveColumnOptions, resolveExpandAll, resolveRangeBounds, resolveRowSelectionClick, tmDataGridFeatures, toClipboardText, toExcelCsv, useCellControlTabIndex, useTMDataGrid, useTMDataGridContext, writeClipboardText };