@manohub/kit 0.6.1 → 0.7.1

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.
package/bin/kit.mjs CHANGED
@@ -10,15 +10,20 @@
10
10
  * pnpm exec kit install --also-claude
11
11
  * pnpm exec kit install --target .x/skills
12
12
  * pnpm exec kit install --dry-run
13
+ * pnpm exec kit lint # 契约机械护栏(默认全跑,只报不修)
14
+ * pnpm exec kit lint --group source --json
13
15
  * pnpm exec kit help
14
16
  *
15
17
  * npm 消费方把 `pnpm exec` 换成 `npx`(两者都解析本地 node_modules/.bin)。
16
18
  * package.json 的 scripts 里可以省略前缀(npm/pnpm 会把 .bin 加进 PATH):
17
19
  * "skills:sync": "kit install"
18
20
  *
19
- * 0.6.0 起 `lint` / `lint:style` / `lint:component` / `lint:structure` 四个子命令**已下线**
20
- * (消费侧机器规则整批退场,合规改为「CONTRACT.md 条款 + §7 自检清单」)。
21
- * 旧脚本若还写着 `kit lint`,会得到「未知命令」并附帮助 —— 不是静默通过。
21
+ * 版本史:
22
+ * - 0.6.0 起 `lint:style` / `lint:component` / `lint:structure`(旧的消费侧机器规则)**已下线**
23
+ * —— 它们按目录/结构硬编码,语义与四包重构后的契约脱节。
24
+ * - 0.7.0 起 `lint` **重新上线**,但换了立足点:不查目录,只查契约里能机械判定的事
25
+ * (外观来源白名单 / 布局属性闭集 / 类名命名空间),见 `skills/lint.mjs` 头注释。
26
+ * 旧脚本若写着已下线的子命令名,会得到「未知命令」并附帮助 —— 不是静默通过。
22
27
  */
23
28
  import { spawnSync } from 'node:child_process'
24
29
  import { existsSync, readFileSync } from 'node:fs'
@@ -37,6 +42,10 @@ export const COMMANDS = {
37
42
  script: 'skills/install.mjs',
38
43
  summary: '把随包分发的三个 AI 技能落到本工程(--also-claude / --target <dir> / --dry-run)',
39
44
  },
45
+ lint: {
46
+ script: 'skills/lint.mjs',
47
+ summary: '契约机械护栏:红线条 / 外观来源 / 属性闭集 / 类名前缀(--root / --namespace / --group / --json)',
48
+ },
40
49
  }
41
50
 
42
51
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@manohub/kit",
3
- "version": "0.6.1",
3
+ "version": "0.7.1",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "子应用入口编排层:createSubApp(作用域容器与宿主锚点、pinia/路由/vue-query 装配、宿主挂载协议)、i18n 单实例与语言探测,外加随包分发的接入契约(CONTRACT.md,五层闭集条款 + 自检清单)与三个 AI 技能包。本包**零样式产物**:设计令牌(值)在 @manohub/theme,组件(类与行为)在 @manohub/ui,两者由消费方直接引入。",
@@ -322,13 +322,26 @@ try { await save() } finally { done() }
322
322
  ## 九、页签 / 页面级筛选 / 分页
323
323
 
324
324
  ```tsx
325
- // 只要页签条 → Tabs(带「更多」收纳)
326
- <Tabs v-model={tab.value} options={[{ label: '基本信息', value: 'base' }, { label: '字段映射', value: 'fields' }]} />
327
-
328
- // 条 + 面板切换 → Tabset(选择控件由 selector 插槽给)
329
- <Tabset v-model={tab.value} lazy>
330
- {{ default: () => <div>面板内容</div>, selector: () => <Capsule items={caps} modelValue={tab.value} onChange={(v) => (tab.value = v)} /> }}
331
- </Tabset>
325
+ // 只要页签条 → TabBar(带「更多」收纳)
326
+ <TabBar v-model={tab.value} options={[{ label: '基本信息', value: 'base' }, { label: '字段映射', value: 'fields' }]} />
327
+
328
+ // 条 + 面板切换 → Tabs(面板用 TabPanel 写自己的信息,轨道缺省就是页签条)
329
+ <Tabs v-model={tab.value} lazy>
330
+ {{
331
+ default: () => [
332
+ <TabPanel name="基本信息">…面板内容…</TabPanel>,
333
+ <TabPanel name="字段映射">…面板内容…</TabPanel>,
334
+ ],
335
+ }}
336
+ </Tabs>
337
+
338
+ // 换皮(胶囊 / 分段按钮 / 单选卡片):整块替换 selector,options 就是从各 TabPanel 提取出来的项
339
+ <Tabs v-model={tab.value}>
340
+ {{
341
+ selector: ({ value, options, select }) => <Capsule options={caps} modelValue={value} onChange={select} />,
342
+ default: () => [<TabPanel name="基本信息">…</TabPanel>, <TabPanel name="字段映射">…</TabPanel>],
343
+ }}
344
+ </Tabs>
332
345
 
333
346
  // 页面级筛选:条件字段写成 Filter.Item 子件,控件自放
334
347
  <Page.Filter onQuery={query} onReset={reset}>