packages feed

brick-panes 1.0.2.0 → 1.0.3.0

raw patch · 3 files changed

+16/−9 lines, 3 filesdep ~basedep ~brickdep ~microlensPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: base, brick, microlens, vty

API changes (from Hackage documentation)

- Brick.Panes: data PaneState pane appEv
- Brick.Panes: type DrawConstraints pane drwctxt n :: Constraint
- Brick.Panes: type EventConstraints pane evctxt :: Constraint
- Brick.Panes: type EventType pane n appEv
- Brick.Panes: type InitConstraints pane initctxt :: Constraint
- Brick.Panes: type UpdateType pane
+ Brick.Panes: data family PaneState pane appEv
+ Brick.Panes: type family UpdateType pane
- Brick.Panes: addToPanel :: Pane n appev pane => InitConstraints pane (Panel n appev state panes) => DrawConstraints pane (Panel n appev state panes) n => EventConstraints pane (Panel n appev state panes) => DispatchEvent n appev pane (EventType pane n appev) => PaneFocus n -> Panel n appev state panes -> Panel n appev state (pane ': panes)
+ Brick.Panes: addToPanel :: forall n appev pane state (panes :: [Type]). (Pane n appev pane, InitConstraints pane (Panel n appev state panes), DrawConstraints pane (Panel n appev state panes) n, EventConstraints pane (Panel n appev state panes), DispatchEvent n appev pane (EventType pane n appev)) => PaneFocus n -> Panel n appev state panes -> Panel n appev state (pane ': panes)
- Brick.Panes: basePanel :: state -> Panel n appev state '[]
+ Brick.Panes: basePanel :: state -> Panel n appev state ('[] :: [Type])
- Brick.Panes: class PanelOps pane n appev panes s | pane -> n
+ Brick.Panes: class PanelOps pane n appev (panes :: [Type]) s | pane -> n
- Brick.Panes: enteredModal :: forall pane n appev state panes. PanelOps pane n appev panes state => PanelTransition -> Panel n appev state panes -> Bool
+ Brick.Panes: enteredModal :: forall pane n appev state (panes :: [Type]). PanelOps pane n appev panes state => PanelTransition -> Panel n appev state panes -> Bool
- Brick.Panes: exitedModal :: forall pane n appev state panes. PanelOps pane n appev panes state => PanelTransition -> Panel n appev state panes -> Bool
+ Brick.Panes: exitedModal :: forall pane n appev state (panes :: [Type]). PanelOps pane n appev panes state => PanelTransition -> Panel n appev state panes -> Bool
- Brick.Panes: focusRingUpdate :: (Eq n, Ord n) => Lens' (Panel n appev s panes) (FocusRing n) -> Panel n appev s panes -> Panel n appev s panes
+ Brick.Panes: focusRingUpdate :: forall n appev s (panes :: [Type]). (Eq n, Ord n) => Lens' (Panel n appev s panes) (FocusRing n) -> Panel n appev s panes -> Panel n appev s panes
- Brick.Panes: handleFocusAndPanelEvents :: Eq n => Ord n => Lens' (Panel n appev s panes) (FocusRing n) -> Panel n appev s panes -> BrickEvent n appev -> EventM n es (PanelTransition, Panel n appev s panes)
+ Brick.Panes: handleFocusAndPanelEvents :: forall n appev s (panes :: [Type]) es. (Eq n, Ord n) => Lens' (Panel n appev s panes) (FocusRing n) -> Panel n appev s panes -> BrickEvent n appev -> EventM n es (PanelTransition, Panel n appev s panes)
- Brick.Panes: isPanelModal :: Eq n => Ord n => Lens' (Panel n appev s panes) (FocusRing n) -> Panel n appev s panes -> Bool
+ Brick.Panes: isPanelModal :: forall n appev s (panes :: [Type]). (Eq n, Ord n) => Lens' (Panel n appev s panes) (FocusRing n) -> Panel n appev s panes -> Bool
- Brick.Panes: onBaseState :: Lens' (Panel n appev state panes) state
+ Brick.Panes: onBaseState :: forall n appev state (panes :: [Type]) f. Functor f => (state -> f state) -> Panel n appev state panes -> f (Panel n appev state panes)
- Brick.Panes: onPane :: forall pane n appev state panes. PanelOps pane n appev panes state => Lens' (Panel n appev state panes) (PaneState pane appev)
+ Brick.Panes: onPane :: forall pane n appev state (panes :: [Type]). PanelOps pane n appev panes state => Lens' (Panel n appev state panes) (PaneState pane appev)
- Brick.Panes: panelDraw :: forall pane n appev s panes. (DrawConstraints pane (Panel n appev s panes) n, PanelOps pane n appev panes s, Pane n appev pane, Eq n) => Panel n appev s panes -> Maybe (Widget n)
+ Brick.Panes: panelDraw :: forall pane n appev s (panes :: [Type]). (DrawConstraints pane (Panel n appev s panes) n, PanelOps pane n appev panes s, Pane n appev pane, Eq n) => Panel n appev s panes -> Maybe (Widget n)

Files

CHANGELOG.md view
@@ -1,5 +1,9 @@ # Revision history for brick-panes +## 1.0.3.0 -- 2026-01-04++* Bump upper bounds to allow GHC 9.12.+ ## 1.0.2.0 -- 2024-08-30  * Bump upper bounds to allow GHC 9.10.
brick-panes.cabal view
@@ -1,6 +1,6 @@ cabal-version:      3.0 name:               brick-panes-version:            1.0.2.0+version:            1.0.3.0 synopsis:     Panes library for Brick providing composition and isolation for TUI apps. @@ -49,11 +49,11 @@     hs-source-dirs:   src     default-language: Haskell2010     exposed-modules:  Brick.Panes-    build-depends:    base >= 4.13 && < 4.21-                    , brick >= 1.0 && < 2.4+    build-depends:    base >= 4.13 && < 4.22+                    , brick >= 1.0 && < 2.11                     , containers-                    , microlens >= 0.4.11.2 && < 0.5-                    , vty >= 5.35 && < 6.2+                    , microlens >= 0.4.11.2 && < 0.6+                    , vty >= 5.35 && < 6.6  executable mywork-example     import:           settings@@ -70,19 +70,19 @@                       Panes.Summary                       Paths_brick_panes     autogen-modules:  Paths_brick_panes-    build-depends:    base >= 4.13 && < 4.21+    build-depends:    base >= 4.13 && < 4.22                     , brick                     , brick-panes                     , aeson >= 2.0 && < 2.3                     , bytestring                     , containers                     , directory-                    , microlens >= 0.4.11.2 && < 0.5+                    , microlens >= 0.4.11.2 && < 0.6                     , text                     , text-zipper >= 0.12 && < 0.14                     , time                     , vector >= 0.12 && < 0.14-                    , vty >= 5.35 && < 6.2+                    , vty >= 5.35 && < 6.6     if !flag(examples)       buildable: False 
src/Brick/Panes.hs view
@@ -696,13 +696,16 @@               -- no current focus, just use new list               focusSetCurrent n $ focusRing nl             Just e ->-              case L.find ((e ==) . head) $ rotations nl of+              case L.find (maybe False (e ==) . maybeHead) $ rotations nl of                 Just r ->                   focusRing r -- new ring with current element still focused                 Nothing ->                   -- new focus ring doesn't include current focused                   -- element, so just use the new list.                   focusSetCurrent n $ focusRing nl+    maybeHead = \case+      (h:_) -> Just h+      [] -> Nothing   -- | This returns the focusable Widget names for the focus ring, in the 'Ord'