量子组件
构成部分表
该软件包将每个被记录的组件作为静态数据发布于
@ctrliq/quantic-components/meta.json时生成 static meta
宣告每个组件。 这是普通的JSON,没有运行时间进口和装载机:
const manifest = require('@ctrliq/quantic-components/meta.json');
{
"schemaVersion": 1,
"generated": "2026-08-25T00:00:00.000Z",
"components": [
{
"tag": "quantic-dialog",
"description": "Modal overlay dialog with focus trap ...",
"category": "feedback",
"props": [
{
"name": "open",
"description": "Whether the dialog is visible.",
"type": "boolean",
"default": "false"
}
],
"events": [{ "name": "after-close", "description": "Fired after the dialog closes ..." }],
"slots": [{ "name": "trigger", "description": "Element that opens the dialog when clicked." }],
"examples": ["<quantic-dialog> ... </quantic-dialog>"],
"relatedTo": ["quantic-button"],
"avoidWhen": [
{
"when": "the dialog only confirms a destructive action",
"useInstead": "quantic-confirm-dialog"
}
],
"accessibility": {
"providedByComponent": ["focus trap, restore on close, Escape to dismiss"],
"requiredFromConsumer": ["a title, via quantic-dialog-title or aria-label"]
},
"subComponents": ["quantic-dialog-title", "quantic-dialog-actions"]
}
]
}
道具、槽和事件是带有 name,则省去空字段.
没有东西被过滤: 转发的本地事件包含并标出, 所以消费者
决定是否关心。 处理缺失 meta.json 作为“此安装早于
而不是一个错误.
文件层
meta.json 整个的表象和太大的 无法放在上下文, 所以,一揽子
出版逐步公布的层次,由 scripts/gen-llms.ts数字 :
| 导出 | 这是什么 |
|---|---|
@ctrliq/quantic-components/llms.txt | 指数:如何安装,每个组件一行 |
@ctrliq/quantic-components/llms/{category}-components.md | 每个类别一个文件 |
@ctrliq/quantic-components/llms/components/{tag}.md | 每个组件、道具、插槽、事件和实例一个文件 |
读取索引,然后是分类,然后是组件。 每个文件解析来自
node_modules 在已安装的版本中, 所以没有网络呼叫, 没有
服务器可以服务一个与已安装的软件包不一致的版本.
该指数带有安装和接线步骤,取自
docs/getting-started.md 而不是重报,因为正确命名组件是
无效, 无法知道要安装什么 和要装入哪个样式表 .
故事本将同样的字节复制到它的 public/ 让他们在 /llms.txt, (中文(简体) ), /llms/**
财务报告和审定财务报表 /components.json。软件包是生产者;应用程序是消费者.
字段
除了别的事 tag, (中文(简体) ), description 财务报告和审定财务报表 category 是可选的,在未设定时省略,
所以读者必须将缺席视为"未说明"而非默认.
| 外地 | 类型 | 它携带着什么 |
|---|---|---|
tag | 字符串 | 自定义元素名称 。 反应包装器的名字是它的纸箱. |
description | 字符串 | 一句或数句. 仅在生成的索引中使用了第一句. |
category | 语句 | action, (中文(简体) ), form, (中文(简体) ), display, (中文(简体) ), layout, (中文(简体) ), feedback, (中文(简体) ), navigation 或者说 data。 。 。 . |
props | 数组 | 每一个 name, (中文(简体) ), type,可选择 description, (中文(简体) ), options, (中文(简体) ), default, (中文(简体) ), required, (中文(简体) ), copyRule。 。 。 . |
slots | 数组 | 每一个 name 财务报告和审定财务报表 description,可选择 required, (中文(简体) ), copyRule。默认槽有 name: ""。 。 。 . |
events | 数组 | 每一个 name,可选择 description, (中文(简体) ), detail, (中文(简体) ), forwarded。 。 。 . |
examples | 字符串 [] | Markup,取自"故事集"中建构时间的故事而不是手写. |
relatedTo | 字符串 [] | 邻居的标签。 说他们有亲戚关系,不是选择哪一个. |
avoidWhen | 数组 | 什么时候才能找到别的东西 每个条目都有 when,以及 useInstead 当有替代名称时. useInstead 当选项是组件时持有标签,如果不是,则使用旁白,因为答案有时是样式表. |
accessibility | 对象 | providedByComponent 是组件实施的行为,所以消费者不得重新实施. requiredFromConsumer 它不能为自己提供的东西,例如一个无障碍的名称. |
ascii | 字符串 | 元件解剖学图. |
experimental | 布尔 | API可以在未成年人中更改或去除. 缺勤意味着得到支持。 见 rules/promotion.md。 。 。 . |
deprecated | 对象 | use 命名替换, reason 说为什么. |
subComponentOf | 字符串 | 父母的这个元素是解剖学的,只有在孩子独自惰性时才设定. |
subComponents | 字符串 [] | 从孩子们那里得到的 subComponentOf,所以两者永远不能不同意. |
复制规则
握有 user-face 文本载体的道具或插槽 copyRule,指向
将表上船只编为顶级 copyRules数字 :
{
"copyRules": {
"action-label": {
"rule": "Verb phrase naming what happens, specific enough to act on without the surrounding text.",
"good": ["Delete project", "Restart node"],
"avoid": ["OK", "Yes", "Submit", "Continue"]
}
},
"components": [
{
"tag": "quantic-confirm-dialog",
"props": [{ "name": "confirmText", "type": "string", "copyRule": "action-label" }]
}
]
}
参考内容是使规则保持一致。 占位人的措辞规则是:
6个输入相同,所以它被一次并指出6次而不是复制
然后左转去漂流 规则以文本的工作命名,而不是以组件命名
它携带它, 这就是为什么一个 placeholder 规则为所有人服务.
编号为: CopyRuleId 内 src/shared/copy-rules.ts,因此一个组件引用 a
不存在的规则是一个编译错误,而不是在
已公布数据。 无法找到身份证明的读者 只能说
打印身份证.
copyRule 只有在措辞错误是真正失败的情况下才被设定,即标签,
标题、信息和占位符。 多数道具没有带道具. 一个 ariaLabel 道具
永远不要:一个可访问的名称是一个可访问性要求,所以它属于
accessibility.requiredFromConsumer。 。 。 .
版本
schemaVersion 当一个现有读取器可能断开时被撞出:一个已删除或更名的字段,
类型已改变,或含义已改变。 添加可选字段不会碰上它,因为
忽略字段的读取器不受影响,所以工具化必须容忍键它不会
承认而不是拒绝该文件。 拒绝 a schemaVersion 你却不知道.
图标
Per-icon元素在图书馆的其余部分注册,所以
<quantic-icon-lucide-rocket> 在软件包的切入点以外不需要任何信息 :
import '@ctrliq/quantic-components/register';
@ctrliq/quantic-components/icons 是以名称为基础的单独、 选入条目
寻找, <quantic-icon name="Rocket">它将每一个Lucide glyph 都刻入了一个运行时的名称
可以解析, 大约为 1 MB , 且它不在软件包的切入点
理由,你觉得呢? 偏好使用平角元素,除非名称只在运行时才真正为人所知.
推荐的工具
(升-插) [https://marketplace.visiterstudio.com/items? itemName=runem.lit-plugin 互联网档案馆的存檔,存档日期2013-12-20(VS代码)