zcatgui/src/widgets/widgets.zig
reugenio bb5b201203 feat: zcatgui v0.11.0 - Phase 5 Data Visualization
New Widgets (3):

Canvas - Drawing primitives widget
- Point, fillRect, strokeRect, line, text
- fillCircle, strokeCircle (Bresenham algorithm)
- fillArc, fillTriangle (scanline fill)
- strokePolygon, fillRoundedRect
- horizontalGradient, verticalGradient
- Color interpolation (lerpColor)

Chart - Data visualization widgets
- LineChart: Points, grid, axis labels, fill under line
- BarChart: Vertical bars, value display, labels
- PieChart: Slices with colors, donut mode
- DataPoint and DataSeries for multi-series
- 8-color default palette
- Scanline fill for triangles and quads

Icon - Vector icon system (60+ icons)
- Size presets: small(12), medium(16), large(24), xlarge(32)
- Categories: Navigation, Actions, Files, Status, UI, Media
- Stroke-based drawing with configurable thickness
- All icons resolution-independent

Widget count: 34 widget files
All tests passing

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 13:37:27 +01:00

322 lines
11 KiB
Zig

//! Widgets - All widget modules
//!
//! This module re-exports all widgets for convenient access.
const std = @import("std");
// =============================================================================
// Widget modules
// =============================================================================
pub const label = @import("label.zig");
pub const button = @import("button.zig");
pub const text_input = @import("text_input.zig");
pub const checkbox = @import("checkbox.zig");
pub const select = @import("select.zig");
pub const list = @import("list.zig");
pub const focus = @import("focus.zig");
pub const table = @import("table.zig");
pub const split = @import("split.zig");
pub const panel = @import("panel.zig");
pub const modal = @import("modal.zig");
pub const autocomplete = @import("autocomplete.zig");
pub const slider = @import("slider.zig");
pub const scroll = @import("scroll.zig");
pub const menu = @import("menu.zig");
pub const tabs = @import("tabs.zig");
pub const radio = @import("radio.zig");
pub const progress = @import("progress.zig");
pub const tooltip = @import("tooltip.zig");
pub const toast = @import("toast.zig");
pub const textarea = @import("textarea.zig");
pub const tree = @import("tree.zig");
pub const badge = @import("badge.zig");
pub const img = @import("image.zig");
pub const reorderable = @import("reorderable.zig");
pub const colorpicker = @import("colorpicker.zig");
pub const datepicker = @import("datepicker.zig");
pub const numberentry = @import("numberentry.zig");
pub const richtext = @import("richtext.zig");
pub const breadcrumb = @import("breadcrumb.zig");
pub const canvas = @import("canvas.zig");
pub const chart = @import("chart.zig");
pub const icon = @import("icon.zig");
// =============================================================================
// Re-exports for convenience
// =============================================================================
// Label
pub const Label = label;
pub const Alignment = label.Alignment;
pub const LabelConfig = label.LabelConfig;
// Button
pub const Button = button;
pub const ButtonConfig = button.ButtonConfig;
pub const Importance = button.Importance;
// TextInput
pub const TextInput = text_input;
pub const TextInputState = text_input.TextInputState;
pub const TextInputConfig = text_input.TextInputConfig;
pub const TextInputResult = text_input.TextInputResult;
// Checkbox
pub const Checkbox = checkbox;
pub const CheckboxConfig = checkbox.CheckboxConfig;
// Select
pub const Select = select;
pub const SelectState = select.SelectState;
pub const SelectConfig = select.SelectConfig;
pub const SelectResult = select.SelectResult;
// List
pub const List = list;
pub const ListState = list.ListState;
pub const ListConfig = list.ListConfig;
pub const ListResult = list.ListResult;
// Focus
pub const Focus = focus;
pub const FocusManager = focus.FocusManager;
pub const FocusRing = focus.FocusRing;
// Table
pub const Table = table;
pub const TableState = table.TableState;
pub const TableConfig = table.TableConfig;
pub const TableColors = table.TableColors;
pub const TableResult = table.TableResult;
pub const Column = table.Column;
pub const ColumnType = table.ColumnType;
pub const RowState = table.RowState;
pub const SortDirection = table.SortDirection;
pub const ValidationResult = table.ValidationResult;
pub const CellValidateFn = table.CellValidateFn;
// Split
pub const Split = split;
pub const SplitState = split.SplitState;
pub const SplitConfig = split.SplitConfig;
pub const SplitResult = split.SplitResult;
pub const SplitDirection = split.Direction;
// Panel
pub const Panel = panel;
pub const PanelState = panel.PanelState;
pub const PanelConfig = panel.PanelConfig;
pub const PanelColors = panel.PanelColors;
pub const PanelResult = panel.PanelResult;
// Modal
pub const Modal = modal;
pub const ModalState = modal.ModalState;
pub const ModalConfig = modal.ModalConfig;
pub const ModalColors = modal.ModalColors;
pub const ModalResult = modal.ModalResult;
pub const ModalButton = modal.ModalButton;
pub const ButtonSet = modal.ButtonSet;
// AutoComplete
pub const AutoComplete = autocomplete;
pub const AutoCompleteState = autocomplete.AutoCompleteState;
pub const AutoCompleteConfig = autocomplete.AutoCompleteConfig;
pub const AutoCompleteColors = autocomplete.AutoCompleteColors;
pub const AutoCompleteResult = autocomplete.AutoCompleteResult;
pub const MatchMode = autocomplete.MatchMode;
// Slider
pub const Slider = slider;
pub const SliderState = slider.SliderState;
pub const SliderConfig = slider.SliderConfig;
pub const SliderColors = slider.SliderColors;
pub const SliderResult = slider.SliderResult;
pub const SliderOrientation = slider.Orientation;
// Scroll
pub const Scroll = scroll;
pub const ScrollbarState = scroll.ScrollbarState;
pub const ScrollbarConfig = scroll.ScrollbarConfig;
pub const ScrollbarColors = scroll.ScrollbarColors;
pub const ScrollbarResult = scroll.ScrollbarResult;
pub const ScrollAreaState = scroll.ScrollAreaState;
pub const ScrollAreaConfig = scroll.ScrollAreaConfig;
pub const ScrollAreaColors = scroll.ScrollAreaColors;
pub const ScrollAreaResult = scroll.ScrollAreaResult;
pub const ScrollOrientation = scroll.Orientation;
// Menu
pub const Menu = menu;
pub const MenuState = menu.MenuState;
pub const MenuBarState = menu.MenuBarState;
pub const MenuItem = menu.MenuItem;
pub const MenuItemType = menu.MenuItemType;
pub const MenuDef = menu.MenuDef;
pub const MenuConfig = menu.MenuConfig;
pub const MenuColors = menu.MenuColors;
pub const MenuResult = menu.MenuResult;
pub const MenuBarResult = menu.MenuBarResult;
// Tabs
pub const Tabs = tabs;
pub const TabsState = tabs.TabsState;
pub const Tab = tabs.Tab;
pub const TabsConfig = tabs.TabsConfig;
pub const TabsColors = tabs.TabsColors;
pub const TabsResult = tabs.TabsResult;
pub const TabPosition = tabs.TabPosition;
// Radio
pub const Radio = radio;
pub const RadioOption = radio.RadioOption;
pub const RadioState = radio.RadioState;
pub const RadioConfig = radio.RadioConfig;
pub const RadioColors = radio.RadioColors;
pub const RadioResult = radio.RadioResult;
pub const RadioDirection = radio.Direction;
// Progress
pub const Progress = progress;
pub const ProgressBarConfig = progress.BarConfig;
pub const ProgressBarStyle = progress.BarStyle;
pub const ProgressBarResult = progress.BarResult;
pub const ProgressCircleConfig = progress.CircleConfig;
pub const ProgressCircleResult = progress.CircleResult;
pub const SpinnerConfig = progress.SpinnerConfig;
pub const SpinnerStyle = progress.SpinnerStyle;
pub const SpinnerState = progress.SpinnerState;
pub const SpinnerResult = progress.SpinnerResult;
// Tooltip
pub const Tooltip = tooltip;
pub const TooltipState = tooltip.State;
pub const TooltipConfig = tooltip.Config;
pub const TooltipColors = tooltip.Colors;
pub const TooltipResult = tooltip.Result;
pub const TooltipPosition = tooltip.Position;
// Toast
pub const Toast = toast;
pub const ToastManager = toast.Manager;
pub const ToastType = toast.ToastType;
pub const ToastConfig = toast.Config;
pub const ToastColors = toast.Colors;
pub const ToastPosition = toast.Position;
pub const ToastResult = toast.ToastResult;
// TextArea
pub const TextArea = textarea;
pub const TextAreaState = textarea.TextAreaState;
pub const TextAreaConfig = textarea.TextAreaConfig;
pub const TextAreaColors = textarea.TextAreaColors;
pub const TextAreaResult = textarea.TextAreaResult;
// Tree
pub const Tree = tree;
pub const TreeNode = tree.TreeNode;
pub const TreeState = tree.TreeState;
pub const TreeConfig = tree.TreeConfig;
pub const TreeColors = tree.TreeColors;
pub const TreeResult = tree.TreeResult;
pub const NodeId = tree.NodeId;
// Badge
pub const Badge = badge;
pub const BadgeVariant = badge.Variant;
pub const BadgeSize = badge.Size;
pub const BadgeConfig = badge.Config;
pub const BadgeColors = badge.Colors;
pub const BadgeResult = badge.Result;
pub const Tag = badge.Tag;
pub const TagGroupConfig = badge.TagGroupConfig;
pub const TagGroupResult = badge.TagGroupResult;
// Image
pub const Image = img;
pub const ImageData = img.ImageData;
pub const ImageFormat = img.Format;
pub const ImageFit = img.Fit;
pub const ImageAlignment = img.Alignment;
pub const ImageConfig = img.Config;
pub const ImageResult = img.Result;
pub const ImageCache = img.ImageCache;
pub const CachedImage = img.CachedImage;
// Reorderable
pub const Reorderable = reorderable;
pub const ReorderableState = reorderable.State;
pub const ReorderableConfig = reorderable.Config;
pub const ReorderableColors = reorderable.Colors;
pub const ReorderableResult = reorderable.Result;
// ColorPicker
pub const ColorPicker = colorpicker;
pub const ColorPickerState = colorpicker.State;
pub const ColorPickerMode = colorpicker.Mode;
pub const ColorPickerConfig = colorpicker.Config;
pub const ColorPickerColors = colorpicker.Colors;
pub const ColorPickerResult = colorpicker.Result;
// DatePicker
pub const DatePicker = datepicker;
pub const Date = datepicker.Date;
pub const DatePickerState = datepicker.State;
pub const DatePickerConfig = datepicker.Config;
pub const DatePickerColors = datepicker.Colors;
pub const DatePickerResult = datepicker.Result;
// NumberEntry
pub const NumberEntry = numberentry;
pub const NumberEntryState = numberentry.State;
pub const NumberType = numberentry.NumberType;
pub const NumberEntryConfig = numberentry.Config;
pub const NumberEntryColors = numberentry.Colors;
pub const NumberEntryResult = numberentry.Result;
// RichText
pub const RichText = richtext;
pub const TextStyle = richtext.TextStyle;
pub const TextSpan = richtext.TextSpan;
pub const RichTextConfig = richtext.Config;
pub const RichTextColors = richtext.Colors;
pub const RichTextResult = richtext.Result;
pub const TextAlignment = richtext.Alignment;
// Breadcrumb
pub const Breadcrumb = breadcrumb;
pub const BreadcrumbItem = breadcrumb.Item;
pub const BreadcrumbConfig = breadcrumb.Config;
pub const BreadcrumbColors = breadcrumb.Colors;
pub const BreadcrumbResult = breadcrumb.Result;
// Canvas
pub const Canvas = canvas.Canvas;
pub const CanvasPoint = canvas.Point;
// Chart
pub const Chart = chart;
pub const DataPoint = chart.DataPoint;
pub const DataSeries = chart.DataSeries;
pub const LineChartConfig = chart.LineChartConfig;
pub const LineChartColors = chart.LineChartColors;
pub const BarChartConfig = chart.BarChartConfig;
pub const BarChartColors = chart.BarChartColors;
pub const PieChartConfig = chart.PieChartConfig;
pub const PieChartColors = chart.PieChartColors;
// Icon
pub const Icon = icon;
pub const IconType = icon.IconType;
pub const IconSize = icon.Size;
pub const IconConfig = icon.Config;
pub const IconColors = icon.Colors;
// =============================================================================
// Tests
// =============================================================================
test {
std.testing.refAllDecls(@This());
}