REST /api/v1/focus-positions 8 endpoints
GET /api/v1/focus-positions/api/v1/focus-positions

List all saved focus position records

Public

Response Example

{
  "data": [
    {
      "id": "fp-001",
      "key": "modal-open-trigger",
      "widget_key": "open-modal-btn",
      "route_name": "AppointmentView",
      "saved_at": "2026-03-26T09:30:00Z"
    },
    {
      "id": "fp-002",
      "key": "nav-back-anchor",
      "widget_key": "back-nav-btn",
      "route_name": "PatientList",
      "saved_at": "2026-03-26T10:00:00Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 2
  }
}
GET /api/v1/focus-positions/api/v1/focus-positions/:id

Get a saved focus position record by ID

Public

Response Example

{
  "id": "fp-001",
  "key": "modal-open-trigger",
  "widget_key": "open-modal-btn",
  "route_name": "AppointmentView",
  "saved_at": "2026-03-26T09:30:00Z"
}
POST /api/v1/focus-positions/api/v1/focus-positions

Save a focus position for later restoration

Public

Request Example

{
  "key": "drawer-open-trigger",
  "widget_key": "sidebar-toggle-btn",
  "route_name": "Dashboard"
}

Response Example

{
  "id": "fp-003",
  "key": "drawer-open-trigger",
  "widget_key": "sidebar-toggle-btn",
  "route_name": "Dashboard",
  "saved_at": "2026-03-26T11:40:00Z"
}
PUT /api/v1/focus-positions/api/v1/focus-positions/:id

Update a saved focus position record

Public

Request Example

{
  "widget_key": "sidebar-hamburger-btn",
  "route_name": "Dashboard"
}

Response Example

{
  "id": "fp-003",
  "key": "drawer-open-trigger",
  "widget_key": "sidebar-hamburger-btn",
  "route_name": "Dashboard",
  "saved_at": "2026-03-26T11:40:00Z",
  "updated_at": "2026-03-26T11:45:00Z"
}
DELETE /api/v1/focus-positions/api/v1/focus-positions/:id

Delete a saved focus position record

Public

Response Example

{
  "message": "Focus position fp-003 deleted"
}
POST /api/v1/focus-positions/api/v1/focus-positions/move

Move the UI focus to a specified widget immediately

Public

Request Example

{
  "widget_key": "confirm-delete-btn",
  "session_id": "sess-abc123"
}

Response Example

{
  "widget_key": "confirm-delete-btn",
  "focused": true,
  "focused_at": "2026-03-26T11:41:00Z"
}
POST /api/v1/focus-positions/api/v1/focus-positions/restore

Restore focus to a previously saved position by key

Public

Request Example

{
  "saved_key": "modal-open-trigger",
  "session_id": "sess-abc123"
}

Response Example

{
  "saved_key": "modal-open-trigger",
  "widget_key": "open-modal-btn",
  "restored": true,
  "restored_at": "2026-03-26T11:42:00Z"
}
POST /api/v1/focus-positions/api/v1/focus-positions/defer

Schedule a focus move to a widget after a specified delay

Public

Request Example

{
  "widget_key": "success-toast-close-btn",
  "delay_ms": 300,
  "session_id": "sess-abc123"
}

Response Example

{
  "widget_key": "success-toast-close-btn",
  "delay_ms": 300,
  "deferred_until": "2026-03-26T11:43:00.300Z",
  "scheduled": true
}

Additional Metadata

{
  "contract_summary": {
    "total_contracts": 410,
    "total_endpoints": 2416,
    "api_styles_used": [
      "rest"
    ]
  },
  "generated_at": "2026-03-26T06:55:53.316Z"
}