@omicronenergy/oscd-shell 0.0.13 → 0.0.15

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 (36) hide show
  1. package/dist/landing-page/landing-page.js +3 -2
  2. package/dist/landing-page/landing-page.js.map +1 -1
  3. package/dist/landing-page/landing-page.spec.js +4 -2
  4. package/dist/landing-page/landing-page.spec.js.map +1 -1
  5. package/dist/locales/de.d.ts +8 -0
  6. package/dist/locales/de.js +9 -0
  7. package/dist/locales/de.js.map +1 -1
  8. package/dist/menus/files-menu.js +4 -5
  9. package/dist/menus/files-menu.js.map +1 -1
  10. package/dist/menus/plugins-menu.d.ts +6 -3
  11. package/dist/menus/plugins-menu.js +40 -6
  12. package/dist/menus/plugins-menu.js.map +1 -1
  13. package/dist/menus/plugins-menu.spec.js +1 -0
  14. package/dist/menus/plugins-menu.spec.js.map +1 -1
  15. package/dist/oscd-shell-design-tokens.js +139 -64
  16. package/dist/oscd-shell-design-tokens.js.map +1 -1
  17. package/dist/oscd-shell.d.ts +31 -22
  18. package/dist/oscd-shell.js +136 -73
  19. package/dist/oscd-shell.js.map +1 -1
  20. package/dist/side-panel/build-tree-nodes.spec.d.ts +1 -0
  21. package/dist/side-panel/build-tree-nodes.spec.js +50 -0
  22. package/dist/side-panel/build-tree-nodes.spec.js.map +1 -0
  23. package/dist/side-panel/editor-plugins-panel.d.ts +79 -7
  24. package/dist/side-panel/editor-plugins-panel.js +829 -92
  25. package/dist/side-panel/editor-plugins-panel.js.map +1 -1
  26. package/dist/side-panel/editor-plugins-panel.spec.js +469 -24
  27. package/dist/side-panel/editor-plugins-panel.spec.js.map +1 -1
  28. package/dist/utils/plugin-utils.d.ts +29 -5
  29. package/dist/utils/plugin-utils.js +73 -14
  30. package/dist/utils/plugin-utils.js.map +1 -1
  31. package/dist/utils/plugin-utils.spec.js +113 -4
  32. package/dist/utils/plugin-utils.spec.js.map +1 -1
  33. package/dist/utils/testing/plugin-helpers.d.ts +7 -3
  34. package/dist/utils/testing/plugin-helpers.js +21 -9
  35. package/dist/utils/testing/plugin-helpers.js.map +1 -1
  36. package/package.json +37 -38
@@ -10,20 +10,30 @@ import { css } from 'lit';
10
10
  * internal base tokens (e.g. --oscd-base*).
11
11
  */
12
12
  export const oscdShellDesignTokens = css `
13
- /* Internal base theme tokens and defaults */
14
- * {
15
- --oscd-primary: var(--oscd-theme-primary, #0b335b);
16
- --oscd-secondary: var(--oscd-theme-secondary, #2485e5);
17
- --oscd-base03: var(--oscd-theme-base03, #121417);
18
- --oscd-base02: var(--oscd-theme-base02, #1a1e23);
19
- --oscd-base01: var(--oscd-theme-base01, #3d4651);
20
- --oscd-base00: var(--oscd-theme-base00, #46505d);
21
- --oscd-base0: var(--oscd-theme-base0, #8b97a7);
22
- --oscd-base1: var(--oscd-theme-base1, #96a1b0);
23
- --oscd-base2: var(--oscd-theme-base2, #f3f5f6);
24
- --oscd-base3: var(--oscd-theme-base3, white);
13
+ /* Internal base theme tokens and defaults.
14
+ *
15
+ * Defaults are the Solarized (https://ethanschoonover.com/solarized/)
16
+ * light palette used by the legacy OpenSCD shell, so oscd-shell is
17
+ * brand-neutral out of the box: consumers who set none of the
18
+ * --oscd-theme-* variables get the classic OpenSCD look. Distro-specific
19
+ * branding (e.g. Omicron colors) is applied entirely by overriding the
20
+ * --oscd-theme-* variables from outside; nothing brand-specific belongs
21
+ * in this file.
22
+ */
23
+ :host {
24
+ --oscd-primary: var(--oscd-theme-primary, #2aa198);
25
+ --oscd-secondary: var(--oscd-theme-secondary, #6c71c4);
26
+ --oscd-base03: var(--oscd-theme-base03, #002b36);
27
+ --oscd-base02: var(--oscd-theme-base02, #073642);
28
+ --oscd-base01: var(--oscd-theme-base01, #586e75);
29
+ --oscd-base00: var(--oscd-theme-base00, #657b83);
30
+ --oscd-base0: var(--oscd-theme-base0, #839496);
31
+ --oscd-base1: var(--oscd-theme-base1, #93a1a1);
32
+ --oscd-base2: var(--oscd-theme-base2, #eee8d5);
33
+ --oscd-base3: var(--oscd-theme-base3, #fdf6e3);
25
34
  --oscd-error: var(--oscd-theme-error, #dc322f);
26
35
  --oscd-warning: var(--oscd-theme-warning, #b58900);
36
+ --oscd-shape: var(--oscd-theme-shape, 8px);
27
37
  --oscd-text-font: var(--oscd-theme-text-font, 'Roboto');
28
38
  --oscd-text-font-mono: var(--oscd-theme-text-font-mono, 'Roboto Mono');
29
39
  --oscd-icon-font: var(--oscd-theme-icon-font, 'Material Symbols Outlined');
@@ -47,8 +57,24 @@ export const oscdShellDesignTokens = css `
47
57
  --md-sys-color-error: var(--oscd-error);
48
58
  --md-sys-color-on-error: var(--oscd-base3);
49
59
  --md-icon-button-disabled-icon-color: var(--oscd-base3);
50
- /* --md-menu-item-selected-label-text-color: var(--oscd-base01); */
51
- --md-icon-button-disabled-icon-color: var(--oscd-base3);
60
+
61
+ /* Material shape scale, derived from --oscd-shape (the Material
62
+ * "small" corner size) per the ratios documented in oscd-api's
63
+ * theming.md: none=0, extra-small=0.5x, small=1x, medium=1.5x, large=2x.
64
+ */
65
+ --md-sys-shape-corner-none: 0;
66
+ --md-sys-shape-corner-extra-small: calc(0.5 * var(--oscd-shape));
67
+ --md-sys-shape-corner-small: var(--oscd-shape);
68
+ --md-sys-shape-corner-medium: calc(1.5 * var(--oscd-shape));
69
+ --md-sys-shape-corner-large: calc(2 * var(--oscd-shape));
70
+
71
+ /* MD3 has no single generic "system font" token (unlike color); its
72
+ * closest reference-tier equivalent is --md-ref-typeface-plain. Icon
73
+ * fonts (--oscd-icon-font) and monospace fonts (--oscd-text-font-mono)
74
+ * have no MD3 system-token equivalent at all, so they are referenced
75
+ * directly where needed instead of through an --md-* mapping.
76
+ */
77
+ --md-ref-typeface-plain: var(--oscd-text-font);
52
78
 
