diff --git a/apps/contacts/apps/web/src/lib/stores/network.svelte.ts b/apps/contacts/apps/web/src/lib/stores/network.svelte.ts index 9410ec1c6..f0d2f8ea2 100644 --- a/apps/contacts/apps/web/src/lib/stores/network.svelte.ts +++ b/apps/contacts/apps/web/src/lib/stores/network.svelte.ts @@ -17,14 +17,21 @@ import type { SimulationNode as SharedSimulationNode, SimulationLink as SharedSimulationLink, } from '@manacore/shared-ui'; -import { NetworkGraph } from '@manacore/shared-ui'; // Re-export types from shared-ui for convenience export type SimulationNode = SharedSimulationNode; export type SimulationLink = SharedSimulationLink; +// Interface for NetworkGraph component zoom methods +interface NetworkGraphZoomMethods { + zoomIn(): void; + zoomOut(): void; + resetZoom(): void; + focusOnSelectedNode(): void; +} + // Graph component reference for zoom controls -let graphComponentRef: NetworkGraph | null = null; +let graphComponentRef: NetworkGraphZoomMethods | null = null; // localStorage key for toolbar state const TOOLBAR_STORAGE_KEY = 'network-toolbar-state'; @@ -215,7 +222,7 @@ export const networkStore = { /** * Register graph component reference for zoom controls */ - setGraphComponent(component: NetworkGraph | null) { + setGraphComponent(component: NetworkGraphZoomMethods | null) { graphComponentRef = component; }, diff --git a/apps/contacts/apps/web/vite.config.ts b/apps/contacts/apps/web/vite.config.ts index 2c048d22b..12b3a0503 100644 --- a/apps/contacts/apps/web/vite.config.ts +++ b/apps/contacts/apps/web/vite.config.ts @@ -23,6 +23,13 @@ export default defineConfig({ '@manacore/shared-branding', '@manacore/shared-subscription-ui', '@manacore/shared-utils', + '@manacore/shared-splitscreen', + '@manacore/shared-i18n', + '@manacore/shared-profile-ui', + '@manacore/shared-tags', + '@manacore/shared-help-types', + '@manacore/shared-help-content', + '@manacore/shared-help-ui', ], }, optimizeDeps: { @@ -40,6 +47,13 @@ export default defineConfig({ '@manacore/shared-branding', '@manacore/shared-subscription-ui', '@manacore/shared-utils', + '@manacore/shared-splitscreen', + '@manacore/shared-i18n', + '@manacore/shared-profile-ui', + '@manacore/shared-tags', + '@manacore/shared-help-types', + '@manacore/shared-help-content', + '@manacore/shared-help-ui', ], }, }); diff --git a/packages/shared-ui/src/command-bar/CommandBar.svelte b/packages/shared-ui/src/command-bar/CommandBar.svelte index 1130c62a1..fcf39c812 100644 --- a/packages/shared-ui/src/command-bar/CommandBar.svelte +++ b/packages/shared-ui/src/command-bar/CommandBar.svelte @@ -1,5 +1,6 @@ + +
+ + + + {#if isOpen} + + + + +
+ + {#if showSearch} +
+ + + + + {#if searchQuery} + + {/if} +
+ {/if} + + +
+ {#if filteredOptions.length === 0} +
Keine Ergebnisse
+ {:else} + {#each [...groupedOptions] as [groupName, groupOptions], groupIndex} + {#if groupName} +
{groupName}
+ {/if} + {#each groupOptions as option, optionIndex} + {@const flatIndex = selectableOptions.indexOf(option)} + + {/each} + {/each} + {/if} +
+ + + {#if multiSelect && Array.isArray(value) && value.length > 0} + + {/if} +
+ {/if} +
+ + diff --git a/packages/shared-ui/src/molecules/FilterDropdown.types.ts b/packages/shared-ui/src/molecules/FilterDropdown.types.ts new file mode 100644 index 000000000..39e45266c --- /dev/null +++ b/packages/shared-ui/src/molecules/FilterDropdown.types.ts @@ -0,0 +1,8 @@ +export interface FilterDropdownOption { + value: string; + label: string; + icon?: string; + disabled?: boolean; + divider?: boolean; + group?: string; +} diff --git a/packages/shared-ui/src/molecules/index.ts b/packages/shared-ui/src/molecules/index.ts index d9ef0b976..25d193845 100644 --- a/packages/shared-ui/src/molecules/index.ts +++ b/packages/shared-ui/src/molecules/index.ts @@ -3,7 +3,9 @@ export { default as Input } from './Input.svelte'; export { default as Select } from './Select.svelte'; export { default as Textarea } from './Textarea.svelte'; export { default as Checkbox } from './Checkbox.svelte'; +export { default as FilterDropdown } from './FilterDropdown.svelte'; export type { SelectOption } from './Select.types'; +export type { FilterDropdownOption } from './FilterDropdown.types'; // Stats components export { GlassCard, StatRow } from './stats';