-- | Interface for laying out paragraphs of rich text. -- -- The main entry point is the function `layoutRich`. module Data.Text.ParagraphLayout.Rich -- * Input paragraph ( Paragraph (Paragraph) , constructParagraph , ParagraphAlignment ( AlignStart , AlignEnd , AlignLeft , AlignRight , AlignCentreH ) , BoxCollapse (AllowBoxCollapse, AvoidBoxCollapse) , BoxSpacing (BoxSpacingLeftRight) , VerticalAlignment ( AlignLineTop , AlignLineBottom , AlignBaseline ) , LineHeight (Absolute, Normal) , ParagraphOptions , defaultParagraphOptions -- ** Paragraph options -- | These are record selectors that can be used for reading -- as well as updating specific option fields. , paragraphAlignment , paragraphMaxWidth -- NOTE: `paragraphFont` is only used by the legacy plain text interface, -- and is therefore not exported here. -- ** Content tree , RootNode (RootBox) , InnerNode (InlineBox, TextSequence) , Box (Box) , EmptyText , strut , BoxOptions , defaultBoxOptions , TextOptions , defaultTextOptions -- ** Box options -- | These are record selectors that can be used for reading -- as well as updating specific option fields. , boxSpacing , boxCollapse , boxVerticalAlignment , activateBoxSpacing -- ** Text options -- | These are record selectors that can be used for reading -- as well as updating specific option fields. , textFont , textAscender , textDescender , textLineHeight , textLanguage , textDirection -- ** Verification , paragraphSpanBounds , paragraphSpanTexts , paragraphText -- * Output layout , layoutRich , ParagraphLayout ( ParagraphLayout , paragraphRect , paragraphLines , paragraphFragments ) , paragraphSafeWidth , Line ( Line , lineNumber , lineRect ) , Fragment ( Fragment , fragmentUserData , fragmentLine , fragmentAncestorBoxes , fragmentContentRect , fragmentRect , fragmentPen , fragmentGlyphs ) , fragmentSpacedRect , AncestorBox ( AncestorBox , boxUserData , boxLeftEdge , boxRightEdge , boxStartEdge , boxEndEdge ) , BoxEdge (NoEdge, SpacedEdge) ) where import Data.Text.ParagraphLayout.Internal.AncestorBox import Data.Text.ParagraphLayout.Internal.BoxOptions import Data.Text.ParagraphLayout.Internal.Fragment import Data.Text.ParagraphLayout.Internal.Line import Data.Text.ParagraphLayout.Internal.LineHeight import Data.Text.ParagraphLayout.Internal.ParagraphAlignment import Data.Text.ParagraphLayout.Internal.ParagraphOptions import Data.Text.ParagraphLayout.Internal.Rich import Data.Text.ParagraphLayout.Internal.Rich.Paragraph import Data.Text.ParagraphLayout.Internal.Rich.ParagraphLayout import Data.Text.ParagraphLayout.Internal.TextOptions import Data.Text.ParagraphLayout.Internal.Tree