KPI Terminal grid showcase — Bloomberg-style dense panel of KPI tiles.
Tracks _kpi-terminal.scss from @keenmate/pure-admin-core 2.7.1+. The
tile primitive lives in PureAdmin.Components.Kpi.kpi_tile/1; this module
supplies the card chrome (pa-kpi-terminal) and the optional tab strip
that swaps panes (each pane can hold a different tile count + grid).
Usage
Single grid (no tabs) — children are tiles, the wrapper supplies the
pa-kpi-terminal__grid--2col:
<.kpi_terminal title_text="Key Performance Indicators" is_live>
<.kpi_tile id_text="KPI.01" .../>
<.kpi_tile id_text="KPI.02" .../>
</.kpi_terminal>Tabs + panes — :pane slots define each tab. The hook
PureAdminKpiTerminalTabs toggles active tab/pane client-side. Mark one
pane is_active for the initial state (defaults to the first pane).
<.kpi_terminal id="exec-kpis" title_text="Key Performance Indicators" is_live>
<:pane id="overview" label_text="OVERVIEW" is_active>
<.kpi_tile .../>
<.kpi_tile .../>
</:pane>
<:pane id="finance" label_text="FINANCE">
<.kpi_tile .../>
</:pane>
</.kpi_terminal>
Summary
Functions
Attributes
id(:string) - Required when tabs are used (the JS hook needs an id). Defaults tonil.title_text(:string) - Defaults tonil.is_live(:boolean) - Show the LIVE pill (animated green dot) in the header. Defaults tofalse.live_text(:string) - Defaults to"LIVE".footer_text(:string) - Defaults tonil.class(:string) - Defaults tonil.- Global attributes are accepted.
Slots
pane- One pane per tab. When present, the tab strip is rendered. Accepts attributes:id(:string) (required)label_text(:string) (required)tab_class(:string)class(:string)is_active(:boolean)
inner_block- Tile content when not using tabs — wrapped in a singlepa-kpi-terminal__grid--2col.header_controls- Extra controls between the title and the LIVE pill (e.g. custom toolbars).footer- Footer override.