feat(fresh-ui): promote generic templated DataGrid (successor to DataTable) (#209)#225
Merged
Conversation
🤖 Augment PR SummarySummary: Promotes a generic, typed Changes:
Notes: Keeps 🤖 Was this summary useful? React with 👍 or 👎 |
| { | ||
| ...props, | ||
| role: 'grid', | ||
| 'aria-label': label, |
There was a problem hiding this comment.
...props is spread before 'aria-label': label, so a consumer-supplied aria-label in props will always be overwritten (and may be effectively dropped when label is omitted), which can leave the grid without an accessible name.
Severity: medium
🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.
| } | ||
|
|
||
| const value = (row as Record<string, unknown>)[key]; | ||
| if (value === null || value === undefined || typeof value === 'boolean') { |
There was a problem hiding this comment.
This was referenced Jul 2, 2026
rickylabs
added a commit
that referenced
this pull request
Jul 2, 2026
…eature sweep (#233) Storefront tutorial D-01…D-05 conformance to the shipped #206–#231 surface, plus accuracy reconciliation on the fresh-ui/web-layer pages the sweep touched. D-01 (01-scaffold): Aspire dashboard URL is https; fileTree includes database/ and tests/. D-02 (02-catalog-service): real #208 CRUD surface — createCrudContract + @database/zod + context.db; errors thrown via the contract's typed errors.NOT_FOUND (no hand-rolled notFound import); router nests health under products (no invented health-router import). D-03 (03-cart-contracts): register in mod.ts, PascalCase CartContractV1, import from @my-shop/contracts and the ./versions/v1 subpath. Reconciled 02's products.contract.ts exports to the same PascalCase convention (ProductsContract/ProductsContractV1) so ch2↔ch3 imports agree. D-04 (04/05): public `netscript plugin install saga|trigger --name … --samples`. Feature recon to the sweep: DataTable→DataGrid (#209/#225), Icon primitive (#211/#224) and DataGrid in fresh-ui root exports, Dropzone/prompt-input mentions (#214/#229, #212/#226), managed <Form> class + <form> attrs (#213/#228), useIslandMutation onMutate/onSettled (#210/#227). Docs-only. build + check:links + check:caveats green. Refs #153. Claude-Session: https://claude.ai/code/session_012wKHquACkXnWPDgJYhhFjN Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
rickylabs
added a commit
that referenced
this pull request
Jul 3, 2026
…aGrid
data-grid.tsx applies `ns-data-grid*` BEM classes (cn('ns-data-grid', ...))
that are styled exclusively in data-grid.css; the coupling is by class name,
not by import/<link>, so the earlier "zero @import references" check misjudged
it as dead. Deleting it would have silently stripped all styling from the
shipped, publicly-exported DataGrid component (#225). Net PR no longer touches
this file; the other 16 deletions + 4 dead-export removals stand (pure TS,
type-check-verified).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012wKHquACkXnWPDgJYhhFjN
This was referenced Jul 3, 2026
rickylabs
added a commit
that referenced
this pull request
Jul 3, 2026
…t removals) (#324) * chore(stale): eliminate Wave-1 dead code (17 deletions + 4 dead-export removals) Removes verified-dead CLI kernel adapters/ports/constants, queue internals, sdk transport/metadata ports, the workers v1 contract shim, and an unused fresh-ui css asset; severs the sdk re-export cascade and removes dead form-page-props helpers. Zero live referencers; all six affected workspaces type-check green. Evaluator-verified in a separate session. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012wKHquACkXnWPDgJYhhFjN * fix(stale): restore data-grid.css — class-name-coupled to shipped DataGrid data-grid.tsx applies `ns-data-grid*` BEM classes (cn('ns-data-grid', ...)) that are styled exclusively in data-grid.css; the coupling is by class name, not by import/<link>, so the earlier "zero @import references" check misjudged it as dead. Deleting it would have silently stripped all styling from the shipped, publicly-exported DataGrid component (#225). Net PR no longer touches this file; the other 16 deletions + 4 dead-export removals stand (pure TS, type-check-verified). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012wKHquACkXnWPDgJYhhFjN --------- Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Promotes a generic templated
DataGrid<T>into@netscript/fresh-uias the typed successor to the copy-sourceDataTable. It supports templated columns, built-instrongandnumcell treatments, plain rows, button rows, Fresh client-nav link rows, selected state, and token-only semantic CSS.The branch was rebased onto
origin/mainafter the Icon primitive merged in #224/#211. The final fresh-ui barrel exports both the mergedIconsurface and the newDataGridsurface;DataTableis untouched.Scope
packages/fresh-ui, frontend public component surfaceDataGrid<T>plus public column/row/renderable typessrc/presentation/data-grid.cssSlices
cc7747d7Validation
deno check --lock=deno.lock --unstable-kv mod.ts src/presentation/data-grid.tsx tests/data-grid.test.tsx tests/consumer-render.test.tsx- passeddeno lint mod.ts src/presentation/data-grid.tsx tests/data-grid.test.tsx tests/consumer-render.test.tsx- passeddeno test --lock=deno.lock --unstable-kv tests/data-grid.test.tsx tests/consumer-render.test.tsx tests/primitives.test.tsx- passed,13 passed | 0 faileddeno doc --lint mod.ts- passeddeno publish --dry-run --allow-dirty- passed; unrelateddeno.lockchurn was revertedrtk proxy deno task check- passedrtk proxy deno task fmt:check- passedHarness
.llm/tmp/run/feat-fresh-ui-datagrid--209/worklog.md,drift.md, andcommits.mdDrift / Debt
IconandDataGrid.Closes #209