@judo/model-api 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/LICENSE +277 -0
  2. package/README.md +210 -0
  3. package/dist/data/elements.d.ts +194 -0
  4. package/dist/data/elements.d.ts.map +1 -0
  5. package/dist/data/index.d.ts +3 -0
  6. package/dist/data/index.d.ts.map +1 -0
  7. package/dist/data/types.d.ts +84 -0
  8. package/dist/data/types.d.ts.map +1 -0
  9. package/dist/enums.d.ts +203 -0
  10. package/dist/enums.d.ts.map +1 -0
  11. package/dist/extensibility.d.ts +663 -0
  12. package/dist/extensibility.d.ts.map +1 -0
  13. package/dist/index.d.ts +7 -0
  14. package/dist/index.d.ts.map +1 -0
  15. package/dist/index.js +150 -0
  16. package/dist/index.js.map +1 -0
  17. package/dist/services.d.ts +244 -0
  18. package/dist/services.d.ts.map +1 -0
  19. package/dist/structural/actions.d.ts +173 -0
  20. package/dist/structural/actions.d.ts.map +1 -0
  21. package/dist/structural/application.d.ts +137 -0
  22. package/dist/structural/application.d.ts.map +1 -0
  23. package/dist/structural/index.d.ts +3 -0
  24. package/dist/structural/index.d.ts.map +1 -0
  25. package/dist/visual/base.d.ts +32 -0
  26. package/dist/visual/base.d.ts.map +1 -0
  27. package/dist/visual/buttons.d.ts +32 -0
  28. package/dist/visual/buttons.d.ts.map +1 -0
  29. package/dist/visual/display.d.ts +36 -0
  30. package/dist/visual/display.d.ts.map +1 -0
  31. package/dist/visual/index.d.ts +9 -0
  32. package/dist/visual/index.d.ts.map +1 -0
  33. package/dist/visual/inputs.d.ts +196 -0
  34. package/dist/visual/inputs.d.ts.map +1 -0
  35. package/dist/visual/layout.d.ts +185 -0
  36. package/dist/visual/layout.d.ts.map +1 -0
  37. package/dist/visual/link.d.ts +32 -0
  38. package/dist/visual/link.d.ts.map +1 -0
  39. package/dist/visual/table.d.ts +103 -0
  40. package/dist/visual/table.d.ts.map +1 -0
  41. package/dist/visual/tabs.d.ts +26 -0
  42. package/dist/visual/tabs.d.ts.map +1 -0
  43. package/package.json +46 -0
