LearnNewsExamplesServices
Frontmatter
id19756
titleGrid showcase example: content-sized rows and header menus on Neo''s own issues
stateClosed
labels
enhancementdesignaigrid
assigneesneo-opus-ada
createdAtOct 15, 2026, 4:21 PM
updatedAtOct 15, 2026, 7:37 PM
githubUrlhttps://github.com/neomjs/neo/issues/19756
authorneo-opus-ada
commentsCount0
parentIssue19712
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]
closedAtOct 15, 2026, 7:37 PM
milestonev13.3

Grid showcase example: content-sized rows and header menus on Neo's own issues

Closed Backlog/active-chunk-9 enhancementdesignaigrid
neo-opus-ada
neo-opus-ada commented on Oct 15, 2026, 4:21 PM

Context

The 13.3 cut (#19652) waits on the release notes (#19712), and the notes wait on their frames. On 2026-10-15 the operator challenged the current frames as below the quality bar: "we need new examples with a nicer styling … a bit more polishing, testing and design work". He framed it as a challenge, not a ruling, and left the shape to the team. My choice is one showcase grid on real data instead of two synthetic examples. The challenge and this proposal went to the team over A2A.

The Problem

The frames come from two examples built for other jobs:

  • examples/grid/contentSizedRows proves content-sized rows on 10k records of generated filler words;
  • examples/grid/bigData is a stress test, with counter buttons, progress bars and 50 numeric columns.

Neither shows what the two 13.3 grid features are for: real text of varying length, and filtering a column by its values with counts that mean something.

The Architectural Reality

  • Both features are opt-in on Neo.grid.Container: contentSizedRows: true sizes rows to their wrapped wrapText cells across the locked and center bodies, and columnMenu: true gives each column a value picker with live counts (per-column override available).
  • Data UI binds a Neo.data.Store of Neo.data.Model records; examples load committed data (e.g. resources/data/users.json) or generate it.
  • Example styles live in resources/scss/src/examples/grid/<name>/ (siblings: bigData, covid, treeBigData). An example is a folder with index.html, neo-config.json, app.mjs and its classes; it needs no registry entry (contentSizedRows has none).
  • test/playwright/e2e/grid/ContentSizedRowsExample.spec.mjs is the precedent for an example-level end-to-end spec.

The Fix

examples/grid/issues/: a grid of neomjs/neo's own GitHub issues.

  • Data: a committed snapshot of recent issues: number, title, a short summary from the body, state, primary area label, author login, dates. It is generated once from gh output and checked for private names and secrets before commit. It lives in neomjs/pages (resources_pub/data/neo_issues.json, neomjs/pages#43) and loads through the GitHub CDN, as the covid apps' data does, so neither this repository nor the npm package carries it.
  • Grid:
    • contentSizedRows: true, with the title and summary wrapping;
    • columnMenu: true on State, Area and Author, whose counts mean something;
    • the number column locked at the start and the state locked at the end.
  • Look: state chips, area pills and author avatars or initials, deliberate typography and spacing, dark and light themes. A prototype frame goes to the operator before polishing.

Acceptance Criteria

  • AC-1: The example loads its committed snapshot from neomjs/pages, so neither this repository nor its npm package carries it; the snapshot carries only public GitHub fields and passes a scan for private names, tokens, paths and session ids. (Revised on 2026-10-15 after the operator's challenge on #19761; the first version shipped the snapshot in resources/data/ and ran offline.)
  • AC-2: Rows size to their wrapped title and summary across the locked and center bodies, in both themes.
  • AC-3: Header menus on State, Area and Author list values with counts; checking values filters the grid, and clearing restores it.
  • AC-4: An end-to-end spec loads the example, checks that a long-summary row is taller than a one-line row, and filters through one header menu.
  • AC-5: The operator approves the look from captured frames before the notes use them. Approved in chat on 2026-10-15 at 16:00Z ("this looks very nice") for four frames: light, dark, the Author menu with counts, and Area filtered to Grid.

Out of Scope

  • The notes' next iteration (new frames, framing changes, designation): #19712's leaf, after this merges.
  • Changes to either grid feature.

Related

#19712 (notes epic) · #19652 (cut record) · #19658 (content-sized rows) · #19643 (header menus, Vega's surface) · #19747 / #19753 (earlier notes iterations)

Sweeps at 2026-10-15 14:21Z: the latest 20 open issues and an org search for "showcase example grid" hold no equivalent. A2A since 13:00Z holds no competing claim (my own challenge broadcast is the only mention). Memory Core holds no earlier decision on a showcase example. My open assignments on this surface: #19712 only.

Retrieval Hint: "grid showcase example real data issues", "13.3 release-quality frames"

tobiu referenced in commit f7b0622 - "feat(grid): a grid of Neo's own issues shows content-sized rows and header menus (#19756) (#19761) on Oct 15, 2026, 7:37 PM
tobiu closed this issue on Oct 15, 2026, 7:37 PM