packages feed

brick-2.5: brick.cabal

name:                brick
version:             2.5
synopsis:            A declarative terminal user interface library
description:
  Write terminal user interfaces (TUIs) painlessly with 'brick'! You
  write an event handler and a drawing function and the library does the
  rest.
  .
  .
  > module Main where
  >
  > import Brick
  >
  > ui :: Widget ()
  > ui = str "Hello, world!"
  >
  > main :: IO ()
  > main = simpleMain ui
  .
  .
  To get started, see:
  .
  * <https://github.com/jtdaugherty/brick/blob/master/README.md The README>
  .
  * The <https://github.com/jtdaugherty/brick/blob/master/docs/guide.rst Brick user guide>
  .
  * The demonstration programs in the 'programs' directory
  .
  .
  This package deprecates <http://hackage.haskell.org/package/vty-ui vty-ui>.
license:             BSD3
license-file:        LICENSE
author:              Jonathan Daugherty <cygnus@foobox.com>
maintainer:          Jonathan Daugherty <cygnus@foobox.com>
copyright:           (c) Jonathan Daugherty 2015-2024
category:            Graphics
build-type:          Simple
cabal-version:       1.18
Homepage:            https://github.com/jtdaugherty/brick/
Bug-reports:         https://github.com/jtdaugherty/brick/issues
tested-with:         GHC == 8.2.2
                      || == 8.4.4
                      || == 8.6.5
                      || == 8.8.4
                      || == 8.10.7
                      || == 9.0.2
                      || == 9.2.8
                      || == 9.4.8
                      || == 9.6.3
                      || == 9.8.1

extra-doc-files:     README.md,
                     docs/guide.rst,
                     docs/snake-demo.gif,
                     CHANGELOG.md,
                     programs/custom_keys.ini

Source-Repository head
  type:     git
  location: git://github.com/jtdaugherty/brick.git

Flag demos
    Description:     Build demonstration programs
    Default:         False

library
  default-language:    Haskell2010
  ghc-options:         -Wall -Wcompat -O2 -Wunused-packages
  default-extensions:  CPP
  hs-source-dirs:      src
  exposed-modules:
    Brick
    Brick.AttrMap
    Brick.BChan
    Brick.BorderMap
    Brick.Keybindings
    Brick.Keybindings.KeyConfig
    Brick.Keybindings.KeyEvents
    Brick.Keybindings.KeyDispatcher
    Brick.Keybindings.Normalize
    Brick.Keybindings.Parse
    Brick.Keybindings.Pretty
    Brick.Focus
    Brick.Forms
    Brick.Main
    Brick.Themes
    Brick.Types
    Brick.Util
    Brick.Widgets.Border
    Brick.Widgets.Border.Style
    Brick.Widgets.Center
    Brick.Widgets.Core
    Brick.Widgets.Dialog
    Brick.Widgets.Edit
    Brick.Widgets.FileBrowser
    Brick.Widgets.List
    Brick.Widgets.ProgressBar
    Brick.Widgets.Table
    Data.IMap
  other-modules:
    Brick.Types.Common
    Brick.Types.TH
    Brick.Types.EventM
    Brick.Types.Internal
    Brick.Widgets.Internal

  build-depends:       base >= 4.9.0.0 && < 4.21.0.0,
                       vty >= 6.0,
                       vty-crossplatform,
                       bimap >= 0.5 && < 0.6,
                       data-clist >= 0.1,
                       directory >= 1.2.5.0,
                       exceptions >= 0.10.0,
                       filepath,
                       containers >= 0.5.7,
                       microlens >= 0.3.0.0,
                       microlens-th,
                       microlens-mtl,
                       mtl,
                       config-ini,
                       vector,
                       stm >= 2.4.3,
                       text,
                       text-zipper >= 0.13,
                       template-haskell,
                       deepseq >= 1.3 && < 1.6,
                       unix-compat,
                       bytestring,
                       word-wrap >= 0.2