53
79
  /* MDC Theme Colors
54
80
  * Needed for supporting any pluggins still using the depricated MWC Components
@@ -86,31 +112,27 @@ export const oscdShellDesignTokens = css `
86
112
  --mdc-theme-text-disabled-on-light: rgba(255, 255, 255, 0.38);
87
113
  }
88
114
 
89
- * {
90
- --app-bar-height: 54px;
91
- --side-panel-width: 280px;
92
-
93
- --md-sys-color-primary: var(--oscd-primary);
94
- --md-sys-color-on-primary: var(--oscd-base3);
95
-
96
- --md-sys-color-secondary-container: var(--oscd-base2);
97
-
98
- --md-sys-color-surface: var(--oscd-base3);
99
- --md-sys-color-on-surface: var(--oscd-base00);
100
- }
101
-
102
115
  /*
103
116
  * Public token -> internal token mappings
104
117
  *
105
118
  * Example pattern:
106
119
  * --internal-variable-name: var(--oscd-shell-public-token, <default>);
107
120
  */
108
- * {
121
+ :host {
122
+ /* Shell root */
123
+ --shell-background-color: var(
124
+ --oscd-shell-background-color,
125
+ var(--md-sys-color-surface)
126
+ );
127
+
109
128
  /* App bar */
110
- --app-bar-color: var(--oscd-shell-app-bar-color, var(--oscd-base3));
129
+ --app-bar-color: var(
130
+ --oscd-shell-app-bar-color,
131
+ var(--md-sys-color-on-primary)
132
+ );
111
133
  --app-bar-background-color: var(
112
134
  --oscd-shell-app-bar-background-color,
113
- var(--oscd-primary)
135
+ var(--md-sys-color-primary)
114
136
  );
115
137
  --app-bar-height: var(--oscd-shell-app-bar-height, 54px);
116
138
  --app-bar-small-height: var(--oscd-shell-app-bar-small-height, 48px);
@@ -120,9 +142,11 @@ export const oscdShellDesignTokens = css `
120
142
  );
121
143
  --app-bar-app-icon-height: var(--oscd-shell-app-bar-icon-height, 34.4px);
122
144
  --app-bar-app-icon-width: var(--oscd-shell-app-bar-icon-width, auto);
145
+ --app-bar-logo-gap: var(--oscd-shell-app-bar-logo-gap, 16px);
146
+ --app-bar-title-menu-gap: var(--oscd-shell-app-bar-title-menu-gap, 4px);
123
147
  --app-bar-title-text-font-family: var(
124
148
  --oscd-shell-app-bar-title-font-family,
125
- var(--oscd-text-font)
149
+ var(--md-ref-typeface-plain)
126
150
  );
127
151
  --app-bar-title-text-color: var(
128
152
  --oscd-shell-app-bar-title-color,
@@ -148,13 +172,53 @@ export const oscdShellDesignTokens = css `
148
172
  --oscd-shell-app-bar-title-letter-spacing,
149
173
  inherit
150
174
  );
175
+ --app-bar-current-editor-font-family: var(
176
+ --oscd-shell-app-bar-current-editor-font-family,
177
+ var(--md-ref-typeface-plain)
178
+ );
179
+ --app-bar-current-editor-font-size: var(
180
+ --oscd-shell-app-bar-current-editor-font-size,
181
+ 16px
182
+ );
183
+ --app-bar-current-editor-font-weight: var(
184
+ --oscd-shell-app-bar-current-editor-font-weight,
185
+ 500
186
+ );
187
+ --app-bar-current-editor-font-style: var(
188
+ --oscd-shell-app-bar-current-editor-font-style,
189
+ normal
190
+ );
191
+ --app-bar-current-editor-line-height: var(
192
+ --oscd-shell-app-bar-current-editor-line-height,
193
+ normal
194
+ );
195
+ --app-bar-current-editor-color: var(
196
+ --oscd-shell-app-bar-current-editor-color,
197
+ var(--app-bar-color)
198
+ );
151
199
  --app-bar-action-icon-size: var(
152
200
  --oscd-shell-app-bar-action-icon-size,
153
201
  24px
154
202
  );
155
203
  --app-bar-action-icon-color: var(
156
204
  --oscd-shell-app-bar-action-icon-color,
157
- var(--oscd-base3)
205
+ var(--md-sys-color-on-primary)
206
+ );
207
+ --app-bar-action-icon-disabled-color: var(
208
+ --oscd-shell-app-bar-action-icon-disabled-color,
209
+ var(--md-sys-color-on-primary)
210
+ );
211
+ --app-bar-action-icon-disabled-container-opacity: var(
212
+ --oscd-shell-app-bar-action-icon-disabled-container-opacity,
213
+ 0
214
+ );
215
+ --app-bar-separator-color: var(
216
+ --oscd-shell-app-bar-separator-color,
217
+ currentColor
218
+ );
219
+ --app-bar-separator-opacity: var(
220
+ --oscd-shell-app-bar-separator-opacity,
221
+ 0.38
158
222
  );
159
223
 
160
224
  /* Bridge to oscd-ui app bar tokens */
@@ -169,13 +233,13 @@ export const oscdShellDesignTokens = css `
169
233
  /* Files menu */
170
234
  --file-menu-text-font-family: var(
171
235
  --oscd-shell-file-menu-text-font-family,
172
- var(--oscd-text-font)
236
+ var(--md-ref-typeface-plain)
173
237
  );
174
- --file-menu-text-size: var(--oscd-shell-file-menu-text-size, 18px);
238
+ --file-menu-text-size: var(--oscd-shell-file-menu-text-size, 16px);
175
239
  --file-menu-text-weight: var(--oscd-shell-file-menu-text-weight, 500);
176
240
  --file-menu-text-color: var(
177
241
  --oscd-shell-file-menu-text-color,
178
- var(--oscd-base3)
242
+ var(--md-sys-color-on-primary)
179
243
  );
180
244
 
181
245
  /* Plugins menu */
@@ -185,85 +249,96 @@ export const oscdShellDesignTokens = css `
185
249
  );
186
250
  --plugins-menu-button-color: var(
187
251
  --oscd-shell-plugins-menu-button-color,
188
- var(--oscd-base3)
252
+ var(--md-sys-color-on-primary)
189
253
  );
190
254
  --plugins-menu-min-width: var(--oscd-shell-plugins-menu-min-width, 350px);
191
255
  --plugins-menu-padding: var(--oscd-shell-plugins-menu-padding, 12px);
192
256
  --plugins-menu-container-color: var(
193
257
  --oscd-shell-plugins-menu-container-color,
194
- var(--oscd-base3)
258
+ var(--md-sys-color-surface)
195
259
  );
196
260
  --plugins-menu-item-label-color: var(
197
261
  --oscd-shell-plugins-menu-item-label-color,
198
- var(--oscd-base00)
262
+ var(--md-sys-color-on-surface)
199
263
  );
200
264
  --plugins-menu-item-leading-icon-color: var(
201
265
  --oscd-shell-plugins-menu-item-leading-icon-color,
202
- var(--oscd-base00)
266
+ var(--md-sys-color-on-surface)
203
267
  );
