@bsuite/data-grid 1.0.1 → 1.2.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.
@@ -1 +1 @@
1
- {"version":3,"file":"DataGrid.d.ts","sourceRoot":"","sources":["../src/DataGrid.tsx"],"names":[],"mappings":"AAAA,OAAO,EAaL,KAAK,YAAY,EAClB,MAAM,OAAO,CAAC;AAwBf,OAAO,KAAK,EAMV,cAAc,EACd,aAAa,EACd,MAAM,YAAY,CAAC;AAw0BpB,eAAO,MAAM,QAAQ,EAAgC,CAAC,IAAI,EACxD,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;CAAE,KAC7D,YAAY,CAAC"}
1
+ {"version":3,"file":"DataGrid.d.ts","sourceRoot":"","sources":["../src/DataGrid.tsx"],"names":[],"mappings":"AAAA,OAAO,EAaL,KAAK,YAAY,EAClB,MAAM,OAAO,CAAC;AA8Bf,OAAO,KAAK,EAMV,cAAc,EACd,aAAa,EACd,MAAM,YAAY,CAAC;AA6jCpB,eAAO,MAAM,QAAQ,EAAgC,CAAC,IAAI,EACxD,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;CAAE,KAC7D,YAAY,CAAC"}
package/dist/DataGrid.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useReducer, useRef, useState, } from 'react';
3
- import { getCoreRowModel, getSortedRowModel, useReactTable, } from '@tanstack/react-table';
3
+ import { getCoreRowModel, getExpandedRowModel, getFilteredRowModel, getGroupedRowModel, getSortedRowModel, useReactTable, } from '@tanstack/react-table';
4
4
  import { useVirtualizer } from '@tanstack/react-virtual';
5
5
  import { DndContext, PointerSensor, useSensor, useSensors } from '@dnd-kit/core';
6
6
  import { SortableContext, arrayMove, horizontalListSortingStrategy } from '@dnd-kit/sortable';
@@ -40,7 +40,7 @@ function editorFor(column) {
40
40
  }
41
41
  }
