fix: editor usability and visual polish from UI scan

- Rule name is now an inline text field at the top of the editor; the
  pencil/rename button and alert are gone (it was unclear what the edit
  button did). Names are sanitized on commit: trimmed, falling back to
  the kind's default when emptied
- Day-of-week toggles fill the full row width with equal cells and
  >= 44pt tap targets
- 'Add Rule' commit button sits on a bar-material bottom inset so form
  content no longer collides with it while scrolling (found via
  computer-use scan; verified clean in a follow-up scan)
- Tests: 95 passing — new specs for the inline rename flow, day-toggle
  geometry, and name sanitization; three tests now scroll to reach
  bottom-of-form controls, matching real user behavior
- Spec §6 updated for the editor changes

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-06-12 15:44:25 -04:00
parent 2ca365e3f4
commit 1868d788f9
7 changed files with 86 additions and 36 deletions

View File

@@ -47,6 +47,9 @@ final class RuleManagementUITests: XCTestCase {
app.buttons["ruleCard-Sleep"].waitToAppear().tap()
app.buttons["editRuleButton"].waitToAppear().tap()
// The disable/delete rows sit at the bottom of the form.
app.staticTexts["ruleEditorTitle"].waitToAppear()
app.swipeUp()
app.buttons["toggleEnabledButton"].waitToAppear().tap()
// The detail caption now reports the rule as disabled.
@@ -63,6 +66,9 @@ final class RuleManagementUITests: XCTestCase {
app.buttons["ruleCard-Sleep"].waitToAppear().tap()
app.buttons["editRuleButton"].waitToAppear().tap()
// The disable/delete rows sit at the bottom of the form.
app.staticTexts["ruleEditorTitle"].waitToAppear()
app.swipeUp()
app.buttons["deleteRuleButton"].waitToAppear().tap()
app.buttons["newRuleButton"].waitToAppear()