From 33ff2fce1f1e555da42872a9b3e4e6e9517cd724 Mon Sep 17 00:00:00 2001 From: Fred Visser <1458528+fredvisser@users.noreply.github.com> Date: Tue, 19 Nov 2024 16:51:52 -0600 Subject: [PATCH] Add error state and fix links --- .../src/table/specs/editable-table-ixd.md | 8 ++++++-- .../spec-images/editable-cell-states.png | Bin 9930 -> 11871 bytes 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/nimble-components/src/table/specs/editable-table-ixd.md b/packages/nimble-components/src/table/specs/editable-table-ixd.md index 2e87a252fe..515089a7d8 100644 --- a/packages/nimble-components/src/table/specs/editable-table-ixd.md +++ b/packages/nimble-components/src/table/specs/editable-table-ixd.md @@ -6,8 +6,8 @@ Nimble table support for interactive cell editing. ### Background -- [ViD spec](https://www.figma.com/file/PO9mFOu5BCl8aJvFchEeuN/Nimble_Components?type=design&node-id=5308-156796&mode=dev) -- [Component Issue](https://github.com/ni/nimble/issues/1876) +- [Figma worksheet](https://www.figma.com/design/r2yGNQNVFdE7cBO9CyHmQx/Nimble---IxD?node-id=1221-36463) +- [Input table columns (select, text field, etc) #1190](https://github.com/ni/nimble/issues/1190) ## Usage @@ -73,6 +73,10 @@ This is particularly useful for scenarios where inline editing is required, such - When a cell has Edit focus, pressing `ESCAPE` reverts any value change and transforms it into the Cell focus state. +![Editable cell data error](./spec-images/editable-cell-error-data.png) + +- When a cell has Edit focus, pressing `ENTER` validates the value, and if invalid, transforms the cell into the Cell error state. + #### Touch-Screen Devices - The edit workflow should support touch screen devices. diff --git a/packages/nimble-components/src/table/specs/spec-images/editable-cell-states.png b/packages/nimble-components/src/table/specs/spec-images/editable-cell-states.png index 164faa768970fc3c9a1a077b28eb6bc4858e2022..641cfea444d8edce697c26643313de6d86e9212c 100644 GIT binary patch literal 11871 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 VE2ww6C}=AH;LA2pS6DXkG(eRwOMO#*4q2^ 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