@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.
- package/fesm2022/meshmakers-octo-ui.mjs +288 -55
- package/fesm2022/meshmakers-octo-ui.mjs.map +1 -1
- package/lib/runtime-browser/styles/_index.scss +4954 -0
- package/lib/runtime-browser/styles/_kendo-theme.scss +224 -0
- package/lib/runtime-browser/styles/_variables.scss +196 -0
- package/package.json +2 -1
- package/styles/_index.scss +3 -0
- package/styles/_with-kendo.scss +8 -0
- package/types/meshmakers-octo-ui.d.ts +60 -5
|
@@ -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.
|
|
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,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,
|
|
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 };
|