-
Notifications
You must be signed in to change notification settings - Fork 0
Closed
Labels
accessibilityAccessibility (a11y), keyboard navigation, screen readersAccessibility (a11y), keyboard navigation, screen readersbackendBackend services and logicBackend services and logiceditor-modeInventory editor mode / inline editingInventory editor mode / inline editingenhancementNew feature or requestNew feature or requestfrontendFrontend app and dashboardFrontend app and dashboardinventoryInventory system featuresInventory system featureskeyboardKeyboard-first interactionsKeyboard-first interactionsui-uxUser interface and experienceUser interface and experienceuser-storyEnd-user facing feature storyEnd-user facing feature story
Description
Summary
Enable adding new inventory items directly from Editor Mode using the same keyboard-first inline row pattern: a persistent blank row at the top for selecting item → location → quantity → save, then immediately spawn a fresh blank row for the next entry.
Background / Links
- Parent epic: Epic: Inventory Editor Mode (rapid inline updates) #58
- Related: Inventory Editor Mode: Inline editing enabled for personal + org inventory #60 (inline editing), Inventory Editor Mode: Location combobox with debounced filtering + full keyboard support #61 (location combobox), Inventory Editor Mode: Keyboard flow (Location → Quantity → Save → Next row) #62 (keyboard flow), Inventory Editor Mode: Per-row save without reload + saved indicator #63 (per-row save), Inventory Editor Mode: Allow up to 250 rows per page #64 (250 rows), Tech: Automated tests for Editor Mode (keyboard + a11y) #68 (editor mode tests).
User Story
As a power user entering inventory in Editor Mode, I want a blank row I can fill (item, location, quantity) and save via keyboard so I can rapidly add multiple items without leaving the table or using the mouse.
Acceptance Criteria
- A single blank "New item" row is pinned at the top of the current list (respects personal/org scope and filters).
- Field order and focus flow: Item selector → Location selector → Quantity → Save. Enter/Tab advances; Shift+Tab moves back. Enter on Save commits and immediately resets a fresh blank row with focus on Item.
- Item selector: type-to-filter with debounce; keyboard highlight + Enter to choose; clickable with mouse. Required.
- Location selector: same behavior/pattern as existing inline location combobox (debounced filter, only commit on Enter/click). Required.
- Quantity: required, integer > 0; no spinners; shows inline error when empty/invalid; warn if >100k but allow save.
- Save triggers create in the correct scope (personal/org) without full-page reload and inserts the saved row into the list according to current sort/grouping.
- Unsaved/dirty indicator appears while the new row has edits and disappears after successful save/reset.
- Keyboard-only path fully supported; mouse remains possible.
- A11y: ARIA/composable inputs keep labels/ids; focus order and announcements match existing Editor Mode conventions.
Non-Goals / Out of Scope
- Undo for newly added rows.
- Bulk upload/import.
- Save-on-enter for quantity (still requires explicit save as per current pattern).
Definition of Done
- Behavior meets all Acceptance Criteria in personal and org inventory views.
- Works with current filters/sort/grouping; new saved row appears in correct position; template row stays pinned.
- Keyboard navigation and screen reader semantics validated (manual check + automated tests where applicable).
- Error states covered (validation, API failure stays on row with retry option).
- Tests added/updated (unit/integration for focus + creation flow; e2e if covered by suite).
- Added to project "Station Technical Preview" with labels above and cross-links to related issues/epic.
Metadata
Metadata
Assignees
Labels
accessibilityAccessibility (a11y), keyboard navigation, screen readersAccessibility (a11y), keyboard navigation, screen readersbackendBackend services and logicBackend services and logiceditor-modeInventory editor mode / inline editingInventory editor mode / inline editingenhancementNew feature or requestNew feature or requestfrontendFrontend app and dashboardFrontend app and dashboardinventoryInventory system featuresInventory system featureskeyboardKeyboard-first interactionsKeyboard-first interactionsui-uxUser interface and experienceUser interface and experienceuser-storyEnd-user facing feature storyEnd-user facing feature story