packages feed

nano-ui-form-0.1.0.0: nano-ui-form.cabal

cabal-version:      3.4
name:               nano-ui-form
version:            0.1.0.0
synopsis:           Validated forms for nano-ui, built on ditto
description:
    Applicative forms whose inputs are nano-ui widgets, with validation errors
    shown under each field.
license:            MIT
license-file:       LICENSE
author:             goolord
maintainer:         zacharyachurchill@gmail.com
category:           Graphics
homepage:           https://github.com/goolord/nano-ui
bug-reports:        https://github.com/goolord/nano-ui/issues
build-type:         Simple
tested-with:        GHC ==9.10.3 || ==9.14.1
extra-doc-files:
    CHANGELOG.md
    README.md

source-repository head
    type:     git
    location: https://github.com/goolord/nano-ui.git
    subdir:   packages/nano-ui-form

common extensions
    default-language: GHC2024
    default-extensions:
        DuplicateRecordFields
        OverloadedStrings
        TypeFamilies

common warnings
  ghc-options:
    -Wall
    -Wextra
    -Wcompat
    -Widentities
    -Wincomplete-record-updates
    -Wincomplete-uni-patterns
    -Wmissing-export-lists
    -Wmissing-home-modules
    -Wpartial-fields
    -Wredundant-constraints
    -Wunused-packages

library
    import:           extensions
    import:           warnings
    exposed-modules:
        NanoUI.Form
        NanoUI.Form.Backend
        NanoUI.Form.Named
        NanoUI.Form.Runner
        NanoUI.Form.Types
        NanoUI.Form.Unnamed
        NanoUI.Form.Validation
        NanoUI.Form.Widgets
    other-modules:
        NanoUI.Form.Field
    build-depends:
        base >=4.20 && <4.23,
        containers >=0.6.7 && <0.9,
        ditto >=0.5 && <0.6,
        effectful-core >=2.5 && <2.8,
        hashable >=1.4 && <1.6,
        nano-ui ^>=0.1,
        text >=2.0 && <2.2
    hs-source-dirs:   lib

flag sdl
    description: Build the SDL3 window example
    manual: True
    default: False

executable nano-ui-form-example
    import:           extensions
    import:           warnings
    main-is:          Main.hs
    other-modules:    FormDemo
    ghc-options:      -rtsopts -threaded "-with-rtsopts=-N1 -A64m -T -I0"
    build-depends:
        base >=4.20 && <4.23,
        ditto >=0.5 && <0.6,
        nano-ui ^>=0.1,
        nano-ui-form,
        text >=2.0 && <2.2
    if flag(sdl)
        build-depends:
            nano-ui-sdl ^>=0.1
    if os(windows)
        ghc-options: -optl-mconsole
    if !flag(sdl)
        buildable: False
    hs-source-dirs:   examples

test-suite nano-ui-form-test
    import:           extensions
    import:           warnings
    type:             exitcode-stdio-1.0
    main-is:          Main.hs
    other-modules:    Scope
    ghc-options:      -rtsopts -threaded "-with-rtsopts=-M256m -N1"
    build-depends:
        base >=4.20 && <4.23,
        containers >=0.6.7 && <0.9,
        ditto >=0.5 && <0.6,
        nano-ui,
        nano-ui-form,
        text >=2.0 && <2.2
    hs-source-dirs:   test