@ximatai/muyun-web-app 0.26.23 → 0.26.25

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 (80) hide show
  1. package/dist/{BusinessActivityLogView-IWGZiPLo.js → BusinessActivityLogView-a6oZ2t9t.js} +2 -2
  2. package/dist/{BusinessLogListDrawer-UCsg6psI.js → BusinessLogListDrawer-DtSXpK6g.js} +135 -131
  3. package/dist/{CodeConfigurationView-Calkazua.js → CodeConfigurationView-BVu1ZnH-.js} +366 -366
  4. package/dist/{ConfigurationTranslationView-fZrlRAMy.js → ConfigurationTranslationView-Cd8ezR4t.js} +44 -44
  5. package/dist/{LoginAuditLogView-B6J7t__0.js → LoginAuditLogView-DyvHTCXH.js} +2 -2
  6. package/dist/ModuleActionManagementView-y3t2YHKF.js +780 -0
  7. package/dist/{ModuleGovernanceView-D8ONs78K.js → ModuleGovernanceView-BqJq2Pxm.js} +3521 -3521
  8. package/dist/{RequestErrorLogView-poMgx4_6.js → RequestErrorLogView-2iPeAi3b.js} +2 -2
  9. package/dist/{RoleDetailWorkspaceView-6Bs1eKbm.js → RoleDetailWorkspaceView-G-5VAV_B.js} +54 -54
  10. package/dist/{RuntimeLogView-Co-Z86bt.js → RuntimeLogView-CulSgS0l.js} +61 -61
  11. package/dist/WorkflowAdministrationView-y8VBYMLZ.js +650 -0
  12. package/dist/{WorkflowConfigurationView-mSyL_-We.js → WorkflowConfigurationView-DpONX2nN.js} +290 -290
  13. package/dist/{WorkflowWorkbenchView-DBMh3ycN.js → WorkflowWorkbenchView-CGo1eZjr.js} +215 -215
  14. package/dist/{codeConfiguration-D1zrxzoW.js → codeConfiguration-fZiz0PNC.js} +27 -27
  15. package/dist/index.css +1 -1
  16. package/dist/index.js +2407 -1222
  17. package/dist/{moduleMenuWorkspace-lIVrTaOB.js → moduleMenuWorkspace-AZ4G9BpZ.js} +222 -222
  18. package/dist/{platform-components-D0T03KGl.js → platform-components-D98pyZ77.js} +4296 -3497
  19. package/dist/{platform-workbench-CobObbuz.js → platform-workbench-BBLDvT9V.js} +6311 -6111
  20. package/dist/types/app/CurrentUserProfileDialog.vue.d.ts +9 -0
  21. package/dist/types/app/ExternalIdentityBindings.vue.d.ts +8 -0
  22. package/dist/types/app/ExternalProvisioningConfirmation.vue.d.ts +15 -0
  23. package/dist/types/app/LoginView.vue.d.ts +3 -1
  24. package/dist/types/app/PersonalAccessTokenDialog.vue.d.ts +15 -0
  25. package/dist/types/app/PersonalAccessTokens.vue.d.ts +8 -0
  26. package/dist/types/app/WeLinkQrCode.vue.d.ts +11 -0
  27. package/dist/types/app/WorkbenchAccountCenter.vue.d.ts +40 -0
  28. package/dist/types/app/externalLoginReturn.d.ts +38 -0
  29. package/dist/types/app/themeSkinPreference.d.ts +2 -2
  30. package/dist/types/app/useCurrentUserProfile.d.ts +1 -0
  31. package/dist/types/app/useExternalLoginHost.d.ts +27 -0
  32. package/dist/types/app/usePersonalAccessTokenAccess.d.ts +11 -0
  33. package/dist/types/app/weLinkQrCode.d.ts +22 -0
  34. package/dist/types/consumer/AppWorkbenchShell.vue.d.ts +20 -4
  35. package/dist/types/consumer/index.d.ts +16 -2
  36. package/dist/types/dynamic-page-runtime/ManagedDetailRelationInlineSurface.vue.d.ts +1 -0
  37. package/dist/types/dynamic-page-runtime/ManagedDetailRelationSurface.vue.d.ts +1 -0
  38. package/dist/types/dynamic-page-runtime/ModulePageBusinessSession.d.ts +4 -0
  39. package/dist/types/dynamic-page-runtime/ModulePageDetailRelations.vue.d.ts +1 -0
  40. package/dist/types/dynamic-page-runtime/ModulePageHostRuntime.vue.d.ts +11 -15
  41. package/dist/types/dynamic-page-runtime/composables/useModulePageDetailActionRuntime.d.ts +2 -0
  42. package/dist/types/dynamic-page-runtime/formCreateDefaults.d.ts +3 -0
  43. package/dist/types/dynamic-page-runtime/useModulePageSession.d.ts +2 -0
  44. package/dist/types/platform-admin-runtime/authSession.d.ts +2 -0
  45. package/dist/types/platform-admin-runtime/index.d.ts +1 -1
  46. package/dist/types/platform-admin-runtime/job/ScheduledActionTargetFields.vue.d.ts +7 -0
  47. package/dist/types/platform-admin-runtime/scheduledActionPlanPageEnhancement.d.ts +3 -0
  48. package/dist/types/platform-components/BusinessNotificationCard.vue.d.ts +30 -0
  49. package/dist/types/platform-components/BusinessNotificationPanel.vue.d.ts +4 -39
  50. package/dist/types/platform-components/CronExpressionInput.vue.d.ts +12 -0
  51. package/dist/types/platform-components/DurationSecondsInput.vue.d.ts +10 -0
  52. package/dist/types/platform-components/FileTransferUploader.vue.d.ts +1 -1
  53. package/dist/types/platform-components/RecordExplorerPanel.vue.d.ts +8 -17
  54. package/dist/types/platform-components/RecordFileReferenceTransfer.vue.d.ts +2 -0
  55. package/dist/types/platform-components/RecordFormFields.vue.d.ts +2 -2
  56. package/dist/types/platform-components/SingleImageFileReferenceField.vue.d.ts +4 -0
  57. package/dist/types/platform-components/cronExpression.d.ts +36 -0
  58. package/dist/types/platform-components/durationSeconds.d.ts +31 -0
  59. package/dist/types/platform-components/fileReferenceTransfer.d.ts +9 -2
  60. package/dist/types/platform-components/index.d.ts +6 -0
  61. package/dist/types/platform-components/managementWorkspaceContext.d.ts +2 -1
  62. package/dist/types/platform-components/useNotificationDeckMotion.d.ts +7 -0
  63. package/dist/types/platform-workbench/Workbench.vue.d.ts +13 -4
  64. package/dist/types/platform-workbench/WorkbenchGlobalTools.vue.d.ts +5 -0
  65. package/dist/types/platform-workbench/WorkbenchOutlet.vue.d.ts +11 -1
  66. package/dist/types/platform-workbench/index.d.ts +3 -0
  67. package/dist/types/platform-workbench/workbenchAccountMenu.d.ts +33 -0
  68. package/dist/types/platform-workbench/workspaceViewDiscardGuard.d.ts +1 -1
  69. package/dist/types/views/businessLogClient.d.ts +2 -0
  70. package/dist/types/views/businessRuleGovernance.d.ts +1 -0
  71. package/dist/types/vue-ui-antdv/components/UiInputGroup.vue.d.ts +20 -0
  72. package/dist/types/vue-ui-antdv/components/UiTextArea.vue.d.ts +2 -0
  73. package/dist/types/vue-ui-antdv/index.d.ts +1 -0
  74. package/dist/types/web-contracts/index.d.ts +87 -2
  75. package/dist/types/web-core/clients.d.ts +25 -1
  76. package/dist/{useWorkflowConfigurationContext-BkcNPU2H.js → useWorkflowConfigurationContext-BcK19EXl.js} +6 -6
  77. package/dist/{workspaceViews-BtqO8rU0.js → workspaceViews-Dr7RZXvX.js} +1139 -983
  78. package/package.json +1 -1
  79. package/dist/ModuleActionManagementView-BZ89Woex.js +0 -755
  80. package/dist/WorkflowAdministrationView-D7QpRHDp.js +0 -650
