Skip to content

Releases: datasketch/monkeytab

v0.6.0

20 Apr 01:54

Choose a tag to compare

New

  • Column coloring (column.color) — three shapes, same prop. Pass a CSS color string to tint a whole column (every cell + the header) with a soft blend — good for flagging a non-editable column or grouping related columns visually. Pass a ColorRule[] ({ when: { op, value/values, field? }, color }) for JSON-serializable Google-Sheets-style conditional formatting; rules evaluate top-down and the first match wins. Operators include equals/notEquals, lt/lte/gt/gte, contains/notContains, empty/notEmpty, and in/notIn; each can optionally compare a different field. For anything the rule array can't express (palettes, numeric interpolation, cross-field math), pass a (row, value, fieldId) => string | undefined function instead — prop-API only. The evaluator is exported as evaluateColorRules(rules, row, value) so the same rules can be reused outside the grid. See BROWSER.md → Column coloring.

Fixed

  • Header overflow fade now tints with the column — when a column uses color to tint its header, the right-edge fade gradient blends into the tinted background instead of showing a strip of default gray. Symmetric with the row-background fade that already respected colorBy.

v0.2.0

07 Apr 20:13

Choose a tag to compare

First public release.

Added

Core component

  • <MonkeyTable> React component — embeddable, editable table that runs entirely in the browser
  • 14 built-in field types: Text, Number, Boolean, Date, SingleSelect, MultiSelect, Email, URL, Phone, Image, Attachment, Rating, Color, Computed
  • Inline cell editing with type-aware editors
  • Spreadsheet-style keyboard navigation (arrows, Tab, Enter, Escape)
  • Cell selection with copy-paste (Cmd+C / Cmd+V)
  • Range selection — Shift+Arrow extends a rectangular selection
  • Multi-cell paste from TSV (Excel/Google Sheets clipboard format)
  • Header range selection with Shift+Click, copy header labels with Cmd+C
  • Drag-and-drop column reorder
  • Resizable columns
  • Search across all visible columns
  • Filter builder with per-type operators
  • Type-aware sorting (1→9 for numbers, oldest→newest for dates, etc.)
  • Pagination — simple (Previous/Next) or load-more (infinite scroll) modes
  • Ghost grid — fill viewport with faint placeholder cells
  • Virtualized rendering — handles 100k+ rows smoothly via TanStack Table
  • Computed fields with built-in math, text, date, and logic functions

Per-column options

  • editable: false — make individual columns read-only with lock icon
  • width, minWidth, maxWidth — column sizing
  • sortable — disable sort per column
  • align — cell text alignment

Sorting and pagination

  • sortBy / sortDirection / onSortChange — controlled sorting for server-side queries
  • totalRows / page / pageSize / onPageChange — controlled pagination

Selection

  • onSelectionChange — fires on every checkbox toggle
  • selectedRowIds — controlled selection state
  • onRowClick — fires when a row body is clicked
  • onCellChange — granular per-cell change callback

Internationalization

  • English and Spanish string bundles included
  • locale, language, translations props
  • Locale-aware number, date, and currency formatting

Extensibility

  • functions prop — register custom computed functions
  • constraints prop — register custom field validators
  • renderers prop — override built-in cell renderers
  • editors prop — override built-in cell editors
  • Per-column render function for one-off custom renderers

File handling

  • onUpload prop — bring your own file upload (S3, Cloudinary, etc.)
  • Drag-and-drop and paste support for Image cells