cabloy 5.1.147 → 5.1.149

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 (43) hide show
  1. package/.cabloy-version +1 -1
  2. package/.claude/skills/cabloy-workflow/evals/evals.json +1 -1
  3. package/.claude/skills/cabloy-worktree-environment/SKILL.md +2 -5
  4. package/.claude/skills/cabloy-worktree-environment/evals/evals.json +1 -1
  5. package/CHANGELOG.md +17 -0
  6. package/package.json +1 -1
  7. package/repo-docs/.vitepress/config.mjs +4 -0
  8. package/repo-docs/backend/markdown-guide.md +1 -0
  9. package/repo-docs/backend/relations-guide.md +1 -0
  10. package/repo-docs/frontend/form-layout-guide.md +15 -1
  11. package/repo-docs/frontend/markdown-guide.md +1 -0
  12. package/repo-docs/frontend/scripts.md +11 -11
  13. package/repo-docs/fullstack/edition-collaboration-differences.md +1 -0
  14. package/repo-docs/fullstack/one-to-one-companion-resource-guide.md +447 -0
  15. package/repo-docs/fullstack/parallel-worktree-environment.md +4 -4
  16. package/repo-docs/fullstack/quickstart.md +4 -4
  17. package/repo-docs/reference/repo-scripts.md +12 -14
  18. package/repo-e2e/specs/cabloy-basic.spec.ts +176 -1
  19. package/vona/src/suite/a-training/modules/training-student/package.json +1 -0
  20. package/vona/src/suite/a-training/modules/training-student/src/.metadata/index.ts +177 -103
  21. package/vona/src/suite/a-training/modules/training-student/src/bean/meta.index.ts +1 -0
  22. package/vona/src/suite/a-training/modules/training-student/src/bean/meta.version.ts +19 -1
  23. package/vona/src/suite/a-training/modules/training-student/src/config/locale/en-us.ts +3 -0
  24. package/vona/src/suite/a-training/modules/training-student/src/config/locale/zh-cn.ts +3 -0
  25. package/vona/src/suite/a-training/modules/training-student/src/dto/studentCreate.tsx +21 -2
  26. package/vona/src/suite/a-training/modules/training-student/src/dto/studentSummary.tsx +7 -1
  27. package/vona/src/suite/a-training/modules/training-student/src/dto/studentUpdate.tsx +21 -2
  28. package/vona/src/suite/a-training/modules/training-student/src/dto/studentView.tsx +21 -2
  29. package/vona/src/suite/a-training/modules/training-student/src/entity/student.tsx +0 -3
  30. package/vona/src/suite/a-training/modules/training-student/src/entity/studentContent.tsx +36 -0
  31. package/vona/src/suite/a-training/modules/training-student/src/model/student.ts +6 -0
  32. package/vona/src/suite/a-training/modules/training-student/src/model/studentContent.ts +22 -0
  33. package/vona/src/suite/a-training/modules/training-student/src/service/student.ts +63 -6
  34. package/vona/src/suite/a-training/modules/training-student/test/student.test.ts +117 -7
  35. package/zova/packages-zova/zova/package.json +2 -2
  36. package/zova/pnpm-lock.yaml +19 -15
  37. package/zova/src/suite/a-training/modules/training-student/package.json +3 -1
  38. package/zova/src/suite/a-training/modules/training-student/src/api/openapi/schemas.ts +40 -40
  39. package/zova/src/suite/a-training/modules/training-student/src/api/openapi/types.ts +358 -337
  40. package/zova/src/suite/a-training/modules/training-student/src/bean/tableCell.actionSummary.tsx +18 -7
  41. package/zova/src/suite-vendor/a-zova/modules/a-form/package.json +1 -1
  42. package/zova/src/suite-vendor/a-zova/modules/a-form/src/lib/formLayout.ts +13 -5
  43. package/zova/src/suite-vendor/a-zova/package.json +2 -2
@@ -9,6 +9,7 @@ import type { ModelStudent } from 'zova-module-training-student';
9
9
 
10
10
  import { BeanBase } from 'zova';
11
11
  import { TableCell } from 'zova-module-a-table';
12
+ import { ZMarkdownHtml } from 'zova-module-basic-markdown';
12
13
 
