@acorex/platform 21.0.0-next.8 → 21.0.0-next.85

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 (133) hide show
  1. package/contracts/README.md +3 -0
  2. package/fesm2022/acorex-platform-auth.mjs +201 -81
  3. package/fesm2022/acorex-platform-auth.mjs.map +1 -1
  4. package/fesm2022/acorex-platform-common-common-settings.provider-Ytey9uhY.mjs +177 -0
  5. package/fesm2022/acorex-platform-common-common-settings.provider-Ytey9uhY.mjs.map +1 -0
  6. package/fesm2022/acorex-platform-common.mjs +4490 -880
  7. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  8. package/fesm2022/acorex-platform-contracts.mjs +38 -0
  9. package/fesm2022/acorex-platform-contracts.mjs.map +1 -0
  10. package/fesm2022/acorex-platform-core.mjs +2612 -667
  11. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  12. package/fesm2022/acorex-platform-domain.mjs +557 -826
  13. package/fesm2022/acorex-platform-domain.mjs.map +1 -1
  14. package/fesm2022/acorex-platform-layout-builder.mjs +1255 -209
  15. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  16. package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs +121 -0
  17. package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs.map +1 -0
  18. package/fesm2022/acorex-platform-layout-components.mjs +6493 -1920
  19. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  20. package/fesm2022/acorex-platform-layout-designer.mjs +612 -287
  21. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  22. package/fesm2022/acorex-platform-layout-entity-attachments-page.component-CwG6n_Yb.mjs +376 -0
  23. package/fesm2022/acorex-platform-layout-entity-attachments-page.component-CwG6n_Yb.mjs.map +1 -0
  24. package/fesm2022/acorex-platform-layout-entity-file-list-popup.component--IeMZLIr.mjs +100 -0
  25. package/fesm2022/acorex-platform-layout-entity-file-list-popup.component--IeMZLIr.mjs.map +1 -0
  26. package/fesm2022/acorex-platform-layout-entity.mjs +22502 -9964
  27. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  28. package/fesm2022/acorex-platform-layout-views.mjs +1395 -387
  29. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  30. package/fesm2022/acorex-platform-layout-widget-core.mjs +2226 -524
  31. package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
  32. package/fesm2022/{acorex-platform-layout-widgets-button-widget-designer.component-C3VoBb_b.mjs → acorex-platform-layout-widgets-button-widget-designer.component-Dy7jF-oD.mjs} +10 -10
  33. package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-Dy7jF-oD.mjs.map +1 -0
  34. package/fesm2022/{acorex-platform-layout-widgets-image-preview.popup-V31OpYah.mjs → acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs} +6 -7
  35. package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs.map +1 -0
  36. package/fesm2022/{acorex-platform-layout-widgets-page-widget-designer.component-BtZMBxYp.mjs → acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs} +12 -12
  37. package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs.map +1 -0
  38. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-J0zcGKBX.mjs +116 -0
  39. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-J0zcGKBX.mjs.map +1 -0
  40. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-Ck7-wpT2.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-DjpZU6gz.mjs} +6 -6
  41. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-DjpZU6gz.mjs.map +1 -0
  42. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component-y8vjUiVs.mjs → acorex-platform-layout-widgets-tabular-data-view-popup.component-gX-3Kx9I.mjs} +5 -5
  43. package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-gX-3Kx9I.mjs.map +1 -0
  44. package/fesm2022/{acorex-platform-layout-widgets-text-block-widget-designer.component-Df1BFkSa.mjs → acorex-platform-layout-widgets-text-block-widget-designer.component-Vo4fWHtX.mjs} +6 -6
  45. package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-Vo4fWHtX.mjs.map +1 -0
  46. package/fesm2022/acorex-platform-layout-widgets.mjs +18746 -16718
  47. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
  48. package/fesm2022/acorex-platform-native.mjs +8 -7
  49. package/fesm2022/acorex-platform-native.mjs.map +1 -1
  50. package/fesm2022/acorex-platform-runtime.mjs +391 -166
  51. package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
  52. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-CWLfNqV0.mjs +160 -0
  53. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-CWLfNqV0.mjs.map +1 -0
  54. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-C7cT82K2.mjs +120 -0
  55. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-C7cT82K2.mjs.map +1 -0
  56. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-eMBby9k4.mjs → acorex-platform-themes-default-entity-master-single-view.component-Br9p5aXT.mjs} +21 -28
  57. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-Br9p5aXT.mjs.map +1 -0
  58. package/fesm2022/acorex-platform-themes-default-error-401.component-B1nsdpTY.mjs +48 -0
  59. package/fesm2022/acorex-platform-themes-default-error-401.component-B1nsdpTY.mjs.map +1 -0
  60. package/fesm2022/acorex-platform-themes-default-error-404.component-D4UvRe8u.mjs +42 -0
  61. package/fesm2022/acorex-platform-themes-default-error-404.component-D4UvRe8u.mjs.map +1 -0
  62. package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs +19 -0
  63. package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs.map +1 -0
  64. package/fesm2022/acorex-platform-themes-default.mjs +2337 -94
  65. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  66. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-column.component-C0EpfU2k.mjs → acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs} +6 -6
  67. package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs.map +1 -0
  68. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-9W52W6Nu.mjs → acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs} +6 -6
  69. package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs.map +1 -0
  70. package/fesm2022/{acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs → acorex-platform-themes-shared-settings.provider-BjuzSe0T.mjs} +52 -33
  71. package/fesm2022/acorex-platform-themes-shared-settings.provider-BjuzSe0T.mjs.map +1 -0
  72. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-D566Kdvy.mjs +94 -0
  73. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-D566Kdvy.mjs.map +1 -0
  74. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-D7-rCGl7.mjs +86 -0
  75. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-D7-rCGl7.mjs.map +1 -0
  76. package/fesm2022/acorex-platform-themes-shared.mjs +793 -612
  77. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  78. package/fesm2022/acorex-platform-workflow.mjs +997 -274
  79. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  80. package/fesm2022/acorex-platform.mjs.map +1 -1
  81. package/package.json +41 -35
  82. package/{auth/index.d.ts → types/acorex-platform-auth.d.ts} +40 -19
  83. package/types/acorex-platform-common.d.ts +3673 -0
  84. package/types/acorex-platform-contracts.d.ts +940 -0
  85. package/{core/index.d.ts → types/acorex-platform-core.d.ts} +1029 -170
  86. package/{domain/index.d.ts → types/acorex-platform-domain.d.ts} +744 -412
  87. package/{layout/builder/index.d.ts → types/acorex-platform-layout-builder.d.ts} +262 -55
  88. package/types/acorex-platform-layout-components.d.ts +3329 -0
  89. package/{layout/designer/index.d.ts → types/acorex-platform-layout-designer.d.ts} +96 -18
  90. package/types/acorex-platform-layout-entity.d.ts +4512 -0
  91. package/{layout/views/index.d.ts → types/acorex-platform-layout-views.d.ts} +334 -91
  92. package/{layout/widget-core/index.d.ts → types/acorex-platform-layout-widget-core.d.ts} +438 -162
  93. package/{layout/widgets/index.d.ts → types/acorex-platform-layout-widgets.d.ts} +1152 -507
  94. package/{native/index.d.ts → types/acorex-platform-native.d.ts} +0 -7
  95. package/types/acorex-platform-runtime.d.ts +571 -0
  96. package/{themes/default/index.d.ts → types/acorex-platform-themes-default.d.ts} +268 -11
  97. package/{themes/shared/index.d.ts → types/acorex-platform-themes-shared.d.ts} +30 -2
  98. package/{workflow/index.d.ts → types/acorex-platform-workflow.d.ts} +436 -748
  99. package/common/index.d.ts +0 -2470
  100. package/fesm2022/acorex-platform-common-common-settings.provider-zhqNP3xb.mjs +0 -71
  101. package/fesm2022/acorex-platform-common-common-settings.provider-zhqNP3xb.mjs.map +0 -1
  102. package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-C3VoBb_b.mjs.map +0 -1
  103. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-CxrsI6Hn.mjs +0 -135
  104. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-CxrsI6Hn.mjs.map +0 -1
  105. package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-V31OpYah.mjs.map +0 -1
  106. package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-BtZMBxYp.mjs.map +0 -1
  107. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-Ck7-wpT2.mjs.map +0 -1
  108. package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-y8vjUiVs.mjs.map +0 -1
  109. package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-Df1BFkSa.mjs.map +0 -1
  110. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-VIGuU5M4.mjs +0 -157
  111. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-VIGuU5M4.mjs.map +0 -1
  112. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-D3qZa5fM.mjs +0 -1542
  113. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-D3qZa5fM.mjs.map +0 -1
  114. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-Ua3ZA5hk.mjs +0 -101
  115. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-Ua3ZA5hk.mjs.map +0 -1
  116. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-eMBby9k4.mjs.map +0 -1
  117. package/fesm2022/acorex-platform-themes-default-error-401.component-cfREo88K.mjs +0 -31
  118. package/fesm2022/acorex-platform-themes-default-error-401.component-cfREo88K.mjs.map +0 -1
  119. package/fesm2022/acorex-platform-themes-default-error-404.component-CdCV5ZoA.mjs +0 -25
  120. package/fesm2022/acorex-platform-themes-default-error-404.component-CdCV5ZoA.mjs.map +0 -1
  121. package/fesm2022/acorex-platform-themes-default-error-offline.component-E7SzBcAt.mjs +0 -19
  122. package/fesm2022/acorex-platform-themes-default-error-offline.component-E7SzBcAt.mjs.map +0 -1
  123. package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-C0EpfU2k.mjs.map +0 -1
  124. package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-9W52W6Nu.mjs.map +0 -1
  125. package/fesm2022/acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs.map +0 -1
  126. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-Dz0cylyQ.mjs +0 -65
  127. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-Dz0cylyQ.mjs.map +0 -1
  128. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-DY0JtT1v.mjs +0 -64
  129. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-DY0JtT1v.mjs.map +0 -1
  130. package/layout/components/index.d.ts +0 -1670
  131. package/layout/entity/index.d.ts +0 -2294
  132. package/runtime/index.d.ts +0 -307
  133. /package/{index.d.ts → types/acorex-platform.d.ts} +0 -0
