@xwink/ui

类型与工具导出

组件之外的包内导出,全部从 @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 缺省展示 valuedisabled 置灰)。
  • 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_KEYSControlSizeProps 的运行时键。
  • componentPropKeys(Component):读一个组件声明的 props 键。