@edux-design/utils

中文文档
0.1.2发布于 2026/11/01TypeScriptESM + CJS零依赖近 30 天下载 2295

共享 Edux 类组成和 React 儿童助手.

中文使用文档

@ edux- design/ utils

共享 Edux 类组成和 React 儿童助手.

import { cx, filterChildrenByDisplayName, getSlot } from "@edux-design/utils";

cx("p-8 text-sm", condition && "px-24", "text-fg-base");
// p-8 text-sm px-24 text-fg-base

cx("px-24 py-8", "p-16");
// p-16

cx(...inputs) 保留现有的有条件输入合同:字符串,有条件 对象、数字和嵌入的数组; 粗体输入被省略。 然后适用 独立编写 Edux 输入平调器和工具冲突解决器. 也没有 clsx 也没有 tailwind-merge 是一个运行时间或声明的依赖. 平板机对嵌入式阵列使用显式堆放,保存继承 假设对象键,并忽略不支持的原始输入. Cyclic 阵列是无效的输入并抛出而不是无限循环; 支持在不同的位置重新使用数组. 声明接受未知输入,只保留可读的拖曳和值 现在的正态化忽略了而不是引入一个只类型 限制.

其他出口没有变化:

  • filterChildrenByDisplayName(children, displayName) 选择匹配的直接 反应儿童,包括被命名为还原部件.
  • getSlot(children, slotComponent) 返回匹配的直接孩子的内容.

包根需要回放和回放 DOM ^19.1.0 因为它 输出反应儿童助手。 类解析器本身不导入反应或 DOM API和运行在服务器渲染时没有浏览器环球. 无害环境管理、CJS和自有 严格公开声明在一揽子政策中提供。 深度进口不是 a 支持的API.

冲突语义

在同一修饰和重要范围内,最后的效用将因其 声明组。 短手替换为方向性:稍后 p-16 替换 刚才 px-24 py-8,而稍后时间 px-24 保留垂直部分 p-16。 。 。 . 逻辑边缘和物理边缘在写法与模式差异时保持独立 问题。 宽度/高度,字体大小/颜色,边框宽度/颜色,阴影大小/颜色, 梯度停止,过滤器和口罩有单独的声明组.

普通的伪类在选取地段内通勤. 修道士们, 通配符变体和任意选择子变体保持了相对顺序. 两者 !p-4 财务报告和审定财务报表 p-4! 重要和普通的声明 单独的瞄准镜。 任意值、 输入自定义属性、 任意 CSS 属性、负公用设施和现有的 Edux 语义色彩类 承认。 任意的CSS财产与同一财产相冲突,不 猜想它会超越一个无关的普通用途.

保留未知的应用程序和自定义主题类,包括重复 课程。 例如,自定义 animate-drawer-* 财务报告和审定财务报表 cursor-pagination-* 类 不得推断为推翻标准动画/校准公用事业。 解决者 不装入消费者的 Tailwind 配置或检查浏览器样式表. 引入自定义工具名的消费者保留既定默认 cx 而不是去除投机性冲突. 已设定的颜色和字体家族命名空间被故意打开: a bg-custom 例如,名称仍然是一种颜色工具。 未知类别保留 不推翻现有的默认名称空间规则.

相容性包括一个历史重要前缀字体/行-高: !text-lg/8 财务报告和审定财务报表 text-lg/8! 在既定的冲突模式中仍具有独特性. 后缀形式遵循了普通的字体大小/行高分组. 这个可以保留 所接受的先前公共API的产出; 这不是建议 混合重要的语法.

所有权和审定

解析器来自CSS财产关系、Edux要求和 独立的公共黑盒观察. 没有第三方合并执行, 声明或测试代码被读取、复制或翻译。 保留依赖关系 仍然有他们自己的许可条款.

独立接受书涵盖32 757份有条件、遵守和 扩大Tailwind 4 个案例,加上大量/深入的对抗性投入。 它的便携式 存储库和单独记录的可选有效载荷快照是 在验收收据中有所区别。 本地生成的 CSS 定着度比较计算样式、伪元素油漆和测量尺寸 与被接受的公众Utils执行。 见协调员的 docs/original-drag-and-classes/class-acceptance/ 准确候选人的证据 hashes和浏览器覆盖;源诊断不是安装的艺术证据.

拥有的有条件的输入层还设置了边框测试和一个 与普通老消费者的对比:

node packages/utils/test/compare-class-inputs.mjs /absolute/old-utils-consumer

这种比较只履行旧的依赖性的公共职能。 寻常 Utils测试套件不需要安装clsx.

解析器保留了被绑定的 FIFO 缓存:最多500个完整的输入,最多最多 16,384个字符和2,000个分类基号,最多可有1,024个字符. 较大的值在不缓存的情况下解决 。 解析是迭代的, 没有 DOM 订阅、计时器或递归性任意值转录。 基准为: 描述性;极端的一万个案例不是相互作用的暂时性保障.

npm run test --workspace=@edux-design/utils
npm run lint --workspace=@edux-design/utils
npm run check-types --workspace=@edux-design/utils
npm run build --workspace=@edux-design/utils

版本与发布记录

@edux-design/utils 共发布 9 个版本,首次发布于 2025/09/10;过去 12 个月发布了 7 个版本。

版本发布日期距今
0.1.2latest2026/11/0113 天前
0.1.12026/10/3114 天前
0.1.02026/01/0110 个月前
0.0.62025/12/2310 个月前
0.0.52025/12/0911 个月前
0.0.42025/12/0911 个月前

关于 @edux-design/utils 的常见问题

@edux-design/utils 是什么?

共享 Edux 类组成和 React 儿童助手.

如何安装 @edux-design/utils?

在项目目录运行 npm install @edux-design/utils,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(^19.1.0)、react-dom(^19.1.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@edux-design/utils 支持 TypeScript 吗?

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

@edux-design/utils 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@edux-design/utils 可以商用吗?

@edux-design/utils 使用 未声明 许可。package.json 没有声明许可证。没有许可证的代码默认保留全部权利,商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括,不构成法律意见,请以许可原文为准。

@edux-design/utils 的下载量有多少?

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

@edux-design/utils 还在维护吗?

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