@@ -3,13 +3,31 @@ import { OnInit, EventEmitter } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
4
  import { AXFormComponent } from '@acorex/components/form';
5
5
  import { AXValidationSummary } from '@acorex/core/validation';
6
- import { AXPWidgetNode, AXPWidgetRenderMode, AXPWidgetCoreContextChangeEvent, AXPWidgetContainerComponent, AXPWidgetCoreElementAction } from '@acorex/platform/layout/widget-core';
7
- import { AXDataSource } from '@acorex/cdk/common';
6
+ import { AXPWidgetNode, AXPWidgetRenderMode, AXPWidgetContainerComponent, AXPWidgetCoreElementAction } from '@acorex/platform/layout/widget-core';
7
+ import { AXDataSource, AXComponentClosing } from '@acorex/cdk/common';
8
8
  import { AXPopupSizeType } from '@acorex/components/popup';
9
9
  import { AXStepWizardLook } from '@acorex/components/step-wizard';
10
- import { AXPGridLayoutOptions, AXPExpression, AXPValidationRules, AXPOptionsData, AXPActionMenuItem } from '@acorex/platform/core';
10
+ import { AXPKeyboardShortcut, AXPKeyboardShortcutChord, AXPActionMenuItem, AXPMultiLanguageString, AXPMetaData, AXPGridLayoutOptions, AXPExpression, AXPValidationRules, AXPOptionsData, AXPContextChangeEvent, AXPExecuteCommandResult } from '@acorex/platform/core';
11
11
  import { AXBasePageComponent } from '@acorex/components/page';
