create-windy 0.6.8 → 0.6.9

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 (30) hide show
  1. package/dist/cli.js +152 -24
  2. package/package.json +1 -1
  3. package/template/.windy-template.json +2 -2
  4. package/template/README.md +4 -2
  5. package/template/apps/server/src/runtime-development.ts +1 -0
  6. package/template/apps/web/src/layout/AppSidebar.vue +1 -0
  7. package/template/apps/web/src/pages/ui/UiComponentPage.vue +7 -0
  8. package/template/apps/web/src/pages/ui/UiComponentPage.webtest.ts +94 -0
  9. package/template/apps/web/src/pages/ui/component-catalog.ts +248 -0
  10. package/template/apps/web/src/pages/ui/components/ComponentPreviewCard.vue +50 -0
  11. package/template/apps/web/src/pages/ui/components/DataComponentShowcases.vue +131 -0
  12. package/template/apps/web/src/pages/ui/components/FeedbackComponentShowcases.vue +158 -0
  13. package/template/apps/web/src/pages/ui/components/FoundationComponentShowcases.vue +129 -0
  14. package/template/apps/web/src/pages/ui/components/NavigationComponentShowcases.vue +155 -0
  15. package/template/apps/web/src/pages/ui/components/ProjectComponentShowcases.vue +31 -0
  16. package/template/apps/web/src/pages/ui/components/UiComponentGallery.vue +238 -0
  17. package/template/apps/web/src/router/index.ts +2 -0
  18. package/template/apps/web/src/router/manifest-routes.webtest.ts +1 -0
  19. package/template/apps/web/src/router/platform-admin-route-bindings.ts +3 -1
  20. package/template/docs/development/business-web-routes.md +3 -1
  21. package/template/docs/development/ui-component-gallery.md +44 -0
  22. package/template/docs/operations/incremental-delivery.md +10 -9
  23. package/template/packages/modules/package.json +1 -1
  24. package/template/packages/modules/src/system-admin-routes.ts +8 -0
  25. package/template/packages/modules/src/system-admin-ui-catalog.ts +1 -1
  26. package/template/packages/modules/src/system-features.ts +5 -0
  27. package/template/packages/modules/src/system-module-catalog.ts +2 -1
  28. package/template/packages/modules/src/system-modules.ts +11 -0
  29. package/template/packages/modules/src/system-permissions.ts +2 -0
  30. package/template/packages/modules/src/system-ui-components.test.ts +36 -0
@@ -107,11 +107,11 @@ package `bin`,避免 fresh `bun install` 改写受管源码的 POSIX mode。
107
107
 
