packages feed

lipstick-0.1.0.0: lipstick.cabal

cabal-version:   3.12
name:            lipstick
version:         0.1.0.0
synopsis:        Style definitions for nice terminal layouts
category:        Console, Text
description:
  A port of charmbracelet's lipgloss (v2): colours, borders, padding,
  alignment, tables, lists, trees and layered compositions for command-line
  output. Styles are composable modifiers; they render to blocks of styled
  text, laid out in the width available and turned into ANSI escape
  sequences only when printed. lipstick-brick shows the blocks in brick and
  vty applications.
license:         MIT AND Unicode-3.0
license-files:
    LICENSE
    LICENSE.Unicode
author:          Andrea Bedini
maintainer:      andrea@bedini.au
homepage:        https://github.com/andreabedini/lipstick
bug-reports:     https://github.com/andreabedini/lipstick/issues
build-type:      Simple
tested-with:     GHC == 9.10.3 || == 9.12.2 || == 9.14.1
extra-doc-files:
    CHANGELOG.md
    README.md
extra-source-files:
    scripts/GenUnicodeTable.hs
    test/data/GraphemeBreakTest.txt

source-repository head
    type:     git
    location: https://github.com/andreabedini/lipstick.git

-- The demo and the screenshot generator are for developing lipstick:
-- cabal.project switches them on, so that installing the package from
-- Hackage does not install them.
flag examples
    description: Build the example programs
    default:     False
    manual:      True

common warnings
    ghc-options: -Wall -Wcompat -Wincomplete-uni-patterns -Wincomplete-record-updates

library
    import:           warnings
    -- The public modules are in src; the representation of blocks, grids,
    -- styles and colours is in internal, as other-modules, so other
    -- packages cannot import it.
    hs-source-dirs:   src internal
    exposed-modules:
        Lipstick
        Lipstick.Ansi
        Lipstick.Block
        Lipstick.Border
        Lipstick.Color
        Lipstick.Grid
        Lipstick.Layer
        Lipstick.Mod
        Lipstick.Place
        Lipstick.Style
        Lipstick.Table
        Lipstick.Outline
        Lipstick.Terminal
        Lipstick.Width
    other-modules:
        Lipstick.Internal.Border
        Lipstick.Internal.Color
        Lipstick.Internal.Grid
        Lipstick.Internal.Layout
        Lipstick.Internal.Mod
        Lipstick.Internal.Types
        Lipstick.Internal.UnicodeTable
        Lipstick.Internal.Width
    build-depends:
        base >=4.20 && <4.23,
        array ^>=0.5,
        bytestring >=0.11 && <0.13,
        text >=2.1.2 && <2.2,
        ansi-terminal ^>=1.1,
        terminal-size >=0.3.4 && <0.4,
        colour ^>=2.3,
        containers >=0.6 && <0.9
    default-language: GHC2024

executable lipstick-demo
    import:           warnings
    if !flag(examples)
        buildable: False
    main-is:          Main.hs
    hs-source-dirs:   examples
    build-depends:
        base,
        text,
        lipstick
    default-language: GHC2024

executable lipstick-screenshots
    import:           warnings
    if !flag(examples)
        buildable: False
    main-is:          Screenshots.hs
    other-modules:    Svg
    hs-source-dirs:   examples
    build-depends:
        base,
        filepath ^>=1.5,
        text,
        lipstick
    default-language: GHC2024

test-suite lipstick-test
    import:           warnings
    type:             exitcode-stdio-1.0
    main-is:          Main.hs
    -- The tests reach the library's internals by compiling its sources, so
    -- other-modules and build-depends must include the library's.
    hs-source-dirs:   test src internal
    other-modules:
        Lipstick
        Lipstick.Ansi
        Lipstick.Block
        Lipstick.Border
        Lipstick.Color
        Lipstick.Grid
        Lipstick.Layer
        Lipstick.Mod
        Lipstick.Place
        Lipstick.Style
        Lipstick.Table
        Lipstick.Outline
        Lipstick.Terminal
        Lipstick.Width
        Lipstick.Internal.Border
        Lipstick.Internal.Color
        Lipstick.Internal.Grid
        Lipstick.Internal.Layout
        Lipstick.Internal.Mod
        Lipstick.Internal.Types
        Lipstick.Internal.UnicodeTable
        Lipstick.Internal.Width
    build-depends:
        base >=4.20 && <4.23,
        array ^>=0.5,
        bytestring >=0.11 && <0.13,
        text >=2.1.2 && <2.2,
        ansi-terminal ^>=1.1,
        terminal-size >=0.3.4 && <0.4,
        colour ^>=2.3,
        containers >=0.6 && <0.9,
        directory,
        tasty ^>=1.5,
        tasty-hunit ^>=0.10,
        tasty-quickcheck ^>=0.11,
        QuickCheck >=2.14 && <2.20
    default-language: GHC2024