类型与工具导出
组件之外的包内导出,全部从 @xwink/ui 主入口拿。响应式那几个(useTheme / useUiLocale /
useDialog)单独成组,见 Composables。
cn(clsx + tailwind-merge)
包内统一 class 合并工具,宿主与组件都用它合并 class:
ts
import { cn } from '@xwink/ui'
const rootClass = cn('base', variant === 'primary' && 'primary', attrs.class)
类型导出
NavMenuItem:导航项(站内入口或外链,external决定新窗口 + 外链角标)。SelectOption:下拉选项(label缺省展示value,disabled置灰)。TableColumn:表格列(key取值字段兼插槽后缀cell-<key>,align/class可选)。DialogVariant/ConfirmOptions/AlertOptions/PromptOptions/DialogApi:命令式对话框全套。CharactersConfig:吉祥物主题化参数(颜色 / 舞台 / 动画)。UiMessages:i18n messages 形状;zhCN:库级默认文案。UiTheme/UiThemePreference/UseThemeOptions:明暗档的取值与useTheme选项。UiSize/UI_SIZE:控件尺寸标尺(mini / small / medium / large / super)。XxxProps:每个导出组件的 props 接口(ButtonProps/TableProps/DialogProps…), 二次封装时交叉进自己的声明或作为分组 props 收一份,见模式。ControlSizeProps:横切的size能力片段,业务组件extends一份即可。
props 工具
filterProps(props, Component):挑出目标组件认识的 props 转发,键清单从组件的运行时 props 声明读,跟着接口自动同步。pickProps(props, keys):按显式键清单挑,filterProps的底座;转发给非组件目标时用。 配套的CONTROL_SIZE_PROP_KEYS是ControlSizeProps的运行时键。componentPropKeys(Component):读一个组件声明的 props 键。