@@ -1,50 +1,15 @@
1
1
  import type { WebBusinessNotification, WebBusinessNotificationAction } from '../web-contracts/index';
2
2
  type __VLS_Props = {
3
3
  notifications: WebBusinessNotification[];
4
- /** Allows a consumer to opt an individual card into the optional right-hand attachment area. */
4
+ /** Opt a card into the optional right-hand attachment area. */
5
5
  hasAccessory?: (notification: WebBusinessNotification) => boolean;
6
6
  executeAction: (notification: WebBusinessNotification, action: WebBusinessNotificationAction) => void | boolean | Promise<void | boolean>;
7
7
  };
8
- declare var __VLS_33: {
9
- notification: {
10
- title: string;
11
- subtitle: string;
12
- content: string;
13
- actions: ({
14
- label: string;
15
- kind: "navigate";
16
- key: string;
17
- moduleAlias: string;
18
- recordId?: string;
19
- pageMode?: "LIST" | "FORM" | "DETAIL";
20
- query?: Record<string, string>;
21
- placement?: "leading" | "trailing";
22
- dismissOnSuccess: boolean;
23
- } | {
24
- label: string;
25
- kind: "record";
26
- key: string;
27
- moduleAlias: string;
28
- recordId: string;
29
- actionCode: string;
30
- arguments?: Record<string, unknown>;
31
- danger?: boolean;
32
- confirmation?: string;
33
- placement?: "leading" | "trailing";
34
- dismissOnSuccess: boolean;
35
- })[];
36
- textResources?: Record<string, import("../web-contracts/index").TextPresentation>;
37
- id: string;
38
- code: string;
39
- dismissible: boolean;
40
- displayPolicy?: "standard" | "persistent";
41
- expiresAt?: string;
42
- tone?: import("../web-contracts/index").WebBusinessNotificationTone;
43
- occurredAt?: string;
44
- };
8
+ declare var __VLS_17: {
9
+ notification: WebBusinessNotification;
45
10
  };
46
11
  type __VLS_Slots = {} & {
47
- accessory?: (props: typeof __VLS_33) => any;
12
+ accessory?: (props: typeof __VLS_17) => any;
48
13
  };
49
14
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
50
15
  dismiss: (notificationId: string) => any;
@@ -0,0 +1,12 @@
1
+ import { type CronExpressionInputProps, type CronInputValidity } from './cronExpression';
2
+ declare const __VLS_export: import("vue").DefineComponent<CronExpressionInputProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
3
+ "update:value": (value: string) => any;
4
+ "validity-change": (validity: CronInputValidity) => any;
5
+ }, string, import("vue").PublicProps, Readonly<CronExpressionInputProps> & Readonly<{
6
+ "onUpdate:value"?: ((value: string) => any) | undefined;
7
+ "onValidity-change"?: ((validity: CronInputValidity) => any) | undefined;
8
+ }>, {
9
+ showFeedback: boolean;
10
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
11
+ declare const _default: typeof __VLS_export;
12
+ export default _default;
@@ -0,0 +1,10 @@
1
+ import { type DurationSecondsInputProps } from './durationSeconds';
2
+ declare const __VLS_export: import("vue").DefineComponent<DurationSecondsInputProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
3
+ "update:value": (value: number | undefined) => any;
4
+ "error-change": (message: string | undefined) => any;
5
+ }, string, import("vue").PublicProps, Readonly<DurationSecondsInputProps> & Readonly<{
6
+ "onUpdate:value"?: ((value: number | undefined) => any) | undefined;
7
+ "onError-change"?: ((message: string | undefined) => any) | undefined;
8
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
9
+ declare const _default: typeof __VLS_export;
10
+ export default _default;
@@ -5,7 +5,7 @@ type __VLS_Props = {
5
5
  requestUploadAccess?: (file: File) => Promise<FileTransferUploadAccess>;
6
6
  /** Storage-specific transport; ordinary FileServer fields continue to use upload access tickets. */
7
7
  uploadFile?: (file: File) => Promise<FileTransferUploadReceipt>;
8
- /** Optional business callback after upload. Standard file-reference fields leave this undefined. */
8
+ /** Optional platform or business confirmation before completing the upload and binding its result. */
9
9
  confirmUpload?: (receipt: FileTransferUploadReceipt) => Promise<unknown>;
10
10
  accept?: string;
11
11
  allowedMediaTypes?: string[];
@@ -12,23 +12,14 @@ type __VLS_Props = {
12
12
  collapseAction?: boolean;
13
13
  utilityPlacement?: 'header' | 'toolbar';
14
14
  };
15
- declare var __VLS_10: {}, __VLS_13: {}, __VLS_25: {}, __VLS_34: {}, __VLS_36: {}, __VLS_60: {}, __VLS_62: {}, __VLS_64: {};
16
- type __VLS_Slots = {} & {
17
- title?: (props: typeof __VLS_10) => any;
18
- } & {
19
- 'title-extra'?: (props: typeof __VLS_13) => any;
20
- } & {
21
- 'utility-actions'?: (props: typeof __VLS_25) => any;
22
- } & {
23
- actions?: (props: typeof __VLS_34) => any;
24
- } & {
25
- 'utility-actions'?: (props: typeof __VLS_36) => any;
26
- } & {
27
- default?: (props: typeof __VLS_60) => any;
28
- } & {
29
- footer?: (props: typeof __VLS_62) => any;
30
- } & {
31
- editor?: (props: typeof __VLS_64) => any;
15
+ type __VLS_Slots = {
16
+ default?: () => unknown;
17
+ footer?: () => unknown;
18
+ title?: () => unknown;
19
+ 'title-extra'?: () => unknown;
20
+ 'utility-actions'?: () => unknown;
21
+ actions?: () => unknown;
22
+ editor?: () => unknown;
32
23
  };
33
24
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
34
25
  refresh: () => any;
@@ -26,8 +26,10 @@ type __VLS_Props = {
26
26
  };
27
27
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
28
28
  "update:value": (value: string | string[] | undefined) => any;
29
+ "update:record-id": (recordId: string) => any;
29
30
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
30
31
  "onUpdate:value"?: ((value: string | string[] | undefined) => any) | undefined;
32
+ "onUpdate:record-id"?: ((recordId: string) => any) | undefined;
31
33
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
32
34
  declare const _default: typeof __VLS_export;
33
35
  export default _default;
@@ -43,7 +43,7 @@ declare var __VLS_9: {
43
43
  group: import("../web-contracts/index").FormGroupDescriptor | undefined;
44
44
  }, __VLS_20: {
45
45
  field: RecordFormFieldState;
46
- }, __VLS_225: {
46
+ }, __VLS_251: {
47
47
  field: RecordFormFieldState;
48
48
  };
49
49
  type __VLS_Slots = {} & {
@@ -53,7 +53,7 @@ type __VLS_Slots = {} & {
53
53
  } & {
54
54
  'field-actions'?: (props: typeof __VLS_20) => any;
55
55
  } & {
56
- 'after-field'?: (props: typeof __VLS_225) => any;
56
+ 'after-field'?: (props: typeof __VLS_251) => any;
57
57
  };
58
58
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
59
59
  "validity-change": (validity: RecordFormValidity) => any;
@@ -2,6 +2,8 @@ import { type ModuleContext } from '../web-core/index';
2
2
  import type { ResolvedFileReferenceFieldDescriptor } from '../web-contracts/index';
3
3
  type __VLS_Props = {
4
4
  label: string;
5
+ /** Hides the field title and places the available actions below the image. */
6
+ hideLabel?: boolean;
5
7
  required?: boolean;
6
8
  value: unknown;
7
9
  record: Record<string, unknown>;
@@ -16,8 +18,10 @@ type __VLS_Props = {
16
18
  };
17
19
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
18
20
  "update:value": (value: string | undefined) => any;
21
+ "update:record-id": (recordId: string) => any;
19
22
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
20
23
  "onUpdate:value"?: ((value: string | undefined) => any) | undefined;
24
+ "onUpdate:record-id"?: ((recordId: string) => any) | undefined;
21
25
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
22
26
  declare const _default: typeof __VLS_export;
23
27
  export default _default;
@@ -0,0 +1,36 @@
1
+ import { type HttpClient } from '../web-core/index';
2
+ export type CronPresetKind = 'daily' | 'weekly' | 'monthly' | 'minutes';
3
+ export interface CronPreset {
4
+ kind: CronPresetKind;
5
+ hour: number;
6
+ minute: number;
7
+ weekdays: string[];
8
+ day: number;
9
+ interval: number;
10
+ }
11
+ export interface CronValidationResult {
12
+ valid: boolean;
13
+ reason?: string | null;
14
+ }
15
+ export type CronExpressionValidator = (expression: string) => Promise<CronValidationResult>;
16
+ export interface CronInputValidity {
17
+ valid: boolean;
18
+ pending?: boolean;
19
+ message?: string;
20
+ }
21
+ export interface CronExpressionInputProps {
22
+ value?: string | null;
23
+ validator: CronExpressionValidator;
24
+ disabled?: boolean;
25
+ invalid?: boolean;
26
+ ariaLabel?: string;
27
+ showFeedback?: boolean;
28
+ }
29
+ export declare const cronWeekdays: readonly ["MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN"];
30
+ export declare const cronMinuteIntervals: readonly [1, 5, 10, 15, 20, 30];
31
+ export declare function normalizeCronExpression(value: string): string;
32
+ export declare function defaultCronPreset(): CronPreset;
33
+ /** These are assistant templates, never a substitute for the server's Spring Cron parser. */
34
+ export declare function generateCronExpression(preset: CronPreset): string | undefined;
35
+ export declare function parseCronPreset(expression: string): CronPreset | undefined;
36
+ export declare function validateCronExpression(http: HttpClient, expression: string): Promise<CronValidationResult>;
@@ -0,0 +1,31 @@
1
+ /** Public duration editor contract. Invalid raw values remain visible and emit error-change. */
2
+ export interface DurationSecondsInputProps {
3
+ value?: unknown;
4
+ disabled?: boolean;
5
+ invalid?: boolean;
6
+ ariaLabel?: string;
7
+ }
8
+ /** Integer seconds remain the sole wire value; unit selection is editor state. */
9
+ export declare const durationSecondsUnits: readonly [{
10
+ readonly seconds: 86400;
11
+ readonly key: "platform.duration.days";
12
+ readonly label: "天";
13
+ }, {
14
+ readonly seconds: 3600;
15
+ readonly key: "platform.duration.hours";
16
+ readonly label: "小时";
17
+ }, {
18
+ readonly seconds: 60;
19
+ readonly key: "platform.duration.minutes";
20
+ readonly label: "分钟";
21
+ }, {
22
+ readonly seconds: 1;
23
+ readonly key: "platform.duration.seconds";
24
+ readonly label: "秒";
25
+ }];
26
+ export declare function durationSecondsParts(value: unknown): {
27
+ amount: string;
28
+ unit: number;
29
+ };
30
+ /** null means invalid; undefined means an explicitly cleared optional value. */
31
+ export declare function parseDurationSeconds(amount: string, unit: number): number | null | undefined;
@@ -1,8 +1,15 @@
1
- import type { HttpClient } from '../web-core/index';
1
+ import { type HttpClient } from '../web-core/index';
2
2
  import type { ResolvedFileReferenceFieldDescriptor } from '../web-contracts/index';
3
3
  import type { FileTransferUploadAccess } from './fileTransferUpload';
4
+ export interface FileReferenceUploadAccess extends FileTransferUploadAccess {
5
+ registrationId: string;
6
+ }
7
+ /** Gives every upload from the same new draft a stable entity identity before ordinary CRUD save. */
8
+ export declare function fileReferenceDraftRecordId(draft: Record<string, unknown>): string;
4
9
  /** Issues the module-owned short-lived upload ticket for a declared file-reference field. */
5
- export declare function issueFileReferenceUploadAccess(http: HttpClient, moduleAlias: string, definition: ResolvedFileReferenceFieldDescriptor, draft: Record<string, unknown>, file: File, intent: FileReferenceUploadIntent): Promise<FileTransferUploadAccess>;
10
+ export declare function issueFileReferenceUploadAccess(http: HttpClient, moduleAlias: string, definition: ResolvedFileReferenceFieldDescriptor, draft: Record<string, unknown>, file: File, intent: FileReferenceUploadIntent): Promise<FileReferenceUploadAccess>;
11
+ /** Binds the direct-upload result to its platform-issued upload registration before updating the draft. */
12
+ export declare function registerFileReferenceUpload(http: HttpClient, moduleAlias: string, ticketId: string, fileId: string): Promise<void>;
6
13
  /** Uploads one DATABASE_INLINE field through the same authenticated platform HTTP client. */
7
14
  export declare function uploadInlineFileReference(http: HttpClient, moduleAlias: string, definition: ResolvedFileReferenceFieldDescriptor, draft: Record<string, unknown>, file: File, intent: FileReferenceUploadIntent): Promise<{
8
15
  file: File;
@@ -6,6 +6,7 @@ export type { FormulaExpressionField, FormulaExpressionFunction } from './formul
6
6
  export { default as ApplicationScopeSwitcher } from './ApplicationScopeSwitcher.vue';
7
7
  export { default as BusinessNotificationPanel } from './BusinessNotificationPanel.vue';
8
8
  export { confirmAction } from '../vue-ui-antdv/index';
9
+ export { actionConfirmationRequiredText } from './actionConfirmation';
9
10
  export { UiModal } from '../vue-ui-antdv/index';
10
11
  export { uiDrawerWidths as drawerWidths } from '../vue-ui-antdv/index';
11
12
  export type { UiDrawerWidth as DrawerWidth } from '../vue-ui-antdv/index';
@@ -14,6 +15,8 @@ export { default as DrawerOperationBar } from './DrawerOperationBar.vue';
14
15
  export { default as DrawerTitleActions } from './DrawerTitleActions.vue';
15
16
  export type { DrawerTitleAction } from './drawerTitleActions';
16
17
  export { default as DateTimeText } from './DateTimeText.vue';
18
+ export { default as DurationSecondsInput } from './DurationSecondsInput.vue';
19
+ export type { DurationSecondsInputProps } from './durationSeconds';
17
20
  export { default as FileSizeText } from './FileSizeText.vue';
18
21
  export { default as FileTransferUploader } from './FileTransferUploader.vue';
19
22
  export { default as SingleImageFileReferenceField } from './SingleImageFileReferenceField.vue';
@@ -163,3 +166,6 @@ export { default as RecordDataExchangeSurface } from './RecordDataExchangeSurfac
163
166
  export { default as TenantScopeExplorer } from './TenantScopeExplorer.vue';
164
167
  export { useWorkspaceDetailSurface } from './useWorkspaceDetailSurface';
165
168
  export { default as RecordAdaptiveDetailPanel } from './RecordAdaptiveDetailPanel.vue';
169
+ export { default as CronExpressionInput } from './CronExpressionInput.vue';
170
+ export { validateCronExpression } from './cronExpression';
171
+ export type { CronExpressionInputProps, CronExpressionValidator, CronInputValidity, CronValidationResult, } from './cronExpression';
@@ -8,7 +8,8 @@ export interface ManagementWorkspaceContext {
8
8
  registerExplorer: (registration: ManagementWorkspaceExplorerRegistration) => void;
9
9
  unregisterExplorer: (id: string) => void;
10
10
  isExplorerCollapsed: (id: string) => boolean;
11
- toggleExplorer: (id: string) => void;
11
+ expandExplorer: (id: string) => void;
12
+ collapseExplorer: (id: string) => void;
12
13
  collapsedExplorerOffset: (id: string) => number;
13
14
  hasCollapsedExplorers: ComputedRef<boolean>;
14
15
  }
@@ -0,0 +1,7 @@
1
+ import { type Ref } from 'vue';
2
+ /** Keep cards on a continuous path when the bell changes their layout. */
3
+ export declare function useNotificationDeckMotion(host: Ref<HTMLElement | undefined>, expanded: Ref<boolean>): {
4
+ moving: Ref<boolean, boolean>;
5
+ arrange: (open: boolean) => Promise<boolean>;
6
+ stop: () => void;
7
+ };
@@ -1,10 +1,15 @@
1
1
  import type { MenuNavigationTarget, MenuRecord, MenuTab, PageDescriptor, WorkbenchStartupState } from '../web-contracts/index';
2
+ import type { UiDropdownItem } from '../vue-ui-antdv/index';
2
3
  import { type AssistantTurnRequester, type AssistantWorkspaceContribution, type ConstructionPlanClient, type AssistantConversationClient } from '../web-core/index';
3
4
  import type { WorkbenchRealtimeStatus } from './realtimeStatus';
4
5
  type __VLS_Props = {
5
6
  startup?: WorkbenchStartupState;
6
7
  /** Employee name from the host-owned current-user profile. */
7
8
  currentUserEmployeeName?: string;
9
+ /** Host-owned account commands already filtered by backend capabilities. */
10
+ accountMenuItems?: UiDropdownItem[];
11
+ /** Complete standard-account presentation supplied by WorkbenchAccountCenter. */
12
+ managedAccountMenuItems?: UiDropdownItem[];
8
13
  loading?: boolean;
9
14
  error?: string;
10
15
  activeTabKey?: string;
@@ -19,21 +24,22 @@ type __VLS_Props = {
19
24
  assistantWorkspaceContribution?: AssistantWorkspaceContribution;
20
25
  assistantWaitForPageReady?: () => Promise<string>;
21
26
  };
22
- declare var __VLS_53: {
27
+ declare var __VLS_54: {
23
28
  currentUser?: import("../web-contracts/index").CurrentUser;
24
- }, __VLS_90: {
29
+ }, __VLS_91: {
25
30
  activeTab: MenuTab;
26
31
  target: MenuNavigationTarget | undefined;
27
32
  pageDescriptor: PageDescriptor | undefined;
28
33
  };
29
34
  type __VLS_Slots = {} & {
30
- 'topbar-actions'?: (props: typeof __VLS_53) => any;
35
+ 'topbar-actions'?: (props: typeof __VLS_54) => any;
31
36
  } & {
32
- default?: (props: typeof __VLS_90) => any;
37
+ default?: (props: typeof __VLS_91) => any;
33
38
  };
34
39
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
35
40
  closeTabs: (keys: string[]) => any;
36
41
  userCommand: (key: string) => any;
42
+ accountMenuOpen: () => any;
37
43
  selectMenu: (menu: MenuRecord, target: MenuNavigationTarget) => any;
38
44
  invalidMenu: (menu: MenuRecord) => any;
39
45
  changeTab: (key: string) => any;
@@ -46,6 +52,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
46
52
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
47
53
  onCloseTabs?: ((keys: string[]) => any) | undefined;
48
54
  onUserCommand?: ((key: string) => any) | undefined;
55
+ onAccountMenuOpen?: (() => any) | undefined;
49
56
  onSelectMenu?: ((menu: MenuRecord, target: MenuNavigationTarget) => any) | undefined;
50
57
  onInvalidMenu?: ((menu: MenuRecord) => any) | undefined;
51
58
  onChangeTab?: ((key: string) => any) | undefined;
@@ -58,6 +65,8 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
58
65
  }>, {
59
66
  error: string;
60
67
  loading: boolean;
68
+ accountMenuItems: UiDropdownItem[];
69
+ managedAccountMenuItems: UiDropdownItem[];
61
70
  assistantAvailable: boolean;
62
71
  realtimeStatus: WorkbenchRealtimeStatus;
63
72
  startup: WorkbenchStartupState;
@@ -1,6 +1,9 @@
1
1
  import type { CurrentUser } from '../web-contracts/index';
2
+ import { type UiDropdownItem } from '../vue-ui-antdv/index';
2
3
  type __VLS_Props = {
3
4
  currentUser?: CurrentUser;
5
+ accountMenuItems?: UiDropdownItem[];
6
+ managedAccountMenuItems?: UiDropdownItem[];
4
7
  employeeName?: string;
5
8
  assistantAvailable: boolean;
6
9
  assistantOpen: boolean;
@@ -14,9 +17,11 @@ type __VLS_Slots = {
14
17
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
15
18
  toggleAssistant: () => any;
16
19
  userCommand: (key: string) => any;
20
+ accountMenuOpen: () => any;
17
21
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
18
22
  onToggleAssistant?: (() => any) | undefined;
19
23
  onUserCommand?: ((key: string) => any) | undefined;
24
+ onAccountMenuOpen?: (() => any) | undefined;
20
25
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
21
26
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
22
27
  declare const _default: typeof __VLS_export;
@@ -2,6 +2,16 @@ import type { PageDescriptor } from '../web-contracts/index';
2
2
  type __VLS_Props = {
3
3
  descriptor?: PageDescriptor;
4
4
  };
5
- declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
5
+ declare var __VLS_1: {};
6
+ type __VLS_Slots = {} & {
7
+ default?: (props: typeof __VLS_1) => any;
8
+ };
9
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
10
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
6
11
  declare const _default: typeof __VLS_export;
7
12
  export default _default;
13
+ type __VLS_WithSlots<T, S> = T & {
14
+ new (): {
15
+ $slots: S;
16
+ };
17
+ };
@@ -11,6 +11,7 @@ export { configureWorkspaceViewContributions, createWorkspaceViewDescriptor, cre
11
11
  export { provideWorkspaceViewHost, useWorkspaceViewHost } from './workspaceViewHost';
12
12
  export { useWorkspaceViewNavigation } from './workspaceViewNavigation';
13
13
  export { useWorkspaceViewUnsavedState } from './useWorkspaceViewUnsavedState';
14
+ export { confirmDiscardWorkspaceViewState, hasWorkspaceViewDiscardProtection, } from './workspaceViewDiscardGuard';
14
15
  export { defineWorkspaceView } from './workspaceViewContract';
15
16
  export type { ResolvedWorkspaceView, WorkspaceViewRegistry } from './workspaceViews';
16
17
  export type { WorkspaceViewDefinition, WorkspaceViewInput, WorkspaceViewPresentation, WorkspaceDrawerProfile, } from './workspaceViewContract';
@@ -22,3 +23,5 @@ export type { WorkbenchMegaMenuModel, WorkbenchMenuNode } from './menuTreeModel'
22
23
  export { presentWorkbenchRealtimeStatus } from './realtimeStatus';
23
24
  export type { WorkbenchRealtimeStatus, WorkbenchRealtimeStatusPresentation } from './realtimeStatus';
24
25
  export { default as LanguageSelector } from './LanguageSelector.vue';
26
+ export { workbenchAccountCommands } from './workbenchAccountMenu';
27
+ export type { WorkbenchAccountCommand, WorkbenchAccountContext, WorkbenchAccountContribution, WorkbenchAccountMenuOptions, WorkbenchAccountCommandGuard, } from './workbenchAccountMenu';
@@ -0,0 +1,33 @@
1
+ import type { CurrentUser } from '../web-contracts/index';
2
+ import type { HttpClient, LanguageContext } from '../web-core/index';
3
+ import type { UiDropdownItem, UiIconName } from '../vue-ui-antdv/index';
4
+ export declare const workbenchAccountCommands: readonly ["languageSettings", "themeSkin", "changePassword", "profile", "accessTokens", "logout"];
5
+ export type WorkbenchAccountCommand = (typeof workbenchAccountCommands)[number];
6
+ export interface WorkbenchAccountContribution {
7
+ /** Business namespace, for example mr.expertSeat. Standard commands cannot be replaced. */
8
+ key: `${string}.${string}`;
9
+ title: string;
10
+ iconName?: UiIconName;
11
+ group?: 'preferences' | 'account';
12
+ order?: number;
13
+ visible?: boolean;
14
+ disabled?: boolean;
15
+ danger?: boolean;
16
+ }
17
+ export interface WorkbenchAccountMenuOptions {
18
+ hiddenCommands?: readonly WorkbenchAccountCommand[];
19
+ contributions?: readonly WorkbenchAccountContribution[];
20
+ }
21
+ /** Inject once; platform account features continue to use the host's authenticated transport. */
22
+ export interface WorkbenchAccountContext {
23
+ http: HttpClient;
24
+ /** Offline/mock hosts may keep appearance preferences local. */
25
+ preferencePersistence?: 'backend' | 'local';
26
+ token?: string;
27
+ currentUser?: CurrentUser;
28
+ }
29
+ export type WorkbenchAccountCommandGuard = (command: {
30
+ key: string;
31
+ currentUser?: CurrentUser;
32
+ }) => boolean | Promise<boolean>;
33
+ export declare function createWorkbenchAccountMenu(language: LanguageContext, options?: WorkbenchAccountMenuOptions, accessTokensAvailable?: boolean): UiDropdownItem[];
@@ -2,4 +2,4 @@ import { type LanguageContext } from '../web-core/index';
2
2
  /** Clean pages need no asynchronous confirmation and retain immediate navigation semantics. */
3
3
  export declare function hasWorkspaceViewDiscardProtection(keys: readonly string[]): boolean;
4
4
  /** Every host must consult the same draft facts before destroying a workspace page. */
5
- export declare function confirmDiscardWorkspaceViewState(keys: readonly string[], operation?: 'close' | 'refresh', language?: LanguageContext): Promise<boolean>;
5
+ export declare function confirmDiscardWorkspaceViewState(keys: readonly string[], operation?: 'close' | 'refresh' | 'logout', language?: LanguageContext): Promise<boolean>;
@@ -18,6 +18,8 @@ export interface BusinessLogEventView {
18
18
  tenantId?: string;
19
19
  operatorId?: string;
20
20
  operatorOrganizationId?: string;
21
+ authenticationMethod?: string;
22
+ authenticationCredentialId?: string;
21
23
  operatorIdentity?: BusinessLogOperatorIdentity;
22
24
  moduleAlias?: string;
23
25
  actionCode?: string;
@@ -150,6 +150,7 @@ export interface BusinessRuleProposal {
150
150
  }
151
151
  export interface BusinessRuleIssue {
152
152
  readonly messageSources?: readonly OperationErrorMessage[];
153
+ readonly messageText?: TextPresentation | null;
153
154
  code: string;
154
155
  ruleCode?: string;
155
156
  field?: string;
@@ -0,0 +1,20 @@
1
+ type __VLS_Props = {
2
+ disabled?: boolean;
3
+ invalid?: boolean;
4
+ ariaLabel?: string;
5
+ };
6
+ declare var __VLS_1: {}, __VLS_3: {};
7
+ type __VLS_Slots = {} & {
8
+ default?: (props: typeof __VLS_1) => any;
9
+ } & {
10
+ addon?: (props: typeof __VLS_3) => any;
11
+ };
12
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
13
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
14
+ declare const _default: typeof __VLS_export;
15
+ export default _default;
16
+ type __VLS_WithSlots<T, S> = T & {
17
+ new (): {
18
+ $slots: S;
19
+ };
20
+ };
@@ -3,6 +3,7 @@ type __VLS_Props = {
3
3
  value?: string;
4
4
  placeholder?: string;
5
5
  disabled?: boolean;
6
+ readonly?: boolean;
6
7
  invalid?: boolean;
7
8
  rows?: number;
8
9
  maxlength?: number;
@@ -53,6 +54,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {
53
54
  value: string;
54
55
  placeholder: string;
55
56
  maxlength: number;
57
+ readonly: boolean;
56
58
  invalid: boolean;
57
59
  rows: number;
58
60
  acceptDrop: (source: UiDragSource) => boolean;
@@ -6,6 +6,7 @@ export { default as UiTagList } from './components/UiTagList.vue';
6
6
  export { default as UiCheckbox } from './components/UiCheckbox.vue';
7
7
  export { default as UiColorPicker } from './components/UiColorPicker.vue';
8
8
  export { default as UiForm } from './components/UiForm.vue';
9
+ export { default as UiInputGroup } from './components/UiInputGroup.vue';
9
10
  export { default as UiInput } from './components/UiInput.vue';
10
11
  export { default as UiSearchInput } from './components/UiSearchInput.vue';
11
12
  export { default as UiTextArea } from './components/UiTextArea.vue';