Files
ichmagmaus111andClaude Opus 5.5 0622057a4f Ghostgram: open-source release
Ghostgram for iOS, rebuilt from scratch on Telegram iOS 13.0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 17:57:09 +01:00

27 lines
1.4 KiB
Swift

#if canImport(UIKit)
import UIKit
/// Per-host geometry for media blocks (image / video / location / audio). Every field defaults to the
/// editor's built-in (reference-design) look, so a host that never sets `RichTextEditorView.mediaBlockStyle`
/// is unchanged. The chat composer sets `horizontalBleed: 0` so media insets exactly like the text
/// paragraphs; the document / article editor keeps the default edge-to-edge bleed.
///
/// A growable value set (parallel to `QuoteStyle`): more knobs may be added over time.
@available(iOS 13.0, *)
public struct MediaBlockStyle: Equatable {
/// How far a top-level media block extends BEYOND the text content strip on each side, in points.
/// The media frame is positioned on the text strip (left/width from layout) and then bled out by this
/// amount on each side. The default (16, == `CanvasMetrics.pageMargin`) makes a full-page-document
/// image run edge-to-edge to the canvas edge; a compact host (the chat composer) sets 0 so media
/// insets exactly like the text paragraphs (left/right). → `MediaBlockBox.horizontalBleed`.
public var horizontalBleed: CGFloat
public init(horizontalBleed: CGFloat = 16) {
self.horizontalBleed = horizontalBleed
}
/// The editor's built-in document look: media bleeds across the page margin to the canvas edge.
public static let `default` = MediaBlockStyle()
}
#endif