12
+ import { AXPCommand } from '@acorex/platform/runtime';
13
+
14
+ /** Resolved chord string used by dialog footer shortcut matching. */
15
+ type AXPDialogActionShortcut = AXPKeyboardShortcutChord;
16
+ declare const DEFAULT_CANCEL_DIALOG_ACTION_SHORTCUTS: readonly AXPDialogActionShortcut[];
17
+ declare const DEFAULT_SUBMIT_DIALOG_ACTION_SHORTCUTS: readonly AXPDialogActionShortcut[];
18
+ interface AXPDialogActionOptions {
19
+ /**
20
+ * Additional keyboard shortcuts for this action (e.g. `'ctrl+s'` or `{ keys: 'ctrl+s' }`).
21
+ * Merged with built-in defaults for `cancel` / `submit`. Pass `[]` to disable all shortcuts.
22
+ */
23
+ shortcuts?: AXPKeyboardShortcut[];
24
+ }
12
25
 
26
+ /**
27
+ * Extended widget node properties (excluding type, path, name, options, children)
28
+ * These properties can be passed as a third parameter to customWidget method
29
+ */
30
+ type AXPWidgetNodeExtendedProperties = Omit<AXPWidgetNode, 'type' | 'path' | 'name' | 'options'>;
13
31
  /**
14
32
  * Form appearance and density styling (using fieldset widget look)
15
33
  */
@@ -24,9 +42,9 @@ type AXPDynamicFormMode = 'view' | 'edit';
24
42
  type AXPDynamicFormDirection = 'vertical' | 'horizontal' | 'grid';
