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>
322 lines
11 KiB
Zig
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());
|
|
}
|