42
42
  function DataGridInner(props, ref) {
43
- const { columns, data, getRowId, onCellsEdited, onError, frozenFirstColumn = true, rowHeight = DEFAULT_ROW_HEIGHT, headerHeight = DEFAULT_HEADER_HEIGHT, height = '100%', className, undoLimit = DEFAULT_UNDO_LIMIT, emptyState, } = props;
43
+ const { columns, data, getRowId, onCellsEdited, onError, frozenFirstColumn = true, rowHeight = DEFAULT_ROW_HEIGHT, headerHeight = DEFAULT_HEADER_HEIGHT, height = '100%', className, undoLimit = DEFAULT_UNDO_LIMIT, emptyState, onRowClick, groupBy = null, groupExpanded, onGroupExpandedChange, columnVisibility: columnVisibilityProp, onColumnVisibilityChange, globalFilter, onLinkEdit, } = props;
44
44
  const scrollRef = useRef(null);
45
45
  const columnConfigById = useMemo(() => new Map(columns.map((c) => [c.id, c])), [columns]);
46
46
  const tableColumns = useMemo(() => columns.map((col) => ({
@@ -55,6 +55,21 @@ function DataGridInner(props, ref) {
55
55
  const [sorting, setSorting] = useState([]);
56
56
  const [columnOrder, setColumnOrder] = useState(() => columns.map((c) => c.id));
57
57
  const [columnSizing, setColumnSizing] = useState({});
58
+ /*
59
+ * Column visibility is CONTROLLED when the page supplies a change handler,
60
+ * so the reader's choice can be persisted, and uncontrolled otherwise. The
61
+ * uncontrolled copy still exists rather than being skipped: a grid that only
62
+ * hides columns when its host bothers to wire persistence would be a
63
+ * capability nobody gets by default.
64
+ */
65
+ const [ownColumnVisibility, setOwnColumnVisibility] = useState({});
66
+ const columnVisibility = columnVisibilityProp ?? ownColumnVisibility;
67
+ const setColumnVisibility = useCallback((next) => {
68
+ if (onColumnVisibilityChange)
69
+ onColumnVisibilityChange(next);
70
+ else
71
+ setOwnColumnVisibility(next);
72
+ }, [onColumnVisibilityChange]);
58
73
  // Keep columnOrder in sync if the `columns` prop's identity set changes
59
74
  // (columns added/removed) without discarding the user's chosen order.
60
75
  useEffect(() => {
@@ -67,18 +82,66 @@ function DataGridInner(props, ref) {
67
82
  return next.length === prev.length && next.every((id, i) => id === prev[i]) ? prev : next;
68
83
  });
69
84
  }, [columns]);
85
+ /*
86
+ * Grouping is DERIVED from the prop, never held locally: the host owns the
87
+ * choice so it can persist it. A local copy would silently diverge from the
88
+ * saved view preference the moment the reader reloaded.
89
+ */
90
+ const grouping = useMemo(() => (groupBy ? [groupBy] : []), [groupBy]);
91
+ const [expanded, setExpanded] = useState(true);
92
+ /*
93
+ * Default is EXPANDED, and that is the deliberate choice. A grid that opens
94
+ * with every group shut shows the reader a list of headings and none of their
95
+ * data, which is a worse first screen than the flat grid it replaced.
96
+ */
97
+ useEffect(() => {
98
+ setExpanded(groupExpanded && Object.keys(groupExpanded).length > 0 ? groupExpanded : true);
99
+ }, [groupExpanded]);
70
100
  const table = useReactTable({
71
101
  data,
72
102
  columns: tableColumns,
73
- state: { sorting, columnOrder, columnSizing },
103
+ state: { sorting, columnOrder, columnSizing, columnVisibility, globalFilter, grouping, expanded },
104
+ onExpandedChange: (updater) => {
105
+ const next = typeof updater === 'function' ? updater(expanded) : updater;
106
+ setExpanded(next);
107
+ if (onGroupExpandedChange && typeof next === 'object')
108
+ onGroupExpandedChange(next);
109
+ },
74
110
  onSortingChange: setSorting,
75
111
  onColumnOrderChange: setColumnOrder,
76
112
  onColumnSizingChange: setColumnSizing,
113
+ onColumnVisibilityChange: (updater) => setColumnVisibility(typeof updater === 'function' ? updater(columnVisibility) : updater),
114
+ onGlobalFilterChange: () => {
115
+ /* filter text is owned by the host; this exists so the table does not
116
+ warn about an uncontrolled state field. */
117
+ },
118
+ /*
119
+ * Filter the FORMATTED value, not the raw one.
120
+ *
121
+ * The reader filters what they can SEE. A date stored `2026-08-23` and
122
+ * shown `23/08/2026` must match a search for "23/08" — matching the raw
123
+ * value would silently return nothing for the string on screen.
124
+ */
125
+ globalFilterFn: (row, _columnId, value) => {
126
+ const needle = String(value ?? '').toLowerCase();
127
+ if (!needle)
128
+ return true;
129
+ return columns.some((col) => {
130
+ if (columnVisibility[col.id] === false)
131
+ return false;
132
+ const raw = col.accessor(row.original);
133
+ const shown = col.formatValue ? col.formatValue(raw, row.original) : formatCellValue(raw, col.dataType);
134
+ return String(shown).toLowerCase().includes(needle);
135
+ });
136
+ },
77
137
  columnResizeMode: 'onChange',
78
138
  enableColumnResizing: true,
79
139
  getRowId,
80
140
  getCoreRowModel: getCoreRowModel(),
141
+ getGroupedRowModel: getGroupedRowModel(),
142
+ getExpandedRowModel: getExpandedRowModel(),
81
143
  getSortedRowModel: getSortedRowModel(),
144
+ getFilteredRowModel: getFilteredRowModel(),
82
145
  });
83
146
  const rows = table.getRowModel().rows;
84
147
  const visibleColumns = table.getVisibleLeafColumns();
@@ -425,12 +488,39 @@ function DataGridInner(props, ref) {
425
488
  };
426
489
  }, []);
427
490
  // ── Cell interaction ------------------------------------------------
491
+ /*
492
+ * A linked column with no `renderEditor` must NEVER open a text editor.
493
+ *
494
+ * Falling back to free text is the single worst failure available here: the
495
+ * cell looks editable, someone types a host name, and the row now holds a
496
+ * string where every other row holds a reference — the exact divergence the
497
+ * link exists to make unrepresentable. Refusing the edit is loud and
498
+ * recoverable; a silent text box is neither.
499
+ */
500
+ function canEditColumn(columnId) {
501
+ const config = columnConfigById.get(columnId);
502
+ if (!config)
503
+ return false;
504
+ if (config.editable === false)
505
+ return false;
506
+ if (config.link && !config.renderEditor) {
507
+ onError({
508
+ message: `column "${columnId}" declares link entity "${config.link.entity}" but supplies no renderEditor. ` +
509
+ 'A linked cell must be edited through the app\'s own entity selector — the same one the form uses ' +
510
+ '(select, or add new). Refusing rather than falling back to a text input, which would let a name be ' +
511
+ 'typed into one row while every other row holds a reference.',
512
+ phase: 'edit',
513
+ edits: [],
514
+ });
515
+ return false;
516
+ }
517
+ return true;
518
+ }
428
519
  function beginEditing(pos, seedChar) {
429
520
  const column = visibleColumns[pos.col];
430
521
  if (!column)
431
522
  return;
432
- const config = columnConfigById.get(column.id);
433
- if (config?.editable === false)
523
+ if (!canEditColumn(column.id))
434
524
  return;
435
525
  setEditSeedChar(seedChar);
436
526
  setEditingCell(pos);
@@ -448,8 +538,74 @@ function DataGridInner(props, ref) {
448
538
  const previousValue = getEffectiveValue(row.index, column.id);
449
539
  if (Object.is(previousValue, nextValue))
450
540
  return;
541
+ /*
542
+ * A LINKED cell stores a REFERENCE, so committing it re-points this row at
543
+ * a different record. It never writes a name.
544
+ *
545
+ * The value arriving from the editor is a record id, because the editor
546
+ * for a linked column is a picker over `options` and free text is refused.
547
+ * That refusal is the whole one-shot mechanism: a host name cannot be
548
+ * mistyped into a row, so two rows cannot hold different spellings of the
549
+ * same host, and correcting the host's name is done once on the record
550
+ * that owns it — every row follows because every row only ever held a
551
+ * pointer.
552
+ */
553
+ const config = columnConfigById.get(column.id);
554
+ if (config?.link) {
555
+ void commitLinkEdit({
556
+ entity: config.link.entity,
557
+ columnId: column.id,
558
+ rowIndex: row.index,
559
+ row: data[row.index],
560
+ previousRefId: config.link.refId(data[row.index]),
561
+ refId: nextValue === null || nextValue === undefined ? null : String(nextValue),
562
+ });
563
+ return;
564
+ }
451
565
  void commitEdits([{ rowIndex: row.index, columnId: column.id, previousValue, value: nextValue, row: data[row.index] }], 'edit');
452
566
  }
567
+ /*
568
+ * Persist a re-link, optimistically showing it first.
569
+ *
570
+ * A single row changes, because a link lives on the row. The referenced
571
+ * record is untouched — editing IT is the job of the surface that owns it,
572
+ * which is exactly why one correction there reaches every row here without
573
+ * this package propagating anything.
574
+ */
575
+ async function commitLinkEdit(edit) {
576
+ setOverlay((prev) => {
577
+ const next = new Map(prev);
578
+ next.set(overlayKey(edit.rowIndex, edit.columnId), edit.refId);
579
+ return next;
580
+ });
581
+ try {
582
+ if (!onLinkEdit) {
583
+ throw new Error(`column "${edit.columnId}" declares link entity "${edit.entity}" but no onLinkEdit handler was supplied`);
584
+ }
585
+ await onLinkEdit(edit);
586
+ }
587
+ catch (err) {
588
+ setOverlay((prev) => {
589
+ const next = new Map(prev);
590
+ next.delete(overlayKey(edit.rowIndex, edit.columnId));
591
+ return next;
592
+ });
593
+ onError({
594
+ message: err instanceof Error ? err.message : String(err),
595
+ cause: err,
596
+ phase: 'edit',
597
+ edits: [
598
+ {
599
+ rowIndex: edit.rowIndex,
600
+ columnId: edit.columnId,
601
+ previousValue: edit.previousRefId,
602
+ value: edit.refId,
603
+ row: edit.row,
604
+ },
605
+ ],
606
+ });
607
+ }
608
+ }
453
609
  function handleEditorCancel() {
454
610
  setEditingCell(null);
455
611
  setEditSeedChar(undefined);
@@ -601,7 +757,61 @@ function DataGridInner(props, ref) {
601
757
  })] }) }), virtualRows.map((vr) => {
602
758
  const row = rows[vr.index];
603
759
  const rowTop = headerHeight + vr.start;
604
- return (_jsxs("div", { role: "row", className: "absolute left-0 flex", style: { top: rowTop, width: totalWidth, height: vr.size }, children: [frozenColumn && (_jsx(GridCellRenderer, { gridRow: vr.index, gridCol: 0, frozen: true, style: { position: 'sticky', left: 0, zIndex: 10, width: frozenWidth, height: vr.size }, column: columnConfigById.get(frozenColumn.id), row: row.original, rowIndex: row.index, value: getEffectiveValue(row.index, frozenColumn.id), isSelected: Boolean(normalizedSelection && isCellInRange({ row: vr.index, col: 0 }, normalizedSelection)), isActive: Boolean(selection && selection.focus.row === vr.index && selection.focus.col === 0), isEditing: Boolean(editingCell && editingCell.row === vr.index && editingCell.col === 0), editSeedChar: editSeedChar, onCommit: handleEditorCommit, onCancel: handleEditorCancel, onMouseDown: (e) => handleCellMouseDown({ row: vr.index, col: 0 }, e), onMouseEnter: () => handleCellMouseEnter({ row: vr.index, col: 0 }), onDoubleClick: () => beginEditing({ row: vr.index, col: 0 }) })), virtualColumns.map((vc) => {
760
+ /*
761
+ * A GROUP HEADER is a different thing from a row of data, and drawing it
762
+ * as one is how a grouped grid becomes unreadable: the heading lines up
763
+ * under the first column, every other column is blank, and a heading is
764
+ * indistinguishable from an empty record.
765
+ *
766
+ * So it spans the full width, carries its own count, and is NOT clickable
767
+ * as a record — there is no record behind it.
768
+ */
769
+ if (row.getIsGrouped()) {
770
+ const groupColumn = columns.find((c) => c.id === row.groupingColumnId);
771
+ const rawValue = row.getGroupingValue(String(row.groupingColumnId));
772
+ const shown = groupColumn?.formatValue
773
+ ? groupColumn.formatValue(rawValue, row.original)
774
+ : formatCellValue(rawValue, groupColumn?.dataType);
775
+ const isExpanded = row.getIsExpanded();
776
+ const label = String(shown ?? '') || '(none)';
777
+ return (_jsxs("div", { role: "row", "aria-expanded": isExpanded, className: "absolute left-0 z-10 flex items-center gap-2 border-b border-border bg-muted/60 px-3 text-sm font-medium", style: { top: rowTop, width: totalWidth, height: vr.size }, children: [_jsx("button", { type: "button", onClick: row.getToggleExpandedHandler(), "aria-label": `${isExpanded ? 'Collapse' : 'Expand'} ${label}`, className: "flex h-5 w-5 shrink-0 items-center justify-center rounded hover:bg-muted", children: _jsx("span", { "aria-hidden": true, className: "text-xs", children: isExpanded ? '\u25be' : '\u25b8' }) }), _jsxs("span", { className: "truncate", children: [groupColumn?.header ? `${groupColumn.header}: ` : '', label] }), _jsxs("span", { className: "text-xs font-normal text-muted-foreground", children: [row.subRows.length, " ", row.subRows.length === 1 ? 'row' : 'rows'] })] }, row.id));
778
+ }
779
+ return (_jsxs("div", { role: "row", className: cn('absolute left-0 flex', onRowClick && 'cursor-pointer hover:bg-muted/40'), style: { top: rowTop, width: totalWidth, height: vr.size },
780
+ /*
781
+ * A row opens its record, WITHOUT stealing the spreadsheet's
782
+ * own click behaviour.
783
+ *
784
+ * Skipped when: a cell is being edited (the click is going to
785
+ * an input), the click carries a modifier (ctrl/cmd/shift
786
+ * already mean "extend the selection"), or the reader has
787
+ * dragged out a multi-cell range (they were selecting, not
788
+ * navigating). Without those guards this handler would fire on
789
+ * every range-select and make the grid unusable as a grid.
790
+ */
791
+ onClick: (event) => {
792
+ if (!onRowClick)
793
+ return;
794
+ if (editingCell)
795
+ return;
796
+ if (event.ctrlKey || event.metaKey || event.shiftKey || event.altKey)
797
+ return;
798
+ if (normalizedSelection) {
799
+ const multiCell = normalizedSelection.startRow !== normalizedSelection.endRow ||
800
+ normalizedSelection.startCol !== normalizedSelection.endCol;
801
+ if (multiCell)
802
+ return;
803
+ }
804
+ onRowClick(row.original, row.index);
805
+ }, onKeyDown: (event) => {
806
+ // Keyboard parity: a row you can click is a row you can open
807
+ // from the keyboard. Enter is already the grid's "edit" key
808
+ // on an editable cell, so this only fires when nothing is
809
+ // being edited.
810
+ if (!onRowClick || editingCell)
811
+ return;
812
+ if (event.key === 'Enter' && !event.shiftKey)
813
+ onRowClick(row.original, row.index);
814
+ }, children: [frozenColumn && (_jsx(GridCellRenderer, { gridRow: vr.index, gridCol: 0, frozen: true, style: { position: 'sticky', left: 0, zIndex: 10, width: frozenWidth, height: vr.size }, column: columnConfigById.get(frozenColumn.id), row: row.original, rowIndex: row.index, value: getEffectiveValue(row.index, frozenColumn.id), isSelected: Boolean(normalizedSelection && isCellInRange({ row: vr.index, col: 0 }, normalizedSelection)), isActive: Boolean(selection && selection.focus.row === vr.index && selection.focus.col === 0), isEditing: Boolean(editingCell && editingCell.row === vr.index && editingCell.col === 0), editSeedChar: editSeedChar, onCommit: handleEditorCommit, onCancel: handleEditorCancel, onMouseDown: (e) => handleCellMouseDown({ row: vr.index, col: 0 }, e), onMouseEnter: () => handleCellMouseEnter({ row: vr.index, col: 0 }), onDoubleClick: () => beginEditing({ row: vr.index, col: 0 }) })), virtualColumns.map((vc) => {
605
815
  const column = scrollableColumns[vc.index];
606
816
  const gridCol = vc.index + (frozenFirstColumn ? 1 : 0);
607
817
  const config = columnConfigById.get(column.id);
@@ -1 +1 @@
1
- {"version":3,"file":"DataGrid.js","sourceRoot":"","sources":["../src/DataGrid.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DataGrid.js","sourceRoot":"","sources":["../src/DataGrid.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import { type ReactNode } from 'react';
2
+ import type { DataGridColumn } from '../types.js';
3
+ /**
4
+ * Row heights, named for what the reader is trying to do rather than in px.
5
+ *
6
+ * "Nothing vertically truncated" is the operator's requirement, and it is a
7
+ * property of the CONTENT, not a number — a cell holding a wrapped address
8
+ * needs a taller row than one holding a date. Naming the steps lets the reader
9
+ * pick by intent; the px values are an implementation detail they never see.
10
+ */
11
+ export declare const ROW_HEIGHTS: {
12
+ readonly compact: 32;
13
+ readonly comfortable: 48;
14
+ readonly tall: 72;
15
+ readonly 'extra tall': 112;
16
+ };
17
+ export type RowHeightName = keyof typeof ROW_HEIGHTS;
18
+ export declare function rowHeightNameFor(px: number): RowHeightName;
19
+ export interface DataGridToolbarProps<TRow> {
20
+ columns: DataGridColumn<TRow>[];
21
+ /** Free-text filter. Matches the FORMATTED value of visible columns. */
22
+ filter: string;
23
+ onFilterChange: (next: string) => void;
24
+ /** Column id -> shown. Absent id = shown. */
25
+ columnVisibility: Record<string, boolean>;
26
+ onColumnVisibilityChange: (next: Record<string, boolean>) => void;
27
+ rowHeight: number;
28
+ onRowHeightChange: (next: number) => void;
29
+ /** Row count AFTER filtering, so the reader can see the filter working. */
30
+ visibleRowCount?: number;
31
+ totalRowCount?: number;
32
+ /** Anything the page wants on the same line — a "New" button, usually. */
33
+ children?: ReactNode;
34
+ className?: string;
35
+ }
36
+ export declare function DataGridToolbar<TRow>({ columns, filter, onFilterChange, columnVisibility, onColumnVisibilityChange, rowHeight, onRowHeightChange, visibleRowCount, totalRowCount, children, className, }: DataGridToolbarProps<TRow>): import("react").JSX.Element;
37
+ //# sourceMappingURL=DataGridToolbar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataGridToolbar.d.ts","sourceRoot":"","sources":["../../src/components/DataGridToolbar.tsx"],"names":[],"mappings":"AAoBA,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAExD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW;;;;;CAKd,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,WAAW,CAAC;AAErD,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,CAM1D;AAED,MAAM,WAAW,oBAAoB,CAAC,IAAI;IACxC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;IAChC,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,6CAA6C;IAC7C,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,wBAAwB,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,2EAA2E;IAC3E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,EACpC,OAAO,EACP,MAAM,EACN,cAAc,EACd,gBAAgB,EAChB,wBAAwB,EACxB,SAAS,EACT,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,QAAQ,EACR,SAAS,GACV,EAAE,oBAAoB,CAAC,IAAI,CAAC,+BAoH5B"}
@@ -0,0 +1,74 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /*
3
+ * DataGridToolbar — the reader's controls for a list.
4
+ *
5
+ * The grid gained filtering, column visibility and an adjustable row height as
6
+ * PROPS. Props are not a capability: a reader cannot pass a prop. Precedent
7
+ * 20260824__zero_consumer_is_not_done — "a package, token, hook, RPC,
8
+ * component, column or endpoint shipping with ZERO CONSUMERS is NOT done" —
9
+ * so the controls ship with the surface that reaches them.
10
+ *
11
+ * WHY A SEPARATE COMPONENT rather than baked into DataGrid: a page already
12
+ * owns a header, and several already have their own search box. Forcing a
13
+ * second toolbar inside the grid would put two search inputs on the same
14
+ * screen. This one is opt-in and composable, and a page that already has a
15
+ * filter can wire `globalFilter` straight to its own input instead.
16
+ *
17
+ * Every control is CONTROLLED. The page owns the state, so it can persist the
18
+ * reader's choice per user and per surface — which is what "on users
19
+ * preference" requires. An uncontrolled toolbar would reset on every reload
20
+ * and be a demo rather than a preference.
21
+ */
22
+ import { useId, useState } from 'react';
23
+ import { cn } from '../cn.js';
24
+ /**
25
+ * Row heights, named for what the reader is trying to do rather than in px.
26
+ *
27
+ * "Nothing vertically truncated" is the operator's requirement, and it is a
28
+ * property of the CONTENT, not a number — a cell holding a wrapped address
29
+ * needs a taller row than one holding a date. Naming the steps lets the reader
30
+ * pick by intent; the px values are an implementation detail they never see.
31
+ */
32
+ export const ROW_HEIGHTS = {
33
+ compact: 32,
34
+ comfortable: 48,
35
+ tall: 72,
36
+ 'extra tall': 112,
37
+ };
38
+ export function rowHeightNameFor(px) {
39
+ const entries = Object.entries(ROW_HEIGHTS);
40
+ // Nearest named step, so a persisted value from an older release still maps.
41
+ return entries.reduce((best, [name, value]) => Math.abs(value - px) < Math.abs(ROW_HEIGHTS[best] - px) ? name : best, entries[0][0]);
42
+ }
43
+ export function DataGridToolbar({ columns, filter, onFilterChange, columnVisibility, onColumnVisibilityChange, rowHeight, onRowHeightChange, visibleRowCount, totalRowCount, children, className, }) {
44
+ const [columnsOpen, setColumnsOpen] = useState(false);
45
+ const filterId = useId();
46
+ const panelId = useId();
47
+ const hiddenCount = columns.filter((c) => columnVisibility[c.id] === false).length;
48
+ const filtering = filter.trim().length > 0;
49
+ return (_jsxs("div", { className: cn('flex flex-wrap items-center gap-2 pb-2', className), children: [_jsxs("div", { className: "flex items-center gap-1.5", children: [_jsx("label", { htmlFor: filterId, className: "sr-only", children: "Filter rows" }), _jsx("input", { id: filterId, type: "search", value: filter, onChange: (e) => onFilterChange(e.target.value), placeholder: "Filter\u2026", className: "h-8 w-48 rounded-md border border-border bg-background px-2 text-sm text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" }), filtering && visibleRowCount !== undefined && totalRowCount !== undefined && (_jsxs("output", { className: "text-sm text-muted-foreground", "aria-live": "polite", children: [visibleRowCount, " of ", totalRowCount] }))] }), _jsxs("div", { className: "relative", children: [_jsx("button", { type: "button", "aria-expanded": columnsOpen, "aria-controls": panelId, onClick: () => setColumnsOpen((o) => !o), className: "h-8 rounded-md border border-border px-2 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", children: hiddenCount > 0 ? `Columns (${hiddenCount} hidden)` : 'Columns' }), columnsOpen && (_jsx("div", { id: panelId, role: "group", "aria-label": "Choose columns", className: "absolute z-50 mt-1 max-h-72 w-56 overflow-y-auto rounded-md border border-border bg-card p-2 shadow-lg", children: columns.map((col) => {
50
+ const shown = columnVisibility[col.id] !== false;
51
+ const isLast = shown && columns.filter((c) => columnVisibility[c.id] !== false).length === 1;
52
+ return (_jsxs("label", { className: cn('flex items-center gap-2 rounded px-1 py-1 text-sm', isLast ? 'opacity-50' : 'cursor-pointer hover:bg-muted'), children: [_jsx("input", { type: "checkbox", checked: shown,
53
+ /*
54
+ * The last visible column cannot be hidden. An empty grid
55
+ * is not a preference, it is a dead end the reader has to
56
+ * guess their way out of.
57
+ *
58
+ * GUARDED TWICE, deliberately. `disabled` is a UI hint,
59
+ * not an enforcement: a click dispatched around it — by a
60
+ * test, a script, or a browser quirk — still reached this
61
+ * handler and produced `{host: false, started: false}`,
62
+ * hiding every column. Measured, not theorised: that is
63
+ * exactly how the first version of this failed its own
64
+ * test. The state change is refused where the state is
65
+ * actually written.
66
+ */
67
+ disabled: isLast, onChange: (e) => {
68
+ if (isLast && !e.target.checked)
69
+ return;
70
+ onColumnVisibilityChange({ ...columnVisibility, [col.id]: e.target.checked });
71
+ } }), _jsx("span", { children: col.header })] }, col.id));
72
+ }) }))] }), _jsxs("label", { className: "flex items-center gap-1.5", children: [_jsx("span", { className: "text-sm text-muted-foreground", children: "Rows" }), _jsx("select", { value: rowHeightNameFor(rowHeight), onChange: (e) => onRowHeightChange(ROW_HEIGHTS[e.target.value]), "aria-label": "Row height", className: "h-8 rounded-md border border-border bg-background px-2 text-sm text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", children: Object.keys(ROW_HEIGHTS).map((name) => (_jsx("option", { value: name, children: name }, name))) })] }), children] }));
73
+ }
74
+ //# sourceMappingURL=DataGridToolbar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataGridToolbar.js","sourceRoot":"","sources":["../../src/components/DataGridToolbar.tsx"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -6,7 +6,13 @@
6
6
  * (@tanstack/react-table), cell-range selection, keyboard grid navigation,
7
7
  * a TSV clipboard round-trip, a fill handle, and an undo/redo stack.
8
8
  *
9
- * No consumer app is wired to this package yet it ships standalone.
9
+ * FIRST CONSUMER, 2026-08-29: crm7 `/hr/disciplinary` (crm7#2205)a read-and-open
10
+ * listing, 8 columns, `onRowClick` into the case record. It is the only one; the
11
+ * remaining ~155 crm7 tables are still hand-rolled, and `EnhancedDataTable` (43 pages)
12
+ * is NOT a one-edit conversion — its cell renderers read TanStack's `row.original`,
13
+ * which is not this package's `row`. See
14
+ * `docs/20260829-enhanceddatatable-is-not-a-one-edit-conversion-v1.00W.md`.
15
+ *
10
16
  * Import the pure logic (TSV, selection maths, fill maths, undo stack,
11
17
  * keyboard maths, clipboard glue) independently via `@bsuite/data-grid/lib`
12
18
  * if a host only needs the non-React pieces.
@@ -17,4 +23,7 @@ export { formatCellValue, parseCellValue } from './formatting.js';
17
23
  export { cn } from './cn.js';
18
24
  export type { ColumnDataType, SelectOption, CellEditorProps, CellRendererProps, DataGridColumn, CellEdit, DataGridErrorPhase, DataGridError, DataGridHandle, DataGridProps, } from './types.js';
19
25
  export type { CellPosition, CellRange } from './lib/selection.js';
26
+ export { DataGridToolbar, ROW_HEIGHTS, rowHeightNameFor } from './components/DataGridToolbar.js';
27
+ export type { DataGridToolbarProps, RowHeightName } from './components/DataGridToolbar.js';
28
+ export type { LinkEdit } from './types.js';
20
29
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,UAAU,EACV,YAAY,EACZ,UAAU,EACV,aAAa,EACb,YAAY,GACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAE7B,YAAY,EACV,cAAc,EACd,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,QAAQ,EACR,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,aAAa,GACd,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,UAAU,EACV,YAAY,EACZ,UAAU,EACV,aAAa,EACb,YAAY,GACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAE7B,YAAY,EACV,cAAc,EACd,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,QAAQ,EACR,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,aAAa,GACd,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACjG,YAAY,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAC3F,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -6,7 +6,13 @@
6
6
  * (@tanstack/react-table), cell-range selection, keyboard grid navigation,
7
7
  * a TSV clipboard round-trip, a fill handle, and an undo/redo stack.
8
8
  *
9
- * No consumer app is wired to this package yet it ships standalone.
9
+ * FIRST CONSUMER, 2026-08-29: crm7 `/hr/disciplinary` (crm7#2205)a read-and-open
10
+ * listing, 8 columns, `onRowClick` into the case record. It is the only one; the
11
+ * remaining ~155 crm7 tables are still hand-rolled, and `EnhancedDataTable` (43 pages)
12
+ * is NOT a one-edit conversion — its cell renderers read TanStack's `row.original`,
13
+ * which is not this package's `row`. See
14
+ * `docs/20260829-enhanceddatatable-is-not-a-one-edit-conversion-v1.00W.md`.
15
+ *
10
16
  * Import the pure logic (TSV, selection maths, fill maths, undo stack,
11
17
  * keyboard maths, clipboard glue) independently via `@bsuite/data-grid/lib`
12
18
  * if a host only needs the non-React pieces.
@@ -15,4 +21,5 @@ export { DataGrid } from './DataGrid.js';
15
21
  export { TextEditor, NumberEditor, DateEditor, BooleanEditor, SelectEditor, } from './editors/index.js';
16
22
  export { formatCellValue, parseCellValue } from './formatting.js';
17
23
  export { cn } from './cn.js';
24
+ export { DataGridToolbar, ROW_HEIGHTS, rowHeightNameFor } from './components/DataGridToolbar.js';
18
25
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,UAAU,EACV,YAAY,EACZ,UAAU,EACV,aAAa,EACb,YAAY,GACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,UAAU,EACV,YAAY,EACZ,UAAU,EACV,aAAa,EACb,YAAY,GACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAgB7B,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC"}
package/dist/types.d.ts CHANGED
@@ -45,6 +45,54 @@ export interface DataGridColumn<TRow = unknown> {
45
45
  sortable?: boolean;
46
46
  /** Default true. Set false for a computed/read-only column. */
47
47
  editable?: boolean;
48
+ /**
49
+ * This cell is a LINK to another record, not a value typed into this row.
50
+ *
51
+ * Operator, 2026-08-28: "it was always meant to be applied to a cell. e.g.
52
+ * link a host to a placement it comes from linking and selecting the hosts
53
+ * record i dont type the same host name everytime. this is the oneshot
54
+ * policy."
55
+ *
56
+ * The estate's one-shot doctrine gives every entity exactly one owning
57
+ * surface for create/edit. A linked cell stores a REFERENCE; the text on
58
+ * screen is derived from the referenced record. Two consequences follow, and
59
+ * the grid enforces both rather than documenting them:
60
+ *
61
+ * 1. TYPING FILTERS, IT DOES NOT ENTER. The editor is a searchable picker:
62
+ * you type to narrow the list of records — operator, 2026-08-28: "you
63
+ * can type it to filter though" — and only a SELECTED record commits. An
64
+ * arbitrary string is refused, so a host name cannot be mistyped into a
65
+ * row and two rows cannot hold different spellings of the same host.
66
+ *
67
+ * 2. A TYPO IS FIXED ONCE, AT SOURCE, AND EVERY ROW FOLLOWS. Not because
68
+ * the grid propagates anything — because there is only one copy. Three
69
+ * placements showing the same host all change when the host record
70
+ * changes, and no code in this package is involved.
71
+ *
72
+ * Fill-down IS allowed here and copies the REFERENCE, which is the ordinary
73
+ * "point these three placements at the same host" gesture. What it can never
74
+ * do is copy a string.
75
+ *
76
+ * `renderEditor` IS REQUIRED alongside this, and the grid refuses to edit the
77
+ * cell without it. The editor is the APP'S OWN entity selector — the same
78
+ * component the placement form uses to choose a host, with the same
79
+ * select-and-add-new behaviour (operator, 2026-08-28: "same as selecting a
80
+ * host record when entering the host on a placement form. same principle.
81
+ * select, add new."). crm7 ships 31 of these plus quick-create dialogs.
82
+ *
83
+ * This package deliberately does NOT implement a picker of its own. A second
84
+ * picker would be a second create/edit surface for the same entity, which is
85
+ * the one-shot violation this whole mechanism exists to prevent — and the
86
+ * failure mode if it were optional is the worst one available: the cell
87
+ * would silently fall back to a TEXT INPUT, and the first person to type a
88
+ * host name would reintroduce exactly the divergence the link prevents.
89
+ */
90
+ link?: {
91
+ /** The owning entity, for the audit trail and the host's dispatch. */
92
+ entity: string;
93
+ /** Which record this row currently points at. `null` = unlinked. */
94
+ refId: (row: TRow) => string | null;
95
+ };
48
96
  /** Escape hatch for a fully custom inline editor (e.g. an FK-lookup
49
97
  * picker). Not implemented in this package by design. */
50
98
  renderEditor?: (props: CellEditorProps<TRow>) => ReactNode;
@@ -55,6 +103,21 @@ export interface DataGridColumn<TRow = unknown> {
55
103
  * type-aware (see parseCellValue). */
56
104
  parseValue?: (raw: string, row: TRow) => unknown;
57
105
  }
106
+ /**
107
+ * A row was pointed at a different record.
108
+ *
109
+ * This is a re-LINK, never a rename: the referenced record's own fields are
110
+ * edited on the surface that owns it, which is what makes one fix reach every
111
+ * row without this package doing anything.
112
+ */
113
+ export interface LinkEdit<TRow = unknown> {
114
+ entity: string;
115
+ columnId: string;
116
+ rowIndex: number;
117
+ row: TRow;
118
+ previousRefId: string | null;
119
+ refId: string | null;
120
+ }
58
121
  export interface CellEdit<TRow = unknown> {
59
122
  rowIndex: number;
60
123
  columnId: string;
@@ -115,5 +178,65 @@ export interface DataGridProps<TRow = unknown> {
115
178
  /** Max entries retained in the undo stack. Default 200. */
116
179
  undoLimit?: number;
117
180
  emptyState?: ReactNode;
181
+ /**
182
+ * Group rows by this column id, or `null` for a flat grid.
183
+ *
184
+ * EXISTS BECAUSE the report surfaces cannot convert without it. crm7's
185
+ * `ReportTable` lets a reader choose a groupBy column and PERSISTS it as a view
186
+ * preference; converting that page to a grid with no grouping would have deleted
187
+ * a feature people use, which is a regression wearing a migration's clothes.
188
+ *
189
+ * Controlled by the host so the choice can be persisted. Grouping is a VIEW,
190
+ * not a mutation: `onRowClick` still receives the original record and the
191
+ * original data index, so a grouped grid opens the same record a flat one does.
192
+ */
193
+ groupBy?: string | null;
194
+ /** Fires when the reader collapses or expands a group. */
195
+ onGroupExpandedChange?: (expanded: Record<string, boolean>) => void;
196
+ /** Initial collapsed/expanded state per group id. Absent means all expanded. */
197
+ groupExpanded?: Record<string, boolean>;
198
+ /**
199
+ * Open the record behind a row.
200
+ *
201
+ * Operator, 2026-08-28: "each row clickable and live". A listing whose rows
202
+ * do not open the record is a report, not a list — the reader has to go find
203
+ * the thing they were just looking at.
204
+ *
205
+ * Fires on a plain single click on a NON-editing cell. It deliberately does
206
+ * NOT fire while a cell is being edited, nor on a range-select drag, nor on
207
+ * a modified click (ctrl/cmd/shift) — those already mean "select cells", and
208
+ * stealing them would break the spreadsheet behaviour this grid exists for.
209
+ */
210
+ onRowClick?: (row: TRow, index: number) => void;
211
+ /**
212
+ * A row was pointed at a different record. REQUIRED if any column declares
213
+ * `link` — a grid that lets you re-link and then drops the write is worse
214
+ * than one that refuses the edit, because the screen shows the new host and
215
+ * the database keeps the old one.
216
+ */
217
+ onLinkEdit?: (edit: LinkEdit<TRow>) => void | Promise<void>;
218
+ /**
219
+ * Which columns are shown, by column id. Absent id = visible.
220
+ *
221
+ * Controlled when `onColumnVisibilityChange` is supplied, so a page can
222
+ * persist the reader's choice; uncontrolled otherwise.
223
+ */
224
+ columnVisibility?: Record<string, boolean>;
225
+ onColumnVisibilityChange?: (next: Record<string, boolean>) => void;
226
+ /**
227
+ * Free-text filter across every visible column's FORMATTED value.
228
+ *
229
+ * Formatted, not raw: the reader filters what they can see. A date shown as
230
+ * `23/08/2026` must match "23/08", which its ISO storage value would not.
231
+ */
232
+ globalFilter?: string;
233
+ /**
234
+ * Row height in px. Supply `onRowHeightChange` to let the reader adjust it.
235
+ *
236
+ * Operator, 2026-08-28: "row height adjustible so nothing vertically
237
+ * truncated". A fixed 32px row silently clips a cell whose content wraps,
238
+ * and the reader has no way to see what was cut.
239
+ */
240
+ onRowHeightChange?: (next: number) => void;
118
241
  }
119
242
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAElE;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE/E,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe,CAAC,IAAI,GAAG,OAAO;IAC7C,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,IAAI,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;IAC7B;;4EAEwE;IACxE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB,CAAC,IAAI,GAAG,OAAO;IAC/C,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,IAAI,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,cAAc,CAAC,IAAI,GAAG,OAAO;IAC5C;uCACmC;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,OAAO,CAAC;IACjC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,yDAAyD;IACzD,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;6DACyD;IACzD,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC;IAC3D,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC;IAC3D,6EAA6E;IAC7E,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,KAAK,MAAM,CAAC;IACpD;0CACsC;IACtC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,KAAK,OAAO,CAAC;CAClD;AAED,MAAM,WAAW,QAAQ,CAAC,IAAI,GAAG,OAAO;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,IAAI,CAAC;CACX;AAED,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC;AAErG;;;;;;;;;GASG;AACH,MAAM,WAAW,aAAa,CAAC,IAAI,GAAG,OAAO;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,kBAAkB,CAAC;IAC1B,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,OAAO,EAAE,MAAM,OAAO,CAAC;IACvB,OAAO,EAAE,MAAM,OAAO,CAAC;IACvB,YAAY,EAAE,MAAM,SAAS,GAAG,IAAI,CAAC;IACrC,cAAc,EAAE,MAAM,YAAY,GAAG,IAAI,CAAC;IAC1C,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,aAAa,CAAC,IAAI,GAAG,OAAO;IAC3C,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;IAChC,IAAI,EAAE,IAAI,EAAE,CAAC;IACb;2CACuC;IACvC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAChD;;;;;;;OAOG;IACH,aAAa,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,gDAAgD;IAChD,OAAO,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IAC9C,kFAAkF;IAClF,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,SAAS,CAAC;CACxB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bsuite/data-grid",
3
- "version": "1.0.1",
3
+ "version": "1.2.0",
4
4
  "description": "Virtualized, spreadsheet-feel data grid for BSuite apps \u2014 cell range selection, keyboard grid navigation, TSV clipboard round-trip, fill handle, undo/redo. Built on @tanstack/react-table + @tanstack/react-virtual.",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",