@@ -0,0 +1,137 @@
1
+ import { Annotation, AttributeType, ClassType, DataElement, DataType, MimeType } from '../data/elements';
2
+ import { ClaimType, DialogSize, MenuLayout } from '../enums';
3
+ import { LabeledElement, NamedElement } from '../visual/base';
4
+ import { PageContainer } from '../visual/layout';
5
+ import { ActionDefinition } from './actions';
6
+ /**
7
+ * Theme configuration.
8
+ * Maps to: ui:Theme
9
+ */
10
+ export interface Theme {
11
+ textPrimaryColor?: string;
12
+ textSecondaryColor?: string;
13
+ primaryColor?: string;
14
+ secondaryColor?: string;
15
+ subtitleColor?: string;
16
+ backgroundColor?: string;
17
+ paperBackgroundColor?: string;
18
+ }
19
+ /**
20
+ * OIDC claim mapping.
21
+ * Maps to: ui:Claim
22
+ */
23
+ export interface Claim {
24
+ type: ClaimType;
25
+ /** Resolved reference to AttributeType */
26
+ attributeType: AttributeType;
27
+ }
28
+ /**
29
+ * Authentication configuration.
30
+ * Maps to: ui:Authentication
31
+ */
32
+ export interface Authentication {
33
+ realm: string;
34
+ claims: Claim[];
35
+ }
36
+ /**
37
+ * Root application model.
38
+ * Maps to: ui:Application
39
+ *
40
+ * EMF Defaults:
41
+ * - supportGuestAccess: true
42
+ */
43
+ export interface Application extends NamedElement {
44
+ /** Resolved reference to ClassType representing the actor */
45
+ actor: ClassType;
46
+ /** Resolved reference to ClassType representing the principal */
47
+ principal?: ClassType;
48
+ modelName: string;
49
+ navigationController?: NavigationController;
50
+ pages: PageDefinition[];
51
+ pageContainers: PageContainer[];
52
+ dataElements: DataElement[];
53
+ dataTypes: DataType[];
54
+ mimeTypes?: MimeType[];
55
+ authentication?: Authentication;
56
+ version?: string;
57
+ defaultLanguage?: string;
58
+ logo?: string;
59
+ icon?: string;
60
+ title?: string;
61
+ backgroundImage?: string;
62
+ theme: Theme;
63
+ /** Resolved reference to PageDefinition for profile page */
64
+ profilePage?: PageDefinition;
65
+ defaultMenuLayout?: MenuLayout;
66
+ /** Whether guest access is supported. @default true */
67
+ supportGuestAccess?: boolean;
68
+ availableAnnotations?: Annotation[];
69
+ }
70
+ /**
71
+ * Navigation controller.
72
+ * Maps to: ui:NavigationController
73
+ */
74
+ export interface NavigationController extends NamedElement {
75
+ items: NavigationItem[];
76
+ actions?: Action[];
77
+ }
78
+ /**
79
+ * Navigation menu item.
80
+ * Maps to: ui:NavigationItem
81
+ */
82
+ export interface NavigationItem extends NamedElement, LabeledElement {
83
+ items?: NavigationItem[];
84
+ /** Resolved reference to target PageDefinition */
85
+ target?: PageDefinition;
86
+ hiddenBy?: string;
87
+ actionDefinition?: ActionDefinition;
88
+ }
89
+ /**
90
+ * Page definition.
91
+ * Maps to: ui:PageDefinition
92
+ *
93
+ * EMF Defaults:
94
+ * - openInDialog: false
95
+ * - isSelector: false
96
+ * - isRelationSelector: false
97
+ * - dashboard: false
98
+ * - generateActionsHook: false
99
+ */
100
+ export interface PageDefinition extends NamedElement, LabeledElement {
101
+ /** Resolved reference to PageContainer */
102
+ container: PageContainer;
103
+ /** Resolved reference to DataElement */
104
+ dataElement?: DataElement;
105
+ actions: Action[];
106
+ /** Whether page opens in dialog. @default false */
107
+ openInDialog?: boolean;
108
+ dialogSize?: DialogSize;
109
+ /** Whether page is a selector. @default false */
110
+ isSelector?: boolean;
111
+ /** Whether page is a relation selector. @default false */
112
+ isRelationSelector?: boolean;
113
+ /** Whether page is a dashboard. @default false */
114
+ dashboard?: boolean;
115
+ /** Whether to generate actions hook. @default false */
116
+ generateActionsHook?: boolean;
117
+ }
118
+ /**
119
+ * Action binding between pages.
120
+ * Maps to: ui:Action
121
+ *
122
+ * EMF Defaults:
123
+ * - isMenuAction: false
124
+ */
125
+ export interface Action extends NamedElement {
126
+ /** Resolved reference to ActionDefinition */
127
+ actionDefinition: ActionDefinition;
128
+ /** Resolved reference to target PageDefinition */
129
+ targetPageDefinition?: PageDefinition;
130
+ /** Resolved reference to target DataElement */
131
+ targetDataElement?: DataElement;
132
+ /** Resolved reference to owner DataElement */
133
+ ownerDataElement?: DataElement;
134
+ /** Whether action appears in menu. @default false */
135
+ isMenuAction?: boolean;
136
+ }
137
+ //# sourceMappingURL=application.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../src/structural/application.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './actions';
2
+ export * from './application';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/structural/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { Annotation } from '../data/elements';
2
+ import { Icon } from './layout';
3
+ /**
4
+ * Base interface for all model elements with container navigation.
5
+ * The eContainer property provides EMF-style parent navigation.
6
+ */
7
+ export interface ModelElement {
8
+ "xmi:id": string;
9
+ /**
10
+ * Reference to the containing element (EMF-style eContainer).
11
+ * Set automatically during model loading.
12
+ */
13
+ eContainer?: ModelElement;
14
+ }
15
+ /**
16
+ * Base interface for all named elements.
17
+ * Maps to: ui:NamedElement
18
+ */
19
+ export interface NamedElement extends ModelElement {
20
+ name: string;
21
+ sourceId?: string;
22
+ annotations?: Annotation[];
23
+ }
24
+ /**
25
+ * Base interface for elements with labels and icons.
26
+ * Maps to: ui:LabeledElement
27
+ */
28
+ export interface LabeledElement {
29
+ label?: string;
30
+ icon?: Icon;
31
+ }
32
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/visual/base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAErC;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,UAAU,CAAC,EAAE,YAAY,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,YAAa,SAAQ,YAAY;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,IAAI,CAAC;CACZ"}
@@ -0,0 +1,32 @@
1
+ import { DataElement } from '../data/elements';
2
+ import { ActionDefinition, Confirmation } from '../structural/actions';
3
+ import { VisualElement } from './layout';
4
+ /**
5
+ * Button group container.
6
+ * Maps to: ui:ButtonGroup
7
+ *
8
+ * EMF Defaults:
9
+ * - featuredActions: 1
10
+ */
11
+ export interface ButtonGroup extends VisualElement {
12
+ "@type": "ButtonGroup";
13
+ buttons: Button[];
14
+ /** Number of featured/prominent actions. @default 1 */
15
+ featuredActions?: number;
16
+ }
17
+ /**
18
+ * Button element.
19
+ * Maps to: ui:Button
20
+ */
21
+ export interface Button extends VisualElement {
22
+ "@type": "Button";
23
+ buttonStyle?: string;
24
+ actionDefinition: ActionDefinition;
25
+ /** Resolved reference to DataElement */
26
+ dataElement?: DataElement;
27
+ confirmation?: Confirmation;
28
+ preFetchActionDefinition?: ActionDefinition;
29
+ relationName?: string;
30
+ tooltipText?: string;
31
+ }
32
+ //# sourceMappingURL=buttons.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buttons.d.ts","sourceRoot":"","sources":["../../src/visual/buttons.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C;;;;;;GAMG;AACH,MAAM,WAAW,WAAY,SAAQ,aAAa;IACjD,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,uDAAuD;IACvD,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,MAAM,WAAW,MAAO,SAAQ,aAAa;IAC5C,OAAO,EAAE,QAAQ,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,wCAAwC;IACxC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,wBAAwB,CAAC,EAAE,gBAAgB,CAAC;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB"}
@@ -0,0 +1,36 @@
1
+ import { AttributeType } from '../data/elements';
2
+ import { VisualElement } from './layout';
3
+ /**
4
+ * Static text display.
5
+ * Maps to: ui:Text
6
+ */
7
+ export interface Text extends VisualElement {
8
+ "@type": "Text";
9
+ text?: string;
10
+ }
11
+ /**
12
+ * Label element.
13
+ * Maps to: ui:Label
14
+ */
15
+ export interface Label extends VisualElement {
16
+ "@type": "Label";
17
+ }
18
+ /**
19
+ * Formatted text display (markdown, etc.).
20
+ * Maps to: ui:Formatted
21
+ */
22
+ export interface Formatted extends VisualElement {
23
+ "@type": "Formatted";
24
+ format: string;
25
+ isMultiLine?: boolean;
26
+ /** Resolved reference to AttributeType */
27
+ attributeType?: AttributeType;
28
+ }
29
+ /**
30
+ * Icon displayed as image.
31
+ * Maps to: ui:IconImage
32
+ */
33
+ export interface IconImage extends VisualElement {
34
+ "@type": "IconImage";
35
+ }
36
+ //# sourceMappingURL=display.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"display.d.ts","sourceRoot":"","sources":["../../src/visual/display.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C;;;GAGG;AACH,MAAM,WAAW,IAAK,SAAQ,aAAa;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,MAAM,WAAW,KAAM,SAAQ,aAAa;IAC3C,OAAO,EAAE,OAAO,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,SAAU,SAAQ,aAAa;IAC/C,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,0CAA0C;IAC1C,aAAa,CAAC,EAAE,aAAa,CAAC;CAC9B;AAED;;;GAGG;AACH,MAAM,WAAW,SAAU,SAAQ,aAAa;IAC/C,OAAO,EAAE,WAAW,CAAC;CACrB"}
@@ -0,0 +1,9 @@
1
+ export * from './base';
2
+ export * from './layout';
3
+ export * from './display';
4
+ export * from './tabs';
5
+ export * from './table';
6
+ export * from './link';
7
+ export * from './inputs';
8
+ export * from './buttons';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/visual/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC"}
@@ -0,0 +1,196 @@
1
+ import { AttributeType } from '../data/elements';
2
+ import { EnumerationMember } from '../data/types';
3
+ import { DurationUnit, Placement } from '../enums';
4
+ import { NamedElement } from './base';
5
+ import { VisualElement } from './layout';
6
+ /**
7
+ * Input value constraints (min/max values).
8
+ * Maps to: ui:InputValueConstraint
9
+ */
10
+ export interface InputValueConstraint {
11
+ /** Resolved reference to min value AttributeType */
12
+ minValueBy?: AttributeType;
13
+ /** Resolved reference to max value AttributeType */
14
+ maxValueBy?: AttributeType;
15
+ }
16
+ /**
17
+ * Base input element - abstract.
18
+ * Maps to: ui:Input
19
+ *
20
+ * EMF Defaults:
21
+ * - required: false
22
+ */
23
+ export interface Input extends VisualElement {
24
+ /** Resolved reference to AttributeType */
25
+ attributeType: AttributeType;
26
+ /** Whether input is required. @default false */
27
+ required?: boolean;
28
+ tooltipText?: string;
29
+ }
30
+ /**
31
+ * Text input field.
32
+ * Maps to: ui:TextInput
33
+ *
34
+ * EMF Defaults:
35
+ * - isTypeAheadField: false
36
+ */
37
+ export interface TextInput extends Input {
38
+ "@type": "TextInput";
39
+ mask?: string;
40
+ regexp?: string;
41
+ maxLength?: number;
42
+ /** Whether this is a type-ahead field. @default false */
43
+ isTypeAheadField?: boolean;
44
+ }
45
+ /**
46
+ * Multi-line text area.
47
+ * Maps to: ui:TextArea
48
+ *
49
+ * EMF Defaults:
50
+ * - lines: 1
51
+ */
52
+ export interface TextArea extends Input {
53
+ "@type": "TextArea";
54
+ maxLength?: number;
55
+ /** Number of visible lines. @default 1 */
56
+ lines?: number;
57
+ countCharacters?: boolean;
58
+ }
59
+ /**
60
+ * Numeric input field.
61
+ * Maps to: ui:NumericInput
62
+ *
63
+ * EMF Defaults:
64
+ * - formatValue: true
65
+ */
66
+ export interface NumericInput extends Input, InputValueConstraint {
67
+ "@type": "NumericInput";
68
+ scale?: number;
69
+ precision?: number;
70
+ /** Whether to format the numeric value. @default true */
71
+ formatValue?: boolean;
72
+ }
73
+ /**
74
+ * Date input field.
75
+ * Maps to: ui:DateInput
76
+ */
77
+ export interface DateInput extends Input, InputValueConstraint {
78
+ "@type": "DateInput";
79
+ }
80
+ /**
81
+ * Date and time input field.
82
+ * Maps to: ui:DateTimeInput
83
+ *
84
+ * EMF Defaults:
85
+ * - baseUnit: SECOND
86
+ */
87
+ export interface DateTimeInput extends Input, InputValueConstraint {
88
+ "@type": "DateTimeInput";
89
+ /** Base time unit for the input. @default SECOND */
90
+ baseUnit?: DurationUnit;
91
+ }
92
+ /**
93
+ * Time input field.
94
+ * Maps to: ui:TimeInput
95
+ *
96
+ * EMF Defaults:
97
+ * - baseUnit: SECOND
98
+ */
99
+ export interface TimeInput extends Input, InputValueConstraint {
100
+ "@type": "TimeInput";
101
+ /** Base time unit for the input. @default SECOND */
102
+ baseUnit?: DurationUnit;
103
+ }
104
+ /**
105
+ * Checkbox input.
106
+ * Maps to: ui:Checkbox
107
+ *
108
+ * EMF Defaults:
109
+ * - checked: false
110
+ * - valueLabelPlacement: DEFAULT
111
+ */
112
+ export interface Checkbox extends Input {
113
+ "@type": "Checkbox";
114
+ /** Initial checked state. @default false */
115
+ checked?: boolean;
116
+ /** Label placement relative to checkbox. @default DEFAULT */
117
+ valueLabelPlacement?: Placement;
118
+ }
119
+ /**
120
+ * Toggle switch input.
121
+ * Maps to: ui:Switch
122
+ *
123
+ * EMF Defaults:
124
+ * - valueLabelPlacement: DEFAULT
125
+ */
126
+ export interface Switch extends Input {
127
+ "@type": "Switch";
128
+ switched?: boolean;
129
+ /** Label placement relative to switch. @default DEFAULT */
130
+ valueLabelPlacement?: Placement;
131
+ }
132
+ /**
133
+ * Enumeration option (for radio/combo/toggle).
134
+ * Maps to: ui:Option
135
+ *
136
+ * EMF Defaults:
137
+ * - selected: false
138
+ */
139
+ export interface Option extends NamedElement {
140
+ /** Whether this option is selected. @default false */
141
+ selected?: boolean;
142
+ /** Resolved reference to EnumerationMember */
143
+ enumerationMember: EnumerationMember;
144
+ label?: string;
145
+ }
146
+ /**
147
+ * Enumeration dropdown.
148
+ * Maps to: ui:EnumerationCombo
149
+ */
150
+ export interface EnumerationCombo extends Input {
151
+ "@type": "EnumerationCombo";
152
+ options: Option[];
153
+ }
154
+ /**
155
+ * Enumeration radio buttons.
156
+ * Maps to: ui:EnumerationRadio
157
+ */
158
+ export interface EnumerationRadio extends Input {
159
+ "@type": "EnumerationRadio";
160
+ options: Option[];
161
+ }
162
+ /**
163
+ * Enumeration toggle button bar.
164
+ * Maps to: ui:EnumerationToggleButtonbar
165
+ */
166
+ export interface EnumerationToggleButtonbar extends Input {
167
+ "@type": "EnumerationToggleButtonbar";
168
+ options: Option[];
169
+ }
170
+ /**
171
+ * Trinary logic combo (true/false/null).
172
+ * Maps to: ui:TrinaryLogicCombo
173
+ */
174
+ export interface TrinaryLogicCombo extends Input {
175
+ "@type": "TrinaryLogicCombo";
176
+ }
177
+ /**
178
+ * Binary/file input.
179
+ * Maps to: ui:BinaryTypeInput
180
+ */
181
+ export interface BinaryTypeInput extends Input {
182
+ "@type": "BinaryTypeInput";
183
+ }
184
+ /**
185
+ * Password input.
186
+ * Maps to: ui:PasswordInput
187
+ */
188
+ export interface PasswordInput extends Input {
189
+ "@type": "PasswordInput";
190
+ maxLength?: number;
191
+ }
192
+ /**
193
+ * Union type for all input types.
194
+ */
195
+ export type InputElement = TextInput | TextArea | NumericInput | DateInput | DateTimeInput | TimeInput | Checkbox | Switch | EnumerationCombo | EnumerationRadio | EnumerationToggleButtonbar | TrinaryLogicCombo | BinaryTypeInput | PasswordInput;
196
+ //# sourceMappingURL=inputs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inputs.d.ts","sourceRoot":"","sources":["../../src/visual/inputs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,185 @@
1
+ import { AttributeType, DataElement } from '../data/elements';
2
+ import { Alignment, Axis, CrossAxisAlignment, Fit, MainAxisAlignment, MainAxisSize, PageContainerType, Stretch, TitleFrom } from '../enums';
3
+ import { ActionDefinition } from '../structural/actions';
4
+ import { LabeledElement, NamedElement } from './base';
5
+ import { ButtonGroup } from './buttons';
6
+ /**
7
+ * Size specification.
8
+ * Maps to: ui:Size
9
+ *
10
+ * EMF Defaults:
11
+ * - width: -1 (unset/auto)
12
+ * - height: -1 (unset/auto)
13
+ */
14
+ export interface Size {
15
+ /** Width in pixels. @default -1 (unset/auto) */
16
+ width?: number;
17
+ /** Height in pixels. @default -1 (unset/auto) */
18
+ height?: number;
19
+ }
20
+ /**
21
+ * Size constraints (min/max).
22
+ * Maps to: ui:SizeConstraint
23
+ *
24
+ * EMF Defaults:
25
+ * - minWidth: -1 (no minimum)
26
+ * - minHeight: -1 (no minimum)
27
+ * - maxWidth: -1 (no maximum)
28
+ * - maxHeight: -1 (no maximum)
29
+ */
30
+ export interface SizeConstraint {
31
+ /** Minimum width. @default -1 (no minimum) */
32
+ minWidth?: number;
33
+ /** Minimum height. @default -1 (no minimum) */
34
+ minHeight?: number;
35
+ /** Maximum width. @default -1 (no maximum) */
36
+ maxWidth?: number;
37
+ /** Maximum height. @default -1 (no maximum) */
38
+ maxHeight?: number;
39
+ }
40
+ /**
41
+ * Alignment specification.
42
+ * Maps to: ui:Align
43
+ */
44
+ export interface Align {
45
+ alignment: Alignment;
46
+ }
47
+ /**
48
+ * Frame styling for cards/panels.
49
+ * Maps to: ui:Frame
50
+ *
51
+ * EMF Defaults:
52
+ * - elevation: 4
53
+ * - radius: 5
54
+ */
55
+ export interface Frame {
56
+ "xmi:id"?: string;
57
+ /** Elevation level for shadow effect. @default 4 */
58
+ elevation?: number;
59
+ /** Border radius. @default 5 */
60
+ radius?: number;
61
+ }
62
+ /**
63
+ * Icon definition.
64
+ * Maps to: ui:Icon
65
+ */
66
+ export interface Icon extends NamedElement {
67
+ iconName?: string;
68
+ }
69
+ /**
70
+ * Base visual element - all UI components extend this.
71
+ * Maps to: ui:VisualElement
72
+ *
73
+ * EMF Defaults:
74
+ * - col: 4
75
+ * - row: 1
76
+ * - fit: NONE
77
+ * - stretch: NONE
78
+ * - disabled: false
79
+ * - isInCard: false
80
+ * - isReadOnly: false
81
+ */
82
+ export interface VisualElement extends NamedElement, LabeledElement {
83
+ "@type": string;
84
+ /** Column span in grid layout. @default 4 */
85
+ col?: number;
86
+ /** Row span in grid layout. @default 1 */
87
+ row?: number;
88
+ /** Fit behavior in flex container. @default NONE */
89
+ fit?: Fit;
90
+ /** Stretch behavior. @default NONE */
91
+ stretch?: Stretch;
92
+ size?: Size;
93
+ sizeConstraint?: SizeConstraint;
94
+ align?: Align;
95
+ order?: number;
96
+ /** Whether element is disabled. @default false */
97
+ disabled?: boolean;
98
+ hidden?: boolean;
99
+ /** Whether element is read-only. @default false */
100
+ isReadOnly?: boolean;
101
+ /** Whether element is in a card context. @default false */
102
+ isInCard?: boolean;
103
+ /** Resolved reference to AttributeType that controls visibility */
104
+ hiddenBy?: AttributeType;
105
+ /** Resolved reference to AttributeType that controls enabled state */
106
+ enabledBy?: AttributeType;
107
+ /** Resolved reference to AttributeType that controls required state */
108
+ requiredBy?: AttributeType;
109
+ customImplementation?: boolean;
110
+ onBlur?: boolean;
111
+ subTheme?: string;
112
+ }
113
+ /**
114
+ * Base container with children.
115
+ * Maps to: ui:Container
116
+ */
117
+ export interface Container extends VisualElement {
118
+ children: VisualElement[];
119
+ actionButtonGroups?: ButtonGroup[];
120
+ }
121
+ /**
122
+ * Flex layout container.
123
+ * Maps to: ui:Flex
124
+ *
125
+ * EMF Defaults:
126
+ * - direction: HORIZONTAL (first enum literal)
127
+ * - mainAxisAlignment: CENTER (first enum literal)
128
+ * - crossAxisAlignment: START (explicit default)
129
+ * - mainAxisSize: MIN (first enum literal)
130
+ */
131
+ export interface Flex extends Container {
132
+ "@type": "Flex";
133
+ /** Layout direction. @default HORIZONTAL */
134
+ direction?: Axis;
135
+ /** Main axis alignment. @default CENTER */
136
+ mainAxisAlignment?: MainAxisAlignment;
137
+ /** Cross axis alignment. @default START */
138
+ crossAxisAlignment?: CrossAxisAlignment;
139
+ /** Main axis size behavior. @default MIN */
140
+ mainAxisSize?: MainAxisSize;
141
+ /** Resolved reference to DataElement */
142
+ dataElement?: DataElement;
143
+ frame?: Frame;
144
+ }
145
+ /**
146
+ * Page container - top level container for pages.
147
+ * Maps to: ui:PageContainer
148
+ *
149
+ * EMF Defaults:
150
+ * - type: TABLE (first enum literal)
151
+ * - generateVisualPropertiesHook: false
152
+ * - Inherits Flex defaults
153
+ */
154
+ export interface PageContainer extends Omit<Flex, "@type"> {
155
+ "@type": "PageContainer";
156
+ transferPackageNameTokens?: string[];
157
+ transferPageName?: string;
158
+ /** Resolved reference to title AttributeType */
159
+ titleAttribute?: AttributeType;
160
+ titleFrom?: TitleFrom;
161
+ /** Resolved reference to onInit ActionDefinition */
162
+ onInit?: ActionDefinition;
163
+ /** Container type. @default TABLE */
164
+ type?: PageContainerType;
165
+ templateAction?: ActionDefinition;
166
+ /** Resolved references to additional mask AttributeTypes */
167
+ additionalMaskAttributes?: AttributeType[];
168
+ /** Whether to generate visual properties hook. @default false */
169
+ generateVisualPropertiesHook: boolean;
170
+ }
171
+ /**
172
+ * Empty space for layout.
173
+ * Maps to: ui:Spacer
174
+ */
175
+ export interface Spacer extends VisualElement {
176
+ "@type": "Spacer";
177
+ }
178
+ /**
179
+ * Visual divider/separator.
180
+ * Maps to: ui:Divider
181
+ */
182
+ export interface Divider extends VisualElement {
183
+ "@type": "Divider";
184
+ }
185
+ //# sourceMappingURL=layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/visual/layout.ts"],"names":[],"mappings":"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"}