108
108
  ```bash
109
109
  sudo install -d -m 0755 /opt/windy/runtime /opt/windy/bin
110
- sudo cp -R ./packages/delivery /opt/windy/runtime/delivery-0.6.7.tmp
111
- sudo chmod 0555 /opt/windy/runtime/delivery-0.6.7.tmp/bin/windy-delivery
112
- sudo mv /opt/windy/runtime/delivery-0.6.7.tmp \
113
- /opt/windy/runtime/delivery-0.6.7
114
- sudo ln -s /opt/windy/runtime/delivery-0.6.7/bin/windy-delivery \
110
+ sudo cp -R ./packages/delivery /opt/windy/runtime/delivery-0.6.8.tmp
111
+ sudo chmod 0555 /opt/windy/runtime/delivery-0.6.8.tmp/bin/windy-delivery
112
+ sudo mv /opt/windy/runtime/delivery-0.6.8.tmp \
113
+ /opt/windy/runtime/delivery-0.6.8
114
+ sudo ln -s /opt/windy/runtime/delivery-0.6.8/bin/windy-delivery \
115
115
  /opt/windy/bin/windy-delivery.next
116
116
  sudo mv -Tf /opt/windy/bin/windy-delivery.next \
117
117
  /opt/windy/bin/windy-delivery
@@ -175,10 +175,11 @@ resource fork 或 Finder metadata。路径组件以 `._` 开头时直接拒绝
175
175
 
176
176
  ## 构建与旧项目升级
177
177
 
178
- `create-windy@0.6.7` 候选把 `packages/delivery`、本说明和 `delivery:remote` 脚本加入
179
- 受管 Starter。`0.6.6 -> 0.6.7` 通过连续 recipe 事务升级;现有 project-owned 发布脚本
180
- 不会被覆盖。正式构建先准备一个完整 release 目录,其中 `images.tar` 必须是 OCI image
181
- layout(含 `oci-layout`、`index.json` 和 `blobs/sha256/*`),再运行:
178
+ `packages/delivery`、本说明和 `delivery:remote` 脚本自 `create-windy@0.6.7` 起进入受管
179
+ Starter;当前公开版为 `0.6.8`,最低支持基线 `0.6.6` 可通过连续 recipe 事务升级,现有
180
+ project-owned 发布脚本不会被覆盖。正式构建先准备一个完整 release 目录,其中
181
+ `images.tar` 必须是 OCI image layout(含 `oci-layout`、`index.json` 和
182
+ `blobs/sha256/*`),再运行:
182
183
 
183
184
  ```bash
184
185
  bun run delivery:remote -- pack \
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@southwind-ai/modules",
3
- "version": "0.2.3",
3
+ "version": "0.2.4",
4
4
  "license": "UNLICENSED",
5
5
  "type": "module",
6
6
  "engines": {
@@ -70,6 +70,14 @@ export const systemAdminRoutes: ModuleManifest["adminRoutes"] = [
70
70
  "system.feature.read",
71
71
  "system.feature",
72
72
  ),
73
+ route(
74
+ "system.ui-components",
75
+ "/ui/component",
76
+ "组件总览",
77
+ "sidebar",
78
+ "system.ui-components.read",
79
+ "system.ui-components",
80
+ ),
73
81
  // @windy-module system.notification begin
74
82
  route(
75
83
  "system.notification",
@@ -2,7 +2,7 @@ import type { AdminUiManifest } from "./admin-ui-manifest.js";
2
2
  import { systemAdminRoutes } from "./system-admin-routes.js";
3
3
 
4
4
  const definitions = [
5
- ["system", ["system.feature"]],
5
+ ["system", ["system.feature", "system.ui-components"]],
6
6
  [
7
7
  "system.identity",
8
8
  [
@@ -37,6 +37,11 @@ export const systemFeatures: ModuleManifest["features"] = [
37
37
  "功能开关管理",
38
38
  "查看和恢复平台 Feature 状态的核心控制面能力。",
39
39
  ),
40
+ feature(
41
+ "system.ui-components",
42
+ "UI 组件总览",
43
+ "查看 Windy Web 已封装基础组件的真实主题与交互示例。",
44
+ ),
40
45
  feature(
41
46
  "system.user-directory",
42
47
  "业务用户目录",
@@ -21,12 +21,13 @@ export const systemModuleDefinitions = [
21
21
  version: "0.1.0",
22
22
  label: "系统核心",
23
23
  description: "管理面准入、Feature 治理、数据库基线与审计动作目录。",
24
- resources: ["admin", "runtime", "auth", "feature"],
24
+ resources: ["admin", "runtime", "auth", "feature", "ui-components"],
25
25
  featureKeys: [
26
26
  "system.admin",
27
27
  "system.runtime",
28
28
  "system.auth",
29
29
  "system.feature",
30
+ "system.ui-components",
30
31
  "system.ruoyi-compat",
31
32
  ],
32
33
  },
@@ -169,6 +169,17 @@ export function systemFoundationModule(): ModuleManifest {
169
169
  featureKey: "system.config",
170
170
  },
171
171
  // @windy-module system.configuration end
172
+ {
173
+ key: "system.ui-components",
174
+ title: "组件总览",
175
+ type: "menu",
176
+ order: 70,
177
+ visible: true,
178
+ path: "/ui/component",
179
+ icon: "blocks",
180
+ permissionKey: "system.ui-components.read",
181
+ featureKey: "system.ui-components",
182
+ },
172
183
  ],
173
184
  },
174
185
  {
@@ -11,6 +11,7 @@ const systemResourceLabels = {
11
11
  menu: "菜单管理",
12
12
  dict: "字典管理",
13
13
  feature: "功能开关",
14
+ "ui-components": "UI 组件总览",
14
15
  search: "全局搜索",
15
16
  settings: "全局设置",
16
17
  config: "配置版本",
@@ -96,6 +97,7 @@ export const systemPermissions: ModuleManifest["permissions"] = [
96
97
  permission("dict", "manage"),
97
98
  permission("feature", "read"),
98
99
  permission("feature", "manage"),
100
+ permission("ui-components", "read"),
99
101
  // @windy-module system.search begin
100
102
  permission("search", "read"),
101
103
  permission("search", "manage"),
@@ -0,0 +1,36 @@
1
+ import { describe, expect, test } from "bun:test";
2
+ import { systemFoundationModule } from "./system-modules.js";
3
+
4
+ describe("系统组件展厅能力注册", () => {
5
+ test("以同一能力 Key 注册 Feature、Permission、菜单和路由", () => {
6
+ const manifest = systemFoundationModule();
7
+ const menus = flattenMenus(manifest.menus);
8
+
9
+ expect(manifest.features).toContainEqual(
10
+ expect.objectContaining({ key: "system.ui-components" }),
11
+ );
12
+ expect(manifest.permissions).toContainEqual(
13
+ expect.objectContaining({ key: "system.ui-components.read" }),
14
+ );
15
+ expect(
16
+ menus.find(({ key }) => key === "system.ui-components"),
17
+ ).toMatchObject({
18
+ path: "/ui/component",
19
+ permissionKey: "system.ui-components.read",
20
+ featureKey: "system.ui-components",
21
+ });
22
+ expect(
23
+ manifest.adminRoutes.find(({ key }) => key === "system.ui-components"),
24
+ ).toMatchObject({
25
+ path: "/ui/component",
26
+ permissionKey: "system.ui-components.read",
27
+ featureKey: "system.ui-components",
28
+ });
29
+ });
30
+ });
31
+
32
+ function flattenMenus(
33
+ menus: ReturnType<typeof systemFoundationModule>["menus"],
34
+ ): ReturnType<typeof systemFoundationModule>["menus"] {
35
+ return menus.flatMap((menu) => [menu, ...flattenMenus(menu.children || [])]);
36
+ }