@bsuite/data-grid 1.0.0 → 1.0.1-next.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":"ColumnHeaderCell.d.ts","sourceRoot":"","sources":["../../src/components/ColumnHeaderCell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAqC,MAAM,OAAO,CAAC;AAC9E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAKpD,MAAM,WAAW,qBAAqB,CAAC,IAAI;IACzC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9B,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;
|
|
1
|
+
{"version":3,"file":"ColumnHeaderCell.d.ts","sourceRoot":"","sources":["../../src/components/ColumnHeaderCell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAqC,MAAM,OAAO,CAAC;AAC9E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAKpD,MAAM,WAAW,qBAAqB,CAAC,IAAI;IACzC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9B,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA6BD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,qBAAqB,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,YAAY,CA8D7F"}
|
|
@@ -2,6 +2,31 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { useSortable } from '@dnd-kit/sortable';
|
|
3
3
|
import { CSS } from '@dnd-kit/utilities';
|
|
4
4
|
import { cn } from '../cn.js';
|
|
5
|
+
/**
|
|
6
|
+
* WCAG 1.4.3 — the drag handle is CONTENT TEXT on a functional control, so it
|
|
7
|
+
* carries the 4.5:1 normal-text floor, not the 3:1 large-text one.
|
|
8
|
+
*
|
|
9
|
+
* It used to be `text-text-subtle`, which @bsuite/theme's own source documents as
|
|
10
|
+
* AA-large-only against the measured table in `src/css/vars.css`:
|
|
11
|
+
*
|
|
12
|
+
* --light-text-subtle 3.52:1 AA large only (3:1) — FAILS AA normal
|
|
13
|
+
* --dark-text-subtle 4.14:1 AA large only — FAILS AA normal
|
|
14
|
+
* --light-text-muted 4.92:1 AA normal
|
|
15
|
+
* --dark-text-muted 6.69:1 AA normal
|
|
16
|
+
*
|
|
17
|
+
* The cell renders at `text-xs`, so the glyph is normal-size text by WCAG's
|
|
18
|
+
* definition, and the handle is the only pointer affordance for reordering a
|
|
19
|
+
* column — it is not decoration. `text-muted` is the lowest tier that clears
|
|
20
|
+
* 4.5:1 in BOTH themes, so it is the smallest change that is actually correct.
|
|
21
|
+
* Hover stays `text-secondary`, so reaching for it still brightens.
|
|
22
|
+
*
|
|
23
|
+
* The two remaining `text-subtle` uses in this monorepo are both
|
|
24
|
+
* `placeholder:text-text-subtle` in @bsuite/schema-builder. Those are left alone
|
|
25
|
+
* deliberately: the token's declared purpose IS placeholders (the dark scale says
|
|
26
|
+
* so inline), and whether placeholder text must clear 4.5:1 is a brand decision
|
|
27
|
+
* about the token, not a defect in a consumer of it.
|
|
28
|
+
*/
|
|
29
|
+
const DRAG_HANDLE_CLASS = 'cursor-grab touch-none text-text-muted hover:text-text-secondary active:cursor-grabbing';
|
|
5
30
|
/**
|
|
6
31
|
* A single sticky-header cell: sort-on-click label, a drag handle wired to
|
|
7
32
|
* @dnd-kit/sortable for column reorder (the monorepo already depends on
|
|
@@ -22,7 +47,7 @@ export function ColumnHeaderCell(props) {
|
|
|
22
47
|
};
|
|
23
48
|
const resizeHandler = header.getResizeHandler();
|
|
24
49
|
const stopPropagation = (e) => e.stopPropagation();
|
|
25
|
-
return (_jsxs("div", { ref: frozen ? undefined : sortable.setNodeRef, role: "columnheader", "aria-sort": sortDirection === 'asc' ? 'ascending' : sortDirection === 'desc' ? 'descending' : 'none', style: { ...style, ...(frozen ? {} : dragStyle) }, className: cn('group relative flex select-none items-center gap-1 border-r border-border bg-card px-2 text-xs font-medium text-text-secondary', sortable.isDragging && 'z-30 opacity-70', className), children: [!frozen && (_jsx("button", { type: "button", "aria-label": `Reorder column ${header.isPlaceholder ? '' : String(column.columnDef.header)}`, className:
|
|
50
|
+
return (_jsxs("div", { ref: frozen ? undefined : sortable.setNodeRef, role: "columnheader", "aria-sort": sortDirection === 'asc' ? 'ascending' : sortDirection === 'desc' ? 'descending' : 'none', style: { ...style, ...(frozen ? {} : dragStyle) }, className: cn('group relative flex select-none items-center gap-1 border-r border-border bg-card px-2 text-xs font-medium text-text-secondary', sortable.isDragging && 'z-30 opacity-70', className), children: [!frozen && (_jsx("button", { type: "button", "aria-label": `Reorder column ${header.isPlaceholder ? '' : String(column.columnDef.header)}`, className: DRAG_HANDLE_CLASS, ...sortable.attributes, ...sortable.listeners, children: "\u283F" })), _jsx("button", { type: "button", disabled: !canSort, onClick: () => column.toggleSorting(undefined, false), className: "min-w-0 flex-1 truncate text-left disabled:cursor-default", title: typeof column.columnDef.header === 'string' ? column.columnDef.header : undefined, children: typeof column.columnDef.header === 'string' ? column.columnDef.header : header.id }), sortDirection === 'asc' && _jsx("span", { "aria-hidden": true, children: "\u25B2" }), sortDirection === 'desc' && _jsx("span", { "aria-hidden": true, children: "\u25BC" }), !header.isPlaceholder && (_jsx("div", { onPointerDown: (e) => {
|
|
26
51
|
stopPropagation(e);
|
|
27
52
|
resizeHandler(e);
|
|
28
53
|
}, onDoubleClick: () => column.resetSize(), className: "absolute right-0 top-0 h-full w-1.5 cursor-col-resize touch-none select-none bg-transparent hover:bg-primary/40 data-[resizing=true]:bg-primary", "data-resizing": column.getIsResizing() }))] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnHeaderCell.js","sourceRoot":"","sources":["../../src/components/ColumnHeaderCell.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAS9B;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAO,KAAkC;IACvE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IACnD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7B,MAAM,aAAa,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IAEpC,MAAM,QAAQ,GAAG,WAAW,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IAClE,MAAM,SAAS,GAAkB;QAC/B,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;QACrD,UAAU,EAAE,QAAQ,CAAC,UAAU;KAChC,CAAC;IAEF,MAAM,aAAa,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAC;IAChD,MAAM,eAAe,GAAG,CAAC,CAAoB,EAAQ,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;IAE5E,OAAO,CACL,eACE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,EAC7C,IAAI,EAAC,cAAc,eACR,aAAa,KAAK,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,EACnG,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,EACjD,SAAS,EAAE,EAAE,CACX,gIAAgI,EAChI,QAAQ,CAAC,UAAU,IAAI,iBAAiB,EACxC,SAAS,CACV,aAEA,CAAC,MAAM,IAAI,CACV,iBACE,IAAI,EAAC,QAAQ,gBACD,kBAAkB,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAC3F,SAAS,
|
|
1
|
+
{"version":3,"file":"ColumnHeaderCell.js","sourceRoot":"","sources":["../../src/components/ColumnHeaderCell.tsx"],"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.0",
|
|
3
|
+
"version": "1.0.1-next.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",
|