         static let annotationDragThresholdHorizontal: CGFloat = 6
         static let textSize: CGFloat = 14.0
         static let timePreviewTextSize: CGFloat = 18.0
-        static let timePreviewXOffset: CGFloat = 15.0
         static let timePreviewYOffset: CGFloat = -32.0
+        static let timePreviewLeftOfMouseWidthMultiplier: CGFloat = 0.5
+        static let timePreviewRightOfMouseWidthMultiplier: CGFloat = 0.7
     }
 
     private var borderLayer: PUIBoringLayer!


    private func updateTimePreview(with event: NSEvent) {
        let point = convert(event.locationInWindow, from: nil)
        guard (maxTimestampWidth...(bounds.width - maxTimestampWidth)).contains(point.x) else {
            timePreviewLayer.animateInvisible()
            return
        }

        let timestamp = makeTimestamp(for: point)
        timePreviewLayer.animateVisible()
        timePreviewLayer.string = attributedString(for: timestamp, ofSize: Metrics.timePreviewTextSize)
        timePreviewLayer.contentsScale = window?.screen?.backingScaleFactor ?? 1

        var previewRect = timePreviewLayer.frame

    // MARK: - Private API

    private var annotationWindowController: PUIAnnotationWindowController?

    weak var viewDelegate: PUITimelineViewDelegate?

