@meshmakers/octo-ui 3.3.580 → 3.3.600

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.
@@ -0,0 +1,224 @@
1
+ // ============================================================================
2
+ // RUNTIME BROWSER - Kendo Theme Integration (optional)
3
+ // Import this ONLY when your app does NOT already import a Kendo theme.
4
+ // When Kendo is already imported, use _index.scss (base) - it applies
5
+ // CSS variable overrides that work with the host's Kendo theme.
6
+ // ============================================================================
7
+
8
+ @use "sass:map";
9
+ @use "variables" as vars;
10
+
11
+ // Slim Kendo theme: import only modules needed for runtime-browser components
12
+ @use "@progress/kendo-theme-material/scss/core/_index.scss" as *;
13
+ @use "@progress/kendo-theme-material/scss/typography/_index.scss" as *;
14
+ @use "@progress/kendo-theme-material/scss/icons/_index.scss" as *;
15
+ @use "@progress/kendo-theme-material/scss/messagebox/_index.scss" as *;
16
+ @use "@progress/kendo-theme-material/scss/draggable/_index.scss" as *;
17
+ @use "@progress/kendo-theme-material/scss/list/_index.scss" as *;
18
+ @use "@progress/kendo-theme-material/scss/listgroup/_index.scss" as *;
19
+ @use "@progress/kendo-theme-material/scss/action-buttons/_index.scss" as *;
20
+ @use "@progress/kendo-theme-material/scss/overlay/_index.scss" as *;
21
+ @use "@progress/kendo-theme-material/scss/popup/_index.scss" as *;
22
+ @use "@progress/kendo-theme-material/scss/ripple/_index.scss" as *;
23
+ @use "@progress/kendo-theme-material/scss/table/_index.scss" as *;
24
+ @use "@progress/kendo-theme-material/scss/virtual-scroller/_index.scss" as *;
25
+ @use "@progress/kendo-theme-material/scss/no-data/_index.scss" as *;
26
+ @use "@progress/kendo-theme-material/scss/suggestion/_index.scss" as *;
27
+ @use "@progress/kendo-theme-material/scss/bubble/_index.scss" as *;
28
+ @use "@progress/kendo-theme-material/scss/column-menu/_index.scss" as *;
29
+ @use "@progress/kendo-theme-material/scss/badge/_index.scss" as *;
30
+ @use "@progress/kendo-theme-material/scss/chip/_index.scss" as *;
31
+ @use "@progress/kendo-theme-material/scss/loader/_index.scss" as *;
32
+ @use "@progress/kendo-theme-material/scss/skeleton/_index.scss" as *;
33
+ @use "@progress/kendo-theme-material/scss/tooltip/_index.scss" as *;
34
+ @use "@progress/kendo-theme-material/scss/forms/_index.scss" as *;
35
+ @use "@progress/kendo-theme-material/scss/validator/_index.scss" as *;
36
+ @use "@progress/kendo-theme-material/scss/floating-label/_index.scss" as *;
37
+ @use "@progress/kendo-theme-material/scss/button/_index.scss" as *;
38
+ @use "@progress/kendo-theme-material/scss/input/_index.scss" as *;
39
+ @use "@progress/kendo-theme-material/scss/textbox/_index.scss" as *;
40
+ @use "@progress/kendo-theme-material/scss/textarea/_index.scss" as *;
41
+ @use "@progress/kendo-theme-material/scss/checkbox/_index.scss" as *;
42
+ @use "@progress/kendo-theme-material/scss/listbox/_index.scss" as *;
43
+ @use "@progress/kendo-theme-material/scss/progressbar/_index.scss" as *;
44
+ @use "@progress/kendo-theme-material/scss/radio/_index.scss" as *;
45
+ @use "@progress/kendo-theme-material/scss/calendar/_index.scss" as *;
46
+ @use "@progress/kendo-theme-material/scss/timeselector/_index.scss" as *;
47
+ @use "@progress/kendo-theme-material/scss/autocomplete/_index.scss" as *;
48
+ @use "@progress/kendo-theme-material/scss/dateinput/_index.scss" as *;
49
+ @use "@progress/kendo-theme-material/scss/datepicker/_index.scss" as *;
50
+ @use "@progress/kendo-theme-material/scss/timepicker/_index.scss" as *;
51
+ @use "@progress/kendo-theme-material/scss/datetimepicker/_index.scss" as *;
52
+ @use "@progress/kendo-theme-material/scss/dropdownlist/_index.scss" as *;
53
+ @use "@progress/kendo-theme-material/scss/multiselect/_index.scss" as *;
54
+ @use "@progress/kendo-theme-material/scss/numerictextbox/_index.scss" as *;
55
+ @use "@progress/kendo-theme-material/scss/upload/_index.scss" as *;
56
+ @use "@progress/kendo-theme-material/scss/dropzone/_index.scss" as *;
57
+ @use "@progress/kendo-theme-material/scss/menu/_index.scss" as *;
58
+ @use "@progress/kendo-theme-material/scss/toolbar/_index.scss" as *;
59
+ @use "@progress/kendo-theme-material/scss/window/_index.scss" as *;
60
+ @use "@progress/kendo-theme-material/scss/dialog/_index.scss" as *;
61
+ @use "@progress/kendo-theme-material/scss/drawer/_index.scss" as *;
62
+ @use "@progress/kendo-theme-material/scss/notification/_index.scss" as *;
63
+ @use "@progress/kendo-theme-material/scss/pager/_index.scss" as *;
64
+ @use "@progress/kendo-theme-material/scss/tabstrip/_index.scss" as *;
65
+ @use "@progress/kendo-theme-material/scss/treeview/_index.scss" as *;
66
+ @use "@progress/kendo-theme-material/scss/card/_index.scss" as *;
67
+ @use "@progress/kendo-theme-material/scss/expansion-panel/_index.scss" as *;
68
+ @use "@progress/kendo-theme-material/scss/splitter/_index.scss" as *;
69
+ @use "@progress/kendo-theme-material/scss/tilelayout/_index.scss" as *;
70
+ @use "@progress/kendo-theme-material/scss/gridlayout/_index.scss" as *;
71
+ @use "@progress/kendo-theme-material/scss/stacklayout/_index.scss" as *;
72
+ @use "@progress/kendo-theme-material/scss/adaptive/_index.scss" as *;
73
+ @use "@progress/kendo-theme-material/scss/grid/_index.scss" as *;
74
+ @use "@progress/kendo-theme-material/scss/filter/_index.scss" as *;
75
+ @use "@progress/kendo-theme-material/scss/utils/_index.scss" as *;
76
+
77
+ // ----------------------------------------------------------------------------
78
+ // KENDO THEME COLOR CONFIGURATION (LCARS palette)
79
+ // ----------------------------------------------------------------------------
80
+ $kendo-colors: map.merge(
81
+ $kendo-colors,
82
+ (
83
+ primary: var(--octo-mint),
84
+ surface: var(--iron-navy),
85
+ surface-alt: var(--surface-elevated),
86
+ app-surface: var(--deep-sea),
87
+ on-app-surface: var(--octo-text-color),
88
+ subtle: var(--ash-blue),
89
+ )
90
+ );
91
+
92
+ $kendo-colors: map.merge(
93
+ $kendo-colors,
94
+ k-generate-color-variations("base", vars.$ash-blue, "material")
95
+ );
96
+ $kendo-colors: map.merge(
97
+ $kendo-colors,
98
+ k-generate-color-variations("primary", vars.$octo-mint, "material")
99
+ );
100
+ $kendo-colors: map.merge(
101
+ $kendo-colors,
102
+ k-generate-color-variations("secondary", vars.$neo-cyan, "material")
103
+ );
104
+ $kendo-colors: map.merge(
105
+ $kendo-colors,
106
+ k-generate-color-variations("tertiary", vars.$toffee, "material")
107
+ );
108
+ $kendo-colors: map.merge(
109
+ $kendo-colors,
110
+ k-generate-color-variations("light", vars.$ash-blue, "material")
111
+ );
112
+ $kendo-colors: map.merge(
113
+ $kendo-colors,
114
+ k-generate-color-variations("dark", vars.$iron-navy, "material")
115
+ );
116
+ $kendo-colors: map.merge(
117
+ $kendo-colors,
118
+ k-generate-color-variations("inverse", vars.$kendo-inverse, "material")
119
+ );
120
+ $kendo-colors: map.merge(
121
+ $kendo-colors,
122
+ k-generate-color-variations("info", vars.$indigogo, "material")
123
+ );
124
+ $kendo-colors: map.merge(
125
+ $kendo-colors,
126
+ k-generate-color-variations("success", vars.$kendo-success, "material")
127
+ );
128
+ $kendo-colors: map.merge(
129
+ $kendo-colors,
130
+ k-generate-color-variations("warning", vars.$toffee, "material")
131
+ );
132
+ $kendo-colors: map.merge(
133
+ $kendo-colors,
134
+ k-generate-color-variations("error", vars.$bubblegum, "material")
135
+ );
136
+
137
+ $kendo-colors: map.merge(
138
+ $kendo-colors,
139
+ k-generate-color-variations("series-a", vars.$octo-mint, "material")
140
+ );
141
+ $kendo-colors: map.merge(
142
+ $kendo-colors,
143
+ k-generate-color-variations("series-b", vars.$neo-cyan, "material")
144
+ );
145
+ $kendo-colors: map.merge(
146
+ $kendo-colors,
147
+ k-generate-color-variations("series-c", vars.$lilac-glow, "material")
148
+ );
149
+ $kendo-colors: map.merge(
150
+ $kendo-colors,
151
+ k-generate-color-variations("series-d", vars.$royal-violet, "material")
152
+ );
153
+ $kendo-colors: map.merge(
154
+ $kendo-colors,
155
+ k-generate-color-variations("series-e", vars.$bubblegum, "material")
156
+ );
157
+ $kendo-colors: map.merge(
158
+ $kendo-colors,
159
+ k-generate-color-variations("series-f", vars.$toffee, "material")
160
+ );
161
+
162
+ // Include Kendo component styles
163
+ @include core-styles();
164
+ @include kendo-typography--styles();
165
+ @include kendo-icon--styles();
166
+ @include kendo-messagebox--styles();
167
+ @include kendo-draggable--styles();
168
+ @include kendo-list--styles();
169
+ @include kendo-listgroup--styles();
170
+ @include kendo-action-buttons--styles();
171
+ @include kendo-overlay--styles();
172
+ @include kendo-popup--styles();
173
+ @include kendo-ripple--styles();
174
+ @include kendo-table--styles();
175
+ @include kendo-virtual-scroller--styles();
176
+ @include kendo-no-data--styles();
177
+ @include kendo-suggestion--styles();
178
+ @include kendo-bubble--styles();
179
+ @include kendo-column-menu--styles();
180
+ @include kendo-badge--styles();
181
+ @include kendo-chip--styles();
182
+ @include kendo-loader--styles();
183
+ @include kendo-skeleton--styles();
184
+ @include kendo-tooltip--styles();
185
+ @include kendo-form--styles();
186
+ @include kendo-validator--styles();
187
+ @include kendo-floating-label--styles();
188
+ @include kendo-button--styles();
189
+ @include kendo-input--styles();
190
+ @include kendo-textbox--styles();
191
+ @include kendo-textarea--styles();
192
+ @include kendo-checkbox--styles();
193
+ @include kendo-listbox--styles();
194
+ @include kendo-progressbar--styles();
195
+ @include kendo-radio--styles();
196
+ @include kendo-calendar--styles();
197
+ @include kendo-time-selector--styles();
198
+ @include kendo-autocomplete--styles();
199
+ @include kendo-date-input--styles();
200
+ @include kendo-date-picker--styles();
201
+ @include kendo-time-picker--styles();
202
+ @include kendo-date-time-picker--styles();
203
+ @include kendo-dropdown-list--styles();
204
+ @include kendo-multiselect--styles();
205
+ @include kendo-numeric-textbox--styles();
206
+ @include kendo-upload--styles();
207
+ @include kendo-dropzone--styles();
208
+ @include kendo-menu--styles();
209
+ @include kendo-toolbar--styles();
210
+ @include kendo-window--styles();
211
+ @include kendo-dialog--styles();
212
+ @include kendo-drawer--styles();
213
+ @include kendo-notification--styles();
214
+ @include kendo-pager--styles();
215
+ @include kendo-tabstrip--styles();
216
+ @include kendo-treeview--styles();
217
+ @include kendo-card--styles();
218
+ @include kendo-expander--styles();
219
+ @include kendo-splitter--styles();
220
+ @include kendo-tile-layout--styles();
221
+ @include kendo-grid-layout--styles();
222
+ @include kendo-stack-layout--styles();
223
+ @include kendo-grid--styles();
224
+ @include kendo-filter--styles();
@@ -0,0 +1,196 @@
1
+ // ============================================================================
2
+ // RUNTIME BROWSER - Design Tokens (Kendo-independent)
3
+ // LCARS-inspired theme variables. Use with Kendo when host imports Kendo theme.
4
+ // ============================================================================
5
+
6
+ // ----------------------------------------------------------------------------
7
+ // LCARS DESIGN TOKENS - Brand color palette (SCSS variables for reuse)
8
+ // ----------------------------------------------------------------------------
9
+ $octo-mint: #8ca3a1;
10
+ $neo-cyan: #7f97ad;
11
+ $indigogo: #6e7f99;
12
+ $toffee: #b8a184;
13
+ $bubblegum: #b38f9f;
14
+ $lilac-glow: #a3a0b6;
15
+ $royal-violet: #8f85a8;
16
+ $ash-blue: #9aa4b2;
17
+ $iron-navy: #3b4657;
18
+ $deep-sea: #1a2230;
19
+ $surface-elevated: #243042;
20
+ $octo-text-color: #ffffff;
21
+ $lcars-border-color: #64ceb9;
22
+ $pink: #ec658f;
23
+
24
+ // Additional theme colors (used when Kendo theme is applied)
25
+ $kendo-inverse: #3d3d3d;
26
+ $kendo-success: #37b400;
27
+
28
+ /// Applies CSS custom properties for the LCARS theme.
29
+ /// Include this on :host or a container (e.g. .kendo-theme-provider).
30
+ /// When Kendo is imported by the host, these variables override Kendo's defaults.
31
+ @mixin variables {
32
+ // Typography
33
+ --lcars-font-primary: "Montserrat", "Roboto", "Helvetica Neue", sans-serif;
34
+ --lcars-font-mono: "Roboto Mono", "Consolas", monospace;
35
+ --lcars-border-color: #{$lcars-border-color};
36
+
37
+ --pink: #{$pink};
38
+
39
+ // Brand Colors as CSS Variables
40
+ --octo-mint: #{$octo-mint};
41
+ --neo-cyan: #{$neo-cyan};
42
+ --indigogo: #{$indigogo};
43
+ --toffee: #{$toffee};
44
+ --bubblegum: #{$bubblegum};
45
+ --lilac-glow: #{$lilac-glow};
46
+ --royal-violet: #{$royal-violet};
47
+ --ash-blue: #{$ash-blue};
48
+ --iron-navy: #{$iron-navy};
49
+ --deep-sea: #{$deep-sea};
50
+ --surface-elevated: #{$surface-elevated};
51
+ --octo-text-color: #{$octo-text-color};
52
+ --kendo-success: #{$kendo-success};
53
+
54
+ // Kendo variable overrides - applied when Kendo is imported by host
55
+ --kendo-color-primary: var(--octo-mint);
56
+ --kendo-color-primary-on-surface: var(--octo-mint);
57
+ --kendo-color-app-surface: var(--deep-sea);
58
+ --kendo-color-on-app-surface: var(--octo-text-color);
59
+ font-family: var(--lcars-font-primary);
60
+
61
+ // Derived colors for gradients/overlays (theme-aware)
62
+ --octo-mint-05: color-mix(in srgb, var(--octo-mint) 5%, transparent);
63
+ --octo-mint-03: color-mix(in srgb, var(--octo-mint) 3%, transparent);
64
+ --octo-mint-08: color-mix(in srgb, var(--octo-mint) 8%, transparent);
65
+ --octo-mint-10: color-mix(in srgb, var(--octo-mint) 10%, transparent);
66
+ --octo-mint-15: color-mix(in srgb, var(--octo-mint) 15%, transparent);
67
+ --octo-mint-20: color-mix(in srgb, var(--octo-mint) 20%, transparent);
68
+ --octo-mint-25: color-mix(in srgb, var(--octo-mint) 25%, transparent);
69
+ --octo-mint-30: color-mix(in srgb, var(--octo-mint) 30%, transparent);
70
+ --octo-mint-35: color-mix(in srgb, var(--octo-mint) 35%, transparent);
71
+ --octo-mint-40: color-mix(in srgb, var(--octo-mint) 40%, transparent);
72
+ --octo-mint-45: color-mix(in srgb, var(--octo-mint) 45%, transparent);
73
+ --octo-mint-50: color-mix(in srgb, var(--octo-mint) 50%, transparent);
74
+ --octo-mint-60: color-mix(in srgb, var(--octo-mint) 60%, transparent);
75
+ --octo-mint-80: color-mix(in srgb, var(--octo-mint) 80%, transparent);
76
+ --octo-mint-dark-10: color-mix(in srgb, var(--octo-mint), black 10%);
77
+ --octo-mint-light-5: color-mix(in srgb, var(--octo-mint), white 5%);
78
+ --octo-mint-light-10: color-mix(in srgb, var(--octo-mint), white 10%);
79
+
80
+ --bubblegum-05: color-mix(in srgb, var(--bubblegum) 5%, transparent);
81
+ --bubblegum-10: color-mix(in srgb, var(--bubblegum) 10%, transparent);
82
+ --bubblegum-15: color-mix(in srgb, var(--bubblegum) 15%, transparent);
83
+ --bubblegum-20: color-mix(in srgb, var(--bubblegum) 20%, transparent);
84
+ --bubblegum-30: color-mix(in srgb, var(--bubblegum) 30%, transparent);
85
+ --bubblegum-40: color-mix(in srgb, var(--bubblegum) 40%, transparent);
86
+ --bubblegum-50: color-mix(in srgb, var(--bubblegum) 50%, transparent);
87
+ --bubblegum-60: color-mix(in srgb, var(--bubblegum) 60%, transparent);
88
+
89
+ --toffee-15: color-mix(in srgb, var(--toffee) 15%, transparent);
90
+ --toffee-30: color-mix(in srgb, var(--toffee) 30%, transparent);
91
+ --toffee-40: color-mix(in srgb, var(--toffee) 40%, transparent);
92
+ --toffee-50: color-mix(in srgb, var(--toffee) 50%, transparent);
93
+
94
+ --royal-violet-15: color-mix(in srgb, var(--royal-violet) 15%, transparent);
95
+ --royal-violet-30: color-mix(in srgb, var(--royal-violet) 30%, transparent);
96
+ --royal-violet-40: color-mix(in srgb, var(--royal-violet) 40%, transparent);
97
+ --royal-violet-50: color-mix(in srgb, var(--royal-violet) 50%, transparent);
98
+ --royal-violet-light-20: color-mix(in srgb, var(--royal-violet), white 20%);
99
+
100
+ --neo-cyan-05: color-mix(in srgb, var(--neo-cyan) 5%, transparent);
101
+ --neo-cyan-10: color-mix(in srgb, var(--neo-cyan) 10%, transparent);
102
+ --neo-cyan-30: color-mix(in srgb, var(--neo-cyan) 30%, transparent);
103
+ --neo-cyan-40: color-mix(in srgb, var(--neo-cyan) 40%, transparent);
104
+ --neo-cyan-dark-10: color-mix(in srgb, var(--neo-cyan), black 10%);
105
+
106
+ --iron-navy-60: color-mix(in srgb, var(--iron-navy) 60%, transparent);
107
+ --iron-navy-80: color-mix(in srgb, var(--iron-navy) 80%, transparent);
108
+ --iron-navy-50: color-mix(in srgb, var(--iron-navy) 50%, transparent);
109
+ --iron-navy-70: color-mix(in srgb, var(--iron-navy) 70%, transparent);
110
+ --iron-navy-dark-5: color-mix(in srgb, var(--iron-navy), black 5%);
111
+
112
+ --deep-sea-40: color-mix(in srgb, var(--deep-sea) 40%, transparent);
113
+ --deep-sea-50: color-mix(in srgb, var(--deep-sea) 50%, transparent);
114
+ --deep-sea-60: color-mix(in srgb, var(--deep-sea) 60%, transparent);
115
+ --deep-sea-80: color-mix(in srgb, var(--deep-sea) 80%, transparent);
116
+ --deep-sea-90: color-mix(in srgb, var(--deep-sea) 90%, transparent);
117
+ --deep-sea-95: color-mix(in srgb, var(--deep-sea) 95%, transparent);
118
+
119
+ --ash-blue-10: color-mix(in srgb, var(--ash-blue) 10%, transparent);
120
+ --ash-blue-15: color-mix(in srgb, var(--ash-blue) 15%, transparent);
121
+ --ash-blue-20: color-mix(in srgb, var(--ash-blue) 20%, transparent);
122
+ --ash-blue-30: color-mix(in srgb, var(--ash-blue) 30%, transparent);
123
+ --ash-blue-50: color-mix(in srgb, var(--ash-blue) 50%, transparent);
124
+ --ash-blue-70: color-mix(in srgb, var(--ash-blue) 70%, transparent);
125
+ --ash-blue-80: color-mix(in srgb, var(--ash-blue) 80%, transparent);
126
+
127
+ --surface-elevated-40: color-mix(
128
+ in srgb,
129
+ var(--surface-elevated) 40%,
130
+ transparent
131
+ );
132
+ --surface-elevated-50: color-mix(
133
+ in srgb,
134
+ var(--surface-elevated) 50%,
135
+ transparent
136
+ );
137
+ --surface-elevated-90: color-mix(
138
+ in srgb,
139
+ var(--surface-elevated) 90%,
140
+ transparent
141
+ );
142
+ --surface-elevated-60: color-mix(
143
+ in srgb,
144
+ var(--surface-elevated) 60%,
145
+ transparent
146
+ );
147
+ --surface-elevated-80: color-mix(
148
+ in srgb,
149
+ var(--surface-elevated) 80%,
150
+ transparent
151
+ );
152
+
153
+ // LCARS-specific design tokens
154
+ --lcars-glow-primary: 0 0 10px var(--octo-mint-40);
155
+ --lcars-glow-cyan: 0 0 10px var(--neo-cyan-40);
156
+ --lcars-glow-violet: 0 0 10px var(--royal-violet-40);
157
+ --lcars-glow-pink: 0 0 10px var(--bubblegum-40);
158
+
159
+ // LCARS Border Radius (asymmetric is characteristic)
160
+ --lcars-radius-sm: 4px;
161
+ --lcars-radius-md: 8px;
162
+ --lcars-radius-lg: 16px;
163
+ --lcars-radius-xl: 24px;
164
+ --lcars-radius-pill: 50px;
165
+
166
+ // Panel styling
167
+ --lcars-panel-border: 1px solid var(--octo-mint-20);
168
+ --lcars-panel-bg: var(--surface-elevated-60);
169
+
170
+ // Transitions
171
+ --lcars-transition-fast: 150ms ease;
172
+ --lcars-transition-normal: 250ms ease;
173
+
174
+ // Designer/Symbol Editor Panel Variables (LCARS theme)
175
+ --designer-panel-bg: var(--surface-elevated);
176
+ --designer-panel-bg-elevated: var(--iron-navy);
177
+ --designer-panel-border: var(--octo-mint-20);
178
+ --designer-panel-text: var(--octo-text-color);
179
+ --designer-panel-text-secondary: var(--ash-blue);
180
+ --designer-panel-text-muted: color-mix(
181
+ in srgb,
182
+ var(--ash-blue) 70%,
183
+ transparent
184
+ );
185
+ --designer-panel-accent: var(--octo-mint);
186
+ --designer-panel-accent-hover-bg: var(--octo-mint-15);
187
+ --designer-panel-input-bg: var(--deep-sea);
188
+ --designer-panel-delete-hover-bg: var(--bubblegum-20);
189
+ --designer-panel-delete-color: var(--bubblegum);
190
+
191
+ // Cron Expression Cell Variables (LCARS theme for list view)
192
+ --mm-cron-code-bg: var(--deep-sea-80);
193
+ --mm-cron-code-text: var(--octo-mint);
194
+ --mm-cron-text-secondary: var(--ash-blue);
195
+ --mm-cron-success: var(--kendo-success);
196
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meshmakers/octo-ui",
3
- "version": "3.3.580",
3
+ "version": "3.3.600",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^21.2.0",
6
6
  "@angular/core": "^21.2.0",
@@ -15,6 +15,7 @@
15
15
  "@progress/kendo-angular-icons": "^23.2.0",
16
16
  "@progress/kendo-angular-indicators": "^23.2.0",
17
17
  "@progress/kendo-angular-inputs": "^23.2.0",
18
+ "@progress/kendo-angular-popup": "^23.2.0",
18
19
  "@progress/kendo-data-query": "^1.7.3",
19
20
  "@progress/kendo-svg-icons": "^4.8.0",
20
21
  "apollo-angular": "^13.0.0"
@@ -0,0 +1,3 @@
1
+ // Global Octo UI styles entrypoint.
2
+ // Forward runtime-browser styles so consumers can configure theme variables.
3
+ @forward "../lib/runtime-browser/styles/index";
@@ -0,0 +1,8 @@
1
+ // ============================================================================
2
+ // RUNTIME BROWSER - Styles WITH Kendo Theme (for apps that don't import Kendo)
3
+ // Use this entry point when your app does NOT already import a Kendo theme.
4
+ // When Kendo is already imported, use _index.scss instead.
5
+ // ============================================================================
6
+
7
+ @use "../lib/runtime-browser/styles/kendo-theme";
8
+ @forward "../lib/runtime-browser/styles/index";
@@ -3,7 +3,7 @@ import { OnInit, OnChanges, EventEmitter, SimpleChanges, OnDestroy, EnvironmentP
3
3
  import * as _progress_kendo_svg_icons from '@progress/kendo-svg-icons';
4
4
  import { SVGIcon } from '@progress/kendo-svg-icons';
5
5
  import { GridDataResult, CellClickEvent, RowArgs, PageChangeEvent, SelectionEvent } from '@progress/kendo-angular-grid';
6
- import { FieldFilterDto, SearchFilterDto, SortDto, AttributeValueTypeDto as AttributeValueTypeDto$1, AttributeItem, CkTypeSelectorItem as CkTypeSelectorItem$1, FieldFilterOperatorsDto, RuntimeEntityItem, RuntimeEntitySelectDataSource, RuntimeEntityDialogDataSource } from '@meshmakers/octo-services';
6
+ import { FieldFilterDto, SearchFilterDto, SortDto, AttributeItem, AttributeValueTypeDto as AttributeValueTypeDto$1, CkTypeSelectorItem as CkTypeSelectorItem$1, FieldFilterOperatorsDto, RuntimeEntityItem, RuntimeEntitySelectDataSource, RuntimeEntityDialogDataSource } from '@meshmakers/octo-services';
7
7
  import { ControlValueAccessor, Validator, FormControl, AbstractControl, ValidationErrors } from '@angular/forms';
8
8
  import { AutoCompleteComponent, PopupSettings } from '@progress/kendo-angular-dropdowns';
9
9
  import { DataSourceTyped, ListViewComponent, HierarchyDataSourceBase } from '@meshmakers/shared-ui';
@@ -398,6 +398,12 @@ interface AttributeSelectorDialogData {
398
398
  singleSelect?: boolean;
399
399
  includeNavigationProperties?: boolean;
400
400
  maxDepth?: number;
401
+ /** Additional virtual attributes to include in the available list (e.g., Timestamp for stream data queries) */
402
+ additionalAttributes?: AttributeItem[];
403
+ /** When true, hides the navigation properties checkbox and max depth controls */
404
+ hideNavigationControls?: boolean;
405
+ /** When set, restricts the available attributes to only these attribute paths (filtered client-side after fetching) */
406
+ attributePaths?: string[];
401
407
  }
402
408
  interface AttributeSelectorDialogResult {
403
409
  selectedAttributes: AttributeItem[];
@@ -421,11 +427,14 @@ declare class AttributeSelectorDialogComponent implements OnInit {
421
427
  dialogTitle: string;
422
428
  rtCkTypeId: string;
423
429
  singleSelect: boolean;
430
+ private additionalAttributes;
424
431
  searchText: string;
425
432
  selectedSingleKey: string[];
426
433
  selectedValueTypeFilter: AttributeValueTypeDto$1 | null;
427
434
  includeNavigationProperties: boolean;
428
435
  maxDepth: number | null;
436
+ hideNavigationControls: boolean;
437
+ private attributePathsSet;
429
438
  availableAttributes: AttributeItem[];
430
439
  selectedAttributes: AttributeItem[];
431
440
  availableGridData: GridDataResult;
@@ -494,9 +503,13 @@ declare class AttributeSelectorDialogService {
494
503
  * @param selectedAttributes Optional array of pre-selected attribute paths
495
504
  * @param dialogTitle Optional custom dialog title
496
505
  * @param singleSelect Optional flag for single-select mode
506
+ * @param additionalAttributes Optional virtual attributes to include (e.g., Timestamp for stream data)
507
+ * @param includeNavigationProperties Optional flag to control navigation property inclusion
508
+ * @param maxDepth Optional max depth for navigation properties
509
+ * @param hideNavigationControls Optional flag to hide the navigation property controls in the dialog
497
510
  * @returns Promise that resolves with the result containing selected attributes and confirmation status
498
511
  */
499
- openAttributeSelector(rtCkTypeId: string, selectedAttributes?: string[], dialogTitle?: string, singleSelect?: boolean): Promise<AttributeSelectorResult>;
512
+ openAttributeSelector(rtCkTypeId: string, selectedAttributes?: string[], dialogTitle?: string, singleSelect?: boolean, additionalAttributes?: AttributeItem[], includeNavigationProperties?: boolean, maxDepth?: number, hideNavigationControls?: boolean, attributePaths?: string[]): Promise<AttributeSelectorResult>;
500
513
  static ɵfac: i0.ɵɵFactoryDeclaration<AttributeSelectorDialogService, never>;
501
514
  static ɵprov: i0.ɵɵInjectableDeclaration<AttributeSelectorDialogService>;
502
515
  }
@@ -510,6 +523,12 @@ interface AttributeSortSelectorDialogData {
510
523
  ckTypeId: string;
511
524
  selectedAttributes?: AttributeSortItem[];
512
525
  dialogTitle?: string;
526
+ /** When set, controls whether navigation properties are included in the attribute list */
527
+ includeNavigationProperties?: boolean;
528
+ /** When true, hides the navigation property controls (if they were to be added) */
529
+ hideNavigationControls?: boolean;
530
+ /** When set, restricts the available attributes to only these attribute paths (filtered client-side after fetching) */
531
+ attributePaths?: string[];
513
532
  }
514
533
  interface AttributeSortSelectorDialogResult {
515
534
  selectedAttributes: AttributeSortItem[];
@@ -528,6 +547,8 @@ declare class AttributeSortSelectorDialogComponent implements OnInit {
528
547
  private searchSubject;
529
548
  data: AttributeSortSelectorDialogData;
530
549
  ckTypeId: string;
550
+ includeNavigationProperties: boolean | undefined;
551
+ private attributePathsSet;
531
552
  searchText: string;
532
553
  currentSortOrder: 'standard' | 'ascending' | 'descending';
533
554
  selectedValueTypeFilter: AttributeValueTypeDto$1 | null;
@@ -579,9 +600,11 @@ declare class AttributeSortSelectorDialogService {
579
600
  * @param ckTypeId The CkType ID to fetch attributes for
580
601
  * @param selectedAttributes Optional array of pre-selected attributes with sort orders
581
602
  * @param dialogTitle Optional custom dialog title
603
+ * @param includeNavigationProperties Optional flag to control navigation property inclusion
604
+ * @param hideNavigationControls Optional flag to hide the navigation property controls
582
605
  * @returns Promise that resolves with the result containing selected attributes with sort orders and confirmation status
583
606
  */
584
- openAttributeSortSelector(ckTypeId: string, selectedAttributes?: AttributeSortItem[], dialogTitle?: string): Promise<AttributeSortSelectorResult>;
607
+ openAttributeSortSelector(ckTypeId: string, selectedAttributes?: AttributeSortItem[], dialogTitle?: string, includeNavigationProperties?: boolean, hideNavigationControls?: boolean, attributePaths?: string[]): Promise<AttributeSortSelectorResult>;
585
608
  static ɵfac: i0.ɵɵFactoryDeclaration<AttributeSortSelectorDialogService, never>;
586
609
  static ɵprov: i0.ɵɵInjectableDeclaration<AttributeSortSelectorDialogService>;
587
610
  }
@@ -754,6 +777,17 @@ declare class FieldFilterEditorComponent implements OnChanges {
754
777
  * When not set, the component uses the externally provided availableAttributes input.
755
778
  */
756
779
  ckTypeId?: string;
780
+ /**
781
+ * When true, hides the "Include Navigation Properties" checkbox and Max Depth controls,
782
+ * and forces attribute loading without navigation properties.
783
+ * Used for stream data queries which don't support navigation properties.
784
+ */
785
+ hideNavigationProperties: boolean;
786
+ /**
787
+ * When set, restricts the available attributes to only these attribute paths (filtered client-side after fetching).
788
+ * Used for stream data queries to show only stream-data-enabled attributes.
789
+ */
790
+ attributePaths?: string[];
757
791
  /** Enable variable mode - allows using variables instead of literal values */
758
792
  enableVariables: boolean;
759
793
  /** Available variables for selection when enableVariables is true */
@@ -837,7 +871,7 @@ declare class FieldFilterEditorComponent implements OnChanges {
837
871
  private extractArrayContent;
838
872
  private parseAndCleanArrayValues;
839
873
  static ɵfac: i0.ɵɵFactoryDeclaration<FieldFilterEditorComponent, never>;
840
- static ɵcmp: i0.ɵɵComponentDeclaration<FieldFilterEditorComponent, "mm-field-filter-editor", never, { "availableAttributes": { "alias": "availableAttributes"; "required": false; }; "ckTypeId": { "alias": "ckTypeId"; "required": false; }; "enableVariables": { "alias": "enableVariables"; "required": false; }; "availableVariables": { "alias": "availableVariables"; "required": false; }; "filters": { "alias": "filters"; "required": false; }; }, { "filtersChange": "filtersChange"; }, never, never, true, never>;
874
+ static ɵcmp: i0.ɵɵComponentDeclaration<FieldFilterEditorComponent, "mm-field-filter-editor", never, { "availableAttributes": { "alias": "availableAttributes"; "required": false; }; "ckTypeId": { "alias": "ckTypeId"; "required": false; }; "hideNavigationProperties": { "alias": "hideNavigationProperties"; "required": false; }; "attributePaths": { "alias": "attributePaths"; "required": false; }; "enableVariables": { "alias": "enableVariables"; "required": false; }; "availableVariables": { "alias": "availableVariables"; "required": false; }; "filters": { "alias": "filters"; "required": false; }; }, { "filtersChange": "filtersChange"; }, never, never, true, never>;
841
875
  }
842
876
 
843
877
  interface CopyOption {
@@ -898,6 +932,27 @@ declare class OctoLoaderComponent {
898
932
  static ɵcmp: i0.ɵɵComponentDeclaration<OctoLoaderComponent, "mm-octo-loader", never, { "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
899
933
  }
900
934
 
935
+ declare class TenantSwitcherComponent {
936
+ currentTenantId: string | null;
937
+ allowedTenants: string[];
938
+ isDenied: boolean;
939
+ tenantSelected: EventEmitter<string>;
940
+ refreshRequested: EventEmitter<void>;
941
+ protected readonly refreshIcon: _progress_kendo_svg_icons.SVGIcon;
942
+ protected isRefreshing: boolean;
943
+ private anchor;
944
+ private popup;
945
+ showPopup: boolean;
946
+ onKeydown(event: KeyboardEvent): void;
947
+ onDocumentClick(event: MouseEvent): void;
948
+ onToggle(): void;
949
+ onSelectTenant(tenantId: string): void;
950
+ onRefresh(event: MouseEvent): void;
951
+ private contains;
952
+ static ɵfac: i0.ɵɵFactoryDeclaration<TenantSwitcherComponent, never>;
953
+ static ɵcmp: i0.ɵɵComponentDeclaration<TenantSwitcherComponent, "mm-tenant-switcher", never, { "currentTenantId": { "alias": "currentTenantId"; "required": false; }; "allowedTenants": { "alias": "allowedTenants"; "required": false; }; "isDenied": { "alias": "isDenied"; "required": false; }; }, { "tenantSelected": "tenantSelected"; "refreshRequested": "refreshRequested"; }, never, never, true, never>;
954
+ }
955
+
901
956
  /**
902
957
  * Input data for the RuntimeEntityVariableDialog.
903
958
  */
@@ -995,5 +1050,5 @@ declare class RuntimeEntityVariableDialogService {
995
1050
  */
996
1051
  declare function provideOctoUi(): EnvironmentProviders;
997
1052
 
998
- export { AttributeSelectorDialogComponent, AttributeSelectorDialogService, AttributeSortSelectorDialogComponent, AttributeSortSelectorDialogService, AttributeValueTypeDto, CkTypeSelectorDialogComponent, CkTypeSelectorDialogService, CkTypeSelectorInputComponent, DefaultPropertyCategory, EntityIdInfoComponent, FieldFilterEditorComponent, OctoGraphQlDataSource, OctoGraphQlHierarchyDataSource, OctoLoaderComponent, PropertyConverterService, PropertyDisplayMode, PropertyGridComponent, PropertyValueDisplayComponent, RuntimeEntityVariableDialogComponent, RuntimeEntityVariableDialogService, provideOctoUi };
1053
+ export { AttributeSelectorDialogComponent, AttributeSelectorDialogService, AttributeSortSelectorDialogComponent, AttributeSortSelectorDialogService, AttributeValueTypeDto, CkTypeSelectorDialogComponent, CkTypeSelectorDialogService, CkTypeSelectorInputComponent, DefaultPropertyCategory, EntityIdInfoComponent, FieldFilterEditorComponent, OctoGraphQlDataSource, OctoGraphQlHierarchyDataSource, OctoLoaderComponent, PropertyConverterService, PropertyDisplayMode, PropertyGridComponent, PropertyValueDisplayComponent, RuntimeEntityVariableDialogComponent, RuntimeEntityVariableDialogService, TenantSwitcherComponent, provideOctoUi };
999
1054
  export type { AttributeSelectorDialogData, AttributeSelectorDialogResult, AttributeSelectorResult, AttributeSortItem, AttributeSortSelectorDialogData, AttributeSortSelectorDialogResult, AttributeSortSelectorResult, BinaryDownloadEvent, CkTypeSelectorDialogData, CkTypeSelectorDialogResult, CkTypeSelectorResult, FieldFilterItem, FilterVariable, PropertyChangeEvent, PropertyGridConfig, PropertyGridItem, RuntimeEntityVariableDialogData, RuntimeEntityVariableDialogResult, RuntimeEntityVariableMapping, RuntimeEntityVariableResult, SortOption };