同一套组件,构建这个网站和你的应用。
73 个原创组件,统一的属性、事件、主题与生命周期。原生 HTML、基础组件不需安装依赖,Chart 按需加载本地 ECharts,可在服务端渲染,也可直接挂载到浏览器。
从本地包开始
当前源码位于私有仓库。本地安装后即可使用,不需要访问公开包仓库。
npm install ~/Codes/UI/packages/ui@import '@sofish/ui/styles.css';import { mount } from '@sofish/ui/browser';
const approval = mount(document.querySelector('#example'), 'approval', {
title: '允许导出报告?',
description: '导出前确认范围,应用负责执行操作。',
approveLabel: '允许导出'
});
approval.element.addEventListener('ui:decision', ({ detail }) => {
console.log(detail.value); // approved | rejected
});允许导出这份报告?
这是组件系统中的同一个 Approval。你的应用监听决定,再执行操作。
等待你的决定
属性、事件和生命周期
mount(host, name, props) 返回 element、update(partialProps) 和 destroy()。更新会重新渲染;销毁会释放监听器、计时器和媒体资源。事件名称统一为 ui:*,数据在 event.detail.value。
服务端使用 renderComponent(name, props),浏览器调用 hydrate(container)。同一实例重复 hydrate 不会重复绑定。函数适配器通过 mount 传入,不写进 HTML。
通过 CSS 变量定制主题;在祖先上设置 data-mode="dark" 切换深色。目录、详情与对比中的预览均可直接操作。状态按钮通过公开属性更新组件,重置会恢复初始数据。包的 compact: true 仍用于明确不可操作的缩略图,网站预览不使用此选项。
AI 与媒体连接到你的服务
Stream 接收异步可迭代数据源,Voice Recorder 在用户点击后请求麦克风,Live Session 接收可取消的连接适配器。网站中的语音示例显式使用 demo 模式,不访问设备或建立外部连接。UI 不内置模型服务、上传后端或执行权限;审批事件由应用验证后执行。
生成式 UI 只接受已注册的组件名称和结构化属性,不执行生成代码。虚拟列表使用固定行高;网格支持排序、单元格编辑和键盘导航,不声称覆盖大型电子表格的全部功能。
73 个组件,同一个入口
conversation2 个属性message3 个属性code3 个属性composer7 个属性stream5 个属性tool5 个属性plan1 个属性sources1 个属性approval6 个属性questionnaire7 个属性artifact6 个属性agents1 个属性history11 个属性error5 个属性navigation3 个属性form3 个属性select6 个属性table3 个属性timeline1 个属性alert4 个属性dialog4 个属性upload6 个属性command3 个属性empty4 个属性button7 个属性text-input17 个属性textarea17 个属性checkbox6 个属性radio6 个属性switch5 个属性combobox17 个属性tooltip2 个属性popover5 个属性drawer4 个属性tabs3 个属性accordion1 个属性breadcrumb2 个属性pagination5 个属性menu2 个属性context-menu3 个属性tree2 个属性virtual-list7 个属性data-grid4 个属性date-picker16 个属性calendar4 个属性slider16 个属性color-picker16 个属性toggle-group7 个属性toast4 个属性skeleton2 个属性progress3 个属性avatar2 个属性badge3 个属性card5 个属性splitter7 个属性tag-input8 个属性number-input16 个属性rating5 个属性carousel2 个属性reasoning4 个属性suggestions4 个属性message-actions7 个属性branches4 个属性voice-recorder9 个属性waveform3 个属性audio-player8 个属性transcription8 个属性live-session8 个属性model-selector6 个属性tool-selector6 个属性generative-ui4 个属性chart9 个属性icon5 个属性