- text: LOCAL PROTOTYPE
- generic: Fictional businesses · Saved on this Mac
- link "Demo home":
  - /url: /
  - text: Demo home ↗
- complementary:
  - link "Workspace LOCAL PROTOTYPE":
    - /url: /
    - text: Workspace
    - generic: LOCAL PROTOTYPE
  - generic: O&
  - strong: Oak & Vale
  - generic: Owner workspace
  - generic: Active business
  - combobox "Active business" [disabled]:
    - option "Oak & Vale · owner" [selected]
  - navigation "Workspace":
    - button "Overview":
      - text: Overview
    - button "Jobs 3":
      - text: Jobs
      - generic: "3"
    - button "Follow-ups":
      - text: Follow-ups
    - button "Operations":
      - text: Operations
    - button "Reports":
      - text: Reports
    - button "Field work":
      - text: Field work
    - button "Quotes & invoices":
      - text: Quotes & invoices
    - button "Document settings":
      - text: Document settings
    - button "Customers":
      - text: Customers
    - button "Feedback":
      - text: Feedback
    - button "Materials":
      - text: Materials
    - button "Team":
      - text: Team
    - button "Calendar":
      - text: Calendar
    - button "Repeat work":
      - text: Repeat work
    - button "Website":
      - text: Website
    - button "Gallery":
      - text: Gallery
    - button "Members":
      - text: Members
    - button "Account":
      - text: Account
    - button "Setup & help":
      - text: Setup & help
  - link "View your website ↗":
    - /url: /site/oak-and-vale
    - text: View your website
    - generic: ↗
  - button "Sign out":
    - text: Sign out
  - text: Local demo · v0.20.1
  - text: No live integrations
- banner:
  - generic: Saved locally
  - button "Refresh records" [disabled]
  - generic: 30 Oct 2026
  - generic: O&
- main:
  - generic: Oak & Vale
  - heading "Repeat work" [level=1]
  - paragraph: Everything here belongs to this fictional business.
  - button "New enquiry" [disabled]:
    - text: New enquiry
  - heading "Repeat work" [level=2]
  - paragraph: Save a finite pattern, preview the dates, then confirm the schedule. UK clock changes and overlapping assignments are checked before anything is saved.
  - generic: Saved recurring definition
  - combobox "Saved recurring definition" [disabled]:
    - option "Choose recurring work…"
    - option "Protected history QA · Alex Demo · active"
    - option "Weekly garden QA · Riley Recurrence QA · paused" [selected]
  - button "New recurring definition" [disabled]
  - heading "Weekly garden QA" [level=2]
  - paragraph: paused · Garden care · Linked to the original customer and job
  - link "Open linked document source review":
    - /url: /field-review/d2e0305544b4716f2f44a1417667c758
  - paragraph: "PRIVATE REPEAT NOTE: retain after validation and leave checks."
  - button "Refresh saved definition" [disabled]
  - paragraph: Pause and retire stop generation; existing visits remain. Restoring a definition leaves it paused. Nothing creates labour, invoices or payments.
  - heading "state" [level=3]
  - paragraph: Set the definition to active. Existing bookings remain.
  - generic: Reason for this review
  - textbox "Reason for this review": Explicit owner review resumes future generation only.
  - button "Preview all effects"
  - button "Discard proposal"
  - heading "Review the complete change" [level=3]
  - paragraph: 0 visit changes · 0 held for separate review.
  - paragraph: Every shown ready change commits together, or none does. Protected/overridden visits are retained only with explicit acknowledgement.
  - article:
    - strong: 2026-11-02 · retained · keep
    - paragraph: "Saved: 2026-11-03 13:00 → 2026-11-03 14:00 · Alex QA"
    - paragraph: Existing bookings remain. Pause/retire changes future generation only.
  - article:
    - strong: 2026-11-16 · retained · keep
    - paragraph: "Saved: 2026-11-16 10:00 → 2026-11-16 11:00 · Alex QA"
    - paragraph: Existing bookings remain. Pause/retire changes future generation only.
  - checkbox "I reviewed all dates, people, conflicts and retained visits."
  - text: I reviewed all dates, people, conflicts and retained visits.
  - button "Confirm reviewed changes" [disabled]
  - heading "Date exclusions" [level=3]
  - generic: "2026-11-16 – 2026-11-23 · Fictional holiday A: 16–23 November inclusive. · removed"
  - text: "0"
  - generic: 2026-11-23 – 2026-11-30 · Fictional holiday B overlaps A on 23 November. · active
  - heading "Retained visits" [level=3]
  - paragraph: A visit keeps its original date identity when rescheduled. Bulk changes hold manual overrides and visits on jobs with work history for separate review. A future unstarted visit can still be reviewed individually below.
  - article:
    - strong: 2026-11-02 · active · manual override
    - paragraph: 2026-11-03 13:00 → 2026-11-03 14:00 · Alex QA
    - paragraph: Fictional owner requested Tuesday afternoon for this one unstarted visit.
  - article:
    - strong: 2026-11-09 · cancelled
    - paragraph: 2026-11-09 09:00 → 2026-11-09 10:00 · Alex QA
    - paragraph: Fictional customer cancels this unstarted visit; do not recreate it.
  - article:
    - strong: 2026-11-16 · active
    - paragraph: 2026-11-16 10:00 → 2026-11-16 11:00 · Alex QA
    - paragraph: Owner-reviewed revise
  - article:
    - strong: 2026-11-23 · excluded
    - paragraph: 2026-11-23 09:00 → 2026-11-23 10:00 · Alex QA
    - paragraph: Covered by active contract date exclusions.
  - article:
    - strong: 2026-11-30 · excluded
    - paragraph: 2026-11-30 09:00 → 2026-11-30 10:00 · Alex QA
    - paragraph: Covered by active contract date exclusions.
  - heading "Saved review history" [level=3]
  - button "Read definition history"
  - generic: Read a confirmed review
  - combobox "Read a confirmed review":
    - option "Choose a saved review…" [selected]
    - option "2026-10-30T12:23:14+00:00 · b8078b31"
    - option "2026-10-30T12:23:05+00:00 · 61159378"
    - option "2026-10-30T12:22:49+00:00 · 67071f59"
    - option "2026-10-30T12:22:38+00:00 · c9174d8c"
    - option "2026-10-30T12:22:22+00:00 · 460c4a21"
    - option "2026-10-30T12:22:08+00:00 · 22fd6b0a"
    - option "2026-10-30T12:22:03+00:00 · 8c675c80"
    - option "2026-10-30T12:21:44+00:00 · caf79c6e"
    - option "2026-10-30T12:21:22+00:00 · 115837d6"
    - option "2026-10-30T12:15:06+00:00 · a6687468"
- contentinfo:
  - text: Independent development copy
  - generic: Local prototype · Not approved for live business use