LivaDocsv1.0.112

Dashboard bileşenleri

Dashboard paketi KPI kartları, grafik kapsayıcıları, metrik listeleri, bölüm sekmeleri ve duyarlı yerleşim bileşenleri sunar. Tamamı Livalib tema değişkenlerini kullanır.

import {
  LivaDashboardGrid, LivaDashboardSection, LivaStatCard, LivaChartCard,
  LivaTrendChart, LivaMetricBar, LivaDonutStat, LivaSectionTabs,
} from "@dataliva/livalib";

KPI ve trend

<LivaDashboardSection title="Finansal Özet" description="Son 6 ay">
  <LivaDashboardGrid minColumnWidth={240}>
    <LivaStatCard
      label="Net Satış" value={1_248_500} unit="₺"
      delta="%12,4" trend="up" footnote="Geçen aya göre"
      icon="money" sparkline={[82, 91, 88, 103, 112, 124]}
    />
    <LivaStatCard
      label="Gider" value={640_000} unit="₺"
      delta="%5,1" trend="up" deltaTone="critical"
    />
  </LivaDashboardGrid>
</LivaDashboardSection>

trend yönü, deltaTone ise iş anlamını belirtir. Gider artışı gibi olumsuz bir yükselişte trend="up" ve deltaTone="critical" birlikte kullanılır.

<LivaChartCard title="Aylık Gerçekleşme" subtitle="2026" height={280}>
  <LivaTrendChart
    dataSource={monthlyData}
    argumentField="month"
    series={[
      { valueField: "actual", name: "Gerçekleşen" },
      { valueField: "budget", name: "Bütçe" },
    ]}
  />
</LivaChartCard>

LivaChartCard, loading durumunda iskelet; empty durumunda boş veri mesajı gösterir. LivaTrendChart tek değer ekseni içindir; ölçekleri farklı serileri ayrı grafiklere ayırın.

Dağılım ve oranlar

<LivaMetricBar items={departments} total={totalBudget} showShare sorted maxItems={5} />

<LivaDonutStat
  items={[{ label: "Tamamlanan", value: 72 }, { label: "Kalan", value: 28 }]}
  centerLabel="Tamamlanma" centerValue="%72" legend="bottom"
/>

LivaMetricBar, maxItems sonrasındaki kayıtları Diğer satırında toplar. showShare için total verin. Donut grafikte ikiden fazla seri varsa lejantı açık tutun.

Proplar

Tüm bileşenler ayrıca className ve style alır.

LivaDashboardGrid

PropTipVarsayılan
minColumnWidthnumber240 (bir kolonun sarmadan önceki en küçük genişliği)
columnsnumber— (verilirse minColumnWidth yok sayılır)
gapnumber16
childrenReact.ReactNode

LivaDashboardSection

PropTipVarsayılan
titleReact.ReactNode
descriptionReact.ReactNode
actionsReact.ReactNode— (başlığın sağındaki kontroller)
childrenReact.ReactNode

LivaStatCard

PropTipVarsayılan
labelstring— (zorunlu; kart başlığı, cümle değil)
valuenumber | string | null
unitstring— (değerin sağında küçük punto: "₺", "adet")
formatValue(value: number) => string— (verilmezse yerel sayı biçimi)
deltastring— (verilmezse rozet çizilmez)
trend'up' | 'down' | 'flat'
deltaTone'good' | 'critical' | 'neutral'— (verilmezse trend'ten türetilir)
footnoteReact.ReactNode
iconReact.ReactNode— (DevExtreme ikon adı ya da düğüm)
accentstring— (verilmezse paletin ilk slotu)
sparklinenumber[]— (en az iki nokta gerekir)
loadingbooleanfalse
onClick() => void

LivaChartCard

PropTipVarsayılan
titleReact.ReactNode— (zorunlu)
subtitleReact.ReactNode
actionsReact.ReactNode
footerReact.ReactNode— (grafiğin altındaki lejant/rozet şeridi)
heightnumber | string260 (kartlar arası hizayı korur)
loadingbooleanfalse
emptybooleanfalse
emptyTextReact.ReactNode'Görüntülenecek veri yok'
emptyIconstring'chart'
bodyClassNamestring
childrenReact.ReactNode

LivaTrendChart

PropTipVarsayılan
dataSourcereadonly object[]— (zorunlu)
argumentFieldstring— (zorunlu; X eksenini besleyen alan)
seriesLivaTrendSeries[]— (zorunlu)
type'line' | 'spline' | 'area' | 'splinearea' | 'bar' | 'stackedbar''spline'
rotatedbooleanfalse (çubukları yatay çizer)
heightnumber260
formatValue(value: number) => string
hideValueAxisbooleanfalse

LivaTrendSeries: valueField, name, color?.

LivaMetricBar

PropTipVarsayılan
itemsLivaMetricBarItem[]— (zorunlu)
totalnumber— (verilmezse en büyük değere göre ölçeklenir)
showSharebooleanfalse (total gerektirir)
formatValue(value: number) => string
maxItemsnumber— (kalanı otherLabel satırına katlar)
otherLabelstring'Diğer'
sortedbooleanfalse

LivaMetricBarItem: label, value, color?.

LivaDonutStat

PropTipVarsayılan
itemsLivaDonutStatItem[]— (zorunlu)
centerValueReact.ReactNode— (verilmezse kalemlerin toplamı)
centerLabelReact.ReactNode
formatValue(value: number) => string
sizenumber180
legend'right' | 'bottom' | 'none''none'
palettereadonly string[]— (verilmezse aktif kategorik palet)

LivaDonutStatItem: label, value.

LivaSectionTabs

PropTipVarsayılan
itemsLivaSectionTabItem[]— (zorunlu)
selectedIdstring— (zorunlu)
onSelect(id: string) => void— (zorunlu)
ariaLabelstring
stretchbooleanfalse (sekmeler satırı eşit paylaşır)

LivaSectionTabs içerik render etmez; yalnızca seçilen id'yi yayar ve ok tuşlarıyla gezinmeyi destekler. LivaSectionTabItem: { id, text, icon?, count?, disabled? }.

Palet yardımcıları

useLivaChartPalette() aktif temaya uygun categorical, sequential, surface, gridline, axis ve metin renklerini döndürür. buildChartPalette, categoricalColor, LIVA_CHART_PALETTE_LIGHT, LIVA_CHART_PALETTE_DARK, LIVA_SEQUENTIAL_LIGHT, LIVA_SEQUENTIAL_DARK ve LIVA_STATUS_COLORS da paket kökünden dışa aktarılır.