13
14
  declare module 'zova-module-a-openapi' {
14
15
  export interface IResourceTableActionRowRecord {
@@ -40,13 +41,23 @@ export class TableCellActionSummary extends BeanBase implements ITableCellRender
40
41
  )) as ModelStudent;
41
42
  const querySummary = modelStudent.summary(id);
42
43
  const { data: summary } = await querySummary.refetch();
43
- const message = [
44
- `${this.scope.locale.Id()}: ${summary?.id ?? '-'}`,
45
- `${this.scope.locale.Name()}: ${summary?.name ?? '-'}`,
46
- `${this.scope.locale.Level()}: ${summary?.level ?? '-'}`,
47
- `${this.scope.locale.Description()}: ${summary?.description ?? '-'}`,
48
- ].join('\n');
49
- await $host.$performCommand('basic-commands:alert', { text: message }, renderContext);
44
+ $host.$appModal.dialog(
45
+ {
46
+ title: this.scope.locale.Summary(),
47
+ slotDefault: () => (
48
+ <div class="student-summary-description">
49
+ <ZMarkdownHtml html={summary?.descriptionHtml} />
50
+ </div>
51
+ ),
52
+ },
53
+ {
54
+ maxWidth: 720,
55
+ maxHeight: 'calc(100vh - 2rem)',
56
+ closeOnBackdrop: true,
57
+ closeOnEscape: true,
58
+ showCloseButton: true,
59
+ },
60
+ );
50
61
  }}
51
62
  >
52
63
  {this.scope.locale.Summary()}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zova-module-a-form",
3
- "version": "5.1.48",
3
+ "version": "5.1.49",
4
4
  "gitHead": "09d901d17140a80ee0764211b441cda72fd94663",
5
5
  "description": "",
6
6
  "keywords": [
@@ -193,17 +193,25 @@ function resolveField(
193
193
  diagnostics: IFormLayoutDiagnostic[],
194
194
  fieldTabPaths: IResolvedFormLayout['fieldTabPaths'],
195
195
  ): IResolvedFormLayoutField | undefined {
196
- if (!propertyNames.has(node.name)) {
196
+ const name = resolveFieldName(node.name, propertyNames);
197
+ if (!name) {
197
198
  diagnostics.push({ type: 'unknownField', value: node.name });
198
199
  return;
199
200
  }
200
- if (fieldNames.has(node.name)) {
201
+ if (fieldNames.has(name)) {
201
202
  diagnostics.push({ type: 'duplicateField', value: node.name });
202
203
  return;
203
204
  }
204
- fieldNames.add(node.name);
205
- fieldTabPaths[node.name] = tabPath;
206
- return node;
205
+ fieldNames.add(name);
206
+ fieldTabPaths[name] = tabPath;
207
+ return name === node.name ? node : { ...node, name };
208
+ }
209
+
210
+ function resolveFieldName(name: string, propertyNames: Set<string>) {
211
+ if (propertyNames.has(name)) return name;
212
+ const fieldSourcePrefix = `${name}.`;
213
+ const fieldSources = [...propertyNames].filter(item => item.startsWith(fieldSourcePrefix));
214
+ return fieldSources.length === 1 ? fieldSources[0] : undefined;
207
215
  }
208
216
 
209
217
  function resolveId(node: { type: string; id?: string }, indexPath: number[]) {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zova-suite-a-zova",
3
- "version": "5.1.152",
3
+ "version": "5.1.153",
4
4
  "gitHead": "2c5c19284bab738e492856189acb6fad74b8a7b7",
5
5
  "description": "zova",
6
6
  "license": "MIT",
@@ -16,7 +16,7 @@
16
16
  "zova-module-a-boundary": "^5.1.22",
17
17
  "zova-module-a-command": "^5.1.34",
18
18
  "zova-module-a-fetch": "^5.1.25",
19
- "zova-module-a-form": "^5.1.48",
19
+ "zova-module-a-form": "^5.1.49",
20
20
  "zova-module-a-icon": "^5.1.27",
21
21
  "zova-module-a-interceptor": "^5.1.31",
22
22
  "zova-module-a-logger": "^5.1.28",