@kernel4632/kima 0.0.0-stage → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (168) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +166 -2
  3. package/dist/THIRD_PARTY_NOTICES.txt +2676 -0
  4. package/dist/kima-elements-core.js +53209 -0
  5. package/dist/kima-elements.js +126371 -0
  6. package/dist/kima-theme.js +1583 -0
  7. package/dist/kima.js +141 -0
  8. package/dist/style.css +2 -0
  9. package/dist/vue/_virtual/_plugin-vue_export-helper.js +7 -0
  10. package/dist/vue/components/advanced-input/calendar.ce.js +216 -0
  11. package/dist/vue/components/advanced-input/date-range-picker.ce.js +224 -0
  12. package/dist/vue/components/advanced-input/editable.ce.js +160 -0
  13. package/dist/vue/components/advanced-input/mention.ce.js +181 -0
  14. package/dist/vue/components/advanced-input/range-slider.ce.js +111 -0
  15. package/dist/vue/components/advanced-input/time-range-picker.ce.js +120 -0
  16. package/dist/vue/components/advanced-input/transfer.ce.js +192 -0
  17. package/dist/vue/components/content/chart.ce.js +282 -0
  18. package/dist/vue/components/content/code-editor.ce.js +309 -0
  19. package/dist/vue/components/content/equation.ce.js +69 -0
  20. package/dist/vue/components/content/heatmap.ce.js +148 -0
  21. package/dist/vue/components/content/rich-text-editor.ce.js +319 -0
  22. package/dist/vue/components/core/badge.ce.js +66 -0
  23. package/dist/vue/components/core/button-group.ce.js +142 -0
  24. package/dist/vue/components/core/button.ce.js +73 -0
  25. package/dist/vue/components/core/card.ce.js +73 -0
  26. package/dist/vue/components/core/cascader.ce.js +329 -0
  27. package/dist/vue/components/core/checkbox.ce.js +116 -0
  28. package/dist/vue/components/core/code-block.ce.js +108 -0
  29. package/dist/vue/components/core/combobox.ce.js +354 -0
  30. package/dist/vue/components/core/date-picker.ce.js +433 -0
  31. package/dist/vue/components/core/dialog.ce.js +118 -0
  32. package/dist/vue/components/core/divider.ce.js +49 -0
  33. package/dist/vue/components/core/drawer.ce.js +235 -0
  34. package/dist/vue/components/core/empty-state.ce.js +58 -0
  35. package/dist/vue/components/core/icon-button.ce.js +93 -0
  36. package/dist/vue/components/core/icon.ce.js +42 -0
  37. package/dist/vue/components/core/layout.ce.js +68 -0
  38. package/dist/vue/components/core/menu.ce.js +178 -0
  39. package/dist/vue/components/core/notification.ce.js +158 -0
  40. package/dist/vue/components/core/pagination.ce.js +158 -0
  41. package/dist/vue/components/core/progress.ce.js +49 -0
  42. package/dist/vue/components/core/select.ce.js +325 -0
  43. package/dist/vue/components/core/slider.ce.js +116 -0
  44. package/dist/vue/components/core/switch.ce.js +100 -0
  45. package/dist/vue/components/core/tabs.ce.js +193 -0
  46. package/dist/vue/components/core/text-field.ce.js +194 -0
  47. package/dist/vue/components/core/time-picker.ce.js +486 -0
  48. package/dist/vue/components/core/tooltip.ce.js +125 -0
  49. package/dist/vue/components/core/tree.ce.js +248 -0
  50. package/dist/vue/components/core/virtual-scroll.ce.js +176 -0
  51. package/dist/vue/components/data/copy-button.ce.js +75 -0
  52. package/dist/vue/components/data/image-preview.ce.js +226 -0
  53. package/dist/vue/components/data/infinite-scroll.ce.js +126 -0
  54. package/dist/vue/components/data/long-text.ce.js +70 -0
  55. package/dist/vue/components/data/relative-time.ce.js +77 -0
  56. package/dist/vue/components/data/ring-progress.ce.js +87 -0
  57. package/dist/vue/components/data/table.ce.js +491 -0
  58. package/dist/vue/components/data/virtual-table.ce.js +178 -0
  59. package/dist/vue/components/data/virtual-tree.ce.js +213 -0
  60. package/dist/vue/components/display/alert.ce.js +101 -0
  61. package/dist/vue/components/display/avatar-group.ce.js +65 -0
  62. package/dist/vue/components/display/avatar.ce.js +84 -0
  63. package/dist/vue/components/display/blockquote.ce.js +44 -0
  64. package/dist/vue/components/display/countdown.ce.js +77 -0
  65. package/dist/vue/components/display/descriptions.ce.js +43 -0
  66. package/dist/vue/components/display/highlight.ce.js +48 -0
  67. package/dist/vue/components/display/image.ce.js +146 -0
  68. package/dist/vue/components/display/list.ce.js +68 -0
  69. package/dist/vue/components/display/result.ce.js +57 -0
  70. package/dist/vue/components/display/skeleton.ce.js +67 -0
  71. package/dist/vue/components/display/spinner.ce.js +42 -0
  72. package/dist/vue/components/display/statistic.ce.js +71 -0
  73. package/dist/vue/components/display/timeline.ce.js +59 -0
  74. package/dist/vue/components/form-completion/angle-slider.ce.js +103 -0
  75. package/dist/vue/components/form-completion/color-picker.ce.js +286 -0
  76. package/dist/vue/components/form-completion/date-field.ce.js +131 -0
  77. package/dist/vue/components/form-completion/dynamic-input.ce.js +158 -0
  78. package/dist/vue/components/form-completion/form.ce.js +248 -0
  79. package/dist/vue/components/form-completion/json-input.ce.js +114 -0
  80. package/dist/vue/components/form-completion/masked-input.ce.js +88 -0
  81. package/dist/vue/components/form-completion/period-picker.ce.js +147 -0
  82. package/dist/vue/components/form-completion/time-field.ce.js +120 -0
  83. package/dist/vue/components/form-completion/upload-manager.ce.js +223 -0
  84. package/dist/vue/components/foundation/banner.ce.js +106 -0
  85. package/dist/vue/components/foundation/error-state.ce.js +108 -0
  86. package/dist/vue/components/foundation/field-group.ce.js +146 -0
  87. package/dist/vue/components/foundation/flex.ce.js +60 -0
  88. package/dist/vue/components/foundation/grid.ce.js +52 -0
  89. package/dist/vue/components/foundation/input-group.ce.js +34 -0
  90. package/dist/vue/components/foundation/page-header.ce.js +55 -0
  91. package/dist/vue/components/foundation/time-display.ce.js +129 -0
  92. package/dist/vue/components/foundation/typography.ce.js +71 -0
  93. package/dist/vue/components/input/checkbox-group.ce.js +93 -0
  94. package/dist/vue/components/input/field.ce.js +74 -0
  95. package/dist/vue/components/input/file-upload.ce.js +142 -0
  96. package/dist/vue/components/input/number-field.ce.js +103 -0
  97. package/dist/vue/components/input/pin-input.ce.js +112 -0
  98. package/dist/vue/components/input/radio-group.ce.js +96 -0
  99. package/dist/vue/components/input/rating.ce.js +115 -0
  100. package/dist/vue/components/input/tags-input.ce.js +153 -0
  101. package/dist/vue/components/input/textarea.ce.js +180 -0
  102. package/dist/vue/components/input/toggle.ce.js +58 -0
  103. package/dist/vue/components/interaction/chip.ce.js +95 -0
  104. package/dist/vue/components/interaction/command.ce.js +161 -0
  105. package/dist/vue/components/interaction/context-menu.ce.js +113 -0
  106. package/dist/vue/components/interaction/hover-card.ce.js +92 -0
  107. package/dist/vue/components/interaction/loading-overlay.ce.js +70 -0
  108. package/dist/vue/components/interaction/menubar.ce.js +134 -0
  109. package/dist/vue/components/interaction/multi-select.ce.js +264 -0
  110. package/dist/vue/components/interaction/popconfirm.ce.js +95 -0
  111. package/dist/vue/components/interaction/popover.ce.js +83 -0
  112. package/dist/vue/components/interaction/tree-select.ce.js +195 -0
  113. package/dist/vue/components/navigation/accordion.ce.js +114 -0
  114. package/dist/vue/components/navigation/anchor.ce.js +125 -0
  115. package/dist/vue/components/navigation/back-top.ce.js +67 -0
  116. package/dist/vue/components/navigation/breadcrumb.ce.js +48 -0
  117. package/dist/vue/components/navigation/carousel.ce.js +114 -0
  118. package/dist/vue/components/navigation/collapsible.ce.js +57 -0
  119. package/dist/vue/components/navigation/link.ce.js +62 -0
  120. package/dist/vue/components/navigation/navigation-menu.ce.js +91 -0
  121. package/dist/vue/components/navigation/overflow-list.ce.js +67 -0
  122. package/dist/vue/components/navigation/scroll-area.ce.js +47 -0
  123. package/dist/vue/components/navigation/splitter.ce.js +131 -0
  124. package/dist/vue/components/navigation/stepper.ce.js +74 -0
  125. package/dist/vue/components/navigation/toolbar.ce.js +93 -0
  126. package/dist/vue/components/navigation/visually-hidden.ce.js +16 -0
  127. package/dist/vue/components/shell/app-shell.ce.js +87 -0
  128. package/dist/vue/components/shell/config-provider.ce.js +110 -0
  129. package/dist/vue/components/shell/marquee.ce.js +92 -0
  130. package/dist/vue/components/shell/masonry.ce.js +50 -0
  131. package/dist/vue/components/shell/sidebar.ce.js +125 -0
  132. package/dist/vue/components/utility/affix.ce.js +64 -0
  133. package/dist/vue/components/utility/alert-dialog.ce.js +124 -0
  134. package/dist/vue/components/utility/animated-number.ce.js +66 -0
  135. package/dist/vue/components/utility/float-button.ce.js +104 -0
  136. package/dist/vue/components/utility/listbox.ce.js +81 -0
  137. package/dist/vue/components/utility/loading-bar.ce.js +85 -0
  138. package/dist/vue/components/utility/log-viewer.ce.js +124 -0
  139. package/dist/vue/components/utility/notification-queue.ce.js +109 -0
  140. package/dist/vue/components/utility/progress-group.ce.js +59 -0
  141. package/dist/vue/components/utility/qr-code.ce.js +62 -0
  142. package/dist/vue/components/utility/tag-group.ce.js +124 -0
  143. package/dist/vue/components/utility/tour.ce.js +214 -0
  144. package/dist/vue/components/utility/virtual-select.ce.js +207 -0
  145. package/dist/vue/components/utility/watermark.ce.js +44 -0
  146. package/dist/vue/internal/menu-items.js +184 -0
  147. package/dist/vue/internal/navigation-items.js +110 -0
  148. package/dist/vue/utils/code-highlight.js +142 -0
  149. package/dist/vue/utils/config.js +47 -0
  150. package/dist/vue/utils/content-motion.js +37 -0
  151. package/dist/vue/utils/content.js +83 -0
  152. package/dist/vue/utils/display-status.js +31 -0
  153. package/dist/vue/utils/foundation.js +65 -0
  154. package/dist/vue/utils/input-state.js +38 -0
  155. package/dist/vue/utils/interaction.js +103 -0
  156. package/dist/vue/utils/local-date.js +48 -0
  157. package/dist/vue/utils/motion.js +80 -0
  158. package/dist/vue/utils/native-slots.js +30 -0
  159. package/dist/vue/utils/navigation.js +44 -0
  160. package/dist/vue/utils/notifications.js +60 -0
  161. package/dist/vue/utils/qr.js +20 -0
  162. package/dist/vue/utils/remote-options.js +65 -0
  163. package/dist/vue/utils/ripple.js +20 -0
  164. package/dist/vue/utils/scoped-slots.js +22 -0
  165. package/dist/vue/utils/shell.js +43 -0
  166. package/dist/vue/utils/theme.js +50 -0
  167. package/dist/vue/utils/utility-choice.js +56 -0
  168. package/package.json +99 -4
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 KIMA contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,167 @@
1
- # Temporary Holding Version
1
+ # KIMA
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ **K**inetic · **I**nteraction · **M**otion · **A**live。
4
+
5
+ 面向高专注 Web 应用的 UI 设计系统。Vue 3 + JavaScript + SCSS,提供 Vue 组件与无需框架的原生自定义元素。大控件、低密度、Material You 动态主题;文档站也使用 KIMA 自身控件。
6
+
7
+ ## 发布状态
8
+
9
+ 包名为 `@kernel4632/kima`,当前版本见 [`package.json`](https://github.com/kernel4632/kima/blob/main/package.json)。当前仍在首次公开发布准备阶段,**没有执行 npm 发布**。发布审查时公共 registry 查询返回 404、身份检查返回 401;发布前需要有效登录与 scope 权限,404 本身不证明拥有发布权限。下面的 registry 安装命令用于发布后;现在可先打包并安装 tarball。
10
+
11
+ ## 安装
12
+
13
+ 发布后:
14
+
15
+ ```sh
16
+ pnpm add @kernel4632/kima vue
17
+ ```
18
+
19
+ 发布前、本地验证:
20
+
21
+ ```sh
22
+ pnpm install
23
+ pnpm build:lib
24
+ pnpm verify:lib
25
+ pnpm verify:install
26
+ # 将 artifacts/kernel4632-kima-0.6.0.tgz 拷到其他项目
27
+ pnpm add ./kernel4632-kima-0.6.0.tgz vue
28
+ ```
29
+
30
+ `verify:install` 真正创建隔离消费者,安装打包文件,构建并在浏览器中操作 Vue 与原生元素生产页面,不从仓库源码导入。
31
+
32
+ ## Vue 使用
33
+
34
+ Vue 3.5.42 及以上的 3.x 版本,Vue 运行时由宿主提供。仅提供 ESM 与 JavaScript,不提供 CommonJS 或 TypeScript 类型声明。包不包含宿主 reset 或预览页壁纸;样式会声明根级 KIMA token,并作用于 KIMA 命名空间。
35
+
36
+ ```vue
37
+ <script setup>
38
+ import { KimaButton, KimaTextField } from '@kernel4632/kima';
39
+ import '@kernel4632/kima/style.css';
40
+ import { ref } from 'vue';
41
+ const name = ref('');
42
+ </script>
43
+
44
+ <template>
45
+ <KimaTextField v-model="name" label="名称" placeholder="输入名称" />
46
+ <KimaButton>保存</KimaButton>
47
+ </template>
48
+ ```
49
+
50
+ ## 原生网页使用
51
+
52
+ 构建工具项目:
53
+
54
+ ```js
55
+ import '@kernel4632/kima/elements/core';
56
+ // 需要全部 136 个组件及内容引擎时改用 @kernel4632/kima/elements
57
+ ```
58
+
59
+ 注册入口**自带 Vue 运行时、token 和组件样式**,无需另导入 [`style.css`](https://github.com/kernel4632/kima#导出入口)。采用 light DOM,不提供 Shadow DOM 样式隔离;组件 class 使用 kima 前缀。核心和全量入口可以先后加载,已注册标签不会重复注册或重复追加样式。通常选择一个入口即可,不同入口各自内含运行时,混用仍会增加下载量。
60
+
61
+ 无构建工具:把 tarball 内的 [`dist/kima-elements-core.js`](https://github.com/kernel4632/kima#导出入口) 以及同目录第三方许可证声明一起部署,通过 HTTP 服务访问,不要直接双击本地网页:
62
+
63
+ ```html
64
+ <script type="module" src="./kima-elements-core.js"></script>
65
+ <kima-button variant="filled">保存</kima-button>
66
+ <kima-text-field id="name" label="名称"></kima-text-field>
67
+ <script type="module">
68
+ document.getElementById('name').addEventListener('update:modelValue', (event) => {
69
+ const [value] = event.detail;
70
+ console.log(value);
71
+ });
72
+ </script>
73
+ ```
74
+
75
+ 数组/对象属性使用元素属性赋值,例如 `element.items = [...]`;布尔值、字符串可用 HTML 属性。Vue 自定义事件参数在 `event.detail` 数组中,普通按钮 click 仍是原生事件。原生消费者无需使用 Vue API。
76
+
77
+ ## 主题
78
+
79
+ ```js
80
+ import { applyPalette } from '@kernel4632/kima/theme';
81
+ applyPalette('#61afef', { isDark: true });
82
+ ```
83
+
84
+ 所有颜色由 `--kima-*` 变量控制。成功/警告/危险语义色不随品牌种子改变。默认深浅主题通过 `data-kima-theme="dark|light"` 选择;运行时换色使用主题入口。Maple Mono NF CN 按需由宿主加载,未安装时使用系统等宽回退,包内不嵌入字体大文件。
85
+
86
+ ## 导出入口
87
+
88
+ | 入口 | 用途 |
89
+ | --- | --- |
90
+ | `@kernel4632/kima` | 具名 Vue 组件导出、componentNames、代码块语言登记工具 |
91
+ | `@kernel4632/kima/style.css` | Vue 消费者所需样式和 token |
92
+ | `@kernel4632/kima/elements` | 独立自定义元素注册与内置样式(全量 136 个) |
93
+ | `@kernel4632/kima/elements/core` | 只注册 core 档(默认推荐);轻量核心入口(体积以构建输出为准) |
94
+ | `@kernel4632/kima/theme` | 动态配色生成与应用工具 |
95
+
96
+ 构建生成四个 JS 入口及 Vue 样式,Vue 组件模块保留按需打包边界,独立自定义元素入口则内含所选档位的全部组件。全量入口含编辑器等重型引擎,不能按标签使用量自动裁剪。完整清单见[入口索引](https://github.com/kernel4632/kima/blob/main/docs/component-index.md)。
97
+
98
+ ## 维护分层
99
+
100
+ 公开入口先证明必要性,再决定维护档位。第一批已移除 9 个薄包装,这是公开 API 的删除,替代方式见[删减迁移](https://github.com/kernel4632/kima/blob/main/docs/component-pruning.md)。剩余组件分三档,**唯一来源**是 [`src/component-tiers.js`](https://github.com/kernel4632/kima/blob/main/src/component-tiers.js)。下表是维护目标,不是所有组件已完成逐项验收的认证;当前证据与未覆盖项见[路线图](https://github.com/kernel4632/kima/blob/main/docs/component-roadmap.md)。
101
+
102
+ | 档位 | 数量 | 维护水位 | 注册方式 |
103
+ | --- | --- | --- | --- |
104
+ | core | 43 | 优先覆盖逐页视觉、跨浏览器、键盘与读屏、动画中间帧 | 推荐核心入口 |
105
+ | extras | 80 | 按使用场景维护渲染、键盘和交互反馈 | Vue 按需或全量自定义元素 |
106
+ | experimental | 13 | 实验性渲染与状态反馈,接口可能调整 | Vue 按需或全量自定义元素 |
107
+
108
+ 判断规则:每个应用都会用 → core;只有一类应用会用 → extras;只是原生控件的皮肤或装饰 → 并进基础控件或 experimental。新增 `.ce.vue` 必须在分档表里选一档,否则构建直接失败。
109
+
110
+ 代码块的语法分词由 highlight.js(BSD-3-Clause)完成,内置以 common 集为基础的 **35 种语法,已包含 Dockerfile**;Vue、TS、Shell、YAML 等常见别名已登记。别名不等于完整框架语义支持,不承诺全语言、全语义着色。内置集之外的语言由 Vue 宿主在渲染前补登记,不把全部语法塞进包里;该登记工具属于 Vue 主入口,不会跨独立自定义元素包共享高亮器:
111
+
112
+ ```js
113
+ import dart from 'highlight.js/lib/languages/dart';
114
+ import { registerCodeLanguage } from '@kernel4632/kima';
115
+ registerCodeLanguage('dart', dart);
116
+ ```
117
+
118
+ ## 开发与验收
119
+
120
+ 本仓库构建使用 Node 20.19+ 或 22.12+ 的受支持版本及 pnpm。隔离消费者发布验收需要 Chromium、Firefox、WebKit,首次执行前安装浏览器:
121
+
122
+ ```sh
123
+ pnpm exec playwright install chromium firefox webkit
124
+ ```
125
+
126
+ ```powershell
127
+ pnpm dev
128
+ pnpm build
129
+ pnpm build:lib
130
+ pnpm verify:lib
131
+ pnpm verify:install
132
+ pnpm test # 约 8 秒冒烟:入口、真实点击、弹层、表单值
133
+ pnpm test:ssr # 发布前执行
134
+ pnpm shots
135
+ # 逐页视觉审查:桌面与手机各跑一遍,截图落在 shots/audit*
136
+ node scripts/audit-visual.mjs http://127.0.0.1:5188
137
+ node scripts/audit-montage.mjs
138
+ # 只审 core 档(43 页):$env:KIMA_AUDIT_TIER = 'core'
139
+ ```
140
+
141
+ 文档站采用顶栏、左侧组件导航、中央文档与实时预览、右侧页内目录。使用 `#/components/button` 等地址可直接进入组件页。属性表来自组件源码,实际演示使用库内组件。顶栏全文命令搜索会检索组件名称、中文描述、属性和事件;`Ctrl/Cmd+K` 打开,方向键、Enter、Escape 和焦点返回均可用。
142
+
143
+ 代码示例统一使用 `KimaCodeBlock`,提供指定语言着色、文件名、行号、换行和复制反馈;未知语言安全回退为纯文本。常用语言随包提供,不依赖网络着色服务。
144
+
145
+ 当前源码有 **136 个独立组件入口**,包含日期/表单、虚拟化、utility、布局排版、嵌套菜单/应用壳及内容扩展。重型依赖集中在 extras 档(highlight.js 随代码块、CodeMirror、Tiptap、图表),所以日常控件用 `/elements/core` 不会带上它们。
146
+
147
+ 公开目录逐项来源和边界见 [136 项能力对照](https://github.com/kernel4632/kima/blob/main/docs/component-comparison.md),G00–G50 的处置见[能力路线图](https://github.com/kernel4632/kima/blob/main/docs/component-roadmap.md)。表格没有固定列、分组表头/行分组或自动分页;颜色提供 HSV/alpha 与 HEX 编辑及原生颜色选择入口,RGB/HSL 是读数,不提供独立屏幕取色 API 或多色彩空间编辑;日期时间使用无时区本地模型,不处理 DST。图表不包含缩放平移/堆叠/饼图,编辑器不提供协作或代码执行。server auth、transport、CMS 和商业模板属于宿主/业务层范围。
148
+
149
+ 面向现代浏览器,依赖自定义元素、原生对话框、ResizeObserver、Web Animations 及现代 CSS。发布验收的跨浏览器检查仅覆盖核心入口安装、注册、基础输入和样式,不等于全部组件在全部浏览器、读屏器或动画中间帧上均已验收。SSR 测试也不代表所有组件都能在服务端进行完整交互。
150
+
151
+ ## 许可证
152
+
153
+ KIMA 自身使用 MIT 许可证。独立浏览器包内含第三方代码,完整许可证随包放在 [`dist/THIRD_PARTY_NOTICES.txt`](https://github.com/kernel4632/kima#许可证);复制或再分发独立包时须保留相应声明。构建根据实际模块图收集文本,依赖缺少授权文本时会阻断构建。
154
+
155
+ ## 发布
156
+
157
+ 本轮已验证范围、包体积与账号阻塞见[发布准备审查](https://github.com/kernel4632/kima/blob/main/docs/npm-release-readiness.md)。它记录本地验收,不代表包已经上架。
158
+
159
+ 1. 使用有 `@kernel4632` scope 权限的账户执行 `npm login --registry=https://registry.npmjs.org`。
160
+ 2. 执行 `npm whoami --registry=https://registry.npmjs.org` 确认身份,不要把 token 写入源码或提交。
161
+ 3. 执行 `pnpm release:check`、浏览器测试和 SSR 测试。
162
+ 4. 检查目标版本未被使用、发布清单和许可证;版本号不会随提交自动增长,文档站只显示构建时的版本。确定版本后执行 `npm publish --access public --registry=https://registry.npmjs.org`(可能要求 2FA)。不要重复发布已有版本。
163
+ 5. 执行 `npm view @kernel4632/kima version --registry=https://registry.npmjs.org` 并在新项目从 registry 安装复验,然后更新发布状态。
164
+
165
+ `prepack` 自动构建,`prepublishOnly` 会运行打包与隔离安装校验。`artifacts/` 中的 tarball 不入库。发布必须使用有效凭证,不能用 dry-run 代替“已发布”。
166
+
167
+ 协作约束见 [`AGENTS.md`](https://github.com/kernel4632/kima/blob/main/AGENTS.md)。历史研究笔记不作为当前设计依据。