@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
@@ -1,28 +1,100 @@
1
1
  import { LitElement } from 'lit';
2
2
  import { OscdIconButton } from '@omicronenergy/oscd-ui/iconbutton/OscdIconButton.js';
3
3
  import { OscdIcon } from '@omicronenergy/oscd-ui/icon/OscdIcon.js';
4
- import { OscdList } from '@omicronenergy/oscd-ui/list/OscdList.js';
5
4
  import { OscdListItem } from '@omicronenergy/oscd-ui/list/OscdListItem.js';
5
+ import { OscdMenu } from '@omicronenergy/oscd-ui/menu/OscdMenu.js';
6
+ import { OscdMenuItem } from '@omicronenergy/oscd-ui/menu/OscdMenuItem.js';
6
7
  import { LocaleTag } from '../localization.js';
7
- import { PluginEntry } from '../oscd-shell.js';
8
+ import { PluginEntry, PluginGroup } from '../oscd-shell.js';
9
+ import { OscdTree, TreeNode, TreeRenderContext } from '@omicronenergy/oscd-ui/tree/OscdTree.js';
10
+ import { OscdTreeItem } from '@omicronenergy/oscd-ui/tree/OscdTreeItem.js';
11
+ import { OscdDivider } from '@omicronenergy/oscd-ui/divider/OscdDivider.js';
12
+ import { OscdOutlinedSearchField } from '@omicronenergy/oscd-ui/search-field/OscdOutlinedSearchField.js';
13
+ type PlaceholderTreeNode = {
14
+ kind: 'placeholder';
15
+ name: string;
16
+ translations?: Record<string, string>;
17
+ };
18
+ type EditorPluginTreeNode = (PluginGroup | PluginEntry | PlaceholderTreeNode) & TreeNode & {
19
+ children?: EditorPluginTreeNode[];
20
+ plugins?: EditorPluginTreeNode[];
21
+ };
8
22
  declare global {
9
23
  interface HTMLElementTagNameMap {
10
24
  'editor-plugins-panel': EditorPluginsPanel;
11
25
  }
12
26
  }
27
+ export declare function buildTreeNodes(plugins: (PluginEntry | PluginGroup)[]): EditorPluginTreeNode[];
13
28
  declare const EditorPluginsPanel_base: typeof LitElement & import("@open-wc/scoped-elements/lit-element.js").ScopedElementsHostConstructor;
14
29
  export declare class EditorPluginsPanel extends EditorPluginsPanel_base {
15
30
  static scopedElements: {
16
31
  'oscd-icon-button': typeof OscdIconButton;
17
32
  'oscd-icon': typeof OscdIcon;
18
- 'oscd-list': typeof OscdList;
19
33
  'oscd-list-item': typeof OscdListItem;
34
+ 'oscd-tree': typeof OscdTree;
35
+ 'oscd-tree-item': typeof OscdTreeItem;
36
+ 'oscd-outlined-search-field': typeof OscdOutlinedSearchField;
37
+ 'oscd-divider': typeof OscdDivider;
38
+ 'oscd-menu': typeof OscdMenu;
39
+ 'oscd-menu-item': typeof OscdMenuItem;
20
40
  };
21
- editors: PluginEntry[];
22
- editorIndex: number;
41
+ id: string;
42
+ editors: (PluginEntry | PluginGroup)[];
43
+ selectedEditor?: PluginEntry;
23
44
  locale: LocaleTag;
24
- get expanded(): boolean;
25
- set expanded(expanded: boolean);
45
+ expanded: boolean;
46
+ /**
47
+ * Transient "search mode": the collapsed rail's search icon opens the full
48
+ * panel to let the user search, WITHOUT persisting the panel as expanded.
49
+ * It is reflected purely so `:host([search-mode])` can drive the open width.
50
+ * Exited on editor selection or Escape (see `exitSearchMode`).
51
+ */
52
+ searchMode: boolean;
53
+ /** True when the panel is visually open (persisted expanded OR transient search). */
54
+ get isOpen(): boolean;
55
+ editorTreeNodes: EditorPluginTreeNode[];
56
+ pinnedTreeNodes: EditorPluginTreeNode[];
57
+ searchValue: string;
58
+ focusedTree: 'pinned' | 'editors' | null;
59
+ expandedIds: string[];
60
+ pinnedPluginIds: string[];
61
+ pinnedExpanded: string[];
62
+ willUpdate(changedProperties: Map<string, unknown>): void;
63
+ togglePin(id: string): void;
64
+ selectEditor(selectedIds: string[]): void;
65
+ /**
66
+ * Dispatches the `editor-select` event and leaves transient search mode, if
67
+ * active. Used by both the expanded trees and the collapsed rail flyouts.
68
+ */
69
+ private dispatchEditorSelect;
70
+ connectedCallback(): void;
71
+ disconnectedCallback(): void;
72
+ private handleKeydown;
73
+ /** Opens the panel transiently for searching (does not persist `expanded`). */
74
+ private enterSearchMode;
75
+ /** Focuses the search field, optionally selecting its current query. */
76
+ focusSearch(selectQuery?: boolean): void;
77
+ /** Returns the panel to the collapsed rail and clears the search query. */
78
+ private exitSearchMode;
79
+ private getTree;
80
+ private focusTree;
81
+ private startTreeNavigation;
82
+ private handleTreeActiveChanged;
83
+ private handleTreeFocus;
84
+ private handleTreeSelection;
85
+ private handleTreeBoundary;
86
+ private activateKeyboardTarget;
87
+ /** Toggles the persisted expanded/collapsed state via the footer control. */
88
+ private toggleExpanded;
89
+ private toggleFlyout;
90
+ renderPluginItem({ node, level, disabled, active, }: TreeRenderContext<EditorPluginTreeNode>): import("lit-html").TemplateResult<1>;
91
+ renderLeafAccessory({ node, id }: TreeRenderContext<EditorPluginTreeNode>): import("lit-html").TemplateResult<1>;
92
+ private renderExpanded;
93
+ private renderRail;
94
+ private renderRailGroup;
95
+ private renderRailLeaf;
96
+ private renderFlyoutItem;
97
+ private renderFooter;
26
98
  render(): import("lit-html").TemplateResult<1>;
27
99
  static styles: import("lit").CSSResult;
28
100
  }