@cinesend/ui-kit

中文文档
0.5.5发布于 2026/11/03MITTypeScriptES Module近 30 天下载 2260

共享反应组件,设计令牌,以及CineSendapps的CSS.

中文使用文档
文档目录7 节
  1. 安装
  2. 从 git 安装
  3. 同伴依赖关系
  4. 数据密集组件
  5. 当地工具包工作
  6. 释放
  7. 用于消耗应用程序的堆栈

CineSend UI 工具包

为 CineSend apps 共享反应组件,令牌和 CSS. 这是 没有 一个应用:没有产品屏幕,没有API呼叫,没有应用逻辑.

发布到 npm 为 @cinesend/ui-kit。 GitHub 重播为 BitCine/cinesend-ui-kit没有 BitCine/ui-kit 复发.

安装

npm install @cinesend/ui-kit
import { Button, TextField } from "@cinesend/ui-kit";
import "@cinesend/ui-kit/styles.css";

样式表是一个单独的切入点, 必须导入一次, 靠近您的应用根 。 它没有被捆绑在联署材料中.

本地开发( 在应用程序旁边加上这个 repo ):

"@cinesend/ui-kit": "file:../cinesend-ui-kit"

从 a 安装 file: 路径服务已建 dist/运行 npm run build 换了装备后再来.

从 git 安装

更古老的路径依然有效

"@cinesend/ui-kit": "github:BitCine/cinesend-ui-kit#staging"

dist/ 没有承诺,所以一个 git 安装通过 prepare 剧本. 这意味着消费者下载了这个包 依赖性,在每一个 npm ci. 预选 npm 释放; 此路径存在, 因此应用程序不会被迫在锁步中迁移 .

同伴依赖关系

应用程序必须提供:

  • react 财务报告和审定财务报表 react-dom (>=18.2 < 20)
  • @phosphor-icons/react ^2.1.10 (中文(简体) )
  • sonner ^2.0.7 (中文(简体) )

运行时间依赖 : @base-ui/react。 。 。 .

数据密集组件

这些工具箱大多是花砖和以文件为导向的,这就是文件与屏幕 需要帮助. Table, (中文(简体) ), Pagination, (中文(简体) ), Badge 页面状态用于数据密集度 内部工具,他们共享一条规则 值得说明一次: 他们描述 页面中包含服务器持有的数据,并永远不要重新解释.

The Table component

排序, 包含行选择和每个单元格中的真实控制, 光和暗:

Table with sorting and selection

