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 +4/−0
- brick-panes.cabal +8/−8
- src/Brick/Panes.hs +4/−1
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'