@flare-engine/ui (英语)
用于HUD,菜单,模式的无线UI工具箱—— Panel, (中文(简体) ), Button, (中文(简体) ), Label, (中文(简体) ), List, (中文(简体) ), Modal, (中文(简体) ), HUDBar, (中文(简体) ), ProgressBar附加时 DialoguePanel, (中文(简体) ), MainMenuKit 高级组件. ThemeProvider 注入设计标志; FocusProvider + 键 FocusManager 驱动焦点导航; createFocusKeyboardDriver 将线箭头/Tab/Enter/Space接入管理器(游戏板驱动程序待决); resolveLayout 是一个纯弹性的布局解析器。 一个商店列表的船只在 @flare-engine/ui-shop,接线到 @flare-engine/iap。 。 。 .
入境点
.(默认) ——全包:组件,主题,焦点,布局. 在模块范围进行原始反应../focus——无RN焦点核心:createFocusManager+ 键createFocusKeyboardDriver及其种类(续)FocusManager, (中文(简体) ),FocusManagerOptions, (中文(简体) ),FocusNode, (中文(简体) ),FocusKeyboardDriver, (中文(简体) ),FocusKeyboardDriverOptions, (中文(简体) ),FocusKeySource。没有反应或反应原生导入,因此安全bun test和节点牵引..再出口相同名称.
安装
bun add @flare-engine/ui
端点 : react, (中文(简体) ), react-native。 。 。 .
使用量
import { ThemeProvider, FocusProvider, Panel, Button, Label, darkTheme } from '@flare-engine/ui';
function PauseMenu({ onResume }: { onResume: () => void }) {
return (
<ThemeProvider theme={darkTheme}>
<FocusProvider>
<Panel variant="elevated">
<Label variant="lg">Pause</Label>
<Button variant="primary" label="Resume" onPress={onResume} />
</Panel>
</FocusProvider>
</ThemeProvider>
);
}
键盘导航
import { createFocusManager, createFocusKeyboardDriver, type FocusKeySource } from '@flare-engine/ui/focus';
// keys is any { wasPressed(code: string): boolean } — createKeyboard() from
// @flare-engine/input is structurally assignable, no hard dependency required.
declare const keys: FocusKeySource;
const manager = createFocusManager();
const driver = createFocusKeyboardDriver(manager, keys);
// per-frame game loop:
driver.update(); // ArrowDown/ArrowRight/Tab → next, ArrowUp/ArrowLeft → prev, Enter/Space → activate
见 API 规格。 。 。 .
测试
这个 . 输入负载 react-native 模块范围,以及 react-native 条目文件是 Flow 源代码不解析, 因此导入到下面 bun test 需求 4 mock.module 支点( 秒)react, (中文(简体) ), react/jsx-runtime, (中文(简体) ), react/jsx-dev-runtime, (中文(简体) ), react-native) (中文(简体) ). ./focus 没有。 积分 负载订单规则 以及一个有效的断言: 在包子测试下测试ui和ui-shop。 。 。 .
许可证
阿帕奇 - 2.0