github 6pac/SlickGrid 6.0.0

one hour ago

6.0.0 (2026-11-10)

Main v6 Changes

  • drop SortableJS (use native drag & drop) and we're now zero dependency
  • rewrite freezing as Pinning (much more flexible than before)
    • almost 2 months of work with 2 different AIs (ChatGPT Sol/Astra, Claude Opus/Fable)
  • new Sticky rows/columns feature
  • better perf all around
  • ... and a lot more, check out the v6 Migration Guide below

We also have a new docs website, read the v6 Migration Guide or if you use AI then point to the AI Migration Skill


Bug Fixes

  • alpine: keep resize handle separator thin (#1340) (2c604ce)
  • build: point package entry points at the ESM build (#1343) (0b8b163), closes #1310
  • build: require Node versions that support require(esm) (#1344) (b72d781)
  • core: let SlickEvent.unsubscribe() remove every handler (#1345) (fe26f4c)
  • core: prevent hidden columns from rendering in group totals rows (#1321) (4528333)
  • editor, menu, checkbox column and tooltip bugs found by coverage (#1347) (51bc59a), closes #1338
  • examples: use the current Grid Menu command options in the pinning examples (96666c4)
  • grid: correct autosize measurement for single columns, filter modes and supplied types (#1309) (d7cb0d6)
  • gridmenu: fit the icon in the menu slot, keep the resize-handle hover box stable and make the trailing-handle test deterministic (2f99987)
  • grid: render the visible columns of wide right-to-left grids (#1333) (2d03479)
  • really unsubscribe plugin and control handlers on destroy (#1346) (ce83876)
  • rowdetail: keep the 13px line-height for every top-level element of a detail template (7e4bb60)
  • selection: preserve active cell when selecting all cells (#1308) (bb29805)

Features

  • pinning: unify validation error callbacks (#1318) (892349e)
  • rename trigger fn to triggerEvent() and make it public (#1315) (fcaa7d0)

BREAKING CHANGES

  • CellExternalCopyManager now copies via
    navigator.clipboard.writeText and pastes via navigator.clipboard.readText
    (secure context required). The bodyElement and clipboardPasteDelay options
    are removed, _decodeTabularData takes the clipboard text instead of a
    textarea, and paste completes asynchronously. New clipboardWriteOverride /
    clipboardReadOverride plugin options replace the transport where the
    Clipboard API is unavailable. The row split in _decodeTabularData now
    treats CRLF as one delimiter (the decoy textarea normalized CRLF away;
    readText does not).
  • ContentIntelligent number and string columns used to read
    every row and now read the first 200. Content columns using the default
    count read 200 rows instead of 100.
  • SortableJS is no longer used nor required. Consumers who load
    SlickGrid via script tags can remove their SortableJS <script> include; the
    window.Sortable global is no longer read. Column reordering now requires
    slick.interactions.js to be loaded (it already was in every example). The
    SlickDraggableGrouping.getSetupColumnReorder() return shape changed in the
    previous commit as part of the same effort.
  • TypeScript rejects misspelt autosize modes, and a value
    held in a plain string variable needs a type assertion such as
    value as ColAutosizeModeValue. No runtime change.

Don't miss a new SlickGrid release

NewReleases is sending notifications on new releases.