The same table in dark mode

  • Table 没有什么 可排序标题报告它想要的种类 结束 onSortChange; 拥有查询答案的人。 交给的行 它是一个更大的一页集, 所以命令它们 在组件 排序页面而不是数据,并不同意两者的总数 下一页 选择被控制 出于同样的原因, 并只覆盖屏幕上的密钥.

    caption 需要: 它是表格的可访问名称,是视觉的 藏起来 没有它,屏幕阅读器宣布"表",没有别的.

    onRowClick 是一个指针快捷键,不是行的唯一路线. 保留行 他们的 row 角色,因此它们不能聚焦,没有被宣布为 控件 —— 在单元格中设置一个真实的链接或按钮并让行 点击复制。 单击从该控件开始的(或任何其他) 行中的交互式元素)不同时运行行快捷键,所以 动作起火一次而不是两次。 显而易见的另一种选择, role="button" 加号 tabIndex 编辑 <tr>,故意避免:它凌驾于 隐含行角色,让每个单元格没有有效的行所有者,断开 屏幕读取器的表格导航,并嵌入选择的复选框 在一个按钮内.

    stickyHeader 需要将高度绑入表根本身,哪个 这是什么 className 用于:

    <Table stickyHeader className="h-[32rem]" … />
    

    不是在包装上. .cs-table 携带 overflow-x,当一个 轴不是 visible 其他计算为 auto 这样啊 .cs-table 这是 最近的滚动容器 。 将包装包捆起来,然后将页头滚动 和桌子一起看的 看上去就像道克一样 工作时.

    虚拟化是故意超出范围的. 每行给定的是 已经完成。 进入高的百分百的空间很舒适, 覆盖一页 管理列表 。 屏幕需要数以万计的一行一行 不同组件, 而不是旗子在此.

  • Pagination 计数,而不是一个响应信封——每个后端 以不同方式拼写其页形, 以及理解一个的组件 框架 meta 是下一个应用在周围工作。 给我 pageSize 财务报告和审定财务报表 onPageSizeChange 用于逐行选择; 更改大小 哪一行在哪一页, 所以回到第一页.

    Pagination with a rows-per-page select

  • TableToolbar 持有 TableSearch, (中文(简体) ), TableSortMenu 财务报告和审定财务报表 TableFilters。 。 。 . 喜欢 Table,它们报告用户要求的,并且不更改行:保留 它们的值位于构建查询的状态,然后在 他们改变.

    Table toolbar with the filters open

    Table toolbar with the sort menu open

  • Badge 使用语义语调,而不是状态. 绘制自己的词汇 进入呼叫站点的五吨位 然后返回 neutral 页:1 任何无法识别的东西, 所以一个不熟悉的状况 仍然显示在比较 而不是掉下来。 (WorkspaceBadge 是装饰性的起首部分,旁边是 工作空间名称; 是 aria-hidden 而不是这个。 )

  • Alert 是一个属于旁边内容的讯息:失败 惟有在表单上方的警告。 这不是页面状态( 使用 EmptyState 或者说 ErrorState 而不是一个敬酒。 错误和警告是 立即宣布, 其余的礼貌.

    Alert tones in light mode

    Alert tones in dark mode

  • ProgressBar 将其值夹到 0- 100 并读取 NaN 作为0,所以 将字节除以尚未到达的总数是安全的. Image 财务报告和审定财务报表 Poster 当图像是时, 以固定比例显示占位符 缺少或未加载, 因此布局不会跳出 .

    Progress bar and image states

  • FileUpload 是一个跳伞区和一个按钮, 仅此而已:它给你 第一个文件被选中或删除,没有网络工作。 运行传输 你自己,然后喂回来 uploading 财务报告和审定财务报表 error。 。 。 . accept 使用输入 属性的语法, 在浏览器没有时也会在跳下时检查 执行它。 没有 Chip: 静态标签为中性 Badge。 。 。 .

    File upload drop zone

  • DonutChart 是普通的SVG 从工具箱的符号中抽取,所以它添加了不 绘制依赖图。 给完成的部分 进展铃声和 剩余 muted,或者离开音符 以崩溃。 负数和 非数值计为零。 它没有徘徊或点击: label 已经告诉屏幕阅读器每个段的值, 以及可选的 因此,传说被隐藏在辅助技术中.

    Donut chart showing progress

    Donut chart breakdown with a legend

  • toUtcDateValue 编号 : fromUtcDateValue 在 UTC 时间戳之间转换 编辑 YYYY-MM-DD 价值 DatePicker 拿着 比较读取协调世界时的日期 而不是本地的 是停止存储的午夜UTC日期显示为 在协调世界时的前一天, 任何人的背后.

  • LoadingState 编号 : EmptyState 编号 : ErrorState 三个,永远不要 一个 "这里什么都没有" "我们找不到"导致相反 行动. ErrorState 使用信件串而不是错误对象 : 将失败变成句子需要知道您 API 的状态代码 用于"晚点再来"与"这个不见了",这是套件无法知道的.

选择 哪个 要显示的状态是呼叫者的工作——这取决于数据 这个工具箱没有意见.

当地工具包工作

节点24(见 .nvmrc(b) —— nvm use 捡起. 构建工具链的需要 节点20.19+或22.12+;在任何更老的建筑物上,建筑物会因混乱而死 node:util 编号 : styleText 模块错误而不是版本投诉.

nvm use
npm install
npm test
npm run catalog:check
npm run catalog

目录 catalog/ 文档此软件包。 这不是文件演示.

释放

出版者: .github/workflows/release.yml 使用 npm 数据 受托出版 (OIDC) (英语). 没有 NPM_TOKEN 机密 — npmjs.com 配置以信任此 repo 的 release.yml 工作流程.

证出已绝( 二publishConfig.provenance) (中文(简体) ). 信任的出版 打开它 默认和 npm 不接受来自私人来源 仓库, (中文(简体) ), 这部《古兰经》是真实的,所以它不能出版。 如果 重金永远公开.

要剪掉释放,碰上 version 内 package.json 作为公关的一部分。 合并为 staging 运行类型检查、测试和构建、发布和标记承诺 v<version>。 。 。 .

一个未撞倒版本的合并不发布任何信息: 工作流程询问 npm 是否该版本存在,如果存在则停止,所以普通合并是 而不是失败的发布 。 推动 v* 手动标记仍然有效 对照 package.json。 。 。 .

用于消耗应用程序的堆栈

反应+Vite. TanStack 查询所有服务器数据 。 不添加原始内容 fetch 编号 : useEffect 数据装入应用程序.

版本与发布记录

@cinesend/ui-kit 共发布 11 个版本,首次发布于 2026/09/26;过去 12 个月发布了 11 个版本。

版本发布日期距今
0.5.5latest2026/11/036 天前
0.5.42026/11/036 天前
0.5.32026/11/036 天前
0.5.22026/11/027 天前
0.5.12026/10/3010 天前
0.5.02026/10/2911 天前

关于 @cinesend/ui-kit 的常见问题

@cinesend/ui-kit 是什么?

共享反应组件,设计令牌,以及CineSendapps的CSS.

如何安装 @cinesend/ui-kit?

在项目目录运行 npm install @cinesend/ui-kit,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(>=18.2 <20)、sonner(^2.0.7)、react-dom(>=18.2 <20)、@phosphor-icons/react(^2.1.10)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@cinesend/ui-kit 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@cinesend/ui-kit 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@cinesend/ui-kit 可以商用吗?

@cinesend/ui-kit 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@cinesend/ui-kit 的下载量有多少?

根据 npm 官方下载统计,@cinesend/ui-kit 在 2026/10/10 – 2026/11/08 这 30 天内被下载 2,260 次,日均约 75 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@cinesend/ui-kit 还在维护吗?

最新版本 0.5.5 发布于 2026/11/03(6 天前);至今共发布 11 个版本,其中过去 12 个月发布了 11 个;首次发布于 2026/09/26。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。