204
268
  --plugins-menu-item-selected-container-color: var(
205
269
  --oscd-shell-plugins-menu-item-selected-container-color,
206
- var(--oscd-base2)
270
+ var(--md-sys-color-secondary-container)
207
271
  );
208
272
  --plugins-menu-item-selected-label-color: var(
209
273
  --oscd-shell-plugins-menu-item-selected-label-color,
210
- var(--oscd-base00)
274
+ var(--md-sys-color-on-surface)
211
275
  );
212
276
 
213
277
  /* Editor plugins panel */
214
278
  --editor-plugins-panel-width: var(
215
279
  --oscd-shell-editor-plugins-panel-width,
216
- 280px
280
+ 308px
217
281
  );
218
282
  --editor-plugins-panel-collapsed-width: var(
219
- --oscd-shell-editor-plugins-panel-width,
220
- 280px
283
+ --oscd-shell-editor-plugins-panel-collapsed-width,
284
+ 76px
221
285
  );
222
286
  --editor-plugins-panel-padding-top: var(
223
287
  --oscd-shell-editor-plugins-panel-padding-top,
224
288
  20px
225
289
  );
226
- --editor-plugins-panel-item-leading-space: var(
227
- --oscd-shell-editor-plugins-panel-item-leading-space,
228
- 22px
229
- );
230
- --editor-plugins-panel-item-trailing-space: var(
231
- --oscd-shell-editor-plugins-panel-item-trailing-space,
232
- 10px
233
- );
234
290
  --editor-plugins-panel-item-icon-size: var(
235
291
  --oscd-shell-editor-plugins-panel-item-icon-size,
236
292
  28px
237
293
  );
294
+ --editor-plugins-panel-background-color: var(
295
+ --oscd-shell-editor-plugins-panel-background-color,
296
+ var(--md-sys-color-surface)
297
+ );
238
298
  --editor-plugins-panel-item-text-color: var(
239
299
  --oscd-shell-editor-plugins-panel-item-text-color,
240
- var(--oscd-base3)
300
+ var(--md-sys-color-on-surface)
241
301
  );
242
302
  --editor-plugins-panel-item-icon-color: var(
243
303
  --oscd-shell-editor-plugins-panel-item-icon-color,
244
- var(--oscd-base3)
304
+ var(--md-sys-color-on-surface)
245
305
  );
246
306
  --editor-plugins-panel-item-active-bg: var(
247
307
  --oscd-shell-editor-plugins-panel-item-active-bg,
248
- var(--oscd-primary)
308
+ var(--md-sys-color-primary)
309
+ );
310
+ --editor-plugins-panel-item-active-color: var(
311
+ --oscd-shell-editor-plugins-panel-item-active-color,
312
+ var(--md-sys-color-on-primary)
313
+ );
314
+ --editor-plugins-panel-divider-color: var(
315
+ --oscd-shell-editor-plugins-panel-divider-color,
316
+ #d0d5dc40
317
+ );
318
+ --editor-plugins-panel-flyout-header-text-color: var(
319
+ --oscd-shell-editor-plugins-panel-flyout-header-text-color,
320
+ var(--md-sys-color-secondary)
249
321
  );
250
- --side-panel-width: var(--editor-plugins-panel-width);
251
322
 
252
323
  /* Main editor container */
253
324
  --editor-background-color: var(
254
325
  --oscd-shell-editor-background-color,
255
- var(--oscd-base3)
326
+ var(--md-sys-color-surface)
256
327
  );
257
328
  --editor-padding: var(--oscd-shell-editor-padding, 8px);
258
329
 
259
330
  /* Landing page */
331
+ --landing-background-color: var(
332
+ --oscd-shell-landing-background-color,
333
+ var(--md-sys-color-surface)
334
+ );
260
335
  --landing-heading-color: var(
261
336
  --oscd-shell-landing-heading-color,
262
- var(--oscd-base3)
337
+ var(--md-sys-color-on-surface)
263
338
  );
264
339
  --landing-heading-font-family: var(
265
340
  --oscd-shell-landing-heading-font-family,
266
- var(--oscd-text-font)
341
+ var(--md-ref-typeface-plain)
267
342
  );
268
343
  --landing-heading-size: var(--oscd-shell-landing-heading-size, 50px);
269
344
  --landing-heading-style: var(--oscd-shell-landing-heading-style, normal);
@@ -275,11 +350,11 @@ export const oscdShellDesignTokens = css `
275
350
 
276
351
  --landing-subheading-color: var(
277
352
  --oscd-shell-landing-subheading-color,
278
- var(--oscd-base3)
353
+ var(--md-sys-color-on-surface)
279
354
  );
280
355
  --landing-subheading-font-family: var(
281
356
  --oscd-shell-landing-subheading-font-family,
282
- var(--oscd-text-font)
357
+ var(--md-ref-typeface-plain)
283
358
  );
284
359
  --landing-subheading-size: var(
285
360
  --oscd-shell-landing-subheading-size,
@@ -303,17 +378,17 @@ export const oscdShellDesignTokens = css `
303
378
  --landing-card-height: var(--oscd-shell-landing-card-height, 180px);
304
379
  --landing-card-background: var(
305
380
  --oscd-shell-landing-card-background,
306
- var(--oscd-primary)
381
+ var(--md-sys-color-secondary)
307
382
  );
308
383
  --landing-card-text-color: var(
309
384
  --oscd-shell-landing-card-text-color,
310
- var(--oscd-base3)
385
+ var(--md-sys-color-on-secondary)
311
386
  );
312
387
  --landing-card-radius: var(--oscd-shell-landing-card-radius, 2px);
313
388
  --landing-card-icon-size: var(--oscd-shell-landing-card-icon-size, 54px);
314
389
  --landing-card-corner-accent: var(
315
390
  --oscd-shell-landing-card-corner-accent,
316
- var(--omicron-yellow)
391
+ transparent
317
392
  );
318
393
  }