executable brick-custom-keybinding-demo
  if !flag(demos)
    Buildable: False
  hs-source-dirs:      programs
  ghc-options:         -threaded -Wall -Wcompat -O2
  default-language:    Haskell2010
  default-extensions:  CPP
  main-is:             CustomKeybindingDemo.hs
  build-depends:       base,
                       brick,
                       text,
                       vty,
                       containers,
                       microlens,
                       microlens-mtl,
                       microlens-th

executable brick-table-demo
  if !flag(demos)
    Buildable: False
  hs-source-dirs:      programs
  ghc-options:         -threaded -Wall -Wcompat -O2
  default-language:    Haskell2010
  default-extensions:  CPP
  main-is:             TableDemo.hs
  build-depends:       base,
                       brick,
                       text,
                       vty

executable brick-tail-demo
  if !flag(demos)
    Buildable: False
  hs-source-dirs:      programs
  ghc-options:         -threaded -Wall -Wcompat -O2
  default-language:    Haskell2010
  default-extensions:  CPP
  main-is:             TailDemo.hs
  build-depends:       base,
                       brick,
                       text,
                       vty,
                       vty-crossplatform,
                       random,
                       microlens-th,
                       microlens-mtl

executable brick-readme-demo
  if !flag(demos)
    Buildable: False
  hs-source-dirs:      programs
  ghc-options:         -threaded -Wall -Wcompat -O2
  default-language:    Haskell2010
  default-extensions:  CPP
  main-is:             ReadmeDemo.hs
  build-depends:       base,
                       brick,
                       text

executable brick-file-browser-demo
  if !flag(demos)
    Buildable: False
  hs-source-dirs:      programs
  ghc-options:         -threaded -Wall -Wcompat -O2
  default-language:    Haskell2010
  default-extensions:  CPP
  main-is:             FileBrowserDemo.hs
  build-depends:       base,
                       vty,
                       brick,
                       text,
                       mtl

executable brick-form-demo
  if !flag(demos)
    Buildable: False
  hs-source-dirs:      programs
  ghc-options:         -threaded -Wall -Wcompat -O2
  default-language:    Haskell2010
  default-extensions:  CPP
  main-is:             FormDemo.hs
  build-depends:       base,
                       brick,
                       text,
                       microlens,
                       microlens-th,
                       vty-crossplatform,
                       vty

executable brick-text-wrap-demo
  if !flag(demos)
    Buildable: False
  hs-source-dirs:      programs
  ghc-options:         -threaded -Wall -Wcompat -O2
  default-language:    Haskell2010
  default-extensions:  CPP
  main-is:             TextWrapDemo.hs
  build-depends:       base,
                       brick,
                       text,
                       word-wrap

executable brick-cache-demo
  if !flag(demos)
    Buildable: False
  hs-source-dirs:      programs
  ghc-options:         -threaded -Wall -Wcompat -O2
  default-language:    Haskell2010
  default-extensions:  CPP
  main-is:             CacheDemo.hs
  build-depends:       base,
                       brick,
                       vty,
                       text,
                       microlens >= 0.3.0.0,
                       microlens-th,
                       mtl

executable brick-visibility-demo
  if !flag(demos)
    Buildable: False
  hs-source-dirs:      programs
  ghc-options:         -threaded -Wall -Wcompat -O2
  default-language:    Haskell2010
  main-is:             VisibilityDemo.hs
  build-depends:       base,
                       brick,
                       vty,
                       text,
                       microlens >= 0.3.0.0,
                       microlens-th,
                       microlens-mtl

executable brick-viewport-scrollbars-demo
  if !flag(demos)
    Buildable: False
  hs-source-dirs:      programs
  ghc-options:         -threaded -Wall -Wcompat -O2
  default-language:    Haskell2010
  default-extensions:  CPP
  main-is:             ViewportScrollbarsDemo.hs
  build-depends:       base,
                       brick,
                       vty,
                       vty-crossplatform,
                       text,
                       microlens,
                       microlens-mtl,
                       microlens-th

