// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.

mod bar_chart;
mod candlestick_chart;
mod canvas;
mod color;
mod common;
mod component;
#[cfg(feature = "image-encoder")]
mod encoder;
mod font;
mod heatmap_chart;
mod horizontal_bar_chart;
mod line_chart;
mod multi_chart;
mod params;
mod path;
mod pie_chart;
mod radar_chart;
mod scatter_chart;
mod table_chart;
mod theme;
mod util;

pub use bar_chart::BarChart;
pub use canvas::Canvas;
pub use canvas::Error as CanvasError;
pub use canvas::Result as CanvasResult;
pub use color::*;
pub use common::*;
pub use component::{
    Axis, Circle, Grid, Legend, LegendCategory, Line, Pie, Polygon, Polyline, Rect, SmoothLine,
    SmoothLineFill, StraightLine, StraightLineFill, Text,
};
#[cfg(feature = "image-encoder")]
pub(crate) use encoder::get_or_init_fontdb;
#[cfg(feature = "image-encoder")]
pub use encoder::Error as EncoderError;
#[cfg(feature = "image-encoder")]
pub use encoder::*;

pub use candlestick_chart::CandlestickChart;
pub use font::Error as FontError;
pub use font::{
    get_font, get_font_families, get_or_try_init_fonts, measure_text_width_family,
    DEFAULT_FONT_DATA, DEFAULT_FONT_FAMILY,
};
pub use heatmap_chart::{HeatmapChart, HeatmapData, HeatmapSeries};
pub use horizontal_bar_chart::HorizontalBarChart;
pub use line_chart::LineChart;
pub use multi_chart::{ChildChart, MultiChart};
pub use path::*;
pub use pie_chart::PieChart;
pub use radar_chart::{RadarChart, RadarIndicator};
pub use scatter_chart::ScatterChart;
pub use table_chart::{TableCellStyle, TableChart};
pub use theme::Theme;
pub use theme::{add_theme, get_theme, list_theme_name, THEME_ANT, THEME_DARK, THEME_GRAFANA};
pub use util::*;
