@ximatai/muyun-web-app 0.26.6 → 0.26.7

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 (74) hide show
  1. package/dist/{EmployeeDetailWorkspaceView-DHZ4arBj.js → EmployeeDetailWorkspaceView-DYJLlkSz.js} +1 -1
  2. package/dist/EmployeeManagementView-taxWUa7g.js +1778 -0
  3. package/dist/{MetadataOrchestrationView-BLxigKBh.js → MetadataOrchestrationView-B-CPudJl.js} +195 -195
  4. package/dist/{ModuleActionManagementView-ByJzNkQs.js → ModuleActionManagementView-CmVj0e0C.js} +122 -122
  5. package/dist/RoleAuthorizationView-q_6CsBYq.js +592 -0
  6. package/dist/{RoleDetailWorkspaceView-Dfdigf04.js → RoleDetailWorkspaceView-DmJlJgAj.js} +1 -1
  7. package/dist/{RoleManagementView-D0e9nLwW.js → RoleManagementView-HCa9rH0f.js} +283 -283
  8. package/dist/{SystemUserDetailWorkspaceView-D-UPhCmD.js → SystemUserDetailWorkspaceView-U6Ij0US1.js} +1 -1
  9. package/dist/SystemUserManagementView-C1CkKivH.js +758 -0
  10. package/dist/{UserDetailWorkspaceView-BCSCLNSz.js → UserDetailWorkspaceView-OPYvD6mH.js} +1 -1
  11. package/dist/UserManagementView-gbCL9SnC.js +965 -0
  12. package/dist/index.css +1 -1
  13. package/dist/index.js +3257 -2210
  14. package/dist/{pageRealtime-Be2xkeKK.js → pageRealtime-CzJlr9hs.js} +17 -17
  15. package/dist/{platform-components-DuAohqJO.js → platform-components-DKKWbNrz.js} +3320 -2102
  16. package/dist/types/app/CurrentUserProfileDialog.vue.d.ts +33 -0
  17. package/dist/types/app/LoginView.vue.d.ts +4 -1
  18. package/dist/types/app/ThemeSkinPreferencesDialog.vue.d.ts +20 -0
  19. package/dist/types/app/lockedTabPreference.d.ts +6 -0
  20. package/dist/types/app/themeSkinPreference.d.ts +11 -0
  21. package/dist/types/app/workbenchStartup.d.ts +14 -1
  22. package/dist/types/consumer/AppWorkbenchShell.vue.d.ts +43 -0
  23. package/dist/types/consumer/index.d.ts +15 -1
  24. package/dist/types/consumer/userPreferencePersistence.d.ts +7 -0
  25. package/dist/types/consumer/workbenchNavigation.d.ts +8 -0
  26. package/dist/types/dynamic-page-runtime/index.d.ts +1 -1
  27. package/dist/types/dynamic-page-runtime/modulePageEnhancements.d.ts +19 -1
  28. package/dist/types/platform-components/FileTransferUploader.vue.d.ts +20 -1
  29. package/dist/types/platform-components/ManagementPanelHeader.vue.d.ts +30 -0
  30. package/dist/types/platform-components/RecordDetailLayout.vue.d.ts +8 -6
  31. package/dist/types/platform-components/RecordDetailPanel.vue.d.ts +5 -5
  32. package/dist/types/platform-components/RecordExplorerPanel.vue.d.ts +6 -6
  33. package/dist/types/platform-components/RecordFileReferenceTransfer.vue.d.ts +10 -0
  34. package/dist/types/platform-components/RecordFormFields.vue.d.ts +5 -1
  35. package/dist/types/platform-components/SingleImageFileReferenceField.vue.d.ts +23 -0
  36. package/dist/types/platform-components/fileReferenceTransfer.d.ts +8 -0
  37. package/dist/types/platform-components/index.d.ts +1 -0
  38. package/dist/types/platform-components/platformErrorFeedback.d.ts +2 -0
  39. package/dist/types/platform-components/recordActionBarModel.d.ts +6 -0
  40. package/dist/types/platform-components/recordFormFieldModel.d.ts +5 -2
  41. package/dist/types/platform-components/scopedTreeModuleContext.d.ts +1 -1
  42. package/dist/types/platform-components/staticCrudManagementState.d.ts +1 -1
  43. package/dist/types/platform-workbench/Workbench.vue.d.ts +12 -2
  44. package/dist/types/platform-workbench/WorkbenchBrandControl.vue.d.ts +22 -2
  45. package/dist/types/platform-workbench/WorkbenchMenu.vue.d.ts +24 -0
  46. package/dist/types/platform-workbench/WorkbenchSidebarMenuEntry.vue.d.ts +19 -0
  47. package/dist/types/platform-workbench/menuHoverClickIntent.d.ts +10 -0
  48. package/dist/types/platform-workbench/menuPointerAim.d.ts +1 -1
  49. package/dist/types/platform-workbench/workbenchLayout.d.ts +3 -0
  50. package/dist/types/views/applicationManagementState.d.ts +1 -1
  51. package/dist/types/views/fieldSpecManagementState.d.ts +1 -1
  52. package/dist/types/views/fieldUiControlManagementState.d.ts +1 -1
  53. package/dist/types/views/tenantManagementState.d.ts +11 -1
  54. package/dist/types/vue-ui-antdv/components/UiDataTable.vue.d.ts +1 -1
  55. package/dist/types/vue-ui-antdv/components/UiIcon.vue.d.ts +1 -1
  56. package/dist/types/vue-ui-antdv/components/UiTabs.vue.d.ts +6 -0
  57. package/dist/types/vue-ui-antdv/components/UiThemeProvider.vue.d.ts +21 -0
  58. package/dist/types/vue-ui-antdv/index.d.ts +3 -0
  59. package/dist/types/vue-ui-antdv/theme.d.ts +58 -0
  60. package/dist/types/vue-ui-antdv/themeGlobalScope.d.ts +2 -0
  61. package/dist/types/vue-ui-antdv/types.d.ts +1 -0
  62. package/dist/types/web-contracts/index.d.ts +58 -0
  63. package/dist/types/web-core/clients.d.ts +9 -1
  64. package/dist/types/web-core/index.d.ts +2 -0
  65. package/dist/types/web-core/mock.d.ts +3 -1
  66. package/dist/types/web-core/userPreferences.d.ts +24 -0
  67. package/dist/{useUserSessionRows-DX9qYU5r.js → useUserSessionRows-CBHEzRFQ.js} +2 -2
  68. package/dist/workspaceViewSessions-DkB9myrq.js +3252 -0
  69. package/package.json +1 -1
  70. package/dist/EmployeeManagementView-BfGb_ssB.js +0 -1706
  71. package/dist/RoleAuthorizationView-DJSWY3fu.js +0 -592
  72. package/dist/SystemUserManagementView-DNKRvmDk.js +0 -761
  73. package/dist/UserManagementView-aY2AeeWK.js +0 -965
  74. package/dist/workspaceViewSessions-C3GP1UGp.js +0 -2639
