@iap Packages
    Preparing search index...

    Module @iap/ui

    @iap/ui

    基于 Radix UI 原语构建的企业级 React 组件库,支持 tree-shaking——按需引入单个组件时,其余组件不会进入 bundle。

    • 基于 Radix UI 原语,无障碍访问(a11y)开箱即用
    • 所有组件独立模块导出,支持 tree-shaking
    • 完整 TypeScript 类型支持
    • 命令式 API(message.success())与声明式组件(<MessageContainer />)均可使用
    • 零样式耦合,CSS 类名统一使用 iap- 前缀,按需自定义
    pnpm add @iap/ui
    

    peerDependencies:需要 react >= 19react-dom >= 19

    组件 入口 说明
    Message @iap/ui/message 全局轻提示,支持 success / error / warning / info

    全局消息提示,通过命令式 API 触发,自动挂载到 document.body(Radix Portal)。

    在应用根组件挂载 <MessageContainer /> 一次:

    import { MessageContainer } from '@iap/ui'

    export default function App() {
    return (
    <>
    <Router />
    <MessageContainer />
    </>
    )
    }

    在任意位置调用 API:

    import { message } from '@iap/ui'

    message.success('Saved successfully')
    message.error('Request failed')
    message.warning('Please check your input')
    message.info('New version available')
    import { message, clear, remove } from '@iap/ui/message'
    

    显示一条消息,返回消息 id

    const id = message.success('Done', { duration: 5000 })
    
    参数 类型 默认值 说明
    content string 消息内容
    options.duration number 3000 自动关闭时长(ms),0 表示不自动关闭

    手动移除指定消息。

    const id = message.info('Loading...', { duration: 0 })
    // 完成后手动关闭
    message.remove(id)

    清空所有消息。

    细粒度状态操作,通过按需路径引入:

    import { remove, clear, subscribe, getItems } from '@iap/ui/message'

    // 订阅消息队列变更
    const unsubscribe = subscribe((items) => console.log(items))
    // 取消订阅
    unsubscribe()
    import type { MessageType, MessageOptions, MessageItem } from '@iap/ui/message'

    // MessageType = 'success' | 'error' | 'warning' | 'info'

    // MessageOptions
    interface MessageOptions {
    duration?: number
    }

    // MessageItem
    interface MessageItem {
    id: string
    type: MessageType
    content: string
    duration: number
    }

    组件不内置样式,CSS 类名规则如下:

    类名 说明
    .iap-message-container 消息容器(<section>
    .iap-message 单条消息
    .iap-message--success success 类型修饰
    .iap-message--error error 类型修饰
    .iap-message--warning warning 类型修饰
    .iap-message--info info 类型修饰
    .iap-message__icon 图标区域
    .iap-message__content 内容区域
    .iap-message__close 关闭按钮

    也可通过 data-type 属性选择器定制:

    .iap-message[data-type="success"] { border-left: 4px solid green; }
    .iap-message[data-type="error"] { border-left: 4px solid red; }

    只引入 Message 组件时,其他尚未发布的组件不会进入 bundle:

    // 只打包 message 相关代码
    import { message } from '@iap/ui/message'

    CHANGELOG.md