@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 缺省展示 value,disabled 置灰)。
    • TableColumn:表格列(key 取值字段兼插槽后缀 cell-<key>,align / class 可选)。
    • DialogVariant / ConfirmOptions / AlertOptions / PromptOptions / DialogApi:命令式对话框全套。
    • CharactersConfig:吉祥物主题化参数(颜色 / 舞台 / 动画)。
    • UiMessages:i18n messages 形状;zhCN(缺省)/ en:库带的两套文案,见 useUiLocale。
    • MenuItem:菜单项(右键、下拉、悬停菜单与 XSplitButton 共用),见 ContextMenu。
    • UiColor / ColorProps / colorVariables / PRIMARY_DERIVED_VARIABLES:大色块组件的换色口,见 Tokens → 换色。
    • OverlayActivatorProps / useOverlayActivator:浮层的触发区域、定位目标与挂载位置(XContextMenu / XPopover 共用)。
    • TOOL_GROUP / TOOL_ITEM / TOOL_ITEM_PRIMARY:工具组外观配方,见 Toolbar。
    • ListItemContext / provideListItemContext / useListItemContext:列表把每项状态传给项组件的上下文,见 CardList。
    • UiTheme / UiThemePreference / UseThemeOptions:明暗档的取值与 useTheme 选项。
    • UiSize / UI_SIZE:控件尺寸标尺(mini / small / medium / large / super)。
    • XxxProps:每个导出组件的 props 接口(ButtonProps / TableProps / DialogProps …), 二次封装时交叉进自己的声明或作为分组 props 收一份,见模式。
    • ControlSizeProps / ColorProps:横切的 size / color 能力片段,业务组件 extends 一份即可。

    props 工具

    • filterProps(props, Component):挑出目标组件认识的 props 转发,键清单从组件的运行时 props 声明读,跟着接口自动同步。
    • pickProps(props, keys):按显式键清单挑,filterProps 的底座;转发给非组件目标时用。 配套的 CONTROL_SIZE_PROP_KEYS 是 ControlSizeProps 的运行时键。
    • componentPropKeys(Component):读一个组件声明的 props 键。