Files
esengine/packages/ui/src/index.ts

117 lines
2.8 KiB
TypeScript
Raw Normal View History

/**
* @esengine/ui - ECS-based UI System
*
* ECS UI WebGL
* ECS-based UI system with WebGL rendering support
*
* @example
* ```typescript
* import { UIBuilder, UILayoutSystem, UIInputSystem, UIAnimationSystem } from '@esengine/ui';
*
* // 创建 UI Scene
* const uiScene = world.createScene('ui');
*
* // 添加 UI 系统
* uiScene.addSystem(new UILayoutSystem());
* uiScene.addSystem(new UIInputSystem());
* uiScene.addSystem(new UIAnimationSystem());
*
* // 使用 UIBuilder 创建元素
* const ui = new UIBuilder(uiScene);
*
* const button = ui.button({
* x: 100, y: 100,
* width: 120, height: 40,
* label: 'Click Me',
* onClick: () => console.log('Clicked!')
* });
*
* const progressBar = ui.progressBar({
* x: 100, y: 160,
* width: 200, height: 20,
* value: 75,
* maxValue: 100
* });
* ```
*/
// Components - Core
export {
UITransformComponent,
AnchorPreset
} from './components/UITransformComponent';
export {
UIRenderComponent,
UIRenderType,
type UIBorderStyle,
type UIShadowStyle
} from './components/UIRenderComponent';
export {
UIInteractableComponent,
type UICursorType
} from './components/UIInteractableComponent';
export {
UITextComponent,
type UITextAlign,
type UITextVerticalAlign,
type UITextOverflow,
type UIFontWeight
} from './components/UITextComponent';
export {
UILayoutComponent,
UILayoutType,
UIJustifyContent,
UIAlignItems,
type UIPadding
} from './components/UILayoutComponent';
// Components - Widgets
export {
UIButtonComponent,
type UIButtonStyle,
type UIButtonDisplayMode
} from './components/widgets/UIButtonComponent';
export {
UIProgressBarComponent,
UIProgressDirection,
UIProgressFillMode
} from './components/widgets/UIProgressBarComponent';
export {
UISliderComponent,
UISliderOrientation
} from './components/widgets/UISliderComponent';
export {
UIScrollViewComponent,
UIScrollbarVisibility
} from './components/widgets/UIScrollViewComponent';
// Systems
export { UILayoutSystem } from './systems/UILayoutSystem';
export { UIInputSystem, MouseButton, type UIInputEvent } from './systems/UIInputSystem';
export { UIAnimationSystem, Easing, type EasingFunction, type EasingName } from './systems/UIAnimationSystem';
export { UIRenderDataProvider, type UIRenderData } from './systems/UIRenderDataProvider';
// Rendering
export { WebGLUIRenderer } from './rendering/WebGLUIRenderer';
export { TextRenderer, type TextMeasurement, type TextRenderOptions } from './rendering/TextRenderer';
// Builder API
export {
UIBuilder,
type UIBaseConfig,
type UIButtonConfig,
type UITextConfig,
type UIImageConfig,
type UIProgressBarConfig,
type UISliderConfig,
type UIPanelConfig,
type UIScrollViewConfig
} from './UIBuilder';