executable brick-viewport-scroll-demo
  if !flag(demos)
    Buildable: False
  hs-source-dirs:      programs
  ghc-options:         -threaded -Wall -Wcompat -O2
  default-language:    Haskell2010
  default-extensions:  CPP
  main-is:             ViewportScrollDemo.hs
  build-depends:       base,
                       brick,
                       vty,
                       text,
                       microlens

executable brick-dialog-demo
  if !flag(demos)
    Buildable: False
  hs-source-dirs:      programs
  ghc-options:         -threaded -Wall -Wcompat -O2
  default-language:    Haskell2010
  main-is:             DialogDemo.hs
  build-depends:       base,
                       brick,
                       vty,
                       text,
                       microlens

executable brick-mouse-demo
  if !flag(demos)
    Buildable: False
  hs-source-dirs:      programs
  ghc-options:         -threaded -Wall -Wcompat -O2
  default-language:    Haskell2010
  main-is:             MouseDemo.hs
  build-depends:       base,
                       brick,
                       vty,
                       text,
                       microlens >= 0.3.0.0,
                       microlens-th,
                       microlens-mtl,
                       text-zipper,
                       mtl

executable brick-layer-demo
  if !flag(demos)
    Buildable: False
  hs-source-dirs:      programs
  ghc-options:         -threaded -Wall -Wcompat -O2
  default-language:    Haskell2010
  main-is:             LayerDemo.hs
  build-depends:       base,
                       brick,
                       vty,
                       text,
                       microlens >= 0.3.0.0,
                       microlens-th,
                       microlens-mtl

executable brick-suspend-resume-demo
  if !flag(demos)
    Buildable: False
  hs-source-dirs:      programs
  ghc-options:         -threaded -Wall -Wcompat -O2
  default-language:    Haskell2010
  main-is:             SuspendAndResumeDemo.hs
  build-depends:       base,
                       brick,
                       vty,
                       text,
                       microlens >= 0.3.0.0,
                       microlens-th

executable brick-cropping-demo
  if !flag(demos)
    Buildable: False
  hs-source-dirs:      programs
  ghc-options:         -threaded -Wall -Wcompat -O2
  default-language:    Haskell2010
  main-is:             CroppingDemo.hs
  build-depends:       base,
                       brick,
                       vty,
                       text,
                       microlens

executable brick-padding-demo
  if !flag(demos)
    Buildable: False
  hs-source-dirs:      programs
  ghc-options:         -threaded -Wall -Wcompat -O2
  default-language:    Haskell2010
  main-is:             PaddingDemo.hs
  build-depends:       base,
                       brick,
                       vty,
                       text,
                       microlens

executable brick-theme-demo
  if !flag(demos)
    Buildable: False
  hs-source-dirs:      programs
  ghc-options:         -threaded -Wall -Wcompat -O2
  default-language:    Haskell2010
  main-is:             ThemeDemo.hs
  build-depends:       base,
                       brick,
                       vty,
                       text,
                       mtl,
                       microlens

executable brick-attr-demo
  if !flag(demos)
    Buildable: False
  hs-source-dirs:      programs
  ghc-options:         -threaded -Wall -Wcompat -O2
  default-language:    Haskell2010
  main-is:             AttrDemo.hs
  build-depends:       base,
                       brick,
                       vty,
                       text,
                       microlens

executable brick-tabular-list-demo
  if !flag(demos)
    Buildable: False
  hs-source-dirs:      programs
  ghc-options:         -threaded -Wall -Wcompat -O2
  default-language:    Haskell2010
  main-is:             TabularListDemo.hs
  build-depends:       base,
                       brick,
                       vty,
                       text,
                       microlens >= 0.3.0.0,
                       microlens-mtl,
                       microlens-th,
                       mtl,
                       vector

executable brick-list-demo
  if !flag(demos)
    Buildable: False
  hs-source-dirs:      programs
  ghc-options:         -threaded -Wall -Wcompat -O2
  default-language:    Haskell2010
  main-is:             ListDemo.hs
  build-depends:       base,
                       brick,
                       vty,
                       text,
                       microlens >= 0.3.0.0,
                       microlens-mtl,
                       mtl,
                       vector

executable brick-list-vi-demo
  if !flag(demos)
    Buildable: False
  hs-source-dirs:      programs
  ghc-options:         -threaded -Wall -Wcompat -O2
  default-language:    Haskell2010
  main-is:             ListViDemo.hs
  build-depends:       base,
                       brick,
                       vty,
                       text,
                       microlens >= 0.3.0.0,
                       microlens-mtl,
                       mtl,
                       vector

executable brick-custom-event-demo
  if !flag(demos)
    Buildable: False
  hs-source-dirs:      programs
  ghc-options:         -threaded -Wall -Wcompat -O2
  default-language:    Haskell2010
  main-is:             CustomEventDemo.hs
  build-depends:       base,
                       brick,
                       vty,
                       text,
                       microlens >= 0.3.0.0,
                       microlens-th,
                       microlens-mtl

executable brick-fill-demo
  if !flag(demos)
    Buildable: False
  hs-source-dirs:      programs
  ghc-options:         -threaded -Wall -Wcompat -O2
  default-language:    Haskell2010
  main-is:             FillDemo.hs
  build-depends:       base,
                       brick,
                       vty,
                       text,
                       microlens

executable brick-hello-world-demo
  if !flag(demos)
    Buildable: False
  hs-source-dirs:      programs
  ghc-options:         -threaded -Wall -Wcompat -O2
  default-language:    Haskell2010
  main-is:             HelloWorldDemo.hs
  build-depends:       base,
                       brick,
                       vty,
                       text,
                       microlens

executable brick-edit-demo
  if !flag(demos)
    Buildable: False
  hs-source-dirs:      programs
  ghc-options:         -threaded -Wall -Wcompat -O2
  default-language:    Haskell2010
  main-is:             EditDemo.hs
  build-depends:       base,
                       brick,
                       vty,
                       text,
                       vector,
                       mtl,
                       microlens >= 0.3.0.0,
                       microlens-th,
                       microlens-mtl

executable brick-editor-line-numbers-demo
  if !flag(demos)
    Buildable: False
  hs-source-dirs:      programs
  ghc-options:         -threaded -Wall -Wcompat -O2
  default-language:    Haskell2010
  main-is:             EditorLineNumbersDemo.hs
  build-depends:       base,
                       brick,
                       vty,
                       text,
                       vector,
                       mtl,
                       microlens >= 0.3.0.0,
                       microlens-th,
                       microlens-mtl

executable brick-border-demo
  if !flag(demos)
    Buildable: False
  hs-source-dirs:      programs
  ghc-options:         -threaded -Wall -Wcompat -O2
  default-extensions:  CPP
  default-language:    Haskell2010
  main-is:             BorderDemo.hs
  build-depends:       base,
                       brick,
                       vty,
                       text,
                       microlens

executable brick-dynamic-border-demo
  if !flag(demos)
    Buildable: False
  hs-source-dirs:      programs
  ghc-options:         -threaded -Wall -Wcompat -O2
  default-extensions:  CPP
  default-language:    Haskell2010
  main-is:             DynamicBorderDemo.hs
  build-depends:       base <= 5,
                       brick,
                       vty,
                       text,
                       microlens

executable brick-progressbar-demo
  if !flag(demos)
    Buildable: False
  hs-source-dirs:      programs
  ghc-options:         -threaded -Wall -Wcompat -O2
  default-extensions:  CPP
  default-language:    Haskell2010
  main-is:             ProgressBarDemo.hs
  build-depends:       base,
                       brick,
                       vty,
                       text,
                       microlens,
                       microlens-mtl,
                       microlens-th

test-suite brick-tests
  type:                exitcode-stdio-1.0
  hs-source-dirs:      tests
  ghc-options:         -Wall -Wcompat -Wno-orphans -O2
  default-language:    Haskell2010
  main-is:             Main.hs
  other-modules:       List Render
  build-depends:       base <=5,
                       brick,
                       containers,
                       microlens,
                       vector,
                       vty,
                       vty-crossplatform,
                       QuickCheck