cabal-version: 3.0
name: haskell-halogen-core
version: 0.9.0
synopsis: Haskell port of purescript-halogen library
homepage: https://github.com/Swordlash/haskell-halogen
license: Apache-2.0
license-file: LICENSE
author: Mateusz Goślinowski
maintainer: mateusz.goslinowski@gmail.com
category: Web
extra-source-files: CHANGELOG.md, NOTICE
flag trace-dom
description: Enable tracing of DOM operations
default: False
manual: True
common commons
build-depends:
base >= 4.20 && < 5,
free,
transformers,
mtl,
text,
protolude,
random,
time,
bytestring,
stm,
deepseq,
unordered-containers,
async,
row-types,
hashable,
containers,
kan-extensions,
uuid-types,
unliftio,
safe-exceptions,
clay >= 0.16.0,
data-default
default-language: GHC2021
ghc-options: -Wall -Wextra -Wcompat -Wno-partial-type-signatures -Wterm-variable-capture
default-extensions:
RankNTypes
GeneralizedNewtypeDeriving
MultiParamTypeClasses
FunctionalDependencies
FlexibleContexts
FlexibleInstances
UndecidableInstances
GADTs
DeriveFunctor
DerivingStrategies
NoImplicitPrelude
KindSignatures
DataKinds
OverloadedStrings
TypeOperators
LambdaCase
TypeFamilies
OverloadedRecordDot
RecordWildCards
NamedFieldPuns
DuplicateRecordFields
PartialTypeSignatures
DefaultSignatures
StandaloneKindSignatures
NoFieldSelectors
DerivingVia
CPP
StrictData
RequiredTypeArguments
ExplicitNamespaces
library
import: commons
exposed-modules:
Clay.Extra.Grid
Control.Monad.Fork
Control.Monad.Parallel
Control.Monad.State.Delayed.Class
Control.Monad.State.Delayed.Delayer
Control.Monad.State.Delayed.Trans
Control.Monad.State.Prim
Control.Monad.UUID
Data.Foreign
Data.MediaType
Data.NT
DOM.HTML.Indexed
Halogen
Halogen.VDom
Halogen.Data.Slot
Halogen.IO.Driver
Halogen.IO.Driver.Eval
Halogen.IO.Driver.State
Halogen.IO.Util
Halogen.HTML
Halogen.HTML.Core
Halogen.HTML.Elements
Halogen.HTML.Events
Halogen.HTML.Layout
Halogen.HTML.Layout.BorderLayout
Halogen.HTML.Layout.BoxLayout
Halogen.HTML.Layout.GridLayout
Halogen.HTML.Layout.GridBagLayout
Halogen.HTML.Layout.NoLayout
Halogen.HTML.Properties
Halogen.HTML.Properties.ARIA
Halogen.Query
Halogen.Query.ChildQuery
Halogen.Query.Event
Halogen.Query.Input
Halogen.Query.HalogenM
Halogen.Query.HalogenQ
Halogen.VDom.DOM
Halogen.VDom.DOM.Monad
Halogen.VDom.DOM.Prop
Halogen.VDom.Driver
Halogen.VDom.Machine
Halogen.VDom.Utils
Halogen.VDom.Thunk
Halogen.VDom.Types
Halogen.Component
Halogen.Component.Debounced
Halogen.Subscription
Halogen.Portal
Halogen.Svg.Attributes
Halogen.Svg.Elements
Halogen.Svg.Indexed
Web.Clipboard
Web.Clipboard.ClipboardEvent
Web.Clipboard.ClipboardEvent.EventTypes
Web.DOM.Internal.Types
Web.DOM.Element
Web.DOM.ParentNode
Web.Event.Internal.Types
Web.Event.Event
Web.HTML.Common
Web.HTML.Event.DragEvent
Web.HTML.Event.DragEvent.EventTypes
Web.HTML.Event.EventTypes
Web.HTML.HTMLDocument
Web.HTML.HTMLDocument.ReadyState
Web.UIEvent.FocusEvent
Web.UIEvent.FocusEvent.EventTypes
Web.UIEvent.KeyboardEvent
Web.UIEvent.KeyboardEvent.EventTypes
Web.UIEvent.MouseEvent
Web.UIEvent.MouseEvent.EventTypes
Web.UIEvent.PointerEvent
Web.UIEvent.TouchEvent
Web.UIEvent.WheelEvent
Web.UIEvent.WheelEvent.EventTypes
other-modules:
HPrelude
hs-source-dirs: src
if arch(javascript)
js-sources:
jsbits/monad_dom.js
ghc-options: -fexpose-all-unfoldings
-- if flag(trace-dom)
-- jspp-options: -DHALOGEN_TRACE_DOM
executable halogen-core-prototype
import: commons
main-is: Main.hs
build-depends: haskell-halogen-core
hs-source-dirs: app
test-suite Halogen-core-test
import: commons
type: exitcode-stdio-1.0
hs-source-dirs: test
main-is: Test.hs
build-depends: protolude, haskell-halogen-core, hspec