25
43
  interface AXPDynamicFormFieldDefinition {
26
44
  path: string;
27
- title?: string;
45
+ title?: AXPMultiLanguageString;
28
46
  badge?: string;
29
- description?: string;
47
+ description?: AXPMultiLanguageString;
30
48
  widget: AXPWidgetNode;
31
49
  /**
32
50
  * Optional per-field rendering mode. Takes precedence over section and form modes.
@@ -36,8 +54,8 @@ interface AXPDynamicFormFieldDefinition {
36
54
  }
37
55
  interface AXPDynamicFormGroupDefinition {
38
56
  name: string;
39
- title?: string;
40
- description?: string;
57
+ title?: AXPMultiLanguageString;
58
+ description?: AXPMultiLanguageString;
41
59
  parameters: AXPDynamicFormFieldDefinition[];
42
60
  /**
43
61
  * Optional per-section rendering mode. Takes precedence over form mode and is overridden by field mode.
@@ -59,7 +77,7 @@ interface AXPDialogRef {
59
77
  /**
60
78
  * Manually close the dialog (optional - dialog closes automatically after user interaction)
61
79
  */
62
- close(): void;
80
+ close(result?: any): void;
63
81
  /**
64
82
  * Get the form data from the dialog
65
83
  */
@@ -72,7 +90,20 @@ interface AXPDialogRef {
72
90
  * Set the loading state of the dialog
73
91
  */
74
92
  setLoading(loading: boolean): void;
93
+ /**
94
+ * Deep-merge partial values into the dialog layout context (e.g. after create returns an id).
95
+ */
96
+ patchContext?(partial: Record<string, unknown>): void;
97
+ /**
98
+ * Invoke a registered widget's public `api()` method (e.g. step-wizard `next`).
99
+ */
100
+ invokeWidget?(widgetName: string, method: string, options?: {
101
+ setLoading?: (loading: boolean) => void;
102
+ close?: (result?: any) => void;
103
+ }): Promise<void>;
75
104
  }
105
+ /** Fallback {@link AXPDialogRef} when the popup is dismissed without a footer action (e.g. header close). */
106
+ declare function createDismissedDialogRef(context?: () => unknown): AXPDialogRef;
76
107
  interface LayoutWidgetOptions {
77
108
  name?: string;
78
109
  }
@@ -82,7 +113,7 @@ interface ValueWidgetOptions extends LayoutWidgetOptions {
82
113
  validations?: AXPValidationRules;
83
114
  }
84
115
  interface TextBoxOptions extends ValueWidgetOptions {
85
- placeholder?: string;
116
+ placeholder?: AXPMultiLanguageString;
86
117
  maxLength?: number;
87
118
  minLength?: number;
88
119
  prefix?: string;
@@ -93,14 +124,14 @@ interface NumberBoxOptions extends ValueWidgetOptions {
93
124
  min?: number;
94
125
  max?: number;
95
126
  step?: number;
96
- placeholder?: string;
127
+ placeholder?: AXPMultiLanguageString;
97
128
  format?: string;
98
129
  }
99
130
  interface SelectBoxOptions extends ValueWidgetOptions {
100
131
  dataSource: any[] | (() => any[]) | (() => Promise<any[]>) | AXDataSource<any>;
101
132
  valueField?: string;
102
133
  textField?: string;
103
- placeholder?: string;
134
+ placeholder?: AXPMultiLanguageString;
104
135
  multiple?: boolean;
105
136
  searchable?: boolean;
106
137
  clearButton?: boolean;
@@ -111,7 +142,7 @@ interface DateTimeBoxOptions extends ValueWidgetOptions {
111
142
  format?: string;
112
143
  min?: Date | string;
113
144
  max?: Date | string;
114
- placeholder?: string;
145
+ placeholder?: AXPMultiLanguageString;
115
146
  clearButton?: boolean;
116
147
  }
117
148
  interface ToggleSwitchOptions extends ValueWidgetOptions {
@@ -123,7 +154,7 @@ interface LargeTextBoxOptions extends ValueWidgetOptions {
123
154
  rows?: number;
124
155
  maxLength?: number;
125
156
  minLength?: number;
126
- placeholder?: string;
157
+ placeholder?: AXPMultiLanguageString;
127
158
  resizable?: boolean;
128
159
  }
129
160
  interface ColorBoxOptions extends ValueWidgetOptions {
@@ -222,12 +253,26 @@ interface AXPFieldsetContainerOptions extends LayoutWidgetOptions {
222
253
  isOpen?: boolean;
223
254
  look?: 'fieldset' | 'card' | 'group' | 'container';
224
255
  disabled?: boolean;
256
+ showTitle?: boolean;
225
257
  showHeader?: boolean;
226
258
  cols?: number;
227
259
  }
260
+ /** How optional `hint` text is rendered in `form-field` layout widgets. */
261
+ type AXPFormFieldHintDisplayMode = 'icon' | 'note';
228
262
  interface AXPFormFieldOptions extends LayoutWidgetOptions {
229
263
  label?: string;
230
264
  showLabel?: boolean;
265
+ /** Translated/helper copy; pairing with {@link hintDisplayMode}. */
266
+ hint?: AXPMultiLanguageString;
267
+ hintDisplayMode?: AXPFormFieldHintDisplayMode;
268
+ }
269
+ interface AXPDialogCloseConfirmationOptions {
270
+ /** When false, dirty-close confirmation is disabled even if the builder flag is set. */
271
+ enabled?: boolean;
272
+ title?: AXPMultiLanguageString;
273
+ message?: AXPMultiLanguageString;
274
+ /** Custom dirty check; defaults to user-origin context paths plus composite widget `api().isDirty()`. */
275
+ isDirty?: (context: Record<string, unknown>, baseline: Record<string, unknown>) => boolean;
231
276
  }
232
277
  interface AXPDialogContainerOptions extends LayoutWidgetOptions {
233
278
  title?: string;
@@ -235,14 +280,41 @@ interface AXPDialogContainerOptions extends LayoutWidgetOptions {
235
280
  size?: AXPopupSizeType;
236
281
  closeButton?: boolean;
237
282
  context?: any;
283
+ metadata?: AXPMetaData;
284
+ /**
285
+ * When enabled, prompts before dismiss (cancel, Esc, header close) if dialog context is dirty.
286
+ * Set via {@link IDialogBuilder.confirmCloseWhenDirty}.
287
+ */
288
+ confirmCloseWhenDirty?: boolean | AXPDialogCloseConfirmationOptions;
289
+ /**
290
+ * When set, invoked on footer action with {@link AXPDialogRef}.
291
+ * Set via {@link IDialogBuilder.onAction}.
292
+ */
293
+ onAction?: (dialogRef: AXPDialogRef) => unknown | Promise<unknown>;
294
+ }
295
+ /**
296
+ * Popup payload for `AXPDialogRendererComponent` (`data.config`) and the `layout-builder.dialog.config` hook.
297
+ */
298
+ interface AXPLayoutBuilderDialogConfig {
299
+ title: string;
300
+ context: Record<string, unknown>;
301
+ definition: AXPWidgetNode;
302
+ metadata?: AXPMetaData;
303
+ actions: NonNullable<DialogBuilderState['actions']>;
304
+ onAction?: (dialogRef: AXPDialogRef) => unknown | Promise<unknown>;
305
+ confirmCloseWhenDirty?: AXPDialogCloseConfirmationOptions;
238
306
  }
239
307
  interface RichTextOptions extends ValueWidgetOptions {
240
- placeholder?: string;
308
+ placeholder?: AXPMultiLanguageString;
241
309
  toolbar?: string[];
242
310
  readonly?: boolean;
311
+ /** Max height (px) for scrollable full preview when `showFullContent` is true. */
312
+ height?: number;
313
+ /** When true, view mode renders full HTML in a scrollable area instead of a truncated snippet. */
314
+ showFullContent?: boolean;
243
315
  }
244
316
  interface PasswordBoxOptions extends ValueWidgetOptions {
245
- placeholder?: string;
317
+ placeholder?: AXPMultiLanguageString;
246
318
  revealToggle?: boolean;
247
319
  maxLength?: number;
248
320
  }
@@ -264,7 +336,7 @@ interface SelectionListOptions extends ValueWidgetOptions {
264
336
  textField?: string;
265
337
  multiple?: boolean;
266
338
  searchable?: boolean;
267
- placeholder?: string;
339
+ placeholder?: AXPMultiLanguageString;
268
340
  }
269
341
  interface AXPListWidgetColumn {
270
342
  name: string;
@@ -384,26 +456,30 @@ interface AXPWidgetConfiguration {
384
456
  options?: AXPOptionsData;
385
457
  }
386
458
  type LayoutBuilderState = AXPWidgetNode;
387
- type WidgetBuilderState = Omit<AXPWidgetNode, 'children'> & {
459
+ type WidgetBuilderState = AXPWidgetNode & {
388
460
  layout?: AXPGridLayoutOptions;
389
461
  };
390
462
  type FormFieldBuilderState = AXPWidgetNode & {
391
463
  layout?: AXPGridLayoutOptions;
392
464
  };
465
+ /** Dialog footer action item; extends menu actions with placement. */
466
+ type AXPDialogActionMenuItem = AXPActionMenuItem & {
467
+ position?: 'prefix' | 'suffix';
468
+ };
393
469
  type DialogBuilderState = AXPWidgetNode & {
394
470
  layout?: AXPGridLayoutOptions;
395
471
  dialogOptions?: AXPDialogContainerOptions;
396
472
  actions?: {
397
473
  footer?: {
398
- prefix?: AXPActionMenuItem[];
399
- suffix?: AXPActionMenuItem[];
474
+ prefix?: AXPDialogActionMenuItem[];
475
+ suffix?: AXPDialogActionMenuItem[];
400
476
  };
401
477
  };
402
478
  };
403
479
  interface IActionBuilder {
404
- cancel(text?: string): IActionBuilder;
405
- submit(text?: string): IActionBuilder;
406
- custom(action: AXPActionMenuItem): IActionBuilder;
480
+ cancel(text?: string, options?: AXPDialogActionOptions): IActionBuilder;
481
+ submit(text?: string, options?: AXPDialogActionOptions): IActionBuilder;
482
+ custom(action: AXPDialogActionMenuItem, options?: AXPDialogActionOptions): IActionBuilder;
407
483
  }
408
484
  interface ILayoutBuilder {
409
485
  grid(delegate: (container: IGridContainerBuilder) => void): ILayoutBuilder;
@@ -412,7 +488,7 @@ interface ILayoutBuilder {
412
488
  page(delegate: (container: IPageContainerBuilder) => void): ILayoutBuilder;
413
489
  tabset(delegate: (container: ITabsetContainerBuilder) => void): ILayoutBuilder;
414
490
  fieldset(delegate: (container: IFieldsetContainerBuilder) => void): ILayoutBuilder;
415
- dialog(delegate: (container: IDialogBuilder) => void): IDialogBuilder;
491
+ dialog<T = AXPDialogRef>(delegate: (container: IDialogBuilder<T>) => void): IDialogBuilder<T>;
416
492
  stepWizard(delegate: (wizard: IStepWizardBuilder) => void): ILayoutBuilder;
417
493
  build(): AXPWidgetNode;
418
494
  toJson(options?: {
@@ -503,6 +579,8 @@ interface IGridContainerBuilder extends IBaseContainerBuilder<IGridContainerBuil
503
579
  setBackgroundColor(color: string): IGridContainerBuilder;
504
580
  setPadding(padding: string): IGridContainerBuilder;
505
581
  setMargin(margin: string): IGridContainerBuilder;
582
+ /** Add a grid-item-layout child with optional placement; delegate builds the fieldset content. */
583
+ item(layoutOptions: Partial<AXPGridLayoutOptions> | null | undefined, delegate: (container: IFieldsetContainerBuilder) => void): IGridContainerBuilder;
506
584
  }
507
585
  interface IPanelContainerBuilder extends IBaseContainerBuilder<IPanelContainerBuilder>, ILayoutContainerBuilder<IPanelContainerBuilder>, IChildContainerBuilder<IPanelContainerBuilder>, IWidgetContainerBuilder<IPanelContainerBuilder> {
508
586
  setOptions(options: AXPPanelContainerOptions): IPanelContainerBuilder;
@@ -545,6 +623,7 @@ interface IFormFieldBuilder extends IBaseContainerBuilder<IFormFieldBuilder>, IL
545
623
  toggleSwitch(options?: Omit<ToggleSwitchOptions, 'path'>): IFormFieldBuilder;
546
624
  colorBox(options?: Omit<ColorBoxOptions, 'path'>): IFormFieldBuilder;
547
625
  customWidget<T>(type: string, options?: Omit<T, 'path'>): IFormFieldBuilder;
626
+ customWidget<T>(type: string, options?: Omit<T, 'path'> & Partial<AXPWidgetNodeExtendedProperties>): IFormFieldBuilder;
548
627
  }
549
628
  interface IFieldsetContainerBuilder extends IBaseContainerBuilder<IFieldsetContainerBuilder>, ILayoutContainerBuilder<IFieldsetContainerBuilder> {
550
629
  setOptions(options: AXPFieldsetContainerOptions): IFieldsetContainerBuilder;
@@ -558,20 +637,30 @@ interface IFieldsetContainerBuilder extends IBaseContainerBuilder<IFieldsetConta
558
637
  setCols(cols: number): IFieldsetContainerBuilder;
559
638
  formField(label: string, delegate?: (field: IFormFieldBuilder) => void): IFieldsetContainerBuilder;
560
639
  }
561
- interface IDialogBuilder {
562
- }
563
- interface IDialogBuilder {
564
- setOptions(options: AXPDialogContainerOptions): IDialogBuilder;
565
- setTitle(title: string): IDialogBuilder;
566
- setMessage(message?: string): IDialogBuilder;
567
- setSize(size: AXPopupSizeType): IDialogBuilder;
568
- setCloseButton(closeButton: boolean): IDialogBuilder;
569
- setContext(context: any): IDialogBuilder;
570
- content(delegate: (layoutBuilder: IFlexContainerBuilder) => void): IDialogBuilder;
571
- setActions(delegate?: (actions: IActionBuilder) => void): IDialogBuilder;
572
- addCustomAction(action: AXPActionMenuItem): IDialogBuilder;
640
+ interface IDialogBuilder<T = AXPDialogRef> {
641
+ }
642
+ interface IDialogBuilder<T = AXPDialogRef> {
643
+ setOptions(options: AXPDialogContainerOptions): IDialogBuilder<T>;
644
+ setTitle(title: string): IDialogBuilder<T>;
645
+ setMessage(message?: string): IDialogBuilder<T>;
646
+ setSize(size: AXPopupSizeType): IDialogBuilder<T>;
647
+ setCloseButton(closeButton: boolean): IDialogBuilder<T>;
648
+ setContext(context: any): IDialogBuilder<T>;
649
+ content(delegate: (layoutBuilder: IFlexContainerBuilder) => void): IDialogBuilder<T>;
650
+ setActions(delegate?: (actions: IActionBuilder) => void): IDialogBuilder<T>;
651
+ /**
652
+ * Handler invoked when user clicks an action. Receives AXPDialogRef (context, action, setLoading, close).
653
+ * If handler throws, dialog stays open for retry.
654
+ * If handler returns, dialog closes and show() resolves with the return value.
655
+ */
656
+ onAction(handler: (dialogRef: AXPDialogRef) => T | Promise<T>): IDialogBuilder<T>;
657
+ /**
658
+ * Prompts for confirmation before dismiss when the dialog context is dirty (cancel, Esc, header close).
659
+ */
660
+ confirmCloseWhenDirty(options?: boolean | AXPDialogCloseConfirmationOptions): IDialogBuilder<T>;
661
+ addCustomAction(action: AXPActionMenuItem): IDialogBuilder<T>;
573
662
  build(): AXPWidgetNode;
574
- show(): Promise<AXPDialogRef>;
663
+ show(): Promise<T>;
575
664
  }
576
665
  interface IListWidgetBuilder extends IBaseContainerBuilder<IListWidgetBuilder>, ILayoutContainerBuilder<IListWidgetBuilder>, IChildContainerBuilder<IListWidgetBuilder>, IWidgetContainerBuilder<IListWidgetBuilder> {
577
666
  setOptions(options: AXPListWidgetOptions): IListWidgetBuilder;
@@ -647,6 +736,11 @@ declare class AXPLayoutRendererComponent implements OnInit {
647
736
  */
648
737
  mode: _angular_core.InputSignal<AXPDynamicFormMode>;
649
738
  protected widgetTree: _angular_core.WritableSignal<AXPWidgetNode | null>;
739
+ /**
740
+ * Prefer explicit {@link AXPWidgetNode.mode} on the root node (e.g. dialog flex `mode('view')`)
741
+ * so nested widgets resolve view vs edit correctly; fall back to the layout `mode` input.
742
+ */
743
+ protected effectiveRenderMode: _angular_core.Signal<"filter" | "view" | "edit" | "column" | "designer" | "print">;
650
744
  /**
651
745
  * Convert layout data to widget tree when inputs change
652
746
  */
@@ -673,7 +767,7 @@ declare class AXPLayoutRendererComponent implements OnInit {
673
767
  /**
674
768
  * Handle context change events from widget container (optimized with RxJS)
675
769
  */
676
- protected handleContextChanged(event: AXPWidgetCoreContextChangeEvent): void;
770
+ protected handleContextChanged(event: AXPContextChangeEvent): void;
677
771
  /**
678
772
  * Get the form component instance
679
773
  */
@@ -728,8 +822,40 @@ declare class LayoutBuilderModule {
728
822
  static ɵinj: _angular_core.ɵɵInjectorDeclaration<LayoutBuilderModule>;
729
823
  }
730
824
 
825
+ /**
826
+ * Runs after dialog options and context are prepared and **before** footer customization and popup open.
827
+ * Listeners may mutate {@link AXPLayoutBuilderDialogBeforeOpenPayload.context} by reference.
828
+ */
829
+ declare const AXP_LAYOUT_BUILDER_DIALOG_BEFORE_OPEN_HOOK_KEY = "layout-builder.dialog.before-open";
830
+ interface AXPLayoutBuilderDialogBeforeOpenPayload {
831
+ context: Record<string, unknown>;
832
+ dialogOptions: AXPDialogContainerOptions;
833
+ }
834
+ /**
835
+ * Runs after builder-defined footer actions exist and **before** the dialog opens.
836
+ * Listeners receive the live `actions.footer.prefix` / `suffix` arrays (same references as the dialog)
837
+ * so they may push, splice, filter, or replace items. They may also mutate {@link AXPLayoutBuilderDialogFooterPayload.context} by reference.
838
+ */
839
+ declare const AXP_LAYOUT_BUILDER_DIALOG_CONFIG_HOOK_KEY = "layout-builder.dialog.config";
840
+ /**
841
+ * Runs whenever the dialog layout builder context changes (debounced upstream), **after** the popup is visible.
842
+ * Use for side effects that depend on live context (for example values updated by widgets after render).
843
+ * Payload mirrors `AXPDialogRendererComponent` semantics: {@link AXPLayoutBuilderDialogContextChangedPayload.getContext},
844
+ * {@link AXPLayoutBuilderDialogContextChangedPayload.patchContext}, and optional loading state.
845
+ */
846
+ declare const AXP_LAYOUT_BUILDER_DIALOG_CONTEXT_CHANGED_HOOK_KEY = "layout-builder.dialog.context-changed";
847
+ interface AXPLayoutBuilderDialogContextChangedPayload {
848
+ /** Stable id for this dialog instance; lets listeners correlate repeated emissions or async follow-up work. */
849
+ sessionKey: string;
850
+ getContext: () => Record<string, unknown>;
851
+ metadata: Record<string, unknown> | undefined;
852
+ patchContext: (partial: Record<string, unknown>) => void;
853
+ setLoading: (loading: boolean) => void;
854
+ }
855
+
731
856
  declare class AXPLayoutBuilderService {
732
857
  private popupService;
858
+ private readonly hookService;
733
859
  /**
734
860
  * Create a new layout builder
735
861
  */
@@ -804,18 +930,7 @@ declare class AXPLayoutConversionService {
804
930
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPLayoutConversionService>;
805
931
  }
806
932
 
807
- interface DialogRendererConfig {
808
- title: string;
809
- message?: string;
810
- context: any;
811
- definition: AXPWidgetNode;
812
- actions?: {
813
- footer?: {
814
- prefix?: any[];
815
- suffix?: any[];
816
- };
817
- };
818
- }
933
+ type DialogRendererConfig = AXPLayoutBuilderDialogConfig;
819
934
  interface DialogRendererResult {
820
935
  context: any;
821
936
  action?: string;
@@ -826,35 +941,127 @@ declare class AXPDialogRendererComponent extends AXBasePageComponent implements
826
941
  result: EventEmitter<DialogRendererResult>;
827
942
  private widgetCoreService;
828
943
  private expressionEvaluator;
944
+ private readonly commandService;
945
+ private readonly hookService;
946
+ private readonly unsavedChangesConfirm;
947
+ private readonly overlayService;
948
+ private readonly translationService;
949
+ private readonly document;
950
+ private readonly host;
829
951
  private dialogResult?;
952
+ /** Ensures `show()` resolves once when the dialog closes (footer action or header close). */
953
+ private callbackInvoked;
954
+ /** Callback payload applied when a dismiss is allowed in {@link onClosing}. */
955
+ private pendingDismissResolvePayload?;
956
+ /** Skips dirty confirmation on the next {@link onClosing} (successful submit / programmatic close). */
957
+ private skipNextOnClosingDirtyCheck;
958
+ /** Blocks re-entrant {@link onClosing} while the first close gate is still resolving. */
959
+ private closeGateInProgress;
960
+ private readonly destroyRef;
830
961
  context: _angular_core.WritableSignal<any>;
831
- callBack: (dialogRef: AXPDialogRef) => void;
962
+ callBack: (result: unknown) => void;
832
963
  data: any;
833
964
  private isDialogLoading;
834
965
  footerPrefix: _angular_core.WritableSignal<AXPWidgetCoreElementAction[]>;
835
966
  footerSuffix: _angular_core.WritableSignal<AXPWidgetCoreElementAction[]>;
967
+ /**
968
+ * Correlate layout context snapshots for distributed hooks (`layout-builder.dialog.context-changed`).
969
+ */
970
+ private readonly contextChangedHooksSessionKey;
971
+ /**
972
+ * Capture-phase footer shortcuts — runs before widget editors (select, date, text) that stop keydown bubbling.
973
+ */
974
+ private readonly onDialogShortcutCapture;
836
975
  ngOnInit(): void;
976
+ /**
977
+ * Popup shell hook — handles header **X** and **Esc** (when `closeButton` is enabled).
978
+ * This is the only place that prompts for unsaved changes.
979
+ */
980
+ onClosing(e: AXComponentClosing): Promise<void>;
981
+ /**
982
+ * Footer cancel and other in-app dismiss actions. Routes through `super.close()` so the
983
+ * popup shell invokes {@link onClosing} exactly once (same path as **X** / **Esc**).
984
+ */
985
+ private requestDismiss;
986
+ /** Invokes `show()` callback with the pending payload or a default cancel {@link AXPDialogRef}. */
987
+ private completeDismissResolve;
988
+ private getWidgetContainer;
837
989
  private layoutRenderer;
838
990
  private debounceTimer?;
839
991
  handleContextChanged(event: any): void;
840
992
  handleContextInitiated(event: any): void;
993
+ private invokeLayoutContextChangedHooks;
841
994
  footerPrefixActions(): AXPWidgetCoreElementAction[];
842
995
  footerSuffixActions(): AXPWidgetCoreElementAction[];
843
996
  isFormLoading(): boolean;
844
997
  isSubmitting(): boolean;
845
998
  executeAction(action: AXPWidgetCoreElementAction): Promise<void>;
999
+ private isDialogDirty;
1000
+ private confirmDismissIfDirty;
1001
+ /** Whether the layout form should be validated before running this footer command. */
1002
+ private shouldValidateBeforeAction;
1003
+ /** True when a footer handler or command result asks to leave the dialog open (`keepDialogOpen` on the result or `result.data`). */
1004
+ private shouldKeepDialogOpenAfterCommandResult;
1005
+ /** Resolves the dialog `show()` promise exactly once. */
1006
+ private resolveDialog;
1007
+ private createDialogRef;
1008
+ private closeWithOptionalSkipValidate;
1009
+ /** Resolves footer/widget action command to a string (e.g. `cancel`, `submit`, `widget:...`). */
1010
+ private resolveActionCommandName;
846
1011
  private parseWidgetCommand;
847
- private executeWidgetApi;
848
- close(result?: DialogRendererResult): Promise<void>;
1012
+ private invokeWidget;
1013
+ close(result?: DialogRendererResult, options?: {
1014
+ skipDirtyConfirm?: boolean;
1015
+ }): Promise<void>;
849
1016
  private aggregateAndEvaluateActions;
850
1017
  private collectWidgetActions;
851
1018
  private collectDialogActionsFromConfig;
852
1019
  private evaluatePredicates;
853
1020
  private evalBool;
1021
+ /** Resolves footer action title when it contains {{ ... }} (e.g. wizard labels from dialog context). */
1022
+ private evalActionTitle;
854
1023
  private resolveApi;
855
1024
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPDialogRendererComponent, never>;
856
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPDialogRendererComponent, "axp-dialog-renderer", never, { "config": { "alias": "config"; "required": false; }; }, { "result": "result"; }, never, never, true, never>;
1025
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPDialogRendererComponent, "axp-dialog-renderer", never, {}, { "result": "result"; }, never, never, true, never>;
1026
+ }
1027
+
1028
+ /** See `AXP_PREVIEW_WIDGET_FIELD_COMMAND_KEY` in `@acorex/platform/contracts`. */
1029
+ interface AXPPreviewWidgetFieldCommandInput {
1030
+ /** Widget node to render (same shape as `widget-field-configurator` model). */
1031
+ widget?: AXPWidgetNode;
1032
+ /**
1033
+ * Alternate property name for the widget node (matches metadata definition `interface` field).
1034
+ */
1035
+ interface?: AXPWidgetNode | string;
1036
+ fieldName?: string;
1037
+ fieldTitle?: AXPMultiLanguageString;
1038
+ name?: string;
1039
+ title?: AXPMultiLanguageString;
1040
+ }
1041
+ type AXPPreviewWidgetFieldInvocation = AXPPreviewWidgetFieldCommandInput & {
1042
+ __context__?: {
1043
+ data?: Record<string, unknown>;
1044
+ options?: Record<string, unknown>;
1045
+ };
1046
+ };
1047
+ /**
1048
+ * Opens a dialog that previews a widget configuration (same behavior as the preview button on
1049
+ * `axp-widget-field-configurator`). Invoked from that component and from entity list actions.
1050
+ */
1051
+ declare class AXPPreviewWidgetFieldCommand implements AXPCommand<AXPPreviewWidgetFieldCommandInput, void> {
1052
+ private readonly formBuilderService;
1053
+ private readonly widgetRegistry;
1054
+ private readonly translationService;
1055
+ private readonly crudService;
1056
+ execute(input: AXPPreviewWidgetFieldInvocation): Promise<AXPExecuteCommandResult<void>>;
1057
+ private mergeInvocation;
1058
+ private normalizeWidget;
1059
+ private resolveFieldTitleLabel;
1060
+ private isCancelDialogOutcome;
1061
+ private resolveWidgetDisplayTitle;
1062
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPPreviewWidgetFieldCommand, never>;
1063
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPPreviewWidgetFieldCommand>;
857
1064
  }
858
1065
 
859
- export { AXPDialogRendererComponent, AXPLayoutBuilderService, AXPLayoutConversionService, AXPLayoutRendererComponent, LayoutBuilderModule };
860
- export type { AXPDialogContainerOptions, AXPDialogRef, AXPDynamicFormDefinition, AXPDynamicFormDirection, AXPDynamicFormFieldDefinition, AXPDynamicFormGroupDefinition, AXPDynamicFormLook, AXPDynamicFormMode, AXPFieldsetContainerOptions, AXPFlexContainerOptions, AXPFormFieldOptions, AXPGridContainerOptions, AXPListWidgetColumn, AXPListWidgetOptions, AXPListWidgetRowCommand, AXPPageContainerOptions, AXPPanelContainerOptions, AXPStepDefinition, AXPStepWizardContainerOptions, AXPStepWizardDefinition, AXPStepWizardGuardPayload, AXPStepWizardStatus, AXPTabsetContainerOptions, AXPWidgetConfiguration, AXPWizardActionDefinition, AXPWizardActions, ColorBoxOptions, DateTimeBoxOptions, DialogBuilderState, DialogRendererConfig, DialogRendererResult, FormFieldBuilderState, IActionBuilder, IBaseContainerBuilder, IChildContainerBuilder, IDialogBuilder, IFieldsetContainerBuilder, IFlexContainerBuilder, IFormFieldBuilder, IGridContainerBuilder, ILayoutBuilder, ILayoutContainerBuilder, IListWidgetBuilder, IPageContainerBuilder, IPanelContainerBuilder, IStepBuilder, IStepWizardBuilder, ITabsetContainerBuilder, IWidgetBuilder, IWidgetContainerBuilder, InheritanceContext, InheritedProperties, LargeTextBoxOptions, LayoutBuilderState, LayoutWidgetOptions, LookupBoxOptions, NumberBoxOptions, PasswordBoxOptions, RichTextOptions, SelectBoxOptions, SelectionListOptions, TextBoxOptions, ToggleSwitchOptions, ValueWidgetOptions, WidgetBuilderState };
1066
+ export { AXPDialogRendererComponent, AXPLayoutBuilderService, AXPLayoutConversionService, AXPLayoutRendererComponent, AXPPreviewWidgetFieldCommand, AXP_LAYOUT_BUILDER_DIALOG_BEFORE_OPEN_HOOK_KEY, AXP_LAYOUT_BUILDER_DIALOG_CONFIG_HOOK_KEY, AXP_LAYOUT_BUILDER_DIALOG_CONTEXT_CHANGED_HOOK_KEY, DEFAULT_CANCEL_DIALOG_ACTION_SHORTCUTS, DEFAULT_SUBMIT_DIALOG_ACTION_SHORTCUTS, LayoutBuilderModule, createDismissedDialogRef };
1067
+ export type { AXPDialogActionMenuItem, AXPDialogActionOptions, AXPDialogActionShortcut, AXPDialogCloseConfirmationOptions, AXPDialogContainerOptions, AXPDialogRef, AXPDynamicFormDefinition, AXPDynamicFormDirection, AXPDynamicFormFieldDefinition, AXPDynamicFormGroupDefinition, AXPDynamicFormLook, AXPDynamicFormMode, AXPFieldsetContainerOptions, AXPFlexContainerOptions, AXPFormFieldHintDisplayMode, AXPFormFieldOptions, AXPGridContainerOptions, AXPLayoutBuilderDialogBeforeOpenPayload, AXPLayoutBuilderDialogConfig, AXPLayoutBuilderDialogContextChangedPayload, AXPListWidgetColumn, AXPListWidgetOptions, AXPListWidgetRowCommand, AXPPageContainerOptions, AXPPanelContainerOptions, AXPPreviewWidgetFieldCommandInput, AXPStepDefinition, AXPStepWizardContainerOptions, AXPStepWizardDefinition, AXPStepWizardGuardPayload, AXPStepWizardStatus, AXPTabsetContainerOptions, AXPWidgetConfiguration, AXPWidgetNodeExtendedProperties, AXPWizardActionDefinition, AXPWizardActions, ColorBoxOptions, DateTimeBoxOptions, DialogBuilderState, DialogRendererConfig, DialogRendererResult, FormFieldBuilderState, IActionBuilder, IBaseContainerBuilder, IChildContainerBuilder, IDialogBuilder, IFieldsetContainerBuilder, IFlexContainerBuilder, IFormFieldBuilder, IGridContainerBuilder, ILayoutBuilder, ILayoutContainerBuilder, IListWidgetBuilder, IPageContainerBuilder, IPanelContainerBuilder, IStepBuilder, IStepWizardBuilder, ITabsetContainerBuilder, IWidgetBuilder, IWidgetContainerBuilder, InheritanceContext, InheritedProperties, LargeTextBoxOptions, LayoutBuilderState, LayoutWidgetOptions, LookupBoxOptions, NumberBoxOptions, PasswordBoxOptions, RichTextOptions, SelectBoxOptions, SelectionListOptions, TextBoxOptions, ToggleSwitchOptions, ValueWidgetOptions, WidgetBuilderState };