@@ -5,28 +5,36 @@ type __VLS_Props = {
5
5
  loading?: boolean;
6
6
  error?: string;
7
7
  activeTabKey?: string;
8
+ lockedTabKeys?: string[];
8
9
  realtimeStatus?: WorkbenchRealtimeStatus;
10
+ themeAppearance?: 'light' | 'dark';
9
11
  };
10
- declare var __VLS_92: {
12
+ declare var __VLS_88: {
11
13
  activeTab: MenuTab;
12
14
  target: MenuNavigationTarget | undefined;
13
15
  pageDescriptor: PageDescriptor | undefined;
14
16
  };
15
17
  type __VLS_Slots = {} & {
16
- default?: (props: typeof __VLS_92) => any;
18
+ default?: (props: typeof __VLS_88) => any;
17
19
  };
18
20
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
21
+ closeTabs: (keys: string[]) => any;
19
22
  selectMenu: (menu: MenuRecord, target: MenuNavigationTarget) => any;
20
23
  invalidMenu: (menu: MenuRecord) => any;
21
24
  changeTab: (key: string) => any;
22
25
  closeTab: (key: string) => any;
26
+ toggleTabLock: (key: string) => any;
27
+ reorderTabs: (keys: string[]) => any;
23
28
  "update:activeTabKey": (key: string) => any;
24
29
  userCommand: (key: string) => any;
25
30
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
31
+ onCloseTabs?: ((keys: string[]) => any) | undefined;
26
32
  onSelectMenu?: ((menu: MenuRecord, target: MenuNavigationTarget) => any) | undefined;
27
33
  onInvalidMenu?: ((menu: MenuRecord) => any) | undefined;
28
34
  onChangeTab?: ((key: string) => any) | undefined;
29
35
  onCloseTab?: ((key: string) => any) | undefined;
36
+ onToggleTabLock?: ((key: string) => any) | undefined;
37
+ onReorderTabs?: ((keys: string[]) => any) | undefined;
30
38
  "onUpdate:activeTabKey"?: ((key: string) => any) | undefined;
31
39
  onUserCommand?: ((key: string) => any) | undefined;
32
40
  }>, {
@@ -35,6 +43,8 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
35
43
  realtimeStatus: WorkbenchRealtimeStatus;
36
44
  startup: WorkbenchStartupState;
37
45
  activeTabKey: string;
46
+ lockedTabKeys: string[];
47
+ themeAppearance: "light" | "dark";
38
48
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
39
49
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
40
50
  declare const _default: typeof __VLS_export;
@@ -1,21 +1,41 @@
1
+ interface CompactMenuAnchor {
2
+ left: number;
3
+ top: number;
4
+ right: number;
5
+ bottom: number;
6
+ }
1
7
  type __VLS_Props = {
2
8
  presentation: 'compact' | 'expanded';
3
9
  compactOpen?: boolean;
4
10
  tenantLabel?: string;
11
+ logoSrc?: string;
12
+ showTitleArea?: boolean;
13
+ brandTitle?: string;
14
+ brandSubtitle?: string;
15
+ expandedMenuDepth?: 1 | 2 | 3;
16
+ presentationToggleVisible?: boolean;
5
17
  };
6
18
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
7
- openCompactMenu: (source: "click" | "focus" | "pointer") => any;
19
+ openCompactMenu: (source: "click" | "focus" | "pointer", anchor: CompactMenuAnchor) => any;
8
20
  scheduleCompactMenuClose: () => any;
9
21
  closeCompactMenu: () => any;
10
22
  changePresentation: (presentation: "compact" | "expanded") => any;
23
+ changeExpandedMenuDepth: (depth: 1 | 2 | 3) => any;
11
24
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
12
- onOpenCompactMenu?: ((source: "click" | "focus" | "pointer") => any) | undefined;
25
+ onOpenCompactMenu?: ((source: "click" | "focus" | "pointer", anchor: CompactMenuAnchor) => any) | undefined;
13
26
  onScheduleCompactMenuClose?: (() => any) | undefined;
14
27
  onCloseCompactMenu?: (() => any) | undefined;
15
28
  onChangePresentation?: ((presentation: "compact" | "expanded") => any) | undefined;
29
+ onChangeExpandedMenuDepth?: ((depth: 1 | 2 | 3) => any) | undefined;
16
30
  }>, {
17
31
  compactOpen: boolean;
18
32
  tenantLabel: string;
33
+ logoSrc: string;
34
+ showTitleArea: boolean;
35
+ brandTitle: string;
36
+ brandSubtitle: string;
37
+ expandedMenuDepth: 1 | 2 | 3;
38
+ presentationToggleVisible: boolean;
19
39
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
20
40
  declare const _default: typeof __VLS_export;
21
41
  export default _default;
@@ -4,14 +4,26 @@ type __VLS_Props = {
4
4
  menus: MenuTreeNode[];
5
5
  selectedMenuId?: string;
6
6
  tenantLabel?: string;
7
+ logoSrc?: string;
8
+ showTitleArea?: boolean;
9
+ brandTitle?: string;
10
+ brandSubtitle?: string;
7
11
  searchPlaceholder?: string;
8
12
  realtimeStatus?: WorkbenchRealtimeStatus;
9
13
  presentation?: 'compact' | 'expanded';
14
+ expandedMenuDepth?: 1 | 2 | 3;
10
15
  compactOpen?: boolean;
11
16
  compactTop?: number;
17
+ compactAnchor?: {
18
+ left: number;
19
+ top: number;
20
+ right: number;
21
+ bottom: number;
22
+ };
12
23
  };
13
24
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
14
25
  changePresentation: (presentation: "compact" | "expanded") => any;
26
+ changeExpandedMenuDepth: (depth: 1 | 2 | 3) => any;
15
27
  selectMenu: (menu: MenuRecord, target: MenuNavigationTarget) => any;
16
28
  invalidMenu: (menu: MenuRecord) => any;
17
29
  compactMenuEnter: () => any;
@@ -19,6 +31,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
19
31
  compactMenuClose: () => any;
20
32
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
21
33
  onChangePresentation?: ((presentation: "compact" | "expanded") => any) | undefined;
34
+ onChangeExpandedMenuDepth?: ((depth: 1 | 2 | 3) => any) | undefined;
22
35
  onSelectMenu?: ((menu: MenuRecord, target: MenuNavigationTarget) => any) | undefined;
23
36
  onInvalidMenu?: ((menu: MenuRecord) => any) | undefined;
24
37
  onCompactMenuEnter?: (() => any) | undefined;
@@ -28,10 +41,21 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
28
41
  presentation: "compact" | "expanded";
29
42
  compactOpen: boolean;
30
43
  tenantLabel: string;
44
+ logoSrc: string;
45
+ showTitleArea: boolean;
46
+ brandTitle: string;
47
+ brandSubtitle: string;
48
+ expandedMenuDepth: 1 | 2 | 3;
31
49
  selectedMenuId: string;
32
50
  searchPlaceholder: string;
33
51
  realtimeStatus: WorkbenchRealtimeStatus;
34
52
  compactTop: number;
53
+ compactAnchor: {
54
+ left: number;
55
+ top: number;
56
+ right: number;
57
+ bottom: number;
58
+ };
35
59
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
36
60
  declare const _default: typeof __VLS_export;
37
61
  export default _default;
@@ -0,0 +1,19 @@
1
+ import type { WorkbenchMenuNode } from './menuTreeModel';
2
+ type __VLS_Props = {
3
+ node: WorkbenchMenuNode;
4
+ mode: 'inline' | 'flyout';
5
+ selected?: boolean;
6
+ selectedPath?: boolean;
7
+ active?: boolean;
8
+ };
9
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
10
+ select: (node: WorkbenchMenuNode) => any;
11
+ openChildren: (node: WorkbenchMenuNode, event: MouseEvent, anchor: HTMLElement) => any;
12
+ toggleChildren: (node: WorkbenchMenuNode, anchor: HTMLElement) => any;
13
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
14
+ onSelect?: ((node: WorkbenchMenuNode) => any) | undefined;
15
+ onOpenChildren?: ((node: WorkbenchMenuNode, event: MouseEvent, anchor: HTMLElement) => any) | undefined;
16
+ onToggleChildren?: ((node: WorkbenchMenuNode, anchor: HTMLElement) => any) | undefined;
17
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
18
+ declare const _default: typeof __VLS_export;
19
+ export default _default;
@@ -0,0 +1,10 @@
1
+ export interface MenuHoverClickIntent {
2
+ markHoverActivation(menuId: string): void;
3
+ consumeImmediateClick(menuId: string): boolean;
4
+ clear(): void;
5
+ }
6
+ /**
7
+ * Treats the hover activation immediately preceding a click as the same open intent.
8
+ * A later click remains a deliberate toggle and may close the active menu.
9
+ */
10
+ export declare function createMenuHoverClickIntent(gracePeriod: number, now?: () => number): MenuHoverClickIntent;
@@ -7,5 +7,5 @@ export interface MenuPanelEdge {
7
7
  top: number;
8
8
  bottom: number;
9
9
  }
10
- /** Keeps an active root menu open while the pointer crosses towards its panel. */
10
+ /** Keeps the active menu item stable while the pointer crosses towards its flyout panel. */
11
11
  export declare function isPointerHeadingToMenuPanel(pointer: MenuPointerPosition, origin: MenuPointerPosition, panel: MenuPanelEdge): boolean;
@@ -1 +1,4 @@
1
1
  export declare function compactMenuTopOf(topbarBottom: number, workbenchTop: number): number;
2
+ export declare function floatingPanelTopOf(anchorViewportTop: number, panelHeight: number, viewportHeight: number, shellViewportTop: number, margin?: number): number;
3
+ export type WorkbenchMenuPresentation = 'compact' | 'expanded';
4
+ export declare function effectiveWorkbenchMenuPresentation(preferredPresentation: WorkbenchMenuPresentation, narrowViewport: boolean): WorkbenchMenuPresentation;
@@ -57,7 +57,7 @@ export declare function createApplicationManagementState(applicationContext: Mod
57
57
  startCreate: () => void;
58
58
  startEdit: () => void;
59
59
  cancelEdit: () => void;
60
- save: () => Promise<void>;
60
+ save: () => Promise<boolean>;
61
61
  toggleEnabled: () => Promise<void>;
62
62
  removeSelected: () => Promise<void>;
63
63
  };
@@ -73,7 +73,7 @@ export declare function createFieldSpecManagementState(fieldSpecContext: ModuleC
73
73
  startCreate: () => void;
74
74
  startEdit: () => void;
75
75
  cancelEdit: () => void;
76
- save: () => Promise<void>;
76
+ save: () => Promise<boolean>;
77
77
  toggleEnabled: () => Promise<void>;
78
78
  removeSelected: () => Promise<void>;
79
79
  };
@@ -69,7 +69,7 @@ export declare function createFieldUiControlManagementState(fieldUiControlContex
69
69
  startCreate: () => void;
70
70
  startEdit: () => void;
71
71
  cancelEdit: () => void;
72
- save: () => Promise<void>;
72
+ save: () => Promise<boolean>;
73
73
  toggleEnabled: () => Promise<void>;
74
74
  removeSelected: () => Promise<void>;
75
75
  };
@@ -13,6 +13,11 @@ export declare function createTenantManagementState(tenantContext: ModuleContext
13
13
  selected: import("vue").Ref<Tenant | undefined, Tenant | undefined>;
14
14
  draft: import("vue").Ref<{
15
15
  alias?: string | undefined;
16
+ lightLogoAssetId?: string | undefined;
17
+ darkLogoAssetId?: string | undefined;
18
+ workbenchBrandMode?: "logoOnly" | "logoWithTitle" | undefined;
19
+ workbenchTitle?: string | undefined;
20
+ workbenchSubtitle?: string | undefined;
16
21
  enabled?: boolean | undefined;
17
22
  sortOrder?: number | undefined;
18
23
  title?: string | undefined;
@@ -27,6 +32,11 @@ export declare function createTenantManagementState(tenantContext: ModuleContext
27
32
  updatedAt?: string | undefined;
28
33
  }, Tenant | {
29
34
  alias?: string | undefined;
35
+ lightLogoAssetId?: string | undefined;
36
+ darkLogoAssetId?: string | undefined;
37
+ workbenchBrandMode?: "logoOnly" | "logoWithTitle" | undefined;
38
+ workbenchTitle?: string | undefined;
39
+ workbenchSubtitle?: string | undefined;
30
40
  enabled?: boolean | undefined;
31
41
  sortOrder?: number | undefined;
32
42
  title?: string | undefined;
@@ -57,7 +67,7 @@ export declare function createTenantManagementState(tenantContext: ModuleContext
57
67
  startCreate: () => void;
58
68
  startEdit: () => void;
59
69
  cancelEdit: () => void;
60
- save: () => Promise<void>;
70
+ save: () => Promise<boolean>;
61
71
  toggleEnabled: () => Promise<void>;
62
72
  removeSelected: () => Promise<void>;
63
73
  };
@@ -47,8 +47,8 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
47
47
  }>, {
48
48
  loading: boolean;
49
49
  size: "small" | "middle" | "large";
50
- rowKey: string | ((record: UiDataTableRecord) => string);
51
50
  pagination: false | UiDataTablePagination;
51
+ rowKey: string | ((record: UiDataTableRecord) => string);
52
52
  selection: UiDataTableSelection;
53
53
  selectedRowKey: string;
54
54
  expandedRowKeys: string[];
@@ -1,4 +1,4 @@
1
- export type UiIconName = 'app' | 'check' | 'close' | 'delete' | 'down' | 'edit' | 'export' | 'filter' | 'help' | 'lock' | 'menu-collapse' | 'menu-expand' | 'notification' | 'plus' | 'power' | 'reload' | 'save' | 'search' | 'settings';
1
+ export type UiIconName = 'app' | 'check' | 'close' | 'delete' | 'down' | 'edit' | 'export' | 'filter' | 'help' | 'left' | 'lock' | 'menu-collapse' | 'menu-expand' | 'notification' | 'plus' | 'pin' | 'power' | 'reload' | 'right' | 'save' | 'search' | 'skin' | 'settings';
2
2
  type __VLS_Props = {
3
3
  name: UiIconName;
4
4
  };
@@ -6,9 +6,15 @@ type __VLS_Props = {
6
6
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
7
7
  close: (key: string) => any;
8
8
  "update:activeKey": (key: string) => any;
9
+ closeTabs: (keys: string[]) => any;
10
+ togglePin: (key: string) => any;
11
+ reorder: (keys: string[]) => any;
9
12
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
10
13
  onClose?: ((key: string) => any) | undefined;
11
14
  "onUpdate:activeKey"?: ((key: string) => any) | undefined;
15
+ onCloseTabs?: ((keys: string[]) => any) | undefined;
16
+ onTogglePin?: ((key: string) => any) | undefined;
17
+ onReorder?: ((keys: string[]) => any) | undefined;
12
18
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
13
19
  declare const _default: typeof __VLS_export;
14
20
  export default _default;
@@ -0,0 +1,21 @@
1
+ import { type UiTheme } from '../theme';
2
+ type __VLS_Props = {
3
+ theme?: UiTheme;
4
+ scope?: 'local' | 'global';
5
+ };
6
+ declare var __VLS_7: {};
7
+ type __VLS_Slots = {} & {
8
+ default?: (props: typeof __VLS_7) => any;
9
+ };
10
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
11
+ scope: "local" | "global";
12
+ theme: UiTheme;
13
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
14
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
15
+ declare const _default: typeof __VLS_export;
16
+ export default _default;
17
+ type __VLS_WithSlots<T, S> = T & {
18
+ new (): {
19
+ $slots: S;
20
+ };
21
+ };
@@ -12,6 +12,7 @@ export { default as UiTextArea } from './components/UiTextArea.vue';
12
12
  export { default as UiSelect } from './components/UiSelect.vue';
13
13
  export { default as UiTreeSelect } from './components/UiTreeSelect.vue';
14
14
  export { default as UiTooltip } from './components/UiTooltip.vue';
15
+ export { default as UiThemeProvider } from './components/UiThemeProvider.vue';
15
16
  export { default as UiSwitch } from './components/UiSwitch.vue';
16
17
  export { default as UiMenu } from './components/UiMenu.vue';
17
18
  export { default as UiTabs } from './components/UiTabs.vue';
@@ -36,4 +37,6 @@ export { resolveFieldComponent } from './registry';
36
37
  export type { UiIconName } from './components/UiIcon.vue';
37
38
  export type { UiTagListItem } from './components/UiTagList.vue';
38
39
  export type { UiSidePanelScope } from './components/sidePanelHost';
40
+ export { antDesignThemeOf, cssVariablesOf, defaultUiTheme, defaultUiThemeSkinId, uiThemeSkinById, uiThemeSkins, } from './theme';
41
+ export type { UiSupportTheme, UiTheme, UiThemeSkin, UiThemeSkinId, UiThemeTone } from './theme';
39
42
  export type { UiConfirmOptions, UiDataTableColumn, UiDataTableKey, UiDataTablePagination, UiDataTableRecord, UiDataTableSelection, UiDropdownItem, UiMenuItem, UiRecordInlineAction, UiTabItem, UiTreeNode, UiTreeNodeAction, } from './types';
@@ -0,0 +1,58 @@
1
+ import type { ThemeConfig } from 'ant-design-vue/es/config-provider/context';
2
+ export interface UiThemeTone {
3
+ base: string;
4
+ onBase: string;
5
+ hover: string;
6
+ active: string;
7
+ soft: string;
8
+ softText: string;
9
+ border: string;
10
+ focus: string;
11
+ disabled: string;
12
+ disabledText: string;
13
+ }
14
+ export interface UiSupportTheme {
15
+ page: string;
16
+ canvas: string;
17
+ surface: string;
18
+ elevated: string;
19
+ hover: string;
20
+ border: string;
21
+ borderSubtle: string;
22
+ text: string;
23
+ textBody: string;
24
+ textMuted: string;
25
+ icon: string;
26
+ disabled: string;
27
+ disabledText: string;
28
+ }
29
+ /** Visual treatment for the global theme-skin entry point. */
30
+ export interface UiSkinPickerTheme {
31
+ borderGradient: string;
32
+ glow: string;
33
+ focusRing: string;
34
+ }
35
+ export interface UiTheme {
36
+ appearance: 'light' | 'dark';
37
+ theme: UiThemeTone;
38
+ brandAccent: UiThemeTone;
39
+ support: UiSupportTheme;
40
+ skinPicker: UiSkinPickerTheme;
41
+ positive: UiThemeTone;
42
+ warning: UiThemeTone;
43
+ danger: UiThemeTone;
44
+ info: UiThemeTone;
45
+ }
46
+ export interface UiThemeSkin {
47
+ id: UiThemeSkinId;
48
+ title: string;
49
+ description: string;
50
+ theme: UiTheme;
51
+ }
52
+ export type UiThemeSkinId = 'light-blue' | 'light-amber' | 'dark-navy' | 'dark-graphite';
53
+ export declare const defaultUiTheme: UiTheme;
54
+ export declare const uiThemeSkins: readonly UiThemeSkin[];
55
+ export declare const defaultUiThemeSkinId: UiThemeSkinId;
56
+ export declare function uiThemeSkinById(value: unknown): UiThemeSkin;
57
+ export declare function cssVariablesOf(theme: UiTheme): Record<`--muyun-${string}`, string>;
58
+ export declare function antDesignThemeOf(theme: UiTheme): ThemeConfig;
@@ -0,0 +1,2 @@
1
+ export declare function installGlobalThemeVariables(providerId: symbol, variables: Record<`--muyun-${string}`, string>): void;
2
+ export declare function removeGlobalThemeVariables(providerId: symbol): void;
@@ -29,6 +29,7 @@ export interface UiTabItem {
29
29
  key: string;
30
30
  title: string;
31
31
  closable?: boolean;
32
+ pinned?: boolean;
32
33
  }
33
34
  export interface UiDropdownItem {
34
35
  key: string;
@@ -104,8 +104,50 @@ export interface CurrentUser {
104
104
  passwordChangeRequired?: boolean;
105
105
  timeZone?: string;
106
106
  }
107
+ export interface CurrentUserProfilePosition {
108
+ id?: string;
109
+ title?: string;
110
+ primary?: boolean;
111
+ }
112
+ export interface CurrentUserEmployeeProfile {
113
+ id?: string;
114
+ employeeNo?: string;
115
+ title?: string;
116
+ avatarAssetId?: string;
117
+ mobile?: string;
118
+ email?: string;
119
+ organizationId?: string;
120
+ organizationTitle?: string;
121
+ departmentId?: string;
122
+ departmentTitle?: string;
123
+ contactEditable?: boolean;
124
+ positions?: CurrentUserProfilePosition[];
125
+ }
126
+ export interface CurrentUserProfile {
127
+ username?: string;
128
+ timeZone?: string;
129
+ employee?: CurrentUserEmployeeProfile;
130
+ }
131
+ export interface UpdateCurrentUserProfileRequest {
132
+ mobile?: string;
133
+ email?: string;
134
+ avatarAssetId?: string;
135
+ }
107
136
  export interface SessionContext {
108
137
  currentUser: CurrentUser;
138
+ tenantBranding?: TenantBranding;
139
+ }
140
+ export interface TenantBranding {
141
+ lightLogo?: string;
142
+ darkLogo?: string;
143
+ mode?: 'logoOnly' | 'logoWithTitle';
144
+ title?: string;
145
+ subtitle?: string;
146
+ }
147
+ /** Public branding facts for a tenant locked by the unauthenticated login URL. */
148
+ export interface TenantLoginContext {
149
+ tenantId: string;
150
+ branding?: TenantBranding;
109
151
  }
110
152
  export interface LoginRequest {
111
153
  tenantId?: string;
@@ -374,6 +416,13 @@ export interface ViewFieldDefinition {
374
416
  /** Maximum visible lines for text cells in standard list views. Omitted uses the platform default of one line. */
375
417
  maxDisplayLines?: number;
376
418
  }
419
+ /** Semantic group that owns a contiguous set of standard-form fields. */
420
+ export interface FormGroupDescriptor {
421
+ groupCode: string;
422
+ title: string;
423
+ subtitle?: string;
424
+ fields: ViewFieldRef[];
425
+ }
377
426
  export interface BooleanStatusPresentation {
378
427
  trueLabel: string;
379
428
  falseLabel: string;
@@ -438,6 +487,7 @@ export interface ViewDefinition {
438
487
  clientType?: ModuleUiClientType;
439
488
  title?: string;
440
489
  fields: ViewFieldDefinition[];
490
+ formGroups?: FormGroupDescriptor[];
441
491
  }
442
492
  export interface ResolvedViewDescriptor {
443
493
  viewCode: string;
@@ -448,6 +498,7 @@ export interface ResolvedViewDescriptor {
448
498
  /** Dynamic-page provenance used to select the view configured by a menu entry. */
449
499
  sourceUiConfigId?: string;
450
500
  scopedListWorkspace?: ResolvedScopedListWorkspaceDescriptor;
501
+ formGroups?: FormGroupDescriptor[];
451
502
  }
452
503
  export interface ResolvedUiActionConfirmationDescriptor {
453
504
  mode: 'typedText';
@@ -474,7 +525,9 @@ export interface ResolvedFileReferenceFieldDescriptor {
474
525
  allowedMediaTypes: string[];
475
526
  maxFileSizeBytes?: number;
476
527
  maxFiles: number;
528
+ storagePolicy: 'MUYUN_FILE_SERVER' | 'DATABASE_INLINE';
477
529
  uploadAvailable: boolean;
530
+ readAvailable: boolean;
478
531
  }
479
532
  export interface ModuleUiDefinition {
480
533
  moduleAlias: string;
@@ -816,6 +869,11 @@ export interface ModuleMetadataRelation extends StandardSortableEntity {
816
869
  }
817
870
  export interface Tenant extends StandardEnabledSortableEntity {
818
871
  alias?: string;
872
+ lightLogoAssetId?: string;
873
+ darkLogoAssetId?: string;
874
+ workbenchBrandMode?: 'logoOnly' | 'logoWithTitle';
875
+ workbenchTitle?: string;
876
+ workbenchSubtitle?: string;
819
877
  }
820
878
  export interface FieldSpec extends StandardEnabledSortableEntity {
821
879
  alias?: string;
@@ -1,7 +1,8 @@
1
- import type { ChangeOwnPasswordRequest, CurrentUser, LoginRequest, LoginResult, MenuMineResponse, PageBootstrap } from '../web-contracts/index';
1
+ import type { ChangeOwnPasswordRequest, CurrentUserProfile, CurrentUser, LoginRequest, LoginResult, UpdateCurrentUserProfileRequest, MenuMineResponse, PageBootstrap, TenantBranding, TenantLoginContext } from '../web-contracts/index';
2
2
  import type { HttpClient } from './http';
3
3
  export interface SessionClient {
4
4
  current(): Promise<CurrentUser>;
5
+ tenantBranding?(): Promise<TenantBranding>;
5
6
  }
6
7
  export interface MenuClient {
7
8
  mine(): Promise<MenuMineResponse>;
@@ -13,9 +14,16 @@ export interface PageBootstrapClient {
13
14
  export interface AuthClient {
14
15
  login(request: LoginRequest): Promise<LoginResult>;
15
16
  changeOwnPassword(request: ChangeOwnPasswordRequest, token: string): Promise<void>;
17
+ currentProfile(token: string): Promise<CurrentUserProfile>;
18
+ updateCurrentProfile(request: UpdateCurrentUserProfileRequest, token: string): Promise<CurrentUserProfile>;
16
19
  logout(token?: string): Promise<void>;
17
20
  }
21
+ /** Resolves the public context used by a tenant-locked login entry. */
22
+ export interface LoginContextClient {
23
+ loginContext(tenantId: string): Promise<TenantLoginContext>;
24
+ }
18
25
  export declare function createSessionClient(http: HttpClient): SessionClient;
26
+ export declare function createLoginContextClient(http: HttpClient): LoginContextClient;
19
27
  export declare function createMenuClient(http: HttpClient): MenuClient;
20
28
  export declare function createPageBootstrapClient(http: HttpClient): PageBootstrapClient;
21
29
  /**
@@ -5,4 +5,6 @@ export * from './actionResult';
5
5
  export * from './dataChanges';
6
6
  export * from './realtime';
7
7
  export * from './clients';
8
+ export { userPreferences } from './userPreferences';
9
+ export type { UserPreferenceOptions, UserPreferenceStore } from './userPreferences';
8
10
  export * from './module/index';
@@ -3,4 +3,6 @@ import type { MenuClient, SessionClient } from './index';
3
3
  export declare function createMockSessionClient(currentUser?: CurrentUser): SessionClient;
4
4
  export declare function createMockMenuClient(records?: WebTreeNode<MenuRecord>[]): MenuClient;
5
5
  export declare const mockCurrentUser: CurrentUser;
6
- export declare const mockMenuTree: WebTreeNode<MenuRecord>[];
6
+ type MockMenuNode = WebTreeNode<MenuRecord>;
7
+ export declare const mockMenuTree: MockMenuNode[];
8
+ export {};
@@ -0,0 +1,24 @@
1
+ export interface UserPreferenceOptions {
2
+ /**
3
+ * Local persistence is the default. `backend` reserves the preference for the current account
4
+ * and never silently falls back to device-local storage.
5
+ */
6
+ persistence?: 'local' | 'backend';
7
+ }
8
+ export interface UserPreferenceStore {
9
+ get<T>(key: string, fallback: T): T;
10
+ restore<T>(key: string, fallback: T, options?: UserPreferenceOptions): Promise<T>;
11
+ set<T>(key: string, value: T, options?: UserPreferenceOptions): Promise<void>;
12
+ remove(key: string, options?: UserPreferenceOptions): Promise<void>;
13
+ }
14
+ /** Internal application-composition bridge; business code only uses userPreferences. */
15
+ export interface UserPreferenceBackend {
16
+ load(key: string): Promise<string | undefined>;
17
+ save(key: string, valueJson: string): Promise<void>;
18
+ remove(key: string): Promise<void>;
19
+ }
20
+ export declare function configureUserPreferenceBackend(value: UserPreferenceBackend | undefined): void;
21
+ /**
22
+ * Source-neutral user preference facade. Platform code owns the active persistence route.
23
+ */
24
+ export declare const userPreferences: UserPreferenceStore;
@@ -1,5 +1,5 @@
1
- import { $ as e } from "./platform-components-DuAohqJO.js";
2
- import { t } from "./pageRealtime-Be2xkeKK.js";
1
+ import { tt as e } from "./platform-components-DKKWbNrz.js";
2
+ import { t } from "./pageRealtime-CzJlr9hs.js";
3
3
  import { ref as n } from "vue";
4
4
  //#region src/views/useUserSessionRows.ts
5
5
  function r(r) {