319
394
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"oscd-shell-design-tokens.js","sourceRoot":"","sources":["../src/oscd-shell-design-tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmTvC,CAAC","sourcesContent":["import { css } from 'lit';\n\n/**\n * Single source of truth for oscd-shell design tokens.\n *\n * This block contains:\n * 1) Internal base tokens and fallbacks\n * 2) Public token -> internal token mappings\n *\n * Keep this as an all-or-nothing layer so mappings can safely reference\n * internal base tokens (e.g. --oscd-base*).\n */\nexport const oscdShellDesignTokens = css`\n /* Internal base theme tokens and defaults */\n * {\n --oscd-primary: var(--oscd-theme-primary, #0b335b);\n --oscd-secondary: var(--oscd-theme-secondary, #2485e5);\n --oscd-base03: var(--oscd-theme-base03, #121417);\n --oscd-base02: var(--oscd-theme-base02, #1a1e23);\n --oscd-base01: var(--oscd-theme-base01, #3d4651);\n --oscd-base00: var(--oscd-theme-base00, #46505d);\n --oscd-base0: var(--oscd-theme-base0, #8b97a7);\n --oscd-base1: var(--oscd-theme-base1, #96a1b0);\n --oscd-base2: var(--oscd-theme-base2, #f3f5f6);\n --oscd-base3: var(--oscd-theme-base3, white);\n --oscd-error: var(--oscd-theme-error, #dc322f);\n --oscd-warning: var(--oscd-theme-warning, #b58900);\n --oscd-text-font: var(--oscd-theme-text-font, 'Roboto');\n --oscd-text-font-mono: var(--oscd-theme-text-font-mono, 'Roboto Mono');\n --oscd-icon-font: var(--oscd-theme-icon-font, 'Material Symbols Outlined');\n\n /* Fallbacks for Material Design variables */\n --md-sys-color-primary: var(--oscd-primary);\n --md-sys-color-on-primary: var(--oscd-base3);\n --md-sys-color-secondary: var(--oscd-secondary);\n --md-sys-color-on-secondary: var(--oscd-base3);\n --md-sys-color-secondary-container: var(--oscd-base2);\n --md-sys-color-surface: var(--oscd-base3);\n --md-sys-color-on-surface: var(--oscd-base00);\n --md-sys-color-surface-variant: var(--oscd-base3);\n --md-sys-color-on-surface-variant: var(--oscd-base00);\n --md-sys-color-surface-bright: var(--oscd-base2);\n --md-sys-color-surface-container: var(--oscd-base3);\n --md-sys-color-surface-container-high: var(--oscd-base3);\n --md-sys-color-surface-container-highest: var(--oscd-base3);\n --md-sys-color-outline-variant: var(--oscd-primary);\n --md-sys-color-scrim: #000000;\n --md-sys-color-error: var(--oscd-error);\n --md-sys-color-on-error: var(--oscd-base3);\n --md-icon-button-disabled-icon-color: var(--oscd-base3);\n /* --md-menu-item-selected-label-text-color: var(--oscd-base01); */\n --md-icon-button-disabled-icon-color: var(--oscd-base3);\n\n /* MDC Theme Colors\n * Needed for supporting any pluggins still using the depricated MWC Components\n */\n --mdc-theme-primary: var(--oscd-primary);\n --mdc-theme-secondary: var(--oscd-secondary);\n --mdc-theme-background: var(--oscd-base3);\n --mdc-theme-surface: var(--oscd-base3);\n --mdc-theme-on-primary: var(--oscd-base2);\n --mdc-theme-on-secondary: var(--oscd-base2);\n --mdc-theme-on-background: var(--oscd-base00);\n --mdc-theme-on-surface: var(--oscd-base00);\n --mdc-theme-text-primary-on-background: var(--oscd-base01);\n --mdc-theme-text-secondary-on-background: var(--oscd-base00);\n --mdc-theme-text-icon-on-background: var(--oscd-base00);\n --mdc-theme-error: var(--oscd-error);\n --mdc-button-disabled-ink-color: var(--oscd-base1);\n --mdc-drawer-heading-ink-color: var(--oscd-base00);\n --mdc-dialog-heading-ink-color: var(--oscd-base00);\n --mdc-text-field-fill-color: var(--oscd-base2);\n --mdc-text-field-disabled-fill-color: var(--oscd-base3);\n --mdc-text-field-ink-color: var(--oscd-base00);\n --mdc-text-field-label-ink-color: var(--oscd-base00);\n --mdc-text-field-idle-line-color: var(--oscd-base00);\n --mdc-text-field-hover-line-color: var(--oscd-base02);\n --mdc-select-fill-color: var(--oscd-base2);\n --mdc-select-disabled-fill-color: var(--oscd-base3);\n --mdc-select-ink-color: var(--oscd-base00);\n --mdc-select-label-ink-color: var(--oscd-base00);\n --mdc-select-idle-line-color: var(--oscd-base00);\n --mdc-select-hover-line-color: var(--oscd-base02);\n --mdc-select-dropdown-icon-color: var(--oscd-base01);\n --mdc-typography-font-family: var(--oscd-text-font);\n --mdc-icon-font: var(--oscd-icon-font);\n --mdc-theme-text-disabled-on-light: rgba(255, 255, 255, 0.38);\n }\n\n * {\n --app-bar-height: 54px;\n --side-panel-width: 280px;\n\n --md-sys-color-primary: var(--oscd-primary);\n --md-sys-color-on-primary: var(--oscd-base3);\n\n --md-sys-color-secondary-container: var(--oscd-base2);\n\n --md-sys-color-surface: var(--oscd-base3);\n --md-sys-color-on-surface: var(--oscd-base00);\n }\n\n /*\n * Public token -> internal token mappings\n *\n * Example pattern:\n * --internal-variable-name: var(--oscd-shell-public-token, <default>);\n */\n * {\n /* App bar */\n --app-bar-color: var(--oscd-shell-app-bar-color, var(--oscd-base3));\n --app-bar-background-color: var(\n --oscd-shell-app-bar-background-color,\n var(--oscd-primary)\n );\n --app-bar-height: var(--oscd-shell-app-bar-height, 54px);\n --app-bar-small-height: var(--oscd-shell-app-bar-small-height, 48px);\n --app-bar-elevation: var(\n --oscd-shell-app-bar-elevation,\n var(--md-sys-elevation-level-2)\n );\n --app-bar-app-icon-height: var(--oscd-shell-app-bar-icon-height, 34.4px);\n --app-bar-app-icon-width: var(--oscd-shell-app-bar-icon-width, auto);\n --app-bar-title-text-font-family: var(\n --oscd-shell-app-bar-title-font-family,\n var(--oscd-text-font)\n );\n --app-bar-title-text-color: var(\n --oscd-shell-app-bar-title-color,\n var(--app-bar-color)\n );\n --app-bar-title-text-font-size: var(\n --oscd-shell-app-bar-title-font-size,\n 22.114px\n );\n --app-bar-title-text-font-weight: var(\n --oscd-shell-app-bar-title-font-weight,\n 400\n );\n --app-bar-title-text-font-style: var(\n --oscd-shell-app-bar-title-font-style,\n normal\n );\n --app-bar-title-text-line-height: var(\n --oscd-shell-app-bar-title-line-height,\n normal\n );\n --app-bar-title-text-letter-spacing: var(\n --oscd-shell-app-bar-title-letter-spacing,\n inherit\n );\n --app-bar-action-icon-size: var(\n --oscd-shell-app-bar-action-icon-size,\n 24px\n );\n --app-bar-action-icon-color: var(\n --oscd-shell-app-bar-action-icon-color,\n var(--oscd-base3)\n );\n\n /* Bridge to oscd-ui app bar tokens */\n --oscd-app-bar-color: var(--app-bar-color);\n --oscd-app-bar-background-color: var(--app-bar-background-color);\n --oscd-app-bar-elevation: var(--app-bar-elevation);\n --oscd-app-bar-title-font-family: var(--app-bar-title-text-font-family);\n --oscd-app-bar-title-font-size: var(--app-bar-title-text-font-size);\n --oscd-app-bar-title-font-weight: var(--app-bar-title-text-font-weight);\n --oscd-app-bar-title-line-height: var(--app-bar-title-text-line-height);\n\n /* Files menu */\n --file-menu-text-font-family: var(\n --oscd-shell-file-menu-text-font-family,\n var(--oscd-text-font)\n );\n --file-menu-text-size: var(--oscd-shell-file-menu-text-size, 18px);\n --file-menu-text-weight: var(--oscd-shell-file-menu-text-weight, 500);\n --file-menu-text-color: var(\n --oscd-shell-file-menu-text-color,\n var(--oscd-base3)\n );\n\n /* Plugins menu */\n --plugins-menu-button-size: var(\n --oscd-shell-plugins-menu-button-size,\n 24px\n );\n --plugins-menu-button-color: var(\n --oscd-shell-plugins-menu-button-color,\n var(--oscd-base3)\n );\n --plugins-menu-min-width: var(--oscd-shell-plugins-menu-min-width, 350px);\n --plugins-menu-padding: var(--oscd-shell-plugins-menu-padding, 12px);\n --plugins-menu-container-color: var(\n --oscd-shell-plugins-menu-container-color,\n var(--oscd-base3)\n );\n --plugins-menu-item-label-color: var(\n --oscd-shell-plugins-menu-item-label-color,\n var(--oscd-base00)\n );\n --plugins-menu-item-leading-icon-color: var(\n --oscd-shell-plugins-menu-item-leading-icon-color,\n var(--oscd-base00)\n );\n --plugins-menu-item-selected-container-color: var(\n --oscd-shell-plugins-menu-item-selected-container-color,\n var(--oscd-base2)\n );\n --plugins-menu-item-selected-label-color: var(\n --oscd-shell-plugins-menu-item-selected-label-color,\n var(--oscd-base00)\n );\n\n /* Editor plugins panel */\n --editor-plugins-panel-width: var(\n --oscd-shell-editor-plugins-panel-width,\n 280px\n );\n --editor-plugins-panel-collapsed-width: var(\n --oscd-shell-editor-plugins-panel-width,\n 280px\n );\n --editor-plugins-panel-padding-top: var(\n --oscd-shell-editor-plugins-panel-padding-top,\n 20px\n );\n --editor-plugins-panel-item-leading-space: var(\n --oscd-shell-editor-plugins-panel-item-leading-space,\n 22px\n );\n --editor-plugins-panel-item-trailing-space: var(\n --oscd-shell-editor-plugins-panel-item-trailing-space,\n 10px\n );\n --editor-plugins-panel-item-icon-size: var(\n --oscd-shell-editor-plugins-panel-item-icon-size,\n 28px\n );\n --editor-plugins-panel-item-text-color: var(\n --oscd-shell-editor-plugins-panel-item-text-color,\n var(--oscd-base3)\n );\n --editor-plugins-panel-item-icon-color: var(\n --oscd-shell-editor-plugins-panel-item-icon-color,\n var(--oscd-base3)\n );\n --editor-plugins-panel-item-active-bg: var(\n --oscd-shell-editor-plugins-panel-item-active-bg,\n var(--oscd-primary)\n );\n --side-panel-width: var(--editor-plugins-panel-width);\n\n /* Main editor container */\n --editor-background-color: var(\n --oscd-shell-editor-background-color,\n var(--oscd-base3)\n );\n --editor-padding: var(--oscd-shell-editor-padding, 8px);\n\n /* Landing page */\n --landing-heading-color: var(\n --oscd-shell-landing-heading-color,\n var(--oscd-base3)\n );\n --landing-heading-font-family: var(\n --oscd-shell-landing-heading-font-family,\n var(--oscd-text-font)\n );\n --landing-heading-size: var(--oscd-shell-landing-heading-size, 50px);\n --landing-heading-style: var(--oscd-shell-landing-heading-style, normal);\n --landing-heading-weight: var(--oscd-shell-landing-heading-weight, 600);\n --landing-heading-line-height: var(\n --oscd-shell-landing-heading-line-height,\n normal\n );\n\n --landing-subheading-color: var(\n --oscd-shell-landing-subheading-color,\n var(--oscd-base3)\n );\n --landing-subheading-font-family: var(\n --oscd-shell-landing-subheading-font-family,\n var(--oscd-text-font)\n );\n --landing-subheading-size: var(\n --oscd-shell-landing-subheading-size,\n 16.909px\n );\n --landing-subheading-style: var(\n --oscd-shell-landing-subheading-style,\n normal\n );\n --landing-subheading-weight: var(\n --oscd-shell-landing-subheading-weight,\n 400\n );\n --landing-subheading-line-height: var(\n --oscd-shell-landing-subheading-line-height,\n 65.194px\n );\n --landing-grid-width: var(--oscd-shell-landing-grid-width, 60%);\n --landing-grid-gap: var(--oscd-shell-landing-grid-gap, 95px);\n --landing-card-width: var(--oscd-shell-landing-card-width, 240px);\n --landing-card-height: var(--oscd-shell-landing-card-height, 180px);\n --landing-card-background: var(\n --oscd-shell-landing-card-background,\n var(--oscd-primary)\n );\n --landing-card-text-color: var(\n --oscd-shell-landing-card-text-color,\n var(--oscd-base3)\n );\n --landing-card-radius: var(--oscd-shell-landing-card-radius, 2px);\n --landing-card-icon-size: var(--oscd-shell-landing-card-icon-size, 54px);\n --landing-card-corner-accent: var(\n --oscd-shell-landing-card-corner-accent,\n var(--omicron-yellow)\n );\n }\n`;\n"]}
1
+ {"version":3,"file":"oscd-shell-design-tokens.js","sourceRoot":"","sources":["../src/oscd-shell-design-tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8XvC,CAAC","sourcesContent":["import { css } from 'lit';\n\n/**\n * Single source of truth for oscd-shell design tokens.\n *\n * This block contains:\n * 1) Internal base tokens and fallbacks\n * 2) Public token -> internal token mappings\n *\n * Keep this as an all-or-nothing layer so mappings can safely reference\n * internal base tokens (e.g. --oscd-base*).\n */\nexport const oscdShellDesignTokens = css`\n /* Internal base theme tokens and defaults.\n *\n * Defaults are the Solarized (https://ethanschoonover.com/solarized/)\n * light palette used by the legacy OpenSCD shell, so oscd-shell is\n * brand-neutral out of the box: consumers who set none of the\n * --oscd-theme-* variables get the classic OpenSCD look. Distro-specific\n * branding (e.g. Omicron colors) is applied entirely by overriding the\n * --oscd-theme-* variables from outside; nothing brand-specific belongs\n * in this file.\n */\n :host {\n --oscd-primary: var(--oscd-theme-primary, #2aa198);\n --oscd-secondary: var(--oscd-theme-secondary, #6c71c4);\n --oscd-base03: var(--oscd-theme-base03, #002b36);\n --oscd-base02: var(--oscd-theme-base02, #073642);\n --oscd-base01: var(--oscd-theme-base01, #586e75);\n --oscd-base00: var(--oscd-theme-base00, #657b83);\n --oscd-base0: var(--oscd-theme-base0, #839496);\n --oscd-base1: var(--oscd-theme-base1, #93a1a1);\n --oscd-base2: var(--oscd-theme-base2, #eee8d5);\n --oscd-base3: var(--oscd-theme-base3, #fdf6e3);\n --oscd-error: var(--oscd-theme-error, #dc322f);\n --oscd-warning: var(--oscd-theme-warning, #b58900);\n --oscd-shape: var(--oscd-theme-shape, 8px);\n --oscd-text-font: var(--oscd-theme-text-font, 'Roboto');\n --oscd-text-font-mono: var(--oscd-theme-text-font-mono, 'Roboto Mono');\n --oscd-icon-font: var(--oscd-theme-icon-font, 'Material Symbols Outlined');\n\n /* Fallbacks for Material Design variables */\n --md-sys-color-primary: var(--oscd-primary);\n --md-sys-color-on-primary: var(--oscd-base3);\n --md-sys-color-secondary: var(--oscd-secondary);\n --md-sys-color-on-secondary: var(--oscd-base3);\n --md-sys-color-secondary-container: var(--oscd-base2);\n --md-sys-color-surface: var(--oscd-base3);\n --md-sys-color-on-surface: var(--oscd-base00);\n --md-sys-color-surface-variant: var(--oscd-base3);\n --md-sys-color-on-surface-variant: var(--oscd-base00);\n --md-sys-color-surface-bright: var(--oscd-base2);\n --md-sys-color-surface-container: var(--oscd-base3);\n --md-sys-color-surface-container-high: var(--oscd-base3);\n --md-sys-color-surface-container-highest: var(--oscd-base3);\n --md-sys-color-outline-variant: var(--oscd-primary);\n --md-sys-color-scrim: #000000;\n --md-sys-color-error: var(--oscd-error);\n --md-sys-color-on-error: var(--oscd-base3);\n --md-icon-button-disabled-icon-color: var(--oscd-base3);\n\n /* Material shape scale, derived from --oscd-shape (the Material\n * \"small\" corner size) per the ratios documented in oscd-api's\n * theming.md: none=0, extra-small=0.5x, small=1x, medium=1.5x, large=2x.\n */\n --md-sys-shape-corner-none: 0;\n --md-sys-shape-corner-extra-small: calc(0.5 * var(--oscd-shape));\n --md-sys-shape-corner-small: var(--oscd-shape);\n --md-sys-shape-corner-medium: calc(1.5 * var(--oscd-shape));\n --md-sys-shape-corner-large: calc(2 * var(--oscd-shape));\n\n /* MD3 has no single generic \"system font\" token (unlike color); its\n * closest reference-tier equivalent is --md-ref-typeface-plain. Icon\n * fonts (--oscd-icon-font) and monospace fonts (--oscd-text-font-mono)\n * have no MD3 system-token equivalent at all, so they are referenced\n * directly where needed instead of through an --md-* mapping.\n */\n --md-ref-typeface-plain: var(--oscd-text-font);\n\n /* MDC Theme Colors\n * Needed for supporting any pluggins still using the depricated MWC Components\n */\n --mdc-theme-primary: var(--oscd-primary);\n --mdc-theme-secondary: var(--oscd-secondary);\n --mdc-theme-background: var(--oscd-base3);\n --mdc-theme-surface: var(--oscd-base3);\n --mdc-theme-on-primary: var(--oscd-base2);\n --mdc-theme-on-secondary: var(--oscd-base2);\n --mdc-theme-on-background: var(--oscd-base00);\n --mdc-theme-on-surface: var(--oscd-base00);\n --mdc-theme-text-primary-on-background: var(--oscd-base01);\n --mdc-theme-text-secondary-on-background: var(--oscd-base00);\n --mdc-theme-text-icon-on-background: var(--oscd-base00);\n --mdc-theme-error: var(--oscd-error);\n --mdc-button-disabled-ink-color: var(--oscd-base1);\n --mdc-drawer-heading-ink-color: var(--oscd-base00);\n --mdc-dialog-heading-ink-color: var(--oscd-base00);\n --mdc-text-field-fill-color: var(--oscd-base2);\n --mdc-text-field-disabled-fill-color: var(--oscd-base3);\n --mdc-text-field-ink-color: var(--oscd-base00);\n --mdc-text-field-label-ink-color: var(--oscd-base00);\n --mdc-text-field-idle-line-color: var(--oscd-base00);\n --mdc-text-field-hover-line-color: var(--oscd-base02);\n --mdc-select-fill-color: var(--oscd-base2);\n --mdc-select-disabled-fill-color: var(--oscd-base3);\n --mdc-select-ink-color: var(--oscd-base00);\n --mdc-select-label-ink-color: var(--oscd-base00);\n --mdc-select-idle-line-color: var(--oscd-base00);\n --mdc-select-hover-line-color: var(--oscd-base02);\n --mdc-select-dropdown-icon-color: var(--oscd-base01);\n --mdc-typography-font-family: var(--oscd-text-font);\n --mdc-icon-font: var(--oscd-icon-font);\n --mdc-theme-text-disabled-on-light: rgba(255, 255, 255, 0.38);\n }\n\n /*\n * Public token -> internal token mappings\n *\n * Example pattern:\n * --internal-variable-name: var(--oscd-shell-public-token, <default>);\n */\n :host {\n /* Shell root */\n --shell-background-color: var(\n --oscd-shell-background-color,\n var(--md-sys-color-surface)\n );\n\n /* App bar */\n --app-bar-color: var(\n --oscd-shell-app-bar-color,\n var(--md-sys-color-on-primary)\n );\n --app-bar-background-color: var(\n --oscd-shell-app-bar-background-color,\n var(--md-sys-color-primary)\n );\n --app-bar-height: var(--oscd-shell-app-bar-height, 54px);\n --app-bar-small-height: var(--oscd-shell-app-bar-small-height, 48px);\n --app-bar-elevation: var(\n --oscd-shell-app-bar-elevation,\n var(--md-sys-elevation-level-2)\n );\n --app-bar-app-icon-height: var(--oscd-shell-app-bar-icon-height, 34.4px);\n --app-bar-app-icon-width: var(--oscd-shell-app-bar-icon-width, auto);\n --app-bar-logo-gap: var(--oscd-shell-app-bar-logo-gap, 16px);\n --app-bar-title-menu-gap: var(--oscd-shell-app-bar-title-menu-gap, 4px);\n --app-bar-title-text-font-family: var(\n --oscd-shell-app-bar-title-font-family,\n var(--md-ref-typeface-plain)\n );\n --app-bar-title-text-color: var(\n --oscd-shell-app-bar-title-color,\n var(--app-bar-color)\n );\n --app-bar-title-text-font-size: var(\n --oscd-shell-app-bar-title-font-size,\n 22.114px\n );\n --app-bar-title-text-font-weight: var(\n --oscd-shell-app-bar-title-font-weight,\n 400\n );\n --app-bar-title-text-font-style: var(\n --oscd-shell-app-bar-title-font-style,\n normal\n );\n --app-bar-title-text-line-height: var(\n --oscd-shell-app-bar-title-line-height,\n normal\n );\n --app-bar-title-text-letter-spacing: var(\n --oscd-shell-app-bar-title-letter-spacing,\n inherit\n );\n --app-bar-current-editor-font-family: var(\n --oscd-shell-app-bar-current-editor-font-family,\n var(--md-ref-typeface-plain)\n );\n --app-bar-current-editor-font-size: var(\n --oscd-shell-app-bar-current-editor-font-size,\n 16px\n );\n --app-bar-current-editor-font-weight: var(\n --oscd-shell-app-bar-current-editor-font-weight,\n 500\n );\n --app-bar-current-editor-font-style: var(\n --oscd-shell-app-bar-current-editor-font-style,\n normal\n );\n --app-bar-current-editor-line-height: var(\n --oscd-shell-app-bar-current-editor-line-height,\n normal\n );\n --app-bar-current-editor-color: var(\n --oscd-shell-app-bar-current-editor-color,\n var(--app-bar-color)\n );\n --app-bar-action-icon-size: var(\n --oscd-shell-app-bar-action-icon-size,\n 24px\n );\n --app-bar-action-icon-color: var(\n --oscd-shell-app-bar-action-icon-color,\n var(--md-sys-color-on-primary)\n );\n --app-bar-action-icon-disabled-color: var(\n --oscd-shell-app-bar-action-icon-disabled-color,\n var(--md-sys-color-on-primary)\n );\n --app-bar-action-icon-disabled-container-opacity: var(\n --oscd-shell-app-bar-action-icon-disabled-container-opacity,\n 0\n );\n --app-bar-separator-color: var(\n --oscd-shell-app-bar-separator-color,\n currentColor\n );\n --app-bar-separator-opacity: var(\n --oscd-shell-app-bar-separator-opacity,\n 0.38\n );\n\n /* Bridge to oscd-ui app bar tokens */\n --oscd-app-bar-color: var(--app-bar-color);\n --oscd-app-bar-background-color: var(--app-bar-background-color);\n --oscd-app-bar-elevation: var(--app-bar-elevation);\n --oscd-app-bar-title-font-family: var(--app-bar-title-text-font-family);\n --oscd-app-bar-title-font-size: var(--app-bar-title-text-font-size);\n --oscd-app-bar-title-font-weight: var(--app-bar-title-text-font-weight);\n --oscd-app-bar-title-line-height: var(--app-bar-title-text-line-height);\n\n /* Files menu */\n --file-menu-text-font-family: var(\n --oscd-shell-file-menu-text-font-family,\n var(--md-ref-typeface-plain)\n );\n --file-menu-text-size: var(--oscd-shell-file-menu-text-size, 16px);\n --file-menu-text-weight: var(--oscd-shell-file-menu-text-weight, 500);\n --file-menu-text-color: var(\n --oscd-shell-file-menu-text-color,\n var(--md-sys-color-on-primary)\n );\n\n /* Plugins menu */\n --plugins-menu-button-size: var(\n --oscd-shell-plugins-menu-button-size,\n 24px\n );\n --plugins-menu-button-color: var(\n --oscd-shell-plugins-menu-button-color,\n var(--md-sys-color-on-primary)\n );\n --plugins-menu-min-width: var(--oscd-shell-plugins-menu-min-width, 350px);\n --plugins-menu-padding: var(--oscd-shell-plugins-menu-padding, 12px);\n --plugins-menu-container-color: var(\n --oscd-shell-plugins-menu-container-color,\n var(--md-sys-color-surface)\n );\n --plugins-menu-item-label-color: var(\n --oscd-shell-plugins-menu-item-label-color,\n var(--md-sys-color-on-surface)\n );\n --plugins-menu-item-leading-icon-color: var(\n --oscd-shell-plugins-menu-item-leading-icon-color,\n var(--md-sys-color-on-surface)\n );\n --plugins-menu-item-selected-container-color: var(\n --oscd-shell-plugins-menu-item-selected-container-color,\n var(--md-sys-color-secondary-container)\n );\n --plugins-menu-item-selected-label-color: var(\n --oscd-shell-plugins-menu-item-selected-label-color,\n var(--md-sys-color-on-surface)\n );\n\n /* Editor plugins panel */\n --editor-plugins-panel-width: var(\n --oscd-shell-editor-plugins-panel-width,\n 308px\n );\n --editor-plugins-panel-collapsed-width: var(\n --oscd-shell-editor-plugins-panel-collapsed-width,\n 76px\n );\n --editor-plugins-panel-padding-top: var(\n --oscd-shell-editor-plugins-panel-padding-top,\n 20px\n );\n --editor-plugins-panel-item-icon-size: var(\n --oscd-shell-editor-plugins-panel-item-icon-size,\n 28px\n );\n --editor-plugins-panel-background-color: var(\n --oscd-shell-editor-plugins-panel-background-color,\n var(--md-sys-color-surface)\n );\n --editor-plugins-panel-item-text-color: var(\n --oscd-shell-editor-plugins-panel-item-text-color,\n var(--md-sys-color-on-surface)\n );\n --editor-plugins-panel-item-icon-color: var(\n --oscd-shell-editor-plugins-panel-item-icon-color,\n var(--md-sys-color-on-surface)\n );\n --editor-plugins-panel-item-active-bg: var(\n --oscd-shell-editor-plugins-panel-item-active-bg,\n var(--md-sys-color-primary)\n );\n --editor-plugins-panel-item-active-color: var(\n --oscd-shell-editor-plugins-panel-item-active-color,\n var(--md-sys-color-on-primary)\n );\n --editor-plugins-panel-divider-color: var(\n --oscd-shell-editor-plugins-panel-divider-color,\n #d0d5dc40\n );\n --editor-plugins-panel-flyout-header-text-color: var(\n --oscd-shell-editor-plugins-panel-flyout-header-text-color,\n var(--md-sys-color-secondary)\n );\n\n /* Main editor container */\n --editor-background-color: var(\n --oscd-shell-editor-background-color,\n var(--md-sys-color-surface)\n );\n --editor-padding: var(--oscd-shell-editor-padding, 8px);\n\n /* Landing page */\n --landing-background-color: var(\n --oscd-shell-landing-background-color,\n var(--md-sys-color-surface)\n );\n --landing-heading-color: var(\n --oscd-shell-landing-heading-color,\n var(--md-sys-color-on-surface)\n );\n --landing-heading-font-family: var(\n --oscd-shell-landing-heading-font-family,\n var(--md-ref-typeface-plain)\n );\n --landing-heading-size: var(--oscd-shell-landing-heading-size, 50px);\n --landing-heading-style: var(--oscd-shell-landing-heading-style, normal);\n --landing-heading-weight: var(--oscd-shell-landing-heading-weight, 600);\n --landing-heading-line-height: var(\n --oscd-shell-landing-heading-line-height,\n normal\n );\n\n --landing-subheading-color: var(\n --oscd-shell-landing-subheading-color,\n var(--md-sys-color-on-surface)\n );\n --landing-subheading-font-family: var(\n --oscd-shell-landing-subheading-font-family,\n var(--md-ref-typeface-plain)\n );\n --landing-subheading-size: var(\n --oscd-shell-landing-subheading-size,\n 16.909px\n );\n --landing-subheading-style: var(\n --oscd-shell-landing-subheading-style,\n normal\n );\n --landing-subheading-weight: var(\n --oscd-shell-landing-subheading-weight,\n 400\n );\n --landing-subheading-line-height: var(\n --oscd-shell-landing-subheading-line-height,\n 65.194px\n );\n --landing-grid-width: var(--oscd-shell-landing-grid-width, 60%);\n --landing-grid-gap: var(--oscd-shell-landing-grid-gap, 95px);\n --landing-card-width: var(--oscd-shell-landing-card-width, 240px);\n --landing-card-height: var(--oscd-shell-landing-card-height, 180px);\n --landing-card-background: var(\n --oscd-shell-landing-card-background,\n var(--md-sys-color-secondary)\n );\n --landing-card-text-color: var(\n --oscd-shell-landing-card-text-color,\n var(--md-sys-color-on-secondary)\n );\n --landing-card-radius: var(--oscd-shell-landing-card-radius, 2px);\n --landing-card-icon-size: var(--oscd-shell-landing-card-icon-size, 54px);\n --landing-card-corner-accent: var(\n --oscd-shell-landing-card-corner-accent,\n transparent\n );\n }\n`;\n"]}
@@ -1,39 +1,49 @@
1
1
  import { LitElement } from 'lit';
2
2
  import { OscdFilledIconButton } from '@omicronenergy/oscd-ui/iconbutton/OscdFilledIconButton.js';
3
- import { XMLEditor } from '@omicronenergy/oscd-editor';
3
+ import { XMLEditor } from '@openscd/oscd-editor';
4
4
  import { EditEventV2, OpenEvent } from '@openscd/oscd-api';
5
- import { LocaleTag, Translations } from './localization.js';
5
+ import { LocaleTag } from './localization.js';
6
6
  import { EditorPluginsPanel } from './side-panel/editor-plugins-panel.js';
7
7
  import { PluginsMenu } from './menus/plugins-menu.js';
8
8
  import { LandingPage } from './landing-page/landing-page.js';
9
9
  import { RenameEvent, CloseEvent } from './foundation/events.js';
10
10
  import { FilesMenu } from './menus/files-menu.js';
11
11
  import { OscdAppBar } from '@omicronenergy/oscd-ui/app-bar/OscdAppBar.js';
12
+ import { OscdDivider } from '@omicronenergy/oscd-ui/divider/OscdDivider.js';
12
13
  import { OscdIcon } from '@omicronenergy/oscd-ui/icon/OscdIcon.js';
13
- export type PluginEntry = {
14
+ export interface PluginBase {
14
15
  name: string;
15
- translations?: Translations;
16
- tagName: string;
16
+ translations?: Record<string, string>;
17
17
  icon: string;
18
- requireDoc?: boolean;
19
- };
20
- export type SourcedPluginEntry = {
21
- name: string;
22
- translations?: Translations;
18
+ }
19
+ export interface SourcedPluginEntry extends PluginBase {
23
20
  src: string;
24
- icon: string;
25
21
  requireDoc?: boolean;
26
- };
27
- export type PluginSet<P = PluginEntry> = {
28
- menu: P[];
29
- editor: P[];
22
+ }
23
+ export interface PluginEntry extends PluginBase {
24
+ tagName: string;
25
+ requireDoc?: boolean;
26
+ }
27
+ /**
28
+ * The unvalidated plugin shape accepted at the `plugins` setter boundary.
29
+ * Fields are optional and either `tagName` or `src` may be present; the
30
+ * concrete kind is resolved and validated later by `loadSourcedPlugins`.
31
+ */
32
+ export type InputPluginEntry = Partial<PluginEntry & SourcedPluginEntry>;
33
+ export interface PluginGroup<P extends Partial<PluginBase> = PluginEntry> extends PluginBase {
34
+ plugins: P[];
35
+ }
36
+ export interface PluginSet<P extends Partial<PluginBase> = PluginEntry> {
37
+ menu: (P | PluginGroup<P>)[];
38
+ editor: (P | PluginGroup<P>)[];
30
39
  background: P[];
31
- };
40
+ }
32
41
  declare const OscdShell_base: typeof LitElement & import("@open-wc/scoped-elements/lit-element.js").ScopedElementsHostConstructor;
33
42
  export declare class OscdShell extends OscdShell_base {
34
43
  static scopedElements: {
35
44
  'oscd-app-bar': typeof OscdAppBar;
36
45
  'oscd-filled-icon-button': typeof OscdFilledIconButton;
46
+ 'oscd-divider': typeof OscdDivider;
37
47
  'oscd-icon': typeof OscdIcon;
38
48
  'files-menu': typeof FilesMenu;
39
49
  'plugins-menu': typeof PluginsMenu;
@@ -53,11 +63,10 @@ export declare class OscdShell extends OscdShell_base {
53
63
  set locale(tag: LocaleTag);
54
64
  _plugins: PluginSet;
55
65
  get plugins(): PluginSet;
56
- set plugins(plugins: Partial<PluginSet<Partial<PluginEntry | SourcedPluginEntry>>>);
66
+ set plugins(plugins: Partial<PluginSet<InputPluginEntry>>);
57
67
  get canRedo(): boolean;
58
68
  get canUndo(): boolean;
59
- get editor(): string;
60
- private editorIndex;
69
+ selectedEditor?: PluginEntry;
61
70
  get doc(): XMLDocument;
62
71
  /** The name of the [[`doc`]] currently being edited */
63
72
  docName: string;
@@ -73,6 +82,7 @@ export declare class OscdShell extends OscdShell_base {
73
82
  editorPluginsPanel: EditorPluginsPanel;
74
83
  private _landingPageNodes?;
75
84
  constructor();
85
+ willUpdate(changedProperties: Map<PropertyKey, unknown>): void;
76
86
  connectedCallback(): void;
77
87
  disconnectedCallback(): void;
78
88
  handleOpenDoc: ({ detail: { docName, doc } }: OpenEvent) => void;
@@ -83,15 +93,14 @@ export declare class OscdShell extends OscdShell_base {
83
93
  handleRedo: () => void;
84
94
  private handleKeyPress;
85
95
  handleOpenPluginMenu: () => void;
96
+ handlePluginMenuSelect(customEvent: CustomEvent): void;
86
97
  /** Undo the last `n` [[Edit]]s committed */
87
98
  undo: (n?: number) => void;
88
99
  /** Redo the last `n` [[Edit]]s that have been undone */
89
100
  redo: (n?: number) => void;
90
101
  private hotkeys;
91
102
  isEditable(docName: string): boolean;
92
- onDocsChanged(): void;
93
- renderPlugin(tagName: string): import("lit-html").TemplateResult;
94
- onMenuPluginSelect(customEvent: CustomEvent): void;
103
+ renderPlugin(plugin: PluginEntry): import("lit-html").TemplateResult;
95
104
  renderOffScreenPlugins(): import("lit-html").TemplateResult<1>;
96
105
  renderDefaultLandingPage(): import("lit-html").TemplateResult<1>;
97
106
  render(): import("lit